TG Updates: Fixed a bug I caused (where the Staff of Change was unable to fire).

The Staff of Change no longer works on dead targets (to prevent resurrection when the new mob is created and the ckey transferred).

The Staff of Change can now cause a mob to change into a human (and a chance for said human to be a lizardman/metroidman/plantman/golem/normal human)

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@2756 316c924e-a436-60f5-8080-3fe189b3f50e
This commit is contained in:
kortgstation@gmail.com
2011-12-21 03:55:30 +00:00
committed by Hawk-v3
parent 4bbea4187f
commit db91705488
2 changed files with 37 additions and 5 deletions

View File

@@ -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"

View File

@@ -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 << "<B>You are now an alien.</B>"
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 << "<B>You are now a human.</B>"
del(M)
return O
return