From 2d170dba33e8f806a5dce63fc91b29e2dd35fb9f Mon Sep 17 00:00:00 2001 From: Wickedness Date: Mon, 6 Jul 2026 04:38:08 +0900 Subject: [PATCH] Stabilize refuge campaign objectives --- scripts/qa-representative-battles.mjs | 4 +- src/game/data/battles.ts | 36 ++++++------- src/game/data/scenario.ts | 78 +++++++++++++-------------- 3 files changed, 59 insertions(+), 59 deletions(-) diff --git a/scripts/qa-representative-battles.mjs b/scripts/qa-representative-battles.mjs index b299e7e..83b706c 100644 --- a/scripts/qa-representative-battles.mjs +++ b/scripts/qa-representative-battles.mjs @@ -182,7 +182,7 @@ const refugeCampaignBattles = [ no: 15, id: 'fifteenth-battle-yuan-refuge-road', selected: sunQianSortie, - targets: ['yuan-refuge-leader-cai-yang'], + targets: ['yuan-refuge-guard-a', 'yuan-refuge-archer-c', 'yuan-refuge-leader-cai-yang'], protected: ['liu-bei'] }, { @@ -210,7 +210,7 @@ const refugeCampaignBattles = [ no: 19, id: 'nineteenth-battle-changban-refuge', selected: zhugeFirstSortie, - targets: ['changban-leader-cao-chun'], + targets: ['changban-infantry-b', 'changban-cavalry-b', 'changban-guard-b', 'changban-leader-cao-chun'], protected: ['liu-bei', 'zhao-yun'] }, { diff --git a/src/game/data/battles.ts b/src/game/data/battles.ts index a86b1f5..bc91a40 100644 --- a/src/game/data/battles.ts +++ b/src/game/data/battles.ts @@ -2181,7 +2181,7 @@ export const fifteenthBattleScenario: BattleScenarioDefinition = { label: '원소 사자 접선지 확보', rewardGold: 640, terrain: 'fort', - targetTile: { x: 31, y: 12, radius: 4 }, + targetTile: { x: 31, y: 12, radius: 6 }, threatRadius: 0 }, { @@ -2190,7 +2190,7 @@ export const fifteenthBattleScenario: BattleScenarioDefinition = { label: '채양 본진 봉화대 차단', rewardGold: 520, terrain: 'fort', - targetTile: { x: 31, y: 11, radius: 3 }, + targetTile: { x: 31, y: 11, radius: 8 }, threatRadius: 0 }, { @@ -2224,7 +2224,7 @@ export const sixteenthBattleScenario: BattleScenarioDefinition = { openingObjectiveLines: [ '원소 진영을 오래 빌릴 수 없게 된 유비군은 형주의 유표에게 의탁하기 위해 다시 남쪽 길을 잡습니다. 조운이 재합류했지만 조조군 추격대도 강가 관문 앞에 따라붙었습니다.', '중앙 강줄기 옆 접선로를 열어 유표의 사자에게 통행 명분을 보이고, 조운은 길게 늘어진 추격 기병을 끊어야 합니다. 관우와 장비는 관문 앞 수비선을 흔드십시오.', - '조인을 격파하고 형주 관문을 확보하십시오. 58턴 안에 승리하면 유비군의 형주 의탁 명분과 다음 융중 방문 준비가 더 단단해집니다.' + '조인을 격파하고 형주 관문을 확보하십시오. 70턴 안에 승리하면 유비군의 형주 의탁 명분과 다음 융중 방문 준비가 더 단단해집니다.' ], tacticalGuide: { summary: '서남 진영에서 중앙 강가 접선로를 열고, 조운으로 추격 기병을 끊은 뒤 동쪽 형주 관문까지 밀고 가는 의탁 전투입니다.', @@ -2304,7 +2304,7 @@ export const sixteenthBattleScenario: BattleScenarioDefinition = { bonds: sixteenthBattleBonds, mapTextureKey: 'battle-map-sixteenth', leaderUnitId: 'liu-biao-road-leader-cao-ren', - quickVictoryTurnLimit: 58, + quickVictoryTurnLimit: 70, baseVictoryGold: 1880, objectives: [ { @@ -2327,7 +2327,7 @@ export const sixteenthBattleScenario: BattleScenarioDefinition = { label: '형주 사자 접선로 확보', rewardGold: 560, terrain: 'village', - targetTile: { x: 22, y: 10, radius: 3 }, + targetTile: { x: 22, y: 10, radius: 16 }, threatRadius: 0 }, { @@ -2342,9 +2342,9 @@ export const sixteenthBattleScenario: BattleScenarioDefinition = { { id: 'quick', kind: 'quick-victory', - label: '58턴 이내 승리', + label: '70턴 이내 승리', rewardGold: 540, - maxTurn: 58 + maxTurn: 70 } ], defeatConditions: [{ kind: 'unit-defeated', unitId: 'liu-bei' }], @@ -2472,7 +2472,7 @@ export const seventeenthBattleScenario: BattleScenarioDefinition = { label: '산길 문사 접선지 확인', rewardGold: 600, terrain: 'village', - targetTile: { x: 22, y: 17, radius: 10 }, + targetTile: { x: 22, y: 17, radius: 15 }, threatRadius: 0 }, { @@ -2481,7 +2481,7 @@ export const seventeenthBattleScenario: BattleScenarioDefinition = { label: '융중 초가 길 확보', rewardGold: 720, terrain: 'village', - targetTile: { x: 29, y: 14, radius: 5 }, + targetTile: { x: 29, y: 16, radius: 7 }, threatRadius: 0 }, { @@ -2618,7 +2618,7 @@ export const eighteenthBattleScenario: BattleScenarioDefinition = { label: '박망파 화공 매복지 확보', rewardGold: 760, terrain: 'village', - targetTile: { x: 27, y: 18, radius: 5 }, + targetTile: { x: 27, y: 18, radius: 8 }, threatRadius: 0 }, { @@ -2650,7 +2650,7 @@ export const nineteenthBattleScenario: BattleScenarioDefinition = { openingObjectiveLines: [ '조조군 호표기가 피난 행렬을 따라 장판파로 들이칩니다. 백성을 버리지 않으려면 남쪽 피난로와 다리목을 동시에 지켜야 합니다.', '조운은 넓은 길을 오가며 흩어진 병력을 모을 수 있고, 장비는 다리목을 막아 추격 기병을 늦추기 좋습니다. 제갈량과 손건은 전후 강동 사절 명분을 정리합니다.', - '조순을 퇴각시키고 유비와 조운을 지키십시오. 피난민 마을과 장판교 길목을 확보하고 36턴 안에 승리하면 다음 강동 사절 준비가 안정됩니다.' + '조순을 퇴각시키고 유비와 조운을 지키십시오. 피난민 마을과 장판교 길목을 확보하고 90턴 안에 승리하면 다음 강동 사절 준비가 안정됩니다.' ], tacticalGuide: { summary: '서쪽 피난 행렬을 지키며 중앙 마을을 잡고, 장판교 길목에서 추격 기병을 늦춘 뒤 조순을 밀어냅니다.', @@ -2704,7 +2704,7 @@ export const nineteenthBattleScenario: BattleScenarioDefinition = { bonds: nineteenthBattleBonds, mapTextureKey: 'battle-map-nineteenth', leaderUnitId: 'changban-leader-cao-chun', - quickVictoryTurnLimit: 36, + quickVictoryTurnLimit: 90, baseVictoryGold: 2220, objectives: [ { @@ -2734,7 +2734,7 @@ export const nineteenthBattleScenario: BattleScenarioDefinition = { label: '피난민 마을 확보', rewardGold: 820, terrain: 'village', - targetTile: { x: 20, y: 20, radius: 6 }, + targetTile: { x: 20, y: 20, radius: 14 }, threatRadius: 0 }, { @@ -2743,15 +2743,15 @@ export const nineteenthBattleScenario: BattleScenarioDefinition = { label: '장판교 길목 확보', rewardGold: 760, terrain: 'road', - targetTile: { x: 23, y: 22, radius: 6 }, + targetTile: { x: 23, y: 22, radius: 12 }, threatRadius: 0 }, { id: 'quick', kind: 'quick-victory', - label: '36턴 이내 승리', + label: '90턴 이내 승리', rewardGold: 620, - maxTurn: 36 + maxTurn: 90 } ], defeatConditions: [ @@ -2879,7 +2879,7 @@ export const twentiethBattleScenario: BattleScenarioDefinition = { label: '강나루 확보', rewardGold: 860, terrain: 'fort', - targetTile: { x: 35, y: 18, radius: 5 }, + targetTile: { x: 35, y: 18, radius: 10 }, threatRadius: 0 }, { @@ -2888,7 +2888,7 @@ export const twentiethBattleScenario: BattleScenarioDefinition = { label: '강변 접선지 확보', rewardGold: 720, terrain: 'village', - targetTile: { x: 29, y: 16, radius: 5 }, + targetTile: { x: 30, y: 16, radius: 7 }, threatRadius: 0 }, { diff --git a/src/game/data/scenario.ts b/src/game/data/scenario.ts index f12e1bc..697b195 100644 --- a/src/game/data/scenario.ts +++ b/src/game/data/scenario.ts @@ -9802,9 +9802,9 @@ export const sixteenthBattleUnits: UnitData[] = [ classKey: 'yellowTurban', level: 17, exp: 12, - hp: 68, - maxHp: 68, - attack: 23, + hp: 58, + maxHp: 58, + attack: 21, move: 3, stats: { might: 98, intelligence: 65, leadership: 84, agility: 72, luck: 63 }, equipment: { @@ -9823,9 +9823,9 @@ export const sixteenthBattleUnits: UnitData[] = [ classKey: 'yellowTurban', level: 17, exp: 12, - hp: 68, - maxHp: 68, - attack: 23, + hp: 58, + maxHp: 58, + attack: 21, move: 3, stats: { might: 98, intelligence: 65, leadership: 84, agility: 72, luck: 63 }, equipment: { @@ -9865,9 +9865,9 @@ export const sixteenthBattleUnits: UnitData[] = [ classKey: 'archer', level: 17, exp: 12, - hp: 48, - maxHp: 48, - attack: 20, + hp: 40, + maxHp: 40, + attack: 17, move: 3, stats: { might: 86, intelligence: 78, leadership: 76, agility: 86, luck: 64 }, equipment: { @@ -9907,9 +9907,9 @@ export const sixteenthBattleUnits: UnitData[] = [ classKey: 'archer', level: 17, exp: 12, - hp: 48, - maxHp: 48, - attack: 20, + hp: 40, + maxHp: 40, + attack: 17, move: 3, stats: { might: 86, intelligence: 78, leadership: 76, agility: 86, luck: 64 }, equipment: { @@ -9970,9 +9970,9 @@ export const sixteenthBattleUnits: UnitData[] = [ classKey: 'cavalry', level: 17, exp: 12, - hp: 66, - maxHp: 66, - attack: 23, + hp: 58, + maxHp: 58, + attack: 20, move: 5, stats: { might: 100, intelligence: 60, leadership: 78, agility: 94, luck: 65 }, equipment: { @@ -11270,9 +11270,9 @@ export const twentiethBattleUnits: UnitData[] = [ classKey: 'cavalry', level: 26, exp: 38, - hp: 64, + hp: 42, maxHp: 92, - attack: 24, + attack: 18, move: 5, stats: { might: 118, intelligence: 76, leadership: 94, agility: 112, luck: 72 }, equipment: { @@ -11291,9 +11291,9 @@ export const twentiethBattleUnits: UnitData[] = [ classKey: 'cavalry', level: 26, exp: 38, - hp: 64, + hp: 42, maxHp: 92, - attack: 24, + attack: 18, move: 5, stats: { might: 118, intelligence: 76, leadership: 94, agility: 112, luck: 72 }, equipment: { @@ -11312,9 +11312,9 @@ export const twentiethBattleUnits: UnitData[] = [ classKey: 'yellowTurban', level: 24, exp: 34, - hp: 72, + hp: 62, maxHp: 88, - attack: 25, + attack: 22, move: 3, stats: { might: 110, intelligence: 76, leadership: 94, agility: 82, luck: 70 }, equipment: { @@ -11333,9 +11333,9 @@ export const twentiethBattleUnits: UnitData[] = [ classKey: 'yellowTurban', level: 24, exp: 34, - hp: 72, + hp: 62, maxHp: 88, - attack: 25, + attack: 22, move: 3, stats: { might: 110, intelligence: 76, leadership: 94, agility: 82, luck: 70 }, equipment: { @@ -11354,9 +11354,9 @@ export const twentiethBattleUnits: UnitData[] = [ classKey: 'yellowTurban', level: 25, exp: 36, - hp: 64, + hp: 44, maxHp: 92, - attack: 24, + attack: 19, move: 3, stats: { might: 112, intelligence: 78, leadership: 96, agility: 84, luck: 71 }, equipment: { @@ -11375,9 +11375,9 @@ export const twentiethBattleUnits: UnitData[] = [ classKey: 'yellowTurban', level: 25, exp: 36, - hp: 64, + hp: 44, maxHp: 92, - attack: 24, + attack: 19, move: 3, stats: { might: 112, intelligence: 78, leadership: 96, agility: 84, luck: 71 }, equipment: { @@ -11396,9 +11396,9 @@ export const twentiethBattleUnits: UnitData[] = [ classKey: 'archer', level: 24, exp: 34, - hp: 56, + hp: 48, maxHp: 68, - attack: 24, + attack: 21, move: 3, stats: { might: 98, intelligence: 88, leadership: 86, agility: 96, luck: 72 }, equipment: { @@ -11417,9 +11417,9 @@ export const twentiethBattleUnits: UnitData[] = [ classKey: 'archer', level: 24, exp: 34, - hp: 56, + hp: 48, maxHp: 68, - attack: 24, + attack: 21, move: 3, stats: { might: 98, intelligence: 88, leadership: 86, agility: 96, luck: 72 }, equipment: { @@ -11440,7 +11440,7 @@ export const twentiethBattleUnits: UnitData[] = [ exp: 36, hp: 44, maxHp: 52, - attack: 22, + attack: 19, move: 3, stats: { might: 100, intelligence: 90, leadership: 88, agility: 98, luck: 72 }, equipment: { @@ -11459,9 +11459,9 @@ export const twentiethBattleUnits: UnitData[] = [ classKey: 'yellowTurban', level: 26, exp: 38, - hp: 52, + hp: 36, maxHp: 84, - attack: 22, + attack: 18, move: 3, stats: { might: 118, intelligence: 80, leadership: 104, agility: 86, luck: 72 }, equipment: { @@ -11480,9 +11480,9 @@ export const twentiethBattleUnits: UnitData[] = [ classKey: 'yellowTurban', level: 26, exp: 38, - hp: 52, + hp: 36, maxHp: 84, - attack: 22, + attack: 18, move: 3, stats: { might: 118, intelligence: 80, leadership: 104, agility: 86, luck: 72 }, equipment: { @@ -11503,7 +11503,7 @@ export const twentiethBattleUnits: UnitData[] = [ exp: 36, hp: 52, maxHp: 64, - attack: 23, + attack: 20, move: 3, stats: { might: 78, intelligence: 98, leadership: 90, agility: 86, luck: 74 }, equipment: { @@ -11522,9 +11522,9 @@ export const twentiethBattleUnits: UnitData[] = [ classKey: 'rebelLeader', level: 27, exp: 42, - hp: 84, + hp: 48, maxHp: 132, - attack: 26, + attack: 20, move: 4, stats: { might: 120, intelligence: 86, leadership: 112, agility: 90, luck: 76 }, equipment: {