place Bringer icon next to name in Leaderboard:sequential-extra-stats
This commit is contained in:
parent
1e0c0c7344
commit
2502b9e70b
1 changed files with 13 additions and 8 deletions
|
|
@ -36,7 +36,7 @@
|
||||||
function formatRow(
|
function formatRow(
|
||||||
row: LeaderboardRow,
|
row: LeaderboardRow,
|
||||||
context: NationContext,
|
context: NationContext,
|
||||||
allNames: string[],
|
allNameBlocks: string[],
|
||||||
allScores: string[],
|
allScores: string[],
|
||||||
allKds: string[],
|
allKds: string[],
|
||||||
allTgs: string[],
|
allTgs: string[],
|
||||||
|
|
@ -62,12 +62,17 @@
|
||||||
const kdColumn = [...allKds, ...allDefs];
|
const kdColumn = [...allKds, ...allDefs];
|
||||||
const tgsColumn = [...allTgs, ...allHeals];
|
const tgsColumn = [...allTgs, ...allHeals];
|
||||||
|
|
||||||
|
const bringerTag = Layout.bringer(char as any, week);
|
||||||
|
const nameBlock = `${char.name}${bringerTag}`;
|
||||||
|
const paddedBlock = TextAlign.padToMax(nameBlock, allNameBlocks);
|
||||||
|
const cockroach = Layout.cockroach(char as any);
|
||||||
|
|
||||||
const tokens: Record<string, string> = {
|
const tokens: Record<string, string> = {
|
||||||
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: paddedBlock,
|
||||||
indicators: Layout.indicators(char as any, { week }),
|
indicators: cockroach,
|
||||||
score: `${scoreEmoji} ${TextAlign.gap(4)}${TextAlign.padToMax(scoreText, scoreColumn)}`,
|
score: `${scoreEmoji} ${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),
|
||||||
};
|
};
|
||||||
|
|
@ -97,8 +102,8 @@
|
||||||
const sortedCapella = [...capellaRows].sort(sortByPts);
|
const sortedCapella = [...capellaRows].sort(sortByPts);
|
||||||
const sortedProcyon = [...procyonRows].sort(sortByPts);
|
const sortedProcyon = [...procyonRows].sort(sortByPts);
|
||||||
|
|
||||||
const capellaNames = sortedCapella.map((r) => r.character.name);
|
const capellaNameBlocks = sortedCapella.map((r) => `${r.character.name}${Layout.bringer(r.character as any, week)}`);
|
||||||
const procyonNames = sortedProcyon.map((r) => r.character.name);
|
const procyonNameBlocks = sortedProcyon.map((r) => `${r.character.name}${Layout.bringer(r.character as any, week)}`);
|
||||||
const capellaScores = sortedCapella.map((r) => format.scoreBold(r.weeklyPts));
|
const capellaScores = sortedCapella.map((r) => format.scoreBold(r.weeklyPts));
|
||||||
const procyonScores = sortedProcyon.map((r) => format.scoreBold(r.weeklyPts));
|
const procyonScores = sortedProcyon.map((r) => format.scoreBold(r.weeklyPts));
|
||||||
const capellaKds = sortedCapella.map((r) => (r.totalKills || r.totalDeaths) ? format.kd(r.totalKills, r.totalDeaths) : "—");
|
const capellaKds = sortedCapella.map((r) => (r.totalKills || r.totalDeaths) ? format.kd(r.totalKills, r.totalDeaths) : "—");
|
||||||
|
|
@ -120,8 +125,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, week));
|
const capellaFormatted = sortedCapella.map((r) => formatRow(r, capContext, capellaNameBlocks, capellaScores, capellaKds, capellaTgs, capellaAtks, capellaDefs, capellaHeals, week));
|
||||||
const procyonFormatted = sortedProcyon.map((r) => formatRow(r, proContext, procyonNames, procyonScores, procyonKds, procyonTgs, procyonAtks, procyonDefs, procyonHeals, week));
|
const procyonFormatted = sortedProcyon.map((r) => formatRow(r, proContext, procyonNameBlocks, 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}`)
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue