feat: add transcendence and apotheosis badges to public profile

- PublicProfileResponse now includes transcendenceCount and apotheosisCount
- ProfileSettings adds showTranscendence and showApotheosis toggles (both on by default)
- Profile page displays ✨ Apotheosis, 🌌 Transcendence, and ⭐ Prestige badges in that order
- EditProfileModal exposes the two new visibility toggles under Current Run settings
- Styled to match the resource bar badges (gold for apotheosis, purple for transcendence)
This commit is contained in:
2026-03-07 02:39:59 -08:00
committed by Naomi Carrigan
parent a6f9844120
commit cb8e83377a
6 changed files with 47 additions and 0 deletions
@@ -17,6 +17,8 @@ interface StatToggle {
const CURRENT_RUN_TOGGLES: StatToggle[] = [
{ key: "showCurrentGold", label: "Gold Earned This Run", icon: "πŸͺ™" },
{ key: "showCurrentClicks", label: "Clicks This Run", icon: "πŸ‘†" },
{ key: "showApotheosis", label: "Apotheosis Badge", icon: "✨" },
{ key: "showTranscendence", label: "Transcendence Badge", icon: "🌌" },
{ key: "showPrestige", label: "Prestige Level", icon: "⭐" },
{ key: "showBossesDefeated", label: "Bosses Defeated", icon: "πŸ’€" },
{ key: "showQuestsCompleted", label: "Quests Completed", icon: "πŸ“œ" },
@@ -179,6 +179,16 @@ export const ProfilePage = ({ discordId }: ProfilePageProps): React.JSX.Element
<div className="profile-identity">
<h1 className="profile-character-name">{profile.characterName}</h1>
<p className="profile-username">@{profile.username}</p>
{s.showApotheosis && profile.apotheosisCount > 0 && (
<span className="profile-apotheosis-badge">
✨ Apotheosis {profile.apotheosisCount}
</span>
)}
{s.showTranscendence && profile.transcendenceCount > 0 && (
<span className="profile-transcendence-badge">
🌌 Transcendence {profile.transcendenceCount}
</span>
)}
{s.showPrestige && profile.prestigeCount > 0 && (
<span className="profile-prestige-badge">
⭐ Prestige {profile.prestigeCount}
+21
View File
@@ -1466,6 +1466,27 @@ body {
margin: 0;
}
.profile-apotheosis-badge {
background: linear-gradient(135deg, rgba(120, 53, 15, 0.2), rgba(217, 119, 6, 0.2));
border: 1px solid rgba(217, 119, 6, 0.5);
border-radius: 1rem;
color: #fbbf24;
font-size: 0.8rem;
font-weight: 700;
padding: 0.2rem 0.6rem;
width: fit-content;
}
.profile-transcendence-badge {
background: rgba(124, 58, 237, 0.15);
border: 1px solid rgba(124, 58, 237, 0.4);
border-radius: 1rem;
color: #a78bfa;
font-size: 0.8rem;
padding: 0.2rem 0.6rem;
width: fit-content;
}
.profile-prestige-badge {
background: rgba(255, 215, 0, 0.15);
border: 1px solid rgba(255, 215, 0, 0.4);