,,,,(set: $turn to "astronauts")What would you like to work on?
(if: $research < 100)[[[RESEARCH]]
](if: $equipment < 100)[[[EQUIPMENT]]
](if: $scanning < 100)[[[SCANNING]]]{
(set: _research to (random: $sciencemin, $sciencemax) + ($equipment / 10))
(set: $research to it + _research)
(if: $research > 100)[(set: $research to 100)]
(if: $research < 35)[(either:
"You observe the crystal structure of Viktorova's arm, but find it hard to keep your breakfast down.",
"You study the black pool in the quarantine module, which seems to be pulsating.",
"With remote tools, you conduct research into the stones that Viktorova has coughed up so far.",
"In a controlled environment, you study a dormant sample of dust that came in on Viktorova's space suit.",
"You consult records from Earth to further investigate the nature of the crystalline dust."
)
]
(elseif: $research < 67)[(either:
"You further look into the state of Viktorova, whose head is now considerably crystalline. It's difficult to hold back tears as you try to work the problem.",
"You attempt to study the pulsating black pool in the quarantine module, although it's having a strange effect on the CCTV.",
"With remote tools, you collect more of the stones that Viktorova has coughed up, and attempt an analysis.",
"You study the previously dormant sample of dust from Viktorova's space suit, which is now moving.",
"Using Earth records, you continue to investigate the nature of the violet dust."
)
]
(else:)[(either:
"You observe what was Viktorova - now a grotesque crystal cocoon. You continue to wonder where things will go from here.",
"The swirling pool of black liquid interferes with the CCTV, but you attempt to study it through a computer simulation.",
"You continue to dissect the stones Viktorova coughed up, using remote tools.",
"The now-moving sample of dust from Viktorova's suit is difficult to study through the microscope, but you are able to make some observations.",
"You compare and contrast the violet crystal dust with other elements recorded on Earth. It's some kind of alien organism - you know that much.",
)]
}
[[Time to send your report.->astronaut report]]{
(set: _equipment to (random: $sciencemin, $sciencemax))
(set: $equipment to it + _equipment)
(if: $equipment > 100)[(set: $equipment to 100)]
(if: $equipment < 35)[(either:
"You use the space station's remote manipulator system to observe the damage to the solar panels.",
"You conduct routine, yet important, maintenance on the space station.",
"To make sure the quarantine module is extra secure, you work with Huang and Norton on the sealant.",
"You, Huang and Norton ensure that there are no additional points of entry for the crystalline dust on the space station.",
"Along with your fellow astronauts, you check that every other part of the space station is still in full working order."
)
]
(elseif: $equipment < 67)[(either:
"With the dexterous manipulator, you attempt to fix some of the damage to the solar panels.",
"With Huang and Norton you conduct routine maintenance, triple-checking everything.",
"You add extra security measures to the quarantine module.",
"Your fellow astronauts help you to ensure that the space station's exterior is safe from the crystalline dust.",
"You continue to check that the whole of the space station - apart from the damaged solar panels - is fully functional."
)
]
(else:)[(either:
"You and Norton assist Huang with an EVA to work on the solar panels, now that they are free of dust.",
"Routine maintenance on the space station continues, with your help.",
"You check for any leaks or cracks in the quarantine module. It's hard to think that Viktorova is in there.",
"Ensuring the solar panels are safe - for now - you and Huang assist Norton with an EVA to work on the solar panels.",
"You conduct a thorough investigation into the working order of the space station and any potential points of entry for the violet dust."
)
]
}
[[Time to send your report.->astronaut report]]{
(set: _scanning to (random: $sciencemin, $sciencemax) + ($equipment / 10))
(set: $scanning to it + _scanning)
(if: $scanning > 100)[(set: $scanning to 100)]
(if: $scanning < 35)[(either:
"You scan for survivor settlements on Earth.",
"You scan Earth to investigate places where communication has been lost.",
"With Norton, you make observations into areas of the Earth that have - literally - gone dark.",
"With Huang, you work on telescopes and scan space for possible traces of the violet dust.",
"You, Huang and Norton evaluate the current state of Earth based on the observations you make. It doesn't look good."
)
]
(elseif: $scanning < 67)[(either:
"You continue to scan for survivor settlements on Earth, but things seem bleak down there.",
"With Norton, you look into how long it's been since certain parts of Earth lost communication.",
"In the cupola module, you study all the areas of the Earth that are now without power, based on the level of electric light.",
"Alongside Huang, you work on telescopes to check for larger chunks of violet crystal at any distance from the space station.",
"You continue to evaluate the state of the Earth based on your observations, calculating the likelihood of human survival."
)
]
(else:)[(either:
"You scan for what's left of survivor settlements on Earth.",
"You investigate Earth's lack of communication and any remaining channels. They're few and far between.",
"With Norton, you make estimations of how much of Earth is left with any forms of power.",
"With your fellow astronauts, you scan space and work on telescopes to check that there is absolutely no violet dust nearby.",
"You and Huang calculate the likelihood of human survival on Earth based on all of your previous observations. It paints a very bleak picture."
)
]
}
[[Time to send your report.->astronaut report]]{
(if: ($research >= 100) and ($equipment >= 100) and ($scanning >= 100))[
[[YOUR RESEARCH IS COMPLETE->ending]]
]
(else:)[(display: "END TRANSMISSION")]
}(set: $turn to "none")
{
(text-style: "fade-in-out")[
(if: (history:) contains "survivor intro option")[
[[TRANSMIT->survivors]]
]
(else:)[
[[TRANSMIT->survivor intro option]]
]
]
}
(set: $turn to "survivors"){
You have received a transmission from the astronauts.
(if: $stuff's food > 0)[
(set: $stuff's food to it - ($survivorlist.length * 2))
(if: $stuff's food > 0)[
Your group consumes (print: $survivorlist.length * 2) food.
]
(else:)[
(set: $stuff's food to 0)
Your group consumes the last of the food.
]
]
(else:)[
(set: $memorial to it + (a: $survivorlist's 1st))
There is no food. (print: $survivorlist's 1st) dies of starvation.
(move: $survivorlist's 1st into _bin)
]
}(if: $survivorlist.length > 0)[
Current search party: $survivors members.
[[Set size of search party.->survivor squad]](if: $survivors > 0 and $survivors <= $survivorlist.length)[
(display: "search options")]](else:)[
''GAME OVER'']{
(set: $searchsite to "supermarket")
(set: _event to (random: 1, $eventfrequency))
(set: _coin to (either: true, false))
}
(if: _event is not $eventfrequency)[{
(set: _food to (random: 1, $survivors))
(set: $stuff's food to it + _food)
(set: $time to it + 2)
}Your team of $survivors finds _food food, bringing your total to (print: $stuff's food) food.(if: _coin is true)[(set: $stuff's ammo to it + 1) You also happen to find 1 ammo.]
(if: $time < $endtime)[[[search again->supermarket]]
](else:)[It is late. You ][[go home->end of day]].](else:)[(display: "event selector")]{
(set: $searchsite to "military base")
(set: _event to (random: 1, $eventfrequency))
(set: _coin to (either: true, false))
}(if: _event is not $eventfrequency)[{
(set: _ammo to (random: 1, $survivors))
(set: ($stuff's ammo) to it + _ammo)
(set: $time to it + 2)
}Your team of $survivors finds _ammo ammunition, bringing your total to (print: $stuff's ammo) ammunition.(if: _coin is true)[(set: $stuff's meds to it + 1) You also happen to find 1 medicine.]
(if: $time < $endtime)[[[search again->military base]]
](else:)[It is late. You ][[go home->end of day]].](else:)[(display: "event selector")]{
(set: $searchsite to "hospital")
(set: _event to (random: 1, $eventfrequency))
(set: _coin to (either: true, false))
}(if: _event is not $eventfrequency)[{
(set: _meds to (random: 1, $survivors))
(set: ($stuff's meds) to it + _meds)
(set: $time to it + 2)
}Your team of $survivors finds _meds medicine, bringing your total to (print: $stuff's meds) medicine.(if: _coin is true)[(set: $stuff's food to it + 1) You also happen to find 1 food.]
(if: $time < $endtime)[[[search again->hospital]]
](else:)[It is late. You ][[go home->end of day]].](else:)[(display: "event selector")]{
(set: _attack to (random: $day, 100) - ($research / 2))
(if: _attack > 50)[(display: "evening attack")]
(else:)[(display: "END OF DAY")]
}{
(set: $turn to "none")
(set: $day to it + 1)
(set: $time to 0)
}(text-style: "fade-in-out")[
[[TRANSMIT->astronauts]]
]{
<!--GAME VARIABLES-->
(set: $turn to "none")
(set: $day to 1)
(set: $time to 0)
(set: $endtime to 10)
(set: $danger to 0)
(set: $eventfrequency to 3)
<!--ASTRONAUT VARIABLES-->
(set: $sciencemin to 5)
(set: $sciencemax to 15)
(set: $research to 0)
(set: $equipment to 0)
(set: $scanning to 0)
<!--SURVIVOR VARIABLES-->
(set: $survivorlist to (a: "Felicity Womack", "Zeke Baldwin", "Patience Phelps"))
(set: $memorial to (a:))
(set: $survivors to 0)
(set: $searchsite to "none")
(set: $stuff to (dm:
"food", 0,
"ammo", 0,
"meds", 0
))
(set: $stuff's food to (random: 10, 15))
(set: $stuff's ammo to (random: 10, 15))
(set: $stuff's meds to (random: 10, 15))
<!--(set: $food to (random: 10, 20))
(set: $ammo to (random: 10, 20))
(set: $meds to (random: 10, 20))-->
}
---
(if: $turn is "astronauts")[(display: "astronauts footer")<!--(display: "research progress")
(display: "equipment condition")
(display: "scan completion")-->]{
}(if: $turn is "survivors")[{
<left><left><table><tr><td>| Survivors: (print: $survivorlist.length) |</td>
<td>| Food: (print: $stuff's food) |</td></tr>
<tr><td>| Ammunition: (print: $stuff's ammo) |</td>
<td>| Medicine: (print: $stuff's meds) |</td></tr></table>
}
Day: $day
Time: {
(if: $time is 0)[10:0(random: 0, 9)am]
(if: $time is 1)[11:0(random: 0, 9)am]
(if: $time is 2)[12:0(random: 0, 9)pm]
(if: $time is 3)[1:0(random: 0, 9)pm]
(if: $time is 4)[2:0(random: 0, 9)pm]
(if: $time is 5)[3:0(random: 0, 9)pm]
(if: $time is 6)[4:0(random: 0, 9)pm]
(if: $time is 7)[5:0(random: 0, 9)pm]
(if: $time is 8)[6:0(random: 0, 9)pm]
(if: $time is 9)[7:0(random: 0, 9)pm]
(if: $time >= 10)[8:0(random: 0, 9)pm]
}]{
(set: _firstname to (either: "Magdalena", "Cedric", "Gaz", "Lydia", "Vanessa", "Ralph", "Joseph", "Joe", "Marilyn", "Leigh", "Mark"))
(set: _lastname to (either: "Steele", "Riley", "Winchester", "Page", "Hale", "Snider", "Beck", "Newport", "Hamilton", "Jones", "Cross", "Rose"))
(set: $newsurvivor to _firstname + " " + _lastname)
}{
(display: "names")
(set: $survivorlist to it + (a: $newsurvivor))
}You find a new survivor - $newsurvivor - who you direct to your base.
(display: "event end")
---
''DEBUG FOOTER:''
(print: $stuff)
<!--SURVIVORLIST: (print: $survivorlist)
MEMORIAL: (print: $memorial)
-->(if: $survivors < $survivorlist.length)[(link: "+1")[(set: $survivors to it + 1)(goto: "survivor squad")]]
Current search party: $survivors.
(if: $survivors > 1)[(link: "-1")[(set: $survivors to it - 1)(goto: "survivor squad")]](if: $survivors > 0 and $survivors <= $survivorlist.length)[
(display: "search options")]Where will you search?
[[SUPERMARKET->supermarket]]
[[MILITARY BASE->military base]]
[[HOSPITAL->hospital]]You notice (link-reveal: "an unusual glimmer amongst the stars.")[
This is not what you expected. It was meant to be a standard spacewalk. One of the solar panels crapped out - as it always does - (link-reveal: "and there you go trying to un-crap it out.")[
The panel's covered in a strange crystalline dust. It glows violet in the dim light. [[You drift over to the panel.]]]]A voice crackles like tin foil (link-reveal: "inside your helmet.")[
'Mishra. (link-reveal: "What's the score?'")[
You contemplate whether to [[fully describe the violet crystals]] or [[continue to investigate]].]]'Viktorova, there seems to be debris on the panel,' (link-reveal: "you say.")[
'Tell me something (link-reveal: "I don't know.'")[
'It's a kind of... I don't even know what. Looks like dust, but I don't recognise it. (link-reveal: "Not like anything I've seen before.'")[
You motion to Viktorova [[to join you]].]]]You ignore the CO and head on over. Viktorova repeats herself again, (link-reveal: "more urgently.")[
You (link-reveal: "don't respond.")[
There's a sigh like a threshing machine, and (link-reveal: "the line goes silent.")[
Viktorova comes [[to join you]].]]]You and Viktorova drift further (link-reveal: "towards the panel.")[
As the two of you get closer, you notice that the panel hasn't just been chipped or nudged (link-reveal: "like you expected.")[
It's been... (link-reveal: "impacted.")[
But there's nothing else that could have done this. You'd have surely seen it. Nothing but [[the dust]].]]]Viktorova takes the lead. She's inches away (link-reveal: "from the panel.")[
She readies the scanner on her arm, tapping at it, (link-reveal: "holding it over the dust.")[
The dust [[moves]].]]The violet dust surges forward, leaving the panel bruised and scratched. It rises upwards like a murmuration of birds - how is it //moving// like that in a vacuum - (link-reveal: "hovering above the two of you.")[
It swarms (link-reveal: "towards Viktorova.")[
Do you [[push her away]] or [[watch in horror]]?]]As Viktorova drifts away from you, (link-reveal: "the violet dust is near.")[
It starts to (link-reveal: "envelop your glove.")[
Viktorova grabs your other glove and pulls you back towards the space station, her cable (link-reveal: "whipping the pair of you to the airlock.")[
[[The dust follows.]]]]]The dust starts to swarm (link-reveal: "around Viktorova's helmet.")[
You think you see (link-reveal: "a crack in her visor.")[
Acting fast, you dart over to her and (link-reveal: "pull her back towards the space station.")[
[[The dust follows.]]]]]The two of you just barely make it to the airlock. As it shuts, you hear a chorus of thuds like military drums against the surface, (link-reveal: "then...")[
(link-reveal: "...silence.")[
Inside the airlock, [[Viktorova coughs]].]]''FIVE DAYS LATER''
Viktorova lies (link-reveal: "in the quarantine module.")[
She looks bored more than anything. You would be too if you were stuck in quarantine. She doesn't even have a magazine. (link-reveal: "Your employers are MONSTERS.")[
[[Huang and Norton float to your side]].]]'You know I sent some of that dust down to Earth last week?' (link-reveal: "says Norton.")[
You can tell, just from the hesitant tone of his voice, you're //probably// not going to like what (link-reveal: "Norton's about to say.")[
(link-reveal: "'...yes?'")[
'Well, reports have come back in [[from Lagos.']]]]]''TWO DAYS LATER''
Viktorova is (link-reveal: "no longer Viktorova.")[
There's almost constant hacking noises coming from quarantine. It's so violent that she's probably (link-reveal: "coughing up throat lining by now.")[
You open up the CCTV, dreading what you're going to see. The screen is lo-fi and monochrome. You can only just make out what's going on. Black stains on the floor. Viktorova hunches over and spits something that cracks on the ground (link-reveal: "like a cherry stone.")[
Crystals, bulbous and round, [[grow out of her arm.]]]]]On the ground, a hundred million times over, the same thing is (link-reveal: "happening on Earth.")[
You've got to [[do something.->astronauts]]]{
(if: $research is 0)[(text-colour: "red")[RESEARCH PROGRESS:]](elseif: $research < 100)[(text-colour: "yellow")[RESEARCH PROGRESS:]](else:)[(text-colour: "green")[RESEARCH PROGRESS:]]
''(if: $research >= 100)[(text-colour: "green")[|]](elseif: $research > 0)[(text-colour: "yellow")[|]](else:)[(text-colour: "red")[|]]
(if: $research >= 100)[(text-colour: "green")[|]](elseif: $research > 10)[(text-colour: "yellow")[|]](else:)[(text-colour: "red")[|]]
(if: $research >= 100)[(text-colour: "green")[|]](elseif: $research > 20)[(text-colour: "yellow")[|]](else:)[(text-colour: "red")[|]]
(if: $research >= 100)[(text-colour: "green")[|]](elseif: $research > 30)[(text-colour: "yellow")[|]](else:)[(text-colour: "red")[|]]
(if: $research >= 100)[(text-colour: "green")[|]](elseif: $research > 40)[(text-colour: "yellow")[|]](else:)[(text-colour: "red")[|]]
(if: $research >= 100)[(text-colour: "green")[|]](elseif: $research > 50)[(text-colour: "yellow")[|]](else:)[(text-colour: "red")[|]]
(if: $research >= 100)[(text-colour: "green")[|]](elseif: $research > 60)[(text-colour: "yellow")[|]](else:)[(text-colour: "red")[|]]
(if: $research >= 100)[(text-colour: "green")[|]](elseif: $research > 70)[(text-colour: "yellow")[|]](else:)[(text-colour: "red")[|]]
(if: $research >= 100)[(text-colour: "green")[|]](elseif: $research > 80)[(text-colour: "yellow")[|]](else:)[(text-colour: "red")[|]]
(if: $research >= 100)[(text-colour: "green")[|]](elseif: $research > 90)[(text-colour: "yellow")[|]](else:)[(text-colour: "red")[|]]
(if: $research >= 100)[(text-colour: "green")[|]](elseif: $research >= 100)[(text-colour: "yellow")[|]](else:)[(text-colour: "red")[|]]''
}{
(if: $equipment is 0)[(text-colour: "red")[EQUIPMENT CONDITION:]](elseif: $equipment < 100)[(text-colour: "yellow")[EQUIPMENT CONDITION:]](else:)[(text-colour: "green")[EQUIPMENT CONDITION:]]
''(if: $equipment >= 100)[(text-colour: "green")[|]](elseif: $equipment > 0)[(text-colour: "yellow")[|]](else:)[(text-colour: "red")[|]]
(if: $equipment >= 100)[(text-colour: "green")[|]](elseif: $equipment > 10)[(text-colour: "yellow")[|]](else:)[(text-colour: "red")[|]]
(if: $equipment >= 100)[(text-colour: "green")[|]](elseif: $equipment > 20)[(text-colour: "yellow")[|]](else:)[(text-colour: "red")[|]]
(if: $equipment >= 100)[(text-colour: "green")[|]](elseif: $equipment > 30)[(text-colour: "yellow")[|]](else:)[(text-colour: "red")[|]]
(if: $equipment >= 100)[(text-colour: "green")[|]](elseif: $equipment > 40)[(text-colour: "yellow")[|]](else:)[(text-colour: "red")[|]]
(if: $equipment >= 100)[(text-colour: "green")[|]](elseif: $equipment > 50)[(text-colour: "yellow")[|]](else:)[(text-colour: "red")[|]]
(if: $equipment >= 100)[(text-colour: "green")[|]](elseif: $equipment > 60)[(text-colour: "yellow")[|]](else:)[(text-colour: "red")[|]]
(if: $equipment >= 100)[(text-colour: "green")[|]](elseif: $equipment > 70)[(text-colour: "yellow")[|]](else:)[(text-colour: "red")[|]]
(if: $equipment >= 100)[(text-colour: "green")[|]](elseif: $equipment > 80)[(text-colour: "yellow")[|]](else:)[(text-colour: "red")[|]]
(if: $equipment >= 100)[(text-colour: "green")[|]](elseif: $equipment > 90)[(text-colour: "yellow")[|]](else:)[(text-colour: "red")[|]]
(if: $equipment >= 100)[(text-colour: "green")[|]](elseif: $equipment >= 100)[(text-colour: "yellow")[|]](else:)[(text-colour: "red")[|]]''
}{
(if: $scanning is 0)[(text-colour: "red")[SCAN COMPLETION:]](elseif: $scanning < 100)[(text-colour: "yellow")[SCAN COMPLETION:]](else:)[(text-colour: "green")[SCAN COMPLETION:]]
''(if: $scanning >= 100)[(text-colour: "green")[|]](elseif: $scanning > 0)[(text-colour: "yellow")[|]](else:)[(text-colour: "red")[|]]
(if: $scanning >= 100)[(text-colour: "green")[|]](elseif: $scanning > 10)[(text-colour: "yellow")[|]](else:)[(text-colour: "red")[|]]
(if: $scanning >= 100)[(text-colour: "green")[|]](elseif: $scanning > 20)[(text-colour: "yellow")[|]](else:)[(text-colour: "red")[|]]
(if: $scanning >= 100)[(text-colour: "green")[|]](elseif: $scanning > 30)[(text-colour: "yellow")[|]](else:)[(text-colour: "red")[|]]
(if: $scanning >= 100)[(text-colour: "green")[|]](elseif: $scanning > 40)[(text-colour: "yellow")[|]](else:)[(text-colour: "red")[|]]
(if: $scanning >= 100)[(text-colour: "green")[|]](elseif: $scanning > 50)[(text-colour: "yellow")[|]](else:)[(text-colour: "red")[|]]
(if: $scanning >= 100)[(text-colour: "green")[|]](elseif: $scanning > 60)[(text-colour: "yellow")[|]](else:)[(text-colour: "red")[|]]
(if: $scanning >= 100)[(text-colour: "green")[|]](elseif: $scanning > 70)[(text-colour: "yellow")[|]](else:)[(text-colour: "red")[|]]
(if: $scanning >= 100)[(text-colour: "green")[|]](elseif: $scanning > 80)[(text-colour: "yellow")[|]](else:)[(text-colour: "red")[|]]
(if: $scanning >= 100)[(text-colour: "green")[|]](elseif: $scanning > 90)[(text-colour: "yellow")[|]](else:)[(text-colour: "red")[|]]
(if: $scanning >= 100)[(text-colour: "green")[|]](elseif: $scanning >= 100)[(text-colour: "yellow")[|]](else:)[(text-colour: "red")[|]]''
}<left><left><table><tr><td>(if: $research is 0)[(text-colour: "red")[RESEARCH PROGRESS:]](elseif: $research < 100)[(text-colour: "yellow")[RESEARCH PROGRESS:]](else:)[(text-colour: "green")[RESEARCH PROGRESS:]]</td><td>{
''(if: $research >= 100)[(text-colour: "green")[|]](elseif: $research > 0)[(text-colour: "yellow")[|]](else:)[(text-colour: "red")[|]]
(if: $research >= 100)[(text-colour: "green")[|]](elseif: $research > 10)[(text-colour: "yellow")[|]](else:)[(text-colour: "red")[|]]
(if: $research >= 100)[(text-colour: "green")[|]](elseif: $research > 20)[(text-colour: "yellow")[|]](else:)[(text-colour: "red")[|]]
(if: $research >= 100)[(text-colour: "green")[|]](elseif: $research > 30)[(text-colour: "yellow")[|]](else:)[(text-colour: "red")[|]]
(if: $research >= 100)[(text-colour: "green")[|]](elseif: $research > 40)[(text-colour: "yellow")[|]](else:)[(text-colour: "red")[|]]
(if: $research >= 100)[(text-colour: "green")[|]](elseif: $research > 50)[(text-colour: "yellow")[|]](else:)[(text-colour: "red")[|]]
(if: $research >= 100)[(text-colour: "green")[|]](elseif: $research > 60)[(text-colour: "yellow")[|]](else:)[(text-colour: "red")[|]]
(if: $research >= 100)[(text-colour: "green")[|]](elseif: $research > 70)[(text-colour: "yellow")[|]](else:)[(text-colour: "red")[|]]
(if: $research >= 100)[(text-colour: "green")[|]](elseif: $research > 80)[(text-colour: "yellow")[|]](else:)[(text-colour: "red")[|]]
(if: $research >= 100)[(text-colour: "green")[|]](elseif: $research > 90)[(text-colour: "yellow")[|]](else:)[(text-colour: "red")[|]]
(if: $research >= 100)[(text-colour: "green")[|]](elseif: $research >= 100)[(text-colour: "yellow")[|]](else:)[(text-colour: "red")[|]]''}</td></tr><tr><td>(if: $equipment is 0)[(text-colour: "red")[EQUIPMENT CONDITION:]](elseif: $equipment < 100)[(text-colour: "yellow")[EQUIPMENT CONDITION:]](else:)[(text-colour: "green")[EQUIPMENT CONDITION:]]</td><td>{
''(if: $equipment >= 100)[(text-colour: "green")[|]](elseif: $equipment > 0)[(text-colour: "yellow")[|]](else:)[(text-colour: "red")[|]]
(if: $equipment >= 100)[(text-colour: "green")[|]](elseif: $equipment > 10)[(text-colour: "yellow")[|]](else:)[(text-colour: "red")[|]]
(if: $equipment >= 100)[(text-colour: "green")[|]](elseif: $equipment > 20)[(text-colour: "yellow")[|]](else:)[(text-colour: "red")[|]]
(if: $equipment >= 100)[(text-colour: "green")[|]](elseif: $equipment > 30)[(text-colour: "yellow")[|]](else:)[(text-colour: "red")[|]]
(if: $equipment >= 100)[(text-colour: "green")[|]](elseif: $equipment > 40)[(text-colour: "yellow")[|]](else:)[(text-colour: "red")[|]]
(if: $equipment >= 100)[(text-colour: "green")[|]](elseif: $equipment > 50)[(text-colour: "yellow")[|]](else:)[(text-colour: "red")[|]]
(if: $equipment >= 100)[(text-colour: "green")[|]](elseif: $equipment > 60)[(text-colour: "yellow")[|]](else:)[(text-colour: "red")[|]]
(if: $equipment >= 100)[(text-colour: "green")[|]](elseif: $equipment > 70)[(text-colour: "yellow")[|]](else:)[(text-colour: "red")[|]]
(if: $equipment >= 100)[(text-colour: "green")[|]](elseif: $equipment > 80)[(text-colour: "yellow")[|]](else:)[(text-colour: "red")[|]]
(if: $equipment >= 100)[(text-colour: "green")[|]](elseif: $equipment > 90)[(text-colour: "yellow")[|]](else:)[(text-colour: "red")[|]]
(if: $equipment >= 100)[(text-colour: "green")[|]](elseif: $equipment >= 100)[(text-colour: "yellow")[|]](else:)[(text-colour: "red")[|]]''
}</td></tr><tr><td>(if: $scanning is 0)[(text-colour: "red")[SCAN COMPLETION:]](elseif: $scanning < 100)[(text-colour: "yellow")[SCAN COMPLETION:]](else:)[(text-colour: "green")[SCAN COMPLETION:]]</td><td>{
''(if: $scanning >= 100)[(text-colour: "green")[|]](elseif: $scanning > 0)[(text-colour: "yellow")[|]](else:)[(text-colour: "red")[|]]
(if: $scanning >= 100)[(text-colour: "green")[|]](elseif: $scanning > 10)[(text-colour: "yellow")[|]](else:)[(text-colour: "red")[|]]
(if: $scanning >= 100)[(text-colour: "green")[|]](elseif: $scanning > 20)[(text-colour: "yellow")[|]](else:)[(text-colour: "red")[|]]
(if: $scanning >= 100)[(text-colour: "green")[|]](elseif: $scanning > 30)[(text-colour: "yellow")[|]](else:)[(text-colour: "red")[|]]
(if: $scanning >= 100)[(text-colour: "green")[|]](elseif: $scanning > 40)[(text-colour: "yellow")[|]](else:)[(text-colour: "red")[|]]
(if: $scanning >= 100)[(text-colour: "green")[|]](elseif: $scanning > 50)[(text-colour: "yellow")[|]](else:)[(text-colour: "red")[|]]
(if: $scanning >= 100)[(text-colour: "green")[|]](elseif: $scanning > 60)[(text-colour: "yellow")[|]](else:)[(text-colour: "red")[|]]
(if: $scanning >= 100)[(text-colour: "green")[|]](elseif: $scanning > 70)[(text-colour: "yellow")[|]](else:)[(text-colour: "red")[|]]
(if: $scanning >= 100)[(text-colour: "green")[|]](elseif: $scanning > 80)[(text-colour: "yellow")[|]](else:)[(text-colour: "red")[|]]
(if: $scanning >= 100)[(text-colour: "green")[|]](elseif: $scanning > 90)[(text-colour: "yellow")[|]](else:)[(text-colour: "red")[|]]
(if: $scanning >= 100)[(text-colour: "green")[|]](elseif: $scanning >= 100)[(text-colour: "yellow")[|]](else:)[(text-colour: "red")[|]]''
}</td></tr></table>{
(set: _danger to ($survivors * 2) + (($time * $day) / ($scanning / 10)))
(set: $danger to it + _danger)
}{
(set: $time to it + 2)
(set: _event to (either: ($danger + (random: 0,5)), ($danger - (random: 0, 15))))
(if: _event <= 30)[(display: "good event")]
(elseif: _event <= 70)[(display: "average event")]
(else:)[(display: "bad event")]
}(display: (either: "new survivor", "supplies cache", "distraction"))(display: (either: "desperate survivor", "distrustful survivor", "loud noise"))(display: (either: "hostile survivor"))<!--, "infected survivor", "monster attack"))-->{
(set: _amount to (random: 20, 30))
(set: _type to (either: "food", "ammo", "meds"))
(set: _foodloss to (random: 1, ($stuff's food)))
(set: _ammoloss to (random: 1, ($stuff's ammo)))
(set: _medsloss to (random: 1, ($stuff's meds)))
}A desperate survivor begs you for _amount _type.
(if: _amount <= (_type of $stuff))[Do you [[hand over the supplies]] or [[politely refuse]]?](else:)[Unfortunately, you simply don't have that much. You apologise and move on, but later discover that some supplies have gone missing...
(if: $stuff's food > 0)[_foodloss food
](if: $stuff's ammo > 0)[_ammoloss ammunition
](if: $stuff's meds > 0)[_medsloss medicine
]{
(set: $stuff's food to it - _foodloss)
(set: $stuff's ammo to it - _ammoloss)
(set: $stuff's meds to it - _medsloss)
}
(display: "event end")]An infected person with a crystalline (arm/head/leg) runs at you, (bleeding in different directions / leaving a trail of dust behind / dribbling black gunk and stones).
You have only two choices: [[fight]] or [[flight]]?(if: $time < $endtime)[(link-goto: "CONTINUE", $searchsite)
[[GO HOME->end of day]]](else:)[It is late. You [[go home->end of day]].]A survivor stumbles into view. Their fingers are turning crystaline. They moan in pain. It seems there might be some humanity still in them, but for how much longer?
Perhaps if you act quickly, they can be saved?
Do you grab the infected person, [[cut off their fingers and heal them]], or [[put them out of their misery]]?You find yourself face to face with another survivor, scavenging the area. It's hard to say who's more surprised.
Except, actually, you're pretty sure it isn't you.
"Who are you?" they demand, waving a handgun in your direction. "Are you one of them? Are you one of those things?!?"
They're in bad shape. You could offer medical attention and [[bring them back to your camp]], but it might be safer to simply [[walk away->event end]].You come across a survivor.
They've been on their own for too long - clothes shredded, eyes wide and staring, fingernails missing.
(if: $stuff's meds > 0)[Do you [[offer them medicine]] or](else:)[You quickly] [[run away]]?{
(set: _food to (random: 3, 12))
(set: _ammo to (random: 3, 12))
(set: _meds to (random: 3, 12))
(set: ($stuff's food) to it + _food)
(set: ($stuff's ammo) to it + _ammo)
(set: ($stuff's meds) to it + _meds)
}You stumble across a cache of supplies. It contains _food food, _ammo ammunition, and _meds medicine.
(display: "event end")(display: (either: "good event list", "good event list", "good event list", "good event list", "average event list", "average event list", "bad event list"))(display: (either: "good event list", "average event list", "average event list", "bad event list"))(display: (either: "bad event list", "bad event list", "bad event list", "bad event list", "average event list", "average event list", "good event list")){
(set: $danger to it + ($day + 10))
(set: _survivor to (either: ...$survivorlist))
}
{
_survivor knocks over a (if: $searchsite is "supermarket")[shelf of cookware]
(elseif: $searchsite is "military base")[trolley of engine parts]
(else:)[tray of medical equipment].
}
Dammit, _survivor!
(display: "event end")(set: $danger to it - ($day + 10))You hear gunshots in the distance.
You feel bad for whoever's in trouble, but with any luck the noise will draw attention away from your search efforts.
(display: "event end")(live:)[(if: $turn is "astronauts")[''SPACE STATION''](if: $turn is "survivors")[''EARTH'']]
---
{
(display: "names")
(set: $survivorlist to it + (a: $newsurvivor))
}The survivor is overwhelmed by your generosity!
$newsurvivor has joined you at your base.
(display: "event end"){
(set: _foodloss to (random: 1, ($stuff's food)))
(set: _ammoloss to (random: 1, ($stuff's ammo)))
(set: _medsloss to (random: 1, ($stuff's meds)))
}You apologise and move on, but later discover that some supplies have gone missing...
(if: $stuff's food > 0)[_foodloss food
](if: $stuff's ammo > 0)[_ammoloss ammunition
](if: $stuff's meds > 0)[_medsloss medicine
]{
(set: $stuff's food to it - _foodloss)
(set: $stuff's ammo to it - _ammoloss)
(set: $stuff's meds to it - _medsloss)
}
(display: "event end")Double-click this passage to edit it.Double-click this passage to edit it.Double-click this passage to edit it.{
(set: _medtest to (random: 1, 20))
}You bring the survivor back to your camp. (if: _medtest <= ($stuff's meds))[{
(display: "names")
(set: $survivorlist to it + (a: $newsurvivor))
}They remain suspicious of your group initially, but after you tend to their wounds and they see the supplies you've managed to amass, they decide to stay.
$newsurvivor has joined you.
(display: "event end")](else:)[{
(set: _survivor to (either: ...$survivorlist))
(set: $stuff's meds to 0)
}They follow you inside, but upon seeing your meagre stock of medical supplies they become distressed.
'I knew it!' they yell. 'I knew this was a trick!'
They shove their way past your group, throwing _survivor against the gate in the process. You use up the last of your medicine treating the wound.
You cannot face returning to the $searchsite just now.
[[You call it a day.->end of day]]](text-style: "shadow")[''R E S O N A N C E'']
[[BEGIN GAME->Introduction]]
(text-style: "subscript")[([[Skip intro?->astronauts]])
[[CREDITS]]]Your understanding of the crystal plague allows you to develop a cure.
THE END'I repeat, this is Ravinder Mishra of the Shenhu Space Station, (link-reveal: "requesting communication.'")[
You were beginning to lose hope when the transmission came in. Desperately, you attempt to use the run-down central computer system to (link-reveal: "send a response back to the astronauts.")[
'Message received,' you say, [['this is Sam Smith.']]]]You try to send the initial message but (link-reveal: "the computer does not respond.")[
It's in (link-reveal: "the hands of the gods now.")[
You return to your fellow survivors and (link-reveal: "report the message received.")[
Do you speak to [[Felicity]], [[Zeke]], or [[Patience]]?]]]Felicity Womack, 23 years old, former supermarket (junior) manager, twiddles her thumbs, glancing constantly from you (or, more accurately, the space around you) to (link-reveal: "the floor and back.")[
'H-how is that g-good news?' she stutters, with barely disguised disgust. 'They're out in s-space and we're d-down here. (link-reveal: "How can they h-help us?'")[
She is always (link-reveal: "like this.")[
Do you [[reassure her]] or [[not bother]]?]]]You turn to Zeke Baldwin, who is sat on the one comfy chair, legs folded beneath him. He looks lost in thought, but stepping closer, you can hear him counting under his breath. Probably making another mental inventory. Or counting down the days (link-reveal: "until your doom...")[
He looks up, dark eyes fixing with yours, as if he (link-reveal: "heard your thoughts.")[
You are pretty sure he is, in fact, (link-reveal: "psychic.")[
Do you dare [[inturrupt his thoughts]] or [[leave him to it]]?]]]The silence and downtime turns everyone else into trapped coyotes. Patience Phelps spends that energy checking her gun for the fifteenth time, blowing down the barrel. She's spent enough time with the 3rd to know that proper weapon safety is the difference between safety (link-reveal: "and getting cool new shrapnel piercings in your throat.")[
'So, what's happening?' she turns to you. (link-reveal: "'We rolling out or what?'")[
You wonder if she's going to start doing chin-ups again. Do you [[tell her]] or [[leave her be]]?]]'These people can help us,' you insist, in your most reassuring voice. 'And it seems that they need our help too. This could be the (link-reveal: "fate of the world at stake!'")[
Felicity scowls. 'Gee. Thanks. No p-p-pressure, (link-reveal: "asshat!'")[
She stomps away, stuttering angrily to herself. You suppose that this whole apocolypse situation has stunted her emotional maturity. Perhaps hoping that survival will strengthen her resolve is (link-reveal: "wishful thinking.")[
(link-reveal: "You gain nothing.")[
So much for [[kindness.->intro resume]]]]]]You say nothing. (link-reveal: "What is there to be said?")[
Felicity smirks with a sort of triumph, though you're not sure (link-reveal: "what she thinks she's won.")[
'So we're s-screwed. And so are (link-reveal: "those sp-spacemen.'")[
(link-reveal: "You shrug.")[
'At least we won't starve and d-die horribly slowly, Not today, anyway. Hey, when we in-inevitably fun out of food, I'll offer m-myself to eat f-first. Just end my s-suffering. You know, or Patience. (link-reveal: "So she'll s-shut up.'")[{
(set: _food to (random: 5, 10))
(set: $stuff's food to it + _food)
}
She gives you _food food from (link-reveal: "her secret horde.")[
You leave her to [[her own unknowable devices.->intro resume]]]]]]]]'Um... Zeke... Buddy... Did you hear (link-reveal: "what I just said?'")[
Zeke hums, thoughfully.' I did. Do you believe these astronauts can (link-reveal: "help us?'")[
'Yes. And they need our help too. It sounds like something strange is going on up there. (link-reveal: "They are in danger.'")[
'People generally are, in space,' muses Zeke. 'At least, (link-reveal: "they are in the movies.")[
'Oh, by the way, I found these in one of the back rooms. You might as well (link-reveal: "add them to the rest.'")[
He hands over a first aid kit, packed with some bandages and (link-reveal: "other medical supplies.")[{
(set: _meds to (random: 5, 10))
(set: $stuff's meds to it + _meds)
}
_meds medicine (link-reveal: "is added to your inventory.")[
[['Thank you.'->intro resume]]]]]]]]]You turn around and (link-reveal: "walk the other way.")[
You can feel his eyes, (link-reveal: "watching you.")[
You try to [[ignore it.->intro resume]]]]You look up at a bruised orange sky. The Shenhu's up there, maybe right above your head. (link-reveal: "You're hoping they'll get back to you soon.")[
If they've even heard you (link-reveal: "at all.")[
Can you hear us? Come //on//, (link-reveal: "Major Tom.")[
The group do the last couple of checks. Patience takes point, Felicity brings up the rear, Zeke hovers in the middle. It's like you're all (link-reveal: "his security detail.")[
You [[move out.]]]]]]All you can do down on Earth is survive until the Shenhu gets (link-reveal: "back in contact.")[
You need to eat. To defend yourselves and your base. And you need the means to heal yourself in case you're (link-reveal: "harmed.")[
Maybe there are other people (link-reveal: "out there.")[
You (link-reveal: "hope so.")[
Because if something doesn't happen soon, [[who knows what will?->survivors]]]]]]'Just another scavenge job,' you reply. 'Find food, ammo, medicine. Try not to get mulched. (link-reveal: "The usual.'")[
Patience sucks in air (link-reveal: "through her teeth.")[
'//Finally.// I've been as bored as a legless cat here. Or legless dog. Legless spider. Legless anything, really, I'm just //BORED//, y'know? Those space nerds are taking their sweet ol' time (link-reveal: "getting back to us.'")[
It's not worth your time reminding her yet again not to call them 'space nerds'. [[Accurate as that may be.->intro resume]]]]]You keep quiet. She knows it's another hunt. (link-reveal: "She figures it out based on your expression.")[
'Ohhh okay. Yeah, I getcha, chief. No problem.' She grins. 'Wait, we're thinking of (link-reveal: "the same thing, right? Nah, of course we are.'")[
Patience's fingers dance around the rifle, twirling it around like a majorette. It must weigh more than how it actually looks. You're never quite sure if the two of you are on the same book, (link-reveal: "let alone the same page.")[
'Oh yeah, found this in one of the crates. Thought I'd lost it. (link-reveal: "Might come in handy, y'know?'")[{
(set: _ammo to (random: 5, 10))
(set: $stuff's ammo to it + _ammo)
}
She gives you _ammo of ammo. [[You're both on the same book again.->intro resume]]]]]]Skip survivor intro?
(link: "Yes")[(set: (either: "food", "ammo", "meds") of $stuff to it + (random: 1, 5))(goto: "survivors")]/[[No->survivor intro]]{
(set: _monsters to ($day * (random: 1, 3)))
(set: _bullets to (random: 1, 3) * _monsters)
}A wave of hideous crystalline beasts attempt to overrun you during the night!
(if: _bullets <= $stuff's ammo)[(set: $stuff's ammo to it - _bullets)You use up _bullets rounds of ammunition, but are able to drive them off.](else:)[{
(set: $memorial to it + (a: $survivorlist's 1st))
(move: $survivorlist's 1st into _bin)
(set: $stuff's ammo to 0)
}You use up the last of your ammunition against them and are forced to fight hand to hand.
One of your team doesn't make it.]
(if: $survivorlist.length > 0)[[[You hope for a quieter night tomorrow.->END OF DAY]]](else:)[GAME OVER]
(set: $stuff's meds to 0)You offer the survivor half your medicine.
The survivor is not grateful; thinks it's poison. The medicine's thrown back at you and smashes on your arm, cutting it.
Dammit!
It takes the rest of your medicine to fix this, [[back home.->end of day]]{
(set: _deadsurvivor to (a: $survivorlist's 1st))
(set: $memorial to it + (a: $survivorlist's 1st))
(move: $survivorlist's 1st into _bin)
}The survivor grabs _deadsurvivor. No!
You plead but your words don't reach the feral survivor.
_deadsurvivor's neck is snapped.
You run for your life [[back home.->end of day]](set: _coin to (either: true, false))(if: _coin is true)[(display: "names")(set: $survivorlist to it + (a: $newsurvivor))The light comes back to the infected suvivor's eyes. They are cured. ((medicine decreases))
The survivor - $newsurvivor - joins your party. You [[go back home.->end of day]]](else:)[{
(set: _deadsurvivor to (a: $survivorlist's 1st))
(set: $memorial to it + (a: $survivorlist's 1st))
(move: $survivorlist's 1st into _bin)
}You tackle the infected person as fast as you can, but it's too late for _deadsurvivor. You [[go back home.->end of day]]]You aim a gun at the infected person's head and put a bullet in between their eyes. (ammo decreases) They die instantly.
You [[return home.->end of day]]You use ((amount)) ammo shooting at the infected person.
However, in your attack, you lose ((survivor dying)) to the infection.
There's no choice but to [[go back home->end of day]].You run as the infected person approaches, but ((survivor dying)) is grabbed and attacked, dropping ((amount)) ((of stuff)).
Morale low, you [[go back home.->end of day]]''CREDITS''
''Resonance'' was created in just 48 hours as part of of the <a href="https://globalgamejam.org/2018/games/resonance"; target="_blank">Southampton Global Game Jam 2018</a>.
<a href="https://damonwakes.wordpress.com"; target="_blank">Damon L. Wakes</a> - Coder
<a href="https://globalgamejam.org/users/lexicarta"; target="_blank">Alex Carter</a> - Writer
<a href="https://globalgamejam.org/users/taojones"; target="_blank">Jay Connell</a> - Writer
<a href="https://twitter.com/CRKerry"; target="_blank">Claire Rose</a> - Writer
(text-style: "superscript")[[[BACK TO TITLE->Start]]]<!--
(link-reveal: "Damon L. Wakes")[(open-url: "https://damonwakes.wordpress.com")] - Coder
(link-reveal: "Alex Carter")[(open-url: "https://globalgamejam.org/users/lexicarta")] - Writer
(link-reveal: "Jay Connell")[(open-url: "https://globalgamejam.org/users/taojones")] - Writer
(link-reveal: "Claire Rose")[(open-url: "https://twitter.com/CRKerry")] - Writer
-->