diff --git a/ai_animation/src/phase.ts b/ai_animation/src/phase.ts index 58ea6fa..a5ec6e0 100644 --- a/ai_animation/src/phase.ts +++ b/ai_animation/src/phase.ts @@ -43,10 +43,6 @@ export function displayPhase(skipMessages = false) { }, 300); } - // Clear existing units except supply centers - const supplyCenters = gameState.unitMeshes.filter(m => m.userData && m.userData.isSupplyCenter); - const oldUnits = gameState.unitMeshes.filter(m => m.userData && !m.userData.isSupplyCenter); - // Update supply centers if (currentPhase.state?.centers) { updateSupplyCenterOwnership(currentPhase.state.centers); @@ -188,5 +184,5 @@ function moveToNextPhase() { } // Display the next phase and start showing its messages - displayPhaseWithAnimation(gameState.phaseIndex); + displayPhaseWithAnimation(); } diff --git a/ai_animation/src/units/create.ts b/ai_animation/src/units/create.ts index cb2d671..4424c1c 100644 --- a/ai_animation/src/units/create.ts +++ b/ai_animation/src/units/create.ts @@ -70,7 +70,7 @@ function createFleet(color: string): THREE.Group { return group } -export function createSupplyCenters(): THREE.Group[] { +export function createSupplyCenters() { let supplyCenterMeshes: THREE.Group[] = []; if (!gameState.boardState || !gameState.boardState.provinces) throw new Error("Game not initialized, cannot create SCs"); for (const [province, data] of Object.entries(gameState.boardState.provinces)) { @@ -118,10 +118,9 @@ export function createSupplyCenters(): THREE.Group[] { const pos = getProvincePosition(gameState.boardState, province); scGroup.position.set(pos.x, 2, pos.z); - supplyCenterMeshes.push(scGroup) + gameState.scene.add(scGroup) } } - return supplyCenterMeshes } export function createUnitMesh(unitData: UnitData): THREE.Group { const color = getPowerHexColor(unitData.power); @@ -148,6 +147,8 @@ export function createUnitMesh(unitData: UnitData): THREE.Group { export function initUnits() { + + createSupplyCenters() for (const [power, unitArr] of Object.entries(gameState.gameData.phases[0].state.units)) { unitArr.forEach(unitStr => { const match = unitStr.match(/^([AF])\s+(.+)$/);