Add first battle objective tracking

This commit is contained in:
2026-06-22 19:00:35 +09:00
parent 891c89ff9e
commit e063154e26
3 changed files with 240 additions and 68 deletions

View File

@@ -80,6 +80,15 @@ try {
throw new Error(`Expected first battle scenario id: ${JSON.stringify(result.battleState)}`);
}
if (result.battleState.victoryConditionLabel !== '두령 한석 격파' || result.battleState.defeatConditionLabel !== '유비 퇴각') {
throw new Error(`Expected first battle objective labels: ${JSON.stringify(result.battleState)}`);
}
const openingLeaderObjective = result.battleState.objectives.find((objective) => objective.id === 'leader');
if (!openingLeaderObjective || openingLeaderObjective.status !== 'active' || openingLeaderObjective.achieved) {
throw new Error(`Expected live leader objective to start active: ${JSON.stringify(result.battleState.objectives)}`);
}
const actionTexturesLoaded = await page.evaluate(() => {
const textures = window.__HEROS_GAME__?.textures;
return [
@@ -165,6 +174,10 @@ try {
if (livingEnemiesAfterVictory.length > 0) {
throw new Error(`Expected no living enemies after forced victory: ${JSON.stringify(livingEnemiesAfterVictory)}`);
}
const victoryLeaderObjective = victoryState.objectives.find((objective) => objective.id === 'leader');
if (!victoryLeaderObjective || victoryLeaderObjective.status !== 'done' || !victoryLeaderObjective.achieved) {
throw new Error(`Expected leader objective to resolve after victory: ${JSON.stringify(victoryState.objectives)}`);
}
await page.screenshot({ path: 'dist/verification-battle-result-victory.png', fullPage: true });