diff --git a/code/game/gamemodes/traitor/traitor.dm b/code/game/gamemodes/traitor/traitor.dm index 97f2d301472..76a47e82749 100644 --- a/code/game/gamemodes/traitor/traitor.dm +++ b/code/game/gamemodes/traitor/traitor.dm @@ -366,10 +366,11 @@ traitor_mind.special_role = null traitor_mind.som = null slaved.leave_serv_hud(traitor_mind) + for(var/datum/objective/protect/mindslave/MS in traitor_mind.objectives) + traitor_mind.objectives -= MS update_traitor_icons_removed(traitor_mind) -// to_chat(world, "Removed [traitor_mind.current.name] from traitor shit") - to_chat(traitor_mind.current, "\red The fog clouding your mind clears. You remember nothing from the moment you were implanted until now.(You don't remember who implanted you)") + to_chat(traitor_mind.current, "You are no longer a mindslave; you have complete and free control of your own faculties, once more!") /datum/game_mode/proc/assign_exchange_role(var/datum/mind/owner) //set faction diff --git a/code/game/gamemodes/vampire/vampire.dm b/code/game/gamemodes/vampire/vampire.dm index 79d644b2132..0d5ec7afcc4 100644 --- a/code/game/gamemodes/vampire/vampire.dm +++ b/code/game/gamemodes/vampire/vampire.dm @@ -351,8 +351,7 @@ You are weak to holy things and starlight. Don't go into space and avoid the Cha vampire_mind.som = null slaved.leave_serv_hud(vampire_mind) update_vampire_icons_removed(vampire_mind) -// to_chat(world, "Removed [vampire_mind.current.name] from vampire shit") - to_chat(vampire_mind.current, "\red The fog clouding your mind clears. You remember nothing from the moment you were enthralled until now.") + vampire_mind.current.visible_message("[vampire_mind.current] looks as though a burden has been lifted!", "The dark fog in your mind clears as you regain control of your own faculties, you are no longer a vampire thrall!") if(vampire_mind.current.hud_used) vampire_mind.current.hud_used.remove_vampire_hud() diff --git a/code/game/gamemodes/vampire/vampire_powers.dm b/code/game/gamemodes/vampire/vampire_powers.dm index bc7ba9276f5..8e04d98504b 100644 --- a/code/game/gamemodes/vampire/vampire_powers.dm +++ b/code/game/gamemodes/vampire/vampire_powers.dm @@ -267,6 +267,10 @@ W.destroy() playsound(usr.loc, 'sound/effects/creepyshriek.ogg', 100, 1) + +/proc/isvampirethrall(mob/living/M as mob) + return istype(M) && M.mind && ticker && ticker.mode && (M.mind in ticker.mode.vampire_enthralled) + /obj/effect/proc_holder/spell/vampire/targetted/enthrall name = "Enthrall (300)" desc = "You use a large portion of your power to sway those loyal to none to be loyal to you only." diff --git a/code/game/objects/items/weapons/implants/implant_traitor.dm b/code/game/objects/items/weapons/implants/implant_traitor.dm index 3209661ad57..78e63ddfae4 100644 --- a/code/game/objects/items/weapons/implants/implant_traitor.dm +++ b/code/game/objects/items/weapons/implants/implant_traitor.dm @@ -71,8 +71,8 @@ var/datum/mindslaves/slaved = user.mind.som H.mind.som = slaved slaved.serv += H - slaved.add_serv_hud(user.mind,"syndicate")//handles master servent icons - slaved.add_serv_hud(H.mind,"mindslave") + slaved.add_serv_hud(user.mind, "master") //handles master servent icons + slaved.add_serv_hud(H.mind, "mindslave") log_admin("[ckey(user.key)] has mind-slaved [ckey(H.key)].") activated = 1 @@ -81,11 +81,6 @@ /obj/item/weapon/implant/traitor/removed(mob/target) if(..()) - ticker.mode.traitors -= target.mind - target.mind.special_role = null - ticker.mode.update_traitor_icons_removed(target.mind) - for(var/datum/objective/protect/mindslave/MS in target.mind.objectives) - target.mind.objectives -= MS - to_chat(target, "\red You are no longer a mindslave; you have complete and free control of your own faculties, once more!") + ticker.mode.remove_traitor_mind(target.mind) return 1 return 0 \ No newline at end of file diff --git a/code/modules/reagents/oldchem/reagents/reagents_water.dm b/code/modules/reagents/oldchem/reagents/reagents_water.dm index df9e0b29b64..11a5759fa5b 100644 --- a/code/modules/reagents/oldchem/reagents/reagents_water.dm +++ b/code/modules/reagents/oldchem/reagents/reagents_water.dm @@ -297,6 +297,13 @@ if(data >= 75 && prob(33)) // 30 units, 150 seconds if (!M.confused) M.confused = 1 M.confused += 3 + if(isvampirethrall(M)) + ticker.mode.remove_vampire_mind(M.mind) + holder.remove_reagent(src.id, src.volume) + M.jitteriness = 0 + M.stuttering = 0 + M.confused = 0 + return if(iscultist(M)) ticker.mode.remove_cultist(M.mind) holder.remove_reagent(src.id, src.volume) // maybe this is a little too perfect and a max() cap on the statuses would be better?? diff --git a/icons/mob/hud.dmi b/icons/mob/hud.dmi index eeb5ecbbee3..c5115b3cbc5 100644 Binary files a/icons/mob/hud.dmi and b/icons/mob/hud.dmi differ