From 7c3de44f36c425dc4690ed0de48c60bfe50719c3 Mon Sep 17 00:00:00 2001 From: kwaroran Date: Tue, 19 Dec 2023 18:19:33 +0900 Subject: [PATCH] [feat] christmas --- public/santa.png | Bin 0 -> 4198 bytes src/lib/UI/MainMenu.svelte | 4 ++- src/lib/UI/Title.svelte | 69 +++++++++++++++++++++++++++++++++++++ 3 files changed, 72 insertions(+), 1 deletion(-) create mode 100644 public/santa.png create mode 100644 src/lib/UI/Title.svelte diff --git a/public/santa.png b/public/santa.png new file mode 100644 index 0000000000000000000000000000000000000000..89b6d736ec4796ab192a423571169a4d428aa718 GIT binary patch literal 4198 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 literal 0 HcmV?d00001 diff --git a/src/lib/UI/MainMenu.svelte b/src/lib/UI/MainMenu.svelte index 548bbc13..7195ee2e 100644 --- a/src/lib/UI/MainMenu.svelte +++ b/src/lib/UI/MainMenu.svelte @@ -8,11 +8,13 @@ import { language } from "src/lang"; import { getRisuHub } from "src/ts/characterCards"; import RisuHubIcon from "./Realm/RealmHubIcon.svelte"; + import Title from "./Title.svelte"; let openHub = false +
{#if !openHub} -

RisuAI

+ {#if (!isTauri) && (!isNodeServer)} <h3 class="text-textcolor2 mt-1">Version {appVer}{webAppSubVer}</h3> {:else} diff --git a/src/lib/UI/Title.svelte b/src/lib/UI/Title.svelte new file mode 100644 index 00000000..e5b8daa1 --- /dev/null +++ b/src/lib/UI/Title.svelte @@ -0,0 +1,69 @@ +<script lang="ts"> + import { openURL } from "src/ts/storage/globalApi"; + + let specialDay = '' + const today = new Date() + if (today.getMonth() === 11 && today.getDate() >= 19) { + specialDay = 'christmas' + } + let iconAnimation = 0 + let clicks = 0 + let score = 0 + let time = 10 + let miniGameStart = false + +</script> + +<h2 class="text-4xl text-textcolor mb-0 mt-6 font-black relative">RisuAI + {#if specialDay === 'christmas'} + <!-- svelte-ignore a11y-no-noninteractive-element-interactions --> + {#if clicks < 5} + <img src="./santa.png" alt="santa" class="absolute logo-top" + style:top={(-20 + iconAnimation).toFixed(0) + 'px'} + style:right={'-30px'} + on:click={async () => { + iconAnimation = Math.random() * 300 + clicks++ + if(clicks === 5){ + iconAnimation = 0 + } + }} + > + {/if} + {/if} +</h2> + +{#if clicks >= 5} + <div class="bg-black w-full p-3 mt-4 mb-4 rounded-md max-w-2xl"> + <span class="font-semibold text-lg">Score: {score}</span><br> + <span class="font-semibold text-lg">Time: {time.toFixed(1)}</span> + <!-- svelte-ignore a11y-no-noninteractive-element-interactions --> + <img src="./santa.png" alt="santa" + style:margin-left={iconAnimation + 'rem'} + class:grayscale={!miniGameStart} + on:click={async () => { + iconAnimation = Math.random() * 30 + if(!miniGameStart){ + if(time === 0){ + time = 10 + iconAnimation = 0 + return + } + time = 10 + score = 1 + miniGameStart = true + const timer = setInterval(() => { + time -= 1 + if(time <= 0){ + miniGameStart = false + clearInterval(timer) + } + }, 1000) + } + else{ + score++ + } + }} + > + </div> +{/if} \ No newline at end of file