fix: build + lint

This commit is contained in:
Marc Emmanuel 2026-02-22 17:39:05 +01:00
parent 3f282c74d0
commit 781d99ae10
2 changed files with 30 additions and 33 deletions

View file

@ -15,7 +15,7 @@ declare global {
var Military: MilitaryModule; var Military: MilitaryModule;
} }
interface MilitaryRegiment { export interface MilitaryRegiment {
i: number; i: number;
t: number; // total troops t: number; // total troops
name: string; name: string;
@ -32,6 +32,7 @@ interface MilitaryRegiment {
icon?: string; icon?: string;
children?: MilitaryRegiment[]; // merged regiments children?: MilitaryRegiment[]; // merged regiments
state: number; state: number;
angle?: number;
} }
interface Platoon { interface Platoon {
@ -487,7 +488,7 @@ class MilitaryModule {
for (let i = notes.length - 1; i >= 0; i--) { for (let i = notes.length - 1; i >= 0; i--) {
if (notes[i].id.startsWith("regiment")) notes.splice(i, 1); 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) => {
s.military = createRegiments(s.temp.platoons, s); s.military = createRegiments(s.temp.platoons, s);
@ -601,12 +602,12 @@ class MilitaryModule {
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 existing = notes.find(n => n.id === id); const existing = notes.find((n) => n.id === id);
if (existing) { if (existing) {
existing.name = r.name; existing.name = r.name;
existing.legend = legend; existing.legend = legend;
} else { } else {
notes.push({id, name: r.name, legend}); notes.push({ id, name: r.name, legend });
} }
} }

View file

@ -1,24 +1,13 @@
import { color, easeSinInOut, transition } from "d3"; import { color, easeSinInOut, transition } from "d3";
import type { MilitaryRegiment } from "../modules/military-generator";
import { rn } from "../utils"; import { rn } from "../utils";
interface Regiment {
i: number;
name: string;
x: number;
y: number;
n?: number;
angle?: number;
icon: string;
state: number;
}
declare global { declare global {
var drawMilitary: () => void; var drawMilitary: () => void;
var drawRegiments: (regiments: Regiment[], stateId: number) => void; var drawRegiments: (regiments: MilitaryRegiment[], stateId: number) => void;
var drawRegiment: (reg: Regiment, stateId: number) => void; var drawRegiment: (reg: MilitaryRegiment, stateId: number) => void;
var moveRegiment: (reg: Regiment, x: number, y: number) => void; var moveRegiment: (reg: MilitaryRegiment, x: number, y: number) => void;
var armies: import("d3").Selection<SVGGElement, unknown, null, undefined>; var armies: import("d3").Selection<SVGGElement, unknown, null, undefined>;
var Military: { getTotal: (reg: Regiment) => number };
} }
const militaryRenderer = (): void => { const militaryRenderer = (): void => {
@ -34,12 +23,15 @@ const militaryRenderer = (): void => {
TIME && console.timeEnd("drawMilitary"); TIME && console.timeEnd("drawMilitary");
}; };
const drawRegimentsRenderer = (regiments: Regiment[], s: number): void => { const drawRegimentsRenderer = (
regiments: MilitaryRegiment[],
s: number,
): void => {
const size = +armies.attr("box-size"); const size = +armies.attr("box-size");
const w = (d: Regiment) => (d.n ? size * 4 : size * 6); const w = (d: MilitaryRegiment) => (d.n ? size * 4 : size * 6);
const h = size * 2; const h = size * 2;
const x = (d: Regiment) => rn(d.x - w(d) / 2, 2); const x = (d: MilitaryRegiment) => rn(d.x - w(d) / 2, 2);
const y = (d: Regiment) => rn(d.y - size, 2); const y = (d: MilitaryRegiment) => rn(d.y - size, 2);
const stateColor = pack.states[s]?.color; const stateColor = pack.states[s]?.color;
const baseColor = stateColor && stateColor[0] === "#" ? stateColor : "#999"; const baseColor = stateColor && stateColor[0] === "#" ? stateColor : "#999";
@ -83,9 +75,9 @@ const drawRegimentsRenderer = (regiments: Regiment[], s: number): void => {
.attr("x", (d) => x(d) - size) .attr("x", (d) => x(d) - size)
.attr("y", (d) => d.y) .attr("y", (d) => d.y)
.text((d) => .text((d) =>
d.icon.startsWith("http") || d.icon.startsWith("data:image") d.icon!.startsWith("http") || d.icon!.startsWith("data:image")
? "" ? ""
: d.icon, : d.icon!,
); );
g.append("image") g.append("image")
.attr("class", "regimentImage") .attr("class", "regimentImage")
@ -94,13 +86,13 @@ const drawRegimentsRenderer = (regiments: Regiment[], s: number): void => {
.attr("height", h) .attr("height", h)
.attr("width", h) .attr("width", h)
.attr("href", (d) => .attr("href", (d) =>
d.icon.startsWith("http") || d.icon.startsWith("data:image") d.icon!.startsWith("http") || d.icon!.startsWith("data:image")
? d.icon ? d.icon!
: "", : "",
); );
}; };
const drawRegimentRenderer = (reg: Regiment, stateId: number): void => { const drawRegimentRenderer = (reg: MilitaryRegiment, stateId: number): void => {
const size = +armies.attr("box-size"); const size = +armies.attr("box-size");
const w = reg.n ? size * 4 : size * 6; const w = reg.n ? size * 4 : size * 6;
const h = size * 2; const h = size * 2;
@ -149,9 +141,9 @@ const drawRegimentRenderer = (reg: Regiment, stateId: number): void => {
.attr("x", x1 - size) .attr("x", x1 - size)
.attr("y", reg.y) .attr("y", reg.y)
.text( .text(
reg.icon.startsWith("http") || reg.icon.startsWith("data:image") reg.icon!.startsWith("http") || reg.icon!.startsWith("data:image")
? "" ? ""
: reg.icon, : reg.icon!,
); );
g.append("image") g.append("image")
.attr("class", "regimentImage") .attr("class", "regimentImage")
@ -161,14 +153,18 @@ const drawRegimentRenderer = (reg: Regiment, stateId: number): void => {
.attr("width", h) .attr("width", h)
.attr( .attr(
"href", "href",
reg.icon.startsWith("http") || reg.icon.startsWith("data:image") reg.icon!.startsWith("http") || reg.icon!.startsWith("data:image")
? reg.icon ? reg.icon!
: "", : "",
); );
}; };
// move one regiment to another // move one regiment to another
const moveRegimentRenderer = (reg: Regiment, x: number, y: number): void => { const moveRegimentRenderer = (
reg: MilitaryRegiment,
x: number,
y: number,
): void => {
const el = armies const el = armies
.select(`g#army${reg.state}`) .select(`g#army${reg.state}`)
.select(`g#regiment${reg.state}-${reg.i}`); .select(`g#regiment${reg.state}-${reg.i}`);