From d4e964a7ed5f66a14cdd34a7829f5a6483485e35 Mon Sep 17 00:00:00 2001 From: Wickedness Date: Sat, 4 Jul 2026 03:51:40 +0900 Subject: [PATCH] Tune early campaign battle pacing --- src/game/data/battles.ts | 18 ++-- src/game/data/scenario.ts | 184 +++++++++++++++++++------------------- 2 files changed, 101 insertions(+), 101 deletions(-) diff --git a/src/game/data/battles.ts b/src/game/data/battles.ts index 5d1d2e5..64badf1 100644 --- a/src/game/data/battles.ts +++ b/src/game/data/battles.ts @@ -436,12 +436,12 @@ export const firstBattleScenario: BattleScenarioDefinition = { openingObjectiveLines: [ '두령 한석을 격파하면 황건적의 전열이 무너집니다.', '유비가 퇴각하면 의용군은 전투를 지속할 수 없습니다.', - '마을 지형을 밟아 보급을 확보하고, 다친 장수는 콩과 탁주로 회복하십시오.' + '관우와 장비로 앞쪽 길목을 열고, 마을 주변을 정리한 뒤 한석에게 압박을 모으십시오.' ], tacticalGuide: { - summary: '관우가 중앙 길목을 열고, 장비가 남쪽 궁병을 흔들며, 유비는 후방에서 생존과 회복을 챙깁니다.', + summary: '관우가 첫 길목을 열고, 장비가 남쪽 궁병을 흔들며, 유비는 뒤에서 회복과 생존을 챙깁니다.', route: '시작 구역 → 중앙 길목 → 마을 어귀 → 두령 한석', - focus: '가까운 황건병을 먼저 끊고 마을 주변을 안전하게 만든 뒤 두령에게 압박을 모으십시오.', + focus: '앞쪽 황건병 둘을 먼저 끊고 남쪽 궁병을 흔든 뒤, 마을을 확보하며 한석에게 모이십시오.', roles: ['관우: 중앙 길목 전열', '장비: 남쪽 궁병 압박', '유비: 후방 지휘와 회복'], events: { 'village-approach': { @@ -538,12 +538,12 @@ export const secondBattleScenario: BattleScenarioDefinition = { openingObjectiveLines: [ '황건 잔당이 북쪽 마을로 달아났습니다. 두령 한석을 격파하면 적의 퇴로가 무너집니다.', '중앙 나루를 건너기 전에 길목의 습격조를 먼저 정리하면 북쪽 마을을 안전하게 확보할 수 있습니다.', - '세 형제를 모두 출전시키고 14턴 이내에 승리하면 추격전 명성과 추가 보상이 붙습니다.' + '세 형제를 모두 출전시키고 15턴 이내에 승리하면 추격전 명성과 추가 보상이 붙습니다.' ], tacticalGuide: { summary: '관우가 나루 앞 숲길을 막고, 장비가 남쪽 우회로를 압박하며, 유비는 후방에서 마을 확보를 지휘합니다.', route: '시작 구역 → 나루 길목 → 궁병 엄호선 → 북쪽 마을', - focus: '중앙 습격조를 정리한 뒤 궁병 엄호를 끊고 북쪽 마을과 두령을 차례로 압박하십시오.', + focus: '나루 앞 습격병 → 산길 복병 → 마을 궁병 순서로 정리한 뒤 한석을 몰아치십시오.', roles: ['관우: 나루 전열', '장비: 남쪽 돌파', '유비: 마을 확보 지휘'], events: { 'village-approach': { @@ -589,7 +589,7 @@ export const secondBattleScenario: BattleScenarioDefinition = { bonds: secondBattleBonds, mapTextureKey: 'battle-map-second', leaderUnitId: 'pursuit-leader-han-seok', - quickVictoryTurnLimit: 14, + quickVictoryTurnLimit: 15, baseVictoryGold: 420, objectives: [ { @@ -616,9 +616,9 @@ export const secondBattleScenario: BattleScenarioDefinition = { { id: 'quick', kind: 'quick-victory', - label: '14턴 이내 승리', + label: '15턴 이내 승리', rewardGold: 150, - maxTurn: 14 + maxTurn: 15 } ], defeatConditions: [{ kind: 'unit-defeated', unitId: 'liu-bei' }], @@ -648,7 +648,7 @@ export const thirdBattleScenario: BattleScenarioDefinition = { tacticalGuide: { summary: '관우가 강가 요새 앞을 받아내고, 장비가 전령 퇴로를 압박하며, 유비는 뒤에서 전열 붕괴를 막습니다.', route: '시작 구역 → 강가 길목 → 요새 궁병 → 전령 마원', - focus: '궁병 엄호선을 오래 방치하지 말고, 전령 마원이 도망치기 전에 좁은 길을 빠르게 밀어야 합니다.', + focus: '강가 궁병을 먼저 끊고 장비로 전령 기병의 길목을 막은 뒤, 관우가 요새 수비병을 붙잡으십시오.', roles: ['관우: 강가 전열', '장비: 전령 추격', '유비: 후방 지휘와 회복'], events: { 'village-approach': { diff --git a/src/game/data/scenario.ts b/src/game/data/scenario.ts index 95b7e32..43bdbd6 100644 --- a/src/game/data/scenario.ts +++ b/src/game/data/scenario.ts @@ -5134,8 +5134,8 @@ export const firstBattleUnits: UnitData[] = [ classKey: 'yellowTurban', level: 1, exp: 6, - hp: 19, - maxHp: 19, + hp: 18, + maxHp: 18, attack: 6, move: 3, stats: { might: 49, intelligence: 34, leadership: 38, agility: 45, luck: 40 }, @@ -5144,7 +5144,7 @@ export const firstBattleUnits: UnitData[] = [ armor: { itemId: 'rebel-vest', level: 1, exp: 4 }, accessory: { itemId: 'yellow-scarf-charm', level: 1, exp: 0 } }, - x: 6, + x: 5, y: 13 }, { @@ -5155,8 +5155,8 @@ export const firstBattleUnits: UnitData[] = [ classKey: 'yellowTurban', level: 1, exp: 4, - hp: 20, - maxHp: 20, + hp: 19, + maxHp: 19, attack: 6, move: 3, stats: { might: 47, intelligence: 32, leadership: 36, agility: 48, luck: 38 }, @@ -5165,7 +5165,7 @@ export const firstBattleUnits: UnitData[] = [ armor: { itemId: 'rebel-vest', level: 1, exp: 5 }, accessory: { itemId: 'yellow-scarf-charm', level: 1, exp: 0 } }, - x: 8, + x: 7, y: 12 }, { @@ -5176,9 +5176,9 @@ export const firstBattleUnits: UnitData[] = [ classKey: 'archer', level: 1, exp: 10, - hp: 18, - maxHp: 18, - attack: 7, + hp: 17, + maxHp: 17, + attack: 6, move: 3, stats: { might: 52, intelligence: 40, leadership: 43, agility: 56, luck: 42 }, equipment: { @@ -5186,7 +5186,7 @@ export const firstBattleUnits: UnitData[] = [ armor: { itemId: 'cloth-armor', level: 1, exp: 6 }, accessory: { itemId: 'wind-quiver', level: 1, exp: 0 } }, - x: 10, + x: 9, y: 11 }, { @@ -5197,8 +5197,8 @@ export const firstBattleUnits: UnitData[] = [ classKey: 'yellowTurban', level: 1, exp: 8, - hp: 20, - maxHp: 20, + hp: 19, + maxHp: 19, attack: 6, move: 3, stats: { might: 51, intelligence: 31, leadership: 39, agility: 44, luck: 39 }, @@ -5207,7 +5207,7 @@ export const firstBattleUnits: UnitData[] = [ armor: { itemId: 'rebel-vest', level: 1, exp: 5 }, accessory: { itemId: 'yellow-scarf-charm', level: 1, exp: 0 } }, - x: 7, + x: 6, y: 9 }, { @@ -5218,8 +5218,8 @@ export const firstBattleUnits: UnitData[] = [ classKey: 'yellowTurban', level: 1, exp: 8, - hp: 21, - maxHp: 21, + hp: 20, + maxHp: 20, attack: 6, move: 3, stats: { might: 50, intelligence: 33, leadership: 37, agility: 46, luck: 41 }, @@ -5260,8 +5260,8 @@ export const firstBattleUnits: UnitData[] = [ classKey: 'archer', level: 2, exp: 12, - hp: 19, - maxHp: 19, + hp: 18, + maxHp: 18, attack: 7, move: 3, stats: { might: 53, intelligence: 42, leadership: 44, agility: 57, luck: 44 }, @@ -5281,9 +5281,9 @@ export const firstBattleUnits: UnitData[] = [ classKey: 'cavalry', level: 2, exp: 16, - hp: 24, - maxHp: 24, - attack: 8, + hp: 23, + maxHp: 23, + attack: 7, move: 5, stats: { might: 60, intelligence: 35, leadership: 48, agility: 63, luck: 45 }, equipment: { @@ -5302,8 +5302,8 @@ export const firstBattleUnits: UnitData[] = [ classKey: 'yellowTurban', level: 2, exp: 10, - hp: 22, - maxHp: 22, + hp: 21, + maxHp: 21, attack: 7, move: 3, stats: { might: 54, intelligence: 35, leadership: 43, agility: 47, luck: 42 }, @@ -5323,8 +5323,8 @@ export const firstBattleUnits: UnitData[] = [ classKey: 'yellowTurban', level: 2, exp: 11, - hp: 23, - maxHp: 23, + hp: 22, + maxHp: 22, attack: 7, move: 3, stats: { might: 55, intelligence: 36, leadership: 44, agility: 48, luck: 43 }, @@ -5344,9 +5344,9 @@ export const firstBattleUnits: UnitData[] = [ classKey: 'rebelLeader', level: 2, exp: 18, - hp: 32, - maxHp: 32, - attack: 10, + hp: 31, + maxHp: 31, + attack: 9, move: 3, stats: { might: 64, intelligence: 46, leadership: 61, agility: 52, luck: 50 }, equipment: { @@ -5377,8 +5377,8 @@ export const secondBattleUnits: UnitData[] = [ classKey: 'yellowTurban', level: 2, exp: 12, - hp: 23, - maxHp: 23, + hp: 22, + maxHp: 22, attack: 7, move: 3, stats: { might: 55, intelligence: 34, leadership: 43, agility: 48, luck: 42 }, @@ -5388,7 +5388,7 @@ export const secondBattleUnits: UnitData[] = [ accessory: { itemId: 'yellow-scarf-charm', level: 1, exp: 0 } }, x: 7, - y: 12 + y: 13 }, { id: 'pursuit-raider-b', @@ -5398,8 +5398,8 @@ export const secondBattleUnits: UnitData[] = [ classKey: 'yellowTurban', level: 2, exp: 12, - hp: 23, - maxHp: 23, + hp: 22, + maxHp: 22, attack: 7, move: 3, stats: { might: 54, intelligence: 35, leadership: 42, agility: 47, luck: 41 }, @@ -5419,8 +5419,8 @@ export const secondBattleUnits: UnitData[] = [ classKey: 'bandit', level: 2, exp: 14, - hp: 24, - maxHp: 24, + hp: 23, + maxHp: 23, attack: 8, move: 3, stats: { might: 58, intelligence: 32, leadership: 40, agility: 53, luck: 44 }, @@ -5429,8 +5429,8 @@ export const secondBattleUnits: UnitData[] = [ armor: { itemId: 'rebel-vest', level: 1, exp: 7 }, accessory: { itemId: 'yellow-scarf-charm', level: 1, exp: 0 } }, - x: 6, - y: 8 + x: 8, + y: 10 }, { id: 'pursuit-archer-a', @@ -5440,9 +5440,9 @@ export const secondBattleUnits: UnitData[] = [ classKey: 'archer', level: 2, exp: 16, - hp: 20, - maxHp: 20, - attack: 8, + hp: 19, + maxHp: 19, + attack: 7, move: 3, stats: { might: 54, intelligence: 43, leadership: 45, agility: 58, luck: 45 }, equipment: { @@ -5451,7 +5451,7 @@ export const secondBattleUnits: UnitData[] = [ accessory: { itemId: 'wind-quiver', level: 1, exp: 0 } }, x: 12, - y: 10 + y: 9 }, { id: 'pursuit-cavalry-a', @@ -5471,8 +5471,8 @@ export const secondBattleUnits: UnitData[] = [ armor: { itemId: 'rebel-vest', level: 1, exp: 8 }, accessory: { itemId: 'grain-pouch', level: 1, exp: 0 } }, - x: 15, - y: 7 + x: 14, + y: 8 }, { id: 'pursuit-raider-c', @@ -5482,8 +5482,8 @@ export const secondBattleUnits: UnitData[] = [ classKey: 'yellowTurban', level: 2, exp: 13, - hp: 24, - maxHp: 24, + hp: 23, + maxHp: 23, attack: 7, move: 3, stats: { might: 56, intelligence: 34, leadership: 43, agility: 49, luck: 42 }, @@ -5492,7 +5492,7 @@ export const secondBattleUnits: UnitData[] = [ armor: { itemId: 'rebel-vest', level: 1, exp: 7 }, accessory: { itemId: 'yellow-scarf-charm', level: 1, exp: 0 } }, - x: 17, + x: 16, y: 6 }, { @@ -5503,9 +5503,9 @@ export const secondBattleUnits: UnitData[] = [ classKey: 'archer', level: 3, exp: 18, - hp: 21, - maxHp: 21, - attack: 8, + hp: 20, + maxHp: 20, + attack: 7, move: 3, stats: { might: 55, intelligence: 45, leadership: 46, agility: 59, luck: 47 }, equipment: { @@ -5555,8 +5555,8 @@ export const secondBattleUnits: UnitData[] = [ armor: { itemId: 'rebel-vest', level: 1, exp: 8 }, accessory: { itemId: 'yellow-scarf-charm', level: 1, exp: 0 } }, - x: 19, - y: 2 + x: 18, + y: 3 }, { id: 'pursuit-guard-b', @@ -5566,8 +5566,8 @@ export const secondBattleUnits: UnitData[] = [ classKey: 'yellowTurban', level: 3, exp: 16, - hp: 25, - maxHp: 25, + hp: 24, + maxHp: 24, attack: 8, move: 3, stats: { might: 58, intelligence: 36, leadership: 48, agility: 50, luck: 44 }, @@ -5576,8 +5576,8 @@ export const secondBattleUnits: UnitData[] = [ armor: { itemId: 'rebel-vest', level: 1, exp: 8 }, accessory: { itemId: 'yellow-scarf-charm', level: 1, exp: 0 } }, - x: 21, - y: 2 + x: 20, + y: 3 }, { id: 'pursuit-leader-han-seok', @@ -5587,9 +5587,9 @@ export const secondBattleUnits: UnitData[] = [ classKey: 'rebelLeader', level: 4, exp: 24, - hp: 38, - maxHp: 38, - attack: 11, + hp: 36, + maxHp: 36, + attack: 10, move: 3, stats: { might: 68, intelligence: 48, leadership: 64, agility: 54, luck: 52 }, equipment: { @@ -5597,8 +5597,8 @@ export const secondBattleUnits: UnitData[] = [ armor: { itemId: 'lamellar-armor', level: 1, exp: 14 }, accessory: { itemId: 'grain-pouch', level: 1, exp: 0 } }, - x: 20, - y: 1 + x: 19, + y: 2 } ]; @@ -5620,8 +5620,8 @@ export const thirdBattleUnits: UnitData[] = [ classKey: 'yellowTurban', level: 3, exp: 18, - hp: 25, - maxHp: 25, + hp: 24, + maxHp: 24, attack: 8, move: 3, stats: { might: 58, intelligence: 36, leadership: 45, agility: 52, luck: 43 }, @@ -5641,9 +5641,9 @@ export const thirdBattleUnits: UnitData[] = [ classKey: 'bandit', level: 3, exp: 20, - hp: 26, - maxHp: 26, - attack: 9, + hp: 25, + maxHp: 25, + attack: 8, move: 3, stats: { might: 62, intelligence: 34, leadership: 42, agility: 58, luck: 46 }, equipment: { @@ -5662,9 +5662,9 @@ export const thirdBattleUnits: UnitData[] = [ classKey: 'archer', level: 3, exp: 20, - hp: 22, - maxHp: 22, - attack: 9, + hp: 21, + maxHp: 21, + attack: 8, move: 3, stats: { might: 57, intelligence: 45, leadership: 47, agility: 60, luck: 48 }, equipment: { @@ -5683,9 +5683,9 @@ export const thirdBattleUnits: UnitData[] = [ classKey: 'cavalry', level: 4, exp: 22, - hp: 29, - maxHp: 29, - attack: 10, + hp: 28, + maxHp: 28, + attack: 9, move: 5, stats: { might: 66, intelligence: 36, leadership: 50, agility: 68, luck: 48 }, equipment: { @@ -5746,9 +5746,9 @@ export const thirdBattleUnits: UnitData[] = [ classKey: 'archer', level: 4, exp: 24, - hp: 23, - maxHp: 23, - attack: 9, + hp: 22, + maxHp: 22, + attack: 8, move: 3, stats: { might: 58, intelligence: 47, leadership: 48, agility: 61, luck: 49 }, equipment: { @@ -5767,9 +5767,9 @@ export const thirdBattleUnits: UnitData[] = [ classKey: 'cavalry', level: 4, exp: 25, - hp: 30, - maxHp: 30, - attack: 10, + hp: 28, + maxHp: 28, + attack: 9, move: 5, stats: { might: 67, intelligence: 38, leadership: 51, agility: 70, luck: 50 }, equipment: { @@ -5777,7 +5777,7 @@ export const thirdBattleUnits: UnitData[] = [ armor: { itemId: 'rebel-vest', level: 1, exp: 10 }, accessory: { itemId: 'grain-pouch', level: 1, exp: 0 } }, - x: 17, + x: 16, y: 6 }, { @@ -5788,9 +5788,9 @@ export const thirdBattleUnits: UnitData[] = [ classKey: 'yellowTurban', level: 4, exp: 22, - hp: 28, - maxHp: 28, - attack: 9, + hp: 26, + maxHp: 26, + attack: 8, move: 3, stats: { might: 62, intelligence: 37, leadership: 50, agility: 52, luck: 46 }, equipment: { @@ -5798,7 +5798,7 @@ export const thirdBattleUnits: UnitData[] = [ armor: { itemId: 'rebel-vest', level: 1, exp: 10 }, accessory: { itemId: 'yellow-scarf-charm', level: 1, exp: 0 } }, - x: 18, + x: 17, y: 4 }, { @@ -5809,9 +5809,9 @@ export const thirdBattleUnits: UnitData[] = [ classKey: 'yellowTurban', level: 4, exp: 22, - hp: 28, - maxHp: 28, - attack: 9, + hp: 26, + maxHp: 26, + attack: 8, move: 3, stats: { might: 62, intelligence: 37, leadership: 50, agility: 52, luck: 46 }, equipment: { @@ -5819,7 +5819,7 @@ export const thirdBattleUnits: UnitData[] = [ armor: { itemId: 'rebel-vest', level: 1, exp: 10 }, accessory: { itemId: 'yellow-scarf-charm', level: 1, exp: 0 } }, - x: 20, + x: 19, y: 4 }, { @@ -5830,9 +5830,9 @@ export const thirdBattleUnits: UnitData[] = [ classKey: 'archer', level: 4, exp: 25, - hp: 24, - maxHp: 24, - attack: 10, + hp: 22, + maxHp: 22, + attack: 9, move: 3, stats: { might: 60, intelligence: 49, leadership: 49, agility: 61, luck: 50 }, equipment: { @@ -5851,9 +5851,9 @@ export const thirdBattleUnits: UnitData[] = [ classKey: 'rebelLeader', level: 5, exp: 30, - hp: 42, - maxHp: 42, - attack: 12, + hp: 40, + maxHp: 40, + attack: 11, move: 3, stats: { might: 72, intelligence: 50, leadership: 68, agility: 56, luck: 54 }, equipment: { @@ -5861,7 +5861,7 @@ export const thirdBattleUnits: UnitData[] = [ armor: { itemId: 'lamellar-armor', level: 1, exp: 18 }, accessory: { itemId: 'grain-pouch', level: 1, exp: 0 } }, - x: 20, + x: 19, y: 2 } ];