Add Xu Province recruit sortie flow

This commit is contained in:
2026-06-23 01:07:17 +09:00
parent 87b200d772
commit 6b863882aa
7 changed files with 330 additions and 33 deletions

View File

@@ -1,6 +1,16 @@
export type TerrainType = 'plain' | 'road' | 'forest' | 'hill' | 'village' | 'fort' | 'camp' | 'river' | 'cliff';
export type UnitClassKey = 'lord' | 'infantry' | 'cavalry' | 'spearman' | 'archer' | 'bandit' | 'yellowTurban' | 'rebelLeader';
export type UnitClassKey =
| 'lord'
| 'infantry'
| 'cavalry'
| 'spearman'
| 'archer'
| 'strategist'
| 'quartermaster'
| 'bandit'
| 'yellowTurban'
| 'rebelLeader';
export type TerrainRule = {
label: string;
@@ -140,6 +150,54 @@ export const unitClasses: Record<UnitClassKey, UnitClassDefinition> = {
hill: 1
}
},
strategist: {
key: 'strategist',
name: '책사',
family: '책사계',
role: '책략 / 보조',
description: '직접 전투력은 낮지만 책략과 지휘 보조로 전장의 흐름을 바꾸는 병과.',
terrainRatings: {
plain: 95,
road: 100,
forest: 95,
hill: 105,
village: 110,
fort: 115,
camp: 115,
river: 0,
cliff: 0
},
movementCosts: {
hill: 1,
village: 1,
fort: 1,
camp: 1
}
},
quartermaster: {
key: 'quartermaster',
name: '군량관',
family: '보급계',
role: '회복 / 보급',
description: '군량과 보급로를 관리해 장기전에 강하고 마을과 진영에서 안정적인 병과.',
terrainRatings: {
plain: 95,
road: 105,
forest: 90,
hill: 90,
village: 115,
fort: 105,
camp: 120,
river: 0,
cliff: 0
},
movementCosts: {
road: 1,
village: 1,
fort: 1,
camp: 1
}
},
bandit: {
key: 'bandit',
name: '도적',

View File

@@ -2566,6 +2566,51 @@ export const seventhBattleUnits: UnitData[] = [
}
];
export const xuzhouRecruitUnits: UnitData[] = [
{
id: 'jian-yong',
name: '간옹',
faction: 'ally',
className: '책사',
classKey: 'strategist',
level: 4,
exp: 12,
hp: 26,
maxHp: 26,
attack: 7,
move: 4,
stats: { might: 42, intelligence: 78, leadership: 66, agility: 64, luck: 72 },
equipment: {
weapon: { itemId: 'training-sword', level: 1, exp: 8 },
armor: { itemId: 'cloth-armor', level: 1, exp: 6 },
accessory: { itemId: 'war-manual', level: 1, exp: 0 }
},
x: 3,
y: 17
},
{
id: 'mi-zhu',
name: '미축',
faction: 'ally',
className: '군량관',
classKey: 'quartermaster',
level: 4,
exp: 8,
hp: 28,
maxHp: 28,
attack: 7,
move: 4,
stats: { might: 40, intelligence: 74, leadership: 70, agility: 58, luck: 82 },
equipment: {
weapon: { itemId: 'training-sword', level: 1, exp: 6 },
armor: { itemId: 'cloth-armor', level: 1, exp: 6 },
accessory: { itemId: 'grain-pouch', level: 1, exp: 0 }
},
x: 4,
y: 17
}
];
export const firstBattleBonds: BattleBond[] = [
{
id: 'liu-bei__guan-yu',
@@ -2593,6 +2638,25 @@ export const firstBattleBonds: BattleBond[] = [
}
];
export const xuzhouRecruitBonds: BattleBond[] = [
{
id: 'liu-bei__jian-yong',
unitIds: ['liu-bei', 'jian-yong'],
title: '오랜 벗',
level: 48,
exp: 0,
description: '간옹은 유비가 흔들릴 때 현실적인 말로 길을 정리해 주는 오랜 벗이다.'
},
{
id: 'liu-bei__mi-zhu',
unitIds: ['liu-bei', 'mi-zhu'],
title: '서주 후원',
level: 42,
exp: 0,
description: '미축은 서주의 민심과 군량을 묶어 유비군이 오래 버틸 수 있게 돕는다.'
}
];
export const secondBattleBonds: BattleBond[] = firstBattleBonds.map(cloneBattleBondForScenario);
export const thirdBattleBonds: BattleBond[] = firstBattleBonds.map(cloneBattleBondForScenario);
export const fourthBattleBonds: BattleBond[] = firstBattleBonds.map(cloneBattleBondForScenario);