전역 하드코드 이벤트를 동적 변경 영역으로 이동 (#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,48 @@
|
||||
<?php
|
||||
|
||||
namespace sammo\Event\Action;
|
||||
|
||||
use sammo\DB;
|
||||
use sammo\LiteHashDRBG;
|
||||
use sammo\RandUtil;
|
||||
use sammo\UniqueConst;
|
||||
use sammo\Util;
|
||||
|
||||
class RandomizeCityTradeRate extends \sammo\Event\Action
|
||||
{
|
||||
public function run(array $env)
|
||||
{
|
||||
$year = $env['year'];
|
||||
$month = $env['month'];
|
||||
|
||||
$rng = new RandUtil(new LiteHashDRBG(Util::simpleSerialize(
|
||||
UniqueConst::$hiddenSeed,
|
||||
'randomizeCityTradeRate',
|
||||
$year,
|
||||
$month,
|
||||
)));
|
||||
|
||||
$db = DB::db();
|
||||
foreach ($db->query('SELECT city,level FROM city') as $city) {
|
||||
//시세
|
||||
$prob = [
|
||||
1 => 0,
|
||||
2 => 0,
|
||||
3 => 0,
|
||||
4 => 0.2,
|
||||
5 => 0.4,
|
||||
6 => 0.6,
|
||||
7 => 0.8,
|
||||
8 => 1
|
||||
][$city['level']];
|
||||
if ($prob > 0 && $rng->nextBool($prob)) {
|
||||
$trade = $rng->nextRangeInt(95, 105);
|
||||
} else {
|
||||
$trade = null;
|
||||
}
|
||||
$db->update('city', [
|
||||
'trade' => $trade
|
||||
], 'city=%i', $city['city']);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user