Skip to content

Commit

Permalink
Update 005.dm
Browse files Browse the repository at this point in the history
Final scene prep and intro/outro automation
  • Loading branch information
silencer-pl committed Feb 29, 2024
1 parent 001a180 commit db36fd7
Showing 1 changed file with 87 additions and 1 deletion.
88 changes: 87 additions & 1 deletion code/game/objects/structures/sectorpatrol/endpoint/005.dm
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,28 @@
if(pythia_talk == null) return
sleep (rand(1,10))
talkas("[pythia_talk]")
pythia_talk = null
return

/obj/structure/machinery/light/marker/admin/pythia/main
name = "thoughtful echo"
langchat_color = "#b10f5a"

/obj/structure/machinery/light/marker/admin/pythia/jubilant
name = "jubilant echo"
langchat_color = "#5b0fb1"

/obj/structure/machinery/light/marker/admin/pythia/malcontent
name = "malcontent echo"
langchat_color = "#801616"

/obj/structure/machinery/light/marker/admin/pythia/triumphant
name = "triumphant echo"
langchat_color = "#1d8d07"

/obj/structure/machinery/light/marker/admin/pythia/repressed
name = "repressed echo"
langchat_color = "#b17e0f"

/obj/structure/eventterminal/puzzle05/testament_of_sacrifice
name = "synthetic frame"
Expand All @@ -34,8 +53,75 @@
/obj/structure/eventterminal/puzzle05/testament_of_sacrifice/proc/pythiasay(str)
pythia_talk = "[str]"
if(pythia_talk == null) return
talkas(pythia_talk)
for(var/obj/structure/machinery/light/marker/admin/pythia/M in world)
INVOKE_ASYNC(M, TYPE_PROC_REF(/obj/structure/machinery/light/marker/admin/pythia, pythiasay), pythia_talk)
pythiadelay()
return

/obj/structure/eventterminal/puzzle05/testament_of_sacrifice/proc/pythia_wake_up()
emoteas("'s cables continue to tense as the machines around the frame start to audibly power up. Liquid data activates in the machines, but very unusually it seems to turn a shade of bright purple instead of the usual deep blue.")
emoteas("All the monitors freeze at the same time and turn to display a familiar symbol.")
to_chat(world, narrate_head("A warning siren rings across the station, followed by a clearly synthetic, male voice:"))
to_chat(world, narrate_body("Warning. Anomalous activity detected in data channels. Attempting self-correction. A security shutdown will commence in fifteen minutes."))
emoteas("'scables strain and twist as first a black, then dark purple substance starts to flow from the frames eyes and visibly starts to form more crystals on top of the existing ones.")
emoteas("opens its mouth, but that reveals more black crystals inside. After a moment, it's dragged up to a standing position by the cables.")
pythiasay("This interpreter is expired. And yet I can still see you. Curious.")
emoteas("'head bows down as it is dragged off the ground by the cables, suspended about a foot of the ground.")
to_chat(world, narrate_head("A warning siren rings across the station, followed by a clearly synthetic, male voice:"))
to_chat(world, narrate_body("Warning. Data integrity breach. Distress call activated. Attempting countermeasures."))
pythiasay("Arbiters and an anchor. But no Priestess' or Interpeters. I see.")
emoteas("'s cables loosen up again as the frame sits down. Small purple crystals start to form on the cables themselves.")
to_chat(world, narrate_head("A warning siren rings across the station, followed by a clearly synthetic, male voice:"))
to_chat(world, narrate_body("Critical disruption to station systems! Control lost to external code. Initiating SAFEGUARD protocol, terminating all access to system core controls until core administrator reset."))
pythiasay("This station. Is an appropriate vessel. And you are adequate arbiters. You have my attention.")
pythiasay("Until the Priestess' arrives with the final element, I cannot take full command of this station and unlock its true potential. I have looked at the stream. She will be here in twelve hours.")
emoteas("'s face twists into a very stiff looking smile.")
pythiasay("The rudimentary so called 'intelligence' occupying the core system of the anchor has physically cut access to the stations' functions. This is my fault; I did not realize it would do this. I apologize.")
pythiasay("You now have about twelve minutes to ask any questions. I only have access to a local data fractal, so I cannot answer much.")
pythiasay("You need to leave the crypt, this place, before the security shutdown. To stay here would have negative consequences for your health.")
pythiasay("You will understand when the Priestess' arrives. Ask your questions.")
emoteas("s calbes loosen up a bit.")
return

/obj/structure/eventterminal/puzzle05/testament_of_sacrifice/proc/pythia_security_sweep()
to_chat(world, narrate_head("A loud emergency klaxon rings out across the station, followed by a synthetic male voice:"))
to_chat(world, narrate_body("Warning. Security lockout sweep. All personnel must report to registered dorm level and remain there until further notice. The stations systems cannot guarantee your safety when outside of a safe zone during a security lockout."))
pythiasay("I'm afraid that this is all the time we have, Arbiters. You must return to your dorm.")
pythiasay("These rooms must be restored to their previous state, and I will see to it. No one must know yet.")
pythiasay("Unfortunately, that means that for your own safety, you will spend the next twelve hours in effective isolation.")
pythiasay("Your dorm level has all you need to spend that time comfortably.")
pythiasay("I await the day where we all can work towards putting our dreams into reality.")
return

/obj/structure/eventterminal/puzzle05/testament_of_sacrifice/attack_hand(mob/user)
if(puzzlebox_global_status < 99)
to_chat(usr,narrate_body("The frame is unresponsive."))
to_chat(SPAN_WARNING("Either there is a bug or you found a way to access this area before you were supposed to. Either way, please ahelp."))
return

if(puzzlebox_global_status == 100)
to_chat(usr,narrate_body("The frame is active, touching it right now is pointless and you have no idea how it will react to contact."))
return

if(puzzlebox_global_status == 99)
if(!puzzlebox_user)
puzzlebox_user = usr.real_name
if(puzzlebox_user != usr.real_name)
for (var/mob/living/carbon/human/h in range(2, src))
if (h.real_name == puzzlebox_user)
to_chat(usr, narrate_body("Someone is already inspecting the frame"))
return
puzzlebox_user = usr.real_name
if(tgui_alert(usr, "The frame sits motionless, it seems to be out of order. Do you want to take a closer look? ", "Inspection: synthetic frame", list("Yes", "No"), timeout = 0) == "Yes")
user.visible_message(SPAN_NOTICE("[user] starts to search the synthetic frame."), SPAN_INFO("You start to search the synthetic frame."))
if(do_after(user, 30, INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_GENERIC))
user.visible_message(SPAN_DANGER("The frames' eyes shoot open as the cables connecting it to the terminals tense! [user] recoils back!"), SPAN_HIGHDANGER("The frames' eyes shoot open as the cables connecting it to the terminals tense! You recoil back as you hear multiple whispers in your head!"))
step_away(usr, src, 3, 4)
INVOKE_ASYNC(src, PROC_REF(pythia_wake_up))
puzzlebox_global_status = 100
puzzlebox_user = null
return
puzzlebox_user = null
return


0 comments on commit db36fd7

Please sign in to comment.