(text-style:"bold")[The City Never Sleeps]
<img src="morning-rush.jpg" style="float: right">
It’s early Monday morning.
After a long night out with friends and countless (non-alcoholic) cocktails, you’re walking along a busy downtown street toward your office. A sea of faces surrounds you—none of them familiar. They blur into one generic big-city crowd as everyone gets swept up in the morning rush.
In the entrance hall, a small crowd has gathered around a nervous security guard who’s directing people to a clerk seated at a desk beside the door. The card reader is out of commission, and the clerk is lazily waving everyone over to a hastily set-up temporary terminal.
[[Approach the terminal->Registration]](set: $name to (prompt: "Please type your name: ", "Alex", "", "Confirm"))
(set: $name to (trimmed: $name))
(set: $vigilance to 5)
(set: $memory to 5)
(set: $empathy to 5)
(set:$incident to false)
(set: $primes to (a: 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97))
(set: $names to (a: "Kumar", "Omar", "Ammar", "Qamar", "Samar", "Asmar", "Zumar", "Jamar", "Shamar", "Kamar", "Damar", "Ramar", "Tamar", "Samara", "Jamara", "Namar", "Humar", "Yamar", "Zamarr", "Thamar", "Hammar", "Imar", "Zoltan", "Bogdan", "Coltan", "Jolan", "Adrian", "Fabian", "Domian", "Julian", "Sebastian", "Cristian", "Marian", "Florian", "Octavian", "Lucian", "Valerian", "Stelian", "Vivian"))
(go-to:"Welcome")
[[Welcome]]''The Gray Terminal''
<img src="terminal.jpg" style="float: right">
Dear ''$name'',
On behalf of //Big City Company//, we apologize for this minor inconvenience. Please complete the registration process at the temporary terminal and then proceed through the entrance.
Thank you for your understanding!
[[Press a key on the terminal->Password]]
[[Ignore what you just read and head towards the elevators->ElevatorLobby]]
[[I'm too tired for all this->End]]
(set: $pswd to (prompt: "Enter password for $name: ", "", "", "OK"))
(set: $pswd2 to (prompt: "Re-enter password for $name: ", "", "", "OK"))
(set: $pswd to (trimmed: $pswd))
(set: $pswd2 to (trimmed: $pswd2))
(if: $pswd is "")[
(if: $pswd is $pswd2)[
(set: $vigilance to $vigilance+1)
(dialog: [You are right, your password is not to be shared with the front-desk clerk!<br><br>You gain an extra point of //vigilance//!], "Yaay!")
(go-to:"ElevatorLobby")
]
]
(if: $pswd is not $pswd2)[
(set: $memory to $memory-1)
(dialog: [It seems your memory is not as good as it used to be! (the passwords don't match)<br><br>You lost a //memory// point!], "Umm.. what?")
(go-to:"ElevatorLobby")
](else:)[
(set: $vigilance to $vigilance+(-1))
(dialog: [You shared your password with a third party 🤬.
You are now required to complete mandatory cybersecurity training by the end of the week!
In addition, you’ve lost one //vigilance// point!], "Oh, no!")
]
(go-to:"ElevatorLobby")
[[ElevatorLobby]]''Elevator''
<img src="elevator.jpg" style="float: right">
While riding up you...
[[Try to whistle a song->Whistle]]
[[Peer into the mirror->Stats]]
[[Try to recall what happened last night->Remember]]
[[Are we there yet?->Workplace]]''THE END''
<img src="end.jpg">
This is the end or a new beginning? It is up to you, $name!
You can restart the game [[here->Intro]].<img src="mirror.jpg" style="float: right">
You take a quick peek into the mirror and you see {
(if:$memory < 5)[
//a forgetful//
]
(else-if: $vigilance < 5)[
a sleepy
]
(else-if: $vigilance > 5)[
//an observant//
]
(else:)[
//an average//
]} person.
Your stats are:
Vigilance: $vigilance
Memory: $memory
Empathy: $empathy
[[Well, that's me!->Elevator]]You try to whistle, but all you manage is to spit on the floor.
Luckily, no one’s around to see it!
[[Continue your ride->Elevator]]''Last night''
You try hard to piece together last night. One thing you’re sure of: you met up with Taylor and their friends, but everything after that is a blur.
You concentrate for a moment, trying to remember more.
(if: $memory < 5)[
//You don’t even remember who this Taylor person is!//
](else-if: $vigilance > 5)[
''[Success]'' You start to remember: Taylor —your roommate in the tiny 20-square-foot apartment you share in the city— dragged you to a new club last night to meet some of their friends. To your surprise, a few of your colleagues were there too!
“What happens in the club stays in the club,” Taylor always says… but you really hope Logan doesn’t remember the //Incident//.
Fingers crossed!
(set:$incident to true)
](else:)[//We partied hard and had a quite few coctails.//]
[[Back to our ride->Elevator]]<img src="desk.jpg" style="float: right">
(if: $firsttime)[Finally, the elevator reaches your floor and the doors slide open with a soft chime.
You step out and head to your desk. It looks like you’re the first one in today!
(set: $firsttime to false)
](else:)[You walk back to your desk.]
[[Walk to the kitchenette->Kitchen]]
[[Log in to your PC->Work]]
[[I'm too tired for all this->End]]''The Kitchenette''
<img src="kitchen.jpg" style="float: right">
This small room serves as the main refill station for the entire floor—water and every legal stimulant you can imagine… though, let’s be honest, it’s really just:
(link-repeat: "Water")[(dialog: [You drink some water.], "It's good to be hydrated!")]
(link-repeat: "Tea")[(dialog: [It seems tea is out of stock], "Whatever. I'll have something else...")]
(link-repeat: "Coffee")[(dialog: [You pour some coffee into the mug you have but it's too hot to drink it yet.], "I'll drink it later")]
[[Refreshed, you walk back to your desk->Workplace]]''Your desktop''
<img src="desktop.jpg" style="float: right">
You open your PC then you...
(link-repeat: "Check your emails")[(dialog: [You have (random: 1200, 6000) unread emails. Seeing this, you feel a sudden headache coming on.], "I’d rather do something else.")]
(link-repeat: "Check Teams")[(dialog: [You have (random: 700, 3300) new notifications. Seeing this, you feel a slight wave of dizziness.], "I’d rather do something else.")]
[[Open your tasks->Tasks]]
(set: $completed to 0)
(set: $failed to 0)
[[It's time for a break!->Workplace]] Lock your workstation and stand up.
''The elevator lobby''
<img src="lobby.jpg" style="float: right">
You finish at the terminal and head toward the elevators.
Somehow everyone else managed to slip into an elevator just before you arrived—all you see are the closing doors. You press the button, and almost instantly one of the doors slides open with a cheerful //ding//.
No one else is around, so you ride up to your floor alone.
(set: $firsttime to true)
[[Continue->Elevator]]Your task is to approve or decline requests. Requests must be declined in case of a submission error:
* invalid ID: the last two digits of the ID must be a prime number(if: $vigilance>5)[ ($primes)]
* invalid date: submission date must be today or before, but not older than a week. Execution date must be in the future but not further than a week.
* invalid submitter: must be one of the executors.
Approve, if all details seem fine.
//Completed tasks: $completed//
//Success rate: (if: $completed is 0)[0%](else:)[(set: $rate to 100*($completed-$failed)/$completed)$rate %]//
[[Open the next task->InitTask]]
[[I need a break->Work]]
[[I'm too tired for all this->End]]//Today's date is 2026-03-23//
Request ID: $txtid
Requestor: $submitter
Submission date: $sdate
Executors: $executor1, $executor2, $executor3, $executor4
Execution date: $edate
[[Validate->ValidateTask]](set: $executor1 to (either: ...$names))
(set: $executor2 to (either: ...$names))
(set: $executor3 to (either: ...$names))
(set: $executor4 to (either: ...$names))
(if: (either: true, false))[
(set: $id to (either: ...$primes))
(set: $validid to $primes contains $id)
(set: $id to 100* (random: 1000000, 9999999) + $id)
(set: $submitter to (either: $executor1, $executor2, $executor3, $executor4))
(set: $sdate to (either: "2026-03-23", "2026-03-22", "2026-03-21", "2026-03-20", "2026-03-19", "2026-03-18", "2026-03-17", "2026-03-16"))
(set: $valid_sd to true)
(set: $edate to (either: "2026-03-31", "2026-03-30", "2026-03-29", "2026-03-28", "2026-03-27", "2026-03-26", "2026-03-25", "2026-03-24"))
(set: $valid_ed to true)
](else:)[
(set: $id to (random: 0, 99))
(set: $validid to $primes contains $id)
(set: $id to 100* (random: 1000000, 9999999) + $id)
(if: (either: true, false, false, false))[(set: $submitter to (either: $executor1, $executor2, $executor3, $executor4))]
(else:)[(set: $submitter to (either: ...$names))]
(set: $sdate to (either: "2026-03-25", "2026-03-24", "2026-03-23", "2026-03-22", "2026-03-21", "2026-03-20", "2026-03-19", "2026-03-18", "2026-03-17", "2026-03-16", "2026-03-15", "2026-03-14", "2026-03-13", , "2026-03-12", "2026-03-11", "2026-03-10"))
(set: $valid_sd to (a: "2026-03-23", "2026-03-22", "2026-03-21", "2026-03-20", "2026-03-19", "2026-03-18", "2026-03-17", "2026-03-16") contains $sdate)
(set: $edate to (either: "2026-04-02", "2026-04-01", "2026-03-31", "2026-03-30", "2026-03-29", "2026-03-28", "2026-03-27", "2026-03-26", "2026-03-25", "2026-03-24", "2026-03-23", "2026-03-22", "2026-03-21", "2026-03-20", "2026-03-19"))
(set: $valid_ed to (a: "2026-03-31", "2026-03-30", "2026-03-29", "2026-03-28", "2026-03-27", "2026-03-26", "2026-03-25", "2026-03-24") contains $edate)
]
(set: $txtid to (str: $id) + (either: "XDF", "GGR", "RTJ", "KLP", "TGZ", "UPR", "EWJ", "IZX"))
(set: $valids to (a: $executor1, $executor2, $executor3, $executor4) contains $submitter)
(set: $isvalid to $validid and $valids and $valid_sd and $valid_ed)
(go-to: "ProcessTask")
[[ProcessTask]] (dialog: bind $answer, "", "Accept", "Reject")
(if: $answer is "Accept" and $isvalid)[Correct!]
(else-if: $answer is "Reject" and not $isvalid)[Correct!]
(else-if: $answer is "Reject" and $isvalid)[Invalid submission: request is correct!(set: $failed to $failed + 1)]
(else:)[Invalid submission: request is incorrect!
(if: not $validid)[ID is invalid: $txtid ((digit-format: "##", $id) is not a prime)!]
(if: not $valids)[Submitter is not one of executors!]
(if: not $valid_sd)[Submission date is not valid: $sdate]
(if: not $valid_ed)[Execution date is not valid: $edate]
(set: $failed to $failed + 1)]
(set: $completed to $completed + 1)
[[Continue->Tasks]]