From c96bb56a53c7de77b3cc1f3d015a1a246d9426ae Mon Sep 17 00:00:00 2001 From: SmhMyHead <191356399+SmhMyHead@users.noreply.github.com> Date: Mon, 2 Jun 2025 18:40:41 +0200 Subject: [PATCH] [UI/UIX] Legendary UP Gacha timer --- public/images/egg/gacha_legendary.png | Bin 2015 -> 5016 bytes src/ui/egg-gacha-ui-handler.ts | 45 ++++++++++++++++++++++++++ 2 files changed, 45 insertions(+) diff --git a/public/images/egg/gacha_legendary.png b/public/images/egg/gacha_legendary.png index 8cd6fa38e295fcfb306a6ffbdb017bb1f101eeba..cc6639ef7701bed02d4cb7f5ba014d4ac900230b 100644 GIT binary patch literal 5016 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 delta 2002 zcmV;@2QB!RC*Kc{BYy{`Nkl#N^;PkIUgU`*94LA6~!_kVIb>+4*o&u4ml+l`%p ze`b>F7>0KqKXf0eut`f$?f6~4INSNW_4$)*uDJDOw!i4y^x!`;$#oQD;{54vKY0+^ zB3NA$mS8mE$B=G^i?g{*;RqmUhPJGxKdiM)U@G@W7T+ubOn?9;z!CJ(FMb|=V;Ra} zA%w8?&^ibpMSoaXS!ut0?V5!sm-g1ymZQNH;|8m6{Oa@b7Ni6kJI|k^`0kAxK?JMi zdzPSj@vG0zhch!X7NjK3%*=!{Gc#f7(xvdTM^r&*Td}GoDgCYn0&$)Ldb05+qiW%tpD~` zM}D4G?0@%a?>3v>pa>Hn*~KsG@NL|>d+2-7*9QqyN9Mk$eN?TdTU%ST z-Db0Wb$vZF8jVn|*ETP_<@W8wmoNIMIca{k*}1te=m87U-e~fuRbf|_mpfBnKk*o*QJ`MUqv zpP&Fzo)AXjLCktOJT91{vcD`Iz3%l5=l#tIAe9JW_jH&<5z!px1b31L6$FqGm=2Rj z8_lAFnKo!*h5(Ma>B-}7?xzO_Cw~gYNv6!AqYeTne2Fd_g;0BC%^di&iZ73U;I)`cL*RAc7O3--;Lnu zsj1Z05s&6iKmD}w@e?-$aLghY|NNs@UP*jL2~;`<;44FRN7`bABU7*`I0 zzyKDerY(X1GHkV3YXAZWAb6RV;8^?NX-7do009#6L}*fp zZ*K3!&JeR#@GC(;0LR=yeSbcL)|W&3`DbIN-8!4|iBrWE0i^Q&^!Rbu{_3mz9u!`D zG5pd&Ari6=u)?+*I~D;G1zqNY3^MMHvMoPbZet)880)(;DD}I6~ zfB*sr!?M@ojoJ4O4tjn)tLYB`gi=N@`gh(h!4pRTgrQG+QRt$n@9gAcA@Msdg4_F^ zdLw|4WBek|TCH5BJ`cfFz(eeJXT{hpUO z>WDB1AR{voo|>3A6o0?&P2~852m(kYr@(m7dWEiED8&x}q|%sn&p*{$CC5Qk*()jg@SFafE9UO$0rl!KFiHRepJ%3Xm0!Zma6JNi{?d;@a z_-uba@e$rZr@*u?gY&XE0fgMA#O_cY7fm<`e>s#ce9`Bp zN1Z4E1dz(VD_s0(EoD5yI}W#j079BSnDeJIyRIaWGX)}mjHR;1E`B7q%1=f|02$*5 zdP)ldNGh$*pG#N-1d!pg`So3&JT3lZX%2!2Ab { + this.legendaryExpiration.setText(this.getLegendaryGachaTimeLeft()); + }, + }); + } + + getLegendaryGachaTimeLeft(): string { + // 86400000 is the number of miliseconds in one day + const msUntilMidnight = 86400000 - (Date.now() % 86400000); + const hours = `${Math.floor(msUntilMidnight / 3600000)}`; + const minutes = `${Math.floor((msUntilMidnight % 3600000) / 60000)}`; + const seconds = `${Math.floor((msUntilMidnight % 60000) / 1000)}`; + + return `${hours.padStart(2, "0")}:${minutes.padStart(2, "0")}:${seconds.padStart(2, "0")}`; + } + clear(): void { super.clear(); this.setGachaCursor(-1); this.eggGachaContainer.setVisible(false); + if (this.playTimeTimer) { + this.playTimeTimer.destroy(); + this.playTimeTimer = null; + } } }