<script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/3.12.2/gsap.min.js"></script>
<script src="./scripts/1.SplitText.min.js"></script>
<div id="startScreen">
<div id="startButton">
Start Game
</div>
</div>*KSSHT.*
*KSSSHHHHT.*
Hello? *KSSHT.* Hello hello?
Are you receiving this?
[[Yes|A.0]]
[[No|B.0]]Excellent!
I do so love when things work the way they're supposed to!
[[Next|Main.1]]Hah. You won't fool me that easily.
I'm *only* 13 centuries old.
[[Next|Main.1]]I'm so glad you made it.
Escaping the Dominion Planetation is no easy feat.
[[Next|Main.1.5]]Before we get started, I need you to fill out a quick digital form for me.
I know, I know...
Sometimes community takes a lil' bureaucracy. 🎵
[[Download the Document|Customization]]<% $("body").addClass("customization").removeClass("map") %>
<div class="customization-form">
<p>Dear Planet Representative,</p>
<p>Please fill out the following information.</p>
<div>
<label for="playerName">Your full name:</label>
<div class="mt-2">
<input id="playerName" name="playerName" type="text" value="" oninput="setup.checkInputs()" class="customization-text-input">
</div>
</div>
<div>
<label for="planetName">The name of your planet:</label>
<div class="mt-2">
<input id="planetName" name="planetName" type="text" value="" oninput="setup.checkInputs()" class="customization-text-input">
</div>
</div>
<div>
<label for="projectDescription">Your planet's main artistic output (eg. singing, dancing, competitive digital zip-lining, intergalactic fermentation stations):</label>
<div class="mt-2">
<input id="projectDescription" name="projectDescription" type="text" value="" oninput="setup.checkInputs()" class="customization-text-input">
</div>
</div>
<div>
<!-- <p for="planetImg" class="text-base font-semibold text-neutral-50">Home Planet</p> -->
<label>Pick a planet body:</label>
<fieldset class="mt-4" id="planetImg">
<div class="space-x-4 flex flex-wrap flex-row">
<%
["saturn", "banana", "blorb", "earth", "macaroni"].map(function(imgName, index) {
var imgPath = "img/player-planet-" + imgName + ".png";
%>
<div class="flex items-center">
<input oninput="setup.checkInputs()" id="planetImg<%= index %>" value="<%= imgPath %>" name="planetImage" type="radio" class="h-4 w-4 border-gray-300 text-indigo-600 focus:ring-indigo-600" <%= index === 0 ? "checked" : "" %>>
<label for="planetImg<%= index %>" class="ml-3 h-12 w-12 block text-sm font-medium leading-6 text-gray-900"><img src="<%= imgPath %>" alt="Planet Image <%= index + 1 %>"></label>
</div>
<%
});
%>
</div>
</fieldset>
</div>
<button id="nextButton" onclick="setup.savePlayerInfo()" class="disabled:opacity-25 my-4 text-center mx-auto" disabled>Transmit the document</button>
</div><% $("body").removeClass("customization") %>
<div id="overlay" class="hidden"></div>
<div id="ui">
<div id="playerScreen">
<div class="text-sm">
<span id="turnCounter"><%= 8 - s.turn %> weeks to the radio show!</span>
</div>
<div id="playerInfo"></div>
</div>
<div id="mapScreen"></div>
</div>
<div id="tooltips"></div>
<div id="weekPreamble">
<p id="modalContent" class="text-2xl mb-4"></p>
<button onclick="setup.hideWeekPreamble()">Close</button>
</div>
<div id="hud">
<span onclick="setup.returnToMap()" id="backToMap">← back to map</span>
<div id="planet-splash" class="flex-shrink-0 px-6 pt-6"></div>
<div id="planet-info">
<div id="rep" class=""></div>
<div id="passageContainer">
<div id="passage"></div>
</div>
</div>
</div>
<script>
setup.showMap();
</script>
<% console.log(setup.game) %>
<% console.log(story.state) %><script>
var planetIndex = story.state.planetIndex; // Retrieve the index from story.state
setup.renderPlanetPassage(planetIndex);
setup.story.render(planets[planetIndex].passage);
</script>Well, <%= story.state.playerName %> from <%= story.state.playerPlanet.name %>. It's my honour and delight to *welcome you*...
[[Next|Intro 2]]**... to the Gamma Federation!**
<button id="renderIntroButton" onclick="setup.renderIntro();" >Next</button>I just realized I had my video turned off this whole time...
*some host I am!*
[[Next|Intro 4]]Allow me to introduce myself.
I am ❄︎pioGA⍓︎rovvst♏︎♋︎S:laQN⬧︎doü⧫︎ffpz⍓︎?MBzx■︎Bzt.
[[Next|Intro 5]]But my friends call me *DJ FUNKYBEATZ.* 🎵
[[Next|Intro 6]]We're grateful to have you as the newest member of the Federation.
[[Next|Intro 7]]I know you've had a tough time recently. I know what the Dominion can do to your trust...
[[Next|Intro 8]]But things are different here. There's no overlord. No forced overtime. Just a commitment to our collective wellbeing and shared values. I know you already got the values information beforehand, but I'll share them again.
[[Next|Intro 9]]- Collective care and support
- Personal and Collective Accountability
- Creative Empowerment
- Challenging Systemic Norms
- Art as a Means for Change*
[[Next|Intro 10]]Opting into the Federation means opting into these values. They're iterative, but commitment to the Federation means commitment working *with* us to make those changes.
[[Next|Intro 11]]But I'm talking your ear off! Classic Funkybeatz.
[[Next|Intro 12]]I'm so excited to see what you're preparing for our Radio Show Extravaganza in **7 weeks**.
<div class="passage-choices">
[[Radio show?|Radio Show Explanation]]
<span onclick="setup.returnToMap();">Oh yeah, I know about that.</span>
</div>YOU DON'T KNOW ABOUT THE RADIO SHOW?!?
[[Next|Radio Show Explanation 2]]Sorry, I got a little carried away there. It's just... a kinda big deal.
[[Next|Radio Show Explanation 3]]Every year The Gamma Federation hosts an intergalactic radio show where all the Gamma planets exhibit their artistic creations across the galaxy.
[[Next|Radio Show Explanation 4]]As you get acquainted with the Federation, I encourage you to check in on the other planets every so often to see how their projects are coming along for the radio show. This is something we call the *buddy system*.
[[Next|Radio Show Explanation 5]]*Check in on your buddies🎵<br>
and they'll check in on youuu.<br>
It makes us all do better,<br>
and it's easy enough to dooo!*🎵
[[Next|Radio Show Explanation 6]]Okay, yeah yeah. Not my finest work.
[[...|Radio Show Explanation 7]]Nothing to add? Wow. An alien can take a hint.
Well, off with you then. I'm transmitting the coordinates of the other planets to you now.
<div class="passage-choices">
<span onclick="setup.returnToMap();">Open map</span>
</div>
<!-- Planet request scenarios, random -->Oh hello darling. You must be <%= story.state.playerName %>. I heard you tried to start a union at the Dominion. You've got guts.
[[Next...->Chanterella1_B]]I'm Spore T. Spice. The most recognized queen of myconsynthetics in this known universe. *It's a pleasure.*
[[Next...->Chanterella1_C]]I'm working on a little something for the radio show... a high fashion, high art, and just overall *high* drag show. Think psychadelic. Think Monet but gay and on drugs. Think *glamour*.
[[Next...->Chanterella1_D]]We've been growing local flowers for our costumes, but grinding them into dyes is going slower than expected. Would you be able to spare some extra hands (or appendages) to help us out?
<div class="passage-choices">
<span onclick='setup.completeScenario();'>Of course</span>
<span onclick="setup.returnToMap()">I'll let you know…</span>
</div>Why hello darling, how are you this week?
[[Feeling a little rough...->ChanterellaCostumes_A]]
[[Things are good!->ChanterellaCostumes_B]]Well, heck. I'm sorry to hear. I know you really went through the ringer with the dominion planetation. Takes time to heal from that.
[[Next...->ChanterellaCostumes_AB]]Give yourself that space, sweet porcini.
[[Is there anything I can do to help you out?->ChanterellaCostumes_C]]Beautiful news, my sweet porcini.
[[Is there anything I can do to help you out?->ChanterellaCostumes_C]]Well... there is, in fact. We're trying to help make the radio show carbon neutral, but we don't have enough shroom power to set up all the solar panels.
We'll show you how to set up your own, but could use some support.
<div class="passage-choices">
<span onclick='setup.completeScenario();'>I think we've got some capacity.</span>
<span onclick="setup.returnToMap()">Not this week...</span>
</div>Hi doll. Nice to see your holographic face.
[[You seem down->ChanterellaSadA]]
[[Need any support this week?->ChanterellaSadB]]
<div class="passage-choices">
<span onclick='setup.completeScenario();'>(Back to map)</span>
</div>I've been better. Things are just... overwhelming.
[[I'm here to listen, if you need.->ChanterellaSadC]]
[[Yeah, I feel that too.->ChanterellaSad_Z]]Sounds like you're also in need of some support, Porcini. Why don't you take some time for yourself.
[[I'd love to hold some space for you.->ChanterellaC]]
<div class="passage-choices">
<span onclick="setup.returnToMap()">Thanks, I'll do that.</span>
</div>Maybe... maybe you could just chat for a bit?
[[Of course!->ChanterellaD]]
<div class="passage-choices">
<span onclick="setup.returnToMap()">I'm feeling a little overwhelmed right now.</span>
</div>Thanks, porcini. I don't know if I ever told you, but I had my own experience with the Dominion Planetation, about a century ago.
[[Next...->ChanterellaD]]It left a mark. This feeling that I'm never doing enough. That I'm foolish to try and resist.
[[I know that feeling->ChanterellaSadE]]
[[You can't do everything->ChanterellaSadF]]I thought you might. I hate that you do, but it's helpful to know I'm not the only one.
[[Next...->ChanterellaSadG]]I know that logically, but... sometimes it *feels* so real.
[[Next...->ChanterellaSadG]]Thanks for listening, porcini. The show's actually coming along pretty well.
[[Next...->ChanterellaSadH]]I know I'm in a better place now. Sometimes that makes it harder.
But, it's okay.
[[Next...->ChanterellaSadI]]Well, you know what they say...
*The show must go on!*
<div class="passage-choices">
<span onclick='setup.completeScenario();'>(Back to map)</span>
</div>Darling! What a pleasure to see you.
[[You too.->ChanterellaFabricA
[[Well I *am* fabulous.->ChanterellaFabricB]]I have a request. I'm looking for scraps, old clothes, unused bedsheets. Anything remotely fabric-like. The costuming department has taken over and we need all the material we can get!
[[I've got some old things you can use.->ChanterellaFabricC]]
<div class="passage-choices">
<span onclick="setup.returnToMap()">I think we're all out.</span>
</div>Yes porcini! And you *know* it.
Never let the world take that spark from you.
[[Next...ChanterellaA]]You're a lifesaver, porcini!
<div class="passage-choices">
<span onclick='setup.completeScenario();'>(Back to map)</span>
</div>Ah, darling! You caught me at a bad time... the show is in crisis!
[[What's going on?->ChanterellaThreadA]]
<div class="passage-choices">
<span onclick="setup.returnToMap()">(Back to map)</span>
</div>We've been harvesting conductive thread from the mycelial network but we can't afford to extract more. We're going for conductive fashion, but we've only got enough thread for half the cosutmes.
It's a fashion disaster!
[[Next...ChanterellaThreadB]]I may just need to compromise my end goals...
[[What if you decorate the others in phosphorescent spores?->ChanterellaC]]
[[You could ship out some magic mushrooms to go with the show?->ChanterellaThreadD]]That's... a *sickening* idea! I was so hung up on the conductive thread I forgot about our other resources.
[[Next...->ChanterellaThreadE]]Hah! That *would* make for a heck of a performance.
But you're right... I've been so hung up on conductive thread that I forgot about our other resources.
[[Next...->ChanterellaThreadE]]You're a real doll, Porcini. The show is saved!
<div class="passage-choices">
<span onclick='setup.completeScenario();'>(Back to map)</span>
</div>Huh? Who's this? Ah, right ya are. <%= story.state.playerName %>. Enemy #1 of the dominion planetation, I hear.
[[Next...->Razzmatazz1_B]]I'm Boris. Boris the clown. One and only representative of this heaping pile of junk. What can I do ya for?
[[Need any help?->Razzmatazz1_C]]Hmphf. Well... we're always looking for more trash. Got this whole hologographic cirucs nightmare we're planning for the radio show.
[[Next...->Razzmattazz1_D]]Do you happen to have any pipe cleaners? I'm, uh... working on a thing.
<div class="passage-choices">
<span onclick='setup.completeScenario();'>Actually I do.</span>
<span onclick="setup.returnToMap()">I'll let you know...</span>
</div>Whaddaya want?!
[[Need any help preparing for the show?->Razzmatazz2_A]]
[[Sorry to disturb you!->Razzmatazz2_B]]I always need help!
[[What do you need?->Razzmatazz2_C]]
<div class="passage-choices">
<span onclick="setup.returnToMap()">(Return to map.)</span>
</div>What I always need! More trash!
<div class="passage-choices">
<span onclick='setup.completeScenario();'>Let me see what I can dig up for you.</span>
<span onclick="setup.returnToMap()">I'm all out right now, sorry.</span>
</div>Nah, it's not you. I'm always disturbed.
[[Need you any help preparing for the show?->Razzmatazz2_A]]
<div class="passage-choices">
<span onclick="setup.returnToMap()">(Return to map.)</span>
</div>Kiddo! What's the latest?
[[I'm 100 years old!->Funkybeatz2_A]]
[[Really feeling the weight of the galaxy these days.->Funkybeatz2_B]]A baby in my eyes!
[[Need any help with anything this week?->Funkybeatz2_C]]
<div class="passage-choices">
<span onclick="setup.returnToMap()">(Return to map.)</span>
</div>Gravity's got ya down, eh?
I'm just kidding around. Things are definitely heavy.
[[I've still got some extra time to help out if you need.->Funkybeatz2_C]]
<div class="passage-choices">
<span onclick="setup.returnToMap()">(Return to map.)</span>
</div>Actually I *could* use some help distributing virtual flyers for the show.
Spore T. Spice made this great holographic art for them, but we haven't hit up all our contacts yet. I can give you a list.
<div class="passage-choices">
<span onclick='setup.completeScenario();'>Happy to help!</span>
<span onclick="setup.returnToMap()">Sorry, I just can't look at screens anymore this week.</span>
</div>A quantum computer has gone haywire, creating chaos in the time-space continuum. Solve complex puzzles to recalibrate the machine and stabilize reality.
[[Next...->Quantum Conundrum 2]]I have no idea how to solve these puzzles, but i'll give it my best shot…
<div class="passage-choices">
<span onclick='setup.completeScenario();'>Connect</span>
<span onclick="setup.returnToMap()">Move on…</span>
</div>A newborn nebula is struggling to form stars. Gather stardust and cosmic energy to nurture its growth and witness the birth of new suns.
[[Next...->Stellar Cradle 2]]Gathering stardust might be fun?
<div class="passage-choices">
<span onclick='setup.completeScenario();'>Connect</span>
<span onclick="setup.returnToMap()">Move on…</span>
</div>The Great Library of Andromeda is in disarray, with knowledge scattered across the stars. Reorganize the cosmic archives and unlock ancient wisdom.
[[Next...->Galactic Restoration 2]]Time to sort through the astral archives…
<div class="passage-choices">
<span onclick='setup.completeScenario();'>Connect</span>
<span onclick="setup.returnToMap()">Move on…</span>
</div>A celestial entity has lost its voice, rendering the galaxy silent. Find the harmonious chords to give voice back to the stars.
[[Next...->Cosmic Symphony 2]]Let's tune into the cosmic frequencies…
<div class="passage-choices">
<span onclick='setup.completeScenario();'>Connect</span>
<span onclick="setup.returnToMap()">Move on…</span>
</div>A labyrinth of cosmic dust and gas clouds has appeared. Navigate through the maze to discover hidden celestial treasures.
[[Next...->Nebula Maze 2]]This maze is intricate, but I'm up for the challenge…
<div class="passage-choices">
<span onclick='setup.completeScenario();'>Connect</span>
<span onclick="setup.returnToMap()">Move on…</span>
</div>A constellation has lost its rhythm, causing disarray in the night sky. Choreograph the celestial dance to restore order.
[[Next...->Starlit Dance 2]]Time to get these stars dancing again…
<div class="passage-choices">
<span onclick='setup.completeScenario();'>Connect</span>
<span onclick="setup.returnToMap()">Move on…</span>
</div>A wandering comet carries secrets from the edge of the universe. Chart its course and uncover the mysteries it holds.
[[Next...->Comet's Tale 2]]Chasing comets is no easy task, but it's worth it…
<div class="passage-choices">
<span onclick='setup.completeScenario();'>Connect</span>
<span onclick="setup.returnToMap()">Move on…</span>
</div>The Aurora Borealis has dimmed, losing its vibrant colors. Reignite the auroral lights to paint the sky with dazzling hues.
[[Next...->Aurora's Whisper 2]]Let's bring color back to the skies…
<div class="passage-choices">
<span onclick='setup.completeScenario();'>Connect</span>
<span onclick="setup.returnToMap()">Move on…</span>
</div>An ancient star has posed a riddle, locking away a cosmic secret. Solve the riddle to gain access to hidden cosmic knowledge.
[[Next...->Celestial Riddle 2]]Riddles in space? This should be interesting…
<div class="passage-choices">
<span onclick='setup.completeScenario();'>Connect</span>
<span onclick="setup.returnToMap()">Move on…</span>
</div>The Sun's song has become erratic, affecting planetary orbits. Compose a new solar melody to bring stability back to the solar system.
[[Next...->Solar Serenade 2]]Time to compose a symphony for the Sun…
<div class="passage-choices">
<span onclick='setup.completeScenario();'>Connect</span>
<span onclick="setup.returnToMap()">Move on…</span>
</div><%= setup.getPlanet(s.currentPlanet) %> offers to help me find the source of the problem. Let's go!
[[Next...->Week 4 crisis 2]]<%= setup.getPlanet(s.currentPlanet) %> is so great. I'm glad we're friends.
<div class="passage-choices">
<span onclick='setup.completeScenario();'>Connect</span>
<span onclick="setup.returnToMap()">Move on…</span>
</div>
<!-- Week/turn preambles -->Whew, helping planets is hard! Let's do it again this week.A week goes by… Wow, helping <%= setup.getPlanet(s.currentPlanet) %> was the right call. Our connection is stronger than ever!<%= setup.getPlanet(s.currentPlanet) %> indicates I'm getting pretty good at this. Let's help some more planets!The Sun has been blotted out by a mysterious force. The solar system is in chaos, and the planets are in danger.Time flies in the cosmos. Each planet, including <%= setup.getPlanet(s.currentPlanet) %>, has its own story.With every planet helped, I feel more connected to the universe. What new wonders will this week bring?Time for a big radio broadcast. But what is this around the corner!? A black hole is approaching the solar system!
<!-- inactive turns -->Hello beautiful! I am *thriving* this week. Covered in sequins, but feeling *fine*. Take a gander at these new costumes.
[[I can't wait...->InactiveKelpler_1_A]]
<span onclick="setup.returnToMap()">Next time, I'm afraid.</span>(Chanterella transmits some four dimensional snapshots of her costumes. The materials are unlike anything you've ever seen, with a beauty and depth you've only ever witnessed in nebulas.)
<span onclick="setup.returnToMap()">(Return to map)</span>Huh? Back again, eh? Look, I appreciate ya, but we're good this week.
(In the background, you hear the unmistakable grunts and cheering of gymnasts practicing a routine.)
<span onclick="setup.returnToMap()">(Move on…)</span>Hey kid! You're a doll for helping out, you know? But we're all good over here right now.
Wanna hear some beats?
[[You know it!->InactiveFunkybeatz_1_A]]
<span onclick="setup.returnToMap()">Another time.</span>(Music fills your speakers. It's groovy, distorted, with rich undertones of alien instrumentals. You feel unable to resist the urge to dance.)
<span onclick="setup.returnToMap()">(Return to map)</span>Whoa, hey, so cool to see you. We're just vibing this week. Wanna see some of our new tricks?
[[Definitely!...->InactiveKelpler_1_A]]
<span onclick="setup.returnToMap()">Sorry, gotta run!</span>(Flotsam flips and flops on their surfboard in an almost hypnotizing way. The sun shimmers on their liquid flesh. You can't pull your eyes away, until they are done.)
<span onclick="setup.returnToMap()">(Return to map)</span>Spark: Woof! You're back!
Spook: Always so helpful!
Spike: We're actually a little busy right now, pet.
(In the background, you can hear Spike pawing through a sound effect library.)
[[Next...->InactiveBarkenberg_1_A]Spark: We love to see you!
Spook: Just busy in the recording booth right now...
Spike: Until next week. Mrow!
<span onclick="setup.returnToMap()">(Return to map)</span>