From 3d266beae035eb80dca6883861ec6189440dbd85 Mon Sep 17 00:00:00 2001 From: NewHappyRabbit <31893343+NewHappyRabbit@users.noreply.github.com> Date: Mon, 17 Feb 2025 22:34:44 +0200 Subject: [PATCH] Leaderboard can now be hidden and shown on both desktop and mobile --- src/client/graphics/layers/Leaderboard.ts | 81 ++++++++++++++++++----- 1 file changed, 65 insertions(+), 16 deletions(-) diff --git a/src/client/graphics/layers/Leaderboard.ts b/src/client/graphics/layers/Leaderboard.ts index 4fe61133e..0024612e9 100644 --- a/src/client/graphics/layers/Leaderboard.ts +++ b/src/client/graphics/layers/Leaderboard.ts @@ -29,11 +29,12 @@ export class Leaderboard extends LitElement implements Layer { init() {} tick() { - if (this._hidden && !this.game.inSpawnPhase()) { + if (!this._shownOnInit && !this.game.inSpawnPhase()) { + this._shownOnInit = true; this.showLeaderboard(); this.updateLeaderboard(); } - if (this._hidden) { + if (this._leaderboardHidden) { return; } @@ -158,32 +159,75 @@ export class Leaderboard extends LitElement implements Layer { .hidden { display: none !important; } + .leaderboard-button { + position: fixed; + left: 10px; + top: 10px; + z-index: 9999; + background-color: rgb(31 41 55 / 0.7); + color: white; + border: none; + border-radius: 4px; + padding: 5px 10px; + cursor: pointer; + } + + .leaderboard-close-button { + background: none; + border: none; + color: white; + font-weight: bold; + position: absolute; + right: 0px; + top: 0px; + cursor: pointer; + font-size: 1.1rem; + } + @media (max-width: 1000px) { .leaderboard { - display: none !important; + width: 100vw; + max-width: 100vw; + left: 50%; + transform: translateX(-50%); + top: 60px; + padding: 20px 0px 0px 0px; + } + + .leaderboard-button { + left: 0px; + top: 52px; } } `; players: Entry[] = []; - // createRenderRoot() { - // return this; - // } @state() - private _hidden = true; + private _leaderboardHidden = true; + + private _shownOnInit = false; render() { - // return html` - //
- // Test Tailwind - //
- // `; return html` +
e.preventDefault()} > + @@ -213,18 +257,23 @@ export class Leaderboard extends LitElement implements Layer { `; } + toggleLeaderboard() { + this._leaderboardHidden = !this._leaderboardHidden; + this.requestUpdate(); + } + hideLeaderboard() { - this._hidden = true; + this._leaderboardHidden = true; this.requestUpdate(); } showLeaderboard() { - this._hidden = false; + this._leaderboardHidden = false; this.requestUpdate(); } get isVisible() { - return !this._hidden; + return !this._leaderboardHidden; } }