diff --git a/code/datums/mind.dm b/code/datums/mind.dm index 5652830d752..08c538c0462 100644 --- a/code/datums/mind.dm +++ b/code/datums/mind.dm @@ -906,9 +906,11 @@ if(src in SSticker.mode.changelings) SSticker.mode.changelings -= src special_role = null - current.remove_changeling_powers() + if(changeling) + current.remove_changeling_powers() + qdel(changeling) + changeling = null SSticker.mode.update_change_icons_removed(src) - if(changeling) qdel(changeling) to_chat(current, "You grow weak and lose your powers! You are no longer a changeling and are stuck in your current form!") log_admin("[key_name(usr)] has de-changelinged [key_name(current)]") message_admins("[key_name_admin(usr)] has de-changelinged [key_name_admin(current)]") diff --git a/code/game/gamemodes/changeling/powers/swap_form.dm b/code/game/gamemodes/changeling/powers/swap_form.dm index 23e0b8e17f9..e0fc1107729 100644 --- a/code/game/gamemodes/changeling/powers/swap_form.dm +++ b/code/game/gamemodes/changeling/powers/swap_form.dm @@ -44,7 +44,7 @@ var/lingpowers = list() for(var/power in changeling.purchasedpowers) lingpowers += power - + changeling.absorbed_dna -= changeling.find_dna(user.dna) changeling.protected_dna -= changeling.find_dna(user.dna) changeling.absorbedcount -= 1 @@ -66,6 +66,7 @@ for(var/power in lingpowers) var/datum/action/changeling/S = power + target.mind.changeling.purchasedpowers += S if(istype(S) && S.needs_button) S.Grant(target)