diff --git a/hwe/compare/fixtures/unification_invader_resume.json b/hwe/compare/fixtures/unification_invader_resume.json index b2e5b2a2..5c0c51f9 100644 --- a/hwe/compare/fixtures/unification_invader_resume.json +++ b/hwe/compare/fixtures/unification_invader_resume.json @@ -48,16 +48,22 @@ "bornyear": 170, "deadyear": 260, "belong": 240, + "killturn": 24, + "dex1": 1000, + "dex2": 1000, + "dex3": 1000, + "dex4": 1000, + "dex5": 1000, "aux": {} } }, - { "id": 2, "values": { "name": "재현관직11", "nation": 1, "city": 1, "officer_level": 11, "owner": 0, "npc": 2, "aux": {} } }, - { "id": 3, "values": { "name": "재현관직10", "nation": 1, "city": 1, "officer_level": 10, "owner": 0, "npc": 2, "aux": {} } }, - { "id": 4, "values": { "name": "재현관직9", "nation": 1, "city": 1, "officer_level": 9, "owner": 0, "npc": 2, "aux": {} } }, - { "id": 5, "values": { "name": "재현관직8", "nation": 1, "city": 1, "officer_level": 8, "owner": 0, "npc": 2, "aux": {} } }, - { "id": 6, "values": { "name": "재현관직7", "nation": 1, "city": 1, "officer_level": 7, "owner": 0, "npc": 2, "aux": {} } }, - { "id": 7, "values": { "name": "재현관직6", "nation": 1, "city": 1, "officer_level": 6, "owner": 0, "npc": 2, "aux": {} } }, - { "id": 8, "values": { "name": "재현관직5", "nation": 1, "city": 1, "officer_level": 5, "owner": 0, "npc": 2, "aux": {} } } + { "id": 2, "values": { "name": "재현관직11", "nation": 1, "city": 1, "officer_level": 11, "owner": 0, "npc": 2, "killturn": 24, "dex1": 1000, "dex2": 1000, "dex3": 1000, "dex4": 1000, "dex5": 1000, "aux": {} } }, + { "id": 3, "values": { "name": "재현관직10", "nation": 1, "city": 1, "officer_level": 10, "owner": 0, "npc": 2, "killturn": 24, "dex1": 1000, "dex2": 1000, "dex3": 1000, "dex4": 1000, "dex5": 1000, "aux": {} } }, + { "id": 4, "values": { "name": "재현관직9", "nation": 1, "city": 1, "officer_level": 9, "owner": 0, "npc": 2, "killturn": 24, "dex1": 1000, "dex2": 1000, "dex3": 1000, "dex4": 1000, "dex5": 1000, "aux": {} } }, + { "id": 5, "values": { "name": "재현관직8", "nation": 1, "city": 1, "officer_level": 8, "owner": 0, "npc": 2, "killturn": 24, "dex1": 1000, "dex2": 1000, "dex3": 1000, "dex4": 1000, "dex5": 1000, "aux": {} } }, + { "id": 6, "values": { "name": "재현관직7", "nation": 1, "city": 1, "officer_level": 7, "owner": 0, "npc": 2, "killturn": 24, "dex1": 1000, "dex2": 1000, "dex3": 1000, "dex4": 1000, "dex5": 1000, "aux": {} } }, + { "id": 7, "values": { "name": "재현관직6", "nation": 1, "city": 1, "officer_level": 6, "owner": 0, "npc": 2, "killturn": 24, "dex1": 1000, "dex2": 1000, "dex3": 1000, "dex4": 1000, "dex5": 1000, "aux": {} } }, + { "id": 8, "values": { "name": "재현관직5", "nation": 1, "city": 1, "officer_level": 5, "owner": 0, "npc": 2, "killturn": 24, "dex1": 1000, "dex2": 1000, "dex3": 1000, "dex4": 1000, "dex5": 1000, "aux": {} } } ], "nationEnvironment": [ { "nationId": 1, "key": "nationNotice", "value": { "msg": "재현" } }, diff --git a/hwe/compare/monthly_event_trace.php b/hwe/compare/monthly_event_trace.php index cb44f003..1266b504 100644 --- a/hwe/compare/monthly_event_trace.php +++ b/hwe/compare/monthly_event_trace.php @@ -855,6 +855,21 @@ function comparisonUnificationInvaderResumeTrace(array $request, array $environm 'messages' => $invaderMessages, ]; + $stopAfterButton = $request['stopAfterButton'] ?? false; + if (!is_bool($stopAfterButton)) { + throw new \InvalidArgumentException('stopAfterButton must be a boolean'); + } + if ($stopAfterButton) { + return [ + 'schemaVersion' => 1, + 'engine' => 'ref', + 'action' => 'UnificationInvaderResume', + 'phase' => 'button', + 'before' => $before, + 'buttonSnapshot' => $buttonSnapshot, + ]; + } + // Simulate an autoreset poll that recorded the original unification pause. // A successful event start must replace this stale operational wall anchor. $pausedAnchor = '2000-01-01 00:00:00.000000';