From 44f0e780868ac5776b45f2eb0ce54a785c729056 Mon Sep 17 00:00:00 2001 From: hide_d Date: Sat, 5 Oct 2019 10:52:31 +0900 Subject: [PATCH] =?UTF-8?q?turntime=20=EA=B4=80=EB=A0=A8=20=EC=A1=B0?= =?UTF-8?q?=EC=A0=95=EC=A4=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- hwe/func.php | 4 +- hwe/j_getChiefTurn.php | 2 +- hwe/process_war.php | 2 +- hwe/sammo/Command/General/che_NPC능동.php | 2 +- hwe/sammo/Command/General/che_강행.php | 2 +- hwe/sammo/Command/General/che_거병.php | 4 +- hwe/sammo/Command/General/che_건국.php | 6 +- hwe/sammo/Command/General/che_견문.php | 2 +- hwe/sammo/Command/General/che_군량매매.php | 2 +- hwe/sammo/Command/General/che_귀환.php | 2 +- hwe/sammo/Command/General/che_기술연구.php | 2 +- hwe/sammo/Command/General/che_단련.php | 2 +- hwe/sammo/Command/General/che_등용.php | 4 +- hwe/sammo/Command/General/che_랜덤임관.php | 2 +- hwe/sammo/Command/General/che_모반시도.php | 2 +- hwe/sammo/Command/General/che_물자조달.php | 2 +- hwe/sammo/Command/General/che_방랑.php | 2 +- hwe/sammo/Command/General/che_사기진작.php | 2 +- hwe/sammo/Command/General/che_상업투자.php | 2 +- hwe/sammo/Command/General/che_선동.php | 2 +- hwe/sammo/Command/General/che_선양.php | 2 +- hwe/sammo/Command/General/che_소집해제.php | 2 +- hwe/sammo/Command/General/che_요양.php | 2 +- hwe/sammo/Command/General/che_이동.php | 2 +- hwe/sammo/Command/General/che_인재탐색.php | 2 +- hwe/sammo/Command/General/che_임관.php | 2 +- hwe/sammo/Command/General/che_장비매매.php | 2 +- hwe/sammo/Command/General/che_전투태세.php | 2 +- hwe/sammo/Command/General/che_정착장려.php | 2 +- hwe/sammo/Command/General/che_주민선정.php | 2 +- hwe/sammo/Command/General/che_증여.php | 2 +- hwe/sammo/Command/General/che_집합.php | 2 +- hwe/sammo/Command/General/che_징병.php | 2 +- hwe/sammo/Command/General/che_첩보.php | 2 +- hwe/sammo/Command/General/che_출병.php | 2 +- hwe/sammo/Command/General/che_탈취.php | 2 +- hwe/sammo/Command/General/che_파괴.php | 2 +- hwe/sammo/Command/General/che_하야.php | 2 +- hwe/sammo/Command/General/che_해산.php | 4 +- hwe/sammo/Command/General/che_헌납.php | 2 +- hwe/sammo/Command/General/che_화계.php | 4 +- hwe/sammo/Command/General/che_훈련.php | 2 +- hwe/sammo/Command/General/휴식.php | 2 +- hwe/sammo/Command/Nation/che_몰수.php | 2 +- hwe/sammo/Command/Nation/che_발령.php | 2 +- hwe/sammo/Command/Nation/che_불가침제의.php | 2 +- hwe/sammo/Command/Nation/che_선전포고.php | 4 +- hwe/sammo/Command/Nation/che_포상.php | 2 +- hwe/sammo/General.php | 15 +++++ hwe/sammo/GeneralAI.php | 6 ++ hwe/sammo/TurnExecutionHelper.php | 15 +++-- hwe/sammo/WarUnitGeneral.php | 4 +- src/sammo/Util.php | 70 +++++++++++++++++++++ 53 files changed, 156 insertions(+), 66 deletions(-) diff --git a/hwe/func.php b/hwe/func.php index aba88a71..ac93cbc8 100644 --- a/hwe/func.php +++ b/hwe/func.php @@ -600,7 +600,7 @@ function generalInfo(General $generalObj) { elseif($injury > 0) { $color = ""; $injury = "경상"; } else { $color = ""; $injury = "건강"; } - $remaining = (new \DateTimeImmutable($generalObj->getVar('turntime')))->diff(new \DateTimeImmutable())->i; + $remaining = (new \DateTimeImmutable($generalObj->getTurnTime()))->diff(new \DateTimeImmutable())->i; if($nation['color'] == "") { $nation['color'] = "#000000"; } @@ -656,7 +656,7 @@ function generalInfo(General $generalObj) { echo " - + diff --git a/hwe/j_getChiefTurn.php b/hwe/j_getChiefTurn.php index 75d97a84..97404b29 100644 --- a/hwe/j_getChiefTurn.php +++ b/hwe/j_getChiefTurn.php @@ -77,7 +77,7 @@ foreach($nationTurnList as $level=>$turnList){ } $nationTurnBrief[$level] = [ 'name'=>$general->getName(), - 'turnTime'=>substr($general->getVar('turntime'), 11, 5), + 'turnTime'=>$general->getTurnTime($general::TURNTIME_HM), 'levelText'=>getLevelText($general->getVar('level'), $nationLevel), 'npcType'=>$general->getVar('npc'), 'turn'=>getNationTurnBrief($general, $turnList) diff --git a/hwe/process_war.php b/hwe/process_war.php index c50c1ade..9572be55 100644 --- a/hwe/process_war.php +++ b/hwe/process_war.php @@ -215,7 +215,7 @@ function processWar_NG( $attacker->useBattleInitItem(); - $date = substr($attacker->getVar('turntime'),11,5); + $date = $attacker->getGeneral()->getTurnTime(General::TURNTIME_HM); $attackerNationUpdate = []; $defenderNationUpdate = []; diff --git a/hwe/sammo/Command/General/che_NPC능동.php b/hwe/sammo/Command/General/che_NPC능동.php index 79a623c4..10eec5fb 100644 --- a/hwe/sammo/Command/General/che_NPC능동.php +++ b/hwe/sammo/Command/General/che_NPC능동.php @@ -81,7 +81,7 @@ class che_NPC능동 extends Command\GeneralCommand{ $logger = $general->getLogger(); - $date = substr($general->getVar('turntime'),11,5); + $date = $general->getTurnTime($general::TURNTIME_HM); if($this->arg['optionText'] == '순간이동'){ $destCityID = $this->arg['destCityID']; diff --git a/hwe/sammo/Command/General/che_강행.php b/hwe/sammo/Command/General/che_강행.php index 2905b8aa..f1c05cc9 100644 --- a/hwe/sammo/Command/General/che_강행.php +++ b/hwe/sammo/Command/General/che_강행.php @@ -93,7 +93,7 @@ class che_강행 extends Command\GeneralCommand{ $env = $this->env; $general = $this->generalObj; - $date = substr($general->getVar('turntime'),11,5); + $date = $general->getTurnTime($general::TURNTIME_HM); $destCityName = $this->destCity['name']; $destCityID = $this->destCity['city']; diff --git a/hwe/sammo/Command/General/che_거병.php b/hwe/sammo/Command/General/che_거병.php index ed88071f..dd2212da 100644 --- a/hwe/sammo/Command/General/che_거병.php +++ b/hwe/sammo/Command/General/che_거병.php @@ -14,7 +14,7 @@ use \sammo\{ use \sammo\Constraint\Constraint; use \sammo\Constraint\ConstraintHelper; use sammo\CityConst; -use function sammo\getNationTypeClass; +use function sammo\buildNationTypeClass; use function sammo\refreshNationStaticInfo; use function sammo\GetNationColors; use function sammo\getAllNationStaticInfo; @@ -68,7 +68,7 @@ class che_거병 extends Command\GeneralCommand{ $env = $this->env; $general = $this->generalObj; - $date = substr($general->getVar('turntime'),11,5); + $date = $general->getTurnTime($general::TURNTIME_HM); $generalName = $general->getName(); $josaYi = JosaUtil::pick($generalName, '이'); diff --git a/hwe/sammo/Command/General/che_건국.php b/hwe/sammo/Command/General/che_건국.php index 3a36c9de..cf432927 100644 --- a/hwe/sammo/Command/General/che_건국.php +++ b/hwe/sammo/Command/General/che_건국.php @@ -19,7 +19,7 @@ use function \sammo\{ use \sammo\Constraint\Constraint; use \sammo\Constraint\ConstraintHelper; use sammo\CityConst; -use function sammo\getNationTypeClass; +use function sammo\buildNationTypeClass; use function sammo\refreshNationStaticInfo; use function sammo\GetNationColors; use function sammo\newColor; @@ -54,7 +54,7 @@ class che_건국 extends Command\GeneralCommand{ } try{ - $nationTypeClass = getNationTypeClass($nationType); + $nationTypeClass = buildNationTypeClass($nationType); } catch(InvalidArgumentException $e){ return false; @@ -115,7 +115,7 @@ class che_건국 extends Command\GeneralCommand{ $env = $this->env; $general = $this->generalObj; - $date = substr($general->getVar('turntime'),11,5); + $date = $general->getTurnTime($general::TURNTIME_HM); $generalName = $general->getName(); $josaYi = JosaUtil::pick($generalName, '이'); diff --git a/hwe/sammo/Command/General/che_견문.php b/hwe/sammo/Command/General/che_견문.php index b2a490ff..c074d3d2 100644 --- a/hwe/sammo/Command/General/che_견문.php +++ b/hwe/sammo/Command/General/che_견문.php @@ -57,7 +57,7 @@ class che_견문 extends Command\GeneralCommand{ $db = DB::db(); $general = $this->generalObj; - $date = substr($general->getVar('turntime'),11,5); + $date = $general->getTurnTime($general::TURNTIME_HM); $sightseeing = new SightseeingMessage(); diff --git a/hwe/sammo/Command/General/che_군량매매.php b/hwe/sammo/Command/General/che_군량매매.php index a4f76bda..2f54578f 100644 --- a/hwe/sammo/Command/General/che_군량매매.php +++ b/hwe/sammo/Command/General/che_군량매매.php @@ -98,7 +98,7 @@ class che_군량매매 extends Command\GeneralCommand{ $general = $this->generalObj; $tradeRate = $this->city['trade']; - $date = substr($general->getVar('turntime'),11,5); + $date = $general->getTurnTime($general::TURNTIME_HM); $buyRice = $this->arg['buyRice']; diff --git a/hwe/sammo/Command/General/che_귀환.php b/hwe/sammo/Command/General/che_귀환.php index 68dba7e1..dd2d3b12 100644 --- a/hwe/sammo/Command/General/che_귀환.php +++ b/hwe/sammo/Command/General/che_귀환.php @@ -67,7 +67,7 @@ class che_귀환 extends Command\GeneralCommand{ $general = $this->generalObj; $generalID = $general->getID(); - $date = substr($general->getVar('turntime'),11,5); + $date = $general->getTurnTime($general::TURNTIME_HM); $generalLevel = $general->getVar('level'); $target = null; diff --git a/hwe/sammo/Command/General/che_기술연구.php b/hwe/sammo/Command/General/che_기술연구.php index 86701755..af8c5403 100644 --- a/hwe/sammo/Command/General/che_기술연구.php +++ b/hwe/sammo/Command/General/che_기술연구.php @@ -84,7 +84,7 @@ class che_기술연구 extends che_상업투자{ $logger = $general->getLogger(); - $date = substr($general->getVar('turntime'),11,5); + $date = $general->getTurnTime($general::TURNTIME_HM); $score *= CriticalScoreEx($pick); $score = Util::round($score); diff --git a/hwe/sammo/Command/General/che_단련.php b/hwe/sammo/Command/General/che_단련.php index 1a61e09e..a001e082 100644 --- a/hwe/sammo/Command/General/che_단련.php +++ b/hwe/sammo/Command/General/che_단련.php @@ -69,7 +69,7 @@ class che_단련 extends Command\GeneralCommand{ $db = DB::db(); $general = $this->generalObj; - $date = substr($general->getVar('turntime'),11,5); + $date = $general->getTurnTime($general::TURNTIME_HM); [$pick, $multiplier] = Util::choiceRandomUsingWeightPair([ [['success', 3], 0.34], diff --git a/hwe/sammo/Command/General/che_등용.php b/hwe/sammo/Command/General/che_등용.php index 6b501ce9..cc8e6d32 100644 --- a/hwe/sammo/Command/General/che_등용.php +++ b/hwe/sammo/Command/General/che_등용.php @@ -112,7 +112,7 @@ class che_등용 extends Command\GeneralCommand{ $db = DB::db(); $general = $this->generalObj; - $date = substr($general->getVar('turntime'),11,5); + $date = $general->getTurnTime($general::TURNTIME_HM); $logger = $general->getLogger(); @@ -120,7 +120,7 @@ class che_등용 extends Command\GeneralCommand{ $destGeneralID = $this->destGeneralObj->getID(); - $msg = ScoutMessage::buildScoutMessage($general->getID(), $destGeneralID, $reason, new \DateTime($general->getVar('turntime'))); + $msg = ScoutMessage::buildScoutMessage($general->getID(), $destGeneralID, $reason, new \DateTime($general->getTurnTime())); if($msg){ $logger->pushGeneralActionLog("{$destGeneralName}에게 등용 권유 서신을 보냈습니다. <1>$date"); $msg->send(true); diff --git a/hwe/sammo/Command/General/che_랜덤임관.php b/hwe/sammo/Command/General/che_랜덤임관.php index 805ec5eb..49db9c54 100644 --- a/hwe/sammo/Command/General/che_랜덤임관.php +++ b/hwe/sammo/Command/General/che_랜덤임관.php @@ -95,7 +95,7 @@ class che_랜덤임관 extends Command\GeneralCommand{ $env = $this->env; $general = $this->generalObj; - $date = substr($general->getVar('turntime'),11,5); + $date = $general->getTurnTime($general::TURNTIME_HM); $generalName = $general->getName(); $josaYi = JosaUtil::pick($generalName, '이'); diff --git a/hwe/sammo/Command/General/che_모반시도.php b/hwe/sammo/Command/General/che_모반시도.php index a79d7a3b..51dbf2de 100644 --- a/hwe/sammo/Command/General/che_모반시도.php +++ b/hwe/sammo/Command/General/che_모반시도.php @@ -65,7 +65,7 @@ class che_모반시도 extends Command\GeneralCommand{ $db = DB::db(); $general = $this->generalObj; - $date = substr($general->getVar('turntime'),11,5); + $date = $general->getTurnTime($general::TURNTIME_HM); $nationID = $general->getNationID(); diff --git a/hwe/sammo/Command/General/che_물자조달.php b/hwe/sammo/Command/General/che_물자조달.php index a6094466..c5b93991 100644 --- a/hwe/sammo/Command/General/che_물자조달.php +++ b/hwe/sammo/Command/General/che_물자조달.php @@ -66,7 +66,7 @@ class che_물자조달 extends Command\GeneralCommand{ $db = DB::db(); $general = $this->generalObj; - $date = substr($general->getVar('turntime'),11,5); + $date = $general->getTurnTime($general::TURNTIME_HM); [$resName, $resKey] = Util::choiceRandom([ ['금', 'gold'], diff --git a/hwe/sammo/Command/General/che_방랑.php b/hwe/sammo/Command/General/che_방랑.php index f115acc3..32b86533 100644 --- a/hwe/sammo/Command/General/che_방랑.php +++ b/hwe/sammo/Command/General/che_방랑.php @@ -77,7 +77,7 @@ class che_방랑 extends Command\GeneralCommand{ $env = $this->env; $general = $this->generalObj; - $date = substr($general->getVar('turntime'),11,5); + $date = $general->getTurnTime($general::TURNTIME_HM); $generalName = $general->getName(); $josaYi = JosaUtil::pick($generalName, '이'); $josaUn = JosaUtil::pick($generalName, '은'); diff --git a/hwe/sammo/Command/General/che_사기진작.php b/hwe/sammo/Command/General/che_사기진작.php index 78c641ed..37ebbce1 100644 --- a/hwe/sammo/Command/General/che_사기진작.php +++ b/hwe/sammo/Command/General/che_사기진작.php @@ -69,7 +69,7 @@ class che_사기진작 extends Command\GeneralCommand{ $db = DB::db(); $general = $this->generalObj; - $date = substr($general->getVar('turntime'),11,5); + $date = $general->getTurnTime($general::TURNTIME_HM); $score = Util::round($general->getLeadership() * 100 / $general->getVar('crew') * GameConst::$atmosDelta); $scoreText = number_format($score, 0); diff --git a/hwe/sammo/Command/General/che_상업투자.php b/hwe/sammo/Command/General/che_상업투자.php index d1f194a5..8f7f1363 100644 --- a/hwe/sammo/Command/General/che_상업투자.php +++ b/hwe/sammo/Command/General/che_상업투자.php @@ -150,7 +150,7 @@ class che_상업투자 extends Command\GeneralCommand{ $logger = $general->getLogger(); - $date = substr($general->getVar('turntime'),11,5); + $date = $general->getTurnTime($general::TURNTIME_HM); $score *= CriticalScoreEx($pick); $score = Util::round($score); diff --git a/hwe/sammo/Command/General/che_선동.php b/hwe/sammo/Command/General/che_선동.php index 437a76a7..72c55315 100644 --- a/hwe/sammo/Command/General/che_선동.php +++ b/hwe/sammo/Command/General/che_선동.php @@ -17,7 +17,7 @@ class che_선동 extends che_화계{ protected function affectDestCity(int $injuryCount){ $general = $this->generalObj; - $date = substr($general->getVar('turntime'),11,5); + $date = $general->getTurnTime($general::TURNTIME_HM); $logger = $general->getLogger(); diff --git a/hwe/sammo/Command/General/che_선양.php b/hwe/sammo/Command/General/che_선양.php index c01dd4d6..b1b1dae9 100644 --- a/hwe/sammo/Command/General/che_선양.php +++ b/hwe/sammo/Command/General/che_선양.php @@ -90,7 +90,7 @@ class che_선양 extends Command\GeneralCommand{ $db = DB::db(); $general = $this->generalObj; - $date = substr($general->getVar('turntime'),11,5); + $date = $general->getTurnTime($general::TURNTIME_HM); $destGeneral = $this->destGeneralObj; diff --git a/hwe/sammo/Command/General/che_소집해제.php b/hwe/sammo/Command/General/che_소집해제.php index 5ff6d5ed..4cb95fe7 100644 --- a/hwe/sammo/Command/General/che_소집해제.php +++ b/hwe/sammo/Command/General/che_소집해제.php @@ -59,7 +59,7 @@ class che_소집해제 extends Command\GeneralCommand{ $db = DB::db(); $general = $this->generalObj; - $date = substr($general->getVar('turntime'),11,5); + $date = $general->getTurnTime($general::TURNTIME_HM); $crew = $general->getVar('crew'); diff --git a/hwe/sammo/Command/General/che_요양.php b/hwe/sammo/Command/General/che_요양.php index 065df5d3..6d08fafb 100644 --- a/hwe/sammo/Command/General/che_요양.php +++ b/hwe/sammo/Command/General/che_요양.php @@ -59,7 +59,7 @@ class che_요양 extends Command\GeneralCommand{ $db = DB::db(); $general = $this->generalObj; - $date = substr($general->getVar('turntime'),11,5); + $date = $general->getTurnTime($general::TURNTIME_HM); $crew = $general->getVar('crew'); diff --git a/hwe/sammo/Command/General/che_이동.php b/hwe/sammo/Command/General/che_이동.php index 36ddb91c..c53de534 100644 --- a/hwe/sammo/Command/General/che_이동.php +++ b/hwe/sammo/Command/General/che_이동.php @@ -92,7 +92,7 @@ class che_이동 extends Command\GeneralCommand{ $env = $this->env; $general = $this->generalObj; - $date = substr($general->getVar('turntime'),11,5); + $date = $general->getTurnTime($general::TURNTIME_HM); $destCityName = $this->destCity['name']; $destCityID = $this->destCity['city']; diff --git a/hwe/sammo/Command/General/che_인재탐색.php b/hwe/sammo/Command/General/che_인재탐색.php index 9df247b7..a2a4c7f4 100644 --- a/hwe/sammo/Command/General/che_인재탐색.php +++ b/hwe/sammo/Command/General/che_인재탐색.php @@ -76,7 +76,7 @@ class che_인재탐색 extends Command\GeneralCommand{ $env = $this->env; $general = $this->generalObj; - $date = substr($general->getVar('turntime'),11,5); + $date = $general->getTurnTime($general::TURNTIME_HM); $nationID = $general->getNationID(); diff --git a/hwe/sammo/Command/General/che_임관.php b/hwe/sammo/Command/General/che_임관.php index 1c69da87..dd9cd8a2 100644 --- a/hwe/sammo/Command/General/che_임관.php +++ b/hwe/sammo/Command/General/che_임관.php @@ -122,7 +122,7 @@ class che_임관 extends Command\GeneralCommand{ $env = $this->env; $general = $this->generalObj; - $date = substr($general->getVar('turntime'),11,5); + $date = $general->getTurnTime($general::TURNTIME_HM); $generalName = $general->getName(); $josaYi = JosaUtil::pick($generalName, '이'); diff --git a/hwe/sammo/Command/General/che_장비매매.php b/hwe/sammo/Command/General/che_장비매매.php index d86f8b05..8464fc5d 100644 --- a/hwe/sammo/Command/General/che_장비매매.php +++ b/hwe/sammo/Command/General/che_장비매매.php @@ -119,7 +119,7 @@ class che_장비매매 extends Command\GeneralCommand{ $db = DB::db(); $general = $this->generalObj; - $date = substr($general->getVar('turntime'),11,5); + $date = $general->getTurnTime($general::TURNTIME_HM); $itemType = $this->arg['itemType']; $itemCode = $this->arg['itemCode']; diff --git a/hwe/sammo/Command/General/che_전투태세.php b/hwe/sammo/Command/General/che_전투태세.php index 36b88cfa..3075d50b 100644 --- a/hwe/sammo/Command/General/che_전투태세.php +++ b/hwe/sammo/Command/General/che_전투태세.php @@ -72,7 +72,7 @@ class che_전투태세 extends Command\GeneralCommand{ $db = DB::db(); $general = $this->generalObj; - $date = substr($general->getVar('turntime'),11,5); + $date = $general->getTurnTime($general::TURNTIME_HM); $lastTurn = $general->getLastTurn(); $turnResult = new LastTurn(static::getName(), $this->arg); diff --git a/hwe/sammo/Command/General/che_정착장려.php b/hwe/sammo/Command/General/che_정착장려.php index 7aecbfab..75afcf9d 100644 --- a/hwe/sammo/Command/General/che_정착장려.php +++ b/hwe/sammo/Command/General/che_정착장려.php @@ -115,7 +115,7 @@ class che_정착장려 extends Command\GeneralCommand{ $logger = $general->getLogger(); - $date = substr($general->getVar('turntime'),11,5); + $date = $general->getTurnTime($general::TURNTIME_HM); $score *= CriticalScoreEx($pick); $score = Util::round($score); diff --git a/hwe/sammo/Command/General/che_주민선정.php b/hwe/sammo/Command/General/che_주민선정.php index b5ba786d..03e00ab9 100644 --- a/hwe/sammo/Command/General/che_주민선정.php +++ b/hwe/sammo/Command/General/che_주민선정.php @@ -116,7 +116,7 @@ class che_주민선정 extends Command\GeneralCommand{ $logger = $general->getLogger(); - $date = substr($general->getVar('turntime'),11,5); + $date = $general->getTurnTime($general::TURNTIME_HM); $score *= CriticalScoreEx($pick); diff --git a/hwe/sammo/Command/General/che_증여.php b/hwe/sammo/Command/General/che_증여.php index 2f18e9ae..959049f2 100644 --- a/hwe/sammo/Command/General/che_증여.php +++ b/hwe/sammo/Command/General/che_증여.php @@ -113,7 +113,7 @@ class che_증여 extends Command\GeneralCommand{ $db = DB::db(); $general = $this->generalObj; - $date = substr($general->getVar('turntime'),11,5); + $date = $general->getTurnTime($general::TURNTIME_HM); $isGold = $this->arg['isGold']; $amount = $this->arg['amount']; diff --git a/hwe/sammo/Command/General/che_집합.php b/hwe/sammo/Command/General/che_집합.php index 5455ead3..ac081c91 100644 --- a/hwe/sammo/Command/General/che_집합.php +++ b/hwe/sammo/Command/General/che_집합.php @@ -68,7 +68,7 @@ class che_집합 extends Command\GeneralCommand{ $env = $this->env; $general = $this->generalObj; - $date = substr($general->getVar('turntime'),11,5); + $date = $general->getTurnTime($general::TURNTIME_HM); $cityID = $this->city['city']; $cityName = $this->city['name']; diff --git a/hwe/sammo/Command/General/che_징병.php b/hwe/sammo/Command/General/che_징병.php index 7008e539..f53e654d 100644 --- a/hwe/sammo/Command/General/che_징병.php +++ b/hwe/sammo/Command/General/che_징병.php @@ -138,7 +138,7 @@ class che_징병 extends Command\GeneralCommand{ $db = DB::db(); $general = $this->generalObj; - $date = substr($general->getVar('turntime'),11,5); + $date = $general->getTurnTime($general::TURNTIME_HM); $reqCrew = $this->reqCrew; $reqCrewText = number_format($reqCrew); diff --git a/hwe/sammo/Command/General/che_첩보.php b/hwe/sammo/Command/General/che_첩보.php index d6d4a43f..1669bd08 100644 --- a/hwe/sammo/Command/General/che_첩보.php +++ b/hwe/sammo/Command/General/che_첩보.php @@ -93,7 +93,7 @@ class che_첩보 extends Command\GeneralCommand{ $env = $this->env; $general = $this->generalObj; - $date = substr($general->getVar('turntime'),11,5); + $date = $general->getTurnTime($general::TURNTIME_HM); $destCity = $this->destCity; diff --git a/hwe/sammo/Command/General/che_출병.php b/hwe/sammo/Command/General/che_출병.php index 894c3568..4cd700ab 100644 --- a/hwe/sammo/Command/General/che_출병.php +++ b/hwe/sammo/Command/General/che_출병.php @@ -99,7 +99,7 @@ class che_출병 extends Command\GeneralCommand{ $general = $this->generalObj; $attackerNationID = $general->getNationID(); $defenderNationID = $this->destCity['nation']; - $date = substr($general->getVar('turntime'),11,5); + $date = $general->getTurnTime($general::TURNTIME_HM); $defenderCityName = $this->destCity['name']; $defenderCityID = $this->destCity['city']; diff --git a/hwe/sammo/Command/General/che_탈취.php b/hwe/sammo/Command/General/che_탈취.php index aa6b50b2..65e93ba4 100644 --- a/hwe/sammo/Command/General/che_탈취.php +++ b/hwe/sammo/Command/General/che_탈취.php @@ -18,7 +18,7 @@ class che_탈취 extends che_화계{ protected function affectDestCity(int $injuryCount){ $general = $this->generalObj; $nationID = $general->getNationID(); - $date = substr($general->getVar('turntime'),11,5); + $date = $general->getTurnTime($general::TURNTIME_HM); $logger = $general->getLogger(); diff --git a/hwe/sammo/Command/General/che_파괴.php b/hwe/sammo/Command/General/che_파괴.php index 4acb7623..54ffd3ed 100644 --- a/hwe/sammo/Command/General/che_파괴.php +++ b/hwe/sammo/Command/General/che_파괴.php @@ -17,7 +17,7 @@ class che_파괴 extends che_화계{ protected function affectDestCity(int $injuryCount){ $general = $this->generalObj; - $date = substr($general->getVar('turntime'),11,5); + $date = $general->getTurnTime($general::TURNTIME_HM); $logger = $general->getLogger(); diff --git a/hwe/sammo/Command/General/che_하야.php b/hwe/sammo/Command/General/che_하야.php index 63c4af1a..46beb856 100644 --- a/hwe/sammo/Command/General/che_하야.php +++ b/hwe/sammo/Command/General/che_하야.php @@ -66,7 +66,7 @@ class che_하야 extends Command\GeneralCommand{ $env = $this->env; $general = $this->generalObj; - $date = substr($general->getVar('turntime'),11,5); + $date = $general->getTurnTime($general::TURNTIME_HM); $generalName = $general->getName(); $josaYi = JosaUtil::pick($generalName, '이'); diff --git a/hwe/sammo/Command/General/che_해산.php b/hwe/sammo/Command/General/che_해산.php index d154db72..30649a33 100644 --- a/hwe/sammo/Command/General/che_해산.php +++ b/hwe/sammo/Command/General/che_해산.php @@ -14,7 +14,7 @@ use \sammo\{ use \sammo\Constraint\Constraint; use \sammo\Constraint\ConstraintHelper; use sammo\CityConst; -use function sammo\getNationTypeClass; +use function sammo\buildNationTypeClass; use function sammo\refreshNationStaticInfo; use function sammo\GetNationColors; use function sammo\getAllNationStaticInfo; @@ -67,7 +67,7 @@ class che_해산 extends Command\GeneralCommand{ $env = $this->env; $general = $this->generalObj; - $date = substr($general->getVar('turntime'),11,5); + $date = $general->getTurnTime($general::TURNTIME_HM); $generalName = $general->getName(); $josaYi = JosaUtil::pick($generalName, '이'); diff --git a/hwe/sammo/Command/General/che_헌납.php b/hwe/sammo/Command/General/che_헌납.php index 109f3d4f..2aec1245 100644 --- a/hwe/sammo/Command/General/che_헌납.php +++ b/hwe/sammo/Command/General/che_헌납.php @@ -93,7 +93,7 @@ class che_헌납 extends Command\GeneralCommand{ $db = DB::db(); $general = $this->generalObj; - $date = substr($general->getVar('turntime'),11,5); + $date = $general->getTurnTime($general::TURNTIME_HM); $isGold = $this->arg['isGold']; $amount = $this->arg['amount']; diff --git a/hwe/sammo/Command/General/che_화계.php b/hwe/sammo/Command/General/che_화계.php index dedb6eaf..e2412e17 100644 --- a/hwe/sammo/Command/General/che_화계.php +++ b/hwe/sammo/Command/General/che_화계.php @@ -153,7 +153,7 @@ class che_화계 extends Command\GeneralCommand{ protected function affectDestCity(int $injuryCount){ $general = $this->generalObj; - $date = substr($general->getVar('turntime'),11,5); + $date = $general->getTurnTime($general::TURNTIME_HM); $logger = $general->getLogger(); @@ -198,7 +198,7 @@ class che_화계 extends Command\GeneralCommand{ $env = $this->env; $general = $this->generalObj; - $date = substr($general->getVar('turntime'),11,5); + $date = $general->getTurnTime($general::TURNTIME_HM); $destCity = $this->destCity; diff --git a/hwe/sammo/Command/General/che_훈련.php b/hwe/sammo/Command/General/che_훈련.php index e4538b75..2f5aa367 100644 --- a/hwe/sammo/Command/General/che_훈련.php +++ b/hwe/sammo/Command/General/che_훈련.php @@ -65,7 +65,7 @@ class che_훈련 extends Command\GeneralCommand{ $db = DB::db(); $general = $this->generalObj; - $date = substr($general->getVar('turntime'),11,5); + $date = $general->getTurnTime($general::TURNTIME_HM); $score = Util::round($general->getLeadership() * 100 / $general->getVar('crew') * GameConst::$trainDelta); $scoreText = number_format($score, 0); diff --git a/hwe/sammo/Command/General/휴식.php b/hwe/sammo/Command/General/휴식.php index 68241f4c..2c07e0c6 100644 --- a/hwe/sammo/Command/General/휴식.php +++ b/hwe/sammo/Command/General/휴식.php @@ -33,7 +33,7 @@ class 휴식 extends Command\GeneralCommand{ public function run():bool{ $general = $this->generalObj; $logger = $general->getLogger(); - $date = substr($general->getVar('turntime'),11,5); + $date = $general->getTurnTime($general::TURNTIME_HM); $logger->pushGeneralActionLog("아무것도 실행하지 않았습니다. <1>$date"); $general->setResultTurn(new LastTurn()); diff --git a/hwe/sammo/Command/Nation/che_몰수.php b/hwe/sammo/Command/Nation/che_몰수.php index 50686507..572b4f4b 100644 --- a/hwe/sammo/Command/Nation/che_몰수.php +++ b/hwe/sammo/Command/Nation/che_몰수.php @@ -107,7 +107,7 @@ class che_몰수 extends Command\NationCommand{ $db = DB::db(); $general = $this->generalObj; - $date = substr($general->getVar('turntime'),11,5); + $date = $general->getTurnTime($general::TURNTIME_HM); $nation = $this->nation; $nationID = $nation['nation']; diff --git a/hwe/sammo/Command/Nation/che_발령.php b/hwe/sammo/Command/Nation/che_발령.php index 279ce518..2acc6733 100644 --- a/hwe/sammo/Command/Nation/che_발령.php +++ b/hwe/sammo/Command/Nation/che_발령.php @@ -104,7 +104,7 @@ class che_발령 extends Command\NationCommand{ $general = $this->generalObj; $generalName = $general->getName(); - $date = substr($general->getVar('turntime'),11,5); + $date = $general->getTurnTime($general::TURNTIME_HM); $destCity = $this->destCity; $destCityID = $destCity['city']; diff --git a/hwe/sammo/Command/Nation/che_불가침제의.php b/hwe/sammo/Command/Nation/che_불가침제의.php index 83af5128..157760f5 100644 --- a/hwe/sammo/Command/Nation/che_불가침제의.php +++ b/hwe/sammo/Command/Nation/che_불가침제의.php @@ -120,7 +120,7 @@ class che_불가침제의 extends Command\NationCommand{ $general = $this->generalObj; $generalName = $general->getName(); - $date = substr($general->getVar('turntime'),11,5); + $date = $general->getTurnTime($general::TURNTIME_HM); $nation = $this->nation; $nationID = $nation['nation']; diff --git a/hwe/sammo/Command/Nation/che_선전포고.php b/hwe/sammo/Command/Nation/che_선전포고.php index dbbceabf..6188df69 100644 --- a/hwe/sammo/Command/Nation/che_선전포고.php +++ b/hwe/sammo/Command/Nation/che_선전포고.php @@ -106,7 +106,7 @@ class che_선전포고 extends Command\NationCommand{ $general = $this->generalObj; $generalName = $general->getName(); - $date = substr($general->getVar('turntime'),11,5); + $date = $general->getTurnTime($general::TURNTIME_HM); $nation = $this->nation; $nationID = $nation['nation']; @@ -158,7 +158,7 @@ class che_선전포고 extends Command\NationCommand{ $src, $dest, $text, - new \DateTime($general->getVar('turntime')), + new \DateTime($general->getTurnTime()), new \DateTime('9999-12-31'), [] ); diff --git a/hwe/sammo/Command/Nation/che_포상.php b/hwe/sammo/Command/Nation/che_포상.php index 04e51aa0..d6a2004c 100644 --- a/hwe/sammo/Command/Nation/che_포상.php +++ b/hwe/sammo/Command/Nation/che_포상.php @@ -108,7 +108,7 @@ class che_포상 extends Command\NationCommand{ $db = DB::db(); $general = $this->generalObj; - $date = substr($general->getVar('turntime'),11,5); + $date = $general->getTurnTime($general::TURNTIME_HM); $nation = $this->nation; $nationID = $nation['nation']; diff --git a/hwe/sammo/General.php b/hwe/sammo/General.php index 4baf14cc..35f639d6 100644 --- a/hwe/sammo/General.php +++ b/hwe/sammo/General.php @@ -35,6 +35,12 @@ class General implements iAction{ protected $lastTurn = null; protected $resultTurn = null; + const TURNTIME_FULL_MS = -1; + const TURNTIME_FULL = 0; + const TURNTIME_HMS = 1; + const TURNTIME_HM = 2; + + /** * @param array $raw DB row값. * @param null|array $city DB city 테이블의 row값 @@ -86,6 +92,15 @@ class General implements iAction{ ); } + function getTurnTime(int $short=self::TURNTIME_FULL_MS){ + return [ + self::TURNTIME_FULL_MS=>function($turntime){return $turntime;}, + self::TURNTIME_FULL=>function($turntime){return substr($turntime, 0, 19);}, + self::TURNTIME_HMS=>function($turntime){return substr($turntime, 11, 8);}, + self::TURNTIME_HM=>function($turntime){return substr($turntime, 11, 5);}, + ][$short]($this->getVar('turntime')); + } + function deleteItem(string $itemKey='item'){ $this->setVar($itemKey, 0); $this->itemObjs[$itemKey] = new ActionItem\None(); diff --git a/hwe/sammo/GeneralAI.php b/hwe/sammo/GeneralAI.php index 4831daad..0b573651 100644 --- a/hwe/sammo/GeneralAI.php +++ b/hwe/sammo/GeneralAI.php @@ -116,6 +116,12 @@ class GeneralAI{ $nationID = $this->general->getNationID(); $env = $this->env; + if(Util::joinYearMonth($env['year'], $env['month']) <= Util::joinYearMonth($env['startyear']+2, 5)){ + $this->dipState = self::d평화; + $this->attackable = false; + return; + } + $frontStatus = $db->queryFirstField('SELECT max(front) FROM city WHERE nation=%i AND supply=1', $nationID); // 공격가능도시 있으면 $this->attackable = ($frontStatus !== null)?$frontStatus:false; diff --git a/hwe/sammo/TurnExecutionHelper.php b/hwe/sammo/TurnExecutionHelper.php index fd9666fb..09a9a0a6 100644 --- a/hwe/sammo/TurnExecutionHelper.php +++ b/hwe/sammo/TurnExecutionHelper.php @@ -47,7 +47,7 @@ class TurnExecutionHelper return false; } - $date = substr($general->getVar('turntime'),11,5); + $date = $general->getTurnTime($general::TURNTIME_HM); $logger = $general->getLogger(); if($blocked == 2){ $general->increaseVarWithLimit('killturn', -1, 0); @@ -76,7 +76,7 @@ class TurnExecutionHelper while(true){ $failReason = $commandObj->testRunnable(); if($failReason){ - $date = substr($general->getVar('turntime'),11,5); + $date = $general->getTurnTime($general::TURNTIME_HM); $failString = $commandObj->getFailString(); $text = "{$failString} <1>{$date}"; $general->getLogger()->pushGeneralActionLog($text); @@ -110,7 +110,7 @@ class TurnExecutionHelper while(true){ $failReason = $commandObj->testRunnable(); if($failReason){ - $date = substr($general->getVar('turntime'),11,5); + $date = $general->getTurnTime($general::TURNTIME_HM); $failString = $commandObj->getFailString(); $text = "{$failString} <1>{$date}"; $general->getLogger()->pushGeneralActionLog($text); @@ -194,7 +194,7 @@ class TurnExecutionHelper $general->rebirth(); } - $turntime = addTurn($general->getVar('turntime'), $gameStor->turnterm); + $turntime = addTurn($general->getTurnTime(), $gameStor->turnterm); $general->setVar('turntime', $turntime); } @@ -267,7 +267,7 @@ WHERE turntime < %s ORDER BY turntime ASC, `no` ASC', pullNationCommand($general->getVar('nation'), $general->getVar('level')); pullGeneralCommand($general->getID()); - $currentTurn = $general->getVar('turntime'); + $currentTurn = $general->getTurnTime(); $general->increaseVarWithLimit('myset', 1, null, 3); $turnObj->updateTurnTime(); @@ -280,7 +280,7 @@ WHERE turntime < %s ORDER BY turntime ASC, `no` ASC', } static public function executeAllCommand(){ - if(!timeover()) { return; } + //if(!timeover()) { return; } $db = DB::db(); @@ -395,10 +395,9 @@ WHERE turntime < %s ORDER BY turntime ASC, `no` ASC', // 다음달로 넘김 $prevTurn = $nextTurn; $nextTurn = addTurn($prevTurn, $gameStor->turnterm); + $gameStor->turntime = $prevTurn; } - // 이시각까지는 업데이트 완료했음 - $gameStor->turntime = $prevTurn; // 그 시각 년도,월 저장 turnDate($prevTurn); // 현재시간의 월턴시간 이후 분단위 장수 처리 diff --git a/hwe/sammo/WarUnitGeneral.php b/hwe/sammo/WarUnitGeneral.php index c01ab288..7e7a8c59 100644 --- a/hwe/sammo/WarUnitGeneral.php +++ b/hwe/sammo/WarUnitGeneral.php @@ -49,10 +49,10 @@ class WarUnitGeneral extends WarUnit{ $this->general->increaseVar('warnum', 1); if($this->isAttacker){ - $general->updateVar('recwar', $general->getVar('turntime')); + $general->updateVar('recwar', $general->getTurnTime()); } else if($oppose !== null){ - $general->updateVar('recwar', $oppose->getVar('turntime')); + $general->updateVar('recwar', $oppose->getTurnTime()); } } diff --git a/src/sammo/Util.php b/src/sammo/Util.php index ddef3528..1911f78e 100644 --- a/src/sammo/Util.php +++ b/src/sammo/Util.php @@ -630,4 +630,74 @@ class Util extends \utilphp\util return "`{$value}`"; }, $array)); } + + public static function joinYearMonth(int $year, int $month):int{ + return $year * 12 + $month - 1; + } + + /** + * 변수의 값을 첫번째 값부터 비교해서 대소를 반환 + * 길이가 다른 경우, 앞의 결과를 먼저 비교한 뒤, 짧은쪽의 값을 null으로 가정하여 길이 처리 + */ + public static function arrayCompare(iterable $lhs, iterable $rhs, ?callable $comp=null){ + $lhsIter = new \Iterator($lhs); + $rhsIter = new \Iterator($rhs); + + while($lhsIter->valid() && $rhsIter->valid()){ + $lhsVal = $lhsIter->current(); + $rhsVal = $rhsIter->current(); + + if($comp !== null){ + $compResult = $comp($lhsVal, $rhsVal); + } + else{ + $compResult = $lhsVal <=> $rhsVal; + } + + if($compResult !== 0){ + return $compResult; + } + + $lhsIter->next(); + $rhsIter->next(); + } + + $rhsVal = null; + while($lhsIter->valid()){ + $lhsVal = $lhsIter->current(); + + if($comp !== null){ + $compResult = $comp($lhsVal, $rhsVal); + } + else{ + $compResult = $lhsVal <=> $rhsVal; + } + + if($compResult !== 0){ + return $compResult; + } + + $lhsIter->next(); + } + + $lhsVal = null; + while($rhsIter->valid()){ + $rhsVal = $rhsIter->current(); + + if($comp !== null){ + $compResult = $comp($lhsVal, $rhsVal); + } + else{ + $compResult = $lhsVal <=> $rhsVal; + } + + if($compResult !== 0){ + return $compResult; + } + + $rhsIter->next(); + } + + return 0; + } };
 {$generalObj->getName()} 【 {$levelText} | {$call} | {$color}{$injury} 】 ".substr($generalObj->getVar('turntime'), 11, 8)."{$generalObj->getName()} 【 {$levelText} | {$call} | {$color}{$injury} 】 ".$generalObj->getTurnTime($generalObj::TURNTIME_HMS)."
통솔