diff --git a/code/modules/projectiles/guns/energy/special.dm b/code/modules/projectiles/guns/energy/special.dm index 5bbf52b0fc8..828c05db823 100644 --- a/code/modules/projectiles/guns/energy/special.dm +++ b/code/modules/projectiles/guns/energy/special.dm @@ -27,7 +27,7 @@ obj/item/weapon/gun/energy/staff icon_state = "staffofchange" item_state = "staffofchange" fire_sound = 'emitter.ogg' - flags = FPRINT | TABLEPASS | CONDUCT | ONBACK + flags = FPRINT | TABLEPASS | CONDUCT | USEDELAY | ONBACK w_class = 4.0 charge_cost = 200 projectile_type = "/obj/item/projectile/change" diff --git a/code/modules/projectiles/projectile/change.dm b/code/modules/projectiles/projectile/change.dm index ac3f03eeda3..48e501026c4 100644 --- a/code/modules/projectiles/projectile/change.dm +++ b/code/modules/projectiles/projectile/change.dm @@ -19,10 +19,10 @@ /obj/item/projectile/change/proc/wabbajack (mob/M as mob in world) - if(istype(M, /mob/living)) + if(istype(M, /mob/living) && M.stat != 2) for(var/obj/item/W in M) M.drop_from_slot(W) - var/randomize = pick("monkey","robot","metroid","alien") + var/randomize = pick("monkey","robot","metroid","alien","human") switch(randomize) if("monkey") if (M.monkeyizing) @@ -33,7 +33,6 @@ M.icon = null M.invisibility = 101 var/mob/living/carbon/monkey/O = new /mob/living/carbon/monkey( M.loc ) - O.name = "monkey" if (M.client) M.client.mob = O @@ -66,7 +65,6 @@ O.invisibility = 0 O.name = "Cyborg" O.real_name = "Cyborg" - O.lastKnownIP = M.client.address ? M.client.address : null if (M.mind) M.mind.transfer_to(O) if (M.mind.assigned_role == "Cyborg") @@ -148,5 +146,39 @@ new_xeno << "You are now an alien." del(M) return new_xeno + if("human") + if (M.monkeyizing) + return + M.update_clothing() + M.monkeyizing = 1 + M.canmove = 0 + M.icon = null + M.invisibility = 101 + var/mob/living/carbon/human/O = new /mob/living/carbon/human( M.loc ) + + var/first = pick(first_names_male) + var/last = pick(last_names) + O.name = "[first] [last]" + O.real_name = "[first] [last]" + var/race = pick("lizard","golem","metroid","plant","normal") + switch(race) + if("lizard") + O.mutantrace = "lizard" + if("golem") + O.mutantrace = "golem" + if("metroid") + O.mutantrace = "metroid" + if("plant") + O.mutantrace = "plant" + if("normal") + O.mutantrace = "" + if (M.client) + M.client.mob = O + if(M.mind) + M.mind.transfer_to(O) + O.a_intent = "hurt" + O << "You are now a human." + del(M) + return O return