From 1a20c527ed87680a13599f6dcec54ba7768492da Mon Sep 17 00:00:00 2001 From: Putnam3145 Date: Sun, 28 Aug 2022 15:40:03 -0700 Subject: [PATCH] field generators now yell if they fail --- .../power/singularity/field_generator.dm | 5 +++++ code/modules/power/singularity/singularity.dm | 18 +++++++----------- 2 files changed, 12 insertions(+), 11 deletions(-) diff --git a/code/modules/power/singularity/field_generator.dm b/code/modules/power/singularity/field_generator.dm index 9d887a8e1f..cc97504a03 100644 --- a/code/modules/power/singularity/field_generator.dm +++ b/code/modules/power/singularity/field_generator.dm @@ -34,6 +34,7 @@ field_generator power level display max_integrity = 500 //100% immune to lasers and energy projectiles since it absorbs their energy. armor = list(MELEE = 25, BULLET = 10, LASER = 100, ENERGY = 100, BOMB = 0, BIO = 0, RAD = 0, FIRE = 50, ACID = 70) + var/obj/item/radio/radio var/const/num_power_levels = 6 // Total number of power level icon has var/power_level = 0 var/active = FG_OFFLINE @@ -58,6 +59,9 @@ field_generator power level display . = ..() fields = list() connected_gens = list() + radio = new(src) + radio.listening = 0 + radio.recalculateChannels() /obj/machinery/field/generator/ComponentInitialize() . = ..() @@ -333,6 +337,7 @@ field_generator power level display if((world.time - O.last_warning) > 50) //to stop message-spam temp = 0 var/turf/T = get_turf(src) + radio.talk_into(src, "A containment field has failed in [get_area_name(src, TRUE)] while a singularity exists.", null, language = get_selected_language()) message_admins("A singulo exists and a containment field has failed at [ADMIN_VERBOSEJMP(T)].") investigate_log("has failed whilst a singulo exists at [AREACOORD(T)].", INVESTIGATE_SINGULO) O.last_warning = world.time diff --git a/code/modules/power/singularity/singularity.dm b/code/modules/power/singularity/singularity.dm index 8490daa681..29fd68d034 100644 --- a/code/modules/power/singularity/singularity.dm +++ b/code/modules/power/singularity/singularity.dm @@ -415,17 +415,13 @@ /obj/singularity/proc/mezzer() for(var/mob/living/carbon/M in oviewers(8, src)) - if(isbrain(M)) //Ignore brains - continue - - if(M.stat == CONSCIOUS) - if (ishuman(M)) - var/mob/living/carbon/human/H = M - if(istype(H.glasses, /obj/item/clothing/glasses/meson)) - var/obj/item/clothing/glasses/meson/MS = H.glasses - if(MS.vision_flags == SEE_TURFS) - to_chat(H, "You look directly into the [src.name], good thing you had your protective eyewear on!") - return + if(M.stat == CONSCIOUS && ishuman(M)) + var/mob/living/carbon/human/H = M + if(istype(H.glasses, /obj/item/clothing/glasses/meson)) + var/obj/item/clothing/glasses/meson/MS = H.glasses + if(MS.vision_flags == SEE_TURFS) + to_chat(H, "You look directly into the [src.name], good thing you had your protective eyewear on!") + return M.apply_effect(60, EFFECT_STUN) M.visible_message("[M] stares blankly at the [src.name]!", \