Add Weishui camps chapter
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
import { spawn } from 'node:child_process';
|
||||
import { spawn } from 'node:child_process';
|
||||
import { chromium } from 'playwright';
|
||||
|
||||
const targetUrl = process.env.VERIFY_URL ?? 'http://localhost:5173/';
|
||||
@@ -1804,7 +1804,7 @@ try {
|
||||
if (
|
||||
progressTabState?.activeTab !== 'progress' ||
|
||||
progressTabState.campaignProgress?.completedKnown !== 17 ||
|
||||
progressTabState.campaignProgress?.totalKnown !== 63 ||
|
||||
progressTabState.campaignProgress?.totalKnown !== 64 ||
|
||||
progressTabState.campaignProgress?.activeChapter?.title !== '적벽대전' ||
|
||||
progressTabState.campaignProgress?.latestBattleTitle !== '융중 방문로' ||
|
||||
progressTabState.campaignProgress?.nextBattleTitle !== '박망파 매복전'
|
||||
@@ -1952,7 +1952,7 @@ try {
|
||||
if (
|
||||
postBowangProgressState?.activeTab !== 'progress' ||
|
||||
postBowangProgressState.campaignProgress?.completedKnown !== 18 ||
|
||||
postBowangProgressState.campaignProgress?.totalKnown !== 63 ||
|
||||
postBowangProgressState.campaignProgress?.totalKnown !== 64 ||
|
||||
postBowangProgressState.campaignProgress?.activeChapter?.title !== '적벽대전' ||
|
||||
postBowangProgressState.campaignProgress?.latestBattleTitle !== '박망파 매복전' ||
|
||||
postBowangProgressState.campaignProgress?.nextBattleTitle !== '장판파 피난로'
|
||||
@@ -2087,7 +2087,7 @@ try {
|
||||
if (
|
||||
postChangbanProgressState?.activeTab !== 'progress' ||
|
||||
postChangbanProgressState.campaignProgress?.completedKnown !== 19 ||
|
||||
postChangbanProgressState.campaignProgress?.totalKnown !== 63 ||
|
||||
postChangbanProgressState.campaignProgress?.totalKnown !== 64 ||
|
||||
postChangbanProgressState.campaignProgress?.activeChapter?.title !== '적벽대전' ||
|
||||
postChangbanProgressState.campaignProgress?.latestBattleTitle !== '장판파 피난로' ||
|
||||
postChangbanProgressState.campaignProgress?.nextBattleTitle !== '강동 사절로'
|
||||
@@ -2222,7 +2222,7 @@ try {
|
||||
if (
|
||||
postJiangdongProgressState?.activeTab !== 'progress' ||
|
||||
postJiangdongProgressState.campaignProgress?.completedKnown !== 20 ||
|
||||
postJiangdongProgressState.campaignProgress?.totalKnown !== 63 ||
|
||||
postJiangdongProgressState.campaignProgress?.totalKnown !== 64 ||
|
||||
postJiangdongProgressState.campaignProgress?.activeChapter?.title !== '적벽대전' ||
|
||||
postJiangdongProgressState.campaignProgress?.latestBattleTitle !== '강동 사절로' ||
|
||||
postJiangdongProgressState.campaignProgress?.nextBattleTitle !== '적벽 전초전'
|
||||
@@ -2359,7 +2359,7 @@ try {
|
||||
if (
|
||||
postRedCliffsProgressState?.activeTab !== 'progress' ||
|
||||
postRedCliffsProgressState.campaignProgress?.completedKnown !== 21 ||
|
||||
postRedCliffsProgressState.campaignProgress?.totalKnown !== 63 ||
|
||||
postRedCliffsProgressState.campaignProgress?.totalKnown !== 64 ||
|
||||
postRedCliffsProgressState.campaignProgress?.activeChapter?.title !== '적벽대전' ||
|
||||
postRedCliffsProgressState.campaignProgress?.latestBattleTitle !== '적벽 전초전' ||
|
||||
postRedCliffsProgressState.campaignProgress?.nextBattleTitle !== '적벽 화공전'
|
||||
@@ -2496,7 +2496,7 @@ try {
|
||||
if (
|
||||
postFireAttackProgressState?.activeTab !== 'progress' ||
|
||||
postFireAttackProgressState.campaignProgress?.completedKnown !== 22 ||
|
||||
postFireAttackProgressState.campaignProgress?.totalKnown !== 63 ||
|
||||
postFireAttackProgressState.campaignProgress?.totalKnown !== 64 ||
|
||||
postFireAttackProgressState.campaignProgress?.activeChapter?.title !== '형주·익주 확보' ||
|
||||
postFireAttackProgressState.campaignProgress?.latestBattleTitle !== '적벽 화공전' ||
|
||||
postFireAttackProgressState.campaignProgress?.nextBattleTitle !== '형주 남부 진입전'
|
||||
@@ -2636,7 +2636,7 @@ try {
|
||||
if (
|
||||
postJingzhouProgressState?.activeTab !== 'progress' ||
|
||||
postJingzhouProgressState.campaignProgress?.completedKnown !== 23 ||
|
||||
postJingzhouProgressState.campaignProgress?.totalKnown !== 63 ||
|
||||
postJingzhouProgressState.campaignProgress?.totalKnown !== 64 ||
|
||||
postJingzhouProgressState.campaignProgress?.activeChapter?.title !== '형주·익주 확보' ||
|
||||
postJingzhouProgressState.campaignProgress?.latestBattleTitle !== '형주 남부 진입전' ||
|
||||
postJingzhouProgressState.campaignProgress?.nextBattleTitle !== '계양 설득전'
|
||||
@@ -2775,7 +2775,7 @@ try {
|
||||
if (
|
||||
postGuiyangProgressState?.activeTab !== 'progress' ||
|
||||
postGuiyangProgressState.campaignProgress?.completedKnown !== 24 ||
|
||||
postGuiyangProgressState.campaignProgress?.totalKnown !== 63 ||
|
||||
postGuiyangProgressState.campaignProgress?.totalKnown !== 64 ||
|
||||
postGuiyangProgressState.campaignProgress?.activeChapter?.title !== '형주·익주 확보' ||
|
||||
postGuiyangProgressState.campaignProgress?.latestBattleTitle !== '계양 설득전' ||
|
||||
postGuiyangProgressState.campaignProgress?.nextBattleTitle !== '무릉 산길 확보전'
|
||||
@@ -2915,7 +2915,7 @@ try {
|
||||
if (
|
||||
postWulingProgressState?.activeTab !== 'progress' ||
|
||||
postWulingProgressState.campaignProgress?.completedKnown !== 25 ||
|
||||
postWulingProgressState.campaignProgress?.totalKnown !== 63 ||
|
||||
postWulingProgressState.campaignProgress?.totalKnown !== 64 ||
|
||||
postWulingProgressState.campaignProgress?.activeChapter?.title !== '형주·익주 확보' ||
|
||||
postWulingProgressState.campaignProgress?.latestBattleTitle !== '무릉 산길 확보전' ||
|
||||
postWulingProgressState.campaignProgress?.nextBattleTitle !== '장사 노장 대면전'
|
||||
@@ -3061,7 +3061,7 @@ try {
|
||||
if (
|
||||
postChangshaProgressState?.activeTab !== 'progress' ||
|
||||
postChangshaProgressState.campaignProgress?.completedKnown !== 26 ||
|
||||
postChangshaProgressState.campaignProgress?.totalKnown !== 63 ||
|
||||
postChangshaProgressState.campaignProgress?.totalKnown !== 64 ||
|
||||
postChangshaProgressState.campaignProgress?.activeChapter?.title !== '형주·익주 확보' ||
|
||||
postChangshaProgressState.campaignProgress?.latestBattleTitle !== '장사 노장 대면전' ||
|
||||
postChangshaProgressState.campaignProgress?.nextBattleTitle !== '익주 원군로'
|
||||
@@ -3203,7 +3203,7 @@ try {
|
||||
if (
|
||||
postYizhouProgressState?.activeTab !== 'progress' ||
|
||||
postYizhouProgressState.campaignProgress?.completedKnown !== 27 ||
|
||||
postYizhouProgressState.campaignProgress?.totalKnown !== 63 ||
|
||||
postYizhouProgressState.campaignProgress?.totalKnown !== 64 ||
|
||||
postYizhouProgressState.campaignProgress?.activeChapter?.title !== '형주·익주 확보' ||
|
||||
postYizhouProgressState.campaignProgress?.latestBattleTitle !== '익주 원군로' ||
|
||||
postYizhouProgressState.campaignProgress?.nextBattleTitle !== '부수관 진입전'
|
||||
@@ -3347,7 +3347,7 @@ try {
|
||||
if (
|
||||
postFuPassProgressState?.activeTab !== 'progress' ||
|
||||
postFuPassProgressState.campaignProgress?.completedKnown !== 28 ||
|
||||
postFuPassProgressState.campaignProgress?.totalKnown !== 63 ||
|
||||
postFuPassProgressState.campaignProgress?.totalKnown !== 64 ||
|
||||
postFuPassProgressState.campaignProgress?.activeChapter?.title !== '형주·익주 확보' ||
|
||||
postFuPassProgressState.campaignProgress?.latestBattleTitle !== '부수관 진입전' ||
|
||||
postFuPassProgressState.campaignProgress?.nextBattleTitle !== '낙성 외곽전'
|
||||
@@ -3493,7 +3493,7 @@ try {
|
||||
if (
|
||||
postLuoProgressState?.activeTab !== 'progress' ||
|
||||
postLuoProgressState.campaignProgress?.completedKnown !== 29 ||
|
||||
postLuoProgressState.campaignProgress?.totalKnown !== 63 ||
|
||||
postLuoProgressState.campaignProgress?.totalKnown !== 64 ||
|
||||
postLuoProgressState.campaignProgress?.activeChapter?.title !== '형주·익주 확보' ||
|
||||
postLuoProgressState.campaignProgress?.latestBattleTitle !== '낙성 외곽전' ||
|
||||
postLuoProgressState.campaignProgress?.nextBattleTitle !== '낙봉파 매복전'
|
||||
@@ -3636,7 +3636,7 @@ try {
|
||||
if (
|
||||
postLuofengProgressState?.activeTab !== 'progress' ||
|
||||
postLuofengProgressState.campaignProgress?.completedKnown !== 30 ||
|
||||
postLuofengProgressState.campaignProgress?.totalKnown !== 63 ||
|
||||
postLuofengProgressState.campaignProgress?.totalKnown !== 64 ||
|
||||
postLuofengProgressState.campaignProgress?.activeChapter?.title !== '형주·익주 확보' ||
|
||||
postLuofengProgressState.campaignProgress?.latestBattleTitle !== '낙봉파 매복전' ||
|
||||
postLuofengProgressState.campaignProgress?.nextBattleTitle !== '낙성 본성 공략'
|
||||
@@ -3785,7 +3785,7 @@ try {
|
||||
if (
|
||||
postLuoMainProgressState?.activeTab !== 'progress' ||
|
||||
postLuoMainProgressState.campaignProgress?.completedKnown !== 31 ||
|
||||
postLuoMainProgressState.campaignProgress?.totalKnown !== 63 ||
|
||||
postLuoMainProgressState.campaignProgress?.totalKnown !== 64 ||
|
||||
postLuoMainProgressState.campaignProgress?.activeChapter?.title !== '형주·익주 확보' ||
|
||||
postLuoMainProgressState.campaignProgress?.latestBattleTitle !== '낙성 본성 공략' ||
|
||||
postLuoMainProgressState.campaignProgress?.nextBattleTitle !== '면죽관 압박전'
|
||||
@@ -3935,7 +3935,7 @@ try {
|
||||
if (
|
||||
postMianzhuProgressState?.activeTab !== 'progress' ||
|
||||
postMianzhuProgressState.campaignProgress?.completedKnown !== 32 ||
|
||||
postMianzhuProgressState.campaignProgress?.totalKnown !== 63 ||
|
||||
postMianzhuProgressState.campaignProgress?.totalKnown !== 64 ||
|
||||
postMianzhuProgressState.campaignProgress?.activeChapter?.title !== '형주·익주 확보' ||
|
||||
postMianzhuProgressState.campaignProgress?.latestBattleTitle !== '면죽관 압박전' ||
|
||||
postMianzhuProgressState.campaignProgress?.nextBattleTitle !== '성도 항복 권고전'
|
||||
@@ -4086,7 +4086,7 @@ try {
|
||||
if (
|
||||
postChengduProgressState?.activeTab !== 'progress' ||
|
||||
postChengduProgressState.campaignProgress?.completedKnown !== 33 ||
|
||||
postChengduProgressState.campaignProgress?.totalKnown !== 63 ||
|
||||
postChengduProgressState.campaignProgress?.totalKnown !== 64 ||
|
||||
postChengduProgressState.campaignProgress?.activeChapter?.title !== '촉한 건국' ||
|
||||
postChengduProgressState.campaignProgress?.latestBattleTitle !== '성도 항복 권고전' ||
|
||||
postChengduProgressState.campaignProgress?.nextBattleTitle !== '가맹관 마초 대면전'
|
||||
@@ -4238,7 +4238,7 @@ try {
|
||||
if (
|
||||
postJiamengProgressState?.activeTab !== 'progress' ||
|
||||
postJiamengProgressState.campaignProgress?.completedKnown !== 34 ||
|
||||
postJiamengProgressState.campaignProgress?.totalKnown !== 63 ||
|
||||
postJiamengProgressState.campaignProgress?.totalKnown !== 64 ||
|
||||
postJiamengProgressState.campaignProgress?.activeChapter?.title !== '촉한 건국' ||
|
||||
postJiamengProgressState.campaignProgress?.latestBattleTitle !== '가맹관 마초 대면전' ||
|
||||
postJiamengProgressState.campaignProgress?.nextBattleTitle !== '양평관 정찰전'
|
||||
@@ -4391,7 +4391,7 @@ try {
|
||||
if (
|
||||
postYangpingProgressState?.activeTab !== 'progress' ||
|
||||
postYangpingProgressState.campaignProgress?.completedKnown !== 35 ||
|
||||
postYangpingProgressState.campaignProgress?.totalKnown !== 63 ||
|
||||
postYangpingProgressState.campaignProgress?.totalKnown !== 64 ||
|
||||
postYangpingProgressState.campaignProgress?.activeChapter?.title !== '촉한 건국' ||
|
||||
postYangpingProgressState.campaignProgress?.latestBattleTitle !== '양평관 정찰전' ||
|
||||
postYangpingProgressState.campaignProgress?.nextBattleTitle !== '정군산 전초전'
|
||||
@@ -4545,7 +4545,7 @@ try {
|
||||
if (
|
||||
postDingjunProgressState?.activeTab !== 'progress' ||
|
||||
postDingjunProgressState.campaignProgress?.completedKnown !== 36 ||
|
||||
postDingjunProgressState.campaignProgress?.totalKnown !== 63 ||
|
||||
postDingjunProgressState.campaignProgress?.totalKnown !== 64 ||
|
||||
postDingjunProgressState.campaignProgress?.activeChapter?.title !== '촉한 건국' ||
|
||||
postDingjunProgressState.campaignProgress?.latestBattleTitle !== '정군산 전초전' ||
|
||||
postDingjunProgressState.campaignProgress?.nextBattleTitle !== '한중 결전'
|
||||
@@ -4695,7 +4695,7 @@ try {
|
||||
if (
|
||||
postHanzhongProgressState?.activeTab !== 'progress' ||
|
||||
postHanzhongProgressState.campaignProgress?.completedKnown !== 37 ||
|
||||
postHanzhongProgressState.campaignProgress?.totalKnown !== 63 ||
|
||||
postHanzhongProgressState.campaignProgress?.totalKnown !== 64 ||
|
||||
postHanzhongProgressState.campaignProgress?.activeChapter?.title !== '촉한 건국' ||
|
||||
postHanzhongProgressState.campaignProgress?.latestBattleTitle !== '한중 결전' ||
|
||||
postHanzhongProgressState.campaignProgress?.nextBattleTitle !== '한중왕 즉위 준비'
|
||||
@@ -4753,7 +4753,7 @@ try {
|
||||
if (
|
||||
postKingCouncilProgressState?.activeTab !== 'progress' ||
|
||||
postKingCouncilProgressState.campaignProgress?.completedKnown !== 37 ||
|
||||
postKingCouncilProgressState.campaignProgress?.totalKnown !== 63 ||
|
||||
postKingCouncilProgressState.campaignProgress?.totalKnown !== 64 ||
|
||||
postKingCouncilProgressState.campaignProgress?.latestBattleTitle !== '한중 결전' ||
|
||||
postKingCouncilProgressState.campaignProgress?.nextBattleTitle !== '촉한 건국 선포'
|
||||
) {
|
||||
@@ -4810,7 +4810,7 @@ try {
|
||||
if (
|
||||
postFoundationProgressState?.activeTab !== 'progress' ||
|
||||
postFoundationProgressState.campaignProgress?.completedKnown !== 37 ||
|
||||
postFoundationProgressState.campaignProgress?.totalKnown !== 63 ||
|
||||
postFoundationProgressState.campaignProgress?.totalKnown !== 64 ||
|
||||
postFoundationProgressState.campaignProgress?.latestBattleTitle !== '한중 결전' ||
|
||||
postFoundationProgressState.campaignProgress?.nextBattleTitle !== '형주 방위 전초전'
|
||||
) {
|
||||
@@ -4958,7 +4958,7 @@ try {
|
||||
if (
|
||||
postJingDefenseProgressState?.activeTab !== 'progress' ||
|
||||
postJingDefenseProgressState.campaignProgress?.completedKnown !== 38 ||
|
||||
postJingDefenseProgressState.campaignProgress?.totalKnown !== 63 ||
|
||||
postJingDefenseProgressState.campaignProgress?.totalKnown !== 64 ||
|
||||
postJingDefenseProgressState.campaignProgress?.latestBattleTitle !== '형주 방위 전초전' ||
|
||||
postJingDefenseProgressState.campaignProgress?.nextBattleTitle !== '번성 외곽 압박전'
|
||||
) {
|
||||
@@ -5108,7 +5108,7 @@ try {
|
||||
if (
|
||||
postFanCastleProgressState?.activeTab !== 'progress' ||
|
||||
postFanCastleProgressState.campaignProgress?.completedKnown !== 39 ||
|
||||
postFanCastleProgressState.campaignProgress?.totalKnown !== 63 ||
|
||||
postFanCastleProgressState.campaignProgress?.totalKnown !== 64 ||
|
||||
postFanCastleProgressState.campaignProgress?.latestBattleTitle !== '번성 외곽 압박전' ||
|
||||
postFanCastleProgressState.campaignProgress?.nextBattleTitle !== '한수 수공'
|
||||
) {
|
||||
@@ -5259,7 +5259,7 @@ try {
|
||||
if (
|
||||
postHanRiverProgressState?.activeTab !== 'progress' ||
|
||||
postHanRiverProgressState.campaignProgress?.completedKnown !== 40 ||
|
||||
postHanRiverProgressState.campaignProgress?.totalKnown !== 63 ||
|
||||
postHanRiverProgressState.campaignProgress?.totalKnown !== 64 ||
|
||||
postHanRiverProgressState.campaignProgress?.latestBattleTitle !== '한수 수공' ||
|
||||
postHanRiverProgressState.campaignProgress?.nextBattleTitle !== '번성 공성전'
|
||||
) {
|
||||
@@ -5410,7 +5410,7 @@ try {
|
||||
if (
|
||||
postFanSiegeProgressState?.activeTab !== 'progress' ||
|
||||
postFanSiegeProgressState.campaignProgress?.completedKnown !== 41 ||
|
||||
postFanSiegeProgressState.campaignProgress?.totalKnown !== 63 ||
|
||||
postFanSiegeProgressState.campaignProgress?.totalKnown !== 64 ||
|
||||
postFanSiegeProgressState.campaignProgress?.latestBattleTitle !== '번성 공성전' ||
|
||||
postFanSiegeProgressState.campaignProgress?.nextBattleTitle !== '강릉 나루 경계전'
|
||||
) {
|
||||
@@ -5569,7 +5569,7 @@ try {
|
||||
if (
|
||||
postJingRearProgressState?.activeTab !== 'progress' ||
|
||||
postJingRearProgressState.campaignProgress?.completedKnown !== 42 ||
|
||||
postJingRearProgressState.campaignProgress?.totalKnown !== 63 ||
|
||||
postJingRearProgressState.campaignProgress?.totalKnown !== 64 ||
|
||||
postJingRearProgressState.campaignProgress?.latestBattleTitle !== '강릉 나루 경계전' ||
|
||||
postJingRearProgressState.campaignProgress?.nextBattleTitle !== '공안 성문 변고'
|
||||
) {
|
||||
@@ -5721,7 +5721,7 @@ try {
|
||||
if (
|
||||
postGonganProgressState?.activeTab !== 'progress' ||
|
||||
postGonganProgressState.campaignProgress?.completedKnown !== 43 ||
|
||||
postGonganProgressState.campaignProgress?.totalKnown !== 63 ||
|
||||
postGonganProgressState.campaignProgress?.totalKnown !== 64 ||
|
||||
postGonganProgressState.campaignProgress?.latestBattleTitle !== '공안 성문 변고' ||
|
||||
postGonganProgressState.campaignProgress?.nextBattleTitle !== '맥성 고립전'
|
||||
) {
|
||||
@@ -5876,7 +5876,7 @@ try {
|
||||
if (
|
||||
postMaichengProgressState?.activeTab !== 'progress' ||
|
||||
postMaichengProgressState.campaignProgress?.completedKnown !== 44 ||
|
||||
postMaichengProgressState.campaignProgress?.totalKnown !== 63 ||
|
||||
postMaichengProgressState.campaignProgress?.totalKnown !== 64 ||
|
||||
postMaichengProgressState.campaignProgress?.latestBattleTitle !== '맥성 고립전' ||
|
||||
postMaichengProgressState.campaignProgress?.nextBattleTitle !== '이릉 진격로'
|
||||
) {
|
||||
@@ -6030,7 +6030,7 @@ try {
|
||||
if (
|
||||
postYilingProgressState?.activeTab !== 'progress' ||
|
||||
postYilingProgressState.campaignProgress?.completedKnown !== 45 ||
|
||||
postYilingProgressState.campaignProgress?.totalKnown !== 63 ||
|
||||
postYilingProgressState.campaignProgress?.totalKnown !== 64 ||
|
||||
postYilingProgressState.campaignProgress?.latestBattleTitle !== '이릉 진격로' ||
|
||||
postYilingProgressState.campaignProgress?.nextBattleTitle !== '이릉 화공전'
|
||||
) {
|
||||
@@ -6185,7 +6185,7 @@ try {
|
||||
if (
|
||||
postYilingFireProgressState?.activeTab !== 'progress' ||
|
||||
postYilingFireProgressState.campaignProgress?.completedKnown !== 46 ||
|
||||
postYilingFireProgressState.campaignProgress?.totalKnown !== 63 ||
|
||||
postYilingFireProgressState.campaignProgress?.totalKnown !== 64 ||
|
||||
postYilingFireProgressState.campaignProgress?.latestBattleTitle !== '이릉 화공전' ||
|
||||
postYilingFireProgressState.campaignProgress?.nextBattleTitle !== '백제성 유탁'
|
||||
) {
|
||||
@@ -6248,7 +6248,7 @@ try {
|
||||
if (
|
||||
postBaidiProgressState?.activeTab !== 'progress' ||
|
||||
postBaidiProgressState.campaignProgress?.completedKnown !== 46 ||
|
||||
postBaidiProgressState.campaignProgress?.totalKnown !== 63 ||
|
||||
postBaidiProgressState.campaignProgress?.totalKnown !== 64 ||
|
||||
postBaidiProgressState.campaignProgress?.latestBattleTitle !== '이릉 화공전' ||
|
||||
postBaidiProgressState.campaignProgress?.nextBattleTitle !== '남중 안정로'
|
||||
) {
|
||||
@@ -6406,7 +6406,7 @@ try {
|
||||
if (
|
||||
postNanzhongProgressState?.activeTab !== 'progress' ||
|
||||
postNanzhongProgressState.campaignProgress?.completedKnown !== 47 ||
|
||||
postNanzhongProgressState.campaignProgress?.totalKnown !== 63 ||
|
||||
postNanzhongProgressState.campaignProgress?.totalKnown !== 64 ||
|
||||
postNanzhongProgressState.campaignProgress?.latestBattleTitle !== '남중 안정로' ||
|
||||
postNanzhongProgressState.campaignProgress?.nextBattleTitle !== '맹획 본대전'
|
||||
) {
|
||||
@@ -6565,7 +6565,7 @@ try {
|
||||
if (
|
||||
postMengHuoProgressState?.activeTab !== 'progress' ||
|
||||
postMengHuoProgressState.campaignProgress?.completedKnown !== 48 ||
|
||||
postMengHuoProgressState.campaignProgress?.totalKnown !== 63 ||
|
||||
postMengHuoProgressState.campaignProgress?.totalKnown !== 64 ||
|
||||
postMengHuoProgressState.campaignProgress?.latestBattleTitle !== '맹획 본대전' ||
|
||||
postMengHuoProgressState.campaignProgress?.nextBattleTitle !== '칠종칠금 2차전'
|
||||
) {
|
||||
@@ -6724,7 +6724,7 @@ try {
|
||||
if (
|
||||
postSecondCaptureProgressState?.activeTab !== 'progress' ||
|
||||
postSecondCaptureProgressState.campaignProgress?.completedKnown !== 49 ||
|
||||
postSecondCaptureProgressState.campaignProgress?.totalKnown !== 63 ||
|
||||
postSecondCaptureProgressState.campaignProgress?.totalKnown !== 64 ||
|
||||
postSecondCaptureProgressState.campaignProgress?.latestBattleTitle !== '칠종칠금 2차전' ||
|
||||
postSecondCaptureProgressState.campaignProgress?.nextBattleTitle !== '칠종칠금 3차전'
|
||||
) {
|
||||
@@ -6886,7 +6886,7 @@ try {
|
||||
if (
|
||||
postThirdCaptureProgressState?.activeTab !== 'progress' ||
|
||||
postThirdCaptureProgressState.campaignProgress?.completedKnown !== 50 ||
|
||||
postThirdCaptureProgressState.campaignProgress?.totalKnown !== 63 ||
|
||||
postThirdCaptureProgressState.campaignProgress?.totalKnown !== 64 ||
|
||||
postThirdCaptureProgressState.campaignProgress?.latestBattleTitle !== '칠종칠금 3차전' ||
|
||||
postThirdCaptureProgressState.campaignProgress?.nextBattleTitle !== '칠종칠금 4차전'
|
||||
) {
|
||||
@@ -7049,7 +7049,7 @@ try {
|
||||
if (
|
||||
postFourthCaptureProgressState?.activeTab !== 'progress' ||
|
||||
postFourthCaptureProgressState.campaignProgress?.completedKnown !== 51 ||
|
||||
postFourthCaptureProgressState.campaignProgress?.totalKnown !== 63 ||
|
||||
postFourthCaptureProgressState.campaignProgress?.totalKnown !== 64 ||
|
||||
postFourthCaptureProgressState.campaignProgress?.latestBattleTitle !== '칠종칠금 4차전' ||
|
||||
postFourthCaptureProgressState.campaignProgress?.nextBattleTitle !== '칠종칠금 5차전'
|
||||
) {
|
||||
@@ -7212,7 +7212,7 @@ try {
|
||||
if (
|
||||
postFifthCaptureProgressState?.activeTab !== 'progress' ||
|
||||
postFifthCaptureProgressState.campaignProgress?.completedKnown !== 52 ||
|
||||
postFifthCaptureProgressState.campaignProgress?.totalKnown !== 63 ||
|
||||
postFifthCaptureProgressState.campaignProgress?.totalKnown !== 64 ||
|
||||
postFifthCaptureProgressState.campaignProgress?.latestBattleTitle !== '칠종칠금 5차전' ||
|
||||
postFifthCaptureProgressState.campaignProgress?.nextBattleTitle !== '칠종칠금 6차전'
|
||||
) {
|
||||
@@ -7374,7 +7374,7 @@ try {
|
||||
if (
|
||||
postSixthCaptureProgressState?.activeTab !== 'progress' ||
|
||||
postSixthCaptureProgressState.campaignProgress?.completedKnown !== 53 ||
|
||||
postSixthCaptureProgressState.campaignProgress?.totalKnown !== 63 ||
|
||||
postSixthCaptureProgressState.campaignProgress?.totalKnown !== 64 ||
|
||||
postSixthCaptureProgressState.campaignProgress?.latestBattleTitle !== '칠종칠금 6차전' ||
|
||||
postSixthCaptureProgressState.campaignProgress?.nextBattleTitle !== '칠종칠금 7차전'
|
||||
) {
|
||||
@@ -7537,7 +7537,7 @@ try {
|
||||
if (
|
||||
postFinalCaptureProgressState?.activeTab !== 'progress' ||
|
||||
postFinalCaptureProgressState.campaignProgress?.completedKnown !== 54 ||
|
||||
postFinalCaptureProgressState.campaignProgress?.totalKnown !== 63 ||
|
||||
postFinalCaptureProgressState.campaignProgress?.totalKnown !== 64 ||
|
||||
postFinalCaptureProgressState.campaignProgress?.activeChapter?.id !== 'northern-campaign' ||
|
||||
postFinalCaptureProgressState.campaignProgress?.latestBattleTitle !== '칠종칠금 7차전' ||
|
||||
!String(postFinalCaptureProgressState.campaignProgress?.nextBattleTitle ?? '').includes('북벌 준비')
|
||||
@@ -7607,7 +7607,7 @@ try {
|
||||
if (
|
||||
postNorthernPrepProgressState?.activeTab !== 'progress' ||
|
||||
postNorthernPrepProgressState.campaignProgress?.completedKnown !== 54 ||
|
||||
postNorthernPrepProgressState.campaignProgress?.totalKnown !== 63 ||
|
||||
postNorthernPrepProgressState.campaignProgress?.totalKnown !== 64 ||
|
||||
postNorthernPrepProgressState.campaignProgress?.activeChapter?.id !== 'northern-campaign' ||
|
||||
postNorthernPrepProgressState.campaignProgress?.latestBattleTitle !== '칠종칠금 7차전' ||
|
||||
postNorthernPrepProgressState.campaignProgress?.nextBattleTitle !== '제1차 북벌 출진로'
|
||||
@@ -7754,7 +7754,7 @@ try {
|
||||
if (
|
||||
postFiftyFifthProgressState?.activeTab !== 'progress' ||
|
||||
postFiftyFifthProgressState.campaignProgress?.completedKnown !== 55 ||
|
||||
postFiftyFifthProgressState.campaignProgress?.totalKnown !== 63 ||
|
||||
postFiftyFifthProgressState.campaignProgress?.totalKnown !== 64 ||
|
||||
postFiftyFifthProgressState.campaignProgress?.activeChapter?.id !== 'northern-campaign' ||
|
||||
postFiftyFifthProgressState.campaignProgress?.latestBattleTitle !== '제1차 북벌 출진로' ||
|
||||
postFiftyFifthProgressState.campaignProgress?.nextBattleTitle !== '천수 진군로'
|
||||
@@ -7901,7 +7901,7 @@ try {
|
||||
if (
|
||||
postFiftySixthProgressState?.activeTab !== 'progress' ||
|
||||
postFiftySixthProgressState.campaignProgress?.completedKnown !== 56 ||
|
||||
postFiftySixthProgressState.campaignProgress?.totalKnown !== 63 ||
|
||||
postFiftySixthProgressState.campaignProgress?.totalKnown !== 64 ||
|
||||
postFiftySixthProgressState.campaignProgress?.activeChapter?.id !== 'northern-campaign' ||
|
||||
postFiftySixthProgressState.campaignProgress?.latestBattleTitle !== '천수 진군로' ||
|
||||
postFiftySixthProgressState.campaignProgress?.nextBattleTitle !== '가정 배치 위기'
|
||||
@@ -8053,7 +8053,7 @@ try {
|
||||
if (
|
||||
postFiftySeventhProgressState?.activeTab !== 'progress' ||
|
||||
postFiftySeventhProgressState.campaignProgress?.completedKnown !== 57 ||
|
||||
postFiftySeventhProgressState.campaignProgress?.totalKnown !== 63 ||
|
||||
postFiftySeventhProgressState.campaignProgress?.totalKnown !== 64 ||
|
||||
postFiftySeventhProgressState.campaignProgress?.activeChapter?.id !== 'northern-campaign' ||
|
||||
postFiftySeventhProgressState.campaignProgress?.latestBattleTitle !== '가정 배치 위기' ||
|
||||
postFiftySeventhProgressState.campaignProgress?.nextBattleTitle !== '기산 후퇴로'
|
||||
@@ -8201,7 +8201,7 @@ try {
|
||||
if (
|
||||
postFiftyEighthProgressState?.activeTab !== 'progress' ||
|
||||
postFiftyEighthProgressState.campaignProgress?.completedKnown !== 58 ||
|
||||
postFiftyEighthProgressState.campaignProgress?.totalKnown !== 63 ||
|
||||
postFiftyEighthProgressState.campaignProgress?.totalKnown !== 64 ||
|
||||
postFiftyEighthProgressState.campaignProgress?.activeChapter?.id !== 'northern-campaign' ||
|
||||
postFiftyEighthProgressState.campaignProgress?.latestBattleTitle !== '기산 후퇴로' ||
|
||||
postFiftyEighthProgressState.campaignProgress?.nextBattleTitle !== '진창 공성전'
|
||||
@@ -8349,7 +8349,7 @@ try {
|
||||
if (
|
||||
postFiftyNinthProgressState?.activeTab !== 'progress' ||
|
||||
postFiftyNinthProgressState.campaignProgress?.completedKnown !== 59 ||
|
||||
postFiftyNinthProgressState.campaignProgress?.totalKnown !== 63 ||
|
||||
postFiftyNinthProgressState.campaignProgress?.totalKnown !== 64 ||
|
||||
postFiftyNinthProgressState.campaignProgress?.activeChapter?.id !== 'northern-campaign' ||
|
||||
postFiftyNinthProgressState.campaignProgress?.latestBattleTitle !== '진창 공성전' ||
|
||||
postFiftyNinthProgressState.campaignProgress?.nextBattleTitle !== '무도·음평 확보전'
|
||||
@@ -8503,7 +8503,7 @@ try {
|
||||
if (
|
||||
postSixtiethProgressState?.activeTab !== 'progress' ||
|
||||
postSixtiethProgressState.campaignProgress?.completedKnown !== 60 ||
|
||||
postSixtiethProgressState.campaignProgress?.totalKnown !== 63 ||
|
||||
postSixtiethProgressState.campaignProgress?.totalKnown !== 64 ||
|
||||
postSixtiethProgressState.campaignProgress?.activeChapter?.id !== 'northern-campaign' ||
|
||||
postSixtiethProgressState.campaignProgress?.latestBattleTitle !== '무도·음평 확보전' ||
|
||||
postSixtiethProgressState.campaignProgress?.nextBattleTitle !== '한중 우로 방어전'
|
||||
@@ -8660,7 +8660,7 @@ try {
|
||||
if (
|
||||
postSixtyFirstProgressState?.activeTab !== 'progress' ||
|
||||
postSixtyFirstProgressState.campaignProgress?.completedKnown !== 61 ||
|
||||
postSixtyFirstProgressState.campaignProgress?.totalKnown !== 63 ||
|
||||
postSixtyFirstProgressState.campaignProgress?.totalKnown !== 64 ||
|
||||
postSixtyFirstProgressState.campaignProgress?.activeChapter?.id !== 'northern-campaign' ||
|
||||
postSixtyFirstProgressState.campaignProgress?.latestBattleTitle !== '한중 우로 방어전' ||
|
||||
postSixtyFirstProgressState.campaignProgress?.nextBattleTitle !== '기산 재출정전'
|
||||
@@ -8820,7 +8820,7 @@ try {
|
||||
if (
|
||||
postSixtySecondProgressState?.activeTab !== 'progress' ||
|
||||
postSixtySecondProgressState.campaignProgress?.completedKnown !== 62 ||
|
||||
postSixtySecondProgressState.campaignProgress?.totalKnown !== 63 ||
|
||||
postSixtySecondProgressState.campaignProgress?.totalKnown !== 64 ||
|
||||
postSixtySecondProgressState.campaignProgress?.activeChapter?.id !== 'northern-campaign' ||
|
||||
postSixtySecondProgressState.campaignProgress?.latestBattleTitle !== '기산 재출정전' ||
|
||||
postSixtySecondProgressState.campaignProgress?.nextBattleTitle !== '노성 추격전'
|
||||
@@ -8999,15 +8999,194 @@ try {
|
||||
if (
|
||||
postSixtyThirdProgressState?.activeTab !== 'progress' ||
|
||||
postSixtyThirdProgressState.campaignProgress?.completedKnown !== 63 ||
|
||||
postSixtyThirdProgressState.campaignProgress?.totalKnown !== 63 ||
|
||||
postSixtyThirdProgressState.campaignProgress?.totalKnown !== 64 ||
|
||||
postSixtyThirdProgressState.campaignProgress?.activeChapter?.id !== 'northern-campaign' ||
|
||||
postSixtyThirdProgressState.campaignProgress?.latestBattleTitle !== '노성 추격전' ||
|
||||
postSixtyThirdProgressState.campaignProgress?.nextBattleTitle !== '준비 중'
|
||||
postSixtyThirdProgressState.campaignProgress?.nextBattleTitle !== '위수 진영전'
|
||||
) {
|
||||
throw new Error(`Expected post-sixty-third progress tab to complete Lucheng pursuit and leave the next northern step pending: ${JSON.stringify(postSixtyThirdProgressState?.campaignProgress)}`);
|
||||
throw new Error(`Expected post-sixty-third progress tab to complete Lucheng pursuit and point toward Weishui camps: ${JSON.stringify(postSixtyThirdProgressState?.campaignProgress)}`);
|
||||
}
|
||||
await page.screenshot({ path: 'dist/verification-post-sixty-third-progress.png', fullPage: true });
|
||||
|
||||
await page.mouse.click(1120, 38);
|
||||
await page.waitForTimeout(180);
|
||||
const weishuiCampsSortieState = await page.evaluate(() => window.__HEROS_DEBUG__?.camp());
|
||||
if (
|
||||
!weishuiCampsSortieState?.sortieVisible ||
|
||||
weishuiCampsSortieState.campaign?.step !== 'sixty-third-camp' ||
|
||||
weishuiCampsSortieState.campTitle !== '노성 추격 후 군영' ||
|
||||
!String(weishuiCampsSortieState.sortiePlan?.objectiveLine ?? '').includes('위수 진영전') ||
|
||||
!String(weishuiCampsSortieState.sortiePlan?.objectiveLine ?? '').includes('봉화 차단') ||
|
||||
weishuiCampsSortieState.sortiePlan?.maxCount !== 7 ||
|
||||
weishuiCampsSortieState.sortiePlan?.recommendedTotal !== 9 ||
|
||||
!weishuiCampsSortieState.sortieRoster?.some((unit) => unit.id === 'zhuge-liang' && unit.selected && unit.required) ||
|
||||
!weishuiCampsSortieState.sortieRoster?.some((unit) => unit.id === 'jiang-wei' && unit.recommended) ||
|
||||
!weishuiCampsSortieState.sortieRoster?.some((unit) => unit.id === 'wang-ping' && unit.recommended) ||
|
||||
!weishuiCampsSortieState.sortieRoster?.some((unit) => unit.id === 'huang-quan' && unit.recommended) ||
|
||||
!weishuiCampsSortieState.sortieRoster?.some((unit) => unit.id === 'li-yan' && unit.recommended) ||
|
||||
!weishuiCampsSortieState.sortieRoster?.some((unit) => unit.id === 'wei-yan' && unit.recommended) ||
|
||||
!weishuiCampsSortieState.sortieRoster?.some((unit) => unit.id === 'ma-dai' && unit.recommended) ||
|
||||
!weishuiCampsSortieState.sortieRoster?.some((unit) => unit.id === 'zhao-yun' && unit.recommended) ||
|
||||
!weishuiCampsSortieState.sortieRoster?.some((unit) => unit.id === 'ma-liang' && unit.recommended) ||
|
||||
weishuiCampsSortieState.sortieRoster?.some((unit) => unit.id === 'liu-bei')
|
||||
) {
|
||||
throw new Error(`Expected Weishui camps sortie to require Zhuge Liang, exclude Liu Bei, and recommend nine river/camp/supply roles: ${JSON.stringify(weishuiCampsSortieState)}`);
|
||||
}
|
||||
assertSortieTacticalRoster(weishuiCampsSortieState, [
|
||||
'guan-yu', 'zhang-fei', 'jian-yong', 'mi-zhu', 'sun-qian', 'zhao-yun', 'zhuge-liang', 'ma-liang', 'yi-ji', 'gong-zhi', 'huang-zhong', 'wei-yan', 'pang-tong', 'fa-zheng', 'wu-yi', 'yan-yan', 'li-yan', 'huang-quan', 'ma-chao', 'ma-dai', 'wang-ping', 'jiang-wei'
|
||||
]);
|
||||
|
||||
const weishuiCampsPriorityUnits = ['jiang-wei', 'wang-ping', 'huang-quan', 'li-yan', 'wei-yan', 'ma-dai'];
|
||||
for (const unitId of weishuiCampsPriorityUnits) {
|
||||
const currentSortieState = await page.evaluate(() => window.__HEROS_DEBUG__?.camp());
|
||||
if (!currentSortieState.sortieRoster?.some((unit) => unit.id === unitId && unit.selected)) {
|
||||
const removable = currentSortieState.sortieRoster?.find(
|
||||
(unit) => unit.selected && !unit.required && !weishuiCampsPriorityUnits.includes(unit.id)
|
||||
);
|
||||
if (removable) {
|
||||
await clickSortieRosterUnit(page, removable.id);
|
||||
}
|
||||
await clickSortieRosterUnit(page, unitId);
|
||||
}
|
||||
}
|
||||
|
||||
const weishuiCampsSortieReadyState = await page.evaluate(() => window.__HEROS_DEBUG__?.camp());
|
||||
if (
|
||||
!weishuiCampsPriorityUnits.every((unitId) =>
|
||||
weishuiCampsSortieReadyState.sortieRoster?.some((unit) => unit.id === unitId && unit.selected)
|
||||
) ||
|
||||
!weishuiCampsSortieReadyState.sortieRoster?.some((unit) => unit.id === 'zhuge-liang' && unit.selected && unit.required) ||
|
||||
weishuiCampsSortieReadyState.sortieRoster?.some((unit) => unit.id === 'liu-bei') ||
|
||||
weishuiCampsSortieReadyState.sortieRoster?.some((unit) => unit.id === 'zhao-yun' && unit.selected) ||
|
||||
weishuiCampsSortieReadyState.sortieRoster?.some((unit) => unit.id === 'ma-liang' && unit.selected) ||
|
||||
weishuiCampsSortieReadyState.sortiePlan?.selectedCount !== 7 ||
|
||||
weishuiCampsSortieReadyState.sortiePlan?.recommendedSelectedCount < 7 ||
|
||||
weishuiCampsSortieReadyState.sortiePlan?.recommendedTotal !== 9
|
||||
) {
|
||||
throw new Error(`Expected Weishui camps sortie to deploy Zhuge Liang plus six river/camp/supply officers while benching Zhao Yun and Ma Liang: ${JSON.stringify(weishuiCampsSortieReadyState)}`);
|
||||
}
|
||||
await page.screenshot({ path: 'dist/verification-sixty-fourth-sortie.png', fullPage: true });
|
||||
|
||||
await page.mouse.click(1068, 646);
|
||||
await waitForStoryReady(page);
|
||||
for (let i = 0; i < 12; i += 1) {
|
||||
const storyState = await page.evaluate(() =>
|
||||
window.__HEROS_GAME__?.scene.getScene('StoryScene')?.getDebugState?.()
|
||||
);
|
||||
if (storyState?.background === 'story-weishui-camps') {
|
||||
break;
|
||||
}
|
||||
await page.keyboard.press('Space');
|
||||
await page.waitForTimeout(320);
|
||||
}
|
||||
const weishuiCampsStoryState = await page.evaluate(() =>
|
||||
window.__HEROS_GAME__?.scene.getScene('StoryScene')?.getDebugState?.()
|
||||
);
|
||||
if (
|
||||
weishuiCampsStoryState?.background !== 'story-weishui-camps' ||
|
||||
weishuiCampsStoryState?.backgroundReady !== true
|
||||
) {
|
||||
throw new Error(`Expected Weishui camps story to lazy-load its new generated background: ${JSON.stringify(weishuiCampsStoryState)}`);
|
||||
}
|
||||
await page.screenshot({ path: 'dist/verification-sixty-fourth-story.png', fullPage: true });
|
||||
|
||||
for (let i = 0; i < 50; i += 1) {
|
||||
const enteredSixtyFourthBattle = await page.evaluate(() => {
|
||||
const state = window.__HEROS_DEBUG__?.battle();
|
||||
return state?.scene === 'BattleScene' && state?.battleId === 'sixty-fourth-battle-weishui-camps';
|
||||
});
|
||||
if (enteredSixtyFourthBattle) {
|
||||
break;
|
||||
}
|
||||
await page.keyboard.press('Space');
|
||||
await page.waitForTimeout(320);
|
||||
}
|
||||
await page.waitForFunction(() => {
|
||||
const state = window.__HEROS_DEBUG__?.battle();
|
||||
return state?.scene === 'BattleScene' && state?.battleId === 'sixty-fourth-battle-weishui-camps' && state?.battleOutcome === null && state?.phase === 'idle';
|
||||
});
|
||||
await page.screenshot({ path: 'dist/verification-sixty-fourth-battle.png', fullPage: true });
|
||||
|
||||
const sixtyFourthBattleState = await page.evaluate(() => window.__HEROS_DEBUG__?.battle());
|
||||
const sixtyFourthEnemies = sixtyFourthBattleState.units.filter((unit) => unit.faction === 'enemy');
|
||||
const sixtyFourthAllies = sixtyFourthBattleState.units.filter((unit) => unit.faction === 'ally');
|
||||
const sixtyFourthEnemyBehaviors = new Set(sixtyFourthEnemies.map((unit) => unit.ai));
|
||||
if (
|
||||
sixtyFourthBattleState.camera?.mapWidth !== 128 ||
|
||||
sixtyFourthBattleState.camera?.mapHeight !== 110 ||
|
||||
sixtyFourthBattleState.mapTextureKey !== 'battle-map-sixty-fourth' ||
|
||||
sixtyFourthBattleState.mapTextureReady !== true ||
|
||||
sixtyFourthBattleState.mapBackgroundReady !== true ||
|
||||
sixtyFourthBattleState.victoryConditionLabel !== '위수 남안 진영 확보와 봉화 차단' ||
|
||||
!sixtyFourthBattleState.objectives?.some((objective) => objective.id === 'break-sima-yi-weishui-camps' && objective.label === '사마의 위수 본영 압박') ||
|
||||
!sixtyFourthBattleState.objectives?.some((objective) => objective.id === 'stop-zhang-he-crossing-raid' && objective.label === '장합 물목 추격 저지') ||
|
||||
!sixtyFourthBattleState.objectives?.some((objective) => objective.id === 'silence-guo-huai-weishui-beacons' && objective.label === '곽회 위수 봉화 차단') ||
|
||||
!sixtyFourthBattleState.objectives?.some((objective) => objective.id === 'hold-weishui-supply-camps' && objective.label === '위수 보급 진영 확보') ||
|
||||
!sixtyFourthBattleState.objectives?.some((objective) => objective.id === 'reassure-river-villages' && objective.label === '강가 마을 안심') ||
|
||||
sixtyFourthEnemies.length < 42 ||
|
||||
!sixtyFourthEnemyBehaviors.has('aggressive') ||
|
||||
!sixtyFourthEnemyBehaviors.has('guard') ||
|
||||
!sixtyFourthEnemyBehaviors.has('hold') ||
|
||||
!sixtyFourthEnemies.some((unit) => unit.id === 'northern-tenth-leader-sima-yi') ||
|
||||
!sixtyFourthEnemies.some((unit) => unit.id === 'northern-tenth-officer-zhang-he') ||
|
||||
!sixtyFourthEnemies.some((unit) => unit.id === 'northern-tenth-officer-guo-huai') ||
|
||||
!sixtyFourthAllies.some((unit) => unit.id === 'zhuge-liang') ||
|
||||
!sixtyFourthAllies.some((unit) => unit.id === 'jiang-wei') ||
|
||||
!sixtyFourthAllies.some((unit) => unit.id === 'wang-ping') ||
|
||||
!sixtyFourthAllies.some((unit) => unit.id === 'huang-quan') ||
|
||||
!sixtyFourthAllies.some((unit) => unit.id === 'li-yan') ||
|
||||
!sixtyFourthAllies.some((unit) => unit.id === 'wei-yan') ||
|
||||
!sixtyFourthAllies.some((unit) => unit.id === 'ma-dai') ||
|
||||
sixtyFourthAllies.some((unit) => unit.id === 'zhao-yun') ||
|
||||
sixtyFourthAllies.some((unit) => unit.id === 'ma-liang') ||
|
||||
sixtyFourthAllies.some((unit) => unit.id === 'liu-bei')
|
||||
) {
|
||||
throw new Error(`Expected sixty-fourth battle to use the Weishui camps map, Sima Yi/Zhang He/Guo Huai objectives, selected river/camp/supply officers, and mixed Wei AI: ${JSON.stringify(sixtyFourthBattleState)}`);
|
||||
}
|
||||
|
||||
await page.evaluate(() => window.__HEROS_DEBUG__?.forceBattleOutcome('victory'));
|
||||
await page.waitForFunction(() => {
|
||||
const state = window.__HEROS_DEBUG__?.battle();
|
||||
return state?.battleOutcome === 'victory' && state?.phase === 'resolved' && state?.resultVisible === true;
|
||||
});
|
||||
|
||||
await page.mouse.click(738, 642);
|
||||
await page.waitForFunction(() => {
|
||||
const activeScenes = window.__HEROS_DEBUG__?.activeScenes() ?? [];
|
||||
return activeScenes.includes('CampScene');
|
||||
});
|
||||
|
||||
const sixtyFourthCampState = await page.evaluate(() => window.__HEROS_DEBUG__?.camp());
|
||||
if (
|
||||
sixtyFourthCampState?.campBattleId !== 'sixty-fourth-battle-weishui-camps' ||
|
||||
sixtyFourthCampState.campaign?.step !== 'sixty-fourth-camp' ||
|
||||
sixtyFourthCampState.campTitle !== '위수 진영전 후 군영' ||
|
||||
sixtyFourthCampState.availableDialogueIds?.length !== 2 ||
|
||||
!sixtyFourthCampState.availableDialogueIds.every((id) => id.startsWith('northern-tenth-')) ||
|
||||
sixtyFourthCampState.availableVisitIds?.length !== 1 ||
|
||||
!sixtyFourthCampState.availableVisitIds.every((id) => id.startsWith('northern-tenth-')) ||
|
||||
sixtyFourthCampState.rosterCollection?.total < 22 ||
|
||||
!sixtyFourthCampState.report?.bonds?.some((bond) => bond.id === 'zhuge-liang__huang-quan_northern-tenth')
|
||||
) {
|
||||
throw new Error(`Expected Weishui camps aftermath camp to expose tenth northern campaign events and bonds: ${JSON.stringify(sixtyFourthCampState)}`);
|
||||
}
|
||||
await page.screenshot({ path: 'dist/verification-sixty-fourth-camp.png', fullPage: true });
|
||||
|
||||
await page.mouse.click(966, 38);
|
||||
await page.waitForTimeout(180);
|
||||
const postSixtyFourthProgressState = await page.evaluate(() => window.__HEROS_DEBUG__?.camp());
|
||||
if (
|
||||
postSixtyFourthProgressState?.activeTab !== 'progress' ||
|
||||
postSixtyFourthProgressState.campaignProgress?.completedKnown !== 64 ||
|
||||
postSixtyFourthProgressState.campaignProgress?.totalKnown !== 64 ||
|
||||
postSixtyFourthProgressState.campaignProgress?.activeChapter?.id !== 'northern-campaign' ||
|
||||
postSixtyFourthProgressState.campaignProgress?.latestBattleTitle !== '위수 진영전' ||
|
||||
postSixtyFourthProgressState.campaignProgress?.nextBattleTitle !== '준비 중'
|
||||
) {
|
||||
throw new Error(`Expected post-sixty-fourth progress tab to complete Weishui camps and leave the next northern step pending: ${JSON.stringify(postSixtyFourthProgressState?.campaignProgress)}`);
|
||||
}
|
||||
await page.screenshot({ path: 'dist/verification-post-sixty-fourth-progress.png', fullPage: true });
|
||||
|
||||
await page.evaluate(() => {
|
||||
const game = window.__HEROS_GAME__;
|
||||
game?.scene.stop('CampScene');
|
||||
@@ -9036,12 +9215,12 @@ try {
|
||||
}
|
||||
}
|
||||
for (let attempt = 0; attempt < 24; attempt += 1) {
|
||||
const continuedToLuchengPursuitCamp = await page.evaluate(() => {
|
||||
const continuedToWeishuiCampsCamp = await page.evaluate(() => {
|
||||
const activeScenes = window.__HEROS_DEBUG__?.activeScenes() ?? [];
|
||||
const camp = window.__HEROS_DEBUG__?.camp?.() ?? null;
|
||||
return activeScenes.includes('CampScene') && camp?.campaign?.step === 'sixty-third-camp';
|
||||
return activeScenes.includes('CampScene') && camp?.campaign?.step === 'sixty-fourth-camp';
|
||||
});
|
||||
if (continuedToLuchengPursuitCamp) {
|
||||
if (continuedToWeishuiCampsCamp) {
|
||||
break;
|
||||
}
|
||||
await page.keyboard.press('Space');
|
||||
@@ -9050,17 +9229,17 @@ try {
|
||||
await page.waitForFunction(() => {
|
||||
const activeScenes = window.__HEROS_DEBUG__?.activeScenes() ?? [];
|
||||
const camp = window.__HEROS_DEBUG__?.camp?.() ?? null;
|
||||
return activeScenes.includes('CampScene') && camp?.campaign?.step === 'sixty-third-camp';
|
||||
return activeScenes.includes('CampScene') && camp?.campaign?.step === 'sixty-fourth-camp';
|
||||
});
|
||||
const titleContinueState = await page.evaluate(() => ({
|
||||
activeScenes: window.__HEROS_DEBUG__?.activeScenes() ?? [],
|
||||
camp: window.__HEROS_DEBUG__?.camp?.() ?? null
|
||||
}));
|
||||
if (!titleContinueState.activeScenes.includes('CampScene') || titleContinueState.camp?.campaign?.step !== 'sixty-third-camp') {
|
||||
throw new Error(`Expected title continue to reopen the Lucheng pursuit aftermath camp: ${JSON.stringify(titleContinueState)}`);
|
||||
if (!titleContinueState.activeScenes.includes('CampScene') || titleContinueState.camp?.campaign?.step !== 'sixty-fourth-camp') {
|
||||
throw new Error(`Expected title continue to reopen the Weishui camps aftermath camp: ${JSON.stringify(titleContinueState)}`);
|
||||
}
|
||||
|
||||
console.log(`Verified title-to-Lucheng-pursuit flow, recruited officer sortie selection, Ma Liang, Yi Ji, Gong Zhi, Huang Zhong, Wei Yan, Pang Tong, Fa Zheng, Wu Yi, Yan Yan, Li Yan, Huang Quan, Ma Chao, Ma Dai, Wang Ping joins, Luofeng, Luo main gate, Mianzhu, Chengdu surrender, Jiameng, Yangping, Dingjun, Hanzhong decisive battle, King of Hanzhong council, Shu-Han foundation state, Jing Province defense vanguard, Fan Castle vanguard, Han River flood, Fan siege, Jing rear crisis, Gongan collapse, Maicheng isolation, Yiling vanguard, Yiling fire attack, Baidi entrustment, Nanzhong stabilization, Meng Huo pacification, second capture, third capture, fourth capture, fifth capture, sixth capture, final capture, northern campaign preparation, Qishan road first northern expedition, Tianshui advance, Jieting crisis, Jiang Wei joining, Qishan retreat, Chencang siege, Wudu/Yinping commanderies, Hanzhong rainy-pass defense, Qishan renewed offensive, Lucheng pursuit, and pending next northern step state at ${targetUrl}`);
|
||||
console.log(`Verified title-to-Weishui-camps flow, recruited officer sortie selection, Ma Liang, Yi Ji, Gong Zhi, Huang Zhong, Wei Yan, Pang Tong, Fa Zheng, Wu Yi, Yan Yan, Li Yan, Huang Quan, Ma Chao, Ma Dai, Wang Ping joins, Luofeng, Luo main gate, Mianzhu, Chengdu surrender, Jiameng, Yangping, Dingjun, Hanzhong decisive battle, King of Hanzhong council, Shu-Han foundation state, Jing Province defense vanguard, Fan Castle vanguard, Han River flood, Fan siege, Jing rear crisis, Gongan collapse, Maicheng isolation, Yiling vanguard, Yiling fire attack, Baidi entrustment, Nanzhong stabilization, Meng Huo pacification, second capture, third capture, fourth capture, fifth capture, sixth capture, final capture, northern campaign preparation, Qishan road first northern expedition, Tianshui advance, Jieting crisis, Jiang Wei joining, Qishan retreat, Chencang siege, Wudu/Yinping commanderies, Hanzhong rainy-pass defense, Qishan renewed offensive, Lucheng pursuit, Weishui camps, and pending next northern step state at ${targetUrl}`);
|
||||
} finally {
|
||||
await browser?.close();
|
||||
if (serverProcess && !serverProcess.killed) {
|
||||
|
||||
Reference in New Issue
Block a user