test(compare): trace deterministic monthly seed progression
This commit is contained in:
+32
-1
@@ -319,7 +319,38 @@ function postUpdateMonthly(RandUtil $rng)
|
||||
|
||||
//약간의 랜덤치 부여 (95% ~ 105%)
|
||||
|
||||
$nation['power'] = Util::round($nation['power'] * $rng->nextRange(0.95, 1.05));
|
||||
$powerMultiplier = $rng->nextRange(0.95, 1.05);
|
||||
$basePower = $nation['power'];
|
||||
$nation['power'] = Util::round($basePower * $powerMultiplier);
|
||||
$traceNationIDs = getenv('REF_TRACE_NATION_POWER_IDS');
|
||||
if (
|
||||
PHP_SAPI === 'cli'
|
||||
&& getenv('REF_DETERMINISTIC_INSTALL_ENABLED') === '1'
|
||||
&& is_string($traceNationIDs)
|
||||
&& in_array((string) $nationID, explode(',', $traceNationIDs), true)
|
||||
) {
|
||||
$traceComponents = $db->queryFirstRow('SELECT
|
||||
((A.gold + A.rice) + (SELECT SUM(gold + rice) FROM general WHERE nation = A.nation)) / 100 AS resourcePowerRaw,
|
||||
ROUND(((A.gold + A.rice) + (SELECT SUM(gold + rice) FROM general WHERE nation = A.nation)) / 100) AS resourcePower,
|
||||
A.tech AS techPower,
|
||||
(SELECT SUM(pop) * SUM(pop + agri + comm + secu + wall + def) / SUM(pop_max + agri_max + comm_max + secu_max + wall_max + def_max) / 100 FROM city WHERE nation = A.nation AND supply = 1) AS cityPowerRaw,
|
||||
(SELECT ROUND(SUM(pop) * SUM(pop + agri + comm + secu + wall + def) / SUM(pop_max + agri_max + comm_max + secu_max + wall_max + def_max) / 100) FROM city WHERE nation = A.nation AND supply = 1) AS cityPower,
|
||||
(SELECT SUM((ra.value + 1000) / (rb.value + 1000) * (CASE WHEN g.npc < 2 THEN 1.2 ELSE 1 END) * (CASE WHEN g.leadership >= 40 THEN g.leadership ELSE 0 END) * 2 + (SQRT(g.intel * g.strength) * 2 + g.leadership / 2) / 2)
|
||||
FROM general g
|
||||
LEFT JOIN rank_data ra ON g.no = ra.general_id AND ra.type = \'killcrew_person\'
|
||||
LEFT JOIN rank_data rb ON g.no = rb.general_id AND rb.type = \'deathcrew_person\'
|
||||
WHERE g.nation = A.nation) AS generalPower,
|
||||
(SELECT SUM(experience + dedication) / 100 FROM general WHERE nation = A.nation) AS experiencePowerRaw,
|
||||
(SELECT ROUND(SUM(experience + dedication) / 100) FROM general WHERE nation = A.nation) AS experiencePower
|
||||
FROM nation A WHERE A.nation = %i', $nationID) ?? [];
|
||||
fwrite(STDOUT, 'NATION_POWER_TRACE ' . Json::encode([
|
||||
'nationId' => $nationID,
|
||||
...$traceComponents,
|
||||
'basePower' => $basePower,
|
||||
'multiplier' => $powerMultiplier,
|
||||
'power' => $nation['power'],
|
||||
]) . PHP_EOL);
|
||||
}
|
||||
$powerValues['maxPower'] = max($powerValues['maxPower'] ?? 0, $nation['power']);
|
||||
$powerValues['maxCrew'] = max($powerValues['maxCrew'] ?? 0, Util::toInt($nation['totalCrew']));
|
||||
|
||||
|
||||
Reference in New Issue
Block a user