From 72635d4cafe04b60ade8678d261b95f9317de2d7 Mon Sep 17 00:00:00 2001 From: Jack Edge Date: Mon, 3 Dec 2018 04:22:44 +0000 Subject: [PATCH] Fixes curse of madness :cl: coiax fix: Fixes bug where Curse of Madness was not giving proper brain traumas. /:cl: Also adds some messages so magic immune and foil hatted people on the station plus observers will know when a curse of madness is cast/badminned. --- .../antagonists/wizard/equipment/spellbook.dm | 4 ++-- code/modules/spells/spell_types/curse.dm | 24 ++++++++++++------- 2 files changed, 18 insertions(+), 10 deletions(-) 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)