You've got a busy week ahead of you! There's a lot to look forward to, like a pottery class on Wednesday, a movie on Friday, and hanging out with friends at Pride on the weekend. But right now you're late for work, rushing to get out of the house. You grab your keys, your wallet — wait, your n95 is missing.
But do you really need it? It's 2024!
# [[Go find a mask, just in case.|Monday: Bedroom][$mask to true]]
# [[Skip the mask, you don't have time!|Monday: The Morning Bus][$mask to false]]<<if $mask>>Your normal bus is pulling away from the stop right as you reach it. Ugh. You settle in to wait for the next one, hoping you won't be too late for your morning meeting.
At least it gives you time to put on your mask — you put the bottom strap around the back of your neck, open the trifold mask and position it on your face, then slide the top strap back around the top of your head. Pressing the nose wire down to conform to your face, you breathe in and out quickly a few times to check for leaks. The mask's material collapses and puffs up with your breaths, your glasses stay clear, and you don't feel any air escaping around the seal. Seems good!
A few minutes later the next bus arrives and you hop on<<else>>Phew! You made it just in time. You hop on the bus<</if>>, taking a seat near the front. As you scroll social media on your phone, the seats quickly fill up around you. The bus starts feeling stuffy, and a few rows back someone coughs loudly. <<if $mask>>You check the seal of your mask<<else>>You try to ignore it<</if>> and keep scrolling.
Eventually the bus makes its way through the traffic to your stop.
# [[Well, time for work!|Monday: Work]]Where is that box? You had some Auras somewhere in your bedroom closet — there they are!
You grab a mask out of the box and stuff it in your pocket, glancing at your watch.
# [[Oh shit, you're going to miss the bus!|Monday: The Morning Bus]]The day goes by pretty quickly<<if $mask>>, despite the awkwardness of being a bit late for your meeting<</if>>. It's a little hard to concentrate in the open-plan office surrounded by your coworkers, but as usual you make do with headphones. For lunch you grab a sandwich from the cafeteria and <<if $mask>>eat it in the courtyard outside, a break from wearing a mask.<<else>>eat it there before heading back to the office.<</if>>
# [[5 already?|Monday: The Evening Bus]]On the ride home you spend a little time people-watching to decompress. At one point a little girl sitting on her mom's lap catches you staring. You <<if $mask>>wiggle your eyebrows<<else>>make a silly face<</if>> at her and she giggles.
Finally it's your stop, and as you step off the bus you remember:
# [[Oo, it's pizza night!|Monday: Pizza!]]<<set $number_of_people to 50>>
<<set $transmission_rate to 19>>
<<if $mask>>
<<set $transmission_rate to $transmission_rate * $mask_reduction>>
<</if>>
<<include "Exposure Math">><<set $work to true>>
<<set _normal_prevalence to $prevalence>>
<<set $prevalence to 5>>
<!-- Basic set up -->
<<set $number_of_people to (25 - $coworkers_recovered)>>
<<set $transmission_rate to 34>>
<<set $coworker_transmission_rate to $transmission_rate>>
<<if $mask>>
<<set $transmission_rate to $transmission_rate * $mask_reduction>>
<</if>>
<!-- Run exposure math -->
<<include "Exposure Math">>
<!-- Check if there were new coworkers sick from outside -->
<<if $coworkers_days_sick.length < $coworkers_sick>>
<!-- Set new placeholder for the number of newly sick coworkers -->
<<set _coworkers_sick_from_outside to ($coworkers_sick - $coworkers_days_sick.length)>>
<!-- _coworkers_sick_from_outside coworkers got sick outside of work. -->
<!-- For each coworker that is sick from outside, add a new entry to the coworkers_days_sick array with a value above the contagious threshold, as we think they should be contagious by default -->
<<for range _coworkers_sick_from_outside>>
<<run $coworkers_days_sick.push($contagious_threshold + 1)>>
<</for>>
<</if>>
<!-- Make a new placeholder array (_contagious_coworkers) that consists of only the coworkers that are past the contagious threshold -->
<<set _contagious_coworkers to $coworkers_days_sick.filter(coworker_days_sick => coworker_days_sick > $contagious_threshold)>>
<!--There is a total of $coworkers_days_sick.length coworkers who are sick, with _contagious_coworkers.length of them that are contagious.-->
<!-- Count up the number of non-sick coworkers -->
<<set _non_sick_coworkers to ($number_of_people - $coworkers_sick)>>
<!--There is a total of _non_sick_coworkers coworkers who aren't sick.-->
<!-- Start a counter for the newly sick coworkers, so that we can avoid incrementing the number of coworkers_sick while looping through it -->
<<set _coworkers_sick_counter to 0>>
<!-- For each coworker that is not sick -->
<<if _contagious_coworkers.length > 0 >>
<<set _bonus_to_transmission to 0>>
<<for range _contagious_coworkers.length>>
<<set _bonus_to_transmission += .1>>
<</for>>
<<for range _non_sick_coworkers>>
<!-- check if they get sick from an existing contagious coworker -->
<<set $exposure_to_sick_person to random(1, 10000) / 100 >>
<<set $coworker_transmission_rate += _bonus_to_transmission>>
<<if $exposure_to_sick_person <= $coworker_transmission_rate >>
<!-- If yes, increment the counter and add a new fresh entry to the $coworkers_days_sick array -->
<<set _coworkers_sick_counter++>>
<<run $coworkers_days_sick.push(0)>>
<</if>>
<</for>>
<<set $coworker_transmission_rate to $transmission_rate>>
<!-- Add newly sick coworkers to the number of coworkers sick -->
<<set $coworkers_sick += _coworkers_sick_counter>>
<!-- Increment each entry in the coworkers_days_sick array by 1 -->
<<set $coworkers_days_sick to $coworkers_days_sick.map((coworker) => { return (coworker + 1) })>>
<<set _contagious_coworkers_new_array to $coworkers_days_sick.filter(coworker_days_sick => coworker_days_sick > $contagious_threshold)>>
<<set _number_of_contagious_coworkers_for_next_time to _contagious_coworkers_new_array.length>>
<!--You rolled for each of the _non_sick_coworkers healthy coworkers, excluding the $coworkers_recovered of the 25 total coworkers who are in the Recovery population, to see if they got sick, and _coworkers_sick_counter of them got sick. There is now a total of $coworkers_sick coworkers sick, with _contagious_coworkers.length contagious on this day. Each of the coworkers who are sick had their days sick incremented upward after this, so next time there should be _number_of_contagious_coworkers_for_next_time coworkers who are contagious.-->
<</if>>
<<set $prevalence to _normal_prevalence>>
<!-- Set work to false -->
<<set $work to false>>
<!--This is the end of the Work Math portion.--><<set $number_of_people to 15>>
<<set $transmission_rate to 40>>
<<if $mask>>
<<set $transmission_rate to $transmission_rate * $mask_reduction>>
<</if>>
<<include "Exposure Math">><<set $number_of_people to 200>>
<<set $transmission_rate to 19>>
<<if $mask>>
<<set $transmission_rate to $transmission_rate * $mask_reduction>>
<</if>>
<<include "Exposure Math">><<set $number_of_people to 500>>
<<set $transmission_rate to 19>>
<<if $mask>>
<<set $transmission_rate to $transmission_rate * $mask_reduction>>
<</if>>
<<include "Exposure Math">><<set $number_of_people to 75>>
<<set $transmission_rate to 78>>
<<if $mask>>
<<set $transmission_rate to $transmission_rate * $mask_reduction>>
<</if>>
<<include "Exposure Math">><!-- Occupancies
Bus: 50 people
Work: 25 people
Pottery Class: 15 people
Movie: 200 people
Pride: 500 people
-->
<<set $mask to false>>
<<set $prevalence to 2.8>> <!-- August 12th rate: 2.8 -->
<<set $long_covid to false>>
<<set $long_covid_rate to 10>>
<<set $exposures to 0>>
<<set $coworkers_sick to 0>>
<<set $coworkers_days_sick to []>>
<<set $coworkers_recovered to 11>>
<<set $contagious_threshold to 2>>
<<set $mask_reduction to 0.005>> <!-- changed from 0.0005 -->
<<set $sick to false>>
<<set $days_sick to 0>>
<<set $asymptomatic_rate to 20>>
<<set $symptoms to false>>
<<set $days_of_the_week to {} >>
<<set $next_passage to "">>
<<set $next_passage_text to "">>
<!-- <<set $LC_symptoms to [{"name": "ME/CFS (Myalgic Encephalomyelitis/Chronic Fatigue Syndrome", "symptoms": "unrelenting fatigue, brain fog, feeling feverish" }, {"name": "POTS (Postural Orthostatic Tachycardia Syndrome", "symptoms": "racing heart"}, {"name": "diabetes", "symptoms": "weirdly thirsty"}, {"name": "General long COVID", "symptoms": "weird extra things"}]>> --><<set $number_of_sick_people to 0 >>
<<if $work>>
<!--There is a total of $number_of_people susceptible coworkers in the office, with $coworkers_sick coworkers already sick and $coworkers_recovered coworkers recovered from being sick a couple weeks ago.-->
<!-- Set the contagious coworkers variable (placeholder for now, because I don't want to refactor everything-->
<<set _contagious_coworkers_array to $coworkers_days_sick.filter(coworker_days_sick => coworker_days_sick > $contagious_threshold)>>
<<set _previously_contagious_coworkers to _contagious_coworkers_array.length>>
<<set $number_of_people -= $coworkers_sick>>
<<set _coworkers_previously_sick to $coworkers_sick>>
<</if>>
<!--Rolling for $number_of_people people to see if they <<if $work>>got sick outside of work<<else>>are sick<</if>>.-->
<<for range $number_of_people>>
<<set _chance_person_is_sick to random(1, 10000)/100>>
<<if _chance_person_is_sick <= $prevalence>>
<<set $number_of_sick_people += 1>>
<</if>>
<</for>>
<!--The<<if !$work>> total<</if>> number of<<if $work>> newly sick coworkers<<else>> sick people<</if>> is $number_of_sick_people.-->
<<if $work>>
<!-- This bit is just for debug -->
<<set _number_of_possible_sick_people to $number_of_people>>
<<set _coworkers_newly_sick to $number_of_sick_people>>
<!-- End Debug -->
<<set _placeholder = $number_of_sick_people>>
<<set $number_of_people += $coworkers_sick>>
<<set $number_of_sick_people += _previously_contagious_coworkers>>
<<set $coworkers_sick += _placeholder>>
<!--The total number of contagious coworkers is $number_of_sick_people.-->
<</if>>
<!--You were exposed to $number_of_sick_people people who were contagious, out of $number_of_people people.-->
<!--
<<if $work>>As a reminder, there were _coworkers_previously_sick coworkers previously sick and _coworkers_newly_sick coworkers who are newly sick. You rolled for _number_of_possible_sick_people healthy coworkers, excluding the $coworkers_recovered who were in the Recovery population, to see if they would get sick outside of work, and the result was _coworkers_newly_sick coworkers got sick. This is the end of the Exposure Math portion.<</if>>
-->
<<set $exposures += $number_of_sick_people>>
<!-- if exposed and not already sick, do we get sick? -->
<<if $number_of_sick_people > 0 && !$sick>>
<<set _bonus_to_transmission to 0>>
<<for range $number_of_sick_people>>
<<set _bonus_to_transmission += .1>>
<</for>>
<</if>>
<<if !$sick>>
<<set $chance_of_transmission to random(1, 10000) / 100 >>
<<set _temp_transmission_rate to $transmission_rate>>
<<set _temp_transmission_rate += _bonus_to_transmission>>
<<if $number_of_sick_people === 0>>
<<set $chance_of_transmission to 100>>
<</if>>
<<if $chance_of_transmission <= _temp_transmission_rate >>
<!--You got sick.-->
<<set $sick to true>>
<<set $day_object.sick to true>>
<</if>>
<</if>>
<<if $sick === false >>
<!--You didn't get sick.-->
<</if>><<set $number_of_people to 50>>
<<set $transmission_rate to 10>>
<<if $mask>>
<<set $transmission_rate to 0>>
<</if>>
<<include "Exposure Math">><<set _symptom_roll to random(1, 10000)/100>>
<<if _symptom_roll > $asymptomatic_rate>>
<<set $symptoms to true>>
<</if>>
<<set _chance_of_LC to random(1, 10000)/100>>
<<if _chance_of_LC <= $long_covid_rate>>
<<set $long_covid to true>>
<</if>>
<!-- <<if _symptom_roll <= 100>> -->
<!-- <<if _chance_of_LC <= 100>> -->You encountered ''$exposures people'' who were sick with COVID this week. <<nobr>>
<<set $asymptomatic_text to "">>
<<if !$symptoms>>
<<set $asymptomatic_text to "You didn't realize at the time, however, because you were one of the <a href='https://health.clevelandclinic.org/asymptomatic-covid' target='_blank'>around " + $asymptomatic_rate + "% of people who don't have symptoms</a>.">>
<<if $mask>>
<<set $asymptomatic_text += " Fortunately, because you were wearing a mask, it's unlikely that you unknowingly infected anyone else.">>
<<else>><<set $asymptomatic_text += " Unfortunately, because you weren't wearing a mask, it's far more likely that you unknowingly infected someone else.">>
<</if>>
<</if>>
<<if $sick>>
<<if $mask>>Unfortunately you were very unlucky and ''you got COVID''. One-way masking with an n95 drastically reduces your risk, but it isn't foolproof.
<<else>>Unfortunately ''you got COVID''.
<</if>>$asymptomatic_text
<<else>>
<<if $mask>>Luckily ''you avoided getting COVID'', in large part due to wearing a mask.
<<else>>You were very lucky! ''You avoided COVID'' this week, despite those close calls.
<</if>>
<</if>>
<<if $long_covid>><p>Like around $long_covid_rate% of folks who get COVID, you also experienced long term health issues as a result<<if !$symptoms>>, although since you were asymptomatic you probably didn't make the connection<</if>>. COVID can increase the risk of many conditions, including autoimmune diseases, cardiovascular illnesses, diabetes, POTS, and ME/CFS.</p>
<</if>>
<</nobr>>
!!Full Results
<<nobr>>
<<script>>
let DESCRIPTION = new String("<ul>");
for (const day in State.variables.days_of_the_week) {
if (Object.hasOwnProperty.call(State.variables.days_of_the_week, day)) {
console.debug(day + " concatenated");
const current_day = State.variables.days_of_the_week[day];
DESCRIPTION = DESCRIPTION.concat("<li><strong>"+day + ":</strong> ");
DESCRIPTION = DESCRIPTION.concat(current_day.exposures.total +" Exposures.");
if(current_day.sick){
DESCRIPTION = DESCRIPTION.concat(" (You got sick from one of the exposures on this day.)");
}
DESCRIPTION = DESCRIPTION.concat("</li>");
}
}
DESCRIPTION = DESCRIPTION.concat("</ul>");
State.variables.week_summary = DESCRIPTION;
<</script>>
<</nobr>>
$week_summary
<<button "Try Again?">>
<<script>>
Save.browser.auto.clear()
UI.restart();
<</script>>
<</button>>
!!How did this game work?
As you went about your week, you encountered a certain number of people in the various locations. Each person had a $prevalence% chance of having COVID; this was based on the estimate for the US at the time this game was made, specifically the <a href="https://www.pmc19.com/data/" target="_blank">Pandemic Mitigation Collaborative Report for August 12, 2024</a>.
The game determined how many sick people you were exposed to at a particular location, then calculated whether you got sick from each exposure. The latter was more difficult to estimate, since <a href="https://www.epa.gov/indoor-air-quality-iaq/indoor-air-and-coronavirus-covid-19" target="_blank">transmission depends many factors</a> including: whether you're indoors or outdoors, the volume of air in the space and number of air changes per hour, filtration, time spent in the space, how infectious the individual is, what activity people are doing, distance between people, and how immune you are (such as how recently you were vaccinated or sick). We used the <a href="https://partnersplatform.who.int/aria" target="_blank">Airborne Risk Indoor Assessment (ARIA) tool</a> from the World Health Organization to help estimate this for indoor settings, and assumed very low transmission rates outdoors.
<<if $mask>>Since you chose to wear a mask at the beginning of the game, all of your transmission risks were reduced significantly.<<else>>Since you didn't choose to wear a mask at the beginning of the game, all of your trasmission risks were unchanged. If you had worn a mask, they would have been reduced significantly.<</if>>
For simplicity, chance of Long COVID was calcuated at 10% -- many studies are higher, and some are lower. Instead of randomizing symptoms and diagnosis, we simply chose a general Long COVID diagnosis, with symptoms similar to eladnarra's experience of post-viral ME/CFS.
!! Assumptions
It's tricky to make a true simulation. We made some assumptions to help simplify things a bit.
* The player character hasn't had a recent infection or vaccine, so their level of immunity is low.
* If the player character gets sick, they test positive on a rapid antigen test on day 3. //''This is not true to life:''// Many people would not test positive on their first day of symptoms. This is why the FDA says that <a href="https://www.fda.gov/medical-devices/coronavirus-covid-19-and-medical-devices/understanding-home-otc-covid-19-antigen-diagnostic-test-results#OTC" target="_blank">if you test negative you should test again</a>, 48 hours later. (And if you know you have been exposed, you should test again after a second negative test, for 3 tests over 5 days.)
* The vast majority of other folks aren't wearing a mask. (This matches our experience where we live.)
* Clara doesn't get sick before movie night, so movie night is only cancelled if the player character tests positive before Friday night.
* The character doesn't have one or more <a href="https://www.pmc19.com/data/" target="_blank">underlying conditions</a> that make hospitalization or death likely, which includes but isn't limited to: older age, asthma, cancer, dementia, diabetes, HIV, immunocomprised status, depression, pregnancy, or other disabilities. The ending could be quite different if that was the case.
* We did not account for transmission from prior occupants of indoor spaces, even though <a href="https://www.epa.gov/indoor-air-quality-iaq/indoor-air-and-coronavirus-covid-19" target="_blank">COVID can hang in the air for hours</a>, like smoke.
!! Credits
* <a href ="https://drive.google.com/drive/u/0/folders/1-36nLeGpaWNzt9X_9dqLqbibbzI2wE68" target="_blank">Aura mask image</a> by tinyhorseshoe.When you get home you pop a frozen pizza in the oven. You're exhausted from work, but manage to play a bit more of Melda: New Tears of the New Kingdom. It's annoying, because it's actually the older game, but Bintendo keeps doing these weird naming conventions for sequels. Ah well, at least it's fun!
# [[Tomorrow's another day...|Tuesday: Morning]]<<if $mask>>This time you manage to catch your normal bus. Hooray! <</if>>Right as you find a seat, Jessica texts you about Pride this weekend; she and some other friends want to meet up for the parade on Saturday, hit a bar or club that night, and then check out a Pride craft festival the next day. It sounds fun!<<if $mask>> That many people does kind of worry you, since it seems like COVID is spreading more at the moment, but you figure as long as you wear a mask it will be doable.<</if>>
You start planning your outfit (you have some rainbow socks somewhere...), and the commute flies by; here's your stop!
# [[Time to crunch some numbers...|Tuesday: Work]]Wednesday goes pretty much the same way as Monday<<if $sick_days > 1>>, aside from a bit of a sniffle<</if>>. But it seems to fly by, because...
# [[It's pottery class time!|Wednesday: Pottery Class]]<<include "Pottery Class Math">>It's a short walk from your office to the downtown studio. You signed up for this community pottery class a while ago and found it to be a nice fixture of your weeks. You get a real workout, and there are so many talented students.
The teaching environment is pretty standard — you have one teacher, Julio, who has been doing pottery for decades at this point, and he's been giving the class a rundown of different techniques to work through.
It's a wheel class, and today the plan is to throw a vase that you'll glaze next week after the first (bisque) firing. There are also some pre-made, leather-hard pots that you're meant to practice trimming on. (Since the class is only once a week, you normally don't get to trim your own work; it'd be too dry by the time you returned.)
You grab your clay and wedge it; it's a bit like kneading bread, except instead of soft dough you're pushing denser clay into the work surface. Once you're satisfied with it, you get settled at a wheel and start to throw.
Centering the clay on the wheel used to be really difficult, but you've built up a little bit of muscle since you started throwing, and the clay behaves. Pretty soon you're pulling up the walls of the vase, narrowing the neck and flaring out the rim.
Once you're finished and your vase is safe in the drying room, you start to practice trimming. It's awkward at first; you're supposed to remove excess clay from the base of the pot, but you're worried about making a hole. Julio helps you get a feel for it, and you chat with another classmate about the process as you practice.
The class is over before you know it, and you help clear up and say your goodbyes to Julio and your classmates (and your vase!).
# [[What a great evening...|Wednesday: Home]]You're exhausted after class. Your shoulders are sore, but it's a weirdly satisfying soreness. Takeout tonight!
The food arrives promptly. Fried dumplings, stewed veggies, and bulgogi. It's an indulgence, but you like to think of it as a reward for your hard work in class.
You get ready for bed while thinking about how your vase might turn out.
# [[Well, back to the grind tomorrow.|Thursday: Morning]]There's an interdepartmental meeting coming up in a few weeks, and when you get into work your boss springs a report on you that she wants you to work on and present. It's not exactly your area of expertise, but... Okay, sure.
Clara stops by your desk to discuss it, and in the midst of working out the details she notices the figurines decorating your area. She recognizes Bames Jond, the action hero with the cool suit and problematic relationship with empire, and the two of you bond over a shared love for action movies.
You offhandedly mention you're going to see a movie on Friday — one of the new ones from the recent Sadman Spysalot series, but thankfully not one of the ones with the shaky-cam in the action sequences. Clara excitedly invites herself along to go see it with you.
The day flew by, and maybe you didn't get a whole lot done, but hey, new work friend!
# [[Home again!|Tuesday: Bus]]Mask: $mask
Exposures: $exposures
Sick: $sick
Days Sick: $days_sick
Symptoms: $symptoms
Long Covid: $long_covid
Daily Stats
Exposures today? $day_object.preliminary_exposures
Got sick today? $day_object.sick
Coworkers Sick: $coworkers_sick
Coworker Transmission Rate: $coworker_transmission_rate
Bonus to transmission rate: _bonus_to_transmission
Temp transmission rate: _temp_transmission_rate
Transmission rate: $transmission_rateby eladnarra and silasoftrees
<!--<img class="white-background" alt="An n95 respirator." src="3M-Aura-1_cropped2.png" width="400px" height="217px">-->
<img alt="An n95 respirator." src="an-individual-choice-cover-sans-title.png" width="400px" height="227px">
<<nobr>>
<<button "Start" "Monday: Entryway">><</button>>
<<if Save.browser.size > 0>>
<<button "Continue">>
<<script>>
Save.browser.continue()
.then(() => {
Engine.show();
})
.catch(error => {
/* Failure. Handle the error. */
console.error(error);
UI.alert(error);
});
<</script>>
<</button>>
<</if>>
<</nobr>>The bus ride home is nothing to really write home about. You're mostly engrossed in your phone for the ride, reading people's opinions about the movie.
# [[Oops, you missed your stop! Gotta hop off at the next one...|Tuesday: Taco Night]]<<nobr>>
<<set $next_passage_text to "Time for work, you guess.">>
<<set $next_passage to "Tuesday: Rush Hour">>
<</nobr>>You wake up feeling refreshed, and after breakfast you hurry out of the house to catch your bus. <<if $mask>>(This time your box of n95s is where you left it by the door. You easily grab a new one to give yesterday's a bit more time to air out.)<</if>>Tuesday is Taco Night! You eat your fill of some homemade tacos and settle in for the night.
You're already wishing it was Friday — but now for a good reason. Going to a movie with a friend will be nice<<if $mask>>; easier to keep your mind off the COVID risk<</if>>. Maybe you can make a regular thing of it.
# [[Time for sleep!|Wednesday: Morning]]<<nobr>>
<<set $next_passage_text to "Just gotta get through the work day...">>
<<set $next_passage to "Wednesday: More of the Same">>
<</nobr>>Today's an exciting day, but not because of anything at work — your pottery class is this evening! You get out the door a little bit quicker than normal<<if $mask>>, stopping to pick up your mask, of course<</if>>.<<nobr>>
<<set $next_passage_text to "Off to the bus!">>
<<set $next_passage to "Thursday: Bus">>
<<if $symptoms>>
<<include "Waking up Sick">>
<<else>>
<p>You wake up and get ready for the day. It's rare that you shower in the morning, but you didn't have the time or energy for it after the pottery class last night.</p>
<p>It's rejuvenating<<if $days_sick > 1>>, and it helps clear your chest, which is a little phlegmy this morning<</if>>. You might try and make a habit of this...</p><</if>>
<</nobr>>There's no people-watching for this bus ride — instead, your eyes are drawn to the wonderful decorations the city is putting up along the streets for Pride. It takes some activism, but keeping Pride on the slate of celebrations for your city is worth it. You're always delighted to see what people come up with. Some beautiful rainbow flags hanging from storefronts, a Progress Pride flower arrangement in the window of a flower shop...
You arrive at your stop, feeling a little envigorated. This weekend is gonna be great!
# [[Only 2 more work days!|Thursday: Work]]<<if _contagious_coworkers.length < 10>>You and your team make some pretty good progress on the report. It's nice to have a team to work with.<<else>>You have some difficulty getting through the day, as it seems a fair amount of your team are feeling under the weather. It's not ideal, but you guess we all have bad days...<</if>>
Lunch is uneventful -- you spend most of it thinking about your part of the report. You only really come out of your hyperfocus at the end of the day on your way to your bus stop. Well, that's a workday done and dusted at least.
It's raining by the time your bus arrives<<if $mask>>, but luckily, you have your umbrella to protect your mask from getting wet<</if>>. You board and find an open window seat near the middle. The rocking and sway of the bus on the ride home feels rhythmic and relaxing; combined with the pattering sound of the rain on the bus window, it's a weirdly cozy time. You doze a little bit, letting the stress of the workday go.
# [[Oh, here's your stop.|Thursday: Home Again]]The rain lets up just enough to not be an issue on the walk from the bus stop to your place, but it kicks back up just as you get in. You watch the rain through your window for a bit, the pleasant feeling from the bus ride still with you for the moment.
That was a long day. Time for something easy.
You put on a pot of water to boil, set up a saucepan of tomato sauce to simmer, and a couple timers to check them both. Spaghetti and premade tomato sauce -- a little plain, not quite set-it-and-forget-it, but it's pretty hard to completely mess up. And hey, tomorrow's Friday -- movie night! You can stand to have something boring tonight.
The rain is still going by the time you finish dinner, but thankfully there's no risk of lightning according to your weather app. You have a quick shower and then get ready for bed.
# [[The sound of rain is a lullaby as you drift off to sleep.|Friday: Morning]]<<nobr>>
<<set $next_passage_text to "Time to go!">>
<<set $next_passage to "Friday: Bus">>
<<if $symptoms>>
<<include "Waking up Sick">>
<<else>>
<p>You wake up before your alarm. It's not a bad wake-up -- you feel pretty energized<<if $days_sick >1>>, though a little sniffly<</if>>. Just one of those days you don't need an alarm to get up.</p>
<p>The draw of the movie tonight and the fun of the weekend after has you on your feet and ready to go in no time.<<if $mask>> You grab your mask as you head out the door.<</if>></p>
<</if>><</nobr>>The Pride decorations are up across the city -- some folks on the bus are dressed up to celebrate early, and why not? It might not be Pride month (your city holds it later in the year, since it's simply too hot in June), but rainbows and joy are nice to wear any time of year.
You spend some time checking your phone for non-spoiler reviews of the movie you're seeing tonight. There's apparently some discourse about Sadman Spysalot, but you don't spend enough time on whatever platform originated the discussion to really understand it. It's getting hard to really figure out what anyone is talking about online, what with the balkanization of the different social media platforms like Mitter and Bacefook; you give up after the fifth or sixth meme that could either be Pro-Sadman, ironically Anti-Sadman, or some sort of false flag fandom barrage from the Anti-Pro Sadman groups.
Ah, there's your stop. You hop up out of your seat and get going.
# [[Last day before the weekend!|Friday: Work]]Everything lags on Friday. Your team made a pretty valiant effort Thursday, so your boss isn't pressing anyone today. In fact, they seem to be in the mood for the holiday weekend too. They tell everyone at the daily standup to have a good weekend and happy Pride.
You catch up with Clara after lunch. She's bewildered by the online discourse too. although she's also significantly less online than you. It's nice, honestly -- you're starting to think of yourself as her bulwark against the Bad Takes, making sure to only share the really good stuff.
She invites you to dinner before the movie at a semi-nice restaurant near the movie theater. You're happy to go along with it, and she'll be driving, which is good with you.
You catch up with her later in the parking lot and hop in to her car.
# [[Wonder what's on the menu...|Friday: Dinner and a Movie]]<<nobr>><<include "Ride With Friend Math">>
<<include "Restaurant Math">>
<<include "Movie Math">><</nobr>>Your work isn't too far from the downtown area with the movie theater, so the ride goes fairly quickly.<<if $mask>> You keep you mask on anyway, just in case; Clara doesn't mind.<</if>>
The restaurant has some easy parking, thankfully.<<if $mask>> Clara picked it out as it has a really nice outdoor dining area, with fans for the hot nights and heaters for the cold. You can keep your mask on when you're not eating, and hopefully the ventilation outside is sufficient!<<else>> Clara thought you'd like the decor inside -- some of it kitschy, but some genuinely interesting.<</if>>
The food is good and the service is solid. You leave a nice tip on behalf of the both of you, waving off Clara's protests to pay her part on the basis that she did the driving, so it's only fair. Clara finds this argument persuasive; in the conversation on the way to the theater, you discover that she has experience as a service worker. She got out and into the industry you both work in, but she likes to pay it forward to the folks still in it when she goes out to eat.
<<if !$mask>>Despite the great dinner, you can't help but pick up some popcorn at the concessions stand. It feels weird to go to the movies without it. <</if>>You and Clara keeping chatting as you get seated in the theater, continuing until the lights dim. It's been awhile since you've been in a theater, so there's a bit of a magic feeling to the whole production.<<if $mask>> You're thankful for your good-quality mask letting you do this with at least some degree of safety.<<else>> You munch some popcorn, relishing the probably health-depleting overdose of salt and butter.<</if>>
The movie. Is. Awesome. Clara agrees afterwards once you're out of the theater, and you both find yourselves competing to imitate the funny finger-pistol-reload Sadman does in that one fight scene. Man, it's nice to share this silly garbage with someone.
# [[But now it's time to head home|Friday: Goodbyes]]Clara drops you off at your place. You agree to check out the next installment, which there will almost certainly be next year given their release cadence, and Clara suggests you could come over to her place next time and watch her favorite series, The Fightsman With Fists. You'd heard of it from chatter online as sort of a cult hit -- a bit more thoughtful and much better choreographed than the Sadman Spysalot series. You make plans for it next week. Clara drives off after wishing you a good night and good weekend. You wonder if you might see her at Pride this weekend...
Ah! What a night. And you have more to look forward to tomorrow! You get ready for bed and are out like a light the minute your head hits the pillow.
# [[Pride tomorrow!|Saturday: Morning]]<<nobr>>
<<set $next_passage_text to "Let's go!">>
<<set $next_passage to "Saturday: Bus to Pride">>
<<if $symptoms>>
<<include "Waking up Sick">>
<<else>><p>The weekend! Finally!</p>
<p>You get in another morning shower. Thankfully, your Pride outfit is just a sensible Pride flag t-shirt, some snazzy striped pants that are just fancy enough to be odd to wear at the office but not so fancy as to be uncomfortable, and some fun rainbow socks.</p>
<p><<if $mask>>You slow down enough to eat breakfast, standing at your kitchen counter, and pack some lunch for a picnic in the city park later in the day. You grab your mask and strap it on before heading out.<<else>>You race out the door with a breakfast bar to eat on the bus.<</if>> The Pride parade is starts soon, and you need to be quick if you want to get the early weekend bus in time.</p>
<</if>>
<</nobr>>The bus is just as packed as it was during the week -- unusual for the weekend, but it is a holiday. Not everyone on the bus is going to the parade, of course, but you're pleased to see there's a good chunk of folks who are.<<if !$mask>> You snack on your breakfast bar while checking your phone and occasionally people-watching.<</if>>
You strike up a conversation with your seat neighbor when they notice your Pride flag shirt. They're excited for the Pup float. The Leather community has been really influential with activism around the city, so it's always nice to see them getting a bit of a spotlight. You're just happy to see everyone out and enjoying themselves.
You text your friend Jessica to see where you'll be meeting up. Looks like it's just a few more stops...
# [[Main Street!|Saturday: Pride Parade]]<<include "Pride Math">>You arrive at the cross street that Jessica mentioned. There are so many people here!<<if $mask>> You're reassured by how snug your mask is.<</if>> After a bit of time sifting through the crowds, you hear someone call for your name. You spot Jessica waving, standing with a group of her friends. They're all dressed in delightfully varied outfits. Heart-shaped sunglasses, denim vests, swishy skirts... It's great!
Jessica introduces you to her friends you haven't met yet and you exchange hugs with the ones you have. The conversation turns towards small talk; the weather for the parade, how nice it is to be out with friends, etc. You bring up the Sadman Spysalot movie and find that a few of Jessica's friends are pretty strong action fans. Soon enough the group engages in a sort of performance art re-enactment of the final melodramatic shootout with the Spysalot arch villain, Fedsm'n. It's silly, but you guess this is the time to not be so worried about cringe. Some of the growing crowd cheer at the theatrics of Jessica's friend Steve, who manages a solid impression of the Fedsm'n's death scene.
The sounds of musical instruments and cheering echo down the streets. The parade is coming your way! And soon enough, it's here: floats and groups of marching celebrants, bedazzled and be-rainbow'd vehicles of all types. So many cool costumes. It amuses you how much crossover there is with the nerdy cosplay types and the queer community. Certainly improves the outfits.<<if $mask>> When there's a lull in the marchers, you take the chance to go find a more secluded area to take off your mask and take a sip of water from the water bottle in your backpack<<else>> You sip some water as you watch<</if>>; it might not be June, but it's getting towards the afternoon at this point, hot enough to warrant some rehydration.
You and Jessica cheer the parade on as it passes by, along with her friends. At the end, you feel nearly hoarse from the effort<<if $mask>>, and your mask is humid as all hell<</if>>, but that's something to bother Future-You. Now that the parade is done, it's time to head off to the <<if $mask>>park for a socially-distanced picnic with Jessica<<else>>local cafe to get lunch with Jessica<</if>>.
# [[You're hungry!|Saturday: Lunch]]<<include "Bar Math">>The bar is... loud. You can feel the stereo system in your chest on entering. It's a good thing you remembered to bring your hearing-protective earplugs.
You follow Jessica to the bar and order some drinks. Some of her friends greet you when you arrive. Some new faces, some old ones from earlier at the parade. It looks like maybe a couple of them have been pre-gaming -- not a surprise, given the party atmosphere of the weekend.
<<if $mask>>After popping out to the patio to down your drink,<<else>>After a couple drinks at the bar,<</if>> Jessica takes you out to the dance floor. The two of you have some fun dancing to the DJ's somewhat eclectic mix of EDM and Bate Kush. They hit a bit of a sour patch with a less danceable Paft Dunk breakcore remix, but after some persuasion from the crowd switch to a classic remix of Bate Kush's seminal hit, Hunning Up That Rill. The two of you sing-shout along to the chorus as you dance.
A remix hits you like a brick to the head -- a cover/remix of that ancient Numa Numa meme song?? But it hits the crowd too, and it seems like even the hangerbacks at the bar are up and dancing. You can't help but dance along too. Man, it's been ages since you got to party like this.
You have to leave the party a little earlier than everyone else to catch the late bus back home. You give Jessica a hug and promise to see her again at the craft faire tomorrow.
# [[Zzzzzzzz...|Saturday: Bed]]You are. Exhausted. You don't bother getting undressed. Time for sleep.
# [[You sleep like a log.|Sunday: Morning]]<<nobr>>
<<set $next_passage_text to "Okay, let's go to the craft faire.">>
<<set $next_passage to "Sunday: Craft Faire">>
<</nobr>><<if $symptoms>><<include "Waking up Sick">><<else>><p>You drag yourself out of bed and yawn<<if !$mask>>, wincing slightly<</if>>. You're not used to being out so late these days.</p><p>But you shake off the night before as best you can. The weekend isn't over yet!</p><</if>><<nobr>><<include "Pride Math">>
<<include "Bus Math">><</nobr>>
You take the bus to the craft faire and meet up with Jessica at the gate. She's got a list of crafters she wants to hit up. You just wanna walk the entire thing, even though your legs protest a little after yesterday's celebrations. It's going to be a short day today at least -- after the faire you're just going to relax at home and do some chores. But for now, time to do a little browsing.
You follow Jessica, occasionally stopping to check out something that catches your eye. On the way to the dicemaker that Jessica adores, you spot a pottery booth. The pieces are so cute! Not just pottery, but ceramics of all kinds -- statues and other clay art. You pick out a serving plate that looks fantastic, with a sort of opalescent shimmer to it. It's pricey, but after talking over the details of the piece with the person running the booth you're pretty certain the work that went into making it warrants the price tag.
You head home with perhaps a few more purchases than you planned, but thankfully you only took what you could carry. It'll be so nice to decorate your place a bit with these pieces.
# [[Time to chill.|Sunday: Lazing Around]]You get home and put up your craft faire purchases. Time to relax -- you've got work tomorrow. You slouch down on your couch and put on some lofi chill music. After all the excitement, it's nice to just wind down. When dinner comes around you put a frozen meal in the oven as an easy meal.
Before you know it, the sun is going down and it's time to get ready for bed. You wish the weekend was longer, but remembering that you've got plans to hang out with Clara during the week makes the prospect of having to go back to work not so bad.
<<nobr>>
<<if $sick && $days_sick < 3 >>
<<include "LC & Symptoms Math">>
<</if>>
<<if $symptoms>>
<ol><li><<link "A few days later..." "A few days later...">><</link>></li></ol>
<<else>>
<ol><li><<link "Game Summary" "Game Summary">><</link>></li></ol>
<</if>>
<</nobr>><<if tags().includes("start_of_day") && $sick>>
<<set $days_sick += 1>>
<<if $days_sick === 3>>
<<include "LC & Symptoms Math">>
<</if>>
<</if>>
<<if tags().includes("work")>>
<<include "Work Math">>
<</if>>
<<if tags().includes("bus")>>
<<include "Bus Math">>
<</if>>
<<if tags().includes("cafeteria")>>
<<include "Cafeteria Math">>
<</if>>You wake up feeling terrible. Your throat is sore, you're all congested, and once you get out of bed the coughing starts. Oh no...
You find a rapid test and swab your nostrils, then wait 15 minutes, afraid to look until the time is fully up.
There are two lines on the test. One control line, one test line. Your heart sinks. Time to call out at work...
<<include "Long COVID">>
# [[Game Summary]]<<if tags().includes("start_of_day") && $symptoms>>
<ol><li><<link "Fuck, where's that COVID test?" "Testing Positive">><</link>></li></ol>
<<elseif tags().includes("start_of_day") && !passage().includes("Monday")>>
<ol><li><<link $next_passage_text $next_passage>><</link>></li></ol>
<</if>><p>You wake up feeling terrible. Your throat is sore, you're all congested, and once you get out of bed the coughing starts.</p><p>You can't be sick. Not this week of all weeks!</p>You find a rapid test and swab your nostrils, then wait 15 minutes, afraid to look until the time is fully up.
There are two lines on the test. One control line, one test line. Your heart sinks. There goes the rest of your week.
<<script>>
const DAYS_OF_WEEK_ARRAY = ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"];
//Find the index of the current day of the week;
const DAY_INDEX = DAYS_OF_WEEK_ARRAY.indexOf(State.variables.day_name);
//Days M-W are the first bin (indices 0 - 2), and R F S, Y are 3, 4, 5, and 6 respectively.
const BINS_FOR_DAY_INDICES_ARRAY = [2, 3, 4, 5, 6];
//Find the index of the current bin
const BIN_TO_SEARCH_FOR = BINS_FOR_DAY_INDICES_ARRAY.find(bin => DAY_INDEX <= bin);
const DAY_INDEX_BIN = BINS_FOR_DAY_INDICES_ARRAY.indexOf(BIN_TO_SEARCH_FOR);
//Create the different text to use
let text_to_return;
const text_work_boss_reaction = "Your boss is understanding, but reminds you that you should get a doctor's note if it takes more than a couple days. ";
const text_work_weekday = "You call out sick at work. " + text_work_boss_reaction;
const text_work_weekend = "You call out sick for Monday at work. " + text_work_boss_reaction;
const text_clara = "You text Clara to cancel your plans for the dinner & movie ";
const text_clara_reaction = "She's sad but mainly for you getting ill -- she wishes you a quick recovery and promises to help cover for you at work. You try to apologize that she'll have to pick up your slack, but she brushes you off and tells you to get some rest. ";
const text_clara_thursday = text_clara + "on Friday. " + text_clara_reaction;
const text_clara_friday = text_clara + "tonight. " + text_clara_reaction;
const text_jessica = "You text Jessica to let her know you won't be able to make it to ";
const text_jessica_reaction_before_pride = "She offers to swing by and drop off a care package. She's such a good friend -- you're sad you'll miss her."
const text_jessica_weekday = text_jessica + "Pride this weekend. " + text_jessica_reaction_before_pride;
const text_jessica_reaction_after_pride = "She offers to swing by later today and drop off a care package. She's such a good friend -- at least you got to see her for a little bit. ";
const text_jessica_saturday = text_jessica + "Pride today or tomorrow. " + text_jessica_reaction_before_pride
const text_jessica_sunday = text_jessica + "the craft faire today. " + text_jessica_reaction_after_pride;
switch (DAY_INDEX_BIN) {
case 0: //Monday - Wednesday
break;
case 1: //Thursday
text_to_return = text_work_weekday + text_clara_thursday + text_jessica_weekday;
break;
case 2: //Friday
text_to_return = text_work_weekday + text_clara_friday + text_jessica_weekday;
break;
case 3: //Saturday
text_to_return = text_work_weekend + text_jessica_saturday;
break;
case 4: //Sunday
text_to_return = text_work_weekend + text_jessica_sunday;
break;
default:
break;
}
State.variables.calling_out_sick_text = text_to_return;
/*
All below are in the context of the morning of the stated day
Monday - Wednesday: Not relevant
Thursday: Plans - Movie, Pride, Work
Friday: Plans - Movie, Pride, Work
Saturday: Plans - Pride, Work on Monday
Sunday: Plans - Pride craft faire, Work on Monday
two ways to get to "testing positive" - first passage of the day, and final Sunday passage
*/
<</script>>$calling_out_sick_text
<<include "Long COVID">>
# [[Game Summary]]<!-- average of 40 four tops, on average 2 people per four top, plus average of 15 workers in restaurant -->
<<set $number_of_people to 95 >>
<<set $transmission_rate to 17>>
<<if $mask>>
<!-- assume we dine outdoors, the number of people changes (let's assume it's a well-ventillated outdoor patio but fenced so we don't have to worry about people walking by so much) -->
<<set $number_of_people to 40>>
<<set $transmission_rate to 1>>
<</if>>
<<include "Exposure Math">><<set $number_of_people to 1 >>
<<set $transmission_rate to 30>>
<<if $mask>>
<<set $transmission_rate to $transmission_rate * $mask_reduction>>
<</if>>
<<include "Exposure Math">><<if $mask>>You and Jessica find some picnic tables and have a nice lunch in the park.<<else>><<include "Cafeteria Math">>You and Jessica hit up the local cafe.<</if>> You talk a bit about work, she shares about some of the drudgery at her work for the past week, and then you start in on the latest pottery piece you're working on. Jessica has been good enough to take a few of your early pieces as gifts. It's gratifying to know that they're seeing good use. She's excited to hear about this upcoming one -- she's been pushing you to think about starting up a little online shop to sell some of your extra pieces. You appreciate the enthusiasm, but you're not so sure. It's fun to make things, but doing it for money might be a little too stressful.
You while away the hours, people-watching and catching up, until it's getting into the evening. You grab a hotdog from a nearby stand, and then it's about time to head off to the next stop on today's Pride agenda.
# [[It's time to dance!|Saturday: Bar]]<<if $long_covid >>You recover okay from your initial bout of COVID, but some time later you notice feeling run down. You have trouble concentrating at work, and using a pottery wheel leaves you exhausted for days. After a while, you go to your primary care doctor and get diagnosed with Long COVID.
It will be hard to improve, and recovery is uncertain, but your doctor tries to have you focus on getting better rather than "back to normal." And you have some hope after learning that there is a large community of folks with Long COVID, doing advocacy and pushing for better research and care for those who get it.<</if>>