diff --git a/hwe/sammo/GeneralTrigger/che_강제소집해제.php b/hwe/sammo/GeneralTrigger/che_강제소집해제.php new file mode 100644 index 00000000..4586d615 --- /dev/null +++ b/hwe/sammo/GeneralTrigger/che_강제소집해제.php @@ -0,0 +1,35 @@ +object; + + if($general->getVar('crew') >= 100){ + $currentRice = $general->getVar('rice'); + $consumeRice = Util::toInt($general->getVar('crew') / 100); + if($consumeRice <= $currentRice){ + $general->increaseVar('rice', -$consumeRice); + } + else{ + $general->setVar('rice', 0); + $general->getLogger()->pushGeneralActionLog( + '군량이 모자라 병사들이 소집해제되었습니다!', ActionLogger::PLAIN + ); + } + $general->activateSkill('pre.소집해제'); + } + + return $env; + } +} \ No newline at end of file diff --git a/hwe/sammo/GeneralTrigger/che_도시치료.php b/hwe/sammo/GeneralTrigger/che_도시치료.php index 39e7fcd4..5b9bcc88 100644 --- a/hwe/sammo/GeneralTrigger/che_도시치료.php +++ b/hwe/sammo/GeneralTrigger/che_도시치료.php @@ -8,7 +8,7 @@ use sammo\Util; use sammo\JosaUtil; class che_도시치료 extends BaseGeneralTrigger{ - static protected $priority = 50000; + static protected $priority = 10000; public function action(?array $env=null, $arg=null):?array{ diff --git a/hwe/sammo/GeneralTrigger/che_부상경감.php b/hwe/sammo/GeneralTrigger/che_부상경감.php new file mode 100644 index 00000000..00b01a5b --- /dev/null +++ b/hwe/sammo/GeneralTrigger/che_부상경감.php @@ -0,0 +1,25 @@ +object; + + if($general->getVar('injury') && !$general->hasActivatedSkill('pre.부상경감')){ + $general->increaseVarWithLimit('injury', -10, 0); + $general->activateSkill('pre.부상경감'); + } + + return $env; + } +} \ No newline at end of file diff --git a/hwe/sammo/TurnExecutionHelper.php b/hwe/sammo/TurnExecutionHelper.php index 29e238e2..a88025de 100644 --- a/hwe/sammo/TurnExecutionHelper.php +++ b/hwe/sammo/TurnExecutionHelper.php @@ -33,29 +33,13 @@ class TurnExecutionHelper public function preprocessCommand(){ $general = $this->getGeneral(); $caller = $general->getPreTurnExecuteTriggerList($general); + $caller->merge(new GeneralTriggerCaller([ + new GeneralTrigger\che_부상경감($general), + new GeneralTrigger\che_강제소집해제($general), + ])); $caller->fire(); - if($general->getVar('injury') && !$general->hasActivatedSkill('pre.부상경감')){ - $general->increaseVarWithLimit('injury', -10, 0); - $general->activateSkill('pre.부상경감'); - } - - if($general->getVar('crew') >= 100){ - $currentRice = $general->getVar('rice'); - $consumeRice = Util::toInt($general->getVar('crew') / 100); - if($consumeRice <= $currentRice){ - $general->increaseVar('rice', -$consumeRice); - } - else{ - $general->setVar('rice', 0); - $general->getLogger()->pushGeneralActionLog( - '군량이 모자라 병사들이 소집해제되었습니다!', ActionLogger::PLAIN - ); - } - $general->activateSkill('pre.소집해제'); - } - $general->clearActivatedSkill(); }