refacto: Changing click cooldown to daily actions for users and teams
This commit is contained in:
@@ -122,3 +122,35 @@ export function computeTeamElementBonus(team, rows, elementWorth) {
|
||||
}
|
||||
return bonus;
|
||||
}
|
||||
|
||||
// ── Military power computation ────────────────────────────────────────────────
|
||||
|
||||
const POP_LABEL_TO_KEY = new Map([
|
||||
["Humains", "humans"],
|
||||
["Presque'humains", "near"],
|
||||
["Aliens", "aliens"],
|
||||
]);
|
||||
|
||||
/**
|
||||
* Compute total military power (in billions) for a team from DB grid rows.
|
||||
*
|
||||
* @param {string} team - "blue" or "red"
|
||||
* @param {Array<{ has_planet: boolean, planet_json: object|null, discovered_by: string }>} rows
|
||||
* @param {object} militaryPower - { humans: 10, near: 5, aliens: 1 }
|
||||
* @returns {number} military power in billions
|
||||
*/
|
||||
export function computeTeamMilitaryPower(team, rows, militaryPower) {
|
||||
let total = 0;
|
||||
for (const row of rows) {
|
||||
if (row.discovered_by !== team) continue;
|
||||
if (!row.has_planet || !row.planet_json) continue;
|
||||
const pop = row.planet_json.population;
|
||||
if (!pop) continue;
|
||||
const key = POP_LABEL_TO_KEY.get(pop.majority);
|
||||
if (!key) continue;
|
||||
const pct = militaryPower?.[key] ?? 0;
|
||||
if (pct === 0) continue;
|
||||
total += pop.billions * pct / 100;
|
||||
}
|
||||
return total;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user