feat: 게임 시작 후, 거병/건국 기간, 출병 제한 기간을 안내
This commit is contained in:
@@ -7,7 +7,7 @@ use sammo\ActionLogger;
|
|||||||
|
|
||||||
class NoticeToHistoryLog extends \sammo\Event\Action
|
class NoticeToHistoryLog extends \sammo\Event\Action
|
||||||
{
|
{
|
||||||
public function __construct(private string $msg)
|
public function __construct(private string $msg, private int $type = ActionLogger::YEAR_MONTH)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -17,7 +17,7 @@ class NoticeToHistoryLog extends \sammo\Event\Action
|
|||||||
throw new RuntimeException('year, month가 없음');
|
throw new RuntimeException('year, month가 없음');
|
||||||
}
|
}
|
||||||
$logger = new ActionLogger(0, 0, $env['year'], $env['month']);
|
$logger = new ActionLogger(0, 0, $env['year'], $env['month']);
|
||||||
$logger->pushGlobalHistoryLog($this->msg);
|
$logger->pushGlobalHistoryLog($this->msg, $this->type);
|
||||||
$logger->flush();
|
$logger->flush();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -399,4 +399,37 @@ class GameConstBase
|
|||||||
public static $npcBanMessageProb = 0.01;
|
public static $npcBanMessageProb = 0.01;
|
||||||
public static $npcSeizureMessageProb = 0.01;
|
public static $npcSeizureMessageProb = 0.01;
|
||||||
public static $npcMessageFreqByDay = 4;
|
public static $npcMessageFreqByDay = 4;
|
||||||
|
|
||||||
|
public static $defaultInitialEvents = [
|
||||||
|
[
|
||||||
|
true,
|
||||||
|
["NoticeToHistoryLog", "<S>2년간 거병 및 건국이 가능합니다.</>", ActionLogger::EVENT_YEAR_MONTH]
|
||||||
|
]
|
||||||
|
];
|
||||||
|
public static $defaultEvents = [
|
||||||
|
[
|
||||||
|
"month", 2000,
|
||||||
|
["DateRelative", "==", 1, 1],
|
||||||
|
["NoticeToHistoryLog", "<S>2년 뒤 출병 제한이 풀립니다.</>", ActionLogger::EVENT_YEAR_MONTH],
|
||||||
|
["DeleteEvent"]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"month", 2000,
|
||||||
|
["DateRelative", "==", 2, 1],
|
||||||
|
["NoticeToHistoryLog", "<S>1년 뒤 출병 제한이 풀립니다.</>", ActionLogger::EVENT_YEAR_MONTH],
|
||||||
|
["DeleteEvent"]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"month", 2000,
|
||||||
|
["DateRelative", "==", 2, 7],
|
||||||
|
["NoticeToHistoryLog", "<S>6개월 뒤 출병 제한이 풀립니다. 병력을 준비해주세요.</>", ActionLogger::EVENT_YEAR_MONTH],
|
||||||
|
["DeleteEvent"]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"month", 2000,
|
||||||
|
["DateRelative", "==", 3, 1],
|
||||||
|
["NoticeToHistoryLog", "<S>출병 제한이 풀렸습니다.</>", ActionLogger::EVENT_YEAR_MONTH],
|
||||||
|
["DeleteEvent"]
|
||||||
|
],
|
||||||
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -186,6 +186,10 @@ class ResetHelper{
|
|||||||
$seasonIdx = $clearResult['seasonIdx'];
|
$seasonIdx = $clearResult['seasonIdx'];
|
||||||
|
|
||||||
$scenarioObj = new Scenario($scenario, true);
|
$scenarioObj = new Scenario($scenario, true);
|
||||||
|
|
||||||
|
if(class_exists('\\sammo\GameConst', false)){
|
||||||
|
trigger_error("이미 GameConst가 호출되어있습니다", E_USER_NOTICE);
|
||||||
|
}
|
||||||
$scenarioObj->buildConf();
|
$scenarioObj->buildConf();
|
||||||
$scenarioObj->initFull();
|
$scenarioObj->initFull();
|
||||||
|
|
||||||
|
|||||||
@@ -207,7 +207,7 @@ class Scenario{
|
|||||||
$cond = $rawEvent[0];
|
$cond = $rawEvent[0];
|
||||||
$action = array_slice($rawEvent, 1);
|
$action = array_slice($rawEvent, 1);
|
||||||
return new \sammo\Event\EventHandler($cond, $action);
|
return new \sammo\Event\EventHandler($cond, $action);
|
||||||
}, Util::array_get($data['initialEvents'], []));
|
}, array_merge(GameConst::$defaultInitialEvents, Util::array_get($data['initialEvents'], [])));
|
||||||
|
|
||||||
$this->events = array_map(function($rawEvent){
|
$this->events = array_map(function($rawEvent){
|
||||||
//event는 여기서 풀지 않는다. 평가만 한다.
|
//event는 여기서 풀지 않는다. 평가만 한다.
|
||||||
@@ -230,7 +230,7 @@ class Scenario{
|
|||||||
'cond' => $cond,
|
'cond' => $cond,
|
||||||
'action' => $action
|
'action' => $action
|
||||||
];
|
];
|
||||||
}, Util::array_get($data['events'], []));
|
}, array_merge(GameConst::$defaultEvents, Util::array_get($data['events'], [])));
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getGameConf(){
|
public function getGameConf(){
|
||||||
@@ -546,6 +546,8 @@ class Scenario{
|
|||||||
|
|
||||||
$this->buildDiplomacy($env);
|
$this->buildDiplomacy($env);
|
||||||
|
|
||||||
|
pushGlobalHistoryLog($this->history, $env['year'], $env['month']);
|
||||||
|
|
||||||
foreach($this->initialEvents as $event){
|
foreach($this->initialEvents as $event){
|
||||||
$event->tryRunEvent($env);
|
$event->tryRunEvent($env);
|
||||||
}
|
}
|
||||||
@@ -563,10 +565,6 @@ class Scenario{
|
|||||||
$db->insert('event', $events);
|
$db->insert('event', $events);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
pushGlobalHistoryLog($this->history, $env['year'], $env['month']);
|
|
||||||
|
|
||||||
refreshNationStaticInfo();
|
refreshNationStaticInfo();
|
||||||
foreach(getAllNationStaticInfo() as $nation){
|
foreach(getAllNationStaticInfo() as $nation){
|
||||||
SetNationFront($nation['nation']);
|
SetNationFront($nation['nation']);
|
||||||
|
|||||||
Reference in New Issue
Block a user