From d1cbeffbb1db2c1ed77f7f19eb7c326a4464d362 Mon Sep 17 00:00:00 2001 From: Incoming Date: Sun, 9 Feb 2014 13:20:00 -0500 Subject: [PATCH] Animate statues in magic stuff/Staff of Change rebalance Adds animate statues to the Staff of Change pool of mobs Adds specific synergy between flesh to stone and the staff of animation where if you animate your statue'd people they'll turn to animated statues controlled by the victim who are instructed not to dunk the wizard. Splits the "animal" sub pool in the Staff of Change into "Beast" and "Helpless Animals" to help raise the odds of the former against the latter. Changed odds will be reported in a comment to follow. --- code/modules/projectiles/projectile/magic.dm | 35 +++++++++++++++----- 1 file changed, 26 insertions(+), 9 deletions(-) diff --git a/code/modules/projectiles/projectile/magic.dm b/code/modules/projectiles/projectile/magic.dm index 96bca3607d7..bba752ea6bb 100644 --- a/code/modules/projectiles/projectile/magic.dm +++ b/code/modules/projectiles/projectile/magic.dm @@ -145,7 +145,7 @@ proc/wabbajack(mob/living/M) var/mob/living/new_mob - var/randomize = pick("monkey","robot","slime","xeno","human","animal") + var/randomize = pick("monkey","robot","slime","xeno","human","beast","helpless animal") switch(randomize) if("monkey") new_mob = new /mob/living/carbon/monkey(M.loc) @@ -176,24 +176,29 @@ proc/wabbajack(mob/living/M) if("Drone") new_mob = new /mob/living/carbon/alien/humanoid/drone(M.loc) else new_mob = new /mob/living/carbon/alien/larva(M.loc) new_mob.universal_speak = 1*/ - if("animal") - var/animal = pick("parrot","corgi","crab","pug","cat","carp","bear","mushroom","tomato","mouse","chicken","cow","lizard","chick") + if("beast") + var/beast = pick("carp","bear","mushroom","statue") + switch(beast) + if("carp") new_mob = new /mob/living/simple_animal/hostile/carp(M.loc) + if("bear") new_mob = new /mob/living/simple_animal/hostile/bear(M.loc) + if("mushroom") new_mob = new /mob/living/simple_animal/hostile/mushroom(M.loc) + if("statue") new_mob = new /mob/living/simple_animal/hostile/statue(M.loc) + new_mob.universal_speak = 1 + if("helpless animal") + var/animal = pick("parrot","corgi","crab","pug","cat","tomato","mouse","chicken","cow","lizard","chick") switch(animal) if("parrot") new_mob = new /mob/living/simple_animal/parrot(M.loc) if("corgi") new_mob = new /mob/living/simple_animal/corgi(M.loc) if("crab") new_mob = new /mob/living/simple_animal/crab(M.loc) // if("pug") new_mob = new /mob/living/simple_animal/pug(M.loc) if("cat") new_mob = new /mob/living/simple_animal/cat(M.loc) - if("carp") new_mob = new /mob/living/simple_animal/hostile/carp(M.loc) - if("bear") new_mob = new /mob/living/simple_animal/hostile/bear(M.loc) - if("mushroom") new_mob = new /mob/living/simple_animal/hostile/mushroom(M.loc) if("tomato") new_mob = new /mob/living/simple_animal/tomato(M.loc) if("mouse") new_mob = new /mob/living/simple_animal/mouse(M.loc) if("chicken") new_mob = new /mob/living/simple_animal/chicken(M.loc) if("cow") new_mob = new /mob/living/simple_animal/cow(M.loc) if("lizard") new_mob = new /mob/living/simple_animal/lizard(M.loc) else new_mob = new /mob/living/simple_animal/chick(M.loc) - new_mob.universal_speak = 1 + new_mob.universal_speak = 1 if("human") new_mob = new /mob/living/carbon/human/human(M.loc) @@ -233,8 +238,20 @@ proc/wabbajack(mob/living/M) /obj/item/projectile/magic/animate/Bump(var/atom/change) . = ..() if(istype(change, /obj/item) || istype(change, /obj/structure) && !is_type_in_list(change, protected_objects)) - var/obj/O = change - new /mob/living/simple_animal/hostile/mimic/copy(O.loc, O, firer) + if(istype(change, /obj/structure/closet/statue)) + for(var/mob/living/carbon/human/H in change.contents) + var/mob/living/simple_animal/hostile/statue/S = new /mob/living/simple_animal/hostile/statue(change.loc) + S.name = "statue of [H.name]" + S.faction = "\ref[firer]" + S.icon = change.icon + if(H.mind) + H.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." + del(H) + del(change) + else + var/obj/O = change + new /mob/living/simple_animal/hostile/mimic/copy(O.loc, O, firer) else if(istype(change, /mob/living/simple_animal/hostile/mimic/copy)) // Change our allegiance! var/mob/living/simple_animal/hostile/mimic/copy/C = change