From 3f6eeb2a306e065732e6d3c01d8771376e24c5e5 Mon Sep 17 00:00:00 2001 From: hide_d Date: Wed, 22 Apr 2020 23:35:06 +0900 Subject: [PATCH] =?UTF-8?q?=EB=B2=84=EA=B7=B8=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- hwe/sammo/TurnExecutionHelper.php | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/hwe/sammo/TurnExecutionHelper.php b/hwe/sammo/TurnExecutionHelper.php index 9e570074..0a47bc68 100644 --- a/hwe/sammo/TurnExecutionHelper.php +++ b/hwe/sammo/TurnExecutionHelper.php @@ -103,12 +103,13 @@ class TurnExecutionHelper return $commandObj->getResultTurn(); } - public function processCommand(Command\GeneralCommand $commandObj){ + public function processCommand(Command\GeneralCommand $commandObj, bool $autorunMode){ $general = $this->getGeneral(); $db = DB::db(); $gameStor = KVStorage::getStorage($db, 'game_env'); + $commandClassName = $commandObj->getName(); while(true){ $failReason = $commandObj->testRunnable(); @@ -151,6 +152,9 @@ class TurnExecutionHelper else if($general->getVar('killturn') > $killTurn){ $general->increaseVarWithLimit('killturn', -1); } + else if($autorunMode){ + $general->increaseVarWithLimit('killturn', -1); + } else if($commandClassName == '휴식'){ $general->increaseVarWithLimit('killturn', -1); } @@ -168,6 +172,7 @@ class TurnExecutionHelper $general = $this->getGeneral(); $generalID = $general->getID(); $logger = $general->getLogger(); + $general->setVar('con', 0); $generalName = $general->getName(); @@ -261,15 +266,20 @@ WHERE turntime < %s ORDER BY turntime ASC, `no` ASC', $nationCommandObj = buildNationCommandClass($nationCommand, $general, $env, $lastNationTurn, $nationArg); } - + $autorunMode = false; + if($general->getVar('npc') >= 2 || ($autorun_user['limit_minutes']??false)){ $ai = new GeneralAI($turnObj->getGeneral()); if($hasNationTurn){ $nationCommandObj = $ai->chooseNationTurn($nationCommandObj); 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}, "); } @@ -281,7 +291,7 @@ WHERE turntime < %s ORDER BY turntime ASC, `no` ASC', ); $nationStor->setValue($lastNationTurnKey, $resultNationTurn->toJson()); } - $turnObj->processCommand($generalCommandObj); + $turnObj->processCommand($generalCommandObj, $autorunMode); } pullNationCommand($general->getVar('nation'), $general->getVar('officer_level')); pullGeneralCommand($general->getID());