From d3411130f242129d34d98ad720e14a975d128e38 Mon Sep 17 00:00:00 2001 From: Erika Fox <bl3ssedkarl@gmail.com> Date: Wed, 8 Nov 2023 22:13:09 -0500 Subject: [PATCH 1/4] they talk now --- .../effects/anomalies/anomalies_static.dm | 38 +++++++++++++++++-- 1 file changed, 35 insertions(+), 3 deletions(-) diff --git a/code/game/objects/effects/anomalies/anomalies_static.dm b/code/game/objects/effects/anomalies/anomalies_static.dm index 07107cd5a332..b002ed993b7b 100644 --- a/code/game/objects/effects/anomalies/anomalies_static.dm +++ b/code/game/objects/effects/anomalies/anomalies_static.dm @@ -14,7 +14,7 @@ return if(iscarbon(user) && !user.research_scanner) //this'll probably cause some weirdness when I start using research scanner in more places / on more items. Oh well. var/mob/living/carbon/bah = user - to_chat(bah, span_userdanger("Your head aches as you stare into the [src]!")) + to_chat(bah, span_userdanger("Your head aches as you stare into [src]!")) bah.adjustOrganLoss(ORGAN_SLOT_BRAIN, 5, 100) /obj/effect/anomaly/tvstatic/anomalyEffect() @@ -30,10 +30,12 @@ COOLDOWN_START(src, pulse_cooldown, pulse_delay) for(var/mob/living/carbon/looking in range(effectrange, src)) - playsound(src, 'sound/effects/walkietalkie.ogg', 100) + playsound(src, 'sound/effects/walkietalkie.ogg', 75) + if(stored_mob) + say_fucky_things() if (!HAS_TRAIT(looking, TRAIT_MINDSHIELD) && looking.stat != DEAD || !looking.research_scanner && looking.stat != DEAD) looking.adjustOrganLoss(ORGAN_SLOT_BRAIN, 10, 200) - playsound(src, 'sound/effects/stall.ogg', 100) + playsound(src, 'sound/effects/stall.ogg', 50) if(looking.getOrganLoss(ORGAN_SLOT_BRAIN) >= 150 && looking.stat != DEAD) if(prob(20)) var/mob/living/carbon/victim = looking @@ -49,6 +51,36 @@ /obj/effect/anomaly/tvstatic/Bumped(atom/movable/AM) anomalyEffect() +/obj/effect/anomaly/tvstatic/say_fucky_things() + switch(rand(1, 13)) + if(1) + say("... Help me...") + if(2) + say("... I need to get out ...") + if(3) + say("...No hope....") + if(4) + say("....Let me loose...") + if(5) + say("...stay with me...") + if(6) + say("...I hope I live...") + if(7) + say("...please don't go...") + if(8) + say("...don't forget me...") + if(9) + say("...Are you there...?") + if(10) + say("...it hurts...") + if(11) + say("...the eyes...") + if(12) + say("...need to run...") + if(13) + say("...don't become like me...") + return + /obj/effect/anomaly/tvstatic/detonate() for(var/mob/living/carbon/looking in range(effectrange, src)) visible_message("<span class='boldwarning'> The static lashes out, agony filling your mind as its tendrils scrape your thoughts!</span>") From 8873a2ca30d30bd46616f1f4d01cd2122391072e Mon Sep 17 00:00:00 2001 From: Erika Fox <bl3ssedkarl@gmail.com> Date: Wed, 8 Nov 2023 22:14:53 -0500 Subject: [PATCH 2/4] yeah we need that bit actually --- code/game/objects/effects/anomalies/anomalies_static.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/objects/effects/anomalies/anomalies_static.dm b/code/game/objects/effects/anomalies/anomalies_static.dm index b002ed993b7b..a45f4d7830c8 100644 --- a/code/game/objects/effects/anomalies/anomalies_static.dm +++ b/code/game/objects/effects/anomalies/anomalies_static.dm @@ -51,7 +51,7 @@ /obj/effect/anomaly/tvstatic/Bumped(atom/movable/AM) anomalyEffect() -/obj/effect/anomaly/tvstatic/say_fucky_things() +/obj/effect/anomaly/tvstatic/proc/say_fucky_things() switch(rand(1, 13)) if(1) say("... Help me...") From a3515444321bc4378f371b933885f81b25df4548 Mon Sep 17 00:00:00 2001 From: Bjarl <94164348+Bjarl@users.noreply.github.com> Date: Thu, 9 Nov 2023 10:03:38 -0500 Subject: [PATCH 3/4] scope creep --- code/__DEFINES/say.dm | 3 --- .../effects/anomalies/anomalies_static.dm | 21 ++++++++++++++----- 2 files changed, 16 insertions(+), 8 deletions(-) diff --git a/code/__DEFINES/say.dm b/code/__DEFINES/say.dm index b349387832ea..a470b9087b2e 100644 --- a/code/__DEFINES/say.dm +++ b/code/__DEFINES/say.dm @@ -71,10 +71,7 @@ #define SPAN_COMMAND "command_headset" #define SPAN_CLOWN "clown" #define SPAN_SINGING "singing" - -//WS Spans - Begin #define SPAN_SGA "sga" -//WS Spans - End //bitflag #defines for return value of the radio() proc. #define ITALICS (1<<0) diff --git a/code/game/objects/effects/anomalies/anomalies_static.dm b/code/game/objects/effects/anomalies/anomalies_static.dm index a45f4d7830c8..f0a2be6dbfc7 100644 --- a/code/game/objects/effects/anomalies/anomalies_static.dm +++ b/code/game/objects/effects/anomalies/anomalies_static.dm @@ -6,6 +6,12 @@ aSignal = /obj/item/assembly/signaler/anomaly/tvstatic effectrange = 4 pulse_delay = 4 SECONDS + verb_say = "pleads" + verb_ask = "begs" + verb_exclaim = "screams" + verb_whisper = "whimpers" + verb_yell = "screams" + speech_span = SPAN_ITALICS var/mob/living/carbon/stored_mob = null /obj/effect/anomaly/tvstatic/examine(mob/user) @@ -13,9 +19,9 @@ if(!iscarbon(user)) return if(iscarbon(user) && !user.research_scanner) //this'll probably cause some weirdness when I start using research scanner in more places / on more items. Oh well. - var/mob/living/carbon/bah = user - to_chat(bah, span_userdanger("Your head aches as you stare into [src]!")) - bah.adjustOrganLoss(ORGAN_SLOT_BRAIN, 5, 100) + var/mob/living/carbon/victim = user + to_chat(victim, span_userdanger("Your head aches as you stare into [src]!")) + victim.adjustOrganLoss(ORGAN_SLOT_BRAIN, 5, 100) /obj/effect/anomaly/tvstatic/anomalyEffect() ..() @@ -29,9 +35,9 @@ COOLDOWN_START(src, pulse_cooldown, pulse_delay) - for(var/mob/living/carbon/looking in range(effectrange, src)) + for(var/mob/living/carbon/human/looking in range(effectrange, src)) playsound(src, 'sound/effects/walkietalkie.ogg', 75) - if(stored_mob) + if(stored_mob && looking.stat != DEAD && prob(25)) say_fucky_things() if (!HAS_TRAIT(looking, TRAIT_MINDSHIELD) && looking.stat != DEAD || !looking.research_scanner && looking.stat != DEAD) looking.adjustOrganLoss(ORGAN_SLOT_BRAIN, 10, 200) @@ -105,6 +111,11 @@ immortal = TRUE immobile = TRUE +/obj/effect/anomaly/tvstatic/planetary/Initialize(mapload) + if(prob(25)) + stored_mob = /obj/effect/mob_spawn/human/corpse/damaged + . = ..() + /obj/effect/particle_effect/staticball name = "static blob" desc = "An unsettling mass of free floating static" From 4325a27ed75f00c8d2be5619915c0d32980cc11b Mon Sep 17 00:00:00 2001 From: Erika Fox <bl3ssedkarl@gmail.com> Date: Sat, 11 Nov 2023 22:13:50 -0500 Subject: [PATCH 4/4] mhm --- .../objects/effects/anomalies/anomalies_static.dm | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/code/game/objects/effects/anomalies/anomalies_static.dm b/code/game/objects/effects/anomalies/anomalies_static.dm index a45f4d7830c8..430086cc38cd 100644 --- a/code/game/objects/effects/anomalies/anomalies_static.dm +++ b/code/game/objects/effects/anomalies/anomalies_static.dm @@ -33,7 +33,7 @@ playsound(src, 'sound/effects/walkietalkie.ogg', 75) if(stored_mob) say_fucky_things() - if (!HAS_TRAIT(looking, TRAIT_MINDSHIELD) && looking.stat != DEAD || !looking.research_scanner && looking.stat != DEAD) + if (!HAS_TRAIT(looking, TRAIT_MINDSHIELD) && looking.stat != DEAD || !looking.research_scanner && looking.stat != DEAD || !HAS_TRAIT(looking, TRAIT_DEAF)) looking.adjustOrganLoss(ORGAN_SLOT_BRAIN, 10, 200) playsound(src, 'sound/effects/stall.ogg', 50) if(looking.getOrganLoss(ORGAN_SLOT_BRAIN) >= 150 && looking.stat != DEAD) @@ -82,14 +82,24 @@ return /obj/effect/anomaly/tvstatic/detonate() - for(var/mob/living/carbon/looking in range(effectrange, src)) + for(var/mob/living/carbon/human/looking in range(effectrange, src)) visible_message("<span class='boldwarning'> The static lashes out, agony filling your mind as its tendrils scrape your thoughts!</span>") if (!HAS_TRAIT(looking, TRAIT_MINDSHIELD) && looking.stat != DEAD) looking.adjustOrganLoss(ORGAN_SLOT_BRAIN, 100, 200) playsound(src, 'sound/effects/stall.ogg', 100) + if(stored_mob) + mangle_corpse() + visible_message("<span class='warning'>The static sputters out [stored_mob], their body coming out in a burst of blood and gore!</span>") + new /obj/effect/gibspawner/human(loc) + stored_mob.forceMove(get_turf(src)) + stored_mob = null anomalyEffect() . = ..() +/obj/effect/anomaly/tvstatic/proc/mangle_corpse() + if(!stored_mob) + return + stored_mob.adjustBruteLoss(400) /obj/effect/anomaly/tvstatic/anomalyNeutralize() var/turf/T = get_turf(src)