diff --git a/code/game/gamemodes/changeling/changeling.dm b/code/game/gamemodes/changeling/changeling.dm index 251c2223fb3..d40402f0ae2 100644 --- a/code/game/gamemodes/changeling/changeling.dm +++ b/code/game/gamemodes/changeling/changeling.dm @@ -148,6 +148,21 @@ var/list/possible_changeling_IDs = list("Alpha","Beta","Gamma","Delta","Epsilon" obj_count++ return + + +/datum/game_mode/proc/remove_changeling(datum/mind/changeling_mind) + if(changeling_mind in changelings) + changelings -= changeling_mind + changeling_mind.current.remove_changeling_powers() + changeling_mind.memory = "" + changeling_mind.special_role = null + if(issilicon(changeling_mind)) + changeling_mind.current << "You have been robotized!" + changeling_mind.current << "You must obey your silicon laws and master AI above all else. Your objectives will consider you to be dead." + else + changeling_mind.current << "You lose your powers! You are no longer a changeling and are stuck in your current form!" + update_change_icons_removed(changeling_mind) + /datum/game_mode/proc/update_change_icons_added(datum/mind/changeling) var/datum/atom_hud/antag/linghud = huds[ANTAG_HUD_SOLO] linghud.join_solo_hud(changeling.current) diff --git a/code/game/gamemodes/traitor/traitor.dm b/code/game/gamemodes/traitor/traitor.dm index a94cda0f3cf..de3fe6ca7db 100644 --- a/code/game/gamemodes/traitor/traitor.dm +++ b/code/game/gamemodes/traitor/traitor.dm @@ -336,6 +336,15 @@ traitor_mob << "We have received credible reports that [M.real_name] might be willing to help our cause. If you need assistance, consider contacting them." traitor_mob.mind.store_memory("Potential Collaborator: [M.real_name]") +/datum/game_mode/proc/remove_vampire(datum/mind/vampire_mind) + if(vampire_mind in vampires) + vampires -= vampire_mind + vampire_mind.current.remove_vampire_powers() + vampire_mind.current << "You lose your powers! You are no longer a vampire and are stuck in your current form!" + vampire_mind.memory = "" + vampire_mind.special_role = null + update_vampire_icons_removed(vampire_mind) + /datum/game_mode/proc/update_traitor_icons_added(datum/mind/traitor_mind) //var/ref = "\ref[traitor_mind]" var/datum/atom_hud/antag/tatorhud = huds[ANTAG_HUD_SOLO] diff --git a/code/game/gamemodes/vampire/vampire.dm b/code/game/gamemodes/vampire/vampire.dm index 5e90a19ff24..14266ef9f15 100644 --- a/code/game/gamemodes/vampire/vampire.dm +++ b/code/game/gamemodes/vampire/vampire.dm @@ -377,6 +377,7 @@ You are weak to holy things and starlight. Don't go into space and avoid the Cha if(VAMP_FULL) src << "\blue You have reached your full potential and are no longer weak to the effects of anything holy and your vision has been improved greatly." //no verb + //prepare for copypaste /datum/game_mode/proc/update_vampire_icons_added(datum/mind/vampire_mind) var/datum/atom_hud/antag/vamp_hud = huds[ANTAG_HUD_SOLO] diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm index 9fa316a5bb1..37f92547f98 100644 --- a/code/modules/mob/dead/observer/observer.dm +++ b/code/modules/mob/dead/observer/observer.dm @@ -296,6 +296,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp for(var/datum/atom_hud/H in huds) if(istype(H, /datum/atom_hud/antag) || istype(H, /datum/atom_hud/data/human/security/advanced)) (adding_hud) ? H.add_hud_to(usr) : H.remove_hud_from(usr) + usr << "AntagHud Toggled [adding_hud ? "ON" : "OFF"]" /mob/dead/observer/proc/dead_tele(A in ghostteleportlocs) diff --git a/code/modules/mob/living/silicon/robot/login.dm b/code/modules/mob/living/silicon/robot/login.dm index 6d030c026b8..84fcd64f849 100644 --- a/code/modules/mob/living/silicon/robot/login.dm +++ b/code/modules/mob/living/silicon/robot/login.dm @@ -8,4 +8,5 @@ if(mind) ticker.mode.remove_revolutionary(mind) if(mind) ticker.mode.remove_thrall(mind,0) if(mind) ticker.mode.remove_shadowling(mind) + if(mind) ticker.mode.remove_changeling(mind) return