버그 수정

This commit is contained in:
2020-04-22 23:35:06 +09:00
parent f8434d7fe2
commit 3f6eeb2a30
+15 -5
View File
@@ -103,12 +103,13 @@ class TurnExecutionHelper
return $commandObj->getResultTurn(); return $commandObj->getResultTurn();
} }
public function processCommand(Command\GeneralCommand $commandObj){ public function processCommand(Command\GeneralCommand $commandObj, bool $autorunMode){
$general = $this->getGeneral(); $general = $this->getGeneral();
$db = DB::db(); $db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env'); $gameStor = KVStorage::getStorage($db, 'game_env');
$commandClassName = $commandObj->getName();
while(true){ while(true){
$failReason = $commandObj->testRunnable(); $failReason = $commandObj->testRunnable();
@@ -151,6 +152,9 @@ class TurnExecutionHelper
else if($general->getVar('killturn') > $killTurn){ else if($general->getVar('killturn') > $killTurn){
$general->increaseVarWithLimit('killturn', -1); $general->increaseVarWithLimit('killturn', -1);
} }
else if($autorunMode){
$general->increaseVarWithLimit('killturn', -1);
}
else if($commandClassName == '휴식'){ else if($commandClassName == '휴식'){
$general->increaseVarWithLimit('killturn', -1); $general->increaseVarWithLimit('killturn', -1);
} }
@@ -168,6 +172,7 @@ class TurnExecutionHelper
$general = $this->getGeneral(); $general = $this->getGeneral();
$generalID = $general->getID(); $generalID = $general->getID();
$logger = $general->getLogger(); $logger = $general->getLogger();
$general->setVar('con', 0);
$generalName = $general->getName(); $generalName = $general->getName();
@@ -261,15 +266,20 @@ WHERE turntime < %s ORDER BY turntime ASC, `no` ASC',
$nationCommandObj = buildNationCommandClass($nationCommand, $general, $env, $lastNationTurn, $nationArg); $nationCommandObj = buildNationCommandClass($nationCommand, $general, $env, $lastNationTurn, $nationArg);
} }
$autorunMode = false;
if($general->getVar('npc') >= 2 || ($autorun_user['limit_minutes']??false)){ if($general->getVar('npc') >= 2 || ($autorun_user['limit_minutes']??false)){
$ai = new GeneralAI($turnObj->getGeneral()); $ai = new GeneralAI($turnObj->getGeneral());
if($hasNationTurn){ if($hasNationTurn){
$nationCommandObj = $ai->chooseNationTurn($nationCommandObj); $nationCommandObj = $ai->chooseNationTurn($nationCommandObj);
LogText("NationTurn", "General, {$general->getName()}, {$general->getID()}, {$general->getStaticNation()['name']}, {$nationCommandObj->getBrief()}, {$nationCommandObj->reason}, "); LogText("NationTurn", "General, {$general->getName()}, {$general->getID()}, {$general->getStaticNation()['name']}, {$nationCommandObj->getBrief()}, {$nationCommandObj->reason}, ");
} }
$generalCommandObj = $ai->chooseGeneralTurn($generalCommandObj); // npc AI 처리 $newGeneralCommandObj = $ai->chooseGeneralTurn($generalCommandObj); // npc AI 처리
if($generalCommand !== $newGeneralCommandObj){
$autorunMode = true;
$generalCommand = $newGeneralCommandObj;
}
LogText("turn", "General, {$general->getName()}, {$general->getID()}, {$general->getStaticNation()['name']}, {$generalCommandObj->getBrief()}, {$generalCommandObj->reason}, "); LogText("turn", "General, {$general->getName()}, {$general->getID()}, {$general->getStaticNation()['name']}, {$generalCommandObj->getBrief()}, {$generalCommandObj->reason}, ");
} }
@@ -281,7 +291,7 @@ WHERE turntime < %s ORDER BY turntime ASC, `no` ASC',
); );
$nationStor->setValue($lastNationTurnKey, $resultNationTurn->toJson()); $nationStor->setValue($lastNationTurnKey, $resultNationTurn->toJson());
} }
$turnObj->processCommand($generalCommandObj); $turnObj->processCommand($generalCommandObj, $autorunMode);
} }
pullNationCommand($general->getVar('nation'), $general->getVar('officer_level')); pullNationCommand($general->getVar('nation'), $general->getVar('officer_level'));
pullGeneralCommand($general->getID()); pullGeneralCommand($general->getID());