From 02f74932e2106924835d2a92b7f2df0c55aaadf9 Mon Sep 17 00:00:00 2001 From: Fox-McCloud Date: Thu, 20 Jul 2017 21:01:55 -0400 Subject: [PATCH] Fixes IPC and Diona Knockdown Immunity --- code/__DEFINES/mob.dm | 14 +++---- code/game/gamemodes/heist/heist.dm | 2 +- code/game/machinery/adv_med.dm | 7 +--- .../effects/decals/Cleanable/humans.dm | 2 +- .../effects/decals/Cleanable/tracks.dm | 4 +- code/game/objects/items/weapons/caution.dm | 9 ++-- .../stool_bed_chair_nest/wheelchair.dm | 8 ++-- code/modules/admin/verbs/one_click_antag.dm | 2 +- code/modules/client/preference/preferences.dm | 2 +- code/modules/mob/living/carbon/carbon.dm | 26 +++++++----- code/modules/mob/living/carbon/human/emote.dm | 12 +++--- code/modules/mob/living/carbon/human/human.dm | 4 +- .../mob/living/carbon/human/human_defense.dm | 6 +-- .../mob/living/carbon/human/human_movement.dm | 2 +- .../mob/living/carbon/human/human_organs.dm | 2 +- .../mob/living/carbon/human/inventory.dm | 3 +- .../mob/living/carbon/human/update_icons.dm | 42 +++++++++---------- code/modules/surgery/generic.dm | 4 -- code/modules/surgery/limb_reattach.dm | 12 ------ code/modules/surgery/organs/organ.dm | 6 +-- code/modules/surgery/organs/organ_external.dm | 20 +-------- code/modules/surgery/organs/organ_icon.dm | 2 +- code/modules/surgery/organs_internal.dm | 3 -- code/modules/surgery/robotics.dm | 5 --- nano/templates/adv_med.tmpl | 1 - 25 files changed, 76 insertions(+), 124 deletions(-) diff --git a/code/__DEFINES/mob.dm b/code/__DEFINES/mob.dm index dde491fbb80..93e02102141 100644 --- a/code/__DEFINES/mob.dm +++ b/code/__DEFINES/mob.dm @@ -1,14 +1,12 @@ ///////////////////ORGAN DEFINES/////////////////// // Organ defines. -#define ORGAN_CUT_AWAY 1 -#define ORGAN_BROKEN 2 -#define ORGAN_DESTROYED 4 -#define ORGAN_ROBOT 8 -#define ORGAN_SPLINTED 16 -#define ORGAN_DEAD 32 -#define ORGAN_MUTATED 64 -#define ORGAN_ASSISTED 128 +#define ORGAN_BROKEN 1 +#define ORGAN_ROBOT 2 +#define ORGAN_SPLINTED 4 +#define ORGAN_DEAD 8 +#define ORGAN_MUTATED 16 +#define ORGAN_ASSISTED 32 #define DROPLIMB_SHARP 0 #define DROPLIMB_BLUNT 1 diff --git a/code/game/gamemodes/heist/heist.dm b/code/game/gamemodes/heist/heist.dm index 70ebd23912f..341d674cab8 100644 --- a/code/game/gamemodes/heist/heist.dm +++ b/code/game/gamemodes/heist/heist.dm @@ -122,7 +122,7 @@ var/global/list/obj/cortical_stacks = list() //Stacks for 'leave nobody behind' vox.update_eyes() for(var/obj/item/organ/external/limb in vox.bodyparts) - limb.status &= ~(ORGAN_DESTROYED | ORGAN_ROBOT) + limb.status &= ~ORGAN_ROBOT //Now apply cortical stack. var/obj/item/weapon/implant/cortical/I = new(vox) diff --git a/code/game/machinery/adv_med.dm b/code/game/machinery/adv_med.dm index c8cf45665cd..ff25c3ff927 100644 --- a/code/game/machinery/adv_med.dm +++ b/code/game/machinery/adv_med.dm @@ -413,8 +413,6 @@ organData["shrapnel_len"] = shrapnelData.len var/organStatus[0] - if(E.status & ORGAN_DESTROYED) - organStatus["destroyed"] = 1 if(E.status & ORGAN_BROKEN) organStatus["broken"] = E.broken_description if(E.status & ORGAN_ROBOT) @@ -614,10 +612,7 @@ imp += "Unknown body present:" if(!AN && !open && !infected & !imp) AN = "None:" - if(!(e.status & ORGAN_DESTROYED)) - dat += "[e.name][e.burn_dam][e.brute_dam][robot][bled][AN][splint][open][infected][imp][internal_bleeding][lung_ruptured]" - else - dat += "[e.name]--Not Found" + dat += "[e.name][e.burn_dam][e.brute_dam][robot][bled][AN][splint][open][infected][imp][internal_bleeding][lung_ruptured]" dat += "" for(var/obj/item/organ/internal/i in occupant.internal_organs) var/mech = i.desc diff --git a/code/game/objects/effects/decals/Cleanable/humans.dm b/code/game/objects/effects/decals/Cleanable/humans.dm index 6840a5d9929..bb8436340a6 100644 --- a/code/game/objects/effects/decals/Cleanable/humans.dm +++ b/code/game/objects/effects/decals/Cleanable/humans.dm @@ -94,7 +94,7 @@ var/global/list/image/splatter_cache=list() var/obj/item/organ/external/l_foot = H.get_organ("l_foot") var/obj/item/organ/external/r_foot = H.get_organ("r_foot") var/hasfeet = 1 - if((!l_foot || l_foot.status & ORGAN_DESTROYED) && (!r_foot || r_foot.status & ORGAN_DESTROYED)) + if(!l_foot && !r_foot) hasfeet = 0 if(H.shoes && blood_state && bloodiness) var/obj/item/clothing/shoes/S = H.shoes diff --git a/code/game/objects/effects/decals/Cleanable/tracks.dm b/code/game/objects/effects/decals/Cleanable/tracks.dm index 20dee798e8d..eba3020e247 100644 --- a/code/game/objects/effects/decals/Cleanable/tracks.dm +++ b/code/game/objects/effects/decals/Cleanable/tracks.dm @@ -36,7 +36,7 @@ var/global/list/image/fluidtrack_cache=list() var/obj/item/organ/external/l_foot = H.get_organ("l_foot") var/obj/item/organ/external/r_foot = H.get_organ("r_foot") var/hasfeet = 1 - if((!l_foot || l_foot.status & ORGAN_DESTROYED) && (!r_foot || r_foot.status & ORGAN_DESTROYED)) + if(!l_foot && !r_foot) hasfeet = 0 if(S && S.bloody_shoes[blood_state] && S.blood_color == basecolor) S.bloody_shoes[blood_state] = max(S.bloody_shoes[blood_state] - BLOOD_LOSS_PER_STEP, 0) @@ -59,7 +59,7 @@ var/global/list/image/fluidtrack_cache=list() var/obj/item/organ/external/l_foot = H.get_organ("l_foot") var/obj/item/organ/external/r_foot = H.get_organ("r_foot") var/hasfeet = 1 - if((!l_foot || l_foot.status & ORGAN_DESTROYED) && (!r_foot || r_foot.status & ORGAN_DESTROYED)) + if(!l_foot && !r_foot) hasfeet = 0 if(S && S.bloody_shoes[blood_state] && S.blood_color == basecolor) S.bloody_shoes[blood_state] = max(S.bloody_shoes[blood_state] - BLOOD_LOSS_PER_STEP, 0) diff --git a/code/game/objects/items/weapons/caution.dm b/code/game/objects/items/weapons/caution.dm index 032decd7bc5..814ba2d2110 100644 --- a/code/game/objects/items/weapons/caution.dm +++ b/code/game/objects/items/weapons/caution.dm @@ -55,7 +55,8 @@ proc/dead_legs(mob/living/carbon/human/H as mob) var/obj/item/organ/external/l = H.get_organ("l_leg") var/obj/item/organ/external/r = H.get_organ("r_leg") - if(l && !(l.status & ORGAN_DESTROYED)) - l.status |= ORGAN_DESTROYED - if(r && !(r.status & ORGAN_DESTROYED)) - r.status |= ORGAN_DESTROYED + if(l) + l.droplimb(0, DROPLIMB_SHARP) + if(r) + r.droplimb(0, DROPLIMB_SHARP) + diff --git a/code/game/objects/structures/stool_bed_chair_nest/wheelchair.dm b/code/game/objects/structures/stool_bed_chair_nest/wheelchair.dm index b32f47520e4..8e148d75eb5 100644 --- a/code/game/objects/structures/stool_bed_chair_nest/wheelchair.dm +++ b/code/game/objects/structures/stool_bed_chair_nest/wheelchair.dm @@ -41,12 +41,12 @@ var/mob/living/carbon/human/driver = user var/obj/item/organ/external/l_hand = driver.get_organ("l_hand") var/obj/item/organ/external/r_hand = driver.get_organ("r_hand") - if((!l_hand || (l_hand.status & ORGAN_DESTROYED)) && (!r_hand || (r_hand.status & ORGAN_DESTROYED))) + if(!l_hand && !r_hand) return 0 // No hands to drive your chair? Tough luck! for(var/organ_name in list("l_hand","r_hand","l_arm","r_arm")) var/obj/item/organ/external/E = driver.get_organ(organ_name) - if(!E || (E.status & ORGAN_DESTROYED)) + if(!E) calculated_move_delay += 4 else if(E.status & ORGAN_SPLINTED) calculated_move_delay += 0.5 @@ -129,12 +129,12 @@ var/mob/living/carbon/human/driver = user var/obj/item/organ/external/l_hand = driver.get_organ("l_hand") var/obj/item/organ/external/r_hand = driver.get_organ("r_hand") - if((!l_hand || (l_hand.status & ORGAN_DESTROYED)) && (!r_hand || (r_hand.status & ORGAN_DESTROYED))) + if(!l_hand && !r_hand) calculated_move_delay += 0.5 //I can ride my bike with no handlebars... (but it's slower) for(var/organ_name in list("l_leg","r_leg","l_foot","r_foot")) var/obj/item/organ/external/E = driver.get_organ(organ_name) - if(!E || (E.status & ORGAN_DESTROYED)) + if(!E) return 0 //Bikes need both feet/legs to work. missing even one makes it so you can't ride the bike else if(E.status & ORGAN_SPLINTED) calculated_move_delay += 0.5 diff --git a/code/modules/admin/verbs/one_click_antag.dm b/code/modules/admin/verbs/one_click_antag.dm index 8d201d6ee8a..d4734e92b53 100644 --- a/code/modules/admin/verbs/one_click_antag.dm +++ b/code/modules/admin/verbs/one_click_antag.dm @@ -513,7 +513,7 @@ client/proc/one_click_antag() new_vox.update_eyes() for(var/obj/item/organ/external/limb in new_vox.bodyparts) - limb.status &= ~(ORGAN_DESTROYED | ORGAN_ROBOT) + limb.status &= ~ORGAN_ROBOT //Now apply cortical stack. var/obj/item/weapon/implant/cortical/I = new(new_vox) diff --git a/code/modules/client/preference/preferences.dm b/code/modules/client/preference/preferences.dm index b0a2b9091a6..a11360b1d40 100644 --- a/code/modules/client/preference/preferences.dm +++ b/code/modules/client/preference/preferences.dm @@ -2170,7 +2170,7 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts // Wheelchair necessary? var/obj/item/organ/external/l_foot = character.get_organ("l_foot") var/obj/item/organ/external/r_foot = character.get_organ("r_foot") - if((!l_foot || l_foot.status & ORGAN_DESTROYED) && (!r_foot || r_foot.status & ORGAN_DESTROYED)) + if(!l_foot && !r_foot) var/obj/structure/stool/bed/chair/wheelchair/W = new /obj/structure/stool/bed/chair/wheelchair (character.loc) character.buckled = W character.update_canmove() diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm index 4de2dff6212..88377ea9cea 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -216,10 +216,13 @@ "You check yourself for injuries." \ ) - for(var/obj/item/organ/external/org in H.bodyparts) + var/list/missing = list("head", "chest", "groin", "l_arm", "r_arm", "l_hand", "r_hand", "l_leg", "r_leg", "l_foot", "r_foot") + for(var/X in H.bodyparts) + var/obj/item/organ/external/LB = X + missing -= LB.limb_name var/status = "" - var/brutedamage = org.brute_dam - var/burndamage = org.burn_dam + var/brutedamage = LB.brute_dam + var/burndamage = LB.burn_dam if(brutedamage > 0) status = "bruised" @@ -236,16 +239,17 @@ status += "blistered" else if(burndamage > 0) status += "numb" - if(org.status & ORGAN_DESTROYED) - status = "MISSING!" - if(org.status & ORGAN_MUTATED) + if(LB.status & ORGAN_MUTATED) status = "weirdly shapen." if(status == "") status = "OK" - src.show_message(text("\t []My [] is [].",status=="OK"?"":"",org.name,status),1) + to_chat(src, "\t Your [LB.name] is [status].") - for(var/obj/item/I in org.embedded_objects) - to_chat(src, "\t There is \a [I] embedded in your [org.name]!") + for(var/obj/item/I in LB.embedded_objects) + to_chat(src, "\t There is \a [I] embedded in your [LB.name]!") + + for(var/t in missing) + to_chat(src, "Your [parse_zone(t)] is missing!") if(H.bleed_rate) to_chat(src, "You are bleeding!") @@ -297,7 +301,9 @@ ) if(istype(src,/mob/living/carbon/human)) var/mob/living/carbon/human/H = src - if(H.w_uniform) + if(H.wear_suit) + H.wear_suit.add_fingerprint(M) + else if(H.w_uniform) H.w_uniform.add_fingerprint(M) /mob/living/carbon/flash_eyes(intensity = 1, override_blindness_check = 0, affect_silicon = 0, visual = 0) diff --git a/code/modules/mob/living/carbon/human/emote.dm b/code/modules/mob/living/carbon/human/emote.dm index 8cdf4ab1ec6..89f8b9a5c9d 100644 --- a/code/modules/mob/living/carbon/human/emote.dm +++ b/code/modules/mob/living/carbon/human/emote.dm @@ -37,7 +37,7 @@ if(species.name == "Drask") //Only Drask can make whale noises on_CD = handle_emote_CD() //proc located in code\modules\mob\emote.dm else - return + return if("howl", "howls") if (species.name == "Vulpkanin") //Only Vulpkanin can howl on_CD = handle_emote_CD(100) @@ -47,7 +47,7 @@ if (species.name == "Vulpkanin") //Only Vulpkanin can growl on_CD = handle_emote_CD() else - return + return if("squish", "squishes") var/found_slime_bodypart = 0 @@ -101,7 +101,7 @@ if("me") //OKAY SO RANT TIME, THIS FUCKING HAS TO BE HERE OR A SHITLOAD OF THINGS BREAK return custom_emote(m_type, message) //DO YOU KNOW WHY SHIT BREAKS? BECAUSE SO MUCH OLDCODE CALLS mob.emote("me",1,"whatever_the_fuck_it_wants_to_emote") //WHO THE FUCK THOUGHT THAT WAS A GOOD FUCKING IDEA!?!? - + if("howl", "howls") var/M = handle_emote_param(param) //Check to see if the param is valid (mob with the param name is in view). message = "[src] howls[M ? " at [M]" : ""]!" @@ -113,7 +113,7 @@ message = "[src] growls[M ? " at [M]" : ""]." playsound(loc, "growls", 80, 0) m_type = 2 - + if("ping", "pings") var/M = handle_emote_param(param) @@ -750,9 +750,9 @@ var/obj/item/organ/external/R = H.get_organ("r_hand") var/left_hand_good = 0 var/right_hand_good = 0 - if(L && (!(L.status & ORGAN_DESTROYED)) && (!(L.status & ORGAN_SPLINTED)) && (!(L.status & ORGAN_BROKEN))) + if(L && (!(L.status & ORGAN_SPLINTED)) && (!(L.status & ORGAN_BROKEN))) left_hand_good = 1 - if(R && (!(R.status & ORGAN_DESTROYED)) && (!(R.status & ORGAN_SPLINTED)) && (!(R.status & ORGAN_BROKEN))) + if(R && (!(R.status & ORGAN_SPLINTED)) && (!(R.status & ORGAN_BROKEN))) right_hand_good = 1 if(!left_hand_good && !right_hand_good) diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index 3b764e0a189..a97edcec455 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -609,7 +609,7 @@ //Returns "Unknown" if facially disfigured and real_name if not. Useful for setting name when polyacided or when updating a human's name variable /mob/living/carbon/human/proc/get_face_name() var/obj/item/organ/external/head = get_organ("head") - if( !head || head.disfigured || (head.status & ORGAN_DESTROYED) || !real_name || (HUSK in mutations) ) //disfigured. use id-name if possible + if( !head || head.disfigured || !real_name || (HUSK in mutations) ) //disfigured. use id-name if possible return "Unknown" return real_name @@ -1590,7 +1590,7 @@ return var/obj/item/organ/external/head/head_organ = get_organ("head") - if(!head_organ || (head_organ.status & ORGAN_DESTROYED)) //If the rock'em-sock'em robot's head came off during a fight, they shouldn't be able to change their screen/optics. + if(!head_organ) //If the rock'em-sock'em robot's head came off during a fight, they shouldn't be able to change their screen/optics. to_chat(src, "Where's your head at? Can't change your monitor/display without one.") return diff --git a/code/modules/mob/living/carbon/human/human_defense.dm b/code/modules/mob/living/carbon/human/human_defense.dm index 651cc2d4cb6..02b87dde494 100644 --- a/code/modules/mob/living/carbon/human/human_defense.dm +++ b/code/modules/mob/living/carbon/human/human_defense.dm @@ -201,10 +201,10 @@ emp_act qdel(src) var/obj/item/organ/external/affecting = get_organ(ran_zone(user.zone_sel.selecting)) - if(!affecting || (affecting.status & ORGAN_DESTROYED)) + if(!affecting) to_chat(user, "They are missing that limb!") return 1 - var/hit_area = affecting.name + var/hit_area = parse_zone(affecting.limb_name) if(user != src) user.do_attack_animation(src) @@ -270,7 +270,7 @@ emp_act update_inv_glasses(0) - if("upper body")//Easier to score a stun but lasts less time + if("chest")//Easier to score a stun but lasts less time if(stat == CONSCIOUS && I.force && prob(I.force + 10)) visible_message("[src] has been knocked down!", \ "[src] has been knocked down!") diff --git a/code/modules/mob/living/carbon/human/human_movement.dm b/code/modules/mob/living/carbon/human/human_movement.dm index 164eb14e7cd..145a7ea4694 100644 --- a/code/modules/mob/living/carbon/human/human_movement.dm +++ b/code/modules/mob/living/carbon/human/human_movement.dm @@ -45,7 +45,7 @@ var/obj/item/organ/external/l_foot = get_organ("l_foot") var/obj/item/organ/external/r_foot = get_organ("r_foot") var/hasfeet = 1 - if((!l_foot || l_foot.status & ORGAN_DESTROYED) && (!r_foot || r_foot.status & ORGAN_DESTROYED)) + if(!l_foot && !r_foot) hasfeet = 0 if(shoes) diff --git a/code/modules/mob/living/carbon/human/human_organs.dm b/code/modules/mob/living/carbon/human/human_organs.dm index 124f78aa75e..038735f1621 100644 --- a/code/modules/mob/living/carbon/human/human_organs.dm +++ b/code/modules/mob/living/carbon/human/human_organs.dm @@ -43,7 +43,7 @@ for(var/limb_tag in list("l_leg","r_leg","l_foot","r_foot")) var/obj/item/organ/external/E = bodyparts_by_name[limb_tag] - if(!E || (E.status & (ORGAN_DESTROYED|ORGAN_DEAD)) || E.is_malfunctioning()) + if(!E || (E.status & ORGAN_DEAD) || E.is_malfunctioning()) stance_damage += 2 // let it fail even if just foot&leg. Also malfunctioning happens sporadically so it should impact more when it procs else if(E.is_broken() || !E.is_usable()) stance_damage += 1 diff --git a/code/modules/mob/living/carbon/human/inventory.dm b/code/modules/mob/living/carbon/human/inventory.dm index a3be2de7eba..c95bb0bd243 100644 --- a/code/modules/mob/living/carbon/human/inventory.dm +++ b/code/modules/mob/living/carbon/human/inventory.dm @@ -24,8 +24,7 @@ /mob/living/carbon/human/proc/has_organ(name) var/obj/item/organ/external/O = bodyparts_by_name[name] - - return (O && !(O.status & ORGAN_DESTROYED)) + return O /mob/living/carbon/human/proc/has_organ_for_slot(slot) switch(slot) diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm index 520bcbb8b3b..2d3fab0b2a6 100644 --- a/code/modules/mob/living/carbon/human/update_icons.dm +++ b/code/modules/mob/living/carbon/human/update_icons.dm @@ -172,10 +172,7 @@ var/global/list/damage_icon_parts = list() var/damage_appearance = "" for(var/obj/item/organ/external/O in bodyparts) - if(O.status & ORGAN_DESTROYED) - damage_appearance += "d" - else - damage_appearance += O.damage_state + damage_appearance += O.damage_state if(damage_appearance == previous_damage_appearance) // nothing to do here @@ -189,20 +186,19 @@ var/global/list/damage_icon_parts = list() // blend the individual damage states with our icons for(var/obj/item/organ/external/O in bodyparts) - if(!(O.status & ORGAN_DESTROYED)) - O.update_icon() - if(O.damage_state == "00") continue - var/icon/DI - var/cache_index = "[O.damage_state]/[O.icon_name]/[species.blood_color]/[species.name]" + O.update_icon() + if(O.damage_state == "00") continue + var/icon/DI + var/cache_index = "[O.damage_state]/[O.icon_name]/[species.blood_color]/[species.name]" - if(damage_icon_parts[cache_index] == null) - DI = new /icon(species.damage_overlays, O.damage_state) // the damage icon for whole human - DI.Blend(new /icon(species.damage_mask, O.icon_name), ICON_MULTIPLY) // mask with this organ's pixels - DI.Blend(species.blood_color, ICON_MULTIPLY) - damage_icon_parts[cache_index] = DI - else - DI = damage_icon_parts[cache_index] - standing_image.overlays += DI + if(damage_icon_parts[cache_index] == null) + DI = new /icon(species.damage_overlays, O.damage_state) // the damage icon for whole human + DI.Blend(new /icon(species.damage_mask, O.icon_name), ICON_MULTIPLY) // mask with this organ's pixels + DI.Blend(species.blood_color, ICON_MULTIPLY) + damage_icon_parts[cache_index] = DI + else + DI = damage_icon_parts[cache_index] + standing_image.overlays += DI overlays_standing[DAMAGE_LAYER] = standing_image @@ -238,7 +234,7 @@ var/global/list/damage_icon_parts = list() for(var/organ_tag in species.has_limbs) var/obj/item/organ/external/part = bodyparts_by_name[organ_tag] - if(isnull(part) || (part.status & ORGAN_DESTROYED)) + if(isnull(part)) icon_key += "0" else if(part.status & ORGAN_ROBOT) icon_key += "2[part.model ? "-[part.model]": ""]" @@ -365,7 +361,7 @@ var/global/list/damage_icon_parts = list() //Body markings. var/obj/item/organ/external/chest/chest_organ = get_organ("chest") - if(chest_organ && !(chest_organ.status & ORGAN_DESTROYED) && m_styles["body"]) + if(chest_organ && m_styles["body"]) var/body_marking = m_styles["body"] var/datum/sprite_accessory/body_marking_style = marking_styles_list[body_marking] if(body_marking_style && body_marking_style.species_allowed && (species.name in body_marking_style.species_allowed)) @@ -375,7 +371,7 @@ var/global/list/damage_icon_parts = list() markings_standing.Blend(b_marking_s, ICON_OVERLAY) //Head markings. var/obj/item/organ/external/head/head_organ = get_organ("head") - if(head_organ && !(head_organ.status & ORGAN_DESTROYED) && m_styles["head"]) //If the head is destroyed, forget the head markings. This prevents floating optical markings on decapitated IPCs, for example. + if(head_organ && m_styles["head"]) //If the head is destroyed, forget the head markings. This prevents floating optical markings on decapitated IPCs, for example. var/head_marking = m_styles["head"] var/datum/sprite_accessory/head_marking_style = marking_styles_list[head_marking] if(head_marking_style && head_marking_style.species_allowed && (head_organ.species.name in head_marking_style.species_allowed)) @@ -395,7 +391,7 @@ var/global/list/damage_icon_parts = list() overlays_standing[HEAD_ACC_OVER_LAYER] = null var/obj/item/organ/external/head/head_organ = get_organ("head") - if(!head_organ || (head_organ.status & ORGAN_DESTROYED) ) + if(!head_organ) if(update_icons) update_icons() return @@ -432,7 +428,7 @@ var/global/list/damage_icon_parts = list() overlays_standing[HAIR_LAYER] = null var/obj/item/organ/external/head/head_organ = get_organ("head") - if(!head_organ || (head_organ.status & ORGAN_DESTROYED)) + if(!head_organ) if(update_icons) update_icons() return @@ -481,7 +477,7 @@ var/global/list/damage_icon_parts = list() overlays_standing[FHAIR_OVER_LAYER] = null var/obj/item/organ/external/head/head_organ = get_organ("head") - if(!head_organ || (head_organ.status & ORGAN_DESTROYED)) + if(!head_organ) if(update_icons) update_icons() return diff --git a/code/modules/surgery/generic.dm b/code/modules/surgery/generic.dm index c051aae385c..52c2c89ff0a 100644 --- a/code/modules/surgery/generic.dm +++ b/code/modules/surgery/generic.dm @@ -12,8 +12,6 @@ var/obj/item/organ/external/affected = target.get_organ(target_zone) if(affected == null) return 0 - if(affected.status & ORGAN_DESTROYED) - return 0 if(affected.status & ORGAN_ROBOT) return 0 return 1 @@ -215,8 +213,6 @@ var/obj/item/organ/external/affected = target.get_organ(target_zone) if(affected == null) return 0 - if(affected.status & ORGAN_DESTROYED) - return 0 return !affected.cannot_amputate /datum/surgery_step/generic/amputate/begin_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool,datum/surgery/surgery) diff --git a/code/modules/surgery/limb_reattach.dm b/code/modules/surgery/limb_reattach.dm index 9a2aa81f977..a24145055f0 100644 --- a/code/modules/surgery/limb_reattach.dm +++ b/code/modules/surgery/limb_reattach.dm @@ -165,10 +165,6 @@ H.h_style = "Bald" H.f_style = "Shaved" target.m_styles["head"] = "None" - E.status &= ~ORGAN_DESTROYED - if(E.children) - for(var/obj/item/organ/external/C in E.children) - C.status &= ~ORGAN_DESTROYED /datum/surgery_step/limb/connect @@ -197,10 +193,6 @@ var/obj/item/organ/external/E = target.get_organ(target_zone) user.visible_message("[user] has connected tendons and muscles in [target]'s [E.amputation_point] with [tool].", \ "You have connected tendons and muscles in [target]'s [E.amputation_point] with [tool].") - E.status &= ~ORGAN_DESTROYED - if(E.children) - for(var/obj/item/organ/external/C in E.children) - C.status &= ~ORGAN_DESTROYED target.update_body() target.updatehealth() target.UpdateDamageIcon() @@ -251,10 +243,6 @@ var/new_limb_type = organ_data["path"] var/obj/item/organ/external/new_limb = new new_limb_type(target) new_limb.robotize(L.model_info) - new_limb.status &= ~ORGAN_DESTROYED - if(new_limb.children) - for(var/obj/item/organ/external/C in new_limb.children) - C.status &= ~ORGAN_DESTROYED if(L.sabotaged) new_limb.sabotaged = 1 target.update_body() diff --git a/code/modules/surgery/organs/organ.dm b/code/modules/surgery/organs/organ.dm index a4fdfa5bc6c..dc74871d377 100644 --- a/code/modules/surgery/organs/organ.dm +++ b/code/modules/surgery/organs/organ.dm @@ -195,7 +195,7 @@ var/list/organ_cache = list() return damage >= min_bruised_damage /obj/item/organ/proc/is_broken() - return (damage >= min_broken_damage || (status & ORGAN_CUT_AWAY) || ((status & ORGAN_BROKEN) && !(status & ORGAN_SPLINTED))) + return (damage >= min_broken_damage || ((status & ORGAN_BROKEN) && !(status & ORGAN_SPLINTED))) //Germs /obj/item/organ/proc/handle_antibiotics() @@ -243,14 +243,12 @@ var/list/organ_cache = list() robotic = 2 status &= ~ORGAN_BROKEN status &= ~ORGAN_SPLINTED - status &= ~ORGAN_CUT_AWAY - status &= ~ORGAN_DESTROYED status |= ORGAN_ROBOT - status |= ORGAN_ASSISTED /obj/item/organ/proc/mechassist() //Used to add things like pacemakers, etc robotize(1) //Skip the icon/name setting that occurs in robotize to avoid having to reset the icon file. status &= ~ORGAN_ROBOT + status |= ORGAN_ASSISTED robotic = 1 min_bruised_damage = 15 min_broken_damage = 35 diff --git a/code/modules/surgery/organs/organ_external.dm b/code/modules/surgery/organs/organ_external.dm index 2c5b31f6f94..5b8930f3016 100644 --- a/code/modules/surgery/organs/organ_external.dm +++ b/code/modules/surgery/organs/organ_external.dm @@ -114,7 +114,6 @@ var/obj/item/removing = pick(contents) var/obj/item/organ/internal/O = removing if(istype(O)) - O.status |= ORGAN_CUT_AWAY if(!O.sterile) spread_germs_to_organ(O,user, W) // This wouldn't be any cleaner than the actual surgery user.put_in_hands(removing) @@ -143,7 +142,6 @@ /obj/item/organ/external/replaced(var/mob/living/carbon/human/target) owner = target - status = status & ~ORGAN_DESTROYED forceMove(owner) if(istype(owner)) if(!isnull(owner.bodyparts_by_name[limb_name])) @@ -179,9 +177,6 @@ if((brute <= 0) && (burn <= 0)) return 0 - if(status & ORGAN_DESTROYED) - return 0 - if(!ignore_resists) brute *= brute_mod burn *= burn_mod @@ -325,12 +320,6 @@ This function completely restores a damaged organ to perfect condition. /obj/item/organ/external/process() if(owner) - if(parent) - if(parent.status & ORGAN_DESTROYED) - status |= ORGAN_DESTROYED - owner.update_body(1) - return - //Chem traces slowly vanish if(owner.life_tick % 10 == 0) for(var/chemID in trace_chemicals) @@ -367,7 +356,7 @@ Note that amputating the affected organ does in fact remove the infection from t */ /obj/item/organ/external/proc/update_germs() - if(status & (ORGAN_ROBOT|ORGAN_DESTROYED) || (IS_PLANT in owner.species.species_traits)) //Robotic limbs shouldn't be infected, nor should nonexistant limbs. + if((status & ORGAN_ROBOT) || (IS_PLANT in owner.species.species_traits)) //Robotic limbs shouldn't be infected, nor should nonexistant limbs. germ_level = 0 return @@ -447,9 +436,6 @@ Note that amputating the affected organ does in fact remove the infection from t // new damage icon system // returns just the brute/burn damage code /obj/item/organ/external/proc/damage_state_text() - if(status & ORGAN_DESTROYED) - return "--" - var/tburn = 0 var/tbrute = 0 @@ -650,7 +636,7 @@ Note that amputating the affected organ does in fact remove the infection from t /obj/item/organ/external/proc/is_usable() if(((status & ORGAN_ROBOT) && get_damage() >= max_damage) && !tough) //robot limbs just become inoperable at max damage return - return !(status & (ORGAN_DESTROYED|ORGAN_MUTATED|ORGAN_DEAD)) + return !(status & (ORGAN_MUTATED|ORGAN_DEAD)) /obj/item/organ/external/proc/is_malfunctioning() return ((status & ORGAN_ROBOT) && (brute_dam + burn_dam) >= 10 && prob(brute_dam + burn_dam) && !tough) @@ -670,8 +656,6 @@ Note that amputating the affected organ does in fact remove the infection from t . = ..() - status |= ORGAN_DESTROYED - // Attached organs also fly off. if(!ignore_children) for(var/obj/item/organ/external/O in children) diff --git a/code/modules/surgery/organs/organ_icon.dm b/code/modules/surgery/organs/organ_icon.dm index f3edb2ec490..59e3de83894 100644 --- a/code/modules/surgery/organs/organ_icon.dm +++ b/code/modules/surgery/organs/organ_icon.dm @@ -172,7 +172,7 @@ var/global/list/limb_icon_cache = list() gender = "f" else gender = "m" - if(limb_name == "head" && !(status & ORGAN_DESTROYED)) + if(limb_name == "head") var/obj/item/organ/external/head/head_organ = src head_organ.handle_alt_icon() diff --git a/code/modules/surgery/organs_internal.dm b/code/modules/surgery/organs_internal.dm index dc50a5cdf22..a88ebfa6cc2 100644 --- a/code/modules/surgery/organs_internal.dm +++ b/code/modules/surgery/organs_internal.dm @@ -264,8 +264,6 @@ user.visible_message(" [user] has transplanted [tool] into [target]'s [parse_zone(target_zone)].", " You have transplanted [tool] into [target]'s [parse_zone(target_zone)].") - I.status &= ~ORGAN_CUT_AWAY - else if(current_type == "extract") var/mob/living/simple_animal/borer/B = target.has_brain_worms() if(target_zone == "head" && B && B.host == target) @@ -280,7 +278,6 @@ add_logs(user, target, "surgically removed [I.name] from", addition="INTENT: [uppertext(user.a_intent)]") spread_germs_to_organ(I, user, tool) - I.status |= ORGAN_CUT_AWAY var/obj/item/thing = I.remove(target) if(!istype(thing)) thing.forceMove(get_turf(target)) diff --git a/code/modules/surgery/robotics.dm b/code/modules/surgery/robotics.dm index 58474a372c6..fba57f4c997 100644 --- a/code/modules/surgery/robotics.dm +++ b/code/modules/surgery/robotics.dm @@ -56,8 +56,6 @@ var/obj/item/organ/external/affected = target.get_organ(target_zone) if(affected == null) return 0 - if(affected.status & ORGAN_DESTROYED) - return 0 return 1 /datum/surgery_step/robotics/external @@ -443,8 +441,6 @@ user.visible_message(" [user] has reattached [target]'s [I]." , \ " You have reattached [target]'s [I].") - if(I && istype(I)) - I.status &= ~ORGAN_CUT_AWAY else if(current_type == "install") user.visible_message(" [user] has installed \the [tool] into [target]'s [affected.name].", \ " You have installed \the [tool] into [target]'s [affected.name].") @@ -461,7 +457,6 @@ add_logs(user, target, "surgically removed [I.name] from", addition="INTENT: [uppertext(user.a_intent)]") spread_germs_to_organ(I, user) - I.status |= ORGAN_CUT_AWAY var/obj/item/thing = I.remove(target) if(!istype(thing)) thing.forceMove(get_turf(target)) diff --git a/nano/templates/adv_med.tmpl b/nano/templates/adv_med.tmpl index 4aa7bc33fe3..a1ca2815679 100644 --- a/nano/templates/adv_med.tmpl +++ b/nano/templates/adv_med.tmpl @@ -151,7 +151,6 @@ Used In File(s): \code\game\machinery\adv_med.dm {{if value.fireLoss> 0}} {{else}} {{/if}} {{:helper.smoothRound(value.fireLoss)}} - {{if value.status.destroyed}} DESTROYED
{{/if}} {{if value.internalBleeding}} internal bleeding
{{/if}} {{if value.lungRuptured}} lung ruptured
{{/if}} {{if value.status.broken}} {{:value.status.broken}}
{{/if}}