fix Leaderboards showing Bringer from previous weeks

This commit is contained in:
Nuno Duque Nunes 2026-06-22 05:57:04 +01:00
parent 78504b9f39
commit 8155722440
2 changed files with 12 additions and 11 deletions

View file

@ -15,7 +15,7 @@
*/ */
import { Character, Nation } from "@types"; import { Character, Nation } from "@types";
import { WRankEntry } from "@systems/wrank"; import { WRankEntry, WRankWeek } from "@systems/wrank";
import { Bringer } from "@systems/bringer"; import { Bringer } from "@systems/bringer";
import { Leaves } from "@systems/leaves"; import { Leaves } from "@systems/leaves";
import { Emoji } from "@systems/emojis"; import { Emoji } from "@systems/emojis";
@ -61,10 +61,10 @@
/** /**
* Bringer indicator returns " · {bringer emoji}" if char is Bringer. * Bringer indicator returns " · {bringer emoji}" if char is Bringer.
*/ */
bringer(char: Character): string { bringer(char: Character, week?: WRankWeek): string {
const bringer = Bringer.get({ nation: char.nation }); const bringer = Bringer.get({ nation: char.nation, week });
return bringer === char.name ? ` · ${format.bringer(char.nation)}` : ""; return bringer === char.name ? ` · ${format.bringer(char.nation)}` : "";
}, },
/** /**
* Cockroach indicator returns " {cockroach}{count}" if char left that TG. * Cockroach indicator returns " {cockroach}{count}" if char left that TG.
@ -78,8 +78,8 @@
/** /**
* All indicators combined bringer + cockroach. * All indicators combined bringer + cockroach.
*/ */
indicators(char: Character, opts: { historyKey?: TGKey } = {}): string { indicators(char: Character, opts: { historyKey?: TGKey; week?: WRankWeek } = {}): string {
return Layout.bringer(char) + Layout.cockroach(char, opts.historyKey); return Layout.bringer(char, opts.week) + Layout.cockroach(char, opts.historyKey);
}, },
/** /**

View file

@ -42,7 +42,8 @@
allTgs: string[], allTgs: string[],
allAtks: string[], allAtks: string[],
allDefs: string[], allDefs: string[],
allHeals: string[] allHeals: string[],
week: WRankWeek
): string { ): string {
const char = row.character; const char = row.character;
const goal = Config.get({ section: "wrank", key: "goal" }); const goal = Config.get({ section: "wrank", key: "goal" });
@ -65,7 +66,7 @@
rank: row.position ? formatRankOnly(row.position.currentRank, goalMet) : "—", rank: row.position ? formatRankOnly(row.position.currentRank, goalMet) : "—",
class: Emoji.class(classKey) || classKey || "?", class: Emoji.class(classKey) || classKey || "?",
name: TextAlign.padToMax(char.name, allNames), name: TextAlign.padToMax(char.name, allNames),
indicators: Layout.indicators(char as any), indicators: Layout.indicators(char as any, { week }),
score: `${scoreEmoji} ${TextAlign.gap(4)}${TextAlign.padToMax(scoreText, scoreColumn)}`, score: `${scoreEmoji} ${TextAlign.gap(4)}${TextAlign.padToMax(scoreText, scoreColumn)}`,
kd: TextAlign.gap(KD_GAP) + TextAlign.padToMax(kdText, kdColumn), kd: TextAlign.gap(KD_GAP) + TextAlign.padToMax(kdText, kdColumn),
tgs: TextAlign.gap(TGS_GAP) + TextAlign.padLeftToMax(tgText, tgsColumn), tgs: TextAlign.gap(TGS_GAP) + TextAlign.padLeftToMax(tgText, tgsColumn),
@ -119,8 +120,8 @@
const capellaEmoji = Emoji.get("capella"); const capellaEmoji = Emoji.get("capella");
const procyonEmoji = Emoji.get("procyon"); const procyonEmoji = Emoji.get("procyon");
const capellaFormatted = sortedCapella.map((r) => formatRow(r, capContext, capellaNames, capellaScores, capellaKds, capellaTgs, capellaAtks, capellaDefs, capellaHeals)); const capellaFormatted = sortedCapella.map((r) => formatRow(r, capContext, capellaNames, capellaScores, capellaKds, capellaTgs, capellaAtks, capellaDefs, capellaHeals, week));
const procyonFormatted = sortedProcyon.map((r) => formatRow(r, proContext, procyonNames, procyonScores, procyonKds, procyonTgs, procyonAtks, procyonDefs, procyonHeals)); const procyonFormatted = sortedProcyon.map((r) => formatRow(r, proContext, procyonNames, procyonScores, procyonKds, procyonTgs, procyonAtks, procyonDefs, procyonHeals, week));
const embed = new EmbedBuilder() const embed = new EmbedBuilder()
.setTitle(`🏆 Weekly Leaderboard — ${week.weekKey}`) .setTitle(`🏆 Weekly Leaderboard — ${week.weekKey}`)