diff --git a/code/game/gamemodes/changeling/changeling_power.dm b/code/game/gamemodes/changeling/changeling_power.dm index 6d03a864692..8e8e824d85e 100644 --- a/code/game/gamemodes/changeling/changeling_power.dm +++ b/code/game/gamemodes/changeling/changeling_power.dm @@ -73,6 +73,12 @@ return 0 return 1 +/obj/effect/proc_holder/changeling/proc/transfer_changeling_powers(var/mob/living/carbon/user, var/mob/living/carbon/target) + if(istype(target, /mob/living/carbon)) // so we don't runtime, I don't even know why it's necessary as it needs a grab + var/datum/changeling/c = user.mind.changeling + var/datum/changeling/t = target.mind.changeling + c.purchasedpowers = t.purchasedpowers + //used in /mob/Stat() /obj/effect/proc_holder/changeling/proc/can_be_used_by(var/mob/user) if(!ishuman(user)) diff --git a/code/game/gamemodes/changeling/powers/swap_form.dm b/code/game/gamemodes/changeling/powers/swap_form.dm index ad8b9381dff..188c5fb437b 100644 --- a/code/game/gamemodes/changeling/powers/swap_form.dm +++ b/code/game/gamemodes/changeling/powers/swap_form.dm @@ -50,6 +50,8 @@ user.key = ghost.key user.Paralyse(2) - user.remove_language("Changeling") target.add_language("Changeling") + user.remove_language("Changeling") + transfer_changeling_powers(user, target) + to_chat(target, "Our genes cry out as we swap our [user] form for [target].")