<div style="text-align:center; margin: 1rem 0;">\
The helper sits beside the map, watching the flow of travelers. Their tag says Sona.\
</div>\
<div class="dialog">
<div class="you-line">YOU: <span id="youLine"><<print $youLine>></span></div>
<div class="npc-line">SONA: <span id="npcLine"><<print $npcLine>></span></div>
</div>
<div class="controls">\
<div class="row">
<select id="verbSelect"></select> <select id="nounSelect"></select> <select id="numSelect"></select>
</div>
<button id="sayBtn" type="button">Say it</button> \
<button id="showBtn" type="button">Show Note</button> \
<<button "Check Note">><<run setup.showNote(
"http://www.jalexmorrison.com/media/language/15_1.png",
)>><</button>></div>
<div style="text-align:center; margin: 1rem 0;">''[[Return to the ATRIUM->Atrium Again]]'' \
''[[Look at the MAP OF THE STATION->map]]''
</div>
<<script>>
setup.updateClock("clock");
<</script>>
<<run setup.playAmbience('platform_murmur', 0.25)>>
:: StoryInit
<<set $_muteLabel = "🔊">>
<<set $mute to false>>
<<set $targetPlatform = 15>>
<<set $targetPlatformRandom = random(10)>>
<<set $updatePlatform = 12>>
<<set $npcLine = "toki! mi ken seme e sina?">>
<<set $youLine = "">>
<<set $verb = "">>
<<set $noun = "">>
<<set $num = "">>
<span class="clock-label">Time: </span> <span id="clock"></span>
<<fadein 2s>>The traffic on the way to the station was bad and now you're later than you planned.<</fadein>>
<div style="text-indent: 3em;"><<fadein 2s 0.5s>>You feel the car begin to brake as your friend turns into the drop off zone.<</fadein>>
<div style="text-indent: 6em;"><<fadein 2s 1s>>Your bus to <strong>KEWA</strong> leaves in <strong>2 minutes</strong> you need to //hurry//.<</fadein>>
<div style="text-indent: 9em;"><<fadein 2s 2.5s>>You reach into your pocket for the note reminding you<</fadein>>
<div style="text-indent: 10em;"><<fadein 2s 2.75s>>which terminal your bus leaves from.<</fadein>>
<div style="text-indent: 11em;"><<fadein 2s 3s>><<button "Check note">>
<<run setup.showNote(
"http://www.jalexmorrison.com/media/language/15_1.png",
)>><</button>><</fadein>>
</div>
<<fadein 1s 5s>>You wave goodbye to your friend and look towards the main entrance to the station.<</fadein>>
<<fadein 1s 5.5s>> ''[[Walk into the station|Atrium First Time]]''<</fadein>>
<<run setup.playSfx('car_break')>>
<div class="bump-layer"> <span class="clock-label">Time: </span> <span id="clock"></span> <<button "Check note">><<run setup.showNote( "http://www.jalexmorrison.com/media/language/15_1.png", )>><</button>>
<div style="text-align:center; margin: 1rem 0;"><<fadein 1s>>You step into a bright atrium and look around<</fadein>></div>\
<<fadein 1s 1s>>It’s very busy, lots of people walk with purpose going every which way. The area is large, sounds echo.<</fadein>>
<<fadein 1s 3s>>Then you hear an announcement.<</fadein>>
<div style="text-align:center; margin: 1rem 0;"><em class="foreign"><<fadein 1s 3.5s>>"o kute, jan tawa. tomo tawa tawa Kewa li kama."<</fadein>></em></div><<fadein 1s 5s>>None of the signs around you are in your language. But at least some have numbers and arrows.<</fadein>>
<<fadein 1s 5.5s>>A station worker standing next to a large map of the station.<</fadein>>
<<fadein 1s 6s>>Next you... ~~//(pick one of the five options)//~~<</fadein>>
<div style="text-align:center; margin: 1rem 0;"><<fadein 1s 6.5s>>''[[Approach the STATION HELPER->Station Worker]]'' \
''[[Approach the MAP OF THE STATION->map]]''
''[[⬅️ 1-7->leftUpdatedCorrect]]'' \
''[[⬆️ 9-15->straightClosedConstruction]]'' \
''[[➡️16-20->rightOpenIncorrect]]''<</fadein>></div>
<<fadein 1s 12s>>You feel sudden a bump to your side and hear<</fadein>>\
<div style="text-align:center; margin: 1rem 0;"><em class="foreign"><<fadein 0.5s 12.1s>>''"o tawa poka!"''<</fadein>></em> </div>\
<<fadein 1s 13s>>Another traveller squeezes by you with their overloaded luggage.<</fadein>>
<<timed 12.1s>>
<<run setup.bumpLeft()>>
<</timed>>
</div>
<<script>>
setup.updateClock("clock");
<</script>>
<<run setup.playAmbience('platform_murmur', 0.25)>>
<<run setup.playSfx('platform_announcement', 0.25)>>
<<if !$busDeadline>>
<<set $busDeadline = Date.now() + setup.busTimer.durationMs>>
<<run setup.startTimeUpTimer(setup.busTimer.durationMs)>>
<</if>>
<span class="clock-label">Time: </span> <span id="clock"></span> <<button "Check note">>
<<run setup.showNote( "http://www.jalexmorrison.com/media/language/15_1.png", )>><</button>><<set $updatePlatform = 7>> /* hard-code for now */
The left corridor narrows into a stream of people moving quickly.
You look up and see rows of numbers hanging from the ceiling, ascending 1–7 as you look further down the hallway.
Beneath one of those numbers is the bus you need to get to '''KEWA'''.
You decide to go to platform:
<select id="platPick"></select><button id="platGo" type="button">Go</button>
<div id="platOut"></div>
''[[Back->Atrium Again]]''
<<set $platMin = 1>>
<<set $platMax = 7>>
<span class="clock-label">Time: </span> <span id="clock"></span> <<button "Check note">>
<<run setup.showNote( "http://www.jalexmorrison.com/media/language/15_1.png", )>><</button>><<set $targetPlatform = 12>> /* hard-code for now */
The center corridor narrows into a stream of people moving quickly.
You look up and see rows of numbers hanging from the ceiling, ascending <strong>16-20</strong> as you look further down the hallway.
You decide to go to platform:
<select id="platPick"></select>
<button id="platGo" type="button">Go</button>
<div id="platOut"></div>
''[[Back->Atrium Again]]''
<<set $platMin = 16>>
<<set $platMax = 20>>
<span class="clock-label">Time: </span> <span id="clock"></span> <<button "Check note">>
<<run setup.showNote( "http://www.jalexmorrison.com/media/language/15_1.png", )>><</button>>
<div style="text-align:center; margin: 1rem 0;">The right corridor is loud. There is a lot of construction happening.
You see lots of workers in yellow vests and hard hats, but no travellers.
''[[Back->Atrium Again]]''
</div>
<<run setup.playSfx('construction', 0.25)>>
<span class="clock-label">Time: </span> <span id="clock"></span> <<button "Check note">><<run setup.showNote( "http://www.jalexmorrison.com/media/language/15_1.png", )>><</button>><div class="terminal-image"><img src="http://jalexmorrison.com/media/language/map.jpg" alt="Terminal map"></div><div style="text-align:center; margin: 1rem 0;">''[[Return to the ATRIUM|Atrium Again]]'' ''[[Talk to the STATION HELPER|Station Worker]]''</div>
<<run setup.stopAllAudio()>><div style="text-align:center; margin: 1rem 0;"><h1>Welcome to the Land of Toki Pona</h1><h3>In this __choose your adventure__,
You only have a few words and phrases you're able to say.
A //list of common phrases'// are available on the language guide.</h3><h2>Scenario:</h2><h4>You are heading to the central bus station.
You must find your correct platform for your bus before it departs.
Missing the bus means missing your exam.
Your bus leaves soon, hurry! (o wawa!)</h4><h1>[[BEGIN|In the arriving car]]</h1><<button "TEST AUDIO">>
<<script>>
// one-shot, doesn’t loop
setup.stopAllAudio();
const t = SimpleAudio.tracks.get('pona');
t.volume(0.5);
t.loop(false);
t.play();
<</script>>
<<replace "#audioStatus">>✅ If you heard that, you’re good.<</replace>>
<</button>><div id="audioStatus"></div>
</div>
<<set $targetPlatform = 47>>
<<set $targetPlatformRandom = random(10)>>
<<set $npcLine = "toki! mi ken seme e sina?">>
<<set $youLine = "">>
<<set $verb = "">>
<<set $noun = "">>
<<set $num = "">>
<span class="clock-label">Time: </span> <span id="clock"></span> <<button "Check note">>
<<run setup.showNote( "http://www.jalexmorrison.com/media/language/15_1.png", )>><</button>>
<div style="text-align:center; margin: 1rem 0;">You return to the atrium and look around</div>\
None of the signs around you are in your language. But at least some have numbers and arrows.
You see a station worker standing next to a large map of the station.
Next you go to...
<div style="text-align:center; margin: 1rem 0;">''[[Approach the STATION HELPER->Station Worker]]'' \
''[[Approach the MAP OF THE STATION->map]]''
''[[⬅️ 1-7->leftUpdatedCorrect]]'' \
''[[⬆️ 9-15->straightClosedConstruction]]'' \
''[[➡️16-20->rightOpenIncorrect]]''</div>
<<script>>
setup.updateClock("clock");
<</script>>
<<run setup.playAmbience('platform_murmur', 0.25)>>
<<button "Check note">>
<<run setup.showNote(
"http://www.jalexmorrison.com/media/language/15_1.png",
)>>
<<run setup.playVoice('closed', 0.6)>>
<</button>>
<div class="mute-float"><<mutebtn>></div>
<span id="muteWrap">
<<link "$_muteLabel">>
<<run
if (Audio.muted()) {
Audio.unmute();
State.variables._muteLabel = "🔊";
} else {
Audio.mute();
State.variables._muteLabel = "🔇";
}
>>
<</link>>
</span>
<span class="clock-label">Time: </span> <span id="clock"></span> <<button "Check note">>
<<run setup.showNote( "http://www.jalexmorrison.com/media/language/15_1.png", )>><</button>><<if setup.busTimerExpired()>>
<<run setup.stopAllAudio()>>
<div class="scene-bg bg-bus-missed">
<div style="text-align:center; margin: 1rem 0;">You arrive at platform 7, but you missed your bus.</div>
<div style="text-align:center; margin: 1rem 0;">You will miss your exam.<div style="text-align:center; margin: 1rem 0;"><h1>''[[RESTART|Start]]''</h1></div>
<<run setup.playSfx('bus_leaving', 0.25)>>
<<else>>
<div class="scene-bg bg-bus-madeit">
<div style="text-align:center; margin: 1rem 0;">You found your bus, and you step onto it just as they closed the doors.
You barely made it, but you did make it.
You will be on time for your test!</div><div style="text-align:center; margin: 1rem 0;"><h1> ''[[RESTART|Start]]''</h1></div>
</div>
<<run setup.stopAllAudio()>>
<<run setup.playSfx('bus_ambience', 0.25)>>
<</if>>
<<run setup.stopBusTimer()>>
<<timed 12s>>
<<goto "Start">>
<</timed>>
<span class="clock-label">Time: </span> <span id="clock"></span>
<<button "Check note">>
<<run setup.showNote("http://www.jalexmorrison.com/media/language/15_1.png")>>
<</button>>
<div class="scene-bg bg-bus-incorrect">
<div style="text-align:center; margin: 1rem 0;">
You arrive at platform <<print $lastPickedPlatform>>, but it’s the wrong line.
</div> <div style="text-align:center; margin: 1rem 0;">
You should hurry back and try again.
</div> <div style="text-align:center; margin: 1.5rem 0;">
''[[Back->Atrium Again]]''
</div>
</div>
<<run setup.stopAllAudio()>>
<<run setup.playSfx('bus_ambience', 0.25)>>