From 6411e25110f0dca1fd63f022a8c2d9972439bbe3 Mon Sep 17 00:00:00 2001 From: AnturK Date: Fri, 29 Sep 2017 09:27:26 +0200 Subject: [PATCH] Fixes liches losing spells --- code/datums/mind.dm | 6 +++++- code/game/gamemodes/wizard/wizard.dm | 9 --------- code/modules/mob/mob.dm | 2 -- 3 files changed, 5 insertions(+), 12 deletions(-) diff --git a/code/datums/mind.dm b/code/datums/mind.dm index 7f909144aa..a3bfa7d497 100644 --- a/code/datums/mind.dm +++ b/code/datums/mind.dm @@ -211,7 +211,7 @@ /datum/mind/proc/remove_wizard() if(src in SSticker.mode.wizards) SSticker.mode.wizards -= src - current.spellremove(current) + RemoveAllSpells() special_role = null remove_antag_equip() @@ -1505,6 +1505,10 @@ spell_list -= S qdel(S) +/datum/mind/proc/RemoveAllSpells() + for(var/obj/effect/proc_holder/S in spell_list) + RemoveSpell(S) + /datum/mind/proc/transfer_martial_arts(mob/living/new_character) if(!ishuman(new_character)) return diff --git a/code/game/gamemodes/wizard/wizard.dm b/code/game/gamemodes/wizard/wizard.dm index eea7afcb4b..25ff4a0ca1 100644 --- a/code/game/gamemodes/wizard/wizard.dm +++ b/code/game/gamemodes/wizard/wizard.dm @@ -245,15 +245,6 @@ //OTHER PROCS -//To batch-remove wizard spells. Linked to mind.dm. -/mob/proc/spellremove(mob/M) - if(!mind) - return - for(var/X in src.mind.spell_list) - var/obj/effect/proc_holder/spell/spell_to_remove = X - qdel(spell_to_remove) - mind.spell_list -= spell_to_remove - //returns whether the mob is a wizard (or apprentice) /proc/iswizard(mob/living/M) return istype(M) && M.mind && SSticker && SSticker.mode && ((M.mind in SSticker.mode.wizards) || (M.mind in SSticker.mode.apprentices)) diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index f768cbe2d2..0b5c5205d6 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -9,8 +9,6 @@ var/mob/dead/observe = M observe.reset_perspective(null) qdel(hud_used) - if(mind && mind.current == src) - spellremove(src) QDEL_LIST(viruses) for(var/cc in client_colours) qdel(cc)