diff --git a/code/modules/antagonists/wizard/equipment/spellbook.dm b/code/modules/antagonists/wizard/equipment/spellbook.dm
index 7940d5a24ff..0c190100364 100644
--- a/code/modules/antagonists/wizard/equipment/spellbook.dm
+++ b/code/modules/antagonists/wizard/equipment/spellbook.dm
@@ -532,12 +532,12 @@
if(times>0)
. += "You cast it [times] times.
"
return .
-
+
/datum/spellbook_entry/summon/curse_of_madness
name = "Curse of Madness"
desc = "Curses the station, warping the minds of everyone inside, causing lasting traumas. Warning: this spell can affect you if not cast from a safe distance."
cost = 4
-
+
/datum/spellbook_entry/summon/curse_of_madness/Buy(mob/living/carbon/human/user, obj/item/spellbook/book)
SSblackbox.record_feedback("tally", "wizard_spell_learned", 1, name)
active = TRUE
diff --git a/code/modules/spells/spell_types/curse.dm b/code/modules/spells/spell_types/curse.dm
index 31ef5c6f53d..fdb6c42fc5a 100644
--- a/code/modules/spells/spell_types/curse.dm
+++ b/code/modules/spells/spell_types/curse.dm
@@ -4,26 +4,34 @@
message_admins("[ADMIN_LOOKUPFLW(user)] sent a curse of madness with the message \"[message]\"!")
log_game("[key_name(user)] sent a curse of madness with the message \"[message]\"!")
- for(var/mob/living/carbon/human/H in GLOB.player_list)
+ for(var/M in GLOB.player_list)
var/turf/T = get_turf(H)
+ if(M.stat == DEAD || isobserver(M))
+ to_chat(H, "A dark breeze whispers, \"[message]\" into every ear...")
+ continue
+
+ if(!ishuman(M))
+ continue
+
+ var/mob/living/carbon/human/H = M
if(T && !is_station_level(T.z))
continue
- if(H.stat == DEAD)
- continue
if(H.anti_magic_check(TRUE, FALSE))
+ to_chat(H, "You have a strange feeling for a moment, but then it passes.")
continue
if(istype(H.get_item_by_slot(SLOT_HEAD), /obj/item/clothing/head/foilhat))
+ to_chat(H, "Your protective headgear successfully deflects mind controlling brainwaves!")
continue
H.playsound_local(H,'sound/hallucinations/veryfar_noise.ogg',40,1)
to_chat(H, "[message]")
to_chat(H, "Your mind shatters!")
switch(rand(1,10))
if(1 to 3)
- H.gain_trauma(BRAIN_TRAUMA_MILD, TRAUMA_RESILIENCE_LOBOTOMY)
- H.gain_trauma(BRAIN_TRAUMA_MILD, TRAUMA_RESILIENCE_LOBOTOMY)
+ H.gain_trauma_type(BRAIN_TRAUMA_MILD, TRAUMA_RESILIENCE_LOBOTOMY)
+ H.gain_trauma_type(BRAIN_TRAUMA_MILD, TRAUMA_RESILIENCE_LOBOTOMY)
if(4 to 6)
- H.gain_trauma(BRAIN_TRAUMA_SEVERE, TRAUMA_RESILIENCE_LOBOTOMY)
+ H.gain_trauma_type(BRAIN_TRAUMA_SEVERE, TRAUMA_RESILIENCE_LOBOTOMY)
if(7 to 8)
- H.gain_trauma(BRAIN_TRAUMA_MAGIC, TRAUMA_RESILIENCE_LOBOTOMY)
+ H.gain_trauma_type(BRAIN_TRAUMA_MAGIC, TRAUMA_RESILIENCE_LOBOTOMY)
if(9 to 10)
- H.gain_trauma(BRAIN_TRAUMA_SPECIAL, TRAUMA_RESILIENCE_LOBOTOMY)
\ No newline at end of file
+ H.gain_trauma_type(BRAIN_TRAUMA_SPECIAL, TRAUMA_RESILIENCE_LOBOTOMY)