From ccdb4521b2294ab5110f5910de2e12c79955d249 Mon Sep 17 00:00:00 2001 From: jwinterm Date: Sun, 31 May 2026 15:40:26 -0400 Subject: [PATCH] feat(ui): crypto-aware title/favicon + clearer Champions vs Pleb framing MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Footer title and favicon now track the currency: "Monero Roguelike" + the Monero logo favicon on the XMR instance, "Wownero Roguelike" + the existing favicon on WOW (driven by UI.updateGameTitle). - "Choose How to Play" modal: a header explains that paying (credits/entry) puts high scores in the Hall of Champions while free play uses the Pleb leaderboard, and each option now says which board it feeds — on both the no-payout (mainnet) and payout (stagenet) variants. --- html/favicon-monero.png | Bin 0 -> 13945 bytes html/index.html | 6 +++--- html/js/ui/paymentUI.js | 24 +++++++++++++++++------- html/js/ui/ui.js | 8 +++++++- 4 files changed, 27 insertions(+), 11 deletions(-) create mode 100644 html/favicon-monero.png diff --git a/html/favicon-monero.png b/html/favicon-monero.png new file mode 100644 index 0000000000000000000000000000000000000000..4f37d3fa4946297d04ab6d63a1b3ef5195b53885 GIT binary patch literal 13945 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 literal 0 HcmV?d00001 diff --git a/html/index.html b/html/index.html index 639ed8d..9e4b17c 100644 --- a/html/index.html +++ b/html/index.html @@ -3,8 +3,8 @@ Wownerogue - A Wownero Roguelike - - + + @@ -221,7 +221,7 @@ diff --git a/html/js/ui/paymentUI.js b/html/js/ui/paymentUI.js index 03e988a..615101b 100644 --- a/html/js/ui/paymentUI.js +++ b/html/js/ui/paymentUI.js @@ -113,7 +113,17 @@ const PaymentUI = { // Reset selected package this.selectedPackageId = null; - + + // Explain the two leaderboards up front when both paid and free are available. + if (this.config.paymentsEnabled && this.config.freePlayEnabled) { + $container.append( + '
' + + '🏅 Pay (credits or single entry) to put your high scores in the Hall of Champions.
' + + '🪙 Play free — high scores go to the Pleb leaderboard instead.' + + '
' + ); + } + // === SECTION 1: Use existing credits (if available) === if (hasCredits && this.config.creditsModeEnabled) { const creditsPayoutsEnabled = this.config.creditsPayoutsEnabled; @@ -125,9 +135,9 @@ const PaymentUI = { const baseFormatted = this.formatPrice(creditsBaseValue); const escapeWin = (parseFloat(baseFormatted) * creditsMultipliers.escape).toFixed(2); const treasureWin = (parseFloat(baseFormatted) * creditsMultipliers.escapeWithTreasure).toFixed(2); - payoutNote = `💰 Win: ${creditsMultipliers.escape}x (${escapeWin} ${currency}) • Treasure: ${creditsMultipliers.escapeWithTreasure}x (${treasureWin} ${currency})`; + payoutNote = `💰 Win: ${creditsMultipliers.escape}x (${escapeWin} ${currency}) • Treasure: ${creditsMultipliers.escapeWithTreasure}x (${treasureWin} ${currency})
🏅 High scores enter the Hall of Champions`; } else { - payoutNote = 'No crypto payouts • Play for fun'; + payoutNote = '🏅 High scores enter the Hall of Champions'; } $container.append(` @@ -156,9 +166,9 @@ const PaymentUI = { if (directPayoutsEnabled) { const escapeWin = (parseFloat(price) * multipliers.escape).toFixed(2); const treasureWin = (parseFloat(price) * multipliers.escapeWithTreasure).toFixed(2); - payoutInfo = `Win: ${multipliers.escape}x (${escapeWin} ${currency}) • Treasure: ${multipliers.escapeWithTreasure}x (${treasureWin} ${currency})`; + payoutInfo = `Win: ${multipliers.escape}x (${escapeWin} ${currency}) • Treasure: ${multipliers.escapeWithTreasure}x (${treasureWin} ${currency})
🏅 High scores enter the Hall of Champions`; } else { - payoutInfo = 'No crypto payouts'; + payoutInfo = '🏅 High scores enter the Hall of Champions'; } $container.append(` @@ -193,7 +203,7 @@ const PaymentUI = { const treasureWin = (parseFloat(baseFormatted) * creditsMultipliers.escapeWithTreasure).toFixed(2); creditsPayoutInfo = `
💰 Win: ${creditsMultipliers.escape}x (${escapeWin} ${currency}) • Treasure: ${creditsMultipliers.escapeWithTreasure}x (${treasureWin} ${currency})
`; } else { - creditsPayoutInfo = `
No crypto payouts • Play for fun with bulk discount
`; + creditsPayoutInfo = `
🏅 High scores enter the Hall of Champions • bulk discount
`; } let packagesHtml = ''; @@ -264,7 +274,7 @@ const PaymentUI = { // alongside paid (freePlayEnabled). Free games go to the Pleb leaderboard. if (this.config.freePlayEnabled) { const note = this.config.paymentsEnabled - ? 'No payout • Pleb leaderboard' + ? '🪙 Free — high scores go to the Pleb leaderboard' : 'No payments required'; $container.append(`