def ladder(): text = """ The corridor gives way to a large column, splitting the corridor to go around it on both sides. On two sides of the column you find large hatches with a colored engraving |‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾| | EMERGENCY ESCAPE | | WHEEL C RING 3 | | | | BREAK GLASS | | AND | | PULL LEVER | | TO OPEN | |_______________________| You locate the panel as indicated on the engraving. """ if save.getdata("WheelCOuterLadder") == "open": text += "\nThe glass is already broken." enterText = "You reach in the panel, and pull the lever.\nThe hatch opens and you go inside." openText = "Pull the lever?" else: text += "\nThe glass look thin and you feel an odd temtation to smash it.\nWritten on the glass is a warning." text += "\nFOR EMERGENCIES ONLY.\nSECURITY WILL BE ALERTED TO MISUSE!" enterText = "You smash the glass, and pull the lever.\nThe hatch opens and you go inside." openText = "Smash the glass?" game.rolltext(text) if (game.yesno(openText)): if save.getdata("WheelCOuterLadder") == None: save.setdata("WheelCOuterLadder", "open") game.rolltext(enterText) goto("ladder")
def loadgame(self): game.showtext("WARNING, save and load is not fully tested yet. ") root = TK.Tk() path = TK.filedialog.askopenfilename(initialdir = "/", title = "Load game", filetypes = (("Untitled adventuregame savegame", "*.uagsave"),("all files", "*.*"))) root.withdraw() if path == "" or not os.path.isfile(path): if game.yesno("The game was not loaded. Try again?"): return self.loadgame() else: return False f = open(path, "r") ldata = json.load(f) lversion = ldata["version"] #comparing version major = lversion[0] - self.version[0] minor = lversion[1] - self.version[1] #hotfix = lversion[2] - self.version[2] if major == 0: if minor == 0: #not worth comparing a hotfix pass elif minor > 0: game.showtext("Warning: This save was made with a newer version of the game. This may cause problems.") else: game.showtext("Warning: This save was made with a older version of the game. This should be fine, but could cause issues.") elif major > 0: game.showtext("WARNING! This save is FROM THE FUTURE! You should run a newer version of the game instead.") else: game.showtext("WARNING! The save is OLD! The game may not run correctly with this savefile.") self.data = ldata return True
def game_loop(): while True: roomReq = save.getdata("room") if(roomReq == None): #newgame location roomReq = "apartment" #space to check for special conditions game_over = game.getGameover(save) if(game_over): game.showtext(""" ‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾\\_GAME_OVER_/‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾ {0} _________________________________________________ """.format(game_over)) break #general rule room = None try: room = world[roomReq] except: room = None if(room): room(save) game_over = game.getGameover(save) else: game.showtext(""" |---------------------- !!! ----------------------| | Sorry, something went wrong. | | The game could not find {0} | | The game will now end. | | Do you wish to save the game first? | |---------------------- !!! ----------------------| """.format(roomReq)) if(game.yesno("Save game?")): save.savegame() break if not game_over: if(game.yesno("Open game menu?")): game.gameMenu(save)
def newgame(): #region NEW GAME save.setdata("room", "apartment") save.setdata("prevroom", "apartment") game.rolltext(""" Weeeee.. you are flying through the sky! Below you is a beautiful forest, as green as anything you could ever imagine! Deep down you know you are dreaming, but you can't quite get yourself to wake up. suddenly you are in a vintage open cockpit biplane flying over the same lands... **CRASH** Your eyes shook open! Out the window you see the landscape you pictured in your dream. It seems so nice, yet something seems off. Everything seems off. You even struggle to remember your own name.. What.. was.. what was your name? """) nameExcuses = [ "or maybe it was", "no why would.. that be my name.. no it must be ", "no.. ugh.. why can't I remember my name. Maybe it was", "no no no no! That can't be right, so it must be", "no, I think that's my best friend's name. wait, I got a best friend?? ugh.. what is my name??" ] inp = "" while True: inp = input() while len(inp) < 1: #while no input, silently re-request input inp = input() print() if game.yesno("ugh.. Was it {0}?".format(inp)): break print(random.choice(nameExcuses)) save.setdata("name", inp) game.rolltext(""" Yes {0} the.. uhh.. something something title titles.. You are sure you'll remember soon enough. Your head is quite foggy. You think you might have a headache, but you are not sure. Looking around you see you are in a small room, an apartment maybe? Maybe a hotel room? You are sitting on the edge of a large bed. Next to the bed is a small table. On the table there are some small white spheres, a glass of water and two framed pictures face down At the head end of the bed there is a window. Towards the end of the room there is a sink with a mirror. At the end is a door, probably the exit by the looks of it. """.format(save.getdata("name")))
def savegame(self): game.showtext("WARNING, save and load is not fully tested yet. ") root = TK.Tk() path = TK.filedialog.asksaveasfilename(initialdir = "/", title = "Save game", filetypes = (("Untitled adventuregame savegame", "*.uagsave"),("all files", "*.*"))) root.withdraw() saveOK = True if path == "": saveOK = False elif os.path.isfile(path): messagebox.askokcancel("Untitled adventure game","Override existing savefile?") saveOK = False if ".uagsave" not in path: path = path + ".uagsave" if saveOK: self.setdata("version", self.version) f = open (path, "w+") json.dump(self.data, f)#, True, True, True, True, None, (', ', ': '), "UTF-8", False) f.close() elif game.yesno("The game was not saved. Try again?"): return self.savegame()
def ladder(): if not save.getdata("reactorC:fixed", False) and not game.getCounter( save, "reactorC")[0]: #if counter reactorC is not enabled game.setCounter( save, "reactorC", "onReactorCTime", 10 ) #sets up a new timer, running onReactorCTime every time it is updated. text = """ The corridor gives way to a large column, splitting the corridor to go around it on both sides. On two sides of the column you find large hatches with a colored engraving |‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾| | EMERGENCY ESCAPE | | WHEEL C RING 2 | | | | BREAK GLASS | | AND | | PULL LEVER | | TO OPEN | |_______________________| You locate the panel as indicated on the engraving. """ if save.getdata("WheelCMiddleLadder") == "open": text += "\nThe glass is already broken." enterText = "You reach in the panel, and pull the lever.\nThe hatch opens and you go inside." openText = "Pull the lever?" else: text += "\nThe glass look thin and you feel an odd temtation to smash it.\nWritten on the glass is a warning." text += "\nFOR EMERGENCIES ONLY.\nSECURITY WILL BE ALERTED TO MISUSE!" enterText = "You smash the glass, and pull the lever.\nThe hatch opens and you go inside." openText = "Smash the glass?" game.rolltext(text) if (game.yesno(openText)): if save.getdata("WheelCMiddleLadder") == None: save.setdata("WheelCMiddleLadder", "open") game.rolltext(enterText) goto("ladder")
def table(): #region table() def glassText(): g = save.getdata("apartment:glass") if g == None or g == 2: return "a full glass of water" elif g == 1: return "a half full glass of water" else: return "an empty glass" #end of glass description def pillsText(): if (save.getdata("apartment:pills")): return "" else: return ", some small white pills" #end of pills description game.rolltext(""" You look at the nightstand table. You see {0}{1} and two framed pictures. One with a cyan frame, one with a golden frame. """.format(glassText(), pillsText())) a = game.choose([ "Glass", "Cyan framed picture", "Golden framed picture", "back off" ]) if a == 0: g = save.getdata("apartment:glass") if g == None or g == 2: save.setdata("apartment:glass", 2) if (game.yesno("Take the pills?")): game.showtext( "You take the white pills and drink from the glass.") save.setdata("apartment:pills", True) save.setdata("apartment:glass", 1) else: game.showtext("You did not take the pills") elif g == 1: print("The glass is half empty. Or is it half full?") if (game.yesno("Drink from the glass?")): game.showtext( "you drank the rest. The glass is now empty.") save.setdata("apartment:glass", 0) else: game.showtext("you left the glass alone") else: game.showtext("The glass is empty") elif a == 1: j = save.getdata("jeff") if (j == None): if (save.getdata("klara") == None): j = "spouse" else: j = "sibling" save.setdata("jeff", j) game.rolltext(""" You stare closely at the man in the cyan framed picture. He looks familiar. Very familiar. You seem to remember he insisted you did not need some expensive frame for his picture. You study his features closely. Suddenly it clicks in your mind. You recognize him now. It is Jeff, your {0}. """.format(game.getGenderedTerm(j, "male"))) else: game.showtext("It is Jeff, your {0}".format( game.getGenderedTerm(j, "male"))) elif a == 2: k = save.getdata("klara") if (k == None): if (save.getdata("jeff") == None): k = "spouse" else: k = "sibling" save.setdata("klara", k) game.rolltext(""" You stare closely at the lady in the gold framed picture. You study her close, trying to remember who she is. As you are looking in her eyes when you realize who she is. Her name is Klara, you seem to remember. Klara.. she is your {0}! 'How could you forget that?', you wonder. """.format(game.getGenderedTerm(k, "female"))) else: game.showtext("It is Klara, your {0}".format( game.getGenderedTerm(k, "female"))) else: return table() #repeat
def reactNode(): game.rolltext(""" The door in front of you are full of warning and hazard signs. Reactor-ring control node, radiation hazard, chemical hazard, tachyon hazard. """) if save.getdata("reactorC:fixed", False): game.rolltext("""You peek inside. You catch a brief glimse of yourself operating the control system. The reactor may not be entierly stable, but you have done what you could. You closed the door so not to disturb yourself.""") return if not game.yesno("Are you sure you want to go inside?"): return #Idea: # The reactor may have one day been a marvel of tachyon engineering. #A machine that could beat entropy to a pulp, now dieing to it. g = game.getGender(save) p1 = "man" if g == "male" else "woman" p2 = "he" if g == "male" else "she" p3 = "his" if g == "male" else "her" #reason why this shutdwn could not be done remotly: temperal bleeding corrupted all data packages, repeating the signals randomly. game.rolltext(""" Alarms bleeping, lights flashing, plasma leaking, then unleaking, as small pockets of local spacetime loops. As you enter the room you instinctivly step aside to let a oddly familiar {0} out of the room. Suprisingly, {1} looked oddly familiar. Looking up from {2} hands and at you, the {0} looks as shocked as you. But as suddenly as {1} appeared, the {0} suddenly dissappeard. What was {1}? A ghost? You sit down on the chair in front of the controls. You look around at all the virtual knobs and dials on the control-screen. Looking to your left, you find a manua.. wait. .. it's gone. no, now it's there again. ..and it's gone! """.format(p1, p2, p3)) ind, val = game.choose2( ("try to snatch the manual next time it appears", "randomly enter data into the control-screen"), "What will you do?") #stupid choice resulting in a game over: if (ind == 1): game.setGameover(save, "You got yourself trapped in a timeloop") game.rolltext(""" Not knowing what to do, you start hammering on the controls. You tried adjesting that sqiggly thing, you tried to increase that number, you tried to stop that ticking.. you tried any little thing you could think of.. then you, without knowing what to do, start hammering on the controls. you tried adjusting that sq.. you realized you were now doing what you did a minute ago. are you stu.. tried adjusting that little sqiggly.. uh no, you realize, as you got your thinking stright again. you try to undo what you did when.. you try adjusting that sqiggly thi.. 'shit' you managed to think as you suddenly find yourself trying to adjust that squigg.. and again.. at shorter and shorter intervals. The after looping for what seemed like forever, with the intervals going shorter and shorter, they suddenly stopped getting shorter. From what you could tell, with the little self awareness you could muster, the intervals were at about 1 secund. And you soon realied why. Aside from your little looping bobble, everything was gone. You aren't dead. Not really. But by now, you wish you were. """) nav.running = False return #end of game over stupity game.rolltext(""" You hover your hand over where the manual were a secund ago. ... There it is! you snatch it! ..! Ouch! You got the manual book in your hand, but your fingers are now covered in a layor of some oily substance. And they feel cold, really cold and numb. Looking at the where you picked up the manual, it suddenly flashed in again, despite also being in your hand. Moreover, there was now something else.. your fingers! your disenbodied fingers appearing out of nowhere to grab the manual, only to dissappear, and reappear. You decide to ignore this odd phenomenon, as you focus on your task. Browsing the manual you find instructions for a number of emergency procedures. """) #You need to first initalize the emergency cooling system, then the emergency particle decelerator. choices = [ ("COOL DOWN", "Initiate Emergency cooling system"), ("SLOW DOWN", "Engage emergency particle decelerator"), ("HURRY UP", "Engage emergency particle accelerator"), ("FIRE SUP 1", "Engage accellerator fire suppression system"), ("FIRE SUP 2", "Engage control room fire suppression system"), ("INFO", "Run automatic diagnostics"), ("INSTADEATH", "Engage emergency overload"), ("REVERSE", "Depolorize the tacheon emitter"), ("SHUTDOWN", "Shutdown tacheon emitter array") ] random.shuffle(choices) cooledDown = False # must be done first slowedDown = False # will cause a fire if done before cooldown #fireSuppressed_1 = False # will have no effect if there are no fire ### unused ### warnedOfLoops = False #unlocks with the INFO option, enables some alternate text. #depolorized = False #unlocks with the reversed option, it adds more time loops. ### unused ### fixing_reactor_loop = True while fixing_reactor_loop: ind, val = game.choose2(choices, "What procedure will you attept?") if val == "SHUTDOWN": game.rolltext(""" You followed the instructions to shut down the the tacheon emitter array. ... The system register succesful, then not successful shutdown, then both at the same time. """) if warnedOfLoops: game.rolltext(""" It took you a moment to see it, but you now realized why this is. Looking over the diagnatic data you retrived earlier, you see most of the emitters are stuck in time-loops. They are running perpetually. Trying to just shutting them down just won't work. """) else: game.rolltext(""" You are completly baffled at what this. You ended the shutdown process. You decide to try something else. """) choices.pop(ind) elif val == "REVERSE": game.rolltext(""" You followed the instructions to depolarize the tacheon emitters, whatever that means. Shortly after doing so, you noticed something quite off. A hole just appeared in the side of the wall, then seemed to reassamle into a wall again before suddenly turning back into a hole, and repeated. Whatever you just did, you are pretty sure you just made it all worse. You decided not to try that again. """) #depolorized = True choices.pop(ind) elif val == "INSTADEATH": nav.running = False fixing_reactor_loop = False game.setGameover( save, "You found a way to blow youself up. You are very VERY dead!" ) game.rolltext(""" You followed the instructions for initiating an emergency overload. Right after pressing the confirm key on the screen, you got an odd feeling. The reactor started humming. Did you just make a huge mis.. ... You never got to finish that thought. You just ceased to exist. To say you were atomized is not entierly accurate, but that may be the closest terminology to describe what happened to you. At least, there were no pain. """) return elif val == "FIRE SUP 2": game.rolltext(""" You followed the quite simple instruction, and... the entire room just got sprayed by a dense foam, convering every surface. yuck. If there acually was a fire, you are convinved the fire would be gone by now. But there was no fire. 'Why did I do this?' you think to yourself while trying to get foam out of your hair. """) choices.pop(ind) elif val == "FIRE SUP 1": if slowedDown: game.rolltext(""" You followed the quite simple instruction, The fire in the accellerator ring went out. Unfortunatly this also made the accellerater accellerate back up. """) else: slowedDown = False game.rolltext(""" You followed the quite simple instruction, Nothing seems to have happened. """) elif val == "HURRY UP": nav.running = False fixing_reactor_loop = False game.setGameover(save, "You got yourself trapped in a timeloop") game.rolltext(""" The instructions for accellerating the accellerator were quite easy to follow. you just adjusted that sqiggly thing, increased that varible, pressed that confirm button, changed that dial, adjusted that sqiggly thing, increased that varia.. wait.. wha you adjusted that sqiggly thing, incr.. you just had a sudden feeling of déjà vu, as you again adjusted that sqiggly thing. uh no, you realize, as you got your thinking stright again. you try to undo what you did when.. you followed instructions to adjust that sqiggly thi.. 'shit' you managed to think as you suddenly find yourself adjusting that squigg.. and again.. at shorter and shorter intervals. The after looping for what seemed like forever, with the intervals going shorter and shorter, they suddenly stopped getting shorter. From what you could tell, with the little self awareness you could muster, the intervals were at about 1 secund. And you soon realied why. Aside from your little looping bobble, everything was gone. You aren't dead. Not really. But by now, you wish you were. """) return elif val == "SLOW DOWN": if slowedDown: game.rolltext(""" As you were about to start following the instructions, you realized you have already done this. There is no need to do it again. """) elif not cooledDown: game.rolltext(""" You followed the instructions to decelerate the accellerator. ... It seems to work, for a while. Then suddenly a new alarm starts bleeping. Fire. There is a fire in the accellerator now. """) else: game.rolltext(""" You typed in the final instructions for decellerating the system. ... You check the readouts, and several alarms stops beeping. The reactor is no longer critical, but that might change. """) fixing_reactor_loop = False #Fixed the reactor slowedDown = True elif val == "COOL DOWN": if cooledDown: game.rolltext(""" As you were about to start following the instructions, you realized you have already done this. There is no need to do it again. """) elif slowedDown: game.rolltext(""" You attempt to follow the instructions for initiating emergency cooling, unfortunalty, it seems the fire is making it more or less impossible to initiate the cooling system. """) else: game.rolltext(""" You follow the instructions, and soon the emergency cooling brought the temperature down. some of the alarms stops bleeping, and you notice the previusly looping instruction manual disappeard. Well, your fingers somewhy still remained there, looping as creepy as before, but now they were reaching for nothing. """) cooledDown = True elif val == "INFO": textFlow = "" textTemp = "SAFE" if cooledDown else "VERY HIGH!" if slowedDown else "HIGH!" textFireAlert = "" if slowedDown: for _ in range(random.randint(3, 10)): textFireAlert += "\n\tALERT: FIRE DETECTED IN REACTOR SUBSEGMENT {0}{1}".format( random.choice(("A", "B", "C", "D")), random.randint(1, 12)) textFirsttime = "" if warnedOfLoops else """ It did not take long for you to realize that the 'human operator' is you. This might explain the anomolies. You should be extra careful of what you do here. """ game.rolltext(""" You followed the instructions to initiate a diognastic of the reactor. ... STATUS: CRITICAL TACHEON EMITTERS: ONLINE TACHEON FLOW: {0} ((IRREGULAR)) TEMPERATURE: {1} ((HIGH!)) STRUCTURE INTEGRETY: COMPROMISED! TEMPERAL INTEGRETY: COMPROMISED! {2} ALERT: UNCONTROLLED TIME LOOP EVENT(S) DETECTED AT SUBSEGMENT A06 - POTENTIAL TACHEON LEAK ALERT: UNCONTROLLED TIME LOOP EVENT(S) DETECTED AT SUBSEGMENT A12 - POTENTIAL TACHEON LEAK ALERT: UNCONTROLLED TIME LOOP EVENT(S) DETECTED AT SUBSEGMENT B04 - POTENTIAL TACHEON LEAK ALERT: UNCONTROLLED TIME LOOP EVENT(S) DETECTED AT SUBSEGMENT B08 - POTENTIAL TACHEON LEAK ALERT: UNCONTROLLED TIME LOOP EVENT(S) DETECTED AT SUBSEGMENT B12 - POTENTIAL TACHEON LEAK ALERT: UNCONTROLLED TIME LOOP EVENT(S) DETECTED AT SUBSEGMENT C01 - POTENTIAL TACHEON LEAK ALERT: UNCONTROLLED TIME LOOP EVENT(S) DETECTED AT SUBSEGMENT C02 - POTENTIAL TACHEON LEAK ALERT: UNCONTROLLED TIME LOOP EVENT(S) DETECTED AT SUBSEGMENT C06 - POTENTIAL TACHEON LEAK ALERT: UNCONTROLLED TIME LOOP EVENT(S) DETECTED AT SUBSEGMENT C09 - POTENTIAL TACHEON LEAK ALERT: UNCONTROLLED TIME LOOP EVENT(S) DETECTED AT SUBSEGMENT C11 - POTENTIAL TACHEON LEAK ALERT: UNCONTROLLED TIME LOOP EVENT(S) DETECTED AT SUBSEGMENT D01 - POTENTIAL TACHEON LEAK ALERT: UNCONTROLLED TIME LOOP EVENT(S) DETECTED AT SUBSEGMENT D02 - POTENTIAL TACHEON LEAK ALERT: UNCONTROLLED TIME LOOP EVENT(S) DETECTED AT SUBSEGMENT D03 - POTENTIAL TACHEON LEAK ALERT: UNCONTROLLED TIME LOOP EVENT(S) DETECTED AT SUBSEGMENT D04 - POTENTIAL TACHEON LEAK ALERT: UNCONTROLLED TIME LOOP EVENT(S) DETECTED AT SUBSEGMENT D07 - POTENTIAL TACHEON LEAK ALERT: UNCONTROLLED TIME LOOP EVENT(S) DETECTED AT SUBSEGMENT D08 - POTENTIAL TACHEON LEAK ALERT: UNCONTROLLED TIME LOOP EVENT(S) DETECTED AT SUBSEGMENT D09 - POTENTIAL TACHEON LEAK WARNING: REACTOR BREACH(ES) DETECTED! WARNING: MELTDOWN IMMINENT! WARNING: HUMAN OPERATOR DETECTED IN COMPROMIZED SUBSECTION B04! EVACUATION IS ADVICED! {3} """.format(textFlow, textTemp, textFireAlert, textFirsttime)) #Lots TODO here... warnedOfLoops = True #end of loop if cooledDown and slowedDown: game.endCounter(save, "reactorC") save.setdata("reactorC:fixed", True) game.rolltext(""" Leaving the room, you fuss over your hand. You are slowly regaining feeling in it. Suddenly you notice something.. someone in front of you. You look up at the stranger. It took you a bit by surprise, but then you remembered what happened when you first came in. And as before, the other person suddenly disappeared. You leave the room content you have done what you could to fix it up.""")
def core(save): intro = "" proom = save.getdata("prevroom") if (proom == "ladder"): intro = """ As you push off from the laddershaft, you fly upwards in the low gravity. You reach the center, finding yourself entierly weightless. You take hold on a rotating pole. Soon the pole seemed to stop rotating, and the room started rotating around you. You see the ladder you came out from now no longer as "down", but as part of the wall. From your perspective, "up" has become a set of reinforced windows at one end of the sphere. "Down" has become a large open doorway, with a sign lableing it "airlock". That being said, had you turned yourself the other way, it would be the other way around. As the room spins around you, you take note of the clearly labled entry points around you. """ else: intro = """ You float mindlessly around in the huge sphere untill you get a hold on a spinning pole in center. Soon the pole seemed to stop rotating, and the room started rotating around you. As the room spins around you, you take note of the clearly labled entry points around you. """ game.rolltext(intro) choices = (("WINDOW", "Core window"), ("ELEVATOR_SEC_A", "Section A transport elevator"), ("LADDER_SEC_B", "Section B emergency access ladder"), ("ELEVATOR_SEC_C", "Section C transport elevator"), ("LADDER_SEC_D", "Section D emergency access ladder"), ("AIRLOCK", "Module primary airlock and dock"), ("GAMEMENU", "OPEN GAME MENU")) running = True while running: _, choice = game.choose2(choices) if choice == "GAMEMENU": if (game.gameMenu(save)): break elif choice == "WINDOW": if save.getdata("core:window", False): text = """ You look back at the window area. The window is closed by the huge metal shutter. You still hear the occational clang and bang. You decide not to get closer, just in case. """ else: text = """ You climb, or rather push and drag your way to the window at one end of the pole. The pole connected to a set of handrails, rotating with the wall. It was a awkward transision, but you are now looking out a solid thick window.""" if (save.getdata("apartment:window")): text += """ Unlike the 'window' in the room you woke up in, this window was at least not holographic. You could tell by the lack of lag when you moved your head, the large solid sliding shutters on both sides of the window uh and the fact you are looking out into space, and not an idyllic forest.""" else: text += """ The window gives you a great view into space, it is quite impressive view. You take note of the large solid sliding shutters on both sides of the window.""" text += """ You took some time to enjoy the view. ... ..... ... ... Some debris hit the solid window. You figure this was your cue to leave and focus on the imminent threat on hand. ... As you push and drag your way back, you hear a odd bang. Then an alarm starts howling. You look back, and see the shutters close. You hear more bangs, debris hitting the shutters. Might be a good idea to get out of there. """ save.setdata("core:window", True) game.rolltext(text) elif choice == "ELEVATOR_SEC_A": game.rolltext(""" You look at the elevator access rotating around. A huge A is painted on it.""") if (game.yesno("Float over to it?")): dialoges.elevator(save) elif choice == "ELEVATOR_SEC_C": game.rolltext(""" You look at the elevator access rotating around. A huge C is painted on it.""") if (game.yesno("Float over to it?")): game.rolltext(""" You push off and float to the elevator. When you got there, you noticed a flashing electoric board flashing a read light and the text: BRECH DETECTED! NO ACCESS! You took off back to the pole.""") elif choice == "LADDER_SEC_B": game.rolltext(""" You look over to the ladder access rotating around. It has a huge B painted on it. float over to it?""") if (game.yesno("Float over to it?")): save.goto("ladder") running = False elif choice == "LADDER_SEC_D": game.rolltext(""" You look over to the ladder access rotating around. It has a huge D painted on it. float over to it?""") if (game.yesno("Float over to it?")): game.rolltext(""" You push off and float to the ladder. When you got there, you noticed a flashing electoric board flashing a read light and the text: BRECH DETECTED! NO ACCESS! You took off back to the pole.""") elif choice == "AIRLOCK": game.rolltext(""" You look "down" towards the huge door "below". Taking in the details, you see the pole ending a bit before it, splitting into 4 aches around the doorway. Like the pole itself, the doorway was fixed, and not rotating with the room. On a closer look, there is a secund doorway past it, and two more again, with only some small gap of room between them. The inner-most door are closed, but has some large windows where you can see the area past it, clearly. """) if not game.yesno("Take off towards the doorway?"): continue game.rolltext(""" You rotate yourself so the doorway was now "above" you. You take off, pushing and dragging along the pole untill you reach the doorway. """) if not game.yesno("enter the doorway?"): game.rolltext(""" For whatever reason, you decide to drag yourself back to the pole. As you turned around, you noticed some people float into view on the, with confused looks. """) continue game.rolltext(""" You enter through the first two doorways. you note the middle section between the doors were diffrent than the other two. It was shorter and had a seam down the middle. As you were floating though, you were greeted by someone who suddenly floated into view. """) save.goto("cargobay") running = False return status = game.updateCounter(save, "reactorC", -1) if status == "death": #if reactor counter reach 0, and the game ends. running = False
def auxcom_repair(): #grabbing some data from save #redwhiteblue = save.getdata("auxcom:redwhiteinblue") cargoConnected = save.getdata("auxcom:cargo") blueinblue = save.getdata("auxcom:blueinblue") tblueinwhite = save.getdata("auxcom:thickblueinwhite") yellowtasted = save.getdata("auxcom:yellowtasted") systemStatus = save.getdata("auxcom:systemstatus", "BROKEN") #region auxcom repair game.rolltext(""" You find a large panel with a screen on wall next to you. It has the following text painted and engraved under it |‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾| | AUXILLARY COMS | | | | FOR AUTHORIZED USE | | ONLY | |_______________________| Under that you find a smaller panel that seem to invite you to push it. """) if not game.yesno("Push the lower panel?"): game.showtext("You leave the auxillary communications panel alone") return if (cargoConnected): return dialoges.auxcom_cargo( save) #auxcom_cargo: contact the folks in cargo. if (systemStatus == "OK"): game.rolltext(""" You push the panel. The panel lowers as a latch to reveal a keyboard. The screen turns on and displays the text ' AUXILLARY COMS ONLINE. DO YOU WISH TO PLACE A CALL?' """) return dialoges.auxcom_contact( save) #auxcom_contact: finding someone to talk to # auxcom main: fix the system if (systemStatus == "SHUTDOWN"): game.rolltext(""" You push the panel. The panel lowers as a latch to reveal a keyboard. The screen remains off for a while. Then you hear a beep. """) if tblueinwhite: systemStatus = "OK" game.rolltext(""" The screen turns on and displays the text 'CONNECTION RE-ESTABLISHED! DO YOU WISH TO PLACE A CALL?' """) save.setdata("auxcom:systemstatus", systemStatus) return dialoges.auxcom_contact(save) else: game.showtext( "You push the panel. The panel lowers as a latch to reveal a keyboard." ) game.rolltext(""" The screen turns on, but displays static. Unseen speakers make some sort of repeated beeping pattern that seems oddly familiar, but you cannot quite place it. You notice a handle on the side of the panel the screen is on. """) if not game.yesno("open the panel?"): game.showtext( "You decide it is not worth bothering with, close the lower panel, and turn to leave." ) return """ Opening the panel you find a mess of vires, some of them lose. Unfortunetly, none of them are labled, and all have the same port shape. The only diffrence is the thinkness and color of the cables. You take a moment to brainstorm ideas on what do with with the cables. ... .. . You made a list of things you could try. """ #NOTE: the general idea I have is to have a larger puzzle where options are added and removed as you try things. # For now, there is only a single set of options, where the bad options are removed as they are attempted. # Uses game.choose2 to allow for options to be added and removed choices = [] choices.append( ("THICK BLACK IN WHITE", "Disconnect thick black cable and plug it into white socket" )) #a speaker explodes choices.append( ("BLUE IN BLUE", "Plug blue cable into blue socket") ) # nothing happens. if left this way, one speaker will later have a (harmless) feedback choices.append( ("REDWHITE IN WHITE", "disconnect red/white striped cable and plug it in white socket") ) # screen comes to life, displaying an audiovawe of your panting. choices.append( ("REDWHITE IN BLUE", "disconnect red/white striped cable and plug it in blue socket") ) # screen remains static, but what looks like flags seems to faintly fly in the background. choices.append( ("THICK BLUE IN WHITE", "Disconnect thick Blue cable and plug it into white socket" )) #nothing happens (key to make it work) choices.append( ("TASTE BLACK", "disconnect thick black cable and taste it.")) # yeah.. death. choices.append( ("YELLOW IN BLACK", "plug yellow cable into black socket")) #com system shuts down choices.append( ("TASTE YELLOW", "taste yellow cable" )) #this acually works... after you plug blue into white random.shuffle(choices) choices.append(("EXIT", "close panel")) cableLoop = True while cableLoop: text = "" i, a = game.choose2(choices, "What will you try next?") if a == "EXIT": cableLoop = False break #redundant? #endof exit elif a == "TASTE YELLOW": text = "" if yellowtasted: text += """ You decide to try and lick the yellow cable again. ... Yup, still tingley """ else: yellowtasted = True text += """ On a whim you decided to lick the end of the yellow cable. It had kind of a tingely taste to it.""" if tblueinwhite: text += """ As you lick, you notice the system {0}boot, and a robotic voice comes the the speakers. "<<CONNECTION RE-ESTABLISHED! DO YOU WISH TO PLACE A CALL?>>" """.format("re" if systemStatus != "SHUTDOWN" else "") systemStatus = "OK" elif systemStatus == "SHUTDOWN": text += """ As you lick the cable, the com-system suddenly comes back to life! Though it is back to just beeps and static """ systemStatus = "BROKEN" else: text += """ The system blinks and reboots. Nothing seems to have changed though, still just beeps and static. """ #endof taste yellow elif a == "THICK BLACK IN WHITE": text = "You disconnect the think black cable, and plug it into the white socket." if systemStatus == "SHUTDOWN": text += "\nAt first, this seems to work, as the system seemed to turn back to life. Alas it were not to last." text += """ Suddenly there was some sparks in the area aroud the white socket. You hear a faint hum. Then hum then turns into a screeching sound that increase in frequency and volume. Then a speaker explodes, and the system goes black{0}. You quickly disconnect the black cable, and put it back to where it was. You decide not to try that again. """.format(" again" if systemStatus != "SHUTDOWN" else "") systemStatus = "SHUTDOWN" choices.pop(i) #endof thick black in yellow elif a == "BLUE IN BLUE": blueinblue = True text = """ You insert the blue cable in the blue socket. ... *blip* .... .. Nothing... Other than a faint blip, nothing happened. You scratch this off the list. """ choices.pop(i) #endof blue in blue elif a == "REDWHITE IN WHITE": text = "You plug the red-white striped cable in the white socket." if systemStatus == "SHUTDOWN": text += "\nBut nothing happened, and the system is still shut down." else: text += """ The beeps stop, and you notice the screen stops playing static. You check the screen .... 'What th..' you are about to say when all you saw was a flat blue line. But then you noticed it made a wave as you talked. Well, that's very 'useful' """ text += "\nYou disconnect the red-white striped cable.\nThat was a blind end." choices.pop(i) #end of redwhite in white elif a == "REDWHITE IN BLUE": text = "You plug the red-white striped cable in the blue socket." if systemStatus == "SHUTDOWN": text += "\nBut nothing happened, and the system is still shut down." else: text += """ You hear an extra beep as you plug in the cable, but nothing else. The screen blinks, but seems to be back to show ing static. You check the screen, and you notice the screen now shows something behind the static. .... 'What the..' you say as you notice a number of red white and blue flags burned into the background of the static. Well, that's.. colorful... """ text += "\nYou disconnect the red-white striped cable.\nThat was a blind end." choices.pop(i) #endof redwhite in blue elif a == "THICK BLUE IN WHITE": text = "" if systemStatus == "SHUTDOWN": if tblueinwhite: text += "\nYou unplug the thick blue cable, and plug it back in." else: text += "\nYou plug the thick blue cable in the white slot" text += "\nBut nothing happened. The system is still shut down." text += "\nYou decide to leave the cable connected." else: if tblueinwhite: text += "\nYou unplug the thick blue cable, and plug it back in." text += "\nThe screen blinks with brief static, but once again displays black screen with the text 'ERROR - PLEASE REBOOT'." else: text += """ You plug the thick blue cable in the white slot You notise the screen suddenly stopped displaying static. You check the screen, and find it now displays a black background with a text in white 'ERROR - PLEASE REBOOT' """ tblueinwhite = True elif a == "TASTE BLACK": text = """ You unplug the big thick black cable, and stuck out your tongue to lick it. You're not sure why you just did that. As you somehow put the cable in your mouth, the world goes black. """ game.setGameover( save, "You put a live power-cable in your mouth. Yeah, you are dead." ) nav.running = False #escape outer room loop cableLoop = False #escape inner loop elif a == "YELLOW IN BLACK": pass if systemStatus == "SHUTDOWN": text = """ You unplug the cable in the black slot, and plug in the yellow. Nothing happened, and the system is still shut down. You decide to undo it, plugging the black cable back in. """ else: text = """ You unplug the cable in the black slot, and plug in the yellow. As you plug in the yellow cable, there was a breif spark, then system shuts down. You decide to undo it, and never try that again, putting the black cable back in. """ choices.pop(i) systemStatus = "SHUTDOWN" game.rolltext(text) #saving data.. #save.setdata("auxcom:redwhiteinblue", redwhiteblue) save.setdata("auxcom:blueinblue", blueinblue) save.setdata("auxcom:thickblueinwhite", tblueinwhite) save.setdata("auxcom:yellowtasted", yellowtasted) save.setdata("auxcom:systemstatus", systemStatus) if (systemStatus == "OK"): return dialoges.auxcom_contact(save) elif not game.getGameover(save): game.showtext("You leave the AUX com alone.")
def bathrooms2(subroom): gender = None visited = save.getdata( "bathroom:visited", False) # if the Player Character has visited the bathrooms beofore showered = save.getdata("bathroom:showered", False) # whatever the PC has showered relived = save.getdata( "bathroom:relived", False) # whatever the PC has had the chance to relive themself keepsake = save.getdata( "spouse:keepsake", False ) # potential use in later chapters. Only unlockable if you have remembered who your spouse is. relationKlara = save.getdata( "klara", None ) #if spouse, unlocks retrival of keepsake in ladies locker-room relationJeff = save.getdata( "jeff", None) #if spouse, unlocks retrival of keepsake in mens locker-room choices = None wrongroom = "" #if the PC enters the wrong bathroom, this extra nerrative is added. facedesc = "" #describes what the PC sees in the mirror (male or female) areadesc = "" #describes the facilities in the room (mens or ladies) #This section determines PC's gender if not already set. if subroom == "mens": gender = save.getdata("gender", "male") if gender != "male": wrongroom = """ You're not exacly sure why you went into the men's room, and not the ladies' room. Though you suppose it doesn't really matter. There is nobody here anyways.""" areadesc = """ a line of toilet stalls, a large urinal, a few changing rooms, a locker room, showers, couple of them private, and a dispenser of hygine products.""" choices = (("SINK", "Spash water in your face"), ("TOILET", "Visit a toilet booth"), ("URINAL", "Visit the urinal"), ("HYGINE_MENS", "open the hygine dispenser"), ("SHOWER", "Go the the showers"), ("LOCKERS", "Go to the locker room"), ("EXIT", "leave")) elif subroom == "ladies": gender = save.getdata("gender", "female") if gender != "female": wrongroom = """ A man going inside the ladies room would normally be seen as quite perverted. But as it is, the ladies is as vacant of people as the rest of this place.""" areadesc = """ a line of toilet stalls, a few changing rooms, a looker room, showers, couple of them private and a hygine despenser with varius.. products...""" choices = (("SINK", "Spash water in your face"), ("TOILET", "Visit a toilet booth"), ("HYGINE_LADIES", "open the hygine dispenser"), ("SHOWER", "Go the the showers"), ("LOCKERS", "Go to the locker room"), ("EXIT", "leave")) if gender == "male": facedesc = "a rugged man with a stubby beard." if gender == "female": facedesc = "a tired looking woman with clear bags under they eyes." if not visited: game.rolltext(""" You enter the {0} room.{1} Finding yourself in front of the large array of sinks and mirrors. Some of the mirrors are broken, but you found one that was relativly intact. You have a look at yourself. What you see is {2} You look about as shitty as you feel, yet it does look familiar. That's a good thing, right? Looking around, you see {3} """.format(subroom, wrongroom, facedesc, areadesc)) else: game.showtext("PLACEHOLDER text for return visit to bathrooms.") visited = True save.setdata("bathroom:visited", True) while True: _, choice = game.choose2(choices, "What do you want to do?") if choice == "EXIT": game.showtext("You leave the {0} room".format(subroom)) return elif choice == "SINK": game.showtext( "You splash some water on your face. It feels refreshing.") elif choice == "TOILET": act = "" if (relived ): #relived = save.getdata("bathroom:relived", False) act = "You sit for a bit, resting. You don't feel the need to 'do' anything." else: act = "You relieve yourself right there and then. You must have held it in for a while without thinking about it." save.setdata("bathroom:relived", True) relived = True game.rolltext( """You locate a nice toilet booth, and sit down on a porcelain throne. Well, ok, not porcelain, these toilets are made of metal. {0} After a while you decide it is time to get back up""".format( act)) elif choice == "URINAL": if relived: game.showtext( "you stand over by the urinal for a bit, but you don't feel any need to use it." ) elif gender == "female": game.showtext( "As you approach the urinal, you wondered how it was like for men to use contraptions like this." ) if (game.yesno("Try to piss in it?")): game.rolltext("""You awkwardly posision yourself, and partially relive youself down the urinal. It was kinda fun. And you mostly hit the target. mostly.. Still, having done that, you realize you have 'other' needs to relive youself of.""" ) if (game.yesno("Take a dump in the uninal?")): game.showtext( "You did the deed in the urinal. you slowly back off, giggling a bit as your inner girl got her wicked wish." ) save.setdata("bathroom:relived", True) relived = True else: game.showtext("You left the uninal alone.") else: game.rolltext( """You instinctively unzip and relive youself down the uninal. it was quickly done. But soon you realize you have 'other' needs to relive youself of.""") if (game.yesno("Take a dump in the uninal?")): game.showtext( "You did the deed in the urinal. you slowly back off, giggling a bit as your inner child got his very childish wish." ) save.setdata("bathroom:relived", True) relived = True elif choice == "HYGINE_LADIES": game.showtext( "You examine the dispenser. You find some soaps, tampons, manual razor blades, a few female condoms. Nothing you really need right now" ) elif choice == "HYGINE_MENS": game.showtext( "You examine the dispenser. You find some soaps, condoms, razor blades. Nothing you really need right now." ) elif choice == "SHOWER": if showered: game.showtext( "You go over to the showers. But you already feel clean, so you go back." ) else: game.rolltext("""You enter one of the private show stalls. You undress, and turn on the shower You note as all the grime washes off you. you feel a lot better now. ... ... you dry up, dress yourself and again, and leave the shower.""") showered = True showered = save.setdata("bathroom:showered", True) elif choice == "LOCKERS": text = "You take a walk along the lockers." if keepsake: text += "\nThere was not much more to see." elif subroom == "mens" and relationJeff == "spouse": text += """ You stumble upon a familiar locker. Jeff's locker. Your hands move on their own, it seems his locker combination is deep in your subconsius. Inside you find a small box. It feels important. You take it with you.""" keepsake = True elif subroom == "ladies" and relationKlara == "spouse": text += """ You stumble upon a familiar locker. Klara's locker. Your hands move on their own, it seems her locker combination is deep in your subconsius. Inside you find a small box. It feels important. You take it with you.""" keepsake = True else: text += "\nThere was not much to see." save.setdata("spouse:keepsake", keepsake) game.rolltext(text) status = game.updateCounter(save, "reactorC", -1) if status == "death": #if reactor counter reach 0, and the game ends. break
def auxcom_cargo(save): #Note: Whatever the dialoge, it is up to the player what to do afterwards. asshole = save.getdata("auxcom:asshole", False) reactorFixed = save.getdata("reactorC:fixed", False) prevcontact = save.getdata("auxcom:cargo", False) thankedForReactor = save.getdata("auxcom:react_thanks", False) key = save.getdata("auxcom:stasispasskey", False) # Only change is the information they are given. # From here, or the ladder if the player skips this, a counter is enabled that gives the player 10 'time units' before game over. if not reactorFixed and game.getCounter(save, "reactorC")[0]: #counter not enabled game.setCounter(save, "reactorC", "onReactorCTime", 10) #sets up a new timer, running onReactorCTime every time it is updated. name = game.getName(save) gender = game.getGender(save) klara = game.getKlara(save) if prevcontact: #TODO: alternate contact for returning to auxcom if asshole: game.rolltext("What? You again? uhm.. sorry, just lost connection!\n(call disconnected!)") elif reactorFixed: if not thankedForReactor: game.rolltext(""" Hey! Good job with the reactor! The accellerator seems to be running stable for now. It will not last long, but at least we aren't in a hurry any more. Looks like we got maybe two hours. Though bestnot wait that long. Alright, what I need you to do now, is to rescue everyone who is stuck in stasis. Any questions? """) else: game.rolltext(""" Hello again. Again, thanks for fixing the reactor. We still got some time. Did you have more questions? """) choices = ( ("CODE", "What was that code again?"), ("TRUTH","Exacly what happened?"), ("EXIT", "Not right now. Bye.") ) while True: _, c = game.choose2(choices, "How do you respond?", "<<{2}") if c=="EXIT": game.showtext("Ok then. Hope to see you here soon.") break elif c=="CODE": game.rolltext(""" As we said earlier, the code is 0-0-0-0-0. Again, please don't mock us for not changing the factory settings. """) elif c=="TRUTH": game.rolltext(""" Well, that's the thing. We are still investigating. What we know so far is that there was a glitch in the nav system. We don't know how that happend, nor why nobody noticed. Well, this glitch caused us to pass though an asteroidbelt. We don't know how that happened, nor why nobody noticed. Well, this glitch caused us to pass through an asteroidbelt. Our fine pilots got us through the worst. The ship may not be very manuverable, but there are still kilometers between the rocks, so at least we had a good chance. But alas we hit one of the smaller rocks that we somehow missed on our LIDAR. """) choices2 = ("Ask for short version", "Continue listening to the entire tale") c2 = game.choose2(choices2, "Interrupt?") if c2 == 0: game.rolltext(""" Um.. sorry? Well, you asked. Ok. Short version. We got hit hard by an asteroid. Might be sabotage, unknown. We started an orderly evacuation, then the reactor got bad, and the hull breached a few places. Then we woke everyone we could, and ran for the exit. Sorry to say, but it seems you got left behind and forgotten in the chaos. """) else: game.rolltext(""" The rock bounced off Wheel C, causing massive damage. Immidiatly we sent repair-bots out to fix the damage to the reactor-ring. The reactor ring and accellerator survived the impact, but got bent on a few places. And you're an engineer, you know what happens if we keep sending tacheons though a bent reactor ring. As expected, the nearby hull-section tore itself apart. We lost all C-sections to vacuum in the matter of secunds. So fixing the reactor ring proved quite urgent. But the bots can't get over the the damage from the outside while the wheel was spinning, and the AG-thursters got wrecked in the impact, so we coulden't brake the wheel. So we thought we could send the bots though the section-doors, but lacking internal airlocks in the sections, we would need to vacuum the wheel first. So we started evacuating, first by waking people by small groups at a time. Our reports say you were amung the first to be recovered from stasis, unfortunatly, you remained unconscious. So you were put in your bed untill you woke up. We thought we had plenty of time to evacuate everyone in an slow and organized way. Then the reactor started going bad. The tacheon feedback from the bent accellerator ring hit earlier than eastimated. So with fixing the reactor no longer being an option, we have to ditch the entire module. The neck, wheel and core. all of it. And with that, we accellerated the evacuation. We activated the emergency wake-up system, though some of the pods in the inner ring glitched out. The People who did wake stumbled out of sleep en masse, heard the alarm, and started to panic. It was already getting a bit chaotic, but then sectors 1D and 2D suddenly breached! The already disorderly evacuation turned into an outright stampede. Just as we got the last group though of paniced folks though, the doors decided to glitch up. Then you suddenly contacted us. Good thing you did. We were about to edject the module, using the internal atmosphere as thurst. You would have been sucked out into space had we done that. Sorry you got left down there. But the important thing now is to get you and everyone else stuck in the module out before we blow this thing. """) game.showtext("Did you have more questions?") else: game.rolltext(""" Hi? Look, our systems say the reactor is still in a bad condition! We don't have time to chat! Either fix the reactor, or get out of there! """) else: game.showtext("The people on the other side of the call is waiting for you to answer.") choices = [ ("I'm {0}. I'm lost, where am I?".format(name)), ("Help, I don't know who or where I am!"), ("uhh"), ("I.. I think my name is {0}. I find it hard to remember.".format(name)) ] ind, ans = game.choose2(choices, "What do I say?") game.showtext(">>"+ans) p = "mister" if gender == "male" else "miss" if ind == 0 or ind == 3: p = name if(reactorFixed): game.rolltext(""" Ok, {0}, I need you to stay calm. First off I need to know, was it you who stabilized the reactor? """) admitfix = game.yesno("Was it?") reactorText1 = "" reactorText2 = "" if(admitfix): reactorText1 = "Well, thanks for that, {0}. We were starting to sweat bullets up here." reactorText2 = "Thanks for fixing the reactor! Klara told me you were good with machines, {2}. I guess this proves it." else: reactorText1 = "No? Well, if there are more of you awake down there {0}, you should get in contact with them as soon as possible.\n" reactorText1 += "They would likly be down in the outer ring, right below you." reactorText2 = "It was you who fixed the reactor, wasen't it? Klara warned me you were as good a jokesteer as an engineer, {2}.\n" reactorText2 += "Besides, I can tell. Your voice carries some residual effect from someone resently exposed to micro-time loops." game.rolltext(""" {3} They would likly be down in the outer ring, right below you. Anyways, please hold the line for a bit, I'm gonna get some help. (The woman you were talking leaves) ... (A man, an engineer by the looks of his attire, takes her place) Alright, {0}, I am not gonna lie. You are in a bit of trouble. But thanks to the temporary fix to the reactor, we got some time. First of, since we got the time, let me explain what has happened. You are onboard the UNS Armstrong on route from Sol to Alpha Centauri. If this seems unfamiliar to you, this may be due stasis-amnesia, a common condition caused by emergency awakening from stasis. On the way, there was a glitch i.. (the man is rudely interrupted by a third person) Hey! I know you. You're Klara's {1} right? Thanks for fixing the reactor! Klara told me you were good with machines, {2}, I guess this proves it. {4} We should probobly have you checked out in the infirmery once you get up here. But for now, we need your help. About two hundered people were stuck in stasis during the evacuation. It is up to you. With the reactor temporarally fixed, we got maybe two hours before we need to detach the module. I need you to climb up to the outer ring, and awake everyone who is still alive in there. You will need a securitycode to enter the stasis chambers. The code is 0-0-0-0-0. Yes, really. just 0-0-0-0-0. Any questions? """.format(p, game.getGenderedTerm(klara, gender), name, reactorText1, reactorText2)) choices = ( ("WHY_ME", "Why can't you save them?"), ("WEAK_CODE", "Why the simple code?"), ("EXIT", "No. I'm on my way") ) c = None while (c != 2): c, ans = game.choose2(choices, "How do you respond?", "<< {2}") if ans == "WHY_ME": game.rolltext(""" There is a problem with the doors up here. Look, it's complicated. sufficed to say, we can't go in, but you and anyone you rescue can come out. I'm not a door technician, I barely understand the problem myself. Not sure if we got the time for me to properly explain it. """) elif ans == "WEAK_CODE": game.rolltext(""" Well.. yeah.. we never expected there to ever be some kind of security issue onboard, and we kinda still don't, so we never bothered to change the factory settings. Don't worry about it. """) elif ans == "EXIT": game.rolltext("Good luck.\n(Call disconnected)") break save.setdata("auxcom:stasispasskey", True) save.setdata("auxcom:cargo", True) save.setdata("auxcom:react_thanks", True) # If the reactor is not yet fixed: game.rolltext(""" Ok. {0}, I need you to stay calm. I'm gonna get some help (The woman you were talking leaves) ... (A man, an engineer by the looks of his attire, takes her place) Ok, {0}. I am not gonna lie, you are in a bit of touble. We are gonna do what we can to help you. You are onboard the UNS Armstrong on route from Sol to Alpha Centauri. If this seems unfamiliar to you, this may be due stasis-amnesia, a common condition caused by emergency awakening from stasis. The reactor onboard is about to explode, so were about to detach the module when you contacted us. Look {0}, I need you to find the emergency ladd.. (the man is rudely interrupted by a third person) Hey! I know you. You're Klara's {1} right? You're a engineer, right? Maybe you could try to stabilize the reactor temporarily? There are still lots of people stuck in stasis in the upper ring! Look, {2}, I woulden't blame you for just making a run for the ladder to save yourself, but you could save those people! """.format(p, game.getGenderedTerm(klara, gender), name)) choices = [ ("Screw them! I'm out of here! I'm gonna climb down and get out of here!"), #ignorant idiot option ("I.. I am not gonna take that chance. I'm just gonna go meet you up the ladder!"), #reluctant selfishness ("Alright, how do I get to the reactor?"), ("What exacly happened?") ] ind, ans = game.choose2(choices, "How do you respond?", "<< {2}") if ind == 3: game.rolltext(""" I figured you would ask that. We hit an asteroid! We don't have time to go into details right now! I need you to either stabilize the reactor so we can save everyone, or get you safely out of there! """) choices.pop(3) ind, ans = game.choose2(choices, "How do you respond?", "<< {2}") if ind == 0: game.rolltext(""" Well, ehm.. that's rude. .. uh well, sure go DOWN the ladder. Uh, and take your good time too. Got to go, bye! (The call has ended) """) asshole = True elif ind == 1: game.rolltext(""" I see. Well, the reactor will reach a meltdown in just a few minutes, we need to detach the module before then. You need to hurry! The escape ladder should be nearby. You need to climb up as fast as you can. In case you need to pass though a locked security door, the code is 0-0-0-0-0. And, please dont ask. Again, the code is 0-0-0-0-0! We will meet you at the airlock in the module core. Please beware, you will be weightless up here! See you soon! (The call has ended) """) key = True elif ind == 2: game.rolltext(""" Thanks for doing this! Ok, there won't be much time, but we will hold off detaching the module as long as we can. You should find the emergency stairs nearby. You need to climb down to the outermost ring. The nearest reactor-node will not be far from the ladder. You need to first initalize the emergency cooling system, then the emergency particle decelerator. In that order! You will find detailed instructions on how to do this in the reactor-node control room. Doing this will buy us maybe an hour or two before meltdown. In case you need to pass though a locked security door, the code is 0-0-0-0-0. And, please dont ask. Again, the code is 0-0-0-0-0! You need to hurry! Get back and contact us again once you have done it! (The call has ended) """) key = True save.setdata("auxcom:asshole", asshole) save.setdata("auxcom:stasispasskey", key) save.setdata("auxcom:cargo", True) save.setdata("auxcom:react_thanks", thankedForReactor)