feat: StaticEventHandler 처리기 추가

- 커맨드 종료 시점에 호출
  - pre, post 각각이 필요한지는 논의 필요
  - 일단 용도에 따라 pre, post 둘중에 하나만 처리
- eventType으로는 full qualified class name 사용
  - 꼭 그럴필요는 없지만, 커맨드에 한해서는 이렇게
This commit is contained in:
2024-09-18 14:54:11 +00:00
parent 04a7a34fcc
commit 477b77b59f
79 changed files with 227 additions and 77 deletions
+23
View File
@@ -457,6 +457,29 @@ function buildWarUnitTriggerClass(?string $type, WarUnit $unit, ?array $args = n
return $class->newInstanceArgs(array_merge([$unit], $args)); return $class->newInstanceArgs(array_merge([$unit], $args));
} }
function getStaticEventClass(string $type){
static $basePath = __NAMESPACE__.'\\StaticEvent\\';
$classPath = ($basePath.$type);
if(class_exists($classPath)){
return $classPath;
}
throw new \InvalidArgumentException("{$type}은 StaticEvent가 아님");
}
function buildStaticEventClass(?string $type):BaseStaticEvent{
static $cache = [];
if(key_exists($type, $cache)){
return $cache[$type];
}
$class = getStaticEventClass($type);
$obj = new $class();
$cache[$type] = $obj;
return $obj;
}
function getGeneralPoolClass(string $type){ function getGeneralPoolClass(string $type){
static $basePath = __NAMESPACE__.'\\GeneralPool\\'; static $basePath = __NAMESPACE__.'\\GeneralPool\\';
$classPath = ($basePath.$type); $classPath = ($basePath.$type);
+1 -1
View File
@@ -7,5 +7,5 @@ abstract class BaseStaticEvent {
} }
abstract function run(General $general, array $env, array $params): bool | string; abstract function run(GeneralLite|General $general, null|GeneralLite|General $destGeneral, array $env, array $params): bool | string;
} }
+3 -1
View File
@@ -7,7 +7,8 @@ use \sammo\{
CityConst, CityConst,
ActionLogger, ActionLogger,
LastTurn, LastTurn,
Command Command,
StaticEventHandler
}; };
use \sammo\Constraint\Constraint; use \sammo\Constraint\Constraint;
@@ -96,6 +97,7 @@ class che_NPC능동 extends Command\GeneralCommand{
$this->setResultTurn(new LastTurn(static::getName(), $this->arg)); $this->setResultTurn(new LastTurn(static::getName(), $this->arg));
} }
StaticEventHandler::handleEvent($this->generalObj, $this->destGeneralObj, $this::class, $this->env, $this->arg);
$general->applyDB($db); $general->applyDB($db);
return true; return true;
+2 -3
View File
@@ -12,8 +12,7 @@ use function sammo\tryUniqueItemLottery;
use \sammo\Constraint\ConstraintHelper; use \sammo\Constraint\ConstraintHelper;
use sammo\CityConst; use sammo\CityConst;
use sammo\StaticEventHandler;
class che_강행 extends Command\GeneralCommand class che_강행 extends Command\GeneralCommand
{ {
@@ -158,8 +157,8 @@ class che_강행 extends Command\GeneralCommand
$general->increaseVar('leadership_exp', 1); $general->increaseVar('leadership_exp', 1);
$this->setResultTurn(new LastTurn(static::getName(), $this->arg)); $this->setResultTurn(new LastTurn(static::getName(), $this->arg));
$general->checkStatChange(); $general->checkStatChange();
StaticEventHandler::handleEvent($this->generalObj, $this->destGeneralObj, $this::class, $this->env, $this->arg);
tryUniqueItemLottery(\sammo\genGenericUniqueRNGFromGeneral($general, static::$actionName), $general); tryUniqueItemLottery(\sammo\genGenericUniqueRNGFromGeneral($general, static::$actionName), $general);
$general->applyDB($db); $general->applyDB($db);
return true; return true;
+3 -1
View File
@@ -7,7 +7,8 @@ use \sammo\{
ActionLogger, ActionLogger,
GameConst, GameUnitConst, GameConst, GameUnitConst,
LastTurn, LastTurn,
Command Command,
StaticEventHandler
}; };
@@ -174,6 +175,7 @@ class che_거병 extends Command\GeneralCommand{
$this->setResultTurn(new LastTurn(static::getName(), $this->arg)); $this->setResultTurn(new LastTurn(static::getName(), $this->arg));
$general->checkStatChange(); $general->checkStatChange();
StaticEventHandler::handleEvent($this->generalObj, $this->destGeneralObj, $this::class, $this->env, $this->arg);
tryUniqueItemLottery(\sammo\genGenericUniqueRNGFromGeneral($general, static::$actionName), $general); tryUniqueItemLottery(\sammo\genGenericUniqueRNGFromGeneral($general, static::$actionName), $general);
$general->applyDB($db); $general->applyDB($db);
+2
View File
@@ -19,6 +19,7 @@ use function \sammo\getAllNationStaticInfo;
use \sammo\Constraint\ConstraintHelper; use \sammo\Constraint\ConstraintHelper;
use sammo\Enums\InheritanceKey; use sammo\Enums\InheritanceKey;
use sammo\Enums\PenaltyKey; use sammo\Enums\PenaltyKey;
use sammo\StaticEventHandler;
use function sammo\buildNationTypeClass; use function sammo\buildNationTypeClass;
use function sammo\genGenericUniqueRNGFromGeneral; use function sammo\genGenericUniqueRNGFromGeneral;
@@ -205,6 +206,7 @@ class che_건국 extends Command\GeneralCommand
$general->increaseInheritancePoint(InheritanceKey::unifier, 250); $general->increaseInheritancePoint(InheritanceKey::unifier, 250);
$this->setResultTurn(new LastTurn(static::getName(), $this->arg)); $this->setResultTurn(new LastTurn(static::getName(), $this->arg));
$general->checkStatChange(); $general->checkStatChange();
StaticEventHandler::handleEvent($this->generalObj, $this->destGeneralObj, $this::class, $this->env, $this->arg);
tryUniqueItemLottery(genGenericUniqueRNGFromGeneral($general, static::$actionName), $general, '건국'); tryUniqueItemLottery(genGenericUniqueRNGFromGeneral($general, static::$actionName), $general, '건국');
$general->applyDB($db); $general->applyDB($db);
+3 -1
View File
@@ -7,7 +7,8 @@ use \sammo\{
ActionLogger, ActionLogger,
GameConst, GameUnitConst, GameConst, GameUnitConst,
LastTurn, LastTurn,
Command Command,
StaticEventHandler
}; };
use \sammo\Constraint\Constraint; use \sammo\Constraint\Constraint;
@@ -112,6 +113,7 @@ class che_견문 extends Command\GeneralCommand{
$general->addExperience($exp); $general->addExperience($exp);
$this->setResultTurn(new LastTurn(static::getName(), $this->arg)); $this->setResultTurn(new LastTurn(static::getName(), $this->arg));
$general->checkStatChange(); $general->checkStatChange();
StaticEventHandler::handleEvent($this->generalObj, $this->destGeneralObj, $this::class, $this->env, $this->arg);
tryUniqueItemLottery(\sammo\genGenericUniqueRNGFromGeneral($general, static::$actionName), $general); tryUniqueItemLottery(\sammo\genGenericUniqueRNGFromGeneral($general, static::$actionName), $general);
$general->applyDB($db); $general->applyDB($db);
@@ -9,7 +9,8 @@ use \sammo\{
ActionLogger, ActionLogger,
GameConst, GameUnitConst, GameConst, GameUnitConst,
LastTurn, LastTurn,
Command Command,
StaticEventHandler
}; };
use \sammo\Constraint\Constraint; use \sammo\Constraint\Constraint;
@@ -178,6 +179,7 @@ class che_군량매매 extends Command\GeneralCommand{
$this->setResultTurn(new LastTurn(static::getName(), $this->arg)); $this->setResultTurn(new LastTurn(static::getName(), $this->arg));
$general->checkStatChange(); $general->checkStatChange();
StaticEventHandler::handleEvent($this->generalObj, $this->destGeneralObj, $this::class, $this->env, $this->arg);
tryUniqueItemLottery(\sammo\genGenericUniqueRNGFromGeneral($general, static::$actionName), $general); tryUniqueItemLottery(\sammo\genGenericUniqueRNGFromGeneral($general, static::$actionName), $general);
$general->applyDB($db); $general->applyDB($db);
+3 -1
View File
@@ -7,7 +7,8 @@ use \sammo\{
ActionLogger, ActionLogger,
GameConst, GameUnitConst, GameConst, GameUnitConst,
LastTurn, LastTurn,
Command Command,
StaticEventHandler
}; };
use \sammo\Constraint\Constraint; use \sammo\Constraint\Constraint;
@@ -95,6 +96,7 @@ class che_귀환 extends Command\GeneralCommand{
$general->increaseVar('leadership_exp', 1); $general->increaseVar('leadership_exp', 1);
$this->setResultTurn(new LastTurn(static::getName(), $this->arg)); $this->setResultTurn(new LastTurn(static::getName(), $this->arg));
$general->checkStatChange(); $general->checkStatChange();
StaticEventHandler::handleEvent($this->generalObj, $this->destGeneralObj, $this::class, $this->env, $this->arg);
tryUniqueItemLottery(\sammo\genGenericUniqueRNGFromGeneral($general, static::$actionName), $general); tryUniqueItemLottery(\sammo\genGenericUniqueRNGFromGeneral($general, static::$actionName), $general);
$general->applyDB($db); $general->applyDB($db);
@@ -6,7 +6,8 @@ use \sammo\{
General, General,
ActionLogger, ActionLogger,
LastTurn, LastTurn,
Command, GameConst Command, GameConst,
StaticEventHandler
}; };
use function sammo\{ use function sammo\{
@@ -134,6 +135,7 @@ class che_기술연구 extends che_상업투자{
$this->setResultTurn(new LastTurn(static::getName(), $this->arg)); $this->setResultTurn(new LastTurn(static::getName(), $this->arg));
$general->checkStatChange(); $general->checkStatChange();
StaticEventHandler::handleEvent($this->generalObj, $this->destGeneralObj, $this::class, $this->env, $this->arg);
tryUniqueItemLottery(\sammo\genGenericUniqueRNGFromGeneral($general, static::$actionName), $general); tryUniqueItemLottery(\sammo\genGenericUniqueRNGFromGeneral($general, static::$actionName), $general);
$general->applyDB($db); $general->applyDB($db);
+3 -1
View File
@@ -7,7 +7,8 @@ use \sammo\{
ActionLogger, ActionLogger,
GameConst, GameUnitConst, GameConst, GameUnitConst,
LastTurn, LastTurn,
Command Command,
StaticEventHandler
}; };
@@ -126,6 +127,7 @@ class che_단련 extends Command\GeneralCommand{
$general->increaseVar($incStat, 1); $general->increaseVar($incStat, 1);
$this->setResultTurn(new LastTurn(static::getName(), $this->arg)); $this->setResultTurn(new LastTurn(static::getName(), $this->arg));
$general->checkStatChange(); $general->checkStatChange();
StaticEventHandler::handleEvent($this->generalObj, $this->destGeneralObj, $this::class, $this->env, $this->arg);
tryUniqueItemLottery(\sammo\genGenericUniqueRNGFromGeneral($general, static::$actionName), $general); tryUniqueItemLottery(\sammo\genGenericUniqueRNGFromGeneral($general, static::$actionName), $general);
$general->applyDB($db); $general->applyDB($db);
+3 -1
View File
@@ -9,7 +9,8 @@ use \sammo\{
General, General,
LastTurn, LastTurn,
Command, Command,
ScoutMessage ScoutMessage,
StaticEventHandler
}; };
use function \sammo\getAllNationStaticInfo; use function \sammo\getAllNationStaticInfo;
@@ -169,6 +170,7 @@ class che_등용 extends Command\GeneralCommand
$this->setResultTurn(new LastTurn(static::getName(), $this->arg)); $this->setResultTurn(new LastTurn(static::getName(), $this->arg));
$general->checkStatChange(); $general->checkStatChange();
StaticEventHandler::handleEvent($this->generalObj, $this->destGeneralObj, $this::class, $this->env, $this->arg);
tryUniqueItemLottery(\sammo\genGenericUniqueRNGFromGeneral($general, static::$actionName), $general); tryUniqueItemLottery(\sammo\genGenericUniqueRNGFromGeneral($general, static::$actionName), $general);
$general->applyDB($db); $general->applyDB($db);
@@ -6,6 +6,7 @@ use \sammo\{
General, General,
GameConst, GameConst,
Command, Command,
StaticEventHandler,
}; };
use \sammo\Constraint\ConstraintHelper; use \sammo\Constraint\ConstraintHelper;
@@ -207,6 +208,7 @@ class che_등용수락 extends Command\GeneralCommand{
} }
StaticEventHandler::handleEvent($this->generalObj, $this->destGeneralObj, $this::class, $this->env, $this->arg);
$general->applyDB($db); $general->applyDB($db);
$destGeneral->applyDB($db); $destGeneral->applyDB($db);
@@ -22,8 +22,7 @@ use \sammo\Constraint\ConstraintHelper;
use sammo\CityConst; use sammo\CityConst;
use sammo\Enums\InheritanceKey; use sammo\Enums\InheritanceKey;
use sammo\MustNotBeReachedException; use sammo\MustNotBeReachedException;
use sammo\StaticEventHandler;
class che_랜덤임관 extends Command\GeneralCommand class che_랜덤임관 extends Command\GeneralCommand
{ {
@@ -281,6 +280,7 @@ class che_랜덤임관 extends Command\GeneralCommand
$general->addExperience($exp); $general->addExperience($exp);
$this->setResultTurn(new LastTurn(static::getName(), $this->arg)); $this->setResultTurn(new LastTurn(static::getName(), $this->arg));
$general->checkStatChange(); $general->checkStatChange();
StaticEventHandler::handleEvent($this->generalObj, $this->destGeneralObj, $this::class, $this->env, $this->arg);
tryUniqueItemLottery(genGenericUniqueRNGFromGeneral($general, static::$actionName), $general, '랜덤 임관'); tryUniqueItemLottery(genGenericUniqueRNGFromGeneral($general, static::$actionName), $general, '랜덤 임관');
$general->applyDB($db); $general->applyDB($db);
@@ -8,7 +8,8 @@ use \sammo\{
GameConst, GameConst,
LastTurn, LastTurn,
GameUnitConst, GameUnitConst,
Command Command,
StaticEventHandler
}; };
use \sammo\Constraint\Constraint; use \sammo\Constraint\Constraint;
@@ -97,6 +98,7 @@ class che_모반시도 extends Command\GeneralCommand{
$this->setResultTurn(new LastTurn(static::getName(), $this->arg)); $this->setResultTurn(new LastTurn(static::getName(), $this->arg));
$general->increaseInheritancePoint(InheritanceKey::active_action, 1); $general->increaseInheritancePoint(InheritanceKey::active_action, 1);
$general->checkStatChange(); $general->checkStatChange();
StaticEventHandler::handleEvent($this->generalObj, $this->destGeneralObj, $this::class, $this->env, $this->arg);
$general->applyDB($db); $general->applyDB($db);
$lordGeneral->applyDB($db); $lordGeneral->applyDB($db);
@@ -18,6 +18,7 @@ use function \sammo\getAllNationStaticInfo;
use \sammo\Constraint\ConstraintHelper; use \sammo\Constraint\ConstraintHelper;
use sammo\Enums\InheritanceKey; use sammo\Enums\InheritanceKey;
use sammo\StaticEventHandler;
use function sammo\buildNationTypeClass; use function sammo\buildNationTypeClass;
use function sammo\genGenericUniqueRNGFromGeneral; use function sammo\genGenericUniqueRNGFromGeneral;
@@ -216,6 +217,7 @@ class che_무작위건국 extends Command\GeneralCommand
$general->increaseInheritancePoint(InheritanceKey::active_action, 1); $general->increaseInheritancePoint(InheritanceKey::active_action, 1);
$this->setResultTurn(new LastTurn(static::getName(), $this->arg)); $this->setResultTurn(new LastTurn(static::getName(), $this->arg));
$general->checkStatChange(); $general->checkStatChange();
StaticEventHandler::handleEvent($this->generalObj, $this->destGeneralObj, $this::class, $this->env, $this->arg);
tryUniqueItemLottery(genGenericUniqueRNGFromGeneral($general, static::$actionName), $general, '건국'); tryUniqueItemLottery(genGenericUniqueRNGFromGeneral($general, static::$actionName), $general, '건국');
$general->applyDB($db); $general->applyDB($db);
@@ -8,7 +8,8 @@ use \sammo\{
GameConst, GameConst,
LastTurn, LastTurn,
GameUnitConst, GameUnitConst,
Command Command,
StaticEventHandler
}; };
use function \sammo\getDomesticExpLevelBonus; use function \sammo\getDomesticExpLevelBonus;
@@ -148,6 +149,7 @@ class che_물자조달 extends Command\GeneralCommand{
$this->setResultTurn(new LastTurn(static::getName(), $this->arg)); $this->setResultTurn(new LastTurn(static::getName(), $this->arg));
$general->checkStatChange(); $general->checkStatChange();
StaticEventHandler::handleEvent($this->generalObj, $this->destGeneralObj, $this::class, $this->env, $this->arg);
tryUniqueItemLottery(\sammo\genGenericUniqueRNGFromGeneral($general, static::$actionName), $general); tryUniqueItemLottery(\sammo\genGenericUniqueRNGFromGeneral($general, static::$actionName), $general);
$general->applyDB($db); $general->applyDB($db);
+3 -1
View File
@@ -7,7 +7,8 @@ use \sammo\{
ActionLogger, ActionLogger,
GameConst, GameUnitConst, GameConst, GameUnitConst,
LastTurn, LastTurn,
Command Command,
StaticEventHandler
}; };
use \sammo\Constraint\Constraint; use \sammo\Constraint\Constraint;
@@ -124,6 +125,7 @@ class che_방랑 extends Command\GeneralCommand{
refreshNationStaticInfo(); refreshNationStaticInfo();
$general->increaseInheritancePoint(InheritanceKey::active_action, 1); $general->increaseInheritancePoint(InheritanceKey::active_action, 1);
$this->setResultTurn(new LastTurn(static::getName(), $this->arg)); $this->setResultTurn(new LastTurn(static::getName(), $this->arg));
StaticEventHandler::handleEvent($this->generalObj, $this->destGeneralObj, $this::class, $this->env, $this->arg);
$general->applyDB($db); $general->applyDB($db);
return true; return true;
@@ -11,7 +11,8 @@ use \sammo\{
GameConst, GameConst,
GameUnitConst, GameUnitConst,
LastTurn, LastTurn,
Command Command,
StaticEventHandler
}; };
use function \sammo\tryUniqueItemLottery; use function \sammo\tryUniqueItemLottery;
@@ -121,6 +122,7 @@ class che_사기진작 extends Command\GeneralCommand
$general->increaseVar('leadership_exp', 1); $general->increaseVar('leadership_exp', 1);
$this->setResultTurn(new LastTurn(static::getName(), $this->arg)); $this->setResultTurn(new LastTurn(static::getName(), $this->arg));
$general->checkStatChange(); $general->checkStatChange();
StaticEventHandler::handleEvent($this->generalObj, $this->destGeneralObj, $this::class, $this->env, $this->arg);
tryUniqueItemLottery(\sammo\genGenericUniqueRNGFromGeneral($general, static::$actionName), $general); tryUniqueItemLottery(\sammo\genGenericUniqueRNGFromGeneral($general, static::$actionName), $general);
$general->applyDB($db); $general->applyDB($db);
@@ -9,7 +9,8 @@ use \sammo\{
LastTurn, LastTurn,
GameUnitConst, GameUnitConst,
Command, Command,
RandUtil RandUtil,
StaticEventHandler
}; };
use function \sammo\getDomesticExpLevelBonus; use function \sammo\getDomesticExpLevelBonus;
@@ -218,6 +219,7 @@ class che_상업투자 extends Command\GeneralCommand{
$general->increaseVar(static::$statKey.'_exp', 1); $general->increaseVar(static::$statKey.'_exp', 1);
$this->setResultTurn(new LastTurn(static::getName(), $this->arg)); $this->setResultTurn(new LastTurn(static::getName(), $this->arg));
$general->checkStatChange(); $general->checkStatChange();
StaticEventHandler::handleEvent($this->generalObj, $this->destGeneralObj, $this::class, $this->env, $this->arg);
tryUniqueItemLottery(\sammo\genGenericUniqueRNGFromGeneral($general, static::$actionName), $general); tryUniqueItemLottery(\sammo\genGenericUniqueRNGFromGeneral($general, static::$actionName), $general);
$general->applyDB($db); $general->applyDB($db);
+2
View File
@@ -21,6 +21,7 @@ use \sammo\Constraint\Constraint;
use \sammo\Constraint\ConstraintHelper; use \sammo\Constraint\ConstraintHelper;
use sammo\Enums\GeneralQueryMode; use sammo\Enums\GeneralQueryMode;
use sammo\Enums\InheritanceKey; use sammo\Enums\InheritanceKey;
use sammo\StaticEventHandler;
class che_선양 extends Command\GeneralCommand class che_선양 extends Command\GeneralCommand
{ {
@@ -138,6 +139,7 @@ class che_선양 extends Command\GeneralCommand
$general->increaseInheritancePoint(InheritanceKey::active_action, 1); $general->increaseInheritancePoint(InheritanceKey::active_action, 1);
$this->setResultTurn(new LastTurn(static::getName(), $this->arg)); $this->setResultTurn(new LastTurn(static::getName(), $this->arg));
$general->checkStatChange(); $general->checkStatChange();
StaticEventHandler::handleEvent($this->generalObj, $this->destGeneralObj, $this::class, $this->env, $this->arg);
$general->applyDB($db); $general->applyDB($db);
$destGeneral->applyDB($db); $destGeneral->applyDB($db);
@@ -7,7 +7,8 @@ use \sammo\{
ActionLogger, ActionLogger,
GameConst, GameUnitConst, GameConst, GameUnitConst,
LastTurn, LastTurn,
Command Command,
StaticEventHandler
}; };
use \sammo\Constraint\Constraint; use \sammo\Constraint\Constraint;
@@ -80,6 +81,7 @@ class che_소집해제 extends Command\GeneralCommand{
$general->addDedication($ded); $general->addDedication($ded);
$this->setResultTurn(new LastTurn(static::getName(), $this->arg)); $this->setResultTurn(new LastTurn(static::getName(), $this->arg));
$general->checkStatChange(); $general->checkStatChange();
StaticEventHandler::handleEvent($this->generalObj, $this->destGeneralObj, $this::class, $this->env, $this->arg);
$general->applyDB($db); $general->applyDB($db);
return true; return true;
@@ -13,8 +13,7 @@ use function sammo\getDexLevelList;
use function \sammo\tryUniqueItemLottery; use function \sammo\tryUniqueItemLottery;
use \sammo\Constraint\ConstraintHelper; use \sammo\Constraint\ConstraintHelper;
use sammo\StaticEventHandler;
class che_숙련전환 extends Command\GeneralCommand class che_숙련전환 extends Command\GeneralCommand
{ {
@@ -179,6 +178,7 @@ class che_숙련전환 extends Command\GeneralCommand
$general->increaseVar('leadership_exp', 2); $general->increaseVar('leadership_exp', 2);
$this->setResultTurn(new LastTurn(static::getName(), $this->arg)); $this->setResultTurn(new LastTurn(static::getName(), $this->arg));
$general->checkStatChange(); $general->checkStatChange();
StaticEventHandler::handleEvent($this->generalObj, $this->destGeneralObj, $this::class, $this->env, $this->arg);
tryUniqueItemLottery(\sammo\genGenericUniqueRNGFromGeneral($general, static::$actionName), $general); tryUniqueItemLottery(\sammo\genGenericUniqueRNGFromGeneral($general, static::$actionName), $general);
$general->applyDB($db); $general->applyDB($db);
+3 -1
View File
@@ -7,7 +7,8 @@ use \sammo\{
ActionLogger, ActionLogger,
GameConst, GameUnitConst, GameConst, GameUnitConst,
LastTurn, LastTurn,
Command Command,
StaticEventHandler
}; };
use \sammo\Constraint\Constraint; use \sammo\Constraint\Constraint;
@@ -69,6 +70,7 @@ class che_요양 extends Command\GeneralCommand{
$general->addDedication($ded); $general->addDedication($ded);
$this->setResultTurn(new LastTurn(static::getName(), $this->arg)); $this->setResultTurn(new LastTurn(static::getName(), $this->arg));
$general->checkStatChange(); $general->checkStatChange();
StaticEventHandler::handleEvent($this->generalObj, $this->destGeneralObj, $this::class, $this->env, $this->arg);
$general->applyDB($db); $general->applyDB($db);
return true; return true;
+3 -1
View File
@@ -4,7 +4,8 @@ namespace sammo\Command\General;
use \sammo\{ use \sammo\{
DB, DB,
LastTurn, LastTurn,
Command Command,
StaticEventHandler
}; };
use \sammo\Constraint\ConstraintHelper; use \sammo\Constraint\ConstraintHelper;
@@ -75,6 +76,7 @@ class che_은퇴 extends Command\GeneralCommand{
$logger->pushGeneralActionLog("은퇴하였습니다. <1>$date</>"); $logger->pushGeneralActionLog("은퇴하였습니다. <1>$date</>");
$this->setResultTurn(new LastTurn(static::getName(), $this->arg)); $this->setResultTurn(new LastTurn(static::getName(), $this->arg));
StaticEventHandler::handleEvent($this->generalObj, $this->destGeneralObj, $this::class, $this->env, $this->arg);
tryUniqueItemLottery(\sammo\genGenericUniqueRNGFromGeneral($general, static::$actionName), $general); tryUniqueItemLottery(\sammo\genGenericUniqueRNGFromGeneral($general, static::$actionName), $general);
$general->applyDB($db); $general->applyDB($db);
+2 -2
View File
@@ -12,8 +12,7 @@ use function sammo\tryUniqueItemLottery;
use \sammo\Constraint\ConstraintHelper; use \sammo\Constraint\ConstraintHelper;
use sammo\CityConst; use sammo\CityConst;
use sammo\StaticEventHandler;
class che_이동 extends Command\GeneralCommand class che_이동 extends Command\GeneralCommand
{ {
@@ -164,6 +163,7 @@ class che_이동 extends Command\GeneralCommand
$general->increaseVar('leadership_exp', 1); $general->increaseVar('leadership_exp', 1);
$this->setResultTurn(new LastTurn(static::getName(), $this->arg)); $this->setResultTurn(new LastTurn(static::getName(), $this->arg));
$general->checkStatChange(); $general->checkStatChange();
StaticEventHandler::handleEvent($this->generalObj, $this->destGeneralObj, $this::class, $this->env, $this->arg);
tryUniqueItemLottery(\sammo\genGenericUniqueRNGFromGeneral($general, static::$actionName), $general); tryUniqueItemLottery(\sammo\genGenericUniqueRNGFromGeneral($general, static::$actionName), $general);
$general->applyDB($db); $general->applyDB($db);
@@ -18,6 +18,7 @@ use function \sammo\pickGeneralFromPool;
use \sammo\Constraint\Constraint; use \sammo\Constraint\Constraint;
use \sammo\Constraint\ConstraintHelper; use \sammo\Constraint\ConstraintHelper;
use sammo\Enums\InheritanceKey; use sammo\Enums\InheritanceKey;
use sammo\StaticEventHandler;
class che_인재탐색 extends Command\GeneralCommand class che_인재탐색 extends Command\GeneralCommand
{ {
@@ -218,6 +219,7 @@ class che_인재탐색 extends Command\GeneralCommand
$general->increaseVar($incStat, 3); $general->increaseVar($incStat, 3);
$this->setResultTurn(new LastTurn(static::getName(), $this->arg)); $this->setResultTurn(new LastTurn(static::getName(), $this->arg));
$general->checkStatChange(); $general->checkStatChange();
StaticEventHandler::handleEvent($this->generalObj, $this->destGeneralObj, $this::class, $this->env, $this->arg);
tryUniqueItemLottery(\sammo\genGenericUniqueRNGFromGeneral($general, static::$actionName), $general); tryUniqueItemLottery(\sammo\genGenericUniqueRNGFromGeneral($general, static::$actionName), $general);
$general->applyDB($db); $general->applyDB($db);
return true; return true;
+3 -1
View File
@@ -9,7 +9,8 @@ use \sammo\{
GameConst, GameConst,
LastTurn, LastTurn,
Command, Command,
KVStorage KVStorage,
StaticEventHandler
}; };
use function \sammo\tryUniqueItemLottery; use function \sammo\tryUniqueItemLottery;
@@ -175,6 +176,7 @@ class che_임관 extends Command\GeneralCommand
$general->addExperience($exp); $general->addExperience($exp);
$this->setResultTurn(new LastTurn(static::getName(), $this->arg)); $this->setResultTurn(new LastTurn(static::getName(), $this->arg));
$general->checkStatChange(); $general->checkStatChange();
StaticEventHandler::handleEvent($this->generalObj, $this->destGeneralObj, $this::class, $this->env, $this->arg);
tryUniqueItemLottery(\sammo\genGenericUniqueRNGFromGeneral($general, static::$actionName), $general); tryUniqueItemLottery(\sammo\genGenericUniqueRNGFromGeneral($general, static::$actionName), $general);
$general->applyDB($db); $general->applyDB($db);
@@ -14,7 +14,8 @@ use \sammo\{
GameUnitConst, GameUnitConst,
LastTurn, LastTurn,
Command, Command,
KVStorage KVStorage,
StaticEventHandler
}; };
use function \sammo\buildItemClass; use function \sammo\buildItemClass;
@@ -196,6 +197,7 @@ class che_장비매매 extends Command\GeneralCommand
$general->addExperience($exp); $general->addExperience($exp);
$this->setResultTurn(new LastTurn(static::getName(), $this->arg)); $this->setResultTurn(new LastTurn(static::getName(), $this->arg));
$general->checkStatChange(); $general->checkStatChange();
StaticEventHandler::handleEvent($this->generalObj, $this->destGeneralObj, $this::class, $this->env, $this->arg);
tryUniqueItemLottery(\sammo\genGenericUniqueRNGFromGeneral($general, static::$actionName), $general); tryUniqueItemLottery(\sammo\genGenericUniqueRNGFromGeneral($general, static::$actionName), $general);
$general->applyDB($db); $general->applyDB($db);
@@ -9,7 +9,8 @@ use \sammo\{
LastTurn, LastTurn,
Command, Command,
Json, Json,
KVStorage KVStorage,
StaticEventHandler
}; };
use function sammo\getAllNationStaticInfo; use function sammo\getAllNationStaticInfo;
@@ -170,6 +171,7 @@ class che_장수대상임관 extends Command\GeneralCommand{
$general->addExperience($exp); $general->addExperience($exp);
$this->setResultTurn(new LastTurn(static::getName(), $this->arg)); $this->setResultTurn(new LastTurn(static::getName(), $this->arg));
$general->checkStatChange(); $general->checkStatChange();
StaticEventHandler::handleEvent($this->generalObj, $this->destGeneralObj, $this::class, $this->env, $this->arg);
tryUniqueItemLottery(\sammo\genGenericUniqueRNGFromGeneral($general, static::$actionName), $general); tryUniqueItemLottery(\sammo\genGenericUniqueRNGFromGeneral($general, static::$actionName), $general);
$general->applyDB($db); $general->applyDB($db);
@@ -8,7 +8,8 @@ use \sammo\{
GameConst, GameUnitConst, GameConst, GameUnitConst,
LastTurn, LastTurn,
Command, Command,
MustNotBeReachedException MustNotBeReachedException,
StaticEventHandler
}; };
use function \sammo\tryUniqueItemLottery; use function \sammo\tryUniqueItemLottery;
@@ -121,6 +122,7 @@ class che_전투태세 extends Command\GeneralCommand{
$general->increaseVar('leadership_exp', 3); $general->increaseVar('leadership_exp', 3);
$this->setResultTurn($turnResult); $this->setResultTurn($turnResult);
$general->checkStatChange(); $general->checkStatChange();
StaticEventHandler::handleEvent($this->generalObj, $this->destGeneralObj, $this::class, $this->env, $this->arg);
tryUniqueItemLottery(\sammo\genGenericUniqueRNGFromGeneral($general, static::$actionName), $general); tryUniqueItemLottery(\sammo\genGenericUniqueRNGFromGeneral($general, static::$actionName), $general);
$general->applyDB($db); $general->applyDB($db);
@@ -7,7 +7,8 @@ use \sammo\{
ActionLogger, ActionLogger,
GameConst, GameUnitConst, GameConst, GameUnitConst,
LastTurn, LastTurn,
Command Command,
StaticEventHandler
}; };
use function \sammo\tryUniqueItemLottery; use function \sammo\tryUniqueItemLottery;
@@ -103,6 +104,7 @@ class che_전투특기초기화 extends Command\GeneralCommand{
$logger->pushGeneralActionLog("새로운 {$specialName}를 가질 준비가 되었습니다. <1>$date</>"); $logger->pushGeneralActionLog("새로운 {$specialName}를 가질 준비가 되었습니다. <1>$date</>");
$this->setResultTurn(new LastTurn(static::getName(), $this->arg)); $this->setResultTurn(new LastTurn(static::getName(), $this->arg));
StaticEventHandler::handleEvent($this->generalObj, $this->destGeneralObj, $this::class, $this->env, $this->arg);
tryUniqueItemLottery(\sammo\genGenericUniqueRNGFromGeneral($general, static::$actionName), $general); tryUniqueItemLottery(\sammo\genGenericUniqueRNGFromGeneral($general, static::$actionName), $general);
$general->applyDB($db); $general->applyDB($db);
@@ -7,7 +7,8 @@ use \sammo\{
ActionLogger, ActionLogger,
GameConst, GameUnitConst, GameConst, GameUnitConst,
LastTurn, LastTurn,
Command Command,
StaticEventHandler
}; };
use \sammo\Constraint\ConstraintHelper; use \sammo\Constraint\ConstraintHelper;
@@ -98,6 +99,7 @@ class che_접경귀환 extends Command\GeneralCommand{
//TODO: InstantAction일때에만 설정하지 않는게 나은데.. //TODO: InstantAction일때에만 설정하지 않는게 나은데..
//$this->setResultTurn(new LastTurn(static::getName(), $this->arg)); //$this->setResultTurn(new LastTurn(static::getName(), $this->arg));
StaticEventHandler::handleEvent($this->generalObj, $this->destGeneralObj, $this::class, $this->env, $this->arg);
$general->applyDB($db); $general->applyDB($db);
return true; return true;
@@ -9,7 +9,8 @@ use \sammo\{
LastTurn, LastTurn,
GameUnitConst, GameUnitConst,
Command, Command,
RandUtil RandUtil,
StaticEventHandler
}; };
use function \sammo\getDomesticExpLevelBonus; use function \sammo\getDomesticExpLevelBonus;
@@ -188,6 +189,7 @@ class che_정착장려 extends Command\GeneralCommand{
$general->increaseVar(static::$statKey.'_exp', 1); $general->increaseVar(static::$statKey.'_exp', 1);
$this->setResultTurn(new LastTurn(static::getName(), $this->arg)); $this->setResultTurn(new LastTurn(static::getName(), $this->arg));
$general->checkStatChange(); $general->checkStatChange();
StaticEventHandler::handleEvent($this->generalObj, $this->destGeneralObj, $this::class, $this->env, $this->arg);
tryUniqueItemLottery(\sammo\genGenericUniqueRNGFromGeneral($general, static::$actionName), $general); tryUniqueItemLottery(\sammo\genGenericUniqueRNGFromGeneral($general, static::$actionName), $general);
$general->applyDB($db); $general->applyDB($db);
@@ -9,7 +9,8 @@ use \sammo\{
LastTurn, LastTurn,
GameUnitConst, GameUnitConst,
Command, Command,
RandUtil RandUtil,
StaticEventHandler
}; };
use function \sammo\getDomesticExpLevelBonus; use function \sammo\getDomesticExpLevelBonus;
@@ -188,6 +189,7 @@ class che_주민선정 extends Command\GeneralCommand{
$general->increaseVar(static::$statKey.'_exp', 1); $general->increaseVar(static::$statKey.'_exp', 1);
$this->setResultTurn(new LastTurn(static::getName(), $this->arg)); $this->setResultTurn(new LastTurn(static::getName(), $this->arg));
$general->checkStatChange(); $general->checkStatChange();
StaticEventHandler::handleEvent($this->generalObj, $this->destGeneralObj, $this::class, $this->env, $this->arg);
tryUniqueItemLottery(\sammo\genGenericUniqueRNGFromGeneral($general, static::$actionName), $general); tryUniqueItemLottery(\sammo\genGenericUniqueRNGFromGeneral($general, static::$actionName), $general);
$general->applyDB($db); $general->applyDB($db);
+2
View File
@@ -16,6 +16,7 @@ use \sammo\Command;
use \sammo\Constraint\Constraint; use \sammo\Constraint\Constraint;
use \sammo\Constraint\ConstraintHelper; use \sammo\Constraint\ConstraintHelper;
use sammo\Enums\GeneralQueryMode; use sammo\Enums\GeneralQueryMode;
use sammo\StaticEventHandler;
use function sammo\tryUniqueItemLottery; use function sammo\tryUniqueItemLottery;
@@ -170,6 +171,7 @@ class che_증여 extends Command\GeneralCommand
$this->setResultTurn(new LastTurn(static::getName(), $this->arg)); $this->setResultTurn(new LastTurn(static::getName(), $this->arg));
$general->checkStatChange(); $general->checkStatChange();
StaticEventHandler::handleEvent($this->generalObj, $this->destGeneralObj, $this::class, $this->env, $this->arg);
tryUniqueItemLottery(\sammo\genGenericUniqueRNGFromGeneral($general, static::$actionName), $general); tryUniqueItemLottery(\sammo\genGenericUniqueRNGFromGeneral($general, static::$actionName), $general);
$general->applyDB($db); $general->applyDB($db);
+3 -1
View File
@@ -7,7 +7,8 @@ use \sammo\{
ActionLogger, ActionLogger,
GameConst, GameUnitConst, GameConst, GameUnitConst,
LastTurn, LastTurn,
Command Command,
StaticEventHandler
}; };
use function \sammo\tryUniqueItemLottery; use function \sammo\tryUniqueItemLottery;
@@ -103,6 +104,7 @@ class che_집합 extends Command\GeneralCommand{
$general->increaseVar('leadership_exp', 1); $general->increaseVar('leadership_exp', 1);
$this->setResultTurn(new LastTurn(static::getName(), $this->arg)); $this->setResultTurn(new LastTurn(static::getName(), $this->arg));
$general->checkStatChange(); $general->checkStatChange();
StaticEventHandler::handleEvent($this->generalObj, $this->destGeneralObj, $this::class, $this->env, $this->arg);
tryUniqueItemLottery(\sammo\genGenericUniqueRNGFromGeneral($general, static::$actionName), $general); tryUniqueItemLottery(\sammo\genGenericUniqueRNGFromGeneral($general, static::$actionName), $general);
$general->applyDB($db); $general->applyDB($db);
+2
View File
@@ -16,6 +16,7 @@ use function sammo\getTechLevel;
use \sammo\Constraint\ConstraintHelper; use \sammo\Constraint\ConstraintHelper;
use sammo\MustNotBeReachedException; use sammo\MustNotBeReachedException;
use sammo\StaticEventHandler;
class che_징병 extends Command\GeneralCommand class che_징병 extends Command\GeneralCommand
{ {
@@ -226,6 +227,7 @@ class che_징병 extends Command\GeneralCommand
$general->increaseVar('leadership_exp', 1); $general->increaseVar('leadership_exp', 1);
$this->setResultTurn(new LastTurn(static::getName(), $this->arg)); $this->setResultTurn(new LastTurn(static::getName(), $this->arg));
$general->checkStatChange(); $general->checkStatChange();
StaticEventHandler::handleEvent($this->generalObj, $this->destGeneralObj, $this::class, $this->env, $this->arg);
$general->setAuxVar('armType', $reqCrewType->armType); $general->setAuxVar('armType', $reqCrewType->armType);
tryUniqueItemLottery(\sammo\genGenericUniqueRNGFromGeneral($general, static::$actionName), $general); tryUniqueItemLottery(\sammo\genGenericUniqueRNGFromGeneral($general, static::$actionName), $general);
$general->applyDB($db); $general->applyDB($db);
+2
View File
@@ -16,6 +16,7 @@ use function \sammo\searchDistance;
use \sammo\Constraint\ConstraintHelper; use \sammo\Constraint\ConstraintHelper;
use sammo\CityConst; use sammo\CityConst;
use sammo\Enums\InheritanceKey; use sammo\Enums\InheritanceKey;
use sammo\StaticEventHandler;
class che_첩보 extends Command\GeneralCommand class che_첩보 extends Command\GeneralCommand
{ {
@@ -212,6 +213,7 @@ class che_첩보 extends Command\GeneralCommand
$general->addDedication($ded); $general->addDedication($ded);
$general->increaseVar('leadership_exp', 1); $general->increaseVar('leadership_exp', 1);
$this->setResultTurn(new LastTurn(static::getName(), $this->arg)); $this->setResultTurn(new LastTurn(static::getName(), $this->arg));
StaticEventHandler::handleEvent($this->generalObj, $this->destGeneralObj, $this::class, $this->env, $this->arg);
$general->checkStatChange(); $general->checkStatChange();
$general->applyDB($db); $general->applyDB($db);
+2
View File
@@ -22,6 +22,7 @@ use sammo\CityConst;
use sammo\Enums\InheritanceKey; use sammo\Enums\InheritanceKey;
use sammo\LiteHashDRBG; use sammo\LiteHashDRBG;
use sammo\RandUtil; use sammo\RandUtil;
use sammo\StaticEventHandler;
use sammo\UniqueConst; use sammo\UniqueConst;
class che_출병 extends Command\GeneralCommand class che_출병 extends Command\GeneralCommand
@@ -253,6 +254,7 @@ class che_출병 extends Command\GeneralCommand
processWar($warRngSeed, $general, $this->nation, $this->destCity); processWar($warRngSeed, $general, $this->nation, $this->destCity);
StaticEventHandler::handleEvent($this->generalObj, $this->destGeneralObj, $this::class, $this->env, $this->arg);
tryUniqueItemLottery(\sammo\genGenericUniqueRNGFromGeneral($general, static::$actionName), $general); tryUniqueItemLottery(\sammo\genGenericUniqueRNGFromGeneral($general, static::$actionName), $general);
$general->applyDB($db); $general->applyDB($db);
+3 -1
View File
@@ -7,7 +7,8 @@ use \sammo\{
ActionLogger, ActionLogger,
GameConst, GameUnitConst, GameConst, GameUnitConst,
LastTurn, LastTurn,
Command Command,
StaticEventHandler
}; };
use \sammo\Constraint\Constraint; use \sammo\Constraint\Constraint;
@@ -122,6 +123,7 @@ class che_하야 extends Command\GeneralCommand{
$this->setResultTurn(new LastTurn(static::getName(), $this->arg)); $this->setResultTurn(new LastTurn(static::getName(), $this->arg));
$general->checkStatChange(); $general->checkStatChange();
StaticEventHandler::handleEvent($this->generalObj, $this->destGeneralObj, $this::class, $this->env, $this->arg);
$general->applyDB($db); $general->applyDB($db);
return true; return true;
+2
View File
@@ -10,6 +10,7 @@ use \sammo\{
Command, Command,
Json, Json,
KVStorage, KVStorage,
StaticEventHandler,
TurnExecutionHelper TurnExecutionHelper
}; };
@@ -109,6 +110,7 @@ class che_해산 extends Command\GeneralCommand{
foreach($nationGenerals as $oldGeneral){ foreach($nationGenerals as $oldGeneral){
$oldGeneral->applyDB($db); $oldGeneral->applyDB($db);
} }
StaticEventHandler::handleEvent($this->generalObj, $this->destGeneralObj, $this::class, $this->env, $this->arg);
$general->applyDB($db); $general->applyDB($db);
// 이벤트 핸들러 동작 // 이벤트 핸들러 동작
+2
View File
@@ -14,6 +14,7 @@ use \sammo\Command;
use \sammo\Constraint\Constraint; use \sammo\Constraint\Constraint;
use \sammo\Constraint\ConstraintHelper; use \sammo\Constraint\ConstraintHelper;
use sammo\StaticEventHandler;
use function sammo\tryUniqueItemLottery; use function sammo\tryUniqueItemLottery;
@@ -146,6 +147,7 @@ class che_헌납 extends Command\GeneralCommand
$this->setResultTurn(new LastTurn(static::getName(), $this->arg)); $this->setResultTurn(new LastTurn(static::getName(), $this->arg));
$general->checkStatChange(); $general->checkStatChange();
StaticEventHandler::handleEvent($this->generalObj, $this->destGeneralObj, $this::class, $this->env, $this->arg);
tryUniqueItemLottery(\sammo\genGenericUniqueRNGFromGeneral($general, static::$actionName), $general); tryUniqueItemLottery(\sammo\genGenericUniqueRNGFromGeneral($general, static::$actionName), $general);
$general->applyDB($db); $general->applyDB($db);
+2
View File
@@ -18,6 +18,7 @@ use sammo\CityConst;
use sammo\Enums\GeneralQueryMode; use sammo\Enums\GeneralQueryMode;
use sammo\Enums\RankColumn; use sammo\Enums\RankColumn;
use sammo\RandUtil; use sammo\RandUtil;
use sammo\StaticEventHandler;
class che_화계 extends Command\GeneralCommand class che_화계 extends Command\GeneralCommand
{ {
@@ -332,6 +333,7 @@ class che_화계 extends Command\GeneralCommand
$general->increaseVar($statType . '_exp', 1); $general->increaseVar($statType . '_exp', 1);
$general->increaseRankVar(RankColumn::firenum, 1); $general->increaseRankVar(RankColumn::firenum, 1);
$this->setResultTurn(new LastTurn(static::getName(), $this->arg)); $this->setResultTurn(new LastTurn(static::getName(), $this->arg));
StaticEventHandler::handleEvent($this->generalObj, $this->destGeneralObj, $this::class, $this->env, $this->arg);
$general->checkStatChange(); $general->checkStatChange();
$general->applyDB($db); $general->applyDB($db);
+3 -1
View File
@@ -11,7 +11,8 @@ use \sammo\{
GameConst, GameConst,
GameUnitConst, GameUnitConst,
LastTurn, LastTurn,
Command Command,
StaticEventHandler
}; };
use function \sammo\tryUniqueItemLottery; use function \sammo\tryUniqueItemLottery;
@@ -122,6 +123,7 @@ class che_훈련 extends Command\GeneralCommand
$general->increaseVar('leadership_exp', 1); $general->increaseVar('leadership_exp', 1);
$this->setResultTurn(new LastTurn(static::getName(), $this->arg)); $this->setResultTurn(new LastTurn(static::getName(), $this->arg));
$general->checkStatChange(); $general->checkStatChange();
StaticEventHandler::handleEvent($this->generalObj, $this->destGeneralObj, $this::class, $this->env, $this->arg);
tryUniqueItemLottery(\sammo\genGenericUniqueRNGFromGeneral($general, static::$actionName), $general); tryUniqueItemLottery(\sammo\genGenericUniqueRNGFromGeneral($general, static::$actionName), $general);
$general->applyDB($db); $general->applyDB($db);
+2
View File
@@ -18,6 +18,7 @@ use function \sammo\getAllNationStaticInfo;
use \sammo\Constraint\ConstraintHelper; use \sammo\Constraint\ConstraintHelper;
use sammo\Enums\InheritanceKey; use sammo\Enums\InheritanceKey;
use sammo\StaticEventHandler;
use function sammo\buildNationTypeClass; use function sammo\buildNationTypeClass;
use function sammo\genGenericUniqueRNGFromGeneral; use function sammo\genGenericUniqueRNGFromGeneral;
@@ -201,6 +202,7 @@ class cr_건국 extends Command\GeneralCommand
$general->increaseInheritancePoint(InheritanceKey::active_action, 1); $general->increaseInheritancePoint(InheritanceKey::active_action, 1);
$this->setResultTurn(new LastTurn(static::getName(), $this->arg)); $this->setResultTurn(new LastTurn(static::getName(), $this->arg));
$general->checkStatChange(); $general->checkStatChange();
StaticEventHandler::handleEvent($this->generalObj, $this->destGeneralObj, $this::class, $this->env, $this->arg);
tryUniqueItemLottery(genGenericUniqueRNGFromGeneral($general, static::$actionName), $general, '건국'); tryUniqueItemLottery(genGenericUniqueRNGFromGeneral($general, static::$actionName), $general, '건국');
$general->applyDB($db); $general->applyDB($db);
+3 -1
View File
@@ -7,7 +7,8 @@ use \sammo\{
ActionLogger, ActionLogger,
GameConst, GameUnitConst, GameConst, GameUnitConst,
LastTurn, LastTurn,
Command Command,
StaticEventHandler
}; };
use function \sammo\tryUniqueItemLottery; use function \sammo\tryUniqueItemLottery;
@@ -105,6 +106,7 @@ class cr_맹훈련 extends Command\GeneralCommand{
$general->increaseVar('leadership_exp', 1); $general->increaseVar('leadership_exp', 1);
$this->setResultTurn(new LastTurn(static::getName(), $this->arg)); $this->setResultTurn(new LastTurn(static::getName(), $this->arg));
$general->checkStatChange(); $general->checkStatChange();
StaticEventHandler::handleEvent($this->generalObj, $this->destGeneralObj, $this::class, $this->env, $this->arg);
tryUniqueItemLottery(\sammo\genGenericUniqueRNGFromGeneral($general, static::$actionName), $general); tryUniqueItemLottery(\sammo\genGenericUniqueRNGFromGeneral($general, static::$actionName), $general);
$general->applyDB($db); $general->applyDB($db);
+2
View File
@@ -6,6 +6,7 @@ use \sammo\Util;
use \sammo\JosaUtil; use \sammo\JosaUtil;
use \sammo\LastTurn; use \sammo\LastTurn;
use \sammo\DB; use \sammo\DB;
use sammo\StaticEventHandler;
class 휴식 extends Command\GeneralCommand{ class 휴식 extends Command\GeneralCommand{
static protected $actionName = '휴식'; static protected $actionName = '휴식';
@@ -39,6 +40,7 @@ class 휴식 extends Command\GeneralCommand{
$logger->pushGeneralActionLog("아무것도 실행하지 않았습니다. <1>$date</>"); $logger->pushGeneralActionLog("아무것도 실행하지 않았습니다. <1>$date</>");
$this->setResultTurn(new LastTurn()); $this->setResultTurn(new LastTurn());
StaticEventHandler::handleEvent($this->generalObj, $this->destGeneralObj, $this::class, $this->env, $this->arg);
$general->applyDB(DB::db()); $general->applyDB(DB::db());
return true; return true;
} }
+3 -1
View File
@@ -12,7 +12,8 @@ use \sammo\{
MessageTarget, MessageTarget,
Message, Message,
CityConst, CityConst,
CityHelper CityHelper,
StaticEventHandler
}; };
use \sammo\Constraint\Constraint; use \sammo\Constraint\Constraint;
@@ -201,6 +202,7 @@ class che_감축 extends Command\NationCommand{
$logger->pushGlobalHistoryLog("<M><b>【감축】</b></><D><b>{$nationName}</b></>{$josaYiNation} <G><b>{$destCityName}</b></>{$josaUl} <M>감축</>하였습니다."); $logger->pushGlobalHistoryLog("<M><b>【감축】</b></><D><b>{$nationName}</b></>{$josaYiNation} <G><b>{$destCityName}</b></>{$josaUl} <M>감축</>하였습니다.");
$general->increaseInheritancePoint(InheritanceKey::active_action, 1); $general->increaseInheritancePoint(InheritanceKey::active_action, 1);
StaticEventHandler::handleEvent($this->generalObj, $this->destGeneralObj, $this::class, $this->env, $this->arg);
$this->setResultTurn(new LastTurn($this->getName(), $this->arg, 0)); $this->setResultTurn(new LastTurn($this->getName(), $this->arg, 0));
$general->applyDB($db); $general->applyDB($db);
@@ -12,6 +12,7 @@ use function \sammo\GetNationColors;
use \sammo\Constraint\ConstraintHelper; use \sammo\Constraint\ConstraintHelper;
use sammo\Enums\InheritanceKey; use sammo\Enums\InheritanceKey;
use sammo\StaticEventHandler;
class che_국기변경 extends Command\NationCommand class che_국기변경 extends Command\NationCommand
{ {
@@ -136,6 +137,7 @@ class che_국기변경 extends Command\NationCommand
$logger->pushGlobalHistoryLog("<S><b>【국기변경】</b></><D><b>{$nationName}</b></>{$josaYiNation} <span style='color:{$color};'><b>국기</b></span>를 변경하였습니다."); $logger->pushGlobalHistoryLog("<S><b>【국기변경】</b></><D><b>{$nationName}</b></>{$josaYiNation} <span style='color:{$color};'><b>국기</b></span>를 변경하였습니다.");
$general->increaseInheritancePoint(InheritanceKey::active_action, 1); $general->increaseInheritancePoint(InheritanceKey::active_action, 1);
StaticEventHandler::handleEvent($this->generalObj, $this->destGeneralObj, $this::class, $this->env, $this->arg);
$this->setResultTurn(new LastTurn($this->getName(), $this->arg, 0)); $this->setResultTurn(new LastTurn($this->getName(), $this->arg, 0));
$general->applyDB($db); $general->applyDB($db);
return true; return true;
@@ -21,6 +21,7 @@ use \sammo\Constraint\Constraint;
use \sammo\Constraint\ConstraintHelper; use \sammo\Constraint\ConstraintHelper;
use sammo\Enums\InheritanceKey; use sammo\Enums\InheritanceKey;
use sammo\Event\Action; use sammo\Event\Action;
use sammo\StaticEventHandler;
class che_국호변경 extends Command\NationCommand class che_국호변경 extends Command\NationCommand
{ {
@@ -154,6 +155,7 @@ class che_국호변경 extends Command\NationCommand
$logger->pushGlobalHistoryLog("<S><b>【국호변경】</b></><D><b>{$nationName}</b></>{$josaYiNation} 국호를 <D><b>{$newNationName}</b></>{$josaRo} 변경합니다."); $logger->pushGlobalHistoryLog("<S><b>【국호변경】</b></><D><b>{$nationName}</b></>{$josaYiNation} 국호를 <D><b>{$newNationName}</b></>{$josaRo} 변경합니다.");
$general->increaseInheritancePoint(InheritanceKey::active_action, 1); $general->increaseInheritancePoint(InheritanceKey::active_action, 1);
StaticEventHandler::handleEvent($this->generalObj, $this->destGeneralObj, $this::class, $this->env, $this->arg);
$this->setResultTurn(new LastTurn($this->getName(), $this->arg, 0)); $this->setResultTurn(new LastTurn($this->getName(), $this->arg, 0));
$general->applyDB($db); $general->applyDB($db);
return true; return true;
+2
View File
@@ -20,6 +20,7 @@ use function \sammo\getNationStaticInfo;
use \sammo\Constraint\Constraint; use \sammo\Constraint\Constraint;
use \sammo\Constraint\ConstraintHelper; use \sammo\Constraint\ConstraintHelper;
use sammo\StaticEventHandler;
class che_급습 extends Command\NationCommand class che_급습 extends Command\NationCommand
{ {
@@ -191,6 +192,7 @@ class che_급습 extends Command\NationCommand
$db->update('diplomacy', [ $db->update('diplomacy', [
'term' => $db->sqleval('`term` - %i', 3), 'term' => $db->sqleval('`term` - %i', 3),
], '(me = %i AND you = %i) OR (you = %i AND me = %i)', $nationID, $destNationID, $nationID, $destNationID); ], '(me = %i AND you = %i) OR (you = %i AND me = %i)', $nationID, $destNationID, $nationID, $destNationID);
StaticEventHandler::handleEvent($this->generalObj, $this->destGeneralObj, $this::class, $this->env, $this->arg);
$this->setResultTurn(new LastTurn(static::getName(), $this->arg)); $this->setResultTurn(new LastTurn(static::getName(), $this->arg));
$general->applyDB($db); $general->applyDB($db);
+2
View File
@@ -21,6 +21,7 @@ use \sammo\Constraint\Constraint;
use \sammo\Constraint\ConstraintHelper; use \sammo\Constraint\ConstraintHelper;
use sammo\Enums\GeneralQueryMode; use sammo\Enums\GeneralQueryMode;
use sammo\Enums\MessageType; use sammo\Enums\MessageType;
use sammo\StaticEventHandler;
class che_몰수 extends Command\NationCommand class che_몰수 extends Command\NationCommand
{ {
@@ -212,6 +213,7 @@ class che_몰수 extends Command\NationCommand
$logger->pushGeneralActionLog("<Y>{$destGeneral->getName()}</>에게서 {$resName} <C>$amountText</>{$josaUl} 몰수했습니다. <1>$date</>"); $logger->pushGeneralActionLog("<Y>{$destGeneral->getName()}</>에게서 {$resName} <C>$amountText</>{$josaUl} 몰수했습니다. <1>$date</>");
$this->setResultTurn(new LastTurn(static::getName(), $this->arg)); $this->setResultTurn(new LastTurn(static::getName(), $this->arg));
StaticEventHandler::handleEvent($this->generalObj, $this->destGeneralObj, $this::class, $this->env, $this->arg);
$general->applyDB($db); $general->applyDB($db);
$destGeneral->applyDB($db); $destGeneral->applyDB($db);
@@ -20,6 +20,7 @@ use \sammo\Constraint\ConstraintHelper;
use sammo\Enums\InheritanceKey; use sammo\Enums\InheritanceKey;
use sammo\Event\Action; use sammo\Event\Action;
use sammo\Json; use sammo\Json;
use sammo\StaticEventHandler;
class che_무작위수도이전 extends Command\NationCommand class che_무작위수도이전 extends Command\NationCommand
{ {
@@ -159,6 +160,7 @@ class che_무작위수도이전 extends Command\NationCommand
$logger->pushGlobalHistoryLog("<S><b>【무작위 수도 이전】</b></><D><b>{$nationName}</b></>{$josaYiNation} <G><b>{$destCityName}</b></>{$josaRo} <M>수도 이전</>하였습니다."); $logger->pushGlobalHistoryLog("<S><b>【무작위 수도 이전】</b></><D><b>{$nationName}</b></>{$josaYiNation} <G><b>{$destCityName}</b></>{$josaRo} <M>수도 이전</>하였습니다.");
$this->setResultTurn(new LastTurn($this->getName(), $this->arg, 0)); $this->setResultTurn(new LastTurn($this->getName(), $this->arg, 0));
StaticEventHandler::handleEvent($this->generalObj, $this->destGeneralObj, $this::class, $this->env, $this->arg);
$general->applyDB($db); $general->applyDB($db);
return true; return true;
} }
@@ -15,6 +15,7 @@ use \sammo\{
Command, Command,
Json, Json,
KVStorage, KVStorage,
StaticEventHandler,
StringUtil StringUtil
}; };
@@ -255,6 +256,7 @@ class che_물자원조 extends Command\NationCommand
$general->addExperience(5); $general->addExperience(5);
$general->addDedication(5); $general->addDedication(5);
StaticEventHandler::handleEvent($this->generalObj, $this->destGeneralObj, $this::class, $this->env, $this->arg);
$this->setResultTurn(new LastTurn(static::getName(), $this->arg)); $this->setResultTurn(new LastTurn(static::getName(), $this->arg));
$general->applyDB($db); $general->applyDB($db);
+2
View File
@@ -14,6 +14,7 @@ use \sammo\{
GameUnitConst, GameUnitConst,
CityConst, CityConst,
Command, Command,
StaticEventHandler,
TimeUtil TimeUtil
}; };
@@ -167,6 +168,7 @@ class che_발령 extends Command\NationCommand
$this->setResultTurn(new LastTurn(static::getName(), $this->arg)); $this->setResultTurn(new LastTurn(static::getName(), $this->arg));
$general->applyDB($db); $general->applyDB($db);
$destGeneral->applyDB($db); $destGeneral->applyDB($db);
StaticEventHandler::handleEvent($this->generalObj, $this->destGeneralObj, $this::class, $this->env, $this->arg);
return true; return true;
} }
@@ -15,7 +15,8 @@ use \sammo\{
Command, Command,
MessageTarget, MessageTarget,
Message, Message,
CityConst CityConst,
StaticEventHandler
}; };
use \sammo\Constraint\Constraint; use \sammo\Constraint\Constraint;
@@ -164,6 +165,7 @@ class che_백성동원 extends Command\NationCommand
], 'nation=%i', $nationID); ], 'nation=%i', $nationID);
$this->setResultTurn(new LastTurn($this->getName(), $this->arg, 0)); $this->setResultTurn(new LastTurn($this->getName(), $this->arg, 0));
StaticEventHandler::handleEvent($this->generalObj, $this->destGeneralObj, $this::class, $this->env, $this->arg);
$general->applyDB($db); $general->applyDB($db);
return true; return true;
@@ -24,6 +24,7 @@ use sammo\Enums\GeneralQueryMode;
use sammo\Json; use sammo\Json;
use sammo\KVStorage; use sammo\KVStorage;
use sammo\RandUtil; use sammo\RandUtil;
use sammo\StaticEventHandler;
class che_불가침수락 extends Command\NationCommand class che_불가침수락 extends Command\NationCommand
{ {
@@ -224,6 +225,7 @@ class che_불가침수락 extends Command\NationCommand
$destLogger->pushGeneralActionLog("<D><b>{$nationName}</b></>{$josaWa} <C>$year</>년 <C>{$month}</>월까지 불가침에 성공했습니다.", ActionLogger::PLAIN); $destLogger->pushGeneralActionLog("<D><b>{$nationName}</b></>{$josaWa} <C>$year</>년 <C>{$month}</>월까지 불가침에 성공했습니다.", ActionLogger::PLAIN);
$destLogger->pushGeneralHistoryLog("<D><b>{$nationName}</b></>{$josaWa} {$year}{$month}월까지 불가침 성공"); $destLogger->pushGeneralHistoryLog("<D><b>{$nationName}</b></>{$josaWa} {$year}{$month}월까지 불가침 성공");
StaticEventHandler::handleEvent($this->generalObj, $this->destGeneralObj, $this::class, $this->env, $this->arg);
$general->applyDB($db); $general->applyDB($db);
$destLogger->flush(); $destLogger->flush();
@@ -23,6 +23,7 @@ use function \sammo\getNationStaticInfo;
use \sammo\Constraint\Constraint; use \sammo\Constraint\Constraint;
use \sammo\Constraint\ConstraintHelper; use \sammo\Constraint\ConstraintHelper;
use sammo\Enums\MessageType; use sammo\Enums\MessageType;
use sammo\StaticEventHandler;
class che_불가침제의 extends Command\NationCommand class che_불가침제의 extends Command\NationCommand
{ {
@@ -220,6 +221,7 @@ class che_불가침제의 extends Command\NationCommand
$msg->send(); $msg->send();
$this->setResultTurn(new LastTurn(static::getName(), $this->arg)); $this->setResultTurn(new LastTurn(static::getName(), $this->arg));
StaticEventHandler::handleEvent($this->generalObj, $this->destGeneralObj, $this::class, $this->env, $this->arg);
$general->applyDB($db); $general->applyDB($db);
$destLogger->flush(); $destLogger->flush();
@@ -22,6 +22,7 @@ use \sammo\Constraint\Constraint;
use \sammo\Constraint\ConstraintHelper; use \sammo\Constraint\ConstraintHelper;
use sammo\Enums\GeneralQueryMode; use sammo\Enums\GeneralQueryMode;
use sammo\RandUtil; use sammo\RandUtil;
use sammo\StaticEventHandler;
class che_불가침파기수락 extends Command\NationCommand class che_불가침파기수락 extends Command\NationCommand
{ {
@@ -173,6 +174,7 @@ class che_불가침파기수락 extends Command\NationCommand
$destLogger->pushGeneralActionLog("<D><b>{$nationName}</b></>{$josaWa}의 불가침 파기에 성공했습니다.", ActionLogger::PLAIN); $destLogger->pushGeneralActionLog("<D><b>{$nationName}</b></>{$josaWa}의 불가침 파기에 성공했습니다.", ActionLogger::PLAIN);
$destLogger->pushGeneralHistoryLog("<D><b>{$nationName}</b></>{$josaWa}의 불가침 파기 성공"); $destLogger->pushGeneralHistoryLog("<D><b>{$nationName}</b></>{$josaWa}의 불가침 파기 성공");
StaticEventHandler::handleEvent($this->generalObj, $this->destGeneralObj, $this::class, $this->env, $this->arg);
$general->applyDB($db); $general->applyDB($db);
$destLogger->flush(); $destLogger->flush();
@@ -12,6 +12,7 @@ use \sammo\{
MessageTarget, MessageTarget,
DiplomaticMessage, DiplomaticMessage,
Message, Message,
StaticEventHandler,
}; };
use function \sammo\getAllNationStaticInfo; use function \sammo\getAllNationStaticInfo;
@@ -166,6 +167,7 @@ class che_불가침파기제의 extends Command\NationCommand{
$msg->send(); $msg->send();
$this->setResultTurn(new LastTurn(static::getName(), $this->arg)); $this->setResultTurn(new LastTurn(static::getName(), $this->arg));
StaticEventHandler::handleEvent($this->generalObj, $this->destGeneralObj, $this::class, $this->env, $this->arg);
$general->applyDB($db); $general->applyDB($db);
$destLogger->flush(); $destLogger->flush();
@@ -22,6 +22,7 @@ use function \sammo\GetImageURL;
use \sammo\Constraint\Constraint; use \sammo\Constraint\Constraint;
use \sammo\Constraint\ConstraintHelper; use \sammo\Constraint\ConstraintHelper;
use sammo\Enums\MessageType; use sammo\Enums\MessageType;
use sammo\StaticEventHandler;
class che_선전포고 extends Command\NationCommand class che_선전포고 extends Command\NationCommand
{ {
@@ -188,6 +189,7 @@ class che_선전포고 extends Command\NationCommand
$msg->send(); $msg->send();
$this->setResultTurn(new LastTurn(static::getName(), $this->arg)); $this->setResultTurn(new LastTurn(static::getName(), $this->arg));
StaticEventHandler::handleEvent($this->generalObj, $this->destGeneralObj, $this::class, $this->env, $this->arg);
$general->applyDB($db); $general->applyDB($db);
$destLogger->flush(); $destLogger->flush();
+3 -1
View File
@@ -15,7 +15,8 @@ use \sammo\{
Command, Command,
MessageTarget, MessageTarget,
Message, Message,
CityConst CityConst,
StaticEventHandler
}; };
use function \sammo\getNationStaticInfo; use function \sammo\getNationStaticInfo;
@@ -191,6 +192,7 @@ class che_수몰 extends Command\NationCommand
], 'nation=%i', $nationID); ], 'nation=%i', $nationID);
$this->setResultTurn(new LastTurn($this->getName(), $this->arg, 0)); $this->setResultTurn(new LastTurn($this->getName(), $this->arg, 0));
StaticEventHandler::handleEvent($this->generalObj, $this->destGeneralObj, $this::class, $this->env, $this->arg);
$general->applyDB($db); $general->applyDB($db);
return true; return true;
@@ -15,7 +15,7 @@ use \sammo\KVStorage;
use \sammo\Constraint\Constraint; use \sammo\Constraint\Constraint;
use \sammo\Constraint\ConstraintHelper; use \sammo\Constraint\ConstraintHelper;
use sammo\StaticEventHandler;
class che_의병모집 extends Command\NationCommand class che_의병모집 extends Command\NationCommand
{ {
@@ -170,6 +170,7 @@ class che_의병모집 extends Command\NationCommand
], 'nation=%i', $nationID); ], 'nation=%i', $nationID);
$this->setResultTurn(new LastTurn(static::getName(), $this->arg)); $this->setResultTurn(new LastTurn(static::getName(), $this->arg));
StaticEventHandler::handleEvent($this->generalObj, $this->destGeneralObj, $this::class, $this->env, $this->arg);
$general->applyDB($db); $general->applyDB($db);
return true; return true;
@@ -20,6 +20,7 @@ use function \sammo\getNationStaticInfo;
use \sammo\Constraint\Constraint; use \sammo\Constraint\Constraint;
use \sammo\Constraint\ConstraintHelper; use \sammo\Constraint\ConstraintHelper;
use sammo\StaticEventHandler;
class che_이호경식 extends Command\NationCommand class che_이호경식 extends Command\NationCommand
{ {
@@ -193,6 +194,7 @@ class che_이호경식 extends Command\NationCommand
$this->setResultTurn(new LastTurn(static::getName(), $this->arg)); $this->setResultTurn(new LastTurn(static::getName(), $this->arg));
StaticEventHandler::handleEvent($this->generalObj, $this->destGeneralObj, $this::class, $this->env, $this->arg);
$general->applyDB($db); $general->applyDB($db);
return true; return true;
@@ -16,6 +16,7 @@ use \sammo\{
MessageTarget, MessageTarget,
DiplomaticMessage, DiplomaticMessage,
Message, Message,
StaticEventHandler,
}; };
use function \sammo\getNationStaticInfo; use function \sammo\getNationStaticInfo;
@@ -188,6 +189,7 @@ class che_종전수락 extends Command\NationCommand
$destLogger->pushNationalHistoryLog("<D><b>{$nationName}</b></>{$josaWa} 종전"); $destLogger->pushNationalHistoryLog("<D><b>{$nationName}</b></>{$josaWa} 종전");
$general->applyDB($db); $general->applyDB($db);
StaticEventHandler::handleEvent($this->generalObj, $this->destGeneralObj, $this::class, $this->env, $this->arg);
$destLogger->flush(); $destLogger->flush();
return true; return true;
@@ -12,6 +12,7 @@ use \sammo\{
MessageTarget, MessageTarget,
DiplomaticMessage, DiplomaticMessage,
Message, Message,
StaticEventHandler,
}; };
use function \sammo\getAllNationStaticInfo; use function \sammo\getAllNationStaticInfo;
@@ -164,6 +165,7 @@ class che_종전제의 extends Command\NationCommand{
$msg->send(); $msg->send();
$this->setResultTurn(new LastTurn(static::getName(), $this->arg)); $this->setResultTurn(new LastTurn(static::getName(), $this->arg));
StaticEventHandler::handleEvent($this->generalObj, $this->destGeneralObj, $this::class, $this->env, $this->arg);
$general->applyDB($db); $general->applyDB($db);
$destLogger->flush(); $destLogger->flush();
+3 -1
View File
@@ -11,7 +11,8 @@ use \sammo\{
Command, Command,
MessageTarget, MessageTarget,
Message, Message,
CityConst CityConst,
StaticEventHandler
}; };
use \sammo\Constraint\Constraint; use \sammo\Constraint\Constraint;
@@ -193,6 +194,7 @@ class che_증축 extends Command\NationCommand{
$logger->pushGlobalHistoryLog("<C><b>【증축】</b></><D><b>{$nationName}</b></>{$josaYiNation} <G><b>{$destCityName}</b></>{$josaUl} <M>증축</>하였습니다."); $logger->pushGlobalHistoryLog("<C><b>【증축】</b></><D><b>{$nationName}</b></>{$josaYiNation} <G><b>{$destCityName}</b></>{$josaUl} <M>증축</>하였습니다.");
$this->setResultTurn(new LastTurn($this->getName(), $this->arg, 0)); $this->setResultTurn(new LastTurn($this->getName(), $this->arg, 0));
StaticEventHandler::handleEvent($this->generalObj, $this->destGeneralObj, $this::class, $this->env, $this->arg);
$general->applyDB($db); $general->applyDB($db);
return true; return true;
+2
View File
@@ -19,6 +19,7 @@ use \sammo\Constraint\Constraint;
use \sammo\Constraint\ConstraintHelper; use \sammo\Constraint\ConstraintHelper;
use sammo\Enums\InheritanceKey; use sammo\Enums\InheritanceKey;
use sammo\Event\Action; use sammo\Event\Action;
use sammo\StaticEventHandler;
class che_천도 extends Command\NationCommand class che_천도 extends Command\NationCommand
{ {
@@ -228,6 +229,7 @@ class che_천도 extends Command\NationCommand
$logger->pushGlobalHistoryLog("<S><b>【천도】</b></><D><b>{$nationName}</b></>{$josaYiNation} <G><b>{$destCityName}</b></>{$josaRo} <M>천도</>하였습니다."); $logger->pushGlobalHistoryLog("<S><b>【천도】</b></><D><b>{$nationName}</b></>{$josaYiNation} <G><b>{$destCityName}</b></>{$josaRo} <M>천도</>하였습니다.");
$this->setResultTurn(new LastTurn($this->getName(), $this->arg, 0)); $this->setResultTurn(new LastTurn($this->getName(), $this->arg, 0));
StaticEventHandler::handleEvent($this->generalObj, $this->destGeneralObj, $this::class, $this->env, $this->arg);
$general->applyDB($db); $general->applyDB($db);
return true; return true;
} }
+3 -1
View File
@@ -12,7 +12,8 @@ use \sammo\{
MessageTarget, MessageTarget,
Message, Message,
CityConst, CityConst,
CityInitialDetail CityInitialDetail,
StaticEventHandler
}; };
use \sammo\Constraint\Constraint; use \sammo\Constraint\Constraint;
@@ -196,6 +197,7 @@ class che_초토화 extends Command\NationCommand{
$logger->pushGlobalHistoryLog("<S><b>【초토화】</b></><D><b>{$nationName}</b></>{$josaYiNation} <G><b>{$destCityName}</b></>{$josaUl} <M>초토화</>하였습니다."); $logger->pushGlobalHistoryLog("<S><b>【초토화】</b></><D><b>{$nationName}</b></>{$josaYiNation} <G><b>{$destCityName}</b></>{$josaUl} <M>초토화</>하였습니다.");
$this->setResultTurn(new LastTurn($this->getName(), $this->arg, 0)); $this->setResultTurn(new LastTurn($this->getName(), $this->arg, 0));
StaticEventHandler::handleEvent($this->generalObj, $this->destGeneralObj, $this::class, $this->env, $this->arg);
$general->applyDB($db); $general->applyDB($db);
return true; return true;
} }
+2
View File
@@ -16,6 +16,7 @@ use \sammo\Command;
use \sammo\Constraint\Constraint; use \sammo\Constraint\Constraint;
use \sammo\Constraint\ConstraintHelper; use \sammo\Constraint\ConstraintHelper;
use sammo\Enums\GeneralQueryMode; use sammo\Enums\GeneralQueryMode;
use sammo\StaticEventHandler;
class che_포상 extends Command\NationCommand class che_포상 extends Command\NationCommand
{ {
@@ -174,6 +175,7 @@ class che_포상 extends Command\NationCommand
$logger->pushGeneralActionLog("<Y>{$destGeneral->getName()}</>에게 {$resName} <C>$amountText</>{$josaUl} 수여했습니다. <1>$date</>"); $logger->pushGeneralActionLog("<Y>{$destGeneral->getName()}</>에게 {$resName} <C>$amountText</>{$josaUl} 수여했습니다. <1>$date</>");
$this->setResultTurn(new LastTurn(static::getName(), $this->arg)); $this->setResultTurn(new LastTurn(static::getName(), $this->arg));
StaticEventHandler::handleEvent($this->generalObj, $this->destGeneralObj, $this::class, $this->env, $this->arg);
$general->applyDB($db); $general->applyDB($db);
$destGeneral->applyDB($db); $destGeneral->applyDB($db);
@@ -15,7 +15,8 @@ use \sammo\{
Command, Command,
KVStorage, KVStorage,
Message, Message,
MessageTarget MessageTarget,
StaticEventHandler
}; };
use function \sammo\buildNationCommandClass; use function \sammo\buildNationCommandClass;
@@ -240,6 +241,7 @@ class che_피장파장 extends Command\NationCommand
$destDelay = max($destNationStor->getValue($cmd->getNextExecuteKey()) ?? 0, $yearMonth); $destDelay = max($destNationStor->getValue($cmd->getNextExecuteKey()) ?? 0, $yearMonth);
$destNationStor->setValue($cmd->getNextExecuteKey(), $destDelay + static::$delayCnt); $destNationStor->setValue($cmd->getNextExecuteKey(), $destDelay + static::$delayCnt);
StaticEventHandler::handleEvent($this->generalObj, $this->destGeneralObj, $this::class, $this->env, $this->arg);
$general->applyDB($db); $general->applyDB($db);
return true; return true;
@@ -10,7 +10,8 @@ use \sammo\{
GameUnitConst, GameUnitConst,
Command, Command,
MessageTarget, MessageTarget,
Message Message,
StaticEventHandler
}; };
use \sammo\Constraint\Constraint; use \sammo\Constraint\Constraint;
@@ -121,6 +122,7 @@ class che_필사즉생 extends Command\NationCommand{
], 'nation=%i', $nationID); ], 'nation=%i', $nationID);
$this->setResultTurn(new LastTurn($this->getName(), $this->arg, 0)); $this->setResultTurn(new LastTurn($this->getName(), $this->arg, 0));
StaticEventHandler::handleEvent($this->generalObj, $this->destGeneralObj, $this::class, $this->env, $this->arg);
$general->applyDB($db); $general->applyDB($db);
return true; return true;
+2
View File
@@ -21,6 +21,7 @@ use function \sammo\getNationStaticInfo;
use \sammo\Constraint\Constraint; use \sammo\Constraint\Constraint;
use \sammo\Constraint\ConstraintHelper; use \sammo\Constraint\ConstraintHelper;
use sammo\Event\Action; use sammo\Event\Action;
use sammo\StaticEventHandler;
class che_허보 extends Command\NationCommand class che_허보 extends Command\NationCommand
{ {
@@ -194,6 +195,7 @@ class che_허보 extends Command\NationCommand
], 'nation=%i', $nationID); ], 'nation=%i', $nationID);
$this->setResultTurn(new LastTurn($this->getName(), $this->arg, 0)); $this->setResultTurn(new LastTurn($this->getName(), $this->arg, 0));
StaticEventHandler::handleEvent($this->generalObj, $this->destGeneralObj, $this::class, $this->env, $this->arg);
$general->applyDB($db); $general->applyDB($db);
return true; return true;
@@ -19,6 +19,7 @@ use \sammo\Constraint\Constraint;
use \sammo\Constraint\ConstraintHelper; use \sammo\Constraint\ConstraintHelper;
use sammo\Enums\InheritanceKey; use sammo\Enums\InheritanceKey;
use sammo\Event\Action; use sammo\Event\Action;
use sammo\StaticEventHandler;
class cr_인구이동 extends Command\NationCommand class cr_인구이동 extends Command\NationCommand
{ {
@@ -179,6 +180,7 @@ class cr_인구이동 extends Command\NationCommand
$logger->pushGeneralActionLog("<G><b>{$destCityName}</b></>{$josaRo} 인구 <C>{$amount}</>명을 옮겼습니다. <1>$date</>"); $logger->pushGeneralActionLog("<G><b>{$destCityName}</b></>{$josaRo} 인구 <C>{$amount}</>명을 옮겼습니다. <1>$date</>");
$this->setResultTurn(new LastTurn($this->getName(), $this->arg, 0)); $this->setResultTurn(new LastTurn($this->getName(), $this->arg, 0));
StaticEventHandler::handleEvent($this->generalObj, $this->destGeneralObj, $this::class, $this->env, $this->arg);
$general->applyDB($db); $general->applyDB($db);
return true; return true;
} }
+2
View File
@@ -5,6 +5,7 @@ use \sammo\Command;
use \sammo\Util; use \sammo\Util;
use \sammo\JosaUtil; use \sammo\JosaUtil;
use sammo\LastTurn; use sammo\LastTurn;
use sammo\StaticEventHandler;
class 휴식 extends Command\NationCommand{ class 휴식 extends Command\NationCommand{
static protected $actionName = '휴식'; static protected $actionName = '휴식';
@@ -33,6 +34,7 @@ class 휴식 extends Command\NationCommand{
public function run(\Sammo\RandUtil $rng):bool{ public function run(\Sammo\RandUtil $rng):bool{
$this->setResultTurn(new LastTurn(static::getName(), $this->arg)); $this->setResultTurn(new LastTurn(static::getName(), $this->arg));
StaticEventHandler::handleEvent($this->generalObj, $this->destGeneralObj, $this::class, $this->env, $this->arg);
return true; return true;
} }
} }
@@ -12,17 +12,13 @@ use sammo\JosaUtil;
class event_부대발령즉시집합 extends \sammo\BaseStaticEvent class event_부대발령즉시집합 extends \sammo\BaseStaticEvent
{ {
function run(General $general, array $env, array $params): bool | string function run(GeneralLite|General $general, null|GeneralLite|General $destGeneral, array $env, array $params): bool | string
{ {
$destGeneralID = $params['destGeneralID'] ?? null; if($destGeneral === null){
if ($destGeneralID === null) { return "destGeneral is null";
return "destGeneralID is null";
}
if (!is_int($destGeneralID)) {
return "destGeneralID is not int";
} }
$destCityID = $params['city'] ?? null; $destCityID = $params['destCityID'] ?? null;
if ($destCityID === null) { if ($destCityID === null) {
return "destCityID is null"; return "destCityID is null";
} }
@@ -30,21 +26,11 @@ class event_부대발령즉시집합 extends \sammo\BaseStaticEvent
return "destCityID is not int"; return "destCityID is not int";
} }
$destGeneral = GeneralLite::createObjFromDB($destGeneralID, ['nation', 'city', 'troop'], GeneralLiteQueryMode::Core);
if ($destGeneral === null) {
return "destGeneral is null";
}
if($destGeneral->getID() !== $destGeneral->getVar('troop')){ if($destGeneral->getID() !== $destGeneral->getVar('troop')){
//부대장 발령이 아니므로 무시 //부대장 발령이 아니므로 무시
return true; return true;
} }
if($destGeneral->getCityID() === $destCityID){
//이미 제자리이므로 무시
return true;
}
if($destGeneral->getNationID() !== $general->getNationID()){ if($destGeneral->getNationID() !== $general->getNationID()){
return "destGeneral is not same nation"; return "destGeneral is not same nation";
} }
@@ -56,8 +42,7 @@ class event_부대발령즉시집합 extends \sammo\BaseStaticEvent
$troopID = $destGeneral->getID(); $troopID = $destGeneral->getID();
$troopName = $db->queryFirstField('SELECT name FROM troop WHERE troop_leader = %i', $troopID); $troopName = $db->queryFirstField('SELECT name FROM troop WHERE troop_leader = %i', $troopID);
$generalList = $db->queryFirstColumn('SELECT no FROM general WHERE nation=%i AND city!=%i AND troop=%i AND no!=%i', $destGeneral->getNationID(), $destCityID, $troopID, $destGeneral->getID());
$generalList = $db->queryFirstColumn('SELECT no FROM general WHERE nation=%i AND city!=%i AND troop=%i AND no!=%i', $general->getNationID(), $destCityID, $troopID, $general->getID());
if($generalList){ if($generalList){
$db->update('general', [ $db->update('general', [
'city'=>$destCityID 'city'=>$destCityID
@@ -69,9 +54,6 @@ class event_부대발령즉시집합 extends \sammo\BaseStaticEvent
$targetLogger->flush(); $targetLogger->flush();
} }
$general->setVar('city', $destGeneral->getCityID());
$general->applyDB(DB::db());
return true; return true;
} }
} }
@@ -9,7 +9,7 @@ use sammo\GeneralLite;
class event_부대탑승즉시이동 extends \sammo\BaseStaticEvent class event_부대탑승즉시이동 extends \sammo\BaseStaticEvent
{ {
function run(General $general, array $env, array $params): bool | string function run(GeneralLite|General $general, null|GeneralLite|General $destGeneral, array $env, array $params): bool | string
{ {
$troopID = $params['troopID'] ?? null; $troopID = $params['troopID'] ?? null;
+14 -7
View File
@@ -1,18 +1,25 @@
<?php <?php
namespace sammo; namespace sammo;
class StaticEventHandler { class StaticEventHandler
{
// This is a static class, so we don't want to instantiate it // This is a static class, so we don't want to instantiate it
public function __construct() { public function __construct()
{
throw new \Exception('This is a static class'); throw new \Exception('This is a static class');
} }
public static function handleEvent(General $general, string $eventType, array ...$params): void { public static function handleEvent(General|GeneralLite $general, null|General|GeneralLite $destGeneral, string $eventType, array $env, array ...$params): void
$handlersList = GameConst::$staticEventHandlers[ $eventType ] ?? null; {
if( $handlersList === null ) { $handlersList = GameConst::$staticEventHandlers[$eventType] ?? null;
if ($handlersList === null) {
return; return;
} }
foreach ($handlersList as $handlerName) {
$handler = buildStaticEventClass($handlerName);
$handler->run($general, $destGeneral, $env, ...$params);
}
} }
} }