mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-11 10:43:20 +00:00
Partially fixed the double definition of BROKEN, renamed organ definitions
This commit is contained in:
@@ -192,29 +192,29 @@
|
|||||||
// Gloves
|
// Gloves
|
||||||
var/datum/organ/external/lo = organs["l_hand"]
|
var/datum/organ/external/lo = organs["l_hand"]
|
||||||
var/datum/organ/external/ro = organs["r_hand"]
|
var/datum/organ/external/ro = organs["r_hand"]
|
||||||
if (!(lo.status & DESTROYED && ro.status & DESTROYED))
|
if (!(lo.status & ORGAN_DESTROYED && ro.status & ORGAN_DESTROYED))
|
||||||
if (gloves)
|
if (gloves)
|
||||||
var/t1 = gloves.item_state
|
var/t1 = gloves.item_state
|
||||||
if (!t1)
|
if (!t1)
|
||||||
t1 = gloves.icon_state
|
t1 = gloves.icon_state
|
||||||
var/icon/gloves_icon = new /icon("icon" = 'hands.dmi', "icon_state" = text("[][]", t1, (!( lying ) ? null : "2")))
|
var/icon/gloves_icon = new /icon("icon" = 'hands.dmi', "icon_state" = text("[][]", t1, (!( lying ) ? null : "2")))
|
||||||
if(lo.status & DESTROYED)
|
if(lo.status & ORGAN_DESTROYED)
|
||||||
gloves_icon.Blend(new /icon('limb_mask.dmi', "right_[lying?"l":"s"]"), ICON_MULTIPLY)
|
gloves_icon.Blend(new /icon('limb_mask.dmi', "right_[lying?"l":"s"]"), ICON_MULTIPLY)
|
||||||
else if(ro.status & DESTROYED)
|
else if(ro.status & ORGAN_DESTROYED)
|
||||||
gloves_icon.Blend(new /icon('limb_mask.dmi', "left_[lying?"l":"s"]"), ICON_MULTIPLY)
|
gloves_icon.Blend(new /icon('limb_mask.dmi', "left_[lying?"l":"s"]"), ICON_MULTIPLY)
|
||||||
overlays += image(gloves_icon, "layer" = MOB_LAYER)
|
overlays += image(gloves_icon, "layer" = MOB_LAYER)
|
||||||
if (gloves.blood_DNA)
|
if (gloves.blood_DNA)
|
||||||
var/icon/stain_icon = icon('blood.dmi', "bloodyhands[!lying ? "" : "2"]")
|
var/icon/stain_icon = icon('blood.dmi', "bloodyhands[!lying ? "" : "2"]")
|
||||||
if(lo.status & DESTROYED)
|
if(lo.status & ORGAN_DESTROYED)
|
||||||
stain_icon.Blend(new /icon('limb_mask.dmi', "right_[lying?"l":"s"]"), ICON_MULTIPLY)
|
stain_icon.Blend(new /icon('limb_mask.dmi', "right_[lying?"l":"s"]"), ICON_MULTIPLY)
|
||||||
else if(ro.status & DESTROYED)
|
else if(ro.status & ORGAN_DESTROYED)
|
||||||
stain_icon.Blend(new /icon('limb_mask.dmi', "left_[lying?"l":"s"]"), ICON_MULTIPLY)
|
stain_icon.Blend(new /icon('limb_mask.dmi', "left_[lying?"l":"s"]"), ICON_MULTIPLY)
|
||||||
overlays += image("icon" = stain_icon, "layer" = MOB_LAYER)
|
overlays += image("icon" = stain_icon, "layer" = MOB_LAYER)
|
||||||
else if (blood_DNA)
|
else if (blood_DNA)
|
||||||
var/icon/stain_icon = icon('blood.dmi', "bloodyhands[!lying ? "" : "2"]")
|
var/icon/stain_icon = icon('blood.dmi', "bloodyhands[!lying ? "" : "2"]")
|
||||||
if(lo.status & DESTROYED)
|
if(lo.status & ORGAN_DESTROYED)
|
||||||
stain_icon.Blend(new /icon('limb_mask.dmi', "right_[lying?"l":"s"]"), ICON_MULTIPLY)
|
stain_icon.Blend(new /icon('limb_mask.dmi', "right_[lying?"l":"s"]"), ICON_MULTIPLY)
|
||||||
else if(ro.status & DESTROYED)
|
else if(ro.status & ORGAN_DESTROYED)
|
||||||
stain_icon.Blend(new /icon('limb_mask.dmi', "left_[lying?"l":"s"]"), ICON_MULTIPLY)
|
stain_icon.Blend(new /icon('limb_mask.dmi', "left_[lying?"l":"s"]"), ICON_MULTIPLY)
|
||||||
overlays += image("icon" = stain_icon, "layer" = MOB_LAYER)
|
overlays += image("icon" = stain_icon, "layer" = MOB_LAYER)
|
||||||
// Glasses
|
// Glasses
|
||||||
@@ -231,19 +231,19 @@
|
|||||||
// Shoes
|
// Shoes
|
||||||
lo = organs["l_foot"]
|
lo = organs["l_foot"]
|
||||||
ro = organs["r_foot"]
|
ro = organs["r_foot"]
|
||||||
if (!(lo.status & DESTROYED && ro.status & DESTROYED) && shoes)
|
if (!(lo.status & ORGAN_DESTROYED && ro.status & ORGAN_DESTROYED) && shoes)
|
||||||
var/t1 = shoes.icon_state
|
var/t1 = shoes.icon_state
|
||||||
var/icon/shoes_icon = new /icon("icon" = 'feet.dmi', "icon_state" = text("[][]", t1, (!( lying ) ? null : "2")))
|
var/icon/shoes_icon = new /icon("icon" = 'feet.dmi', "icon_state" = text("[][]", t1, (!( lying ) ? null : "2")))
|
||||||
if(lo.status & DESTROYED && !lying)
|
if(lo.status & ORGAN_DESTROYED && !lying)
|
||||||
shoes_icon.Blend(new /icon('limb_mask.dmi', "right[lying?"_l":""]"), ICON_MULTIPLY)
|
shoes_icon.Blend(new /icon('limb_mask.dmi', "right[lying?"_l":""]"), ICON_MULTIPLY)
|
||||||
else if(ro.status & DESTROYED && !lying)
|
else if(ro.status & ORGAN_DESTROYED && !lying)
|
||||||
shoes_icon.Blend(new /icon('limb_mask.dmi', "left[lying?"_l":""]"), ICON_MULTIPLY)
|
shoes_icon.Blend(new /icon('limb_mask.dmi', "left[lying?"_l":""]"), ICON_MULTIPLY)
|
||||||
overlays += image(shoes_icon, "layer" = MOB_LAYER)
|
overlays += image(shoes_icon, "layer" = MOB_LAYER)
|
||||||
if (shoes.blood_DNA)
|
if (shoes.blood_DNA)
|
||||||
var/icon/stain_icon = icon('blood.dmi', "shoesblood[!lying ? "" : "2"]")
|
var/icon/stain_icon = icon('blood.dmi', "shoesblood[!lying ? "" : "2"]")
|
||||||
if(lo.status & DESTROYED)
|
if(lo.status & ORGAN_DESTROYED)
|
||||||
stain_icon.Blend(new /icon('limb_mask.dmi', "right_[lying?"l":"s"]"), ICON_MULTIPLY)
|
stain_icon.Blend(new /icon('limb_mask.dmi', "right_[lying?"l":"s"]"), ICON_MULTIPLY)
|
||||||
else if(ro.status & DESTROYED)
|
else if(ro.status & ORGAN_DESTROYED)
|
||||||
stain_icon.Blend(new /icon('limb_mask.dmi', "left_[lying?"l":"s"]"), ICON_MULTIPLY)
|
stain_icon.Blend(new /icon('limb_mask.dmi', "left_[lying?"l":"s"]"), ICON_MULTIPLY)
|
||||||
overlays += image("icon" = stain_icon, "layer" = MOB_LAYER) // Radio
|
overlays += image("icon" = stain_icon, "layer" = MOB_LAYER) // Radio
|
||||||
/* if (w_radio)
|
/* if (w_radio)
|
||||||
@@ -355,7 +355,7 @@
|
|||||||
head.screen_loc = ui_head
|
head.screen_loc = ui_head
|
||||||
else
|
else
|
||||||
var/datum/organ/external/head = organs["head"]
|
var/datum/organ/external/head = organs["head"]
|
||||||
if(!(head.status & DESTROYED))
|
if(!(head.status & ORGAN_DESTROYED))
|
||||||
//if not wearing anything on the head, show the ears
|
//if not wearing anything on the head, show the ears
|
||||||
overlays += image("icon" = icon('tajaran.dmi', "ears_[gender==FEMALE ? "f" : "m"]_[lying ? "l" : "s"]"), "layer" = MOB_LAYER)
|
overlays += image("icon" = icon('tajaran.dmi', "ears_[gender==FEMALE ? "f" : "m"]_[lying ? "l" : "s"]"), "layer" = MOB_LAYER)
|
||||||
|
|
||||||
@@ -482,7 +482,7 @@
|
|||||||
lying_icon.Blend(new /icon('tajaran.dmi', "chest_[g]_l"), ICON_OVERLAY)
|
lying_icon.Blend(new /icon('tajaran.dmi', "chest_[g]_l"), ICON_OVERLAY)
|
||||||
|
|
||||||
var/datum/organ/external/head = organs["head"]
|
var/datum/organ/external/head = organs["head"]
|
||||||
if(!(head.status & DESTROYED))
|
if(!(head.status & ORGAN_DESTROYED))
|
||||||
stand_icon.Blend(new /icon('tajaran.dmi', "head_[g]_s"), ICON_OVERLAY)
|
stand_icon.Blend(new /icon('tajaran.dmi', "head_[g]_s"), ICON_OVERLAY)
|
||||||
lying_icon.Blend(new /icon('tajaran.dmi', "head_[g]_l"), ICON_OVERLAY)
|
lying_icon.Blend(new /icon('tajaran.dmi', "head_[g]_l"), ICON_OVERLAY)
|
||||||
|
|
||||||
@@ -491,12 +491,12 @@
|
|||||||
if(!istype(part, /datum/organ/external/groin) \
|
if(!istype(part, /datum/organ/external/groin) \
|
||||||
&& !istype(part, /datum/organ/external/chest) \
|
&& !istype(part, /datum/organ/external/chest) \
|
||||||
&& !istype(part, /datum/organ/external/head) \
|
&& !istype(part, /datum/organ/external/head) \
|
||||||
&& !(part.status & DESTROYED))
|
&& !(part.status & ORGAN_DESTROYED))
|
||||||
var/icon/temp = new /icon('tajaran.dmi', "[part.icon_name]_s")
|
var/icon/temp = new /icon('tajaran.dmi', "[part.icon_name]_s")
|
||||||
if(part.status & ROBOT) temp.MapColors(rgb(77,77,77), rgb(150,150,150), rgb(28,28,28), rgb(0,0,0))
|
if(part.status & ORGAN_ROBOT) temp.MapColors(rgb(77,77,77), rgb(150,150,150), rgb(28,28,28), rgb(0,0,0))
|
||||||
stand_icon.Blend(temp, ICON_OVERLAY)
|
stand_icon.Blend(temp, ICON_OVERLAY)
|
||||||
temp = new /icon('tajaran.dmi', "[part.icon_name]_l")
|
temp = new /icon('tajaran.dmi', "[part.icon_name]_l")
|
||||||
if(part.status & ROBOT) temp.MapColors(rgb(77,77,77), rgb(150,150,150), rgb(28,28,28), rgb(0,0,0))
|
if(part.status & ORGAN_ROBOT) temp.MapColors(rgb(77,77,77), rgb(150,150,150), rgb(28,28,28), rgb(0,0,0))
|
||||||
lying_icon.Blend(temp , ICON_OVERLAY)
|
lying_icon.Blend(temp , ICON_OVERLAY)
|
||||||
|
|
||||||
stand_icon.Blend(new /icon('tajaran.dmi', "groin_[g]_s"), ICON_OVERLAY)
|
stand_icon.Blend(new /icon('tajaran.dmi', "groin_[g]_s"), ICON_OVERLAY)
|
||||||
@@ -511,7 +511,7 @@
|
|||||||
if(!istype(part, /datum/organ/external/groin) \
|
if(!istype(part, /datum/organ/external/groin) \
|
||||||
&& !istype(part, /datum/organ/external/chest) \
|
&& !istype(part, /datum/organ/external/chest) \
|
||||||
&& !istype(part, /datum/organ/external/head) \
|
&& !istype(part, /datum/organ/external/head) \
|
||||||
&& (part.status & DESTROYED))
|
&& (part.status & ORGAN_DESTROYED))
|
||||||
husk_s.Blend(new /icon('dam_mask.dmi', "[part.icon_name]"), ICON_SUBTRACT)
|
husk_s.Blend(new /icon('dam_mask.dmi', "[part.icon_name]"), ICON_SUBTRACT)
|
||||||
husk_l.Blend(new /icon('dam_mask.dmi', "[part.icon_name]2"), ICON_SUBTRACT)
|
husk_l.Blend(new /icon('dam_mask.dmi', "[part.icon_name]2"), ICON_SUBTRACT)
|
||||||
|
|
||||||
@@ -539,7 +539,7 @@
|
|||||||
if(organs)
|
if(organs)
|
||||||
var/datum/organ/external/head = organs["head"]
|
var/datum/organ/external/head = organs["head"]
|
||||||
if(head)
|
if(head)
|
||||||
if(head.status & DESTROYED)
|
if(head.status & ORGAN_DESTROYED)
|
||||||
del(face_standing)
|
del(face_standing)
|
||||||
del(face_lying)
|
del(face_lying)
|
||||||
return
|
return
|
||||||
|
|||||||
@@ -455,12 +455,12 @@ proc/airborne_can_reach(turf/source, turf/target)
|
|||||||
var/name = pick(mob.organs)
|
var/name = pick(mob.organs)
|
||||||
var/datum/organ/external/organ = mob.organs[name]
|
var/datum/organ/external/organ = mob.organs[name]
|
||||||
|
|
||||||
if(!(organ.status & BROKEN) && !(organ.status & ROBOT))
|
if(!(organ.status & ORGAN_BROKEN) && !(organ.status & ORGAN_ROBOT))
|
||||||
mob.adjustBruteLoss(10)
|
mob.adjustBruteLoss(10)
|
||||||
mob.visible_message("\red You hear a loud cracking sound coming from [mob.name].","\red <b>Something feels like it shattered in your [organ.display_name]!</b>","You hear a sickening crack.")
|
mob.visible_message("\red You hear a loud cracking sound coming from [mob.name].","\red <b>Something feels like it shattered in your [organ.display_name]!</b>","You hear a sickening crack.")
|
||||||
mob.emote("scream")
|
mob.emote("scream")
|
||||||
organ.status |= BROKEN
|
organ.status |= ORGAN_BROKEN
|
||||||
organ.broken_description = pick("broken","fracture","hairline fracture") //Randomise in future. Edit: Randomized. --SkyMarshal
|
organ.broken_description = pick("broken","fracture","hairline fracture")
|
||||||
organ.perma_injury = 10
|
organ.perma_injury = 10
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -282,11 +282,11 @@
|
|||||||
var/imp = ""
|
var/imp = ""
|
||||||
var/bled = ""
|
var/bled = ""
|
||||||
var/splint = ""
|
var/splint = ""
|
||||||
if(e.status & SPLINTED)
|
if(e.status & ORGAN_SPLINTED)
|
||||||
splint = "Splinted:"
|
splint = "Splinted:"
|
||||||
if(e.status & BLEEDING)
|
if(e.status & ORGAN_BLEEDING)
|
||||||
bled = "Bleeding:"
|
bled = "Bleeding:"
|
||||||
if(e.status & BROKEN)
|
if(e.status & ORGAN_BROKEN)
|
||||||
AN = "[e.broken_description]:"
|
AN = "[e.broken_description]:"
|
||||||
if(e.open)
|
if(e.open)
|
||||||
open = "Open:"
|
open = "Open:"
|
||||||
@@ -294,7 +294,7 @@
|
|||||||
imp = "Implanted:"
|
imp = "Implanted:"
|
||||||
if(!AN && !open && !infected & !imp)
|
if(!AN && !open && !infected & !imp)
|
||||||
AN = "None"
|
AN = "None"
|
||||||
if(!(e.status & DESTROYED))
|
if(!(e.status & ORGAN_DESTROYED))
|
||||||
dat += "<td>[e.display_name]</td><td>[e.burn_dam]</td><td>[e.brute_dam]</td><td>[bled][AN][splint][open][infected][imp]</td>"
|
dat += "<td>[e.display_name]</td><td>[e.burn_dam]</td><td>[e.brute_dam]</td><td>[bled][AN][splint][open][infected][imp]</td>"
|
||||||
else
|
else
|
||||||
dat += "<td>[e.display_name]</td><td>-</td><td>-</td><td>Not Found</td>"
|
dat += "<td>[e.display_name]</td><td>-</td><td>-</td><td>Not Found</td>"
|
||||||
|
|||||||
@@ -187,7 +187,7 @@
|
|||||||
|
|
||||||
// Make sure we can't scan a headless person. It breaks the cloner permanently.
|
// Make sure we can't scan a headless person. It breaks the cloner permanently.
|
||||||
var/datum/organ/external/temp = src.scanner.occupant.organs["head"]
|
var/datum/organ/external/temp = src.scanner.occupant.organs["head"]
|
||||||
if(temp && !(temp.status & DESTROYED))
|
if(temp && !(temp.status & ORGAN_DESTROYED))
|
||||||
dat += "<a href='byond://?src=\ref[src];scan=1'>Scan - [src.scanner.occupant]</a><br>"
|
dat += "<a href='byond://?src=\ref[src];scan=1'>Scan - [src.scanner.occupant]</a><br>"
|
||||||
else
|
else
|
||||||
dat += "Error: Cannot locate brain for mental indexing. Unable to continue.<br>"
|
dat += "Error: Cannot locate brain for mental indexing. Unable to continue.<br>"
|
||||||
|
|||||||
@@ -283,7 +283,7 @@ var/list/sacrificed = list()
|
|||||||
del(ghost)
|
del(ghost)
|
||||||
for(var/name in corpse_to_raise.organs)
|
for(var/name in corpse_to_raise.organs)
|
||||||
var/datum/organ/external/affecting = corpse_to_raise.organs[name]
|
var/datum/organ/external/affecting = corpse_to_raise.organs[name]
|
||||||
affecting.status &= ~ROBOT
|
affecting.status &= ~ORGAN_ROBOT
|
||||||
affecting.heal_damage(1000, 1000)
|
affecting.heal_damage(1000, 1000)
|
||||||
corpse_to_raise.setToxLoss(0)
|
corpse_to_raise.setToxLoss(0)
|
||||||
corpse_to_raise.setOxyLoss(0)
|
corpse_to_raise.setOxyLoss(0)
|
||||||
|
|||||||
@@ -120,12 +120,12 @@ MASS SPECTROMETER
|
|||||||
for(var/name in H.organs)
|
for(var/name in H.organs)
|
||||||
var/datum/organ/external/e = H.organs[name]
|
var/datum/organ/external/e = H.organs[name]
|
||||||
var/limb = e.getDisplayName()
|
var/limb = e.getDisplayName()
|
||||||
if(e.status & BROKEN)
|
if(e.status & ORGAN_BROKEN)
|
||||||
if(((e.name == "l_arm") || (e.name == "r_arm") || (e.name == "l_leg") || (e.name == "r_leg")) && (!(e.status & SPLINTED)))
|
if(((e.name == "l_arm") || (e.name == "r_arm") || (e.name == "l_leg") || (e.name == "r_leg")) && (!(e.status & ORGAN_SPLINTED)))
|
||||||
user << "\red Unsecured fracture in subject [limb]. Splinting recommended for transport."
|
user << "\red Unsecured fracture in subject [limb]. Splinting recommended for transport."
|
||||||
for(var/name in H.organs)
|
for(var/name in H.organs)
|
||||||
var/datum/organ/external/e = H.organs[name]
|
var/datum/organ/external/e = H.organs[name]
|
||||||
if(e.status & BROKEN)
|
if(e.status & ORGAN_BROKEN)
|
||||||
user.show_message(text("\red Bone fractures detected. Advanced scanner required for location."), 1)
|
user.show_message(text("\red Bone fractures detected. Advanced scanner required for location."), 1)
|
||||||
break
|
break
|
||||||
if(ishuman(M))
|
if(ishuman(M))
|
||||||
|
|||||||
@@ -404,7 +404,7 @@
|
|||||||
return
|
return
|
||||||
|
|
||||||
var/datum/organ/external/head = H.organs["head"]
|
var/datum/organ/external/head = H.organs["head"]
|
||||||
if(head.status & DESTROYED)
|
if(head.status & ORGAN_DESTROYED)
|
||||||
user << "\blue Put it where? There's no head."
|
user << "\blue Put it where? There's no head."
|
||||||
|
|
||||||
//since these people will be dead M != usr
|
//since these people will be dead M != usr
|
||||||
|
|||||||
@@ -97,13 +97,13 @@
|
|||||||
if (user.hand)
|
if (user.hand)
|
||||||
if(ishuman(user))
|
if(ishuman(user))
|
||||||
var/datum/organ/external/temp = user:organs["l_hand"]
|
var/datum/organ/external/temp = user:organs["l_hand"]
|
||||||
if(temp.status & DESTROYED)
|
if(temp.status & ORGAN_DESTROYED)
|
||||||
user << "\blue Yo- wait a minute."
|
user << "\blue Yo- wait a minute."
|
||||||
return
|
return
|
||||||
else
|
else
|
||||||
if(ishuman(user))
|
if(ishuman(user))
|
||||||
var/datum/organ/external/temp = user:organs["r_hand"]
|
var/datum/organ/external/temp = user:organs["r_hand"]
|
||||||
if(temp.status & DESTROYED)
|
if(temp.status & ORGAN_DESTROYED)
|
||||||
user << "\blue Yo- wait a minute."
|
user << "\blue Yo- wait a minute."
|
||||||
|
|
||||||
if (istype(src.loc, /obj/item/weapon/storage))
|
if (istype(src.loc, /obj/item/weapon/storage))
|
||||||
@@ -136,7 +136,7 @@
|
|||||||
if (user.hand)
|
if (user.hand)
|
||||||
if(ishuman(user))
|
if(ishuman(user))
|
||||||
var/datum/organ/external/temp = user:organs["l_hand"]
|
var/datum/organ/external/temp = user:organs["l_hand"]
|
||||||
if(!(temp.status & DESTROYED))
|
if(!(temp.status & ORGAN_DESTROYED))
|
||||||
user.l_hand = src
|
user.l_hand = src
|
||||||
else
|
else
|
||||||
user << "\blue You pick \the [src] up with your ha- wait a minute."
|
user << "\blue You pick \the [src] up with your ha- wait a minute."
|
||||||
@@ -148,7 +148,7 @@
|
|||||||
else
|
else
|
||||||
if(ishuman(user))
|
if(ishuman(user))
|
||||||
var/datum/organ/external/temp = user:organs["r_hand"]
|
var/datum/organ/external/temp = user:organs["r_hand"]
|
||||||
if(!(temp.status & DESTROYED))
|
if(!(temp.status & ORGAN_DESTROYED))
|
||||||
user.r_hand = src
|
user.r_hand = src
|
||||||
else
|
else
|
||||||
user << "\blue You pick \the [src] up with your ha- wait a minute."
|
user << "\blue You pick \the [src] up with your ha- wait a minute."
|
||||||
@@ -176,13 +176,13 @@
|
|||||||
if (user.hand)
|
if (user.hand)
|
||||||
if(ismonkey(user))
|
if(ismonkey(user))
|
||||||
var/datum/organ/external/temp = user:organs["l_hand"]
|
var/datum/organ/external/temp = user:organs["l_hand"]
|
||||||
if(temp.status & DESTROYED)
|
if(temp.status & ORGAN_DESTROYED)
|
||||||
user << "\blue Yo- wait a minute."
|
user << "\blue Yo- wait a minute."
|
||||||
return
|
return
|
||||||
else
|
else
|
||||||
if(ismonkey(user))
|
if(ismonkey(user))
|
||||||
var/datum/organ/external/temp = user:organs["r_hand"]
|
var/datum/organ/external/temp = user:organs["r_hand"]
|
||||||
if(temp.status & DESTROYED)
|
if(temp.status & ORGAN_DESTROYED)
|
||||||
user << "\blue Yo- wait a minute."
|
user << "\blue Yo- wait a minute."
|
||||||
|
|
||||||
if (istype(src.loc, /obj/item/weapon/storage))
|
if (istype(src.loc, /obj/item/weapon/storage))
|
||||||
|
|||||||
@@ -31,7 +31,7 @@
|
|||||||
return
|
return
|
||||||
if(hasorgans(M))
|
if(hasorgans(M))
|
||||||
var/datum/organ/external/target = M:get_organ(check_zone(user.zone_sel.selecting))
|
var/datum/organ/external/target = M:get_organ(check_zone(user.zone_sel.selecting))
|
||||||
if(target.status & DESTROYED)
|
if(target.status & ORGAN_DESTROYED)
|
||||||
user << "What [target.display_name]?"
|
user << "What [target.display_name]?"
|
||||||
return
|
return
|
||||||
if(!target.implant)
|
if(!target.implant)
|
||||||
|
|||||||
@@ -44,7 +44,7 @@ MEDICAL
|
|||||||
if(!istype(affecting, /datum/organ/external))
|
if(!istype(affecting, /datum/organ/external))
|
||||||
affecting = H.get_organ("head")
|
affecting = H.get_organ("head")
|
||||||
|
|
||||||
if(affecting.status & ROBOT)
|
if(affecting.status & ORGAN_ROBOT)
|
||||||
user << "Medical equipment for a robot arm? Better get a welder..."
|
user << "Medical equipment for a robot arm? Better get a welder..."
|
||||||
return
|
return
|
||||||
|
|
||||||
@@ -53,10 +53,10 @@ MEDICAL
|
|||||||
if(!((affecting.name == "l_arm") || (affecting.name == "r_arm") || (affecting.name == "l_leg") || (affecting.name == "r_leg")))
|
if(!((affecting.name == "l_arm") || (affecting.name == "r_arm") || (affecting.name == "l_leg") || (affecting.name == "r_leg")))
|
||||||
user << "\red You can't apply a splint there!"
|
user << "\red You can't apply a splint there!"
|
||||||
return
|
return
|
||||||
if(!(affecting.status & BROKEN))
|
if(!(affecting.status & ORGAN_BROKEN))
|
||||||
user << "\red [M]'s [limb] isn't broken!"
|
user << "\red [M]'s [limb] isn't broken!"
|
||||||
return
|
return
|
||||||
if(affecting.status & SPLINTED)
|
if(affecting.status & ORGAN_SPLINTED)
|
||||||
user << "\red [M]'s [limb] is already splinted!"
|
user << "\red [M]'s [limb] is already splinted!"
|
||||||
return
|
return
|
||||||
if (M != user)
|
if (M != user)
|
||||||
@@ -75,7 +75,7 @@ MEDICAL
|
|||||||
else
|
else
|
||||||
user.visible_message("\red [user] fumbles \the [src].", "\red You fumble \the [src].", "\red You hear something being wrapped.")
|
user.visible_message("\red [user] fumbles \the [src].", "\red You fumble \the [src].", "\red You hear something being wrapped.")
|
||||||
return
|
return
|
||||||
affecting.status |= SPLINTED
|
affecting.status |= ORGAN_SPLINTED
|
||||||
use(1)
|
use(1)
|
||||||
M.update_clothing()
|
M.update_clothing()
|
||||||
return
|
return
|
||||||
@@ -115,8 +115,8 @@ MEDICAL
|
|||||||
"You hear gauze being ripped.")
|
"You hear gauze being ripped.")
|
||||||
use(1)
|
use(1)
|
||||||
|
|
||||||
if (!ointment && (affecting.status & BLEEDING))
|
if (!ointment && (affecting.status & ORGAN_BLEEDING))
|
||||||
affecting.status &= ~BLEEDING
|
affecting.status &= ~ORGAN_BLEEDING
|
||||||
|
|
||||||
if (affecting.heal_damage(src.heal_brute, src.heal_burn))
|
if (affecting.heal_damage(src.heal_brute, src.heal_burn))
|
||||||
H.UpdateDamageIcon()
|
H.UpdateDamageIcon()
|
||||||
|
|||||||
@@ -24,8 +24,8 @@
|
|||||||
|
|
||||||
var/mob/living/carbon/human/H = M
|
var/mob/living/carbon/human/H = M
|
||||||
var/datum/organ/external/S = H.organs[user.zone_sel.selecting]
|
var/datum/organ/external/S = H.organs[user.zone_sel.selecting]
|
||||||
if(S.status & DESTROYED)
|
if(S.status & ORGAN_DESTROYED)
|
||||||
if(!(S.status & ATTACHABLE))
|
if(!(S.status & ORGAN_ATTACHABLE))
|
||||||
user << "\red The wound is not ready for a replacement!"
|
user << "\red The wound is not ready for a replacement!"
|
||||||
return 0
|
return 0
|
||||||
if(M != user)
|
if(M != user)
|
||||||
@@ -51,17 +51,17 @@
|
|||||||
user << "\red You mess up!"
|
user << "\red You mess up!"
|
||||||
S.take_damage(15)
|
S.take_damage(15)
|
||||||
|
|
||||||
S.status &= ~BROKEN
|
S.status &= ~ORGAN_BROKEN
|
||||||
S.status &= ~SPLINTED
|
S.status &= ~ORGAN_SPLINTED
|
||||||
S.status &= ~ATTACHABLE
|
S.status &= ~ORGAN_ATTACHABLE
|
||||||
S.status &= ~DESTROYED
|
S.status &= ~ORGAN_DESTROYED
|
||||||
S.status |= ROBOT
|
S.status |= ORGAN_ROBOT
|
||||||
var/datum/organ/external/T = H.organs["[limbloc]"]
|
var/datum/organ/external/T = H.organs["[limbloc]"]
|
||||||
T.status &= ~BROKEN
|
T.status &= ~ORGAN_BROKEN
|
||||||
T.status &= ~SPLINTED
|
T.status &= ~ORGAN_SPLINTED
|
||||||
T.status &= ~ATTACHABLE
|
T.status &= ~ORGAN_ATTACHABLE
|
||||||
T.status &= ~DESTROYED
|
T.status &= ~ORGAN_DESTROYED
|
||||||
T.status |= ROBOT
|
T.status |= ORGAN_ROBOT
|
||||||
M.update_body()
|
M.update_body()
|
||||||
M.updatehealth()
|
M.updatehealth()
|
||||||
M.UpdateDamageIcon()
|
M.UpdateDamageIcon()
|
||||||
|
|||||||
@@ -26,11 +26,11 @@ CIRCULAR SAW
|
|||||||
var/datum/organ/external/S = H.organs[user.zone_sel.selecting]
|
var/datum/organ/external/S = H.organs[user.zone_sel.selecting]
|
||||||
if(user.zone_sel.selecting == "mouth" || user.zone_sel.selecting == "eyes")
|
if(user.zone_sel.selecting == "mouth" || user.zone_sel.selecting == "eyes")
|
||||||
S = H.organs["head"]
|
S = H.organs["head"]
|
||||||
if(S.status & DESTROYED)
|
if(S.status & ORGAN_DESTROYED)
|
||||||
if(S.status & BLEEDING)
|
if(S.status & ORGAN_BLEEDING)
|
||||||
user << "\red There's too much blood here!"
|
user << "\red There's too much blood here!"
|
||||||
return 0
|
return 0
|
||||||
if(!(S.status & CUT_AWAY))
|
if(!(S.status & ORGAN_CUT_AWAY))
|
||||||
user << "\red The flesh hasn't been cleanly cut!"
|
user << "\red The flesh hasn't been cleanly cut!"
|
||||||
return 0
|
return 0
|
||||||
if(M != user)
|
if(M != user)
|
||||||
@@ -247,17 +247,17 @@ CIRCULAR SAW
|
|||||||
if(!S || !istype(S))
|
if(!S || !istype(S))
|
||||||
return 0
|
return 0
|
||||||
|
|
||||||
if(S.status & DESTROYED)
|
if(S.status & ORGAN_DESTROYED)
|
||||||
return ..()
|
return ..()
|
||||||
|
|
||||||
if(S.status & ROBOT)
|
if(S.status & ORGAN_ROBOT)
|
||||||
user << "Medical equipment for a robot arm? How would that do any good..."
|
user << "Medical equipment for a robot arm? How would that do any good..."
|
||||||
return
|
return
|
||||||
|
|
||||||
if(!S.open)
|
if(!S.open)
|
||||||
user << "\red There is skin in the way!"
|
user << "\red There is skin in the way!"
|
||||||
return 0
|
return 0
|
||||||
if(S.status & BLEEDING)
|
if(S.status & ORGAN_BLEEDING)
|
||||||
user << "\red [H] is profusely bleeding in \his [S.display_name]!"
|
user << "\red [H] is profusely bleeding in \his [S.display_name]!"
|
||||||
return 0
|
return 0
|
||||||
|
|
||||||
@@ -306,11 +306,11 @@ CIRCULAR SAW
|
|||||||
var/datum/organ/external/S = H.organs[user.zone_sel.selecting]
|
var/datum/organ/external/S = H.organs[user.zone_sel.selecting]
|
||||||
|
|
||||||
if(((user.zone_sel.selecting == "l_arm") || (user.zone_sel.selecting == "r_arm") || (user.zone_sel.selecting == "l_leg") || (user.zone_sel.selecting == "r_leg")) & (istype(M, /mob/living/carbon/human)))
|
if(((user.zone_sel.selecting == "l_arm") || (user.zone_sel.selecting == "r_arm") || (user.zone_sel.selecting == "l_leg") || (user.zone_sel.selecting == "r_leg")) & (istype(M, /mob/living/carbon/human)))
|
||||||
if(S.status & DESTROYED)
|
if(S.status & ORGAN_DESTROYED)
|
||||||
if(!(S.status & BLEEDING))
|
if(!(S.status & ORGAN_BLEEDING))
|
||||||
user << "\red There is nothing bleeding here!"
|
user << "\red There is nothing bleeding here!"
|
||||||
return 0
|
return 0
|
||||||
if(!(S.status & CUT_AWAY))
|
if(!(S.status & ORGAN_CUT_AWAY))
|
||||||
user << "\red The flesh hasn't been cleanly cut!"
|
user << "\red The flesh hasn't been cleanly cut!"
|
||||||
return 0
|
return 0
|
||||||
if(M != user)
|
if(M != user)
|
||||||
@@ -336,7 +336,7 @@ CIRCULAR SAW
|
|||||||
user << "\red You mess up!"
|
user << "\red You mess up!"
|
||||||
S.take_damage(15)
|
S.take_damage(15)
|
||||||
|
|
||||||
S.status &= ~BLEEDING
|
S.status &= ~ORGAN_BLEEDING
|
||||||
M.updatehealth()
|
M.updatehealth()
|
||||||
M.UpdateDamageIcon()
|
M.UpdateDamageIcon()
|
||||||
|
|
||||||
@@ -353,7 +353,7 @@ CIRCULAR SAW
|
|||||||
user << "\red You clamp bleeders in [M]'s torso with [src]!"
|
user << "\red You clamp bleeders in [M]'s torso with [src]!"
|
||||||
M:embryo_op_stage = 2.0
|
M:embryo_op_stage = 2.0
|
||||||
|
|
||||||
S.status &= ~BLEEDING
|
S.status &= ~ORGAN_BLEEDING
|
||||||
M.updatehealth()
|
M.updatehealth()
|
||||||
M.UpdateDamageIcon()
|
M.UpdateDamageIcon()
|
||||||
|
|
||||||
@@ -378,7 +378,7 @@ CIRCULAR SAW
|
|||||||
user << "\red You clamp bleeders in [M]'s abdomen with [src]!"
|
user << "\red You clamp bleeders in [M]'s abdomen with [src]!"
|
||||||
M:appendix_op_stage = 2.0
|
M:appendix_op_stage = 2.0
|
||||||
|
|
||||||
S.status &= ~BLEEDING
|
S.status &= ~ORGAN_BLEEDING
|
||||||
M.updatehealth()
|
M.updatehealth()
|
||||||
M.UpdateDamageIcon()
|
M.UpdateDamageIcon()
|
||||||
|
|
||||||
@@ -505,7 +505,7 @@ CIRCULAR SAW
|
|||||||
|
|
||||||
M.face_op_stage = 2.0
|
M.face_op_stage = 2.0
|
||||||
|
|
||||||
S.status &= ~BLEEDING
|
S.status &= ~ORGAN_BLEEDING
|
||||||
M.updatehealth()
|
M.updatehealth()
|
||||||
M.UpdateDamageIcon()
|
M.UpdateDamageIcon()
|
||||||
return
|
return
|
||||||
@@ -568,10 +568,10 @@ CIRCULAR SAW
|
|||||||
if(!S || !istype(S))
|
if(!S || !istype(S))
|
||||||
return 0
|
return 0
|
||||||
|
|
||||||
if(S.status & DESTROYED)
|
if(S.status & ORGAN_DESTROYED)
|
||||||
return ..()
|
return ..()
|
||||||
|
|
||||||
if(S.status & ROBOT)
|
if(S.status & ORGAN_ROBOT)
|
||||||
user << "Medical equipment for a robot arm? How would that do any good?"
|
user << "Medical equipment for a robot arm? How would that do any good?"
|
||||||
return
|
return
|
||||||
|
|
||||||
@@ -579,7 +579,7 @@ CIRCULAR SAW
|
|||||||
user << "\red There is skin in the way!"
|
user << "\red There is skin in the way!"
|
||||||
return 0
|
return 0
|
||||||
|
|
||||||
if(!(S.status & BLEEDING))
|
if(!(S.status & ORGAN_BLEEDING))
|
||||||
if(S.implant)
|
if(S.implant)
|
||||||
if(H != user)
|
if(H != user)
|
||||||
H.visible_message( \
|
H.visible_message( \
|
||||||
@@ -646,7 +646,7 @@ CIRCULAR SAW
|
|||||||
user << "\red You mess up!"
|
user << "\red You mess up!"
|
||||||
S.take_damage(15)
|
S.take_damage(15)
|
||||||
|
|
||||||
S.status &= ~BLEEDING
|
S.status &= ~ORGAN_BLEEDING
|
||||||
|
|
||||||
H.updatehealth()
|
H.updatehealth()
|
||||||
H.UpdateDamageIcon()
|
H.UpdateDamageIcon()
|
||||||
@@ -822,7 +822,7 @@ CIRCULAR SAW
|
|||||||
if(!S.open)
|
if(!S.open)
|
||||||
usr << "<b>You have to cut the limb open first!</b>"
|
usr << "<b>You have to cut the limb open first!</b>"
|
||||||
return
|
return
|
||||||
if(S.status & ROBOT)
|
if(S.status & ORGAN_ROBOT)
|
||||||
user << "Medical equipment for a robot arm? How would that do any good?"
|
user << "Medical equipment for a robot arm? How would that do any good?"
|
||||||
return
|
return
|
||||||
for(var/mob/O in viewers(M))
|
for(var/mob/O in viewers(M))
|
||||||
@@ -846,11 +846,11 @@ CIRCULAR SAW
|
|||||||
if(((user.zone_sel.selecting == "l_arm") || (user.zone_sel.selecting == "r_arm") || (user.zone_sel.selecting == "l_leg") || (user.zone_sel.selecting == "r_leg")) & (istype(M, /mob/living/carbon/human)))
|
if(((user.zone_sel.selecting == "l_arm") || (user.zone_sel.selecting == "r_arm") || (user.zone_sel.selecting == "l_leg") || (user.zone_sel.selecting == "r_leg")) & (istype(M, /mob/living/carbon/human)))
|
||||||
var/mob/living/carbon/human/H = M
|
var/mob/living/carbon/human/H = M
|
||||||
var/datum/organ/external/S = H.organs[user.zone_sel.selecting]
|
var/datum/organ/external/S = H.organs[user.zone_sel.selecting]
|
||||||
if(S.status & DESTROYED)
|
if(S.status & ORGAN_DESTROYED)
|
||||||
if(S.status & BLEEDING)
|
if(S.status & ORGAN_BLEEDING)
|
||||||
user << "\red There's too much blood here!"
|
user << "\red There's too much blood here!"
|
||||||
return 0
|
return 0
|
||||||
if(!(S.status & CUT_AWAY))
|
if(!(S.status & ORGAN_CUT_AWAY))
|
||||||
user << "\red The flesh hasn't been cleanly cut!"
|
user << "\red The flesh hasn't been cleanly cut!"
|
||||||
return 0
|
return 0
|
||||||
if(S.open != 3)
|
if(S.open != 3)
|
||||||
@@ -881,7 +881,7 @@ CIRCULAR SAW
|
|||||||
|
|
||||||
S.open = 0
|
S.open = 0
|
||||||
S.stage = 0
|
S.stage = 0
|
||||||
S.status |= ATTACHABLE
|
S.status |= ORGAN_ATTACHABLE
|
||||||
S.amputated = 1 // this should prevent the wound from hurting etc.
|
S.amputated = 1 // this should prevent the wound from hurting etc.
|
||||||
M.updatehealth()
|
M.updatehealth()
|
||||||
M.UpdateDamageIcon()
|
M.UpdateDamageIcon()
|
||||||
@@ -1038,10 +1038,10 @@ CIRCULAR SAW
|
|||||||
if(!S || !istype(S))
|
if(!S || !istype(S))
|
||||||
return 0
|
return 0
|
||||||
|
|
||||||
if(S.status & DESTROYED)
|
if(S.status & ORGAN_DESTROYED)
|
||||||
user << "What [S.display_name]?"
|
user << "What [S.display_name]?"
|
||||||
|
|
||||||
if(S.status & ROBOT)
|
if(S.status & ORGAN_ROBOT)
|
||||||
user << "Medical equipment for a robot arm? How would that do any good..."
|
user << "Medical equipment for a robot arm? How would that do any good..."
|
||||||
return
|
return
|
||||||
if(!S.open)
|
if(!S.open)
|
||||||
@@ -1106,7 +1106,7 @@ CIRCULAR SAW
|
|||||||
if(((user.zone_sel.selecting == "l_arm") || (user.zone_sel.selecting == "r_arm") || (user.zone_sel.selecting == "l_leg") || (user.zone_sel.selecting == "r_leg")) & (istype(M, /mob/living/carbon/human)))
|
if(((user.zone_sel.selecting == "l_arm") || (user.zone_sel.selecting == "r_arm") || (user.zone_sel.selecting == "l_leg") || (user.zone_sel.selecting == "r_leg")) & (istype(M, /mob/living/carbon/human)))
|
||||||
var/mob/living/carbon/human/H = M
|
var/mob/living/carbon/human/H = M
|
||||||
var/datum/organ/external/S = H.organs[user.zone_sel.selecting]
|
var/datum/organ/external/S = H.organs[user.zone_sel.selecting]
|
||||||
if(S.status & DESTROYED)
|
if(S.status & ORGAN_DESTROYED)
|
||||||
if(M != user)
|
if(M != user)
|
||||||
M.visible_message( \
|
M.visible_message( \
|
||||||
"\red [user] is beginning to cut away at the flesh where [H]'s [S.display_name] used to be with [src].", \
|
"\red [user] is beginning to cut away at the flesh where [H]'s [S.display_name] used to be with [src].", \
|
||||||
@@ -1126,7 +1126,7 @@ CIRCULAR SAW
|
|||||||
"\red [user] finishes cutting where \his [S.display_name] used to be with [src]!", \
|
"\red [user] finishes cutting where \his [S.display_name] used to be with [src]!", \
|
||||||
"\red You finish cutting where your [S.display_name] used to be with [src]!")
|
"\red You finish cutting where your [S.display_name] used to be with [src]!")
|
||||||
|
|
||||||
S.status |= BLEEDING|CUT_AWAY
|
S.status |= ORGAN_BLEEDING|ORGAN_CUT_AWAY
|
||||||
M.updatehealth()
|
M.updatehealth()
|
||||||
M.UpdateDamageIcon()
|
M.UpdateDamageIcon()
|
||||||
else
|
else
|
||||||
@@ -1199,7 +1199,7 @@ CIRCULAR SAW
|
|||||||
|
|
||||||
if(istype(H) && H.organs["head"])
|
if(istype(H) && H.organs["head"])
|
||||||
var/datum/organ/external/affecting = H.organs["head"]
|
var/datum/organ/external/affecting = H.organs["head"]
|
||||||
if(affecting.status & DESTROYED)
|
if(affecting.status & ORGAN_DESTROYED)
|
||||||
return ..()
|
return ..()
|
||||||
|
|
||||||
if(istype(H) && ( \
|
if(istype(H) && ( \
|
||||||
@@ -1429,10 +1429,10 @@ CIRCULAR SAW
|
|||||||
if(!S || !istype(S))
|
if(!S || !istype(S))
|
||||||
return 0
|
return 0
|
||||||
|
|
||||||
if(S.status & DESTROYED)
|
if(S.status & ORGAN_DESTROYED)
|
||||||
return ..()
|
return ..()
|
||||||
|
|
||||||
if(S.status & ROBOT)
|
if(S.status & ORGAN_ROBOT)
|
||||||
user << "Medical equipment for a robot arm? How would that do any good..."
|
user << "Medical equipment for a robot arm? How would that do any good..."
|
||||||
return
|
return
|
||||||
|
|
||||||
@@ -1463,7 +1463,7 @@ CIRCULAR SAW
|
|||||||
user << "\red You mess up!"
|
user << "\red You mess up!"
|
||||||
S.take_damage(15)
|
S.take_damage(15)
|
||||||
|
|
||||||
S.status |= BLEEDING
|
S.status |= ORGAN_BLEEDING
|
||||||
S.open = 1
|
S.open = 1
|
||||||
if(S.display_name == "chest")
|
if(S.display_name == "chest")
|
||||||
H:embryo_op_stage = 1.0
|
H:embryo_op_stage = 1.0
|
||||||
@@ -1532,7 +1532,7 @@ CIRCULAR SAW
|
|||||||
if(!hasorgans(M))
|
if(!hasorgans(M))
|
||||||
return ..()
|
return ..()
|
||||||
var/datum/organ/external/S = M:organs["head"]
|
var/datum/organ/external/S = M:organs["head"]
|
||||||
if(S.status & DESTROYED)
|
if(S.status & ORGAN_DESTROYED)
|
||||||
return
|
return
|
||||||
for(var/mob/O in viewers(M, null))
|
for(var/mob/O in viewers(M, null))
|
||||||
O.show_message(text("\red [M] gets \his [S.display_name] sawed at with [src] by [user].... It looks like [user] is trying to cut it off!"), 1)
|
O.show_message(text("\red [M] gets \his [S.display_name] sawed at with [src] by [user].... It looks like [user] is trying to cut it off!"), 1)
|
||||||
@@ -1542,7 +1542,7 @@ CIRCULAR SAW
|
|||||||
return
|
return
|
||||||
for(var/mob/O in viewers(M, null))
|
for(var/mob/O in viewers(M, null))
|
||||||
O.show_message(text("\red [M] gets \his [S.display_name] sawed off with [src] by [user]."), 1)
|
O.show_message(text("\red [M] gets \his [S.display_name] sawed off with [src] by [user]."), 1)
|
||||||
S.status |= DESTROYED
|
S.status |= ORGAN_DESTROYED
|
||||||
S.droplimb()
|
S.droplimb()
|
||||||
M:update_body()
|
M:update_body()
|
||||||
if(1.0)
|
if(1.0)
|
||||||
@@ -1632,10 +1632,10 @@ CIRCULAR SAW
|
|||||||
else if(user.zone_sel.selecting != "chest" && hasorgans(M))
|
else if(user.zone_sel.selecting != "chest" && hasorgans(M))
|
||||||
var/mob/living/carbon/H = M
|
var/mob/living/carbon/H = M
|
||||||
var/datum/organ/external/S = H:organs[user.zone_sel.selecting]
|
var/datum/organ/external/S = H:organs[user.zone_sel.selecting]
|
||||||
if(S.status & DESTROYED)
|
if(S.status & ORGAN_DESTROYED)
|
||||||
return
|
return
|
||||||
|
|
||||||
if(S.status & ROBOT)
|
if(S.status & ORGAN_ROBOT)
|
||||||
var/datum/effect/effect/system/spark_spread/spark_system = new /datum/effect/effect/system/spark_spread()
|
var/datum/effect/effect/system/spark_spread/spark_system = new /datum/effect/effect/system/spark_spread()
|
||||||
spark_system.set_up(5, 0, M)
|
spark_system.set_up(5, 0, M)
|
||||||
spark_system.attach(M)
|
spark_system.attach(M)
|
||||||
@@ -1696,33 +1696,33 @@ CIRCULAR SAW
|
|||||||
var/datum/organ/external/temp = M.organs[zone]
|
var/datum/organ/external/temp = M.organs[zone]
|
||||||
var/msg
|
var/msg
|
||||||
|
|
||||||
if(temp.status & DESTROYED)
|
if(temp.status & ORGAN_DESTROYED)
|
||||||
return ..()
|
return ..()
|
||||||
|
|
||||||
// quickly convert embryo removal to bone surgery
|
// quickly convert embryo removal to bone surgery
|
||||||
if(zone == "chest" && M.embryo_op_stage == 3)
|
if(zone == "chest" && M.embryo_op_stage == 3)
|
||||||
M.embryo_op_stage = 0
|
M.embryo_op_stage = 0
|
||||||
temp.open = 2
|
temp.open = 2
|
||||||
temp.status &= ~BLEEDING
|
temp.status &= ~ORGAN_BLEEDING
|
||||||
|
|
||||||
// quickly convert appendectomy to bone surgery
|
// quickly convert appendectomy to bone surgery
|
||||||
if(zone == "groin" && M.appendix_op_stage == 3)
|
if(zone == "groin" && M.appendix_op_stage == 3)
|
||||||
M.appendix_op_stage = 0
|
M.appendix_op_stage = 0
|
||||||
temp.open = 2
|
temp.open = 2
|
||||||
temp.status &= ~BLEEDING
|
temp.status &= ~ORGAN_BLEEDING
|
||||||
|
|
||||||
msg = get_message(1,M,user,temp)
|
msg = get_message(1,M,user,temp)
|
||||||
for(var/mob/O in viewers(M,null))
|
for(var/mob/O in viewers(M,null))
|
||||||
O.show_message("\red [msg]",1)
|
O.show_message("\red [msg]",1)
|
||||||
if(do_mob(user,M,time))
|
if(do_mob(user,M,time))
|
||||||
if(temp.open == 2 && !(temp.status & BLEEDING))
|
if(temp.open == 2 && !(temp.status & ORGAN_BLEEDING))
|
||||||
if(temp.broken_description in wound)
|
if(temp.broken_description in wound)
|
||||||
if(temp.stage in stage)
|
if(temp.stage in stage)
|
||||||
temp.stage += 1
|
temp.stage += 1
|
||||||
|
|
||||||
if(IsFinalStage(temp.stage))
|
if(IsFinalStage(temp.stage))
|
||||||
temp.status &= ~BROKEN
|
temp.status &= ~ORGAN_BROKEN
|
||||||
temp.status &= ~SPLINTED
|
temp.status &= ~ORGAN_SPLINTED
|
||||||
temp.stage = 0
|
temp.stage = 0
|
||||||
temp.perma_injury = 0
|
temp.perma_injury = 0
|
||||||
temp.brute_dam = temp.min_broken_damage -1
|
temp.brute_dam = temp.min_broken_damage -1
|
||||||
@@ -1820,17 +1820,17 @@ CIRCULAR SAW
|
|||||||
var/mob/living/carbon/human/H = M
|
var/mob/living/carbon/human/H = M
|
||||||
for(var/name in H.organs)
|
for(var/name in H.organs)
|
||||||
var/datum/organ/external/e = H.organs[name]
|
var/datum/organ/external/e = H.organs[name]
|
||||||
if(e.status & DESTROYED) // this is nanites, not space magic
|
if(e.status & ORGAN_DESTROYED) // this is nanites, not space magic
|
||||||
continue
|
continue
|
||||||
e.brute_dam = 0.0
|
e.brute_dam = 0.0
|
||||||
e.burn_dam = 0.0
|
e.burn_dam = 0.0
|
||||||
e.status &= ~BANDAGED
|
e.status &= ~ORGAN_BANDAGED
|
||||||
e.max_damage = initial(e.max_damage)
|
e.max_damage = initial(e.max_damage)
|
||||||
e.status &= ~BLEEDING
|
e.status &= ~ORGAN_BLEEDING
|
||||||
e.open = 0
|
e.open = 0
|
||||||
e.status &= ~BROKEN
|
e.status &= ~ORGAN_BROKEN
|
||||||
e.status &= ~DESTROYED
|
e.status &= ~ORGAN_DESTROYED
|
||||||
e.status &= ~SPLINTED
|
e.status &= ~ORGAN_SPLINTED
|
||||||
e.perma_injury = 0
|
e.perma_injury = 0
|
||||||
e.update_icon()
|
e.update_icon()
|
||||||
H.update_body()
|
H.update_body()
|
||||||
|
|||||||
@@ -327,7 +327,7 @@ WELDINGTOOOL
|
|||||||
/obj/item/weapon/weldingtool/attack(mob/M as mob, mob/user as mob)
|
/obj/item/weapon/weldingtool/attack(mob/M as mob, mob/user as mob)
|
||||||
if(hasorgans(M))
|
if(hasorgans(M))
|
||||||
var/datum/organ/external/S = M:organs[user.zone_sel.selecting]
|
var/datum/organ/external/S = M:organs[user.zone_sel.selecting]
|
||||||
if(!(S.status & ROBOT) || user.a_intent != "help")
|
if(!(S.status & ORGAN_ROBOT) || user.a_intent != "help")
|
||||||
return ..()
|
return ..()
|
||||||
if(S.brute_dam)
|
if(S.brute_dam)
|
||||||
S.heal_damage(15,0,0,1)
|
S.heal_damage(15,0,0,1)
|
||||||
|
|||||||
@@ -266,7 +266,7 @@ SHARDS
|
|||||||
return
|
return
|
||||||
if(!((H.shoes) || (H.wear_suit && H.wear_suit.body_parts_covered & FEET)))
|
if(!((H.shoes) || (H.wear_suit && H.wear_suit.body_parts_covered & FEET)))
|
||||||
var/datum/organ/external/affecting = H.get_organ(pick("l_foot", "r_foot"))
|
var/datum/organ/external/affecting = H.get_organ(pick("l_foot", "r_foot"))
|
||||||
if(affecting.status & ROBOT)
|
if(affecting.status & ORGAN_ROBOT)
|
||||||
return
|
return
|
||||||
H.Weaken(3)
|
H.Weaken(3)
|
||||||
affecting.take_damage(5, 0)
|
affecting.take_damage(5, 0)
|
||||||
|
|||||||
@@ -375,7 +375,7 @@ A list of items and costs is stored under the datum of every game mode, alongsid
|
|||||||
var/obj/item/weapon/implant/uplink/U = src.loc
|
var/obj/item/weapon/implant/uplink/U = src.loc
|
||||||
var/mob/living/A = U.imp_in
|
var/mob/living/A = U.imp_in
|
||||||
var/datum/organ/external/head = A:organs["head"]
|
var/datum/organ/external/head = A:organs["head"]
|
||||||
head.status |= DESTROYED
|
head.status |= ORGAN_DESTROYED
|
||||||
spawn(2)
|
spawn(2)
|
||||||
head.droplimb()
|
head.droplimb()
|
||||||
del(src.master)
|
del(src.master)
|
||||||
|
|||||||
@@ -137,14 +137,14 @@
|
|||||||
if("feet")
|
if("feet")
|
||||||
if(!H.shoes)
|
if(!H.shoes)
|
||||||
affecting = H.get_organ(pick("l_leg", "r_leg"))
|
affecting = H.get_organ(pick("l_leg", "r_leg"))
|
||||||
if(!(affecting.status & ROBOT))
|
if(!(affecting.status & ORGAN_ROBOT))
|
||||||
H.Weaken(3)
|
H.Weaken(3)
|
||||||
if("l_hand", "r_hand")
|
if("l_hand", "r_hand")
|
||||||
if(!H.gloves)
|
if(!H.gloves)
|
||||||
affecting = H.get_organ(type)
|
affecting = H.get_organ(type)
|
||||||
if(!(affecting.status & ROBOT))
|
if(!(affecting.status & ORGAN_ROBOT))
|
||||||
H.Stun(3)
|
H.Stun(3)
|
||||||
if(affecting && !(affecting.status & ROBOT))
|
if(affecting && !(affecting.status & ORGAN_ROBOT))
|
||||||
affecting.take_damage(1, 0)
|
affecting.take_damage(1, 0)
|
||||||
H.UpdateDamageIcon()
|
H.UpdateDamageIcon()
|
||||||
H.updatehealth()
|
H.updatehealth()
|
||||||
|
|||||||
@@ -49,13 +49,13 @@
|
|||||||
if (M.hand)
|
if (M.hand)
|
||||||
if(ishuman(M) || ismonkey(M))
|
if(ishuman(M) || ismonkey(M))
|
||||||
var/datum/organ/external/temp = M:organs["l_hand"]
|
var/datum/organ/external/temp = M:organs["l_hand"]
|
||||||
if(temp.status & DESTROYED)
|
if(temp.status & ORGAN_DESTROYED)
|
||||||
M << "\red Yo- wait a minute."
|
M << "\red Yo- wait a minute."
|
||||||
return
|
return
|
||||||
else
|
else
|
||||||
if(ishuman(M) || ismonkey(M))
|
if(ishuman(M) || ismonkey(M))
|
||||||
var/datum/organ/external/temp = M:organs["r_hand"]
|
var/datum/organ/external/temp = M:organs["r_hand"]
|
||||||
if(temp.status & DESTROYED)
|
if(temp.status & ORGAN_DESTROYED)
|
||||||
M << "\red Yo- wait a minute."
|
M << "\red Yo- wait a minute."
|
||||||
return
|
return
|
||||||
|
|
||||||
@@ -100,13 +100,13 @@
|
|||||||
if (M.hand)
|
if (M.hand)
|
||||||
if(ishuman(M) || ismonkey(M))
|
if(ishuman(M) || ismonkey(M))
|
||||||
var/datum/organ/external/temp = M:organs["l_hand"]
|
var/datum/organ/external/temp = M:organs["l_hand"]
|
||||||
if(temp.status & DESTROYED)
|
if(temp.status & ORGAN_DESTROYED)
|
||||||
M << "\red Yo- wait a minute."
|
M << "\red Yo- wait a minute."
|
||||||
return
|
return
|
||||||
else
|
else
|
||||||
if(ishuman(M) || ismonkey(M))
|
if(ishuman(M) || ismonkey(M))
|
||||||
var/datum/organ/external/temp = M:organs["r_hand"]
|
var/datum/organ/external/temp = M:organs["r_hand"]
|
||||||
if(temp.status & DESTROYED)
|
if(temp.status & ORGAN_DESTROYED)
|
||||||
M << "\red Yo- wait a minute."
|
M << "\red Yo- wait a minute."
|
||||||
return
|
return
|
||||||
|
|
||||||
@@ -224,7 +224,7 @@
|
|||||||
status = "blugeoned"
|
status = "blugeoned"
|
||||||
if(brutedamage > 40)
|
if(brutedamage > 40)
|
||||||
status = "mangled"
|
status = "mangled"
|
||||||
if(org.status & BLEEDING && brutedamage)
|
if(org.status & ORGAN_BLEEDING && brutedamage)
|
||||||
status += ",[burndamage ? "" : " and"] bleeding[burndamage ? "," : ""]"
|
status += ",[burndamage ? "" : " and"] bleeding[burndamage ? "," : ""]"
|
||||||
if(brutedamage > 0 && burndamage > 0)
|
if(brutedamage > 0 && burndamage > 0)
|
||||||
status += " and "
|
status += " and "
|
||||||
@@ -235,7 +235,7 @@
|
|||||||
status += "blistered"
|
status += "blistered"
|
||||||
else if(burndamage > 0)
|
else if(burndamage > 0)
|
||||||
status += "numb"
|
status += "numb"
|
||||||
if(org.status & DESTROYED)
|
if(org.status & ORGAN_DESTROYED)
|
||||||
status = "MISSING!"
|
status = "MISSING!"
|
||||||
|
|
||||||
if(status == "")
|
if(status == "")
|
||||||
|
|||||||
@@ -131,7 +131,7 @@
|
|||||||
//splints
|
//splints
|
||||||
for(var/organ in list("l_leg","r_leg","l_arm","r_arm"))
|
for(var/organ in list("l_leg","r_leg","l_arm","r_arm"))
|
||||||
var/datum/organ/external/o = organs["[organ]"]
|
var/datum/organ/external/o = organs["[organ]"]
|
||||||
if(o.status & SPLINTED)
|
if(o.status & ORGAN_SPLINTED)
|
||||||
msg += "<span class='warning'>[t_He] [t_has] a splint on his [o.getDisplayName()]!</span>\n"
|
msg += "<span class='warning'>[t_He] [t_has] a splint on his [o.getDisplayName()]!</span>\n"
|
||||||
|
|
||||||
//belt
|
//belt
|
||||||
@@ -271,11 +271,11 @@
|
|||||||
for(var/named in organs)
|
for(var/named in organs)
|
||||||
var/datum/organ/external/temp = organs[named]
|
var/datum/organ/external/temp = organs[named]
|
||||||
if(temp)
|
if(temp)
|
||||||
if(temp.status & DESTROYED)
|
if(temp.status & ORGAN_DESTROYED)
|
||||||
is_destroyed["[temp.display_name]"] = 1
|
is_destroyed["[temp.display_name]"] = 1
|
||||||
wound_flavor_text["[temp.display_name]"] = "<span class='warning'><b>[t_He] is missing [t_his] [temp.display_name].</b></span>\n"
|
wound_flavor_text["[temp.display_name]"] = "<span class='warning'><b>[t_He] is missing [t_his] [temp.display_name].</b></span>\n"
|
||||||
continue
|
continue
|
||||||
if(temp.status & ROBOT)
|
if(temp.status & ORGAN_ROBOT)
|
||||||
if(!(temp.brute_dam + temp.burn_dam))
|
if(!(temp.brute_dam + temp.burn_dam))
|
||||||
wound_flavor_text["[temp.display_name]"] = "<span class='warning'>[t_He] has a robot [temp.display_name]!</span>\n"
|
wound_flavor_text["[temp.display_name]"] = "<span class='warning'>[t_He] has a robot [temp.display_name]!</span>\n"
|
||||||
continue
|
continue
|
||||||
@@ -336,7 +336,7 @@
|
|||||||
flavor_text_string += flavor_text[text]
|
flavor_text_string += flavor_text[text]
|
||||||
flavor_text_string += " on [t_his] [named].</span><br>"
|
flavor_text_string += " on [t_his] [named].</span><br>"
|
||||||
wound_flavor_text["[named]"] = flavor_text_string
|
wound_flavor_text["[named]"] = flavor_text_string
|
||||||
if(temp.status & BLEEDING)
|
if(temp.status & ORGAN_BLEEDING)
|
||||||
is_bleeding["[named]"] = 1
|
is_bleeding["[named]"] = 1
|
||||||
else
|
else
|
||||||
wound_flavor_text["[temp.display_name]"] = ""
|
wound_flavor_text["[temp.display_name]"] = ""
|
||||||
|
|||||||
@@ -284,8 +284,8 @@
|
|||||||
|
|
||||||
for(var/organ in list("l_leg","l_foot","r_leg","r_foot"))
|
for(var/organ in list("l_leg","l_foot","r_leg","r_foot"))
|
||||||
var/datum/organ/external/o = organs["[organ]"]
|
var/datum/organ/external/o = organs["[organ]"]
|
||||||
if((o.status & BROKEN) || (o.status & DESTROYED))
|
if((o.status & ORGAN_BROKEN) || (o.status & ORGAN_DESTROYED))
|
||||||
if(o.status & SPLINTED)
|
if(o.status & ORGAN_SPLINTED)
|
||||||
tally += 3
|
tally += 3
|
||||||
else
|
else
|
||||||
tally += 6
|
tally += 6
|
||||||
@@ -780,7 +780,7 @@
|
|||||||
M.show_message(text("\red [] has been hit by []", src, O), 1)
|
M.show_message(text("\red [] has been hit by []", src, O), 1)
|
||||||
if (health > 0)
|
if (health > 0)
|
||||||
var/datum/organ/external/affecting = get_organ(pick("chest", "chest", "chest", "head"))
|
var/datum/organ/external/affecting = get_organ(pick("chest", "chest", "chest", "head"))
|
||||||
if(!affecting || affecting.status & DESTROYED) return
|
if(!affecting || affecting.status & ORGAN_DESTROYED) return
|
||||||
if (istype(O, /obj/effect/immovablerod))
|
if (istype(O, /obj/effect/immovablerod))
|
||||||
affecting.take_damage(101, 0)
|
affecting.take_damage(101, 0)
|
||||||
else
|
else
|
||||||
@@ -969,29 +969,29 @@
|
|||||||
// Gloves
|
// Gloves
|
||||||
var/datum/organ/external/lo = organs["l_hand"]
|
var/datum/organ/external/lo = organs["l_hand"]
|
||||||
var/datum/organ/external/ro = organs["r_hand"]
|
var/datum/organ/external/ro = organs["r_hand"]
|
||||||
if (!(lo.status & DESTROYED && ro.status & DESTROYED))
|
if (!(lo.status & ORGAN_DESTROYED && ro.status & ORGAN_DESTROYED))
|
||||||
if (gloves)
|
if (gloves)
|
||||||
var/t1 = gloves.item_state
|
var/t1 = gloves.item_state
|
||||||
if (!t1)
|
if (!t1)
|
||||||
t1 = gloves.icon_state
|
t1 = gloves.icon_state
|
||||||
var/icon/gloves_icon = new /icon("icon" = 'hands.dmi', "icon_state" = text("[][]", t1, (!( lying ) ? null : "2")))
|
var/icon/gloves_icon = new /icon("icon" = 'hands.dmi', "icon_state" = text("[][]", t1, (!( lying ) ? null : "2")))
|
||||||
if(lo.status & DESTROYED)
|
if(lo.status & ORGAN_DESTROYED)
|
||||||
gloves_icon.Blend(new /icon('limb_mask.dmi', "right_[lying?"l":"s"]"), ICON_MULTIPLY)
|
gloves_icon.Blend(new /icon('limb_mask.dmi', "right_[lying?"l":"s"]"), ICON_MULTIPLY)
|
||||||
if(ro.status & DESTROYED)
|
if(ro.status & ORGAN_DESTROYED)
|
||||||
gloves_icon.Blend(new /icon('limb_mask.dmi', "left_[lying?"l":"s"]"), ICON_MULTIPLY)
|
gloves_icon.Blend(new /icon('limb_mask.dmi', "left_[lying?"l":"s"]"), ICON_MULTIPLY)
|
||||||
clothing_overlays += image(gloves_icon, "layer" = GLOVES_LAYER)
|
clothing_overlays += image(gloves_icon, "layer" = GLOVES_LAYER)
|
||||||
if (gloves.blood_DNA)
|
if (gloves.blood_DNA)
|
||||||
var/icon/stain_icon = icon('blood.dmi', "bloodyhands[!lying ? "" : "2"]")
|
var/icon/stain_icon = icon('blood.dmi', "bloodyhands[!lying ? "" : "2"]")
|
||||||
if(lo.status & DESTROYED)
|
if(lo.status & ORGAN_DESTROYED)
|
||||||
stain_icon.Blend(new /icon('limb_mask.dmi', "right_[lying?"l":"s"]"), ICON_MULTIPLY)
|
stain_icon.Blend(new /icon('limb_mask.dmi', "right_[lying?"l":"s"]"), ICON_MULTIPLY)
|
||||||
else if(ro.status & DESTROYED)
|
else if(ro.status & ORGAN_DESTROYED)
|
||||||
stain_icon.Blend(new /icon('limb_mask.dmi', "left_[lying?"l":"s"]"), ICON_MULTIPLY)
|
stain_icon.Blend(new /icon('limb_mask.dmi', "left_[lying?"l":"s"]"), ICON_MULTIPLY)
|
||||||
clothing_overlays += image("icon" = stain_icon, "layer" = B_GLOVES_LAYER)
|
clothing_overlays += image("icon" = stain_icon, "layer" = B_GLOVES_LAYER)
|
||||||
else if (blood_DNA)
|
else if (blood_DNA)
|
||||||
var/icon/stain_icon = icon('blood.dmi', "bloodyhands[!lying ? "" : "2"]")
|
var/icon/stain_icon = icon('blood.dmi', "bloodyhands[!lying ? "" : "2"]")
|
||||||
if(lo.status & DESTROYED)
|
if(lo.status & ORGAN_DESTROYED)
|
||||||
stain_icon.Blend(new /icon('limb_mask.dmi', "right_[lying?"l":"s"]"), ICON_MULTIPLY)
|
stain_icon.Blend(new /icon('limb_mask.dmi', "right_[lying?"l":"s"]"), ICON_MULTIPLY)
|
||||||
else if(ro.status & DESTROYED)
|
else if(ro.status & ORGAN_DESTROYED)
|
||||||
stain_icon.Blend(new /icon('limb_mask.dmi', "left_[lying?"l":"s"]"), ICON_MULTIPLY)
|
stain_icon.Blend(new /icon('limb_mask.dmi', "left_[lying?"l":"s"]"), ICON_MULTIPLY)
|
||||||
clothing_overlays += image("icon" = stain_icon, "layer" = B_GLOVES_LAYER)
|
clothing_overlays += image("icon" = stain_icon, "layer" = B_GLOVES_LAYER)
|
||||||
|
|
||||||
@@ -1011,19 +1011,19 @@
|
|||||||
// Shoes
|
// Shoes
|
||||||
lo = organs["l_foot"]
|
lo = organs["l_foot"]
|
||||||
ro = organs["r_foot"]
|
ro = organs["r_foot"]
|
||||||
if (!(lo.status & DESTROYED && ro.status & DESTROYED) && shoes)
|
if (!(lo.status & ORGAN_DESTROYED && ro.status & ORGAN_DESTROYED) && shoes)
|
||||||
var/t1 = shoes.icon_state
|
var/t1 = shoes.icon_state
|
||||||
var/icon/shoes_icon = new /icon("icon" = 'feet.dmi', "icon_state" = text("[][]", t1, (!( lying ) ? null : "2")))
|
var/icon/shoes_icon = new /icon("icon" = 'feet.dmi', "icon_state" = text("[][]", t1, (!( lying ) ? null : "2")))
|
||||||
if(lo.status & DESTROYED && !lying)
|
if(lo.status & ORGAN_DESTROYED && !lying)
|
||||||
shoes_icon.Blend(new /icon('limb_mask.dmi', "right[lying?"_l":""]"), ICON_MULTIPLY)
|
shoes_icon.Blend(new /icon('limb_mask.dmi', "right[lying?"_l":""]"), ICON_MULTIPLY)
|
||||||
else if(ro.status & DESTROYED && !lying)
|
else if(ro.status & ORGAN_DESTROYED && !lying)
|
||||||
shoes_icon.Blend(new /icon('limb_mask.dmi', "left[lying?"_l":""]"), ICON_MULTIPLY)
|
shoes_icon.Blend(new /icon('limb_mask.dmi', "left[lying?"_l":""]"), ICON_MULTIPLY)
|
||||||
clothing_overlays += image(shoes_icon, "layer" = SHOES_LAYER)
|
clothing_overlays += image(shoes_icon, "layer" = SHOES_LAYER)
|
||||||
if (shoes.blood_DNA)
|
if (shoes.blood_DNA)
|
||||||
var/icon/stain_icon = icon('blood.dmi', "shoeblood[!lying ? "" : "2"]")
|
var/icon/stain_icon = icon('blood.dmi', "shoeblood[!lying ? "" : "2"]")
|
||||||
if(lo.status & DESTROYED)
|
if(lo.status & ORGAN_DESTROYED)
|
||||||
stain_icon.Blend(new /icon('limb_mask.dmi', "right_[lying?"l":"s"]"), ICON_MULTIPLY)
|
stain_icon.Blend(new /icon('limb_mask.dmi', "right_[lying?"l":"s"]"), ICON_MULTIPLY)
|
||||||
else if(ro.status & DESTROYED)
|
else if(ro.status & ORGAN_DESTROYED)
|
||||||
stain_icon.Blend(new /icon('limb_mask.dmi', "left_[lying?"l":"s"]"), ICON_MULTIPLY)
|
stain_icon.Blend(new /icon('limb_mask.dmi', "left_[lying?"l":"s"]"), ICON_MULTIPLY)
|
||||||
clothing_overlays += image("icon" = stain_icon, "layer" = B_SHOES_LAYER) // Radio
|
clothing_overlays += image("icon" = stain_icon, "layer" = B_SHOES_LAYER) // Radio
|
||||||
|
|
||||||
@@ -1102,7 +1102,7 @@
|
|||||||
// Splints
|
// Splints
|
||||||
for(var/organ in list("l_leg","r_leg","l_arm","r_arm"))
|
for(var/organ in list("l_leg","r_leg","l_arm","r_arm"))
|
||||||
var/datum/organ/external/o = organs["[organ]"]
|
var/datum/organ/external/o = organs["[organ]"]
|
||||||
if (o.status & SPLINTED)
|
if (o.status & ORGAN_SPLINTED)
|
||||||
if (!lying)
|
if (!lying)
|
||||||
clothing_overlays += image("icon" = 'mob.dmi', "icon_state" = "[o]_splint", "layer" = CUFFED_LAYER)
|
clothing_overlays += image("icon" = 'mob.dmi', "icon_state" = "[o]_splint", "layer" = CUFFED_LAYER)
|
||||||
else
|
else
|
||||||
@@ -1419,7 +1419,7 @@
|
|||||||
lying_icon.Blend(new /icon('human.dmi', "chest_[g]_l"), ICON_OVERLAY)
|
lying_icon.Blend(new /icon('human.dmi', "chest_[g]_l"), ICON_OVERLAY)
|
||||||
|
|
||||||
var/datum/organ/external/head = organs["head"]
|
var/datum/organ/external/head = organs["head"]
|
||||||
if(!(head.status & DESTROYED))
|
if(!(head.status & ORGAN_DESTROYED))
|
||||||
stand_icon.Blend(new /icon('human.dmi', "head_[g]_s"), ICON_OVERLAY)
|
stand_icon.Blend(new /icon('human.dmi', "head_[g]_s"), ICON_OVERLAY)
|
||||||
lying_icon.Blend(new /icon('human.dmi', "head_[g]_l"), ICON_OVERLAY)
|
lying_icon.Blend(new /icon('human.dmi', "head_[g]_l"), ICON_OVERLAY)
|
||||||
|
|
||||||
@@ -1428,12 +1428,12 @@
|
|||||||
if(!istype(part, /datum/organ/external/groin) \
|
if(!istype(part, /datum/organ/external/groin) \
|
||||||
&& !istype(part, /datum/organ/external/chest) \
|
&& !istype(part, /datum/organ/external/chest) \
|
||||||
&& !istype(part, /datum/organ/external/head) \
|
&& !istype(part, /datum/organ/external/head) \
|
||||||
&& !(part.status & DESTROYED))
|
&& !(part.status & ORGAN_DESTROYED))
|
||||||
var/icon/temp = new /icon('human.dmi', "[part.icon_name]_s")
|
var/icon/temp = new /icon('human.dmi', "[part.icon_name]_s")
|
||||||
if(part.status & ROBOT) temp.MapColors(rgb(77,77,77), rgb(150,150,150), rgb(28,28,28), rgb(0,0,0))
|
if(part.status & ORGAN_ROBOT) temp.MapColors(rgb(77,77,77), rgb(150,150,150), rgb(28,28,28), rgb(0,0,0))
|
||||||
stand_icon.Blend(temp, ICON_OVERLAY)
|
stand_icon.Blend(temp, ICON_OVERLAY)
|
||||||
temp = new /icon('human.dmi', "[part.icon_name]_l")
|
temp = new /icon('human.dmi', "[part.icon_name]_l")
|
||||||
if(part.status & ROBOT) temp.MapColors(rgb(77,77,77), rgb(150,150,150), rgb(28,28,28), rgb(0,0,0))
|
if(part.status & ORGAN_ROBOT) temp.MapColors(rgb(77,77,77), rgb(150,150,150), rgb(28,28,28), rgb(0,0,0))
|
||||||
lying_icon.Blend(temp , ICON_OVERLAY)
|
lying_icon.Blend(temp , ICON_OVERLAY)
|
||||||
|
|
||||||
stand_icon.Blend(new /icon('human.dmi', "groin_[g]_s"), ICON_OVERLAY)
|
stand_icon.Blend(new /icon('human.dmi', "groin_[g]_s"), ICON_OVERLAY)
|
||||||
@@ -1473,7 +1473,7 @@
|
|||||||
if(!istype(part, /datum/organ/external/groin) \
|
if(!istype(part, /datum/organ/external/groin) \
|
||||||
&& !istype(part, /datum/organ/external/chest) \
|
&& !istype(part, /datum/organ/external/chest) \
|
||||||
&& !istype(part, /datum/organ/external/head) \
|
&& !istype(part, /datum/organ/external/head) \
|
||||||
&& (part.status & DESTROYED))
|
&& (part.status & ORGAN_DESTROYED))
|
||||||
husk_s.Blend(new /icon('dam_mask.dmi', "[part.icon_name]"), ICON_SUBTRACT)
|
husk_s.Blend(new /icon('dam_mask.dmi', "[part.icon_name]"), ICON_SUBTRACT)
|
||||||
husk_l.Blend(new /icon('dam_mask.dmi', "[part.icon_name]2"), ICON_SUBTRACT)
|
husk_l.Blend(new /icon('dam_mask.dmi', "[part.icon_name]2"), ICON_SUBTRACT)
|
||||||
|
|
||||||
@@ -1503,7 +1503,7 @@
|
|||||||
if(organs)
|
if(organs)
|
||||||
var/datum/organ/external/head = organs["head"]
|
var/datum/organ/external/head = organs["head"]
|
||||||
if(head)
|
if(head)
|
||||||
if(head.status & DESTROYED)
|
if(head.status & ORGAN_DESTROYED)
|
||||||
del(face_standing)
|
del(face_standing)
|
||||||
del(face_lying)
|
del(face_lying)
|
||||||
return
|
return
|
||||||
@@ -1627,7 +1627,7 @@
|
|||||||
var/count = 0
|
var/count = 0
|
||||||
for(var/organ in list("l_leg","r_leg","l_arm","r_arm"))
|
for(var/organ in list("l_leg","r_leg","l_arm","r_arm"))
|
||||||
var/datum/organ/external/o = target.organs["[organ]"]
|
var/datum/organ/external/o = target.organs["[organ]"]
|
||||||
if(o.status & SPLINTED)
|
if(o.status & ORGAN_SPLINTED)
|
||||||
count = 1
|
count = 1
|
||||||
break
|
break
|
||||||
if(count == 0)
|
if(count == 0)
|
||||||
@@ -2230,9 +2230,9 @@ It can still be worn/put on as normal.
|
|||||||
if("splints")
|
if("splints")
|
||||||
for(var/organ in list("l_leg","r_leg","l_arm","r_arm"))
|
for(var/organ in list("l_leg","r_leg","l_arm","r_arm"))
|
||||||
var/datum/organ/external/o = target.organs["[organ]"]
|
var/datum/organ/external/o = target.organs["[organ]"]
|
||||||
if (o.status & SPLINTED)
|
if (o.status & ORGAN_SPLINTED)
|
||||||
var/obj/item/W = new /obj/item/stack/medical/splint/single()
|
var/obj/item/W = new /obj/item/stack/medical/splint/single()
|
||||||
o.status &= ~SPLINTED
|
o.status &= ~ORGAN_SPLINTED
|
||||||
if (W)
|
if (W)
|
||||||
W.loc = target.loc
|
W.loc = target.loc
|
||||||
W.layer = initial(W.layer)
|
W.layer = initial(W.layer)
|
||||||
@@ -2651,7 +2651,7 @@ It can still be worn/put on as normal.
|
|||||||
var/amount = 0.0
|
var/amount = 0.0
|
||||||
for(var/name in organs)
|
for(var/name in organs)
|
||||||
var/datum/organ/external/O = organs[name]
|
var/datum/organ/external/O = organs[name]
|
||||||
if(!(O.status & ROBOT)) amount+= O.brute_dam
|
if(!(O.status & ORGAN_ROBOT)) amount+= O.brute_dam
|
||||||
return amount
|
return amount
|
||||||
|
|
||||||
/mob/living/carbon/human/adjustBruteLoss(var/amount, var/used_weapon = null)
|
/mob/living/carbon/human/adjustBruteLoss(var/amount, var/used_weapon = null)
|
||||||
@@ -2664,7 +2664,7 @@ It can still be worn/put on as normal.
|
|||||||
var/amount = 0.0
|
var/amount = 0.0
|
||||||
for(var/name in organs)
|
for(var/name in organs)
|
||||||
var/datum/organ/external/O = organs[name]
|
var/datum/organ/external/O = organs[name]
|
||||||
if(!(O.status & ROBOT)) amount+= O.burn_dam
|
if(!(O.status & ORGAN_ROBOT)) amount+= O.burn_dam
|
||||||
return amount
|
return amount
|
||||||
|
|
||||||
/mob/living/carbon/human/adjustFireLoss(var/amount,var/used_weapon = null)
|
/mob/living/carbon/human/adjustFireLoss(var/amount,var/used_weapon = null)
|
||||||
|
|||||||
@@ -26,7 +26,7 @@
|
|||||||
|
|
||||||
for(var/name in organs)
|
for(var/name in organs)
|
||||||
var/datum/organ/external/O = organs[name]
|
var/datum/organ/external/O = organs[name]
|
||||||
if(O.status & DESTROYED) damage_appearance += "d"
|
if(O.status & ORGAN_DESTROYED) damage_appearance += "d"
|
||||||
else
|
else
|
||||||
damage_appearance += O.damage_state
|
damage_appearance += O.damage_state
|
||||||
|
|
||||||
@@ -41,7 +41,7 @@
|
|||||||
|
|
||||||
for(var/name in organs)
|
for(var/name in organs)
|
||||||
var/datum/organ/external/O = organs[name]
|
var/datum/organ/external/O = organs[name]
|
||||||
if(!(O.status & DESTROYED))
|
if(!(O.status & ORGAN_DESTROYED))
|
||||||
O.update_icon()
|
O.update_icon()
|
||||||
var/icon/DI = new /icon('dam_human.dmi', O.damage_state) // the damage icon for whole human
|
var/icon/DI = new /icon('dam_human.dmi', O.damage_state) // the damage icon for whole human
|
||||||
DI.Blend(new /icon('dam_mask.dmi', O.icon_name), ICON_MULTIPLY) // mask with this organ's pixels
|
DI.Blend(new /icon('dam_mask.dmi', O.icon_name), ICON_MULTIPLY) // mask with this organ's pixels
|
||||||
@@ -68,7 +68,7 @@
|
|||||||
else
|
else
|
||||||
if(!def_zone) def_zone = ran_zone(def_zone)
|
if(!def_zone) def_zone = ran_zone(def_zone)
|
||||||
organ = get_organ(check_zone(def_zone))
|
organ = get_organ(check_zone(def_zone))
|
||||||
if(!organ || organ.status & DESTROYED) return 0
|
if(!organ || organ.status & ORGAN_DESTROYED) return 0
|
||||||
if(blocked)
|
if(blocked)
|
||||||
damage = (damage/(blocked+1))
|
damage = (damage/(blocked+1))
|
||||||
|
|
||||||
|
|||||||
@@ -110,7 +110,7 @@ emp_act
|
|||||||
O.emp_act(severity)
|
O.emp_act(severity)
|
||||||
for(var/named in organs)
|
for(var/named in organs)
|
||||||
var/datum/organ/external/O = organs[named]
|
var/datum/organ/external/O = organs[named]
|
||||||
if(O.status & DESTROYED) continue
|
if(O.status & ORGAN_DESTROYED) continue
|
||||||
O.emp_act(severity)
|
O.emp_act(severity)
|
||||||
..()
|
..()
|
||||||
|
|
||||||
@@ -125,7 +125,7 @@ emp_act
|
|||||||
if((user != src) && check_shields(I.force, "the [I.name]"))
|
if((user != src) && check_shields(I.force, "the [I.name]"))
|
||||||
return 0
|
return 0
|
||||||
|
|
||||||
if(!(affecting.status & DESTROYED))
|
if(!(affecting.status & ORGAN_DESTROYED))
|
||||||
visible_message("\red <B>[src] has been attacked in the [hit_area] with [I.name] by [user]!</B>")
|
visible_message("\red <B>[src] has been attacked in the [hit_area] with [I.name] by [user]!</B>")
|
||||||
else
|
else
|
||||||
user << "What [affecting]?"
|
user << "What [affecting]?"
|
||||||
|
|||||||
@@ -904,7 +904,7 @@
|
|||||||
for(var/name in organs)
|
for(var/name in organs)
|
||||||
var/datum/organ/external/E = organs[name]
|
var/datum/organ/external/E = organs[name]
|
||||||
E.process()
|
E.process()
|
||||||
if(E.status & ROBOT && prob(E.brute_dam + E.burn_dam))
|
if(E.status & ORGAN_ROBOT && prob(E.brute_dam + E.burn_dam))
|
||||||
if(E.name == "l_hand" || E.name == "l_arm")
|
if(E.name == "l_hand" || E.name == "l_arm")
|
||||||
if(hand && equipped())
|
if(hand && equipped())
|
||||||
drop_item()
|
drop_item()
|
||||||
@@ -928,10 +928,10 @@
|
|||||||
else if(E.name == "l_leg" || E.name == "l_foot" \
|
else if(E.name == "l_leg" || E.name == "l_foot" \
|
||||||
|| E.name == "r_leg" || E.name == "r_foot" && !lying)
|
|| E.name == "r_leg" || E.name == "r_foot" && !lying)
|
||||||
leg_tally-- // let it fail even if just foot&leg
|
leg_tally-- // let it fail even if just foot&leg
|
||||||
if(E.status & BROKEN || E.status & DESTROYED)
|
if(E.status & ORGAN_BROKEN || E.status & ORGAN_DESTROYED)
|
||||||
if(E.name == "l_hand" || E.name == "l_arm")
|
if(E.name == "l_hand" || E.name == "l_arm")
|
||||||
if(hand && equipped())
|
if(hand && equipped())
|
||||||
if(E.status & SPLINTED && prob(10))
|
if(E.status & ORGAN_SPLINTED && prob(10))
|
||||||
drop_item()
|
drop_item()
|
||||||
emote("scream")
|
emote("scream")
|
||||||
else
|
else
|
||||||
@@ -939,7 +939,7 @@
|
|||||||
emote("scream")
|
emote("scream")
|
||||||
else if(E.name == "r_hand" || E.name == "r_arm")
|
else if(E.name == "r_hand" || E.name == "r_arm")
|
||||||
if(!hand && equipped())
|
if(!hand && equipped())
|
||||||
if(E.status & SPLINTED && prob(10))
|
if(E.status & ORGAN_SPLINTED && prob(10))
|
||||||
drop_item()
|
drop_item()
|
||||||
emote("scream")
|
emote("scream")
|
||||||
else
|
else
|
||||||
@@ -947,7 +947,7 @@
|
|||||||
emote("scream")
|
emote("scream")
|
||||||
else if(E.name == "l_leg" || E.name == "l_foot" \
|
else if(E.name == "l_leg" || E.name == "l_foot" \
|
||||||
|| E.name == "r_leg" || E.name == "r_foot" && !lying)
|
|| E.name == "r_leg" || E.name == "r_foot" && !lying)
|
||||||
if(!(E.status & SPLINTED))
|
if(!(E.status & ORGAN_SPLINTED))
|
||||||
leg_tally-- // let it fail even if just foot&leg
|
leg_tally-- // let it fail even if just foot&leg
|
||||||
// can't stand
|
// can't stand
|
||||||
if(leg_tally == 0 && !paralysis && !(lying || resting))
|
if(leg_tally == 0 && !paralysis && !(lying || resting))
|
||||||
@@ -1097,10 +1097,10 @@
|
|||||||
var/blood_max = 0
|
var/blood_max = 0
|
||||||
for(var/name in organs)
|
for(var/name in organs)
|
||||||
var/datum/organ/external/temp = organs[name]
|
var/datum/organ/external/temp = organs[name]
|
||||||
if(!(temp.status & BLEEDING) || temp.status & ROBOT)
|
if(!(temp.status & ORGAN_BLEEDING) || temp.status & ORGAN_ROBOT)
|
||||||
continue
|
continue
|
||||||
blood_max += 2
|
blood_max += 2
|
||||||
if(temp.status & DESTROYED && !(temp.status & GAUZED))
|
if(temp.status & ORGAN_DESTROYED && !(temp.status & ORGAN_GAUZED))
|
||||||
blood_max += 10 //Yer missing a fucking limb.
|
blood_max += 10 //Yer missing a fucking limb.
|
||||||
drip(blood_max)
|
drip(blood_max)
|
||||||
if (eye_blind)
|
if (eye_blind)
|
||||||
|
|||||||
@@ -27,11 +27,11 @@
|
|||||||
for(var/named in organs)
|
for(var/named in organs)
|
||||||
var/datum/organ/external/temp = organs[named]
|
var/datum/organ/external/temp = organs[named]
|
||||||
if(temp)
|
if(temp)
|
||||||
if(temp.status & DESTROYED)
|
if(temp.status & ORGAN_DESTROYED)
|
||||||
is_destroyed["[temp.display_name]"] = 1
|
is_destroyed["[temp.display_name]"] = 1
|
||||||
wound_flavor_text["[temp.display_name]"] = "<span class='warning'><b>It is missing its [temp.display_name].</b></span>\n"
|
wound_flavor_text["[temp.display_name]"] = "<span class='warning'><b>It is missing its [temp.display_name].</b></span>\n"
|
||||||
continue
|
continue
|
||||||
if(temp.status & ROBOT)
|
if(temp.status & ORGAN_ROBOT)
|
||||||
if(!(temp.brute_dam + temp.burn_dam))
|
if(!(temp.brute_dam + temp.burn_dam))
|
||||||
wound_flavor_text["[temp.display_name]"] = "<span class='warning'>It has a robot [temp.display_name]!</span>\n"
|
wound_flavor_text["[temp.display_name]"] = "<span class='warning'>It has a robot [temp.display_name]!</span>\n"
|
||||||
continue
|
continue
|
||||||
|
|||||||
@@ -431,10 +431,10 @@
|
|||||||
for(var/name in organs)
|
for(var/name in organs)
|
||||||
var/datum/organ/external/E = organs[name]
|
var/datum/organ/external/E = organs[name]
|
||||||
E.process()
|
E.process()
|
||||||
if(E.status & BROKEN || E.status & DESTROYED)
|
if(E.status & ORGAN_BROKEN || E.status & ORGAN_DESTROYED)
|
||||||
if(E.name == "l_hand" || E.name == "l_arm")
|
if(E.name == "l_hand" || E.name == "l_arm")
|
||||||
if(hand && equipped())
|
if(hand && equipped())
|
||||||
if(E.status & SPLINTED && prob(7))
|
if(E.status & ORGAN_SPLINTED && prob(7))
|
||||||
drop_item()
|
drop_item()
|
||||||
emote("scream")
|
emote("scream")
|
||||||
else
|
else
|
||||||
@@ -442,7 +442,7 @@
|
|||||||
emote("scream")
|
emote("scream")
|
||||||
else if(E.name == "r_hand" || E.name == "r_arm")
|
else if(E.name == "r_hand" || E.name == "r_arm")
|
||||||
if(!hand && equipped())
|
if(!hand && equipped())
|
||||||
if(E.status & SPLINTED && prob(7))
|
if(E.status & ORGAN_SPLINTED && prob(7))
|
||||||
drop_item()
|
drop_item()
|
||||||
emote("scream")
|
emote("scream")
|
||||||
else
|
else
|
||||||
@@ -450,7 +450,7 @@
|
|||||||
emote("scream")
|
emote("scream")
|
||||||
else if(E.name == "l_leg" || E.name == "l_foot" \
|
else if(E.name == "l_leg" || E.name == "l_foot" \
|
||||||
|| E.name == "r_leg" || E.name == "r_foot" && !lying)
|
|| E.name == "r_leg" || E.name == "r_foot" && !lying)
|
||||||
if(!(E.status & SPLINTED))
|
if(!(E.status & ORGAN_SPLINTED))
|
||||||
leg_tally-- // let it fail even if just foot&leg
|
leg_tally-- // let it fail even if just foot&leg
|
||||||
|
|
||||||
// can't stand
|
// can't stand
|
||||||
|
|||||||
@@ -585,7 +585,7 @@
|
|||||||
lying_icon.Blend(new /icon('monkey.dmi', "chest_l"), ICON_OVERLAY)
|
lying_icon.Blend(new /icon('monkey.dmi', "chest_l"), ICON_OVERLAY)
|
||||||
|
|
||||||
var/datum/organ/external/head = organs["head"]
|
var/datum/organ/external/head = organs["head"]
|
||||||
if(!(head.status & DESTROYED))
|
if(!(head.status & ORGAN_DESTROYED))
|
||||||
stand_icon.Blend(new /icon('monkey.dmi', "head_s"), ICON_OVERLAY)
|
stand_icon.Blend(new /icon('monkey.dmi', "head_s"), ICON_OVERLAY)
|
||||||
lying_icon.Blend(new /icon('monkey.dmi', "head_l"), ICON_OVERLAY)
|
lying_icon.Blend(new /icon('monkey.dmi', "head_l"), ICON_OVERLAY)
|
||||||
|
|
||||||
@@ -594,12 +594,12 @@
|
|||||||
if(!istype(part, /datum/organ/external/groin) \
|
if(!istype(part, /datum/organ/external/groin) \
|
||||||
&& !istype(part, /datum/organ/external/chest) \
|
&& !istype(part, /datum/organ/external/chest) \
|
||||||
&& !istype(part, /datum/organ/external/head) \
|
&& !istype(part, /datum/organ/external/head) \
|
||||||
&& !(part.status & DESTROYED))
|
&& !(part.status & ORGAN_DESTROYED))
|
||||||
var/icon/temp = new /icon('monkey.dmi', "[part.icon_name]_s")
|
var/icon/temp = new /icon('monkey.dmi', "[part.icon_name]_s")
|
||||||
if(part.status & ROBOT) temp.MapColors(rgb(77,77,77), rgb(150,150,150), rgb(28,28,28), rgb(0,0,0))
|
if(part.status & ORGAN_ROBOT) temp.MapColors(rgb(77,77,77), rgb(150,150,150), rgb(28,28,28), rgb(0,0,0))
|
||||||
stand_icon.Blend(temp, ICON_OVERLAY)
|
stand_icon.Blend(temp, ICON_OVERLAY)
|
||||||
temp = new /icon('monkey.dmi', "[part.icon_name]_l")
|
temp = new /icon('monkey.dmi', "[part.icon_name]_l")
|
||||||
if(part.status & ROBOT) temp.MapColors(rgb(77,77,77), rgb(150,150,150), rgb(28,28,28), rgb(0,0,0))
|
if(part.status & ORGAN_ROBOT) temp.MapColors(rgb(77,77,77), rgb(150,150,150), rgb(28,28,28), rgb(0,0,0))
|
||||||
lying_icon.Blend(temp , ICON_OVERLAY)
|
lying_icon.Blend(temp , ICON_OVERLAY)
|
||||||
|
|
||||||
stand_icon.Blend(new /icon('monkey.dmi', "groin_s"), ICON_OVERLAY)
|
stand_icon.Blend(new /icon('monkey.dmi', "groin_s"), ICON_OVERLAY)
|
||||||
@@ -743,7 +743,7 @@
|
|||||||
var/count = 0
|
var/count = 0
|
||||||
for(var/organ in list("l_leg","r_leg","l_arm","r_arm"))
|
for(var/organ in list("l_leg","r_leg","l_arm","r_arm"))
|
||||||
var/datum/organ/external/o = target.organs["[organ]"]
|
var/datum/organ/external/o = target.organs["[organ]"]
|
||||||
if(o.status & SPLINTED)
|
if(o.status & ORGAN_SPLINTED)
|
||||||
count = 1
|
count = 1
|
||||||
break
|
break
|
||||||
if(count == 0)
|
if(count == 0)
|
||||||
@@ -890,9 +890,9 @@
|
|||||||
if("splints")
|
if("splints")
|
||||||
for(var/organ in list("l_leg","r_leg","l_arm","r_arm"))
|
for(var/organ in list("l_leg","r_leg","l_arm","r_arm"))
|
||||||
var/datum/organ/external/o = target.organs["[organ]"]
|
var/datum/organ/external/o = target.organs["[organ]"]
|
||||||
if (o.status & SPLINTED)
|
if (o.status & ORGAN_SPLINTED)
|
||||||
var/obj/item/W = new /obj/item/stack/medical/splint/single()
|
var/obj/item/W = new /obj/item/stack/medical/splint/single()
|
||||||
o.status &= ~SPLINTED
|
o.status &= ~ORGAN_SPLINTED
|
||||||
if (W)
|
if (W)
|
||||||
W.loc = target.loc
|
W.loc = target.loc
|
||||||
W.layer = initial(W.layer)
|
W.layer = initial(W.layer)
|
||||||
@@ -937,7 +937,7 @@
|
|||||||
else
|
else
|
||||||
if(!def_zone) def_zone = ran_zone(def_zone)
|
if(!def_zone) def_zone = ran_zone(def_zone)
|
||||||
organ = get_organ(check_zone(def_zone))
|
organ = get_organ(check_zone(def_zone))
|
||||||
if(!organ || organ.status & DESTROYED) return 0
|
if(!organ || organ.status & ORGAN_DESTROYED) return 0
|
||||||
if(blocked)
|
if(blocked)
|
||||||
damage = (damage/(blocked+1))
|
damage = (damage/(blocked+1))
|
||||||
|
|
||||||
@@ -1060,7 +1060,7 @@
|
|||||||
var/amount = 0.0
|
var/amount = 0.0
|
||||||
for(var/name in organs)
|
for(var/name in organs)
|
||||||
var/datum/organ/external/O = organs[name]
|
var/datum/organ/external/O = organs[name]
|
||||||
if(!(O.status & ROBOT)) amount+= O.brute_dam
|
if(!(O.status & ORGAN_ROBOT)) amount+= O.brute_dam
|
||||||
return amount
|
return amount
|
||||||
|
|
||||||
/mob/living/carbon/monkey/adjustBruteLoss(var/amount, var/used_weapon = null)
|
/mob/living/carbon/monkey/adjustBruteLoss(var/amount, var/used_weapon = null)
|
||||||
@@ -1073,7 +1073,7 @@
|
|||||||
var/amount = 0.0
|
var/amount = 0.0
|
||||||
for(var/name in organs)
|
for(var/name in organs)
|
||||||
var/datum/organ/external/O = organs[name]
|
var/datum/organ/external/O = organs[name]
|
||||||
if(!(O.status & ROBOT)) amount+= O.burn_dam
|
if(!(O.status & ORGAN_ROBOT)) amount+= O.burn_dam
|
||||||
return amount
|
return amount
|
||||||
|
|
||||||
/mob/living/carbon/monkey/adjustFireLoss(var/amount,var/used_weapon = null)
|
/mob/living/carbon/monkey/adjustFireLoss(var/amount,var/used_weapon = null)
|
||||||
|
|||||||
@@ -22,11 +22,11 @@
|
|||||||
var/mob/living/carbon/human/M = src
|
var/mob/living/carbon/human/M = src
|
||||||
for(var/name in M.organs)
|
for(var/name in M.organs)
|
||||||
var/datum/organ/external/organ = M.organs[name]
|
var/datum/organ/external/organ = M.organs[name]
|
||||||
if((organ.status & DESTROYED) && !organ.amputated)
|
if((organ.status & ORGAN_DESTROYED) && !organ.amputated)
|
||||||
src.traumatic_shock += 60
|
src.traumatic_shock += 60
|
||||||
else if(organ.status & BROKEN || organ.open)
|
else if(organ.status & ORGAN_BROKEN || organ.open)
|
||||||
src.traumatic_shock += 30
|
src.traumatic_shock += 30
|
||||||
if(organ.status & SPLINTED)
|
if(organ.status & ORGAN_SPLINTED)
|
||||||
src.traumatic_shock -= 20
|
src.traumatic_shock -= 20
|
||||||
|
|
||||||
if(src.traumatic_shock < 0)
|
if(src.traumatic_shock < 0)
|
||||||
|
|||||||
@@ -181,9 +181,9 @@
|
|||||||
affecting = H.organs[A]
|
affecting = H.organs[A]
|
||||||
if(!istype(affecting, /datum/organ/external)) continue
|
if(!istype(affecting, /datum/organ/external)) continue
|
||||||
affecting.heal_damage(1000, 1000) //fixes getting hit after ingestion, killing you when game updates organ health
|
affecting.heal_damage(1000, 1000) //fixes getting hit after ingestion, killing you when game updates organ health
|
||||||
affecting.status &= ~BROKEN
|
affecting.status &= ~ORGAN_BROKEN
|
||||||
affecting.status &= ~SPLINTED
|
affecting.status &= ~ORGAN_SPLINTED
|
||||||
affecting.status &= ~DESTROYED
|
affecting.status &= ~ORGAN_DESTROYED
|
||||||
del affecting.wound_descs
|
del affecting.wound_descs
|
||||||
H.UpdateDamageIcon()
|
H.UpdateDamageIcon()
|
||||||
H.update_body()
|
H.update_body()
|
||||||
@@ -209,13 +209,13 @@
|
|||||||
var/datum/organ/external/e = H.organs[name]
|
var/datum/organ/external/e = H.organs[name]
|
||||||
e.brute_dam = 0.0
|
e.brute_dam = 0.0
|
||||||
e.burn_dam = 0.0
|
e.burn_dam = 0.0
|
||||||
e.status &= ~BANDAGED
|
e.status &= ~ORGAN_BANDAGED
|
||||||
e.max_damage = initial(e.max_damage)
|
e.max_damage = initial(e.max_damage)
|
||||||
e.status &= ~BLEEDING
|
e.status &= ~ORGAN_BLEEDING
|
||||||
e.open = 0
|
e.open = 0
|
||||||
e.status &= ~BROKEN
|
e.status &= ~ORGAN_BROKEN
|
||||||
e.status &= ~SPLINTED
|
e.status &= ~ORGAN_SPLINTED
|
||||||
e.status &= ~DESTROYED
|
e.status &= ~ORGAN_DESTROYED
|
||||||
e.perma_injury = 0
|
e.perma_injury = 0
|
||||||
e.update_icon()
|
e.update_icon()
|
||||||
del e.wound_descs
|
del e.wound_descs
|
||||||
|
|||||||
@@ -687,7 +687,7 @@
|
|||||||
if(H.health - H.halloss <= config.health_threshold_crit)
|
if(H.health - H.halloss <= config.health_threshold_crit)
|
||||||
for(var/name in H.organs)
|
for(var/name in H.organs)
|
||||||
var/datum/organ/external/e = H.organs[name]
|
var/datum/organ/external/e = H.organs[name]
|
||||||
if((H.lying) && ((e.status & BROKEN && !(e.status & SPLINTED)) || e.status & BLEEDING) && (H.getBruteLoss() + H.getFireLoss() >= 100))
|
if((H.lying) && ((e.status & ORGAN_BROKEN && !(e.status & ORGAN_SPLINTED)) || e.status & ORGAN_BLEEDING) && (H.getBruteLoss() + H.getFireLoss() >= 100))
|
||||||
return 1
|
return 1
|
||||||
break
|
break
|
||||||
return 0
|
return 0
|
||||||
@@ -713,12 +713,12 @@
|
|||||||
if(ishuman(usr))
|
if(ishuman(usr))
|
||||||
if(usr.hand) // if he's using his left hand.
|
if(usr.hand) // if he's using his left hand.
|
||||||
var/datum/organ/external/temp = usr:get_organ("l_hand")
|
var/datum/organ/external/temp = usr:get_organ("l_hand")
|
||||||
if(temp.status & DESTROYED)
|
if(temp.status & ORGAN_DESTROYED)
|
||||||
usr << "\blue You look at your stump."
|
usr << "\blue You look at your stump."
|
||||||
return
|
return
|
||||||
else
|
else
|
||||||
var/datum/organ/external/temp = usr:get_organ("r_hand")
|
var/datum/organ/external/temp = usr:get_organ("r_hand")
|
||||||
if(temp.status & DESTROYED)
|
if(temp.status & ORGAN_DESTROYED)
|
||||||
usr << "\blue You look at your stump."
|
usr << "\blue You look at your stump."
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|||||||
@@ -1233,10 +1233,10 @@ datum/preferences
|
|||||||
var/status = organ_data[name]
|
var/status = organ_data[name]
|
||||||
if(status == "amputated")
|
if(status == "amputated")
|
||||||
O.amputated = 1
|
O.amputated = 1
|
||||||
O.status |= DESTROYED
|
O.status |= ORGAN_DESTROYED
|
||||||
O.destspawn = 1
|
O.destspawn = 1
|
||||||
else if(status == "cyborg")
|
else if(status == "cyborg")
|
||||||
O.status |= ROBOT
|
O.status |= ORGAN_ROBOT
|
||||||
|
|
||||||
switch(UI_style)
|
switch(UI_style)
|
||||||
if("Midnight")
|
if("Midnight")
|
||||||
|
|||||||
@@ -13,10 +13,10 @@ datum/skill/var
|
|||||||
|
|
||||||
var/global/list/SKILLS = null
|
var/global/list/SKILLS = null
|
||||||
var/list/SKILL_ENGINEER = list("field" = "Engineering", "EVA" = SKILL_BASIC, "construction" = SKILL_ADEPT, "electrical" = SKILL_BASIC, "engines" = SKILL_ADEPT)
|
var/list/SKILL_ENGINEER = list("field" = "Engineering", "EVA" = SKILL_BASIC, "construction" = SKILL_ADEPT, "electrical" = SKILL_BASIC, "engines" = SKILL_ADEPT)
|
||||||
var/list/SKILL_ROBOTICIST = list("field" = "Science", "devices" = SKILL_ADEPT, "electrical" = SKILL_BASIC, "computer" = SKILL_ADEPT, "anatomy" = SKILL_BASIC)
|
var/list/SKILL_ORGAN_ROBOTICIST = list("field" = "Science", "devices" = SKILL_ADEPT, "electrical" = SKILL_BASIC, "computer" = SKILL_ADEPT, "anatomy" = SKILL_BASIC)
|
||||||
var/list/SKILL_SECURITY_OFFICER = list("field" = "Security", "combat" = SKILL_BASIC, "weapons" = SKILL_ADEPT, "law" = SKILL_ADEPT, "forensics" = SKILL_BASIC)
|
var/list/SKILL_SECURITY_OFFICER = list("field" = "Security", "combat" = SKILL_BASIC, "weapons" = SKILL_ADEPT, "law" = SKILL_ADEPT, "forensics" = SKILL_BASIC)
|
||||||
var/list/SKILL_CHEMIST = list("field" = "Science", "chemistry" = SKILL_ADEPT, "science" = SKILL_ADEPT, "medical" = SKILL_BASIC, "devices" = SKILL_BASIC)
|
var/list/SKILL_CHEMIST = list("field" = "Science", "chemistry" = SKILL_ADEPT, "science" = SKILL_ADEPT, "medical" = SKILL_BASIC, "devices" = SKILL_BASIC)
|
||||||
var/global/list/SKILL_PRE = list("Engineer" = SKILL_ENGINEER, "Roboticist" = SKILL_ROBOTICIST, "Security Officer" = SKILL_SECURITY_OFFICER, "Chemist" = SKILL_CHEMIST)
|
var/global/list/SKILL_PRE = list("Engineer" = SKILL_ENGINEER, "Roboticist" = SKILL_ORGAN_ROBOTICIST, "Security Officer" = SKILL_SECURITY_OFFICER, "Chemist" = SKILL_CHEMIST)
|
||||||
|
|
||||||
datum/skill/management
|
datum/skill/management
|
||||||
ID = "management"
|
ID = "management"
|
||||||
|
|||||||
@@ -121,26 +121,26 @@ var/list/wound_progressions = list(
|
|||||||
proc/take_damage(brute, burn, sharp, used_weapon = null, list/forbidden_limbs = list())
|
proc/take_damage(brute, burn, sharp, used_weapon = null, list/forbidden_limbs = list())
|
||||||
if((brute <= 0) && (burn <= 0))
|
if((brute <= 0) && (burn <= 0))
|
||||||
return 0
|
return 0
|
||||||
if(status & DESTROYED)
|
if(status & ORGAN_DESTROYED)
|
||||||
return 0
|
return 0
|
||||||
if(status & ROBOT)
|
if(status & ORGAN_ROBOT)
|
||||||
brute *= 0.66 //~2/3 damage for ROBOLIMBS
|
brute *= 0.66 //~2/3 damage for ROBOLIMBS
|
||||||
burn *= 0.66 //~2/3 damage for ROBOLIMBS
|
burn *= 0.66 //~2/3 damage for ROBOLIMBS
|
||||||
|
|
||||||
if(owner && !(status & ROBOT))
|
if(owner && !(status & ORGAN_ROBOT))
|
||||||
owner.pain(display_name, (brute+burn)*3, 1, burn > brute)
|
owner.pain(display_name, (brute+burn)*3, 1, burn > brute)
|
||||||
|
|
||||||
if(sharp)
|
if(sharp)
|
||||||
var/nux = brute * rand(10,15)
|
var/nux = brute * rand(10,15)
|
||||||
if(brute_dam >= max_damage)
|
if(brute_dam >= max_damage)
|
||||||
if(prob(5 * brute))
|
if(prob(5 * brute))
|
||||||
status |= DESTROYED
|
status |= ORGAN_DESTROYED
|
||||||
droplimb()
|
droplimb()
|
||||||
return
|
return
|
||||||
|
|
||||||
else if(prob(nux))
|
else if(prob(nux))
|
||||||
createwound( CUT, brute )
|
createwound( CUT, brute )
|
||||||
if(!(status & ROBOT))
|
if(!(status & ORGAN_ROBOT))
|
||||||
owner << "You feel something wet on your [display_name]"
|
owner << "You feel something wet on your [display_name]"
|
||||||
|
|
||||||
if((brute_dam + burn_dam + brute + burn) < max_damage)
|
if((brute_dam + burn_dam + brute + burn) < max_damage)
|
||||||
@@ -172,7 +172,7 @@ var/list/wound_progressions = list(
|
|||||||
burn = can_inflict
|
burn = can_inflict
|
||||||
burn_dam += burn
|
burn_dam += burn
|
||||||
createwound(max(1,min(6,round(burn/10) + rand(0,1))),2,burn)
|
createwound(max(1,min(6,round(burn/10) + rand(0,1))),2,burn)
|
||||||
else if(!(status & ROBOT))
|
else if(!(status & ORGAN_ROBOT))
|
||||||
var/passed_dam = (brute + burn) - can_inflict //Getting how much overdamage we have.
|
var/passed_dam = (brute + burn) - can_inflict //Getting how much overdamage we have.
|
||||||
var/list/datum/organ/external/possible_points = list()
|
var/list/datum/organ/external/possible_points = list()
|
||||||
if(parent)
|
if(parent)
|
||||||
@@ -193,7 +193,7 @@ var/list/wound_progressions = list(
|
|||||||
droplimb(1) //Robot limbs just kinda fail at full damage.
|
droplimb(1) //Robot limbs just kinda fail at full damage.
|
||||||
|
|
||||||
|
|
||||||
if(status & BROKEN)
|
if(status & ORGAN_BROKEN)
|
||||||
owner.emote("scream")
|
owner.emote("scream")
|
||||||
|
|
||||||
if(used_weapon) add_wound(used_weapon, brute + burn)
|
if(used_weapon) add_wound(used_weapon, brute + burn)
|
||||||
@@ -205,7 +205,7 @@ var/list/wound_progressions = list(
|
|||||||
|
|
||||||
|
|
||||||
proc/heal_damage(brute, burn, internal = 0, robo_repair = 0)
|
proc/heal_damage(brute, burn, internal = 0, robo_repair = 0)
|
||||||
if(status & ROBOT && !robo_repair)
|
if(status & ORGAN_ROBOT && !robo_repair)
|
||||||
return
|
return
|
||||||
// var/brute_to_heal = 0
|
// var/brute_to_heal = 0
|
||||||
// var/brute_wounds = list()
|
// var/brute_wounds = list()
|
||||||
@@ -217,7 +217,7 @@ var/list/wound_progressions = list(
|
|||||||
burn_dam = max(0, burn_dam-burn)
|
burn_dam = max(0, burn_dam-burn)
|
||||||
|
|
||||||
if(internal)
|
if(internal)
|
||||||
status &= ~BROKEN
|
status &= ~ORGAN_BROKEN
|
||||||
perma_injury = 0
|
perma_injury = 0
|
||||||
// if all damage is healed, replace the wounds with scars
|
// if all damage is healed, replace the wounds with scars
|
||||||
if(brute_dam + burn_dam == 0)
|
if(brute_dam + burn_dam == 0)
|
||||||
@@ -255,23 +255,23 @@ var/list/wound_progressions = list(
|
|||||||
process()
|
process()
|
||||||
if(next_wound_update && world.time > next_wound_update)
|
if(next_wound_update && world.time > next_wound_update)
|
||||||
update_wounds()
|
update_wounds()
|
||||||
if(status & DESTROYED)
|
if(status & ORGAN_DESTROYED)
|
||||||
if(!destspawn)
|
if(!destspawn)
|
||||||
droplimb()
|
droplimb()
|
||||||
return
|
return
|
||||||
if(!(status & BROKEN))
|
if(!(status & ORGAN_BROKEN))
|
||||||
perma_dmg = 0
|
perma_dmg = 0
|
||||||
if(parent)
|
if(parent)
|
||||||
if(parent.status & DESTROYED)
|
if(parent.status & ORGAN_DESTROYED)
|
||||||
status |= DESTROYED
|
status |= ORGAN_DESTROYED
|
||||||
owner:update_body()
|
owner:update_body()
|
||||||
return
|
return
|
||||||
if(brute_dam > min_broken_damage && !(status & ROBOT))
|
if(brute_dam > min_broken_damage && !(status & ORGAN_ROBOT))
|
||||||
if(!(status & BROKEN))
|
if(!(status & ORGAN_BROKEN))
|
||||||
//owner.unlock_medal("Broke Yarrr Bones!", 0, "Break a bone.", "easy")
|
//owner.unlock_medal("Broke Yarrr Bones!", 0, "Break a bone.", "easy")
|
||||||
owner.visible_message("\red You hear a loud cracking sound coming from \the [owner].","\red <b>Something feels like it shattered in your [display_name]!</b>","You hear a sickening crack.")
|
owner.visible_message("\red You hear a loud cracking sound coming from \the [owner].","\red <b>Something feels like it shattered in your [display_name]!</b>","You hear a sickening crack.")
|
||||||
owner.emote("scream")
|
owner.emote("scream")
|
||||||
status |= BROKEN
|
status |= ORGAN_BROKEN
|
||||||
broken_description = pick("broken","fracture","hairline fracture")
|
broken_description = pick("broken","fracture","hairline fracture")
|
||||||
perma_injury = brute_dam
|
perma_injury = brute_dam
|
||||||
return
|
return
|
||||||
@@ -314,17 +314,17 @@ var/list/wound_progressions = list(
|
|||||||
|
|
||||||
proc/droplimb(var/override = 0,var/no_explode = 0)
|
proc/droplimb(var/override = 0,var/no_explode = 0)
|
||||||
if(override)
|
if(override)
|
||||||
status |= DESTROYED
|
status |= ORGAN_DESTROYED
|
||||||
if(status & DESTROYED)
|
if(status & ORGAN_DESTROYED)
|
||||||
if(status & SPLINTED)
|
if(status & ORGAN_SPLINTED)
|
||||||
status &= ~SPLINTED
|
status &= ~ORGAN_SPLINTED
|
||||||
if(implant)
|
if(implant)
|
||||||
for(var/implants in implant)
|
for(var/implants in implant)
|
||||||
del(implants)
|
del(implants)
|
||||||
//owner.unlock_medal("Lost something?", 0, "Lose a limb.", "easy")
|
//owner.unlock_medal("Lost something?", 0, "Lose a limb.", "easy")
|
||||||
|
|
||||||
for(var/datum/organ/external/I in children)
|
for(var/datum/organ/external/I in children)
|
||||||
if(I && !(I.status & DESTROYED))
|
if(I && !(I.status & ORGAN_DESTROYED))
|
||||||
I.droplimb(1,1)
|
I.droplimb(1,1)
|
||||||
var/obj/item/weapon/organ/H
|
var/obj/item/weapon/organ/H
|
||||||
switch(body_part)
|
switch(body_part)
|
||||||
@@ -390,7 +390,7 @@ var/list/wound_progressions = list(
|
|||||||
var/lol = pick(cardinal)
|
var/lol = pick(cardinal)
|
||||||
step(H,lol)
|
step(H,lol)
|
||||||
destspawn = 1
|
destspawn = 1
|
||||||
if(status & ROBOT)
|
if(status & ORGAN_ROBOT)
|
||||||
owner.visible_message("\red \The [owner]'s [display_name] explodes violently!",\
|
owner.visible_message("\red \The [owner]'s [display_name] explodes violently!",\
|
||||||
"\red <b>Your [display_name] explodes!</b>",\
|
"\red <b>Your [display_name] explodes!</b>",\
|
||||||
"You hear an explosion followed by a scream!")
|
"You hear an explosion followed by a scream!")
|
||||||
@@ -416,7 +416,7 @@ var/list/wound_progressions = list(
|
|||||||
var/size = min( max( 1, damage/10 ) , 6)
|
var/size = min( max( 1, damage/10 ) , 6)
|
||||||
switch(type)
|
switch(type)
|
||||||
if(CUT)
|
if(CUT)
|
||||||
src.status |= BLEEDING
|
src.status |= ORGAN_BLEEDING
|
||||||
var/list/size_names = list("cut", "deep cut", "flesh wound", "gaping wound", "big gaping wound", "massive wound")
|
var/list/size_names = list("cut", "deep cut", "flesh wound", "gaping wound", "big gaping wound", "massive wound")
|
||||||
wound_name = size_names[size]
|
wound_name = size_names[size]
|
||||||
if(wound_descs["[update_time]"])
|
if(wound_descs["[update_time]"])
|
||||||
@@ -469,7 +469,7 @@ var/list/wound_progressions = list(
|
|||||||
next_wound_update = 0
|
next_wound_update = 0
|
||||||
|
|
||||||
proc/emp_act(severity)
|
proc/emp_act(severity)
|
||||||
if(!(status & ROBOT))
|
if(!(status & ORGAN_ROBOT))
|
||||||
return
|
return
|
||||||
if(prob(30*severity))
|
if(prob(30*severity))
|
||||||
take_damage(4(4-severity), 0, 1, used_weapon = "EMP")
|
take_damage(4(4-severity), 0, 1, used_weapon = "EMP")
|
||||||
|
|||||||
@@ -457,7 +457,7 @@
|
|||||||
/obj/item/weapon/cable_coil/attack(mob/M as mob, mob/user as mob)
|
/obj/item/weapon/cable_coil/attack(mob/M as mob, mob/user as mob)
|
||||||
if(hasorgans(M))
|
if(hasorgans(M))
|
||||||
var/datum/organ/external/S = M:organs[user.zone_sel.selecting]
|
var/datum/organ/external/S = M:organs[user.zone_sel.selecting]
|
||||||
if(!(S.status & ROBOT) || user.a_intent != "help")
|
if(!(S.status & ORGAN_ROBOT) || user.a_intent != "help")
|
||||||
return ..()
|
return ..()
|
||||||
if(S.burn_dam > 0)
|
if(S.burn_dam > 0)
|
||||||
S.heal_damage(0,15,0,1)
|
S.heal_damage(0,15,0,1)
|
||||||
|
|||||||
@@ -465,12 +465,12 @@ var/list/liftable_structures = list(\
|
|||||||
/////////////////
|
/////////////////
|
||||||
//ORGAN DEFINES//
|
//ORGAN DEFINES//
|
||||||
/////////////////
|
/////////////////
|
||||||
#define CUT_AWAY 1
|
#define ORGAN_CUT_AWAY 1
|
||||||
#define GAUZED 2
|
#define ORGAN_GAUZED 2
|
||||||
#define ATTACHABLE 4
|
#define ORGAN_ATTACHABLE 4
|
||||||
#define BLEEDING 8
|
#define ORGAN_BLEEDING 8
|
||||||
#define BANDAGED 16
|
#define ORGAN_BANDAGED 16
|
||||||
#define BROKEN 32
|
#define ORGAN_BROKEN 32
|
||||||
#define DESTROYED 64
|
#define ORGAN_DESTROYED 64
|
||||||
#define ROBOT 128
|
#define ORGAN_ROBOT 128
|
||||||
#define SPLINTED 256
|
#define ORGAN_SPLINTED 256
|
||||||
Reference in New Issue
Block a user