Merge branch 'master' of github.com:Baystation12/Baystation12

This commit is contained in:
cib
2012-01-09 07:45:56 -08:00
6 changed files with 152 additions and 73 deletions

View File

@@ -517,6 +517,12 @@ CIRCULAR SAW
if(user.zone_sel.selecting == "head" || istype(M, /mob/living/carbon/metroid))
var/mob/living/carbon/human/H = M
if(istype(H) && H.organs["head"])
var/datum/organ/external/affecting = H.organs["head"]
if(affecting.destroyed)
return ..()
if(istype(H) && ( \
(H.head && H.head.flags & HEADCOVERSEYES) || \
(H.wear_mask && H.wear_mask.flags & MASKCOVERSEYES) || \
@@ -776,6 +782,17 @@ CIRCULAR SAW
return
switch(M:brain_op_stage)
if(0)
if(!istype(H))
return ..()
var/datum/organ/external/S = H.organs["head"]
if(S.destroyed)
return
for(var/mob/O in viewers(H, null))
O.show_message(text("\red [H] gets \his [S.display_name] sawed off with [src] by [user]."), 1)
S.destroyed = 1
S.droplimb()
H.update_body()
if(1.0)
if(istype(M, /mob/living/carbon/metroid))
return

View File

@@ -685,11 +685,6 @@
else if(E.name == "l_leg" || E.name == "l_foot" \
|| E.name == "r_leg" || E.name == "r_foot" && !lying)
leg_tally-- // let it fail even if just foot&leg
if(E.open && (!resting) && (!sleeping))
emote("scream")
E.take_damage(20,0)
emote("collapse")
paralysis = 10
// can't stand
if(leg_tally == 0)

View File

@@ -195,6 +195,7 @@
if(owner.gender == FEMALE)
H.icon_state = "head_f_l"
H.overlays += owner.face_lying
H.transfer_identity(owner)
var/lol = pick(cardinal)
step(H,lol)
@@ -202,7 +203,7 @@
owner.update_body()
owner.death()
if(ARM_RIGHT)
var/obj/item/weapon/organ/r_arm/H = new(owner.loc)
var/obj/item/weapon/organ/r_arm/H = new(owner.loc, owner)
if(owner:organs["r_hand"])
var/datum/organ/external/S = owner:organs["r_hand"]
if(!S.destroyed)
@@ -215,7 +216,7 @@
step(H,lol)
destroyed = 1
if(ARM_LEFT)
var/obj/item/weapon/organ/l_arm/H = new(owner.loc)
var/obj/item/weapon/organ/l_arm/H = new(owner.loc, owner)
if(owner:organs["l_hand"])
var/datum/organ/external/S = owner:organs["l_hand"]
if(!S.destroyed)
@@ -228,7 +229,7 @@
step(H,lol)
destroyed = 1
if(LEG_RIGHT)
var/obj/item/weapon/organ/r_leg/H = new(owner.loc)
var/obj/item/weapon/organ/r_leg/H = new(owner.loc, owner)
if(owner:organs["r_foot"])
var/datum/organ/external/S = owner:organs["r_foot"]
if(!S.destroyed)
@@ -241,7 +242,7 @@
step(H,lol)
destroyed = 1
if(LEG_LEFT)
var/obj/item/weapon/organ/l_leg/H = new(owner.loc)
var/obj/item/weapon/organ/l_leg/H = new(owner.loc, owner)
if(owner:organs["l_foot"])
var/datum/organ/external/S = owner:organs["l_foot"]
if(!S.destroyed)

View File

@@ -95,9 +95,75 @@ obj/item/weapon/organ/New(loc, mob/living/carbon/human/H)
blood_DNA = H.dna.unique_enzymes
blood_type = H.b_type
var/icon/I = new /icon(icon, icon_state)
if (H.s_tone >= 0)
I.Blend(rgb(H.s_tone, H.s_tone, H.s_tone), ICON_ADD)
else
I.Blend(rgb(-H.s_tone, -H.s_tone, -H.s_tone), ICON_SUBTRACT)
icon = I
obj/item/weapon/organ/head
name = "head"
icon_state = "head_m_l"
var/mob/living/carbon/brain/brainmob
var/brain_op_stage = 0
obj/item/weapon/organ/head/proc/transfer_identity(var/mob/living/carbon/human/H)//Same deal as the regular brain proc. Used for human-->head
brainmob = new(src)
brainmob.name = H.real_name
brainmob.real_name = H.real_name
brainmob.dna = H.dna
if(H.mind)
H.mind.transfer_to(brainmob)
obj/item/weapon/organ/head/attackby(obj/item/weapon/W as obj, mob/user as mob)
if(istype(W,/obj/item/weapon/scalpel))
switch(brain_op_stage)
if(0)
for(var/mob/O in (oviewers(brainmob) - user))
O.show_message("\red [brainmob] is beginning to have \his head cut open with [src] by [user].", 1)
brainmob << "\red [user] begins to cut open your head with [src]!"
user << "\red You cut [brainmob]'s head open with [src]!"
brain_op_stage = 1
if(2)
for(var/mob/O in (oviewers(brainmob) - user))
O.show_message("\red [brainmob] is having \his connections to the brain delicately severed with [src] by [user].", 1)
brainmob << "\red [user] begins to cut open your head with [src]!"
user << "\red You cut [brainmob]'s head open with [src]!"
brain_op_stage = 3.0
else
..()
else if(istype(W,/obj/item/weapon/circular_saw))
switch(brain_op_stage)
if(1)
for(var/mob/O in (oviewers(brainmob) - user))
O.show_message("\red [brainmob] has \his skull sawed open with [src] by [user].", 1)
brainmob << "\red [user] begins to saw open your head with [src]!"
user << "\red You saw [brainmob]'s head open with [src]!"
brain_op_stage = 2
if(3)
for(var/mob/O in (oviewers(brainmob) - user))
O.show_message("\red [brainmob] has \his spine's connection to the brain severed with [src] by [user].", 1)
brainmob << "\red [user] severs your brain's connection to the spine with [src]!"
user << "\red You sever [brainmob]'s brain's connection to the spine with [src]!"
user.attack_log += "\[[time_stamp()]\]<font color='red'> Debrained [brainmob.name] ([brainmob.ckey]) with [src.name] (INTENT: [uppertext(user.a_intent)])</font>"
brainmob.attack_log += "\[[time_stamp()]\]<font color='orange'> Debrained by [user.name] ([user.ckey]) with [src.name] (INTENT: [uppertext(user.a_intent)])</font>"
var/obj/item/brain/B = new(loc)
B.transfer_identity(brainmob)
brain_op_stage = 4.0
else
..()
else
..()
obj/item/weapon/organ/l_arm
name = "left arm"
icon_state = "l_arm_l"