diff --git a/src/ui/leaderboard/layouts/horizontal-sequential-extra-stats.ts b/src/ui/leaderboard/layouts/horizontal-sequential-extra-stats.ts index 0d73094..4c87cd5 100644 --- a/src/ui/leaderboard/layouts/horizontal-sequential-extra-stats.ts +++ b/src/ui/leaderboard/layouts/horizontal-sequential-extra-stats.ts @@ -36,7 +36,7 @@ function formatRow( row: LeaderboardRow, context: NationContext, - allNames: string[], + allNameBlocks: string[], allScores: string[], allKds: string[], allTgs: string[], @@ -62,12 +62,17 @@ const kdColumn = [...allKds, ...allDefs]; 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 = { rank: row.position ? formatRankOnly(row.position.currentRank, goalMet) : "—", class: Emoji.class(classKey) || classKey || "?", - name: TextAlign.padToMax(char.name, allNames), - indicators: Layout.indicators(char as any, { week }), - score: `${scoreEmoji} ${TextAlign.gap(4)}${TextAlign.padToMax(scoreText, scoreColumn)}`, + name: paddedBlock, + indicators: cockroach, + score: `${scoreEmoji} ${TextAlign.padToMax(scoreText, scoreColumn)}`, kd: TextAlign.gap(KD_GAP) + TextAlign.padToMax(kdText, kdColumn), tgs: TextAlign.gap(TGS_GAP) + TextAlign.padLeftToMax(tgText, tgsColumn), }; @@ -97,8 +102,8 @@ const sortedCapella = [...capellaRows].sort(sortByPts); const sortedProcyon = [...procyonRows].sort(sortByPts); - const capellaNames = sortedCapella.map((r) => r.character.name); - const procyonNames = sortedProcyon.map((r) => r.character.name); + const capellaNameBlocks = sortedCapella.map((r) => `${r.character.name}${Layout.bringer(r.character as any, week)}`); + 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 procyonScores = sortedProcyon.map((r) => format.scoreBold(r.weeklyPts)); 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 procyonEmoji = Emoji.get("procyon"); - 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, 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, procyonNameBlocks, procyonScores, procyonKds, procyonTgs, procyonAtks, procyonDefs, procyonHeals, week)); const embed = new EmbedBuilder() .setTitle(`🏆 Weekly Leaderboard — ${week.weekKey}`)