From 9b36c45bb1c9cfc184a3ca1fc948ff14b24f51a3 Mon Sep 17 00:00:00 2001 From: George Moromisato Date: Tue, 7 Jul 2020 22:31:54 -0700 Subject: [PATCH] Add psych treatment --- Transcendence/TransCore/Commonwealth.xml | 18 + Transcendence/TransCore/Psych00.xml | 148 +++++++ Transcendence/TransCore/Psych01.xml | 418 ++++++++++++++++++ Transcendence/TransCore/RPGLibrary.xml | 2 + .../TransCore/RPGMissionTemplate03.xml | 47 ++ Transcendence/TransCore/StarsOfThePilgrim.xml | 7 + Transcendence/TransCore/TransCore.vcxproj | 3 + .../TransCore/TransCore.vcxproj.filters | 9 + 8 files changed, 652 insertions(+) create mode 100644 Transcendence/TransCore/Psych00.xml create mode 100644 Transcendence/TransCore/Psych01.xml create mode 100644 Transcendence/TransCore/RPGMissionTemplate03.xml diff --git a/Transcendence/TransCore/Commonwealth.xml b/Transcendence/TransCore/Commonwealth.xml index b07c21033..38945719c 100644 --- a/Transcendence/TransCore/Commonwealth.xml +++ b/Transcendence/TransCore/Commonwealth.xml @@ -864,6 +864,13 @@ + + (rpgMissionAssignment { + missionCriteria: (cat "n +commonwealthHospital; =" (sysGetLevel) ";") + maxPerStation: 1 + noMissionTextID: 'descHospitalEmpty + }) + (scrShowScreen gScreen &dsRPGCommoditiesExchange;) @@ -880,10 +887,21 @@ + [H]ospital + + You are in the docking bay of %objName%. Medical professionals live and work on this station, doing everything from research, to drug manufacturing, to remote medicine. + + + + + Medtechs and patients crisscross the large reception area of the + hospital. Displays and holograms direct patients to various + specialties. + diff --git a/Transcendence/TransCore/Psych00.xml b/Transcendence/TransCore/Psych00.xml new file mode 100644 index 000000000..e8fbcf2c3 --- /dev/null +++ b/Transcendence/TransCore/Psych00.xml @@ -0,0 +1,148 @@ + + + + + + + + (switch + + ; Only valid if there exists an appropriate Commonwealth + ; medical station. + + (not (typ@ &msPsychEval01; 'stationID)) + Nil + + ; Only if we haven't already found the mission + + (msnFind "* +unid:&msPsychEval01;") + Nil + + ; Not if we're in the same system + + (= (typ@ &msPsychEval01; 'nodeID) (sysGetNode)) + Nil + + ; OK + + True + ) + + + + (block () + ; Set up mission + + (msnSet@ gSource 'destNodeID (typ@ &msPsychEval01; 'nodeID)) + (msnSet@ gSource 'destID (typ@ &msPsychEval01; 'stationID)) + ) + + + + (block () + ; If declined once we stop showing mission. + + (msnFailure gSource) + ) + + + + + + Visit Hospital Specializing in Pilgrims + + + (msnTranslate gSource 'textSummary { + systemName: (sysGetName (msn@ gSource 'destNodeID)) + }) + + + (list + { descID: 'textIntro1 labelID: 'actionIntro1 } + ) + + + (list + { descID: 'textBriefing1 acceptLabelID: 'actionAccept declineLabelID: 'actionDecline } + ) + + + (list + { descID: 'textAcceptReply1 + data: { + systemName: (sysGetName (msn@ gSource 'destNodeID)) + } + } + ) + + + (list + { descID: 'textDeclineReply1 } + ) + + + + + A hospital in the %systemName% system specializes in treating + pilgrims. Visit them and see if they can help you understand + what's happening to you. + + System: %systemName%\n + Payment: None + + + + + You enter the hospital and see medtechs and patients striding + purposefully. + + You talk to a young medtech in between shifts. After a bit of + small talk, she turns serious. + + "You know, there's a research hospital that's developed a + treatment for pilgrims. They've helped a lot of people." + + + "[T]reatment?" + + + "Of course! Your compulsions and hallucinations are just a + neurological condition, and they've made progress on figuring + out how to treat it. + + "It might allow you to live a normal life. Do you want me to + give you a referral?" + + + "[S]ure, what do I have to lose?" + "[Y]ou don't know what you're talking about!" + + + "Great! There's a medical station in the %systemName% system. + Go there and seek treatment. + + "Good luck!" + + + + + The medtech shakes her head and sighs. + + "You poor thing. I know it's disturbing to hear it, but + treatment is really your only hope. Good luck!" + + + + Mission complete! + + + + + + diff --git a/Transcendence/TransCore/Psych01.xml b/Transcendence/TransCore/Psych01.xml new file mode 100644 index 000000000..06d724315 --- /dev/null +++ b/Transcendence/TransCore/Psych01.xml @@ -0,0 +1,418 @@ + + + + + + + + + + + + + + + + + ; Pick a Commonwealth hospital in the New Beyond to have this + ; mission. + + (block ( + (stationList + (map (unvFindObject "t +unid:&stMedicalSuburb;;") 'excludeNil theEntry + (block ( + (objID (@ theEntry 0)) + (nodeID (@ theEntry 2)) + ) + (switch + + ; Must be in New Beyond (or SK) + + (and (!= nodeID 'SK) + (not (sysHasAttribute nodeID 'newBeyond)) + ) + Nil + + ; Track ID and nodeID + + { + nodeID: nodeID + objID: objID + } + ) + ) + ) + ) + + ; Pick a random station + + (stationEntry (random stationList)) + ) + + ; Remember station picked + ; + ; NOTE: It is OK if this list is Nil. In that case, the mission never + ; shows up. + + (typSet@ gType 'stationID (@ stationEntry 'objID)) + (typSet@ gType 'nodeID (@ stationEntry 'nodeID)) + ) + + + + + ; Called from inside msnCreate and msnCanCreate. + ; If defined, then return either true or nil to indicate that + ; the mission can or cannot be created. + ; + ; gData: Data passed in to msnCreate. + ; aOwnerObj: Object that create the mission (or nil) + + (switch + ; Only works for designated station + + (!= (objGetID aOwnerObj) (typ@ gType 'stationID)) + Nil + + True + ) + + + + + + + + + + + ; Called if the player accepts the mission. + ; + ; gSource: Mission object. + + (block () + (msnSuccess gSource) + ) + + + + + + ; Called if the player rejects the mission. The mission is + ; already running (OnStarted has been called). + ; + ; gSource is mission object. + + + + + + + + + + + (msnTranslate gSource 'textSummary { + systemName: (sysGetName) + }) + + + (list + { descID: 'textIntro1 labelID: 'actionIntro1 } + { descID: 'textIntro2 } + { descID: 'textIntro3 labelID: 'actionIntro3 } + { descID: 'textIntro4 labelID: 'actionIntro4 } + { descID: 'textIntro5 labelID: 'actionIntro5 } + { descID: 'textIntro6 labelID: 'actionIntro6 } + { descID: 'textIntro7 labelID: 'actionIntro7 } + { descID: 'textIntro8 labelID: 'actionIntro8 } + { descID: 'textIntro9 labelID: 'actionIntro9 } + { descID: 'textIntro10 labelID: 'actionIntro10 } + { descID: 'textIntro11 labelID: 'actionIntro11 } + { descID: 'textIntro12 labelID: 'actionIntro12 } + ) + + + (list + { descID: 'textBriefing1 acceptLabelID: 'actionAccept declineLabelID: 'actionDecline } + ) + + + (list + { descID: 'textAcceptReply1 } + ) + + + (list + { descID: 'textDeclineReply1 + actions: (list + { + labelID: 'actionDecline1 + nextPage: 'confirmed + } + { + labelID: 'actionDecline2 + nextPage: 'declined + } + ) + } + { id: 'confirmed + descID: 'textDeclineConfirmed + nextPage: 'forceUndock + code: (lambda () + (plyDestroyed gPlayer (typTranslate &msPsychEval01; 'msgTreated)) + ) + } + { id: 'declined + descID: 'textDeclineReply2 + } + ) + + + + + + Psych Evaluation + + + + You go to a hospital for a psych evaluation. + + + + + You wander the halls of the hospital and find yourself at the + psychiatric department. You feel light-headed and out-of-breath. + You feel a strong urge to run away, but somehow you find the + strength to go inside. + + A medtech sees you: "Can I help you?" + + + "[I]'m a pilgrim..." + + + The medtech turns pale and freezes. She shouts, "Code violet!" + + She walks slowly towards you, hands open. "Everything's going to + be OK. What's your name, pilgrim?" + + You hear people running behind you. You turn quickly but it's + too late. A hand grabs you and you feel a pinch in your neck. + + You black out before you hit the floor. + + + + + You wake up in a brightly lit exam room. A bald man in a blue + neolinen suit is sitting next to you. He looks up from his + infopad and smiles at you. + + You notice that you're strapped to a bed. + + + "[L]et me out of here!" + + + The bald man rubs his chin. + + "Is that really what you want? + + "You came to us, remember? You came to us, I imagine, because + deep down, you know you need help." + + + "[H]ow can you help me?" + + + "We've been studying pilgrims for decades. Our center + specializes in treating pilgrims, and we've had some success + lately. + + "We can cure you, if you want." + + + "[Y]ou can stop Domina's influence?" + + + The bald man shakes his head. + + "Domina isn't real. She's a story—an explanation that you + latched on to when your compulsion started. + + "Your compulsion to travel to the core is real. The changes to + your brain are real. + + "But Domina is not real. There's no one waiting for you at the + core." + + + "[B]ut Domina's powers..." + + + "The powers are real, but they don't come from Domina! + + "The Ancient Races built a network of stargates, right? A + highway system for the galaxy using some unknown and near + magical technology. We've been using stargates for centuries. + + "I think they also built a communications network. A way to + communicate with each other and to command their powers." + + + "[A] communications network?" + + + "Yes! Somehow—I don't know how—your brain is + connected to that network and can tap in to its powers. The + Ancient Races probably used it to talk to each other + telepathically. + + "But human brains aren't compatible, and you've suffered brain + damage, which is causing the compulsion, the hallucinations, + everything." + + + "[B]rain damage?" + + + "Yes! OK, now here's the hard part: + + "We can't treat you unless you consent. But your compulsion is + going to resist treatment. That's why you're strapped down: we + want to give you a chance to accept treatment voluntarily. + + "You're going to have to summon every last bit of mental energy + and agree to let us treat you." + + + "[B]ut how can you be sure?" + + + The bald man leans back and puts his hands together. + + "You're either suffering brain damage from an alien technology, + or you've been chosen by an invisible, all-powerful goddess to + save humanity. + + "Which is more likely?" + + + "[C]an you scan for brain damage?" + + + The bald man frowns. + + "It's not that easy. It's not an obvious mass or other gross + change. Your brain has been rewired. It looks completely normal. + + "But it's obviously not acting normal." + + + "[S]o you don't have proof." + + + The bald man sighs. + + "Nothing can be proven! Maybe we're all inside a digital + simulation. Or maybe I'm just another hallucination for you. + And I guess it's possible that Domina is real even though we + have no objective evidence of her. + + "But even if those are all possible, none of them are likely. + The most likely possibility, by far, is that you have + xenopsychotic disorder, which we can treat. + + "But you have to trust me." + + + "[I] just need faith, right?" + + + The bald man shakes his head. + + "I've given you as much data as I can. If you're convinced that + you're special and that you've been chosen by a higher power, by + all means walk out of here. + + "But if you want to stop running and have a normal life again, I + can help you. + + "Do you want a normal life again?" + + + "[N]o! You're wrong, and I know what I'm doing." + "[Y]es, I want to give up my quest." + + + The bald man looks down. + + "Pilgrim life expectancy is not high. Space beyond the + Commonwealth is more violent than you can imagine. Slavers might + capture you, or teratons could rip you open just for fun. Death + in battle is probably your best outcome. + + "I'm truly sorry I couldn't help you." + + + + + The bald man nods. + + "Good! I knew you could do it! Being willing to consider + treatment is a good sign; it means the brain damage is not too + advanced. You have a good chance of recovery. + + "The treatment will not be easy. We'll put you into a coma and + rewire your brain with electroconvulsive therapy. There are + risks, of course, but if successful, you'll eventually heal. + + "Do you want to start treatment?" + + + "[Y]es, I want the treatment." + "[N]o, let me think it over." + + + The bald man looks skeptical. + + "OK, but don't take too long. Your compulsion will take over + and keep you from getting the treatment you need." + + + + + You feel no different at first. But as you probe your mind for + the presence of Domina you feel a rising panic. What will you do + without her? Without your mission? How can anything ever be the + same? + + The bald man is moving in slow motion. He's yelling for + something. Two medtechs crash into the room wielding injectors + and probes. One of them begins pounding your chest. + + You feel Domina inside you. She is sad, but not surprised. You + hold on to her as long as you can, but then a wave of darkness + washes over you and you plunge into oblivion. + + + + + + + + accepted treatment for xenopsychotic disorder + + + + + + diff --git a/Transcendence/TransCore/RPGLibrary.xml b/Transcendence/TransCore/RPGLibrary.xml index 34d85932a..c8f6566a4 100644 --- a/Transcendence/TransCore/RPGLibrary.xml +++ b/Transcendence/TransCore/RPGLibrary.xml @@ -148,6 +148,7 @@ + ]> + diff --git a/Transcendence/TransCore/RPGMissionTemplate03.xml b/Transcendence/TransCore/RPGMissionTemplate03.xml new file mode 100644 index 000000000..1bb2b9507 --- /dev/null +++ b/Transcendence/TransCore/RPGMissionTemplate03.xml @@ -0,0 +1,47 @@ + + + + + + + + + + + + + + + (block Nil + (msnRegisterForEvents gSource gPlayerShip) + + ; Player knows about the system + + (sysSetKnown (msn@ gSource 'destNodeID) True) + ) + + + + (if (= (sysGetNode) (msn@ gSource 'destNodeID)) + (rpgSetTarget gSource aReason (objGetObjByID (msn@ gSource 'destID)) 'dock) + ) + + + + (switch + (and (= aObjDocked gPlayerShip) + (= (objGetID aDockTarget) (msn@ gSource 'destID)) + ) + (msnSuccess gSource) + ) + + + + + diff --git a/Transcendence/TransCore/StarsOfThePilgrim.xml b/Transcendence/TransCore/StarsOfThePilgrim.xml index 223e1477c..f43bef809 100644 --- a/Transcendence/TransCore/StarsOfThePilgrim.xml +++ b/Transcendence/TransCore/StarsOfThePilgrim.xml @@ -62,6 +62,11 @@ + + + + + @@ -243,6 +248,8 @@ + + diff --git a/Transcendence/TransCore/TransCore.vcxproj b/Transcendence/TransCore/TransCore.vcxproj index 7fbe19199..0cc9ec5cf 100644 --- a/Transcendence/TransCore/TransCore.vcxproj +++ b/Transcendence/TransCore/TransCore.vcxproj @@ -621,6 +621,8 @@ Designer + + @@ -640,6 +642,7 @@ + Designer diff --git a/Transcendence/TransCore/TransCore.vcxproj.filters b/Transcendence/TransCore/TransCore.vcxproj.filters index 5349d2699..d702f9b97 100644 --- a/Transcendence/TransCore/TransCore.vcxproj.filters +++ b/Transcendence/TransCore/TransCore.vcxproj.filters @@ -981,5 +981,14 @@ Human Space Library\Characters + + Part I + + + Part I + + + RPG Library + \ No newline at end of file