Conflicts:
	code/modules/organs/organ_external.dm
This commit is contained in:
Rob Nelson
2014-03-03 19:05:55 -05:00
committed by ZomgPonies
parent abf033a38c
commit f6c6eafc9d
2 changed files with 98 additions and 69 deletions
+73 -64
View File
@@ -473,7 +473,7 @@ This function completely restores a damaged organ to perfect condition.
O.setAmputatedTree()
//Handles dismemberment
/datum/organ/external/proc/droplimb(var/override = 0,var/no_explode = 0)
/datum/organ/external/proc/droplimb(var/override = 0,var/no_explode = 0, var/spawn_limb=1)
if(destspawn) return
if(override)
status |= ORGAN_DESTROYED
@@ -493,6 +493,7 @@ This function completely restores a damaged organ to perfect condition.
O.droplimb(1)
var/obj/organ //Dropped limb object
switch(body_part)
if(LOWER_TORSO)
owner << "\red You are now sterile."
@@ -511,76 +512,85 @@ This function completely restores a damaged organ to perfect condition.
owner.u_equip(owner.r_ear)
owner.u_equip(owner.wear_mask)
if(ARM_RIGHT)
if(status & ORGAN_ROBOT)
organ = new /obj/item/robot_parts/r_arm(owner.loc)
else if(SKELETON in owner.mutations)
organ = new /obj/item/weapon/skeleton/r_arm(owner.loc)
else
organ= new /obj/item/weapon/organ/r_arm(owner.loc, owner)
if(!spawn_limb)
if(status & ORGAN_ROBOT)
organ = new /obj/item/robot_parts/r_arm(owner.loc)
else if(SKELETON in owner.mutations)
organ = new /obj/item/weapon/skeleton/r_arm(owner.loc)
else
organ= new /obj/item/weapon/organ/r_arm(owner.loc, owner)
if(ARM_LEFT)
if(status & ORGAN_ROBOT)
organ= new /obj/item/robot_parts/l_arm(owner.loc)
else if(SKELETON in owner.mutations)
organ = new /obj/item/weapon/skeleton/l_arm(owner.loc)
else
organ= new /obj/item/weapon/organ/l_arm(owner.loc, owner)
if(!spawn_limb)
if(status & ORGAN_ROBOT)
organ= new /obj/item/robot_parts/l_arm(owner.loc)
else if(SKELETON in owner.mutations)
organ = new /obj/item/weapon/skeleton/l_arm(owner.loc)
else
organ= new /obj/item/weapon/organ/l_arm(owner.loc, owner)
if(LEG_RIGHT)
if(status & ORGAN_ROBOT)
organ = new /obj/item/robot_parts/r_leg(owner.loc)
else if(SKELETON in owner.mutations)
organ = new /obj/item/weapon/skeleton/r_leg(owner.loc)
else
organ= new /obj/item/weapon/organ/r_leg(owner.loc, owner)
if(!spawn_limb)
if(status & ORGAN_ROBOT)
organ = new /obj/item/robot_parts/r_leg(owner.loc)
else if(SKELETON in owner.mutations)
organ = new /obj/item/weapon/skeleton/r_leg(owner.loc)
else
organ= new /obj/item/weapon/organ/r_leg(owner.loc, owner)
if(LEG_LEFT)
if(status & ORGAN_ROBOT)
organ = new /obj/item/robot_parts/l_leg(owner.loc)
else if(SKELETON in owner.mutations)
organ = new /obj/item/weapon/skeleton/l_leg(owner.loc)
else
organ= new /obj/item/weapon/organ/l_leg(owner.loc, owner)
if(!spawn_limb)
if(status & ORGAN_ROBOT)
organ = new /obj/item/robot_parts/l_leg(owner.loc)
else if(SKELETON in owner.mutations)
organ = new /obj/item/weapon/skeleton/l_leg(owner.loc)
else
organ= new /obj/item/weapon/organ/l_leg(owner.loc, owner)
if(HAND_RIGHT)
if(!(status & ORGAN_ROBOT))
if(SKELETON in owner.mutations)
organ = new /obj/item/weapon/skeleton/r_hand(owner.loc)
else
organ= new /obj/item/weapon/organ/r_hand(owner.loc, owner)
owner.u_equip(owner.gloves)
if(!spawn_limb)
if(!(status & ORGAN_ROBOT))
if(SKELETON in owner.mutations)
organ = new /obj/item/weapon/skeleton/r_hand(owner.loc)
else
organ= new /obj/item/weapon/organ/r_hand(owner.loc, owner)
owner.u_equip(owner.gloves)
if(HAND_LEFT)
if(!(status & ORGAN_ROBOT))
if(SKELETON in owner.mutations)
organ = new /obj/item/weapon/skeleton/l_hand(owner.loc)
else
organ= new /obj/item/weapon/organ/l_hand(owner.loc, owner)
owner.u_equip(owner.gloves)
if(!spawn_limb)
if(!(status & ORGAN_ROBOT))
if(SKELETON in owner.mutations)
organ = new /obj/item/weapon/skeleton/l_hand(owner.loc)
else
organ= new /obj/item/weapon/organ/l_hand(owner.loc, owner)
owner.u_equip(owner.gloves)
if(FOOT_RIGHT)
if(!(status & ORGAN_ROBOT))
if(SKELETON in owner.mutations)
organ = new /obj/item/weapon/skeleton/r_foot(owner.loc)
else
organ= new /obj/item/weapon/organ/r_foot/(owner.loc, owner)
owner.u_equip(owner.shoes)
if(!spawn_limb)
if(!(status & ORGAN_ROBOT))
if(SKELETON in owner.mutations)
organ = new /obj/item/weapon/skeleton/r_foot(owner.loc)
else
organ= new /obj/item/weapon/organ/r_foot/(owner.loc, owner)
owner.u_equip(owner.shoes)
if(FOOT_LEFT)
if(!(status & ORGAN_ROBOT))
if(SKELETON in owner.mutations)
organ = new /obj/item/weapon/skeleton/l_foot(owner.loc)
else
organ = new /obj/item/weapon/organ/l_foot(owner.loc, owner)
if(!spawn_limb)
if(!(status & ORGAN_ROBOT))
if(SKELETON in owner.mutations)
organ = new /obj/item/weapon/skeleton/l_foot(owner.loc)
else
organ = new /obj/item/weapon/organ/l_foot(owner.loc, owner)
owner.u_equip(owner.shoes)
if(organ)
destspawn = 1
//Robotic limbs explode if sabotaged.
if(status & ORGAN_ROBOT && !no_explode && sabotaged)
owner.visible_message("\red \The [owner]'s [display_name] explodes violently!",\
"\red <b>Your [display_name] explodes!</b>",\
"You hear an explosion followed by a scream!")
explosion(get_turf(owner),-1,-1,2,3)
var/datum/effect/effect/system/spark_spread/spark_system = new /datum/effect/effect/system/spark_spread()
spark_system.set_up(5, 0, owner)
spark_system.attach(owner)
spark_system.start()
spawn(10)
del(spark_system)
destspawn = 1
//Robotic limbs explode if sabotaged.
if(status & ORGAN_ROBOT && !no_explode && sabotaged)
owner.visible_message("\red \The [owner]'s [display_name] explodes violently!",\
"\red <b>Your [display_name] explodes!</b>",\
"You hear an explosion followed by a scream!")
explosion(get_turf(owner),-1,-1,2,3)
var/datum/effect/effect/system/spark_spread/spark_system = new /datum/effect/effect/system/spark_spread()
spark_system.set_up(5, 0, owner)
spark_system.attach(owner)
spark_system.start()
spawn(10)
del(spark_system)
if(organ)
owner.visible_message("\red [owner.name]'s [display_name] flies off in an arc.",\
"<span class='moderate'><b>Your [display_name] goes flying off!</b></span>",\
"You hear a terrible sound of ripping tendons and flesh.")
@@ -588,8 +598,7 @@ This function completely restores a damaged organ to perfect condition.
//Throw organs around
var/lol = pick(cardinal)
step(organ,lol)
owner.update_body(1)
owner.regenerate_icons()
/****************************************************