Refactor: update existing regiment note in-place; remove all regiment notes in one pass

Co-authored-by: Azgaar <26469650+Azgaar@users.noreply.github.com>
This commit is contained in:
copilot-swe-agent[bot] 2026-02-19 14:27:20 +00:00
parent 7fe9d42f9c
commit 80ce9ba7ca

View file

@ -246,12 +246,13 @@ window.Military = (function () {
const expected = 3 * populationRate; // expected regiment size const expected = 3 * populationRate; // expected regiment size
const mergeable = (n0, n1) => (!n0.s && !n1.s) || n0.u === n1.u; // check if regiments can be merged const mergeable = (n0, n1) => (!n0.s && !n1.s) || n0.u === n1.u; // check if regiments can be merged
// remove all existing regiment notes before regenerating
for (let i = notes.length - 1; i >= 0; i--) {
if (notes[i].id.startsWith("regiment")) notes.splice(i, 1);
}
// get regiments for each state // get regiments for each state
valid.forEach(s => { valid.forEach(s => {
// remove outdated regiment notes before regenerating
for (let i = notes.length - 1; i >= 0; i--) {
if (notes[i].id.startsWith(`regiment${s.i}-`)) notes.splice(i, 1);
}
s.military = createRegiments(s.temp.platoons, s); s.military = createRegiments(s.temp.platoons, s);
delete s.temp; // do not store temp data delete s.temp; // do not store temp data
}); });
@ -385,9 +386,13 @@ window.Military = (function () {
const conflict = campaign ? ` during the ${campaign.name}` : ""; const conflict = campaign ? ` during the ${campaign.name}` : "";
const legend = `Regiment was formed in ${year} ${options.era}${conflict}. ${station}${troops}`; const legend = `Regiment was formed in ${year} ${options.era}${conflict}. ${station}${troops}`;
const id = `regiment${s.i}-${r.i}`; const id = `regiment${s.i}-${r.i}`;
const existingIndex = notes.findIndex(n => n.id === id); const existing = notes.find(n => n.id === id);
if (existingIndex !== -1) notes.splice(existingIndex, 1); if (existing) {
notes.push({id, name: r.name, legend}); existing.name = r.name;
existing.legend = legend;
} else {
notes.push({id, name: r.name, legend});
}
}; };
return { return {