Retreats now work as expected

This commit is contained in:
Tyler Marques 2025-03-26 17:05:30 -04:00
parent 34371a40af
commit cae33dd5ba
No known key found for this signature in database
GPG key ID: 7672EFD79378341C
13 changed files with 92 additions and 69 deletions

View file

@ -2,6 +2,7 @@ import { getPowerHexColor } from "../units/create";
import { gameState } from "../gameState";
import { leaderboard } from "../domElements";
import { ProvTypeENUM, PowerENUM } from "../types/map";
import { MeshBasicMaterial } from "three";
export function updateSupplyCenterOwnership(centers) {
@ -98,8 +99,8 @@ export function updateMapOwnership() {
let currentPhase = gameState.gameData?.phases[gameState.phaseIndex]
if (currentPhase === undefined) {
throw "Currentphase is undefined for index " + gameState.phaseIndex;
}
// Clear existing ownership to avoid stale data
for (const key in gameState.boardState.provinces) {
if (gameState.boardState.provinces[key].owner) {
@ -107,7 +108,7 @@ export function updateMapOwnership() {
}
}
for (let powerKey of Object.keys(currentPhase.state.influence)) {
for (let powerKey of Object.keys(currentPhase.state.influence) as Array<keyof typeof PowerENUM>) {
for (let provKey of currentPhase.state.influence[powerKey]) {
const province = gameState.boardState.provinces[provKey];
@ -118,11 +119,11 @@ export function updateMapOwnership() {
if (province.owner) {
let powerColor = getPowerHexColor(province.owner);
let powerColorHex = parseInt(powerColor.substring(1), 16);
province.mesh?.material.color.setHex(powerColorHex);
(province.mesh?.material as MeshBasicMaterial).color.setHex(powerColorHex);
} else if (province.owner === undefined && province.mesh !== undefined) {
let powerColor = getPowerHexColor(undefined);
let powerColorHex = parseInt(powerColor.substring(1), 16);
province.mesh.material.color.setHex(powerColorHex)
(province.mesh.material as MeshBasicMaterial).color.setHex(powerColorHex)
}
}
}

View file

@ -1,6 +1,6 @@
import { gameState } from "../gameState";
export function getProvincePosition(loc) {
export function getProvincePosition(loc: string) {
// Convert e.g. "Spa/sc" to "SPA_SC" if needed
const normalized = loc.toUpperCase().replace('/', '_');
const base = normalized.split('_')[0];