전역 하드코드 이벤트를 동적 변경 영역으로 이동 #230

Merged
Hide_D merged 15 commits from DivideHardcodedEvent into devel 2023-03-12 17:14:49 +09:00
Showing only changes of commit db66c1728a - Show all commits
@@ -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);
}
}