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)