mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-08-28 07:20:09 +01:00
Post-Arc Bugfixes, Non-Sea Balance, etc. (#22836)
Fixes bugs associated with Lemurian Sea. Former test merge PR
This commit is contained in:
@@ -348,14 +348,57 @@ SUBSYSTEM_DEF(hallucinations)
|
||||
message = pick("The water is dripping dripping dripping all around you.","Water flowing over stone, but there is no stone.","The waterfall roars o'er the cliff's edge.","Water, water, water. You are drowning.","Water, water, water. You will be awake for it.","Drums, drums, drums, unrelenting.","The drumbeat draws e'er closer.","Tap, ta-tap, ta-tap, tap, ta-tap, ta-tap.","Tap, tap tap, ta-tap, tap-tap, ta-tap.","Ta-ta-tap, tap, ta-tap, tap, tap ta-tap.")
|
||||
target.play_screen_text("[message]", message_type, COLOR_PURPLE)
|
||||
to_chat(target, SPAN_CULT(FONT_LARGE("[message]")))
|
||||
|
||||
var/datum/weakref/target_ref = WEAKREF(target)
|
||||
if(prob(25))
|
||||
addtimer(CALLBACK(src, PROC_REF(apply_delayed_adpi_response), target_ref), rand(5,25))
|
||||
if(prob(25))
|
||||
addtimer(CALLBACK(src, PROC_REF(apply_delayed_adpi_response), target_ref), rand(30,60))
|
||||
if(prob(25))
|
||||
addtimer(CALLBACK(src, PROC_REF(apply_delayed_adpi_response), target_ref), rand(65,120))
|
||||
if(prob(2))
|
||||
addtimer(CALLBACK(src, PROC_REF(radio_alarm), target_ref), 120)
|
||||
addtimer(CALLBACK(src, PROC_REF(radio_alarm), target_ref), 135)
|
||||
addtimer(CALLBACK(src, PROC_REF(radio_alarm), target_ref), 140)
|
||||
if(prob(1))
|
||||
target.hallucination += rand(1,120)
|
||||
if(isskrell(target))
|
||||
var/mob/living/carbon/human/H = target
|
||||
apply_skrell_adpi_pain(H)
|
||||
|
||||
//straight up cloned delam_call, fuck it
|
||||
/datum/controller/subsystem/hallucinations/proc/radio_alarm(var/datum/weakref/target_ref)
|
||||
var/mob/living/target = target_ref?.resolve()
|
||||
if(!istype(target) || QDELETED(target))
|
||||
return
|
||||
|
||||
var/list/people = list()
|
||||
for(var/mob/living/carbon/human/M in GLOB.living_mob_list)
|
||||
if(!M.isMonkey() && !player_is_antag(M, only_offstation_roles = TRUE) && is_station_level(M.z))
|
||||
people += M
|
||||
|
||||
people -= target
|
||||
if(!length(people))
|
||||
return
|
||||
|
||||
var/radio_exclaim = pick("Oh SHIT!", "Oh fuck.", "Uhhh!", "That's not good!", "FUCK.", "Engineering?", "It's under control!", "We're fucked!", "Ohhhh boy.", "What?!", "Um, <b>what?!</b>", "Shots, shots!", "HELP!", "MEDICAL!")
|
||||
var/mob/living/carbon/human/requester = pick(people)
|
||||
|
||||
to_chat(target, "[requester.get_accent_icon(null, target)] <span class='radio'><b>[requester]</b> says, \"[radio_exclaim]\"</span>")
|
||||
|
||||
/datum/controller/subsystem/hallucinations/proc/apply_skrell_adpi_pain(var/mob/living/carbon/human/H)
|
||||
H.adjustHalLoss(rand(5, 12))
|
||||
if(prob(35))
|
||||
to_chat(H, SPAN_WARNING("A sharp ache lances through your head as the thought passes."))
|
||||
if(prob(15))
|
||||
H.emote("shiver")
|
||||
|
||||
/datum/controller/subsystem/hallucinations/proc/apply_delayed_adpi_response(var/mob/living/carbon/human/H)
|
||||
if(!H.stat)
|
||||
var/chosen_emote = pick(SShallucinations.hal_emote)
|
||||
// You are aware of it in this instance
|
||||
if(prob(10))
|
||||
H.visible_message("<B>[H]</B> [chosen_emote]")
|
||||
// Only shows to others, not you; you're not aware of what you're doing. Could prompt others to ask if you're okay, and lead to confusion.
|
||||
else
|
||||
for(var/mob/M in oviewers(world.view, H))
|
||||
to_chat(M, "<B>[H]</B> [chosen_emote]")
|
||||
|
||||
@@ -71,15 +71,11 @@ SUBSYSTEM_DEF(machinery)
|
||||
// Cooking stuff. Not substantial enough to get its own SS, so it's shoved in here.
|
||||
var/list/recipe_datums = list()
|
||||
|
||||
// LEMURIAN SEA ARC SNOWFLAKE: Break one random ship light every few minutes. REMOVE AFTER ARC
|
||||
var/next_arc_light_break = 0
|
||||
|
||||
/datum/controller/subsystem/machinery/Recover()
|
||||
all_cameras = SSmachinery.all_cameras
|
||||
all_holopads = SSmachinery.all_holopads
|
||||
all_apcs = SSmachinery.all_apcs
|
||||
all_lights = SSmachinery.all_lights
|
||||
next_arc_light_break = SSmachinery.next_arc_light_break
|
||||
recipe_datums = SSmachinery.recipe_datums
|
||||
breaker_boxes = SSmachinery.breaker_boxes
|
||||
all_sensors = SSmachinery.all_sensors
|
||||
@@ -91,7 +87,6 @@ SUBSYSTEM_DEF(machinery)
|
||||
makepowernets()
|
||||
build_rcon_lists()
|
||||
setup_atmos_machinery(machinery)
|
||||
next_arc_light_break = world.time + 3 MINUTES // LEMURIAN SEA, REMOVE AFTER ARC
|
||||
fire(FALSE, TRUE) // Tick machinery once to pare down the list so we don't hammer the server on round-start.
|
||||
|
||||
return SS_INIT_SUCCESS
|
||||
@@ -122,10 +117,6 @@ SUBSYSTEM_DEF(machinery)
|
||||
return
|
||||
current_step = SSMACHINERY_PIPENETS
|
||||
resumed = FALSE
|
||||
// LEMURIAN SEA, REMOVE AFTER ARC
|
||||
if(!resumed && world.time >= next_arc_light_break)
|
||||
break_random_arc_light()
|
||||
next_arc_light_break = world.time + 3 MINUTES
|
||||
|
||||
/datum/controller/subsystem/machinery/proc/makepowernets()
|
||||
for(var/datum/powernet/powernet as anything in powernets)
|
||||
@@ -236,27 +227,6 @@ SUBSYSTEM_DEF(machinery)
|
||||
queue.Cut(i)
|
||||
return
|
||||
|
||||
/// LEMURIAN SEA, REMOVE AFTER ARC
|
||||
/datum/controller/subsystem/machinery/proc/break_random_arc_light()
|
||||
var/list/valid_lights = list()
|
||||
for(var/obj/structure/machinery/light/light as anything in all_lights)
|
||||
if(QDELETED(light))
|
||||
continue
|
||||
if(!is_station_level(light.z))
|
||||
continue
|
||||
if(light.status != LIGHT_OK)
|
||||
continue
|
||||
valid_lights += light
|
||||
|
||||
if(!length(valid_lights))
|
||||
return
|
||||
|
||||
var/number_lights_broken = rand(1,4)
|
||||
var/obj/structure/machinery/light/chosen_light
|
||||
for(var/n = 0 to number_lights_broken)
|
||||
chosen_light = pick(valid_lights)
|
||||
chosen_light.broken()
|
||||
|
||||
/datum/controller/subsystem/machinery/stat_entry(msg)
|
||||
msg = {"\n\
|
||||
Queues: \
|
||||
|
||||
Reference in New Issue
Block a user