Add third campaign battle path
This commit is contained in:
@@ -7,13 +7,17 @@ import {
|
||||
secondBattleMap,
|
||||
secondBattleUnits,
|
||||
secondBattleVictoryPages,
|
||||
thirdBattleBonds,
|
||||
thirdBattleMap,
|
||||
thirdBattleUnits,
|
||||
thirdBattleVictoryPages,
|
||||
type BattleBond,
|
||||
type BattleMap,
|
||||
type StoryPage,
|
||||
type UnitData
|
||||
} from './scenario';
|
||||
|
||||
export type BattleScenarioId = 'first-battle-zhuo-commandery' | 'second-battle-yellow-turban-pursuit';
|
||||
export type BattleScenarioId = 'first-battle-zhuo-commandery' | 'second-battle-yellow-turban-pursuit' | 'third-battle-guangzong-road';
|
||||
|
||||
export type BattleObjectiveKind = 'defeat-leader' | 'keep-unit-alive' | 'secure-terrain' | 'quick-victory';
|
||||
|
||||
@@ -158,11 +162,65 @@ export const secondBattleScenario: BattleScenarioDefinition = {
|
||||
nextCampScene: 'CampScene'
|
||||
};
|
||||
|
||||
export const thirdBattleScenario: BattleScenarioDefinition = {
|
||||
id: 'third-battle-guangzong-road',
|
||||
title: '광종 구원로',
|
||||
victoryConditionLabel: '전령 마원 격파',
|
||||
defeatConditionLabel: '유비 퇴각',
|
||||
openingObjectiveLines: [
|
||||
'황건 전령 마원이 광종 본대로 향하고 있습니다. 마원을 격파하면 적의 연락망이 끊어집니다.',
|
||||
'강가 길목과 요새 주변의 궁병을 방치하면 전선이 오래 묶입니다. 지형 보정을 살펴 진군하십시오.',
|
||||
'14턴 이내에 승리하면 광종 구원로 확보 명성이 오릅니다.'
|
||||
],
|
||||
map: thirdBattleMap,
|
||||
units: thirdBattleUnits,
|
||||
bonds: thirdBattleBonds,
|
||||
mapTextureKey: 'battle-map-third',
|
||||
leaderUnitId: 'guangzong-leader-ma-yuan',
|
||||
quickVictoryTurnLimit: 14,
|
||||
baseVictoryGold: 520,
|
||||
objectives: [
|
||||
{
|
||||
id: 'leader',
|
||||
kind: 'defeat-leader',
|
||||
label: '전령 마원 격파',
|
||||
rewardGold: 320,
|
||||
unitId: 'guangzong-leader-ma-yuan'
|
||||
},
|
||||
{
|
||||
id: 'liu-bei',
|
||||
kind: 'keep-unit-alive',
|
||||
label: '유비 생존',
|
||||
rewardGold: 140,
|
||||
unitId: 'liu-bei'
|
||||
},
|
||||
{
|
||||
id: 'fort',
|
||||
kind: 'secure-terrain',
|
||||
label: '강가 요새 확보',
|
||||
rewardGold: 220,
|
||||
terrain: 'fort'
|
||||
},
|
||||
{
|
||||
id: 'quick',
|
||||
kind: 'quick-victory',
|
||||
label: '14턴 이내 승리',
|
||||
rewardGold: 180,
|
||||
maxTurn: 14
|
||||
}
|
||||
],
|
||||
defeatConditions: [{ kind: 'unit-defeated', unitId: 'liu-bei' }],
|
||||
itemRewards: ['콩 2', '상처약 1', '의용군 명성 +3'],
|
||||
victoryPages: thirdBattleVictoryPages,
|
||||
nextCampScene: 'CampScene'
|
||||
};
|
||||
|
||||
export const defaultBattleScenarioId: BattleScenarioId = firstBattleScenario.id;
|
||||
|
||||
export const battleScenarios: Record<BattleScenarioId, BattleScenarioDefinition> = {
|
||||
'first-battle-zhuo-commandery': firstBattleScenario,
|
||||
'second-battle-yellow-turban-pursuit': secondBattleScenario
|
||||
'second-battle-yellow-turban-pursuit': secondBattleScenario,
|
||||
'third-battle-guangzong-road': thirdBattleScenario
|
||||
};
|
||||
|
||||
export const defaultBattleScenario = battleScenarios[defaultBattleScenarioId];
|
||||
|
||||
@@ -248,6 +248,69 @@ export const secondBattleVictoryPages: StoryPage[] = [
|
||||
}
|
||||
];
|
||||
|
||||
export const thirdBattleIntroPages: StoryPage[] = [
|
||||
{
|
||||
id: 'third-guangzong-report',
|
||||
bgm: 'militia-theme',
|
||||
chapter: '광종의 급보',
|
||||
background: 'story-militia',
|
||||
text: '탁현 북쪽의 소란을 잠재우자, 장터에는 더 큰 소식이 밀려왔다. 광종 방면에서 황건 본대가 관군을 압박하고 있다는 전갈이었다.'
|
||||
},
|
||||
{
|
||||
id: 'third-liu-bei-decision',
|
||||
bgm: 'battle-prep',
|
||||
chapter: '넓어지는 길',
|
||||
background: 'story-liu-bei',
|
||||
speaker: '유비',
|
||||
portrait: 'liuBei',
|
||||
text: '작은 마을만 지키고 물러선다면 난세는 끝나지 않는다. 광종으로 향하는 길을 열어, 더 많은 백성이 버틸 시간을 만들어야 한다.'
|
||||
},
|
||||
{
|
||||
id: 'third-guan-yu-bridge',
|
||||
bgm: 'battle-prep',
|
||||
chapter: '강가의 길목',
|
||||
background: 'story-three-heroes',
|
||||
speaker: '관우',
|
||||
portrait: 'guanYu',
|
||||
text: '적 전령이 강가 요새를 거쳐 본대로 향한다면, 그 길을 끊어야 합니다. 좁은 다리와 숲길을 먼저 장악하겠습니다.'
|
||||
},
|
||||
{
|
||||
id: 'third-zhang-fei-vanguard',
|
||||
bgm: 'battle-prep',
|
||||
chapter: '전초전',
|
||||
background: 'story-sortie',
|
||||
speaker: '장비',
|
||||
portrait: 'zhangFei',
|
||||
text: '전령이든 두령이든 내 앞길에 서면 다 똑같소! 형님, 명만 내리시오. 길목을 시원하게 열어 버리겠소!'
|
||||
}
|
||||
];
|
||||
|
||||
export const thirdBattleVictoryPages: StoryPage[] = [
|
||||
{
|
||||
id: 'third-victory-road',
|
||||
bgm: 'militia-theme',
|
||||
chapter: '열린 길목',
|
||||
background: 'story-sortie',
|
||||
text: '황건 전령의 깃발이 꺾이자 광종으로 향하는 길목에 잠시 숨통이 트였다. 흩어진 백성들은 의용군의 이름을 기억하기 시작했다.'
|
||||
},
|
||||
{
|
||||
id: 'third-victory-liu-bei',
|
||||
bgm: 'militia-theme',
|
||||
chapter: '큰 싸움의 그림자',
|
||||
background: 'story-liu-bei',
|
||||
speaker: '유비',
|
||||
portrait: 'liuBei',
|
||||
text: '우리가 막은 것은 작은 전갈 하나일 뿐이다. 그러나 작은 길 하나가 열리면, 다음 전장에서도 백성을 구할 길이 생긴다.'
|
||||
},
|
||||
{
|
||||
id: 'third-victory-next',
|
||||
bgm: 'battle-prep',
|
||||
chapter: '광종으로',
|
||||
background: 'story-militia',
|
||||
text: '세 형제는 병사를 추스르고 광종 방면으로 눈을 돌렸다. 황건의 큰 물결은 아직 꺾이지 않았다.'
|
||||
}
|
||||
];
|
||||
|
||||
export const firstBattleMap: BattleMap = {
|
||||
width: 20,
|
||||
height: 18,
|
||||
@@ -300,6 +363,33 @@ export const secondBattleMap: BattleMap = {
|
||||
]
|
||||
};
|
||||
|
||||
export const thirdBattleMap: BattleMap = {
|
||||
width: 24,
|
||||
height: 20,
|
||||
terrain: [
|
||||
['forest', 'forest', 'hill', 'plain', 'plain', 'road', 'plain', 'forest', 'hill', 'plain', 'river', 'river', 'plain', 'forest', 'forest', 'hill', 'hill', 'plain', 'fort', 'fort', 'plain', 'forest', 'forest', 'hill'],
|
||||
['forest', 'hill', 'plain', 'plain', 'road', 'road', 'plain', 'forest', 'plain', 'plain', 'river', 'river', 'road', 'plain', 'forest', 'plain', 'hill', 'plain', 'fort', 'plain', 'plain', 'plain', 'forest', 'forest'],
|
||||
['hill', 'plain', 'plain', 'road', 'road', 'plain', 'plain', 'plain', 'plain', 'road', 'road', 'road', 'road', 'plain', 'plain', 'plain', 'plain', 'hill', 'plain', 'plain', 'forest', 'plain', 'plain', 'forest'],
|
||||
['plain', 'plain', 'forest', 'road', 'plain', 'plain', 'forest', 'plain', 'hill', 'road', 'river', 'river', 'road', 'road', 'plain', 'hill', 'hill', 'plain', 'plain', 'plain', 'forest', 'forest', 'plain', 'plain'],
|
||||
['plain', 'forest', 'forest', 'road', 'plain', 'hill', 'plain', 'plain', 'plain', 'road', 'river', 'river', 'plain', 'road', 'plain', 'plain', 'hill', 'cliff', 'plain', 'plain', 'plain', 'forest', 'plain', 'plain'],
|
||||
['plain', 'plain', 'forest', 'road', 'road', 'plain', 'plain', 'hill', 'plain', 'road', 'plain', 'river', 'river', 'road', 'plain', 'village', 'plain', 'hill', 'plain', 'plain', 'plain', 'forest', 'forest', 'plain'],
|
||||
['plain', 'plain', 'plain', 'plain', 'road', 'plain', 'hill', 'hill', 'plain', 'road', 'plain', 'river', 'river', 'road', 'plain', 'village', 'plain', 'plain', 'plain', 'plain', 'hill', 'plain', 'forest', 'plain'],
|
||||
['plain', 'forest', 'plain', 'plain', 'road', 'plain', 'plain', 'hill', 'plain', 'road', 'road', 'plain', 'river', 'river', 'road', 'plain', 'plain', 'forest', 'plain', 'plain', 'hill', 'hill', 'plain', 'plain'],
|
||||
['forest', 'forest', 'plain', 'road', 'road', 'plain', 'plain', 'plain', 'hill', 'plain', 'road', 'plain', 'plain', 'river', 'river', 'plain', 'forest', 'forest', 'plain', 'plain', 'plain', 'hill', 'plain', 'plain'],
|
||||
['forest', 'plain', 'plain', 'road', 'plain', 'plain', 'forest', 'plain', 'plain', 'plain', 'road', 'road', 'plain', 'river', 'river', 'plain', 'plain', 'forest', 'plain', 'hill', 'plain', 'plain', 'plain', 'plain'],
|
||||
['plain', 'plain', 'road', 'road', 'plain', 'forest', 'forest', 'plain', 'plain', 'plain', 'plain', 'road', 'road', 'plain', 'river', 'river', 'plain', 'plain', 'plain', 'hill', 'hill', 'plain', 'plain', 'plain'],
|
||||
['plain', 'road', 'road', 'plain', 'plain', 'forest', 'plain', 'plain', 'village', 'plain', 'plain', 'plain', 'road', 'plain', 'plain', 'river', 'river', 'plain', 'plain', 'plain', 'hill', 'hill', 'plain', 'plain'],
|
||||
['hill', 'road', 'plain', 'plain', 'forest', 'plain', 'plain', 'plain', 'village', 'plain', 'forest', 'plain', 'road', 'road', 'plain', 'plain', 'river', 'river', 'plain', 'plain', 'plain', 'plain', 'plain', 'plain'],
|
||||
['hill', 'road', 'plain', 'forest', 'forest', 'plain', 'plain', 'hill', 'plain', 'plain', 'forest', 'plain', 'plain', 'road', 'road', 'plain', 'plain', 'river', 'river', 'plain', 'plain', 'forest', 'plain', 'plain'],
|
||||
['plain', 'road', 'plain', 'plain', 'plain', 'plain', 'hill', 'plain', 'plain', 'forest', 'plain', 'plain', 'plain', 'plain', 'road', 'road', 'plain', 'plain', 'river', 'river', 'plain', 'plain', 'forest', 'plain'],
|
||||
['camp', 'road', 'road', 'plain', 'plain', 'hill', 'plain', 'plain', 'forest', 'forest', 'plain', 'plain', 'plain', 'plain', 'plain', 'road', 'road', 'plain', 'plain', 'river', 'river', 'plain', 'plain', 'hill'],
|
||||
['camp', 'camp', 'road', 'plain', 'forest', 'plain', 'plain', 'plain', 'forest', 'plain', 'plain', 'plain', 'hill', 'plain', 'plain', 'plain', 'road', 'road', 'plain', 'plain', 'river', 'river', 'plain', 'hill'],
|
||||
['plain', 'camp', 'road', 'road', 'plain', 'plain', 'forest', 'plain', 'plain', 'plain', 'hill', 'plain', 'hill', 'plain', 'forest', 'plain', 'plain', 'road', 'road', 'plain', 'plain', 'river', 'river', 'plain'],
|
||||
['plain', 'plain', 'camp', 'road', 'plain', 'forest', 'forest', 'plain', 'plain', 'hill', 'plain', 'plain', 'plain', 'plain', 'forest', 'forest', 'plain', 'plain', 'road', 'road', 'plain', 'plain', 'river', 'plain'],
|
||||
['plain', 'plain', 'plain', 'road', 'road', 'plain', 'forest', 'forest', 'plain', 'plain', 'plain', 'hill', 'plain', 'plain', 'plain', 'forest', 'forest', 'plain', 'plain', 'road', 'road', 'plain', 'plain', 'plain']
|
||||
]
|
||||
};
|
||||
|
||||
export const firstBattleUnits: UnitData[] = [
|
||||
{
|
||||
id: 'liu-bei',
|
||||
@@ -840,6 +930,270 @@ export const secondBattleUnits: UnitData[] = [
|
||||
}
|
||||
];
|
||||
|
||||
const thirdBattleAllyPositions: Record<string, { x: number; y: number }> = {
|
||||
'liu-bei': { x: 2, y: 17 },
|
||||
'guan-yu': { x: 3, y: 17 },
|
||||
'zhang-fei': { x: 2, y: 18 }
|
||||
};
|
||||
|
||||
export const thirdBattleUnits: UnitData[] = [
|
||||
...firstBattleUnits
|
||||
.filter((unit) => unit.faction === 'ally')
|
||||
.map((unit) => placeScenarioUnit(unit, thirdBattleAllyPositions[unit.id] ?? { x: unit.x, y: unit.y })),
|
||||
{
|
||||
id: 'guangzong-scout-a',
|
||||
name: '황건 척후병',
|
||||
faction: 'enemy',
|
||||
className: '황건병',
|
||||
classKey: 'yellowTurban',
|
||||
level: 3,
|
||||
exp: 18,
|
||||
hp: 25,
|
||||
maxHp: 25,
|
||||
attack: 8,
|
||||
move: 3,
|
||||
stats: { might: 58, intelligence: 36, leadership: 45, agility: 52, luck: 43 },
|
||||
equipment: {
|
||||
weapon: { itemId: 'yellow-turban-saber', level: 1, exp: 18 },
|
||||
armor: { itemId: 'rebel-vest', level: 1, exp: 8 },
|
||||
accessory: { itemId: 'yellow-scarf-charm', level: 1, exp: 0 }
|
||||
},
|
||||
x: 6,
|
||||
y: 15
|
||||
},
|
||||
{
|
||||
id: 'guangzong-bandit-a',
|
||||
name: '숲길 복병',
|
||||
faction: 'enemy',
|
||||
className: '도적',
|
||||
classKey: 'bandit',
|
||||
level: 3,
|
||||
exp: 20,
|
||||
hp: 26,
|
||||
maxHp: 26,
|
||||
attack: 9,
|
||||
move: 3,
|
||||
stats: { might: 62, intelligence: 34, leadership: 42, agility: 58, luck: 46 },
|
||||
equipment: {
|
||||
weapon: { itemId: 'yellow-turban-saber', level: 1, exp: 18 },
|
||||
armor: { itemId: 'rebel-vest', level: 1, exp: 8 },
|
||||
accessory: { itemId: 'yellow-scarf-charm', level: 1, exp: 0 }
|
||||
},
|
||||
x: 8,
|
||||
y: 13
|
||||
},
|
||||
{
|
||||
id: 'guangzong-archer-a',
|
||||
name: '강가 궁병',
|
||||
faction: 'enemy',
|
||||
className: '궁병',
|
||||
classKey: 'archer',
|
||||
level: 3,
|
||||
exp: 20,
|
||||
hp: 22,
|
||||
maxHp: 22,
|
||||
attack: 9,
|
||||
move: 3,
|
||||
stats: { might: 57, intelligence: 45, leadership: 47, agility: 60, luck: 48 },
|
||||
equipment: {
|
||||
weapon: { itemId: 'short-bow', level: 1, exp: 20 },
|
||||
armor: { itemId: 'cloth-armor', level: 1, exp: 8 },
|
||||
accessory: { itemId: 'wind-quiver', level: 1, exp: 0 }
|
||||
},
|
||||
x: 11,
|
||||
y: 14
|
||||
},
|
||||
{
|
||||
id: 'guangzong-cavalry-a',
|
||||
name: '황건 기병',
|
||||
faction: 'enemy',
|
||||
className: '경기병',
|
||||
classKey: 'cavalry',
|
||||
level: 4,
|
||||
exp: 22,
|
||||
hp: 29,
|
||||
maxHp: 29,
|
||||
attack: 10,
|
||||
move: 5,
|
||||
stats: { might: 66, intelligence: 36, leadership: 50, agility: 68, luck: 48 },
|
||||
equipment: {
|
||||
weapon: { itemId: 'yellow-turban-saber', level: 1, exp: 22 },
|
||||
armor: { itemId: 'rebel-vest', level: 1, exp: 9 },
|
||||
accessory: { itemId: 'grain-pouch', level: 1, exp: 0 }
|
||||
},
|
||||
x: 12,
|
||||
y: 11
|
||||
},
|
||||
{
|
||||
id: 'guangzong-raider-a',
|
||||
name: '황건 장정',
|
||||
faction: 'enemy',
|
||||
className: '황건병',
|
||||
classKey: 'yellowTurban',
|
||||
level: 3,
|
||||
exp: 18,
|
||||
hp: 26,
|
||||
maxHp: 26,
|
||||
attack: 8,
|
||||
move: 3,
|
||||
stats: { might: 59, intelligence: 35, leadership: 46, agility: 51, luck: 44 },
|
||||
equipment: {
|
||||
weapon: { itemId: 'yellow-turban-saber', level: 1, exp: 18 },
|
||||
armor: { itemId: 'rebel-vest', level: 1, exp: 8 },
|
||||
accessory: { itemId: 'yellow-scarf-charm', level: 1, exp: 0 }
|
||||
},
|
||||
x: 10,
|
||||
y: 9
|
||||
},
|
||||
{
|
||||
id: 'guangzong-raider-b',
|
||||
name: '황건 장정',
|
||||
faction: 'enemy',
|
||||
className: '황건병',
|
||||
classKey: 'yellowTurban',
|
||||
level: 3,
|
||||
exp: 18,
|
||||
hp: 26,
|
||||
maxHp: 26,
|
||||
attack: 8,
|
||||
move: 3,
|
||||
stats: { might: 59, intelligence: 35, leadership: 46, agility: 51, luck: 44 },
|
||||
equipment: {
|
||||
weapon: { itemId: 'yellow-turban-saber', level: 1, exp: 18 },
|
||||
armor: { itemId: 'rebel-vest', level: 1, exp: 8 },
|
||||
accessory: { itemId: 'yellow-scarf-charm', level: 1, exp: 0 }
|
||||
},
|
||||
x: 14,
|
||||
y: 10
|
||||
},
|
||||
{
|
||||
id: 'guangzong-archer-b',
|
||||
name: '요새 궁병',
|
||||
faction: 'enemy',
|
||||
className: '궁병',
|
||||
classKey: 'archer',
|
||||
level: 4,
|
||||
exp: 24,
|
||||
hp: 23,
|
||||
maxHp: 23,
|
||||
attack: 9,
|
||||
move: 3,
|
||||
stats: { might: 58, intelligence: 47, leadership: 48, agility: 61, luck: 49 },
|
||||
equipment: {
|
||||
weapon: { itemId: 'short-bow', level: 1, exp: 24 },
|
||||
armor: { itemId: 'cloth-armor', level: 1, exp: 9 },
|
||||
accessory: { itemId: 'wind-quiver', level: 1, exp: 0 }
|
||||
},
|
||||
x: 15,
|
||||
y: 7
|
||||
},
|
||||
{
|
||||
id: 'guangzong-cavalry-b',
|
||||
name: '전령 기병',
|
||||
faction: 'enemy',
|
||||
className: '경기병',
|
||||
classKey: 'cavalry',
|
||||
level: 4,
|
||||
exp: 25,
|
||||
hp: 30,
|
||||
maxHp: 30,
|
||||
attack: 10,
|
||||
move: 5,
|
||||
stats: { might: 67, intelligence: 38, leadership: 51, agility: 70, luck: 50 },
|
||||
equipment: {
|
||||
weapon: { itemId: 'yellow-turban-saber', level: 1, exp: 25 },
|
||||
armor: { itemId: 'rebel-vest', level: 1, exp: 10 },
|
||||
accessory: { itemId: 'grain-pouch', level: 1, exp: 0 }
|
||||
},
|
||||
x: 17,
|
||||
y: 6
|
||||
},
|
||||
{
|
||||
id: 'guangzong-guard-a',
|
||||
name: '요새 수비병',
|
||||
faction: 'enemy',
|
||||
className: '황건병',
|
||||
classKey: 'yellowTurban',
|
||||
level: 4,
|
||||
exp: 22,
|
||||
hp: 28,
|
||||
maxHp: 28,
|
||||
attack: 9,
|
||||
move: 3,
|
||||
stats: { might: 62, intelligence: 37, leadership: 50, agility: 52, luck: 46 },
|
||||
equipment: {
|
||||
weapon: { itemId: 'yellow-turban-saber', level: 1, exp: 22 },
|
||||
armor: { itemId: 'rebel-vest', level: 1, exp: 10 },
|
||||
accessory: { itemId: 'yellow-scarf-charm', level: 1, exp: 0 }
|
||||
},
|
||||
x: 18,
|
||||
y: 4
|
||||
},
|
||||
{
|
||||
id: 'guangzong-guard-b',
|
||||
name: '요새 수비병',
|
||||
faction: 'enemy',
|
||||
className: '황건병',
|
||||
classKey: 'yellowTurban',
|
||||
level: 4,
|
||||
exp: 22,
|
||||
hp: 28,
|
||||
maxHp: 28,
|
||||
attack: 9,
|
||||
move: 3,
|
||||
stats: { might: 62, intelligence: 37, leadership: 50, agility: 52, luck: 46 },
|
||||
equipment: {
|
||||
weapon: { itemId: 'yellow-turban-saber', level: 1, exp: 22 },
|
||||
armor: { itemId: 'rebel-vest', level: 1, exp: 10 },
|
||||
accessory: { itemId: 'yellow-scarf-charm', level: 1, exp: 0 }
|
||||
},
|
||||
x: 20,
|
||||
y: 4
|
||||
},
|
||||
{
|
||||
id: 'guangzong-fort-archer',
|
||||
name: '망루 궁병',
|
||||
faction: 'enemy',
|
||||
className: '궁병',
|
||||
classKey: 'archer',
|
||||
level: 4,
|
||||
exp: 25,
|
||||
hp: 24,
|
||||
maxHp: 24,
|
||||
attack: 10,
|
||||
move: 3,
|
||||
stats: { might: 60, intelligence: 49, leadership: 49, agility: 61, luck: 50 },
|
||||
equipment: {
|
||||
weapon: { itemId: 'short-bow', level: 1, exp: 25 },
|
||||
armor: { itemId: 'cloth-armor', level: 1, exp: 10 },
|
||||
accessory: { itemId: 'wind-quiver', level: 1, exp: 0 }
|
||||
},
|
||||
x: 19,
|
||||
y: 2
|
||||
},
|
||||
{
|
||||
id: 'guangzong-leader-ma-yuan',
|
||||
name: '전령 마원',
|
||||
faction: 'enemy',
|
||||
className: '두령',
|
||||
classKey: 'rebelLeader',
|
||||
level: 5,
|
||||
exp: 30,
|
||||
hp: 42,
|
||||
maxHp: 42,
|
||||
attack: 12,
|
||||
move: 3,
|
||||
stats: { might: 72, intelligence: 50, leadership: 68, agility: 56, luck: 54 },
|
||||
equipment: {
|
||||
weapon: { itemId: 'leader-axe', level: 2, exp: 8 },
|
||||
armor: { itemId: 'lamellar-armor', level: 1, exp: 18 },
|
||||
accessory: { itemId: 'grain-pouch', level: 1, exp: 0 }
|
||||
},
|
||||
x: 20,
|
||||
y: 2
|
||||
}
|
||||
];
|
||||
|
||||
export const firstBattleBonds: BattleBond[] = [
|
||||
{
|
||||
id: 'liu-bei__guan-yu',
|
||||
@@ -868,6 +1222,7 @@ export const firstBattleBonds: BattleBond[] = [
|
||||
];
|
||||
|
||||
export const secondBattleBonds: BattleBond[] = firstBattleBonds.map(cloneBattleBondForScenario);
|
||||
export const thirdBattleBonds: BattleBond[] = firstBattleBonds.map(cloneBattleBondForScenario);
|
||||
|
||||
function placeScenarioUnit(unit: UnitData, position: { x: number; y: number }): UnitData {
|
||||
return {
|
||||
|
||||
Reference in New Issue
Block a user