preprocessCommand 정리
This commit is contained in:
@@ -0,0 +1,35 @@
|
|||||||
|
<?php
|
||||||
|
namespace sammo\GeneralTrigger;
|
||||||
|
use sammo\BaseGeneralTrigger;
|
||||||
|
use sammo\General;
|
||||||
|
use sammo\ActionLogger;
|
||||||
|
use sammo\DB;
|
||||||
|
use sammo\Util;
|
||||||
|
use sammo\JosaUtil;
|
||||||
|
|
||||||
|
class che_강제소집해제 extends BaseGeneralTrigger{
|
||||||
|
static protected $priority = 50000;
|
||||||
|
|
||||||
|
public function action(?array $env=null, $arg=null):?array{
|
||||||
|
|
||||||
|
/** @var \sammo\General $general */
|
||||||
|
$general = $this->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(
|
||||||
|
'군량이 모자라 병사들이 <R>소집해제</>되었습니다!', ActionLogger::PLAIN
|
||||||
|
);
|
||||||
|
}
|
||||||
|
$general->activateSkill('pre.소집해제');
|
||||||
|
}
|
||||||
|
|
||||||
|
return $env;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -8,7 +8,7 @@ use sammo\Util;
|
|||||||
use sammo\JosaUtil;
|
use sammo\JosaUtil;
|
||||||
|
|
||||||
class che_도시치료 extends BaseGeneralTrigger{
|
class che_도시치료 extends BaseGeneralTrigger{
|
||||||
static protected $priority = 50000;
|
static protected $priority = 10000;
|
||||||
|
|
||||||
public function action(?array $env=null, $arg=null):?array{
|
public function action(?array $env=null, $arg=null):?array{
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,25 @@
|
|||||||
|
<?php
|
||||||
|
namespace sammo\GeneralTrigger;
|
||||||
|
use sammo\BaseGeneralTrigger;
|
||||||
|
use sammo\General;
|
||||||
|
use sammo\ActionLogger;
|
||||||
|
use sammo\DB;
|
||||||
|
use sammo\Util;
|
||||||
|
use sammo\JosaUtil;
|
||||||
|
|
||||||
|
class che_부상경감 extends BaseGeneralTrigger{
|
||||||
|
static protected $priority = 30000;
|
||||||
|
|
||||||
|
public function action(?array $env=null, $arg=null):?array{
|
||||||
|
|
||||||
|
/** @var \sammo\General $general */
|
||||||
|
$general = $this->object;
|
||||||
|
|
||||||
|
if($general->getVar('injury') && !$general->hasActivatedSkill('pre.부상경감')){
|
||||||
|
$general->increaseVarWithLimit('injury', -10, 0);
|
||||||
|
$general->activateSkill('pre.부상경감');
|
||||||
|
}
|
||||||
|
|
||||||
|
return $env;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -33,29 +33,13 @@ class TurnExecutionHelper
|
|||||||
public function preprocessCommand(){
|
public function preprocessCommand(){
|
||||||
$general = $this->getGeneral();
|
$general = $this->getGeneral();
|
||||||
$caller = $general->getPreTurnExecuteTriggerList($general);
|
$caller = $general->getPreTurnExecuteTriggerList($general);
|
||||||
|
$caller->merge(new GeneralTriggerCaller([
|
||||||
|
new GeneralTrigger\che_부상경감($general),
|
||||||
|
new GeneralTrigger\che_강제소집해제($general),
|
||||||
|
]));
|
||||||
|
|
||||||
$caller->fire();
|
$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(
|
|
||||||
'군량이 모자라 병사들이 <R>소집해제</>되었습니다!', ActionLogger::PLAIN
|
|
||||||
);
|
|
||||||
}
|
|
||||||
$general->activateSkill('pre.소집해제');
|
|
||||||
}
|
|
||||||
|
|
||||||
$general->clearActivatedSkill();
|
$general->clearActivatedSkill();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user