merge: trace monthly speciality and betrayal actions
This commit is contained in:
@@ -0,0 +1,23 @@
|
||||
{
|
||||
"action": "AddGlobalBetray",
|
||||
"args": [2, 1],
|
||||
"setup": {
|
||||
"resetGenerals": true,
|
||||
"deleteOtherGenerals": true,
|
||||
"keepGeneralIds": [1, 2, 3],
|
||||
"general": [
|
||||
{ "id": 1, "values": { "name": "배신0", "betray": 0 } },
|
||||
{ "id": 2, "values": { "name": "배신1", "betray": 1 } },
|
||||
{ "id": 3, "values": { "name": "배신2", "betray": 2 } }
|
||||
]
|
||||
},
|
||||
"environment": {
|
||||
"year": 194,
|
||||
"month": 1,
|
||||
"startyear": 190
|
||||
},
|
||||
"observe": {
|
||||
"generalIds": [1, 2, 3]
|
||||
},
|
||||
"compactOutput": true
|
||||
}
|
||||
@@ -0,0 +1,79 @@
|
||||
{
|
||||
"action": "AssignGeneralSpeciality",
|
||||
"setup": {
|
||||
"resetGenerals": true,
|
||||
"deleteOtherGenerals": true,
|
||||
"keepGeneralIds": [1, 2, 3],
|
||||
"general": [
|
||||
{
|
||||
"id": 1,
|
||||
"values": {
|
||||
"name": "내정대상",
|
||||
"nation": 1,
|
||||
"age": 30,
|
||||
"leadership": 40,
|
||||
"strength": 45,
|
||||
"intel": 80,
|
||||
"special": "None",
|
||||
"specage": 30,
|
||||
"special2": "che_신산",
|
||||
"specage2": 99,
|
||||
"aux": {
|
||||
"prev_types_special": ["che_경작"]
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": 2,
|
||||
"values": {
|
||||
"name": "전투대상",
|
||||
"nation": 1,
|
||||
"age": 30,
|
||||
"leadership": 80,
|
||||
"strength": 75,
|
||||
"intel": 40,
|
||||
"special": "che_인덕",
|
||||
"specage": 99,
|
||||
"special2": "None",
|
||||
"specage2": 30,
|
||||
"dex1": 200,
|
||||
"dex2": 10,
|
||||
"dex3": 10,
|
||||
"dex4": 10,
|
||||
"dex5": 10,
|
||||
"aux": {
|
||||
"prev_types_special2": ["che_돌격"]
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": 3,
|
||||
"values": {
|
||||
"name": "계승대상",
|
||||
"nation": 2,
|
||||
"age": 30,
|
||||
"leadership": 50,
|
||||
"strength": 50,
|
||||
"intel": 50,
|
||||
"special": "che_경작",
|
||||
"specage": 99,
|
||||
"special2": "None",
|
||||
"specage2": 30,
|
||||
"aux": {
|
||||
"inheritSpecificSpecialWar": "che_의술",
|
||||
"marker": 3
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"environment": {
|
||||
"year": 200,
|
||||
"month": 1,
|
||||
"startyear": 190
|
||||
},
|
||||
"observe": {
|
||||
"generalIds": [1, 2, 3]
|
||||
},
|
||||
"compactOutput": true
|
||||
}
|
||||
@@ -44,7 +44,8 @@ function comparisonMonthlyPatch(string $table, int $id, array $values): void
|
||||
'gold', 'rice', 'horse', 'weapon', 'book', 'item', 'aux',
|
||||
'leadership', 'strength', 'intel', 'experience', 'dedication',
|
||||
'dex1', 'dex2', 'dex3', 'dex4', 'dex5', 'personal', 'special',
|
||||
'special2', 'bornyear', 'deadyear', 'turntime',
|
||||
'specage', 'special2', 'specage2', 'betray', 'age',
|
||||
'bornyear', 'deadyear', 'turntime',
|
||||
],
|
||||
],
|
||||
];
|
||||
@@ -98,7 +99,23 @@ function comparisonMonthlyDetails(array $observe, int $worldHistoryAfterId): arr
|
||||
'atmos' => 'atmos',
|
||||
'gold' => 'gold',
|
||||
'rice' => 'rice',
|
||||
'leadership' => 'leadership',
|
||||
'strength' => 'strength',
|
||||
'intelligence' => 'intel',
|
||||
'age' => 'age',
|
||||
'specialDomestic' => 'special',
|
||||
'specAge' => 'specage',
|
||||
'specialWar' => 'special2',
|
||||
'specAge2' => 'specage2',
|
||||
'betray' => 'betray',
|
||||
'dex1' => 'dex1',
|
||||
'dex2' => 'dex2',
|
||||
'dex3' => 'dex3',
|
||||
'dex4' => 'dex4',
|
||||
'dex5' => 'dex5',
|
||||
'aux' => 'aux',
|
||||
],
|
||||
['aux'],
|
||||
),
|
||||
comparisonRowsById('general', 'no', comparisonIntegerList($observe['generalIds'] ?? [], 'generalIds')),
|
||||
);
|
||||
@@ -212,6 +229,8 @@ function comparisonMonthlyEventTraceMain(): void
|
||||
'FinishNationBetting',
|
||||
'BlockScoutAction',
|
||||
'UnblockScoutAction',
|
||||
'AssignGeneralSpeciality',
|
||||
'AddGlobalBetray',
|
||||
];
|
||||
if (!in_array($actionName, $supportedActions, true)) {
|
||||
throw new \InvalidArgumentException('unsupported monthly action');
|
||||
@@ -423,7 +442,7 @@ function comparisonMonthlyEventTraceMain(): void
|
||||
throw new \InvalidArgumentException('ProcessSemiAnnual requires resource');
|
||||
}
|
||||
$action = new $actionClass($resource);
|
||||
} elseif (in_array($actionName, ['CreateManyNPC', 'RegNPC', 'RegNeutralNPC', 'RaiseInvader', 'AutoDeleteInvader', 'ChangeCity', 'OpenNationBetting', 'FinishNationBetting', 'BlockScoutAction', 'UnblockScoutAction'], true)) {
|
||||
} elseif (in_array($actionName, ['CreateManyNPC', 'RegNPC', 'RegNeutralNPC', 'RaiseInvader', 'AutoDeleteInvader', 'ChangeCity', 'OpenNationBetting', 'FinishNationBetting', 'BlockScoutAction', 'UnblockScoutAction', 'AddGlobalBetray'], true)) {
|
||||
$args = $request['args'] ?? [];
|
||||
if (!is_array($args)) {
|
||||
throw new \InvalidArgumentException("{$actionName} args must be an array");
|
||||
@@ -446,6 +465,9 @@ function comparisonMonthlyEventTraceMain(): void
|
||||
if (in_array($actionName, ['BlockScoutAction', 'UnblockScoutAction'], true) && count($args) > 1) {
|
||||
throw new \InvalidArgumentException("{$actionName} args must have at most one entry");
|
||||
}
|
||||
if ($actionName === 'AddGlobalBetray' && count($args) > 2) {
|
||||
throw new \InvalidArgumentException('AddGlobalBetray args must have at most two entries');
|
||||
}
|
||||
$action = new $actionClass(...$args);
|
||||
} else {
|
||||
$action = new $actionClass();
|
||||
@@ -733,6 +755,7 @@ function comparisonMonthlyEventTraceMain(): void
|
||||
'createdEvents' => $response['createdEvents'] ?? [],
|
||||
'createdDiplomacy' => $response['createdDiplomacy'] ?? [],
|
||||
'gameEnvironment' => $response['gameEnvironment'] ?? [],
|
||||
'logs' => $after['logs'],
|
||||
'observedGeneralTurns' => $observedGeneralTurns,
|
||||
'remainingEventIds' => array_map(
|
||||
'intval',
|
||||
|
||||
Reference in New Issue
Block a user