fix: restore ref map hover details and title

This commit is contained in:
2026-08-12 15:44:49 +00:00
parent 8e0bd92401
commit 0b0f46dbf3
4 changed files with 324 additions and 30 deletions
+23
View File
@@ -10,6 +10,11 @@ export type BaseMapResult = {
startYear: number;
year: number;
month: number;
techLevelLimit: {
maxLevel: number;
initialLevel: number;
increaseYears: number;
};
cityList: MapCityCompact[];
nationList: MapNationCompact[];
};
@@ -64,6 +69,23 @@ const readState = (meta: Record<string, unknown>): number => {
return 0;
};
const readPositiveInteger = (value: unknown, fallback: number): number => {
if (typeof value !== 'number' || !Number.isFinite(value)) {
return fallback;
}
const normalized = Math.floor(value);
return normalized > 0 ? normalized : fallback;
};
const resolveTechLevelLimit = (worldState: WorldStateRow): BaseMapResult['techLevelLimit'] => {
const constValues = asRecord(asRecord(worldState.config).const);
return {
maxLevel: readPositiveInteger(constValues.maxTechLevel, 12),
initialLevel: readPositiveInteger(constValues.initialAllowedTechLevel, 1),
increaseYears: readPositiveInteger(constValues.techLevelIncYear, 5),
};
};
const normalizeNumberRecord = (value: unknown): Record<number, number> => {
if (!isRecord(value)) {
return {};
@@ -180,6 +202,7 @@ const loadBaseMap = async (
startYear: resolveStartYear(worldState),
year: worldState.currentYear,
month: worldState.currentMonth,
techLevelLimit: resolveTechLevelLimit(worldState),
cityList,
nationList,
};