전역 하드코드 이벤트를 동적 변경 영역으로 이동 (#230)
기존에 작성해두었던 EventHandler 시스템으로 하드코드 이벤트 이동 - 매달 - 보급선 설정 - 전쟁 단기 수입 설정 - 부대장 부여 - 1월 - 유산 포인트 계산 - 도시 인구 변화 - 수입 - 관직 제한 해제 - 재난 - 상인 - 새해 알림 - 특기 부여 - 4월 - 관직 제한 해제 - 재난 - 7월 - 유산 포인트 계산 - 도시 인구 변화 - 수입 - 관직 제한 해제 - 재난 - 상인 - 10월 - 관직 제한 해제 - 재난 - 천통 시 - 유산 포인트 계산 Reviewed-on: https://storage.hided.net/gitea/devsam/core/pulls/230
This commit was merged in pull request #230.
This commit is contained in:
@@ -0,0 +1,36 @@
|
||||
<?php
|
||||
|
||||
namespace sammo\Event\Action;
|
||||
|
||||
use sammo\DB;
|
||||
use sammo\Util;
|
||||
|
||||
use function sammo\getAllNationStaticInfo;
|
||||
use function sammo\getWarGoldIncome;
|
||||
|
||||
class ProcessWarIncome extends \sammo\Event\Action
|
||||
{
|
||||
public function run(array $env)
|
||||
{
|
||||
$db = DB::db();
|
||||
|
||||
$cityListByNation = Util::arrayGroupBy($db->query('SELECT * FROM city'), 'nation');
|
||||
|
||||
foreach(getAllNationStaticInfo() as $nation){
|
||||
if($nation['level'] <= 0){
|
||||
continue;
|
||||
}
|
||||
$nationID = $nation['nation'];
|
||||
$income = getWarGoldIncome($nation['type'], $cityListByNation[$nationID]??[]);
|
||||
$db->update('nation', [
|
||||
'gold'=>$db->sqleval('gold + %i', $income)
|
||||
], 'nation=%i', $nationID);
|
||||
}
|
||||
|
||||
// 10%수입, 20%부상병
|
||||
$db->update('city', [
|
||||
'pop'=>$db->sqleval('pop + dead * %d', 0.2),
|
||||
'dead'=>0
|
||||
], true);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user