@@ -8,10 +8,24 @@ import GuiSettings from "./components/GuiSettings.svelte";
88import Home from " ./pages/Home.svelte" ;
99import RocketHost from " ./pages/RocketHost.svelte" ;
1010import StoryMode from " ./pages/StoryMode.svelte" ;
11- import Welcome from " ./components /Welcome.svelte" ;
11+ import Welcome from " ./pages /Welcome.svelte" ;
1212import { parseJSON } from " ./index" ;
13+ import arenaImages from " ./arena-images" ;
1314
14- let activePage = $state (" home" );
15+ const backgroundImage =
16+ arenaImages [Math .floor (Math .random () * arenaImages .length )];
17+
18+ let activePage = $state (
19+ localStorage .getItem (" SHOW_WELCOME" ) !== " false" ? " welcome" : " home" ,
20+ );
21+
22+ $effect (() => {
23+ if (activePage === " welcome" ) {
24+ localStorage .setItem (" SHOW_WELCOME" , " true" );
25+ } else {
26+ localStorage .setItem (" SHOW_WELCOME" , " false" );
27+ }
28+ });
1529
1630let eventsNow = $state (0 );
1731let eventsFuture = $state (0 );
@@ -30,8 +44,8 @@ let paths: {
3044
3145<Toaster />
3246
33- <main >
34- <div class =" navbar" >
47+ <main style ={ ` background-image: url("${ backgroundImage }") ` } >
48+ <div class ={ " navbar " + ( activePage == " welcome " ? " offset " : " " )} >
3549 <div >
3650 <!-- svelte-ignore a11y_click_events_have_key_events -->
3751 <!-- svelte-ignore a11y_no_static_element_interactions -->
@@ -90,48 +104,70 @@ let paths: {
90104 onclick ={()=> {showGuiSettings = true }}
91105 >GUI Settings</button
92106 >
107+ <button
108+ onclick ={()=> {activePage = " welcome" }}
109+ >Re-open setup screen</button
110+ >
93111 </div >
94112 </div >
95113 </div >
96114 </div >
97115
98116 <div
99- class ={activePage == " home" ? " pageContainer " : " pageContainer hidden" }
117+ class ={" pageContainer " + ( activePage == " home" ? " " : " hidden" ) }
100118 >
101119 <Home bind:paths />
102120 </div >
103121
104122 <div
105- class ={activePage == " rhost" ? " pageContainer " : " pageContainer hidden" }
123+ class ={" pageContainer " + ( activePage == " rhost" ? " " : " hidden" ) }
106124 >
107125 <RocketHost />
108126 </div >
109127
110128 <div
111- class ={activePage == " storymode" ? " pageContainer " : " pageContainer hidden" }
129+ class ={" pageContainer " + ( activePage == " storymode" ? " " : " hidden" ) }
112130 >
113131 <StoryMode />
114132 </div >
133+
134+ <div
135+ class ={" pageContainer" + (activePage == " welcome" ? " " : " hidden" )}
136+ >
137+ <Welcome bind:paths closeMe ={()=> {activePage = " home" }} />
138+ </div >
115139</main >
116140
117141<Events bind:visible ={eventsVisible } bind:eventsNow bind:eventsFuture />
118142<GuiSettings bind:visible ={showGuiSettings } />
119- <Welcome bind:paths />
120143
121144<style >
122145 main {
123146 display : flex ;
124147 height : 100% ;
125148 width : 100% ;
126149 flex-direction : column ;
150+
151+ background-size : cover ;
152+ background-repeat : no-repeat ;
153+ background-position : center ;
154+ background-attachment : fixed ;
127155 }
128156 .navbar {
129157 display : flex ;
130158 height : 3rem ;
131159 justify-content : space-between ;
132160 padding : 0.1rem ;
161+ /* Nice transparent blur */
162+ background-color : rgba (0 , 0 , 0 , 0.6 );
163+ -webkit-backdrop-filter : blur (10px );
164+ backdrop-filter : blur (10px );
133165 /* background: var(--background-alt);
134166 color: var(--foreground-alt); */
167+ transition : translate 0.2s ease-in-out ;
168+ }
169+ .navbar.offset {
170+ translate : 0 -100% ;
135171 }
136172 .navbar > div {
137173 display : flex ;
0 commit comments