diff --git a/code/modules/projectiles/projectile/magic.dm b/code/modules/projectiles/projectile/magic.dm index eedc6409119..3edd5f1489f 100644 --- a/code/modules/projectiles/projectile/magic.dm +++ b/code/modules/projectiles/projectile/magic.dm @@ -291,15 +291,19 @@ nodamage = 1 /obj/item/projectile/magic/animate/on_hit(atom/target, blocked = 0) + target.animate_atom_living(firer) ..() - if((istype(target, /obj/item) || istype(target, /obj/structure)) && !is_type_in_list(target, protected_objects)) - if(istype(target, /obj/structure/statue/petrified)) - var/obj/structure/statue/petrified/P = target + +/atom/proc/animate_atom_living(var/mob/living/owner = null) + if((istype(src, /obj/item) || istype(src, /obj/structure)) && !is_type_in_list(src, protected_objects)) + if(istype(src, /obj/structure/statue/petrified)) + var/obj/structure/statue/petrified/P = src if(P.petrified_mob) var/mob/living/L = P.petrified_mob - var/mob/living/simple_animal/hostile/statue/S = new (P.loc, firer) + var/mob/living/simple_animal/hostile/statue/S = new(P.loc, owner) S.name = "statue of [L.name]" - S.faction = list("\ref[firer]") + if(owner) + S.faction = list("\ref[owner]") S.icon = P.icon S.icon_state = P.icon_state S.overlays = P.overlays @@ -307,21 +311,22 @@ S.atom_colours = P.atom_colours.Copy() if(L.mind) L.mind.transfer_to(S) - S << "You are an animate statue. You cannot move when monitored, but are nearly invincible and deadly when unobserved! Do not harm [firer.name], your creator." + if(owner) + S << "You are an animate statue. You cannot move when monitored, but are nearly invincible and deadly when unobserved! Do not harm [owner], your creator." P.loc = S - qdel(src) return else - var/obj/O = target + var/obj/O = src if(istype(O, /obj/item/weapon/gun)) - new /mob/living/simple_animal/hostile/mimic/copy/ranged(O.loc, O, firer) + new /mob/living/simple_animal/hostile/mimic/copy/ranged(loc, src, owner) else - new /mob/living/simple_animal/hostile/mimic/copy(O.loc, O, firer) + new /mob/living/simple_animal/hostile/mimic/copy(loc, src, owner) - else if(istype(target, /mob/living/simple_animal/hostile/mimic/copy)) + else if(istype(src, /mob/living/simple_animal/hostile/mimic/copy)) // Change our allegiance! - var/mob/living/simple_animal/hostile/mimic/copy/C = target - C.ChangeOwner(firer) + var/mob/living/simple_animal/hostile/mimic/copy/C = src + if(owner) + C.ChangeOwner(owner) /obj/item/projectile/magic/spellblade name = "blade energy"