Refine Yiling vanguard battle flow

This commit is contained in:
2026-07-04 22:49:48 +09:00
parent 1dc2583f6c
commit 18c90673f7
4 changed files with 123 additions and 14 deletions

View File

@@ -10721,6 +10721,15 @@ export class BattleScene extends Phaser.Scene {
this.hideMapMenu();
}
private isPointerOnSidePanel(pointer: Phaser.Input.Pointer) {
return (
pointer.x >= this.layout.panelX &&
pointer.x <= this.layout.panelX + this.layout.panelWidth &&
pointer.y >= this.layout.panelY &&
pointer.y <= this.layout.panelY + this.layout.panelHeight
);
}
private handleLeftClick(pointer: Phaser.Input.Pointer) {
if (this.battleOutcome) {
return;
@@ -10732,6 +10741,9 @@ export class BattleScene extends Phaser.Scene {
}
if (this.phase === 'deployment') {
if (this.isPointerOnSidePanel(pointer)) {
return;
}
const tile = this.pointerToTile(pointer);
if (tile) {
this.handleDeploymentTileClick(tile.x, tile.y);

View File

@@ -1515,14 +1515,30 @@ const sortieRulesByBattleId: Partial<Record<BattleScenarioId, SortieRuleDefiniti
requiredUnitIds: ['liu-bei'],
recommended: [
{ unitId: 'liu-bei', reason: '형주 상실 뒤 이릉으로 향하는 복수전의 주장입니다.' },
{ unitId: 'zhang-fei', reason: '분노를 전열 돌파로 바꾸는 강한 선봉입니다.' },
{ unitId: 'zhao-yun', reason: '강변과 숲길 사이를 빠르게 오가며 늘어진 진영을 보강합니다.' },
{ unitId: 'ma-chao', reason: '오군 기병과 선봉을 맞받아치는 강한 측면 압박 카드입니다.' },
{ unitId: 'zhuge-liang', reason: '육손의 기다림과 화공 위험을 읽어 진영 과열을 막습니다.' },
{ unitId: 'huang-quan', reason: '긴 보급로와 강변 진영을 신중하게 계산하는 참모입니다.' },
{ unitId: 'ma-liang', reason: '형주 상실 뒤 흩어진 잔병과 현지 민심을 다독이는 연결 축입니다.' }
{ unitId: 'zhang-fei', reason: '중앙 숲길을 빠르게 밀어 여는 강한 선봉입니다.' },
{ unitId: 'zhao-yun', reason: '강변과 숲길 사이를 오가며 늘어진 진영을 보강합니다.' },
{ unitId: 'ma-chao', reason: '오군 기병과 동쪽 전초선을 강하게 맞받아칩니다.' },
{ unitId: 'zhuge-liang', reason: '육손의 기다림과 화공 위험을 먼저 읽습니다.' },
{ unitId: 'huang-quan', reason: '긴 보급로와 강변 진영의 안전을 계산합니다.' },
{ unitId: 'ma-liang', reason: '형주 잔병과 현지 민심을 다독이는 연결 축입니다.' }
],
note: '이릉 진격로는 스물두 명 중 일곱 명만 출전합니다. 유비는 필수이며, 복수의 선봉과 보급·화공 대비를 균형 있게 고르는 전투입니다.'
recommendedClasses: [
{ label: '복수전 주장', classKeys: ['lord'], reason: '유비 생존과 후방 진영 유지가 패배 조건을 안정시킵니다.' },
{ label: '숲길 돌파', classKeys: ['infantry', 'spearman'], reason: '중앙 숲길 전초선을 빠르게 밀어야 전선이 늘어지지 않습니다.' },
{ label: '강변 기동', classKeys: ['cavalry'], reason: '강변과 동쪽 전초선 사이의 긴 거리를 빠르게 메웁니다.' },
{ label: '원거리 견제', classKeys: ['archer'], reason: '숲그늘 궁병과 나루 수군을 안전하게 눌러 줍니다.' },
{ label: '보급 판단', classKeys: ['strategist'], reason: '보급점, 나루, 화공 위험을 읽어 다음 전투의 피해를 줄입니다.' }
],
deploymentSlots: [
{ x: 14, y: 36, role: 'reserve', unitId: 'liu-bei', label: '복수전 주장' },
{ x: 16, y: 39, role: 'front', unitId: 'zhang-fei', label: '숲길 선봉' },
{ x: 18, y: 34, role: 'flank', unitId: 'zhao-yun', label: '강변 기동' },
{ x: 23, y: 34, role: 'flank', unitId: 'ma-chao', label: '동쪽 압박' },
{ x: 8, y: 38, role: 'support', unitId: 'zhuge-liang', label: '화공 대비' },
{ x: 8, y: 33, role: 'support', unitId: 'huang-quan', label: '보급 계산' },
{ x: 13, y: 32, role: 'support', unitId: 'ma-liang', label: '잔병 수습' }
],
note: '이릉 진격로는 이기는 것보다 진영을 너무 길게 흩지 않는 것이 핵심입니다. 선봉으로 중앙 숲길을 열고, 기동 병종으로 강변과 동쪽 보급점을 이어 주십시오.'
},
'forty-sixth-battle-yiling-fire': {
maxUnits: 7,