diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index d0df98659d1..b19dc70545a 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -57,6 +57,7 @@ var/mutantrace = null + var/bloodloss = 0 var/datum/reagents/vessel var/pale = 0 var/examine_text = "" @@ -284,7 +285,7 @@ for(var/organ in list("l_leg","l_foot","r_leg","r_foot")) var/datum/organ/external/o = organs["[organ]"] - if(o.status & BROKEN) + if(o.broken) tally += 6 if(wear_suit) @@ -777,7 +778,7 @@ M.show_message(text("\red [] has been hit by []", src, O), 1) if (health > 0) var/datum/organ/external/affecting = get_organ(pick("chest", "chest", "chest", "head")) - if(!affecting || affecting.status & DESTROYED) return + if(!affecting || affecting.destroyed) return if (istype(O, /obj/effect/immovablerod)) affecting.take_damage(101, 0) else @@ -947,29 +948,29 @@ // Gloves var/datum/organ/external/lo = organs["l_hand"] var/datum/organ/external/ro = organs["r_hand"] - if (!(lo.status & DESTROYED && ro.status & DESTROYED)) + if (!lo.destroyed || !ro.destroyed) if (gloves) var/t1 = gloves.item_state if (!t1) t1 = gloves.icon_state var/icon/gloves_icon = new /icon("icon" = 'hands.dmi', "icon_state" = text("[][]", t1, (!( lying ) ? null : "2"))) - if(lo.status & DESTROYED) + if(lo.destroyed) gloves_icon.Blend(new /icon('limb_mask.dmi', "right_[lying?"l":"s"]"), ICON_MULTIPLY) - if(ro.status & DESTROYED) + if(ro.destroyed) gloves_icon.Blend(new /icon('limb_mask.dmi', "left_[lying?"l":"s"]"), ICON_MULTIPLY) clothing_overlays += image(gloves_icon, "layer" = GLOVES_LAYER) if (gloves.blood_DNA) var/icon/stain_icon = icon('blood.dmi', "bloodyhands[!lying ? "" : "2"]") - if(lo.status & DESTROYED) + if(lo.destroyed) stain_icon.Blend(new /icon('limb_mask.dmi', "right_[lying?"l":"s"]"), ICON_MULTIPLY) - else if(ro.status & DESTROYED) + else if(ro.destroyed) stain_icon.Blend(new /icon('limb_mask.dmi', "left_[lying?"l":"s"]"), ICON_MULTIPLY) clothing_overlays += image("icon" = stain_icon, "layer" = B_GLOVES_LAYER) else if (blood_DNA) var/icon/stain_icon = icon('blood.dmi', "bloodyhands[!lying ? "" : "2"]") - if(lo.status & DESTROYED) + if(lo.destroyed) stain_icon.Blend(new /icon('limb_mask.dmi', "right_[lying?"l":"s"]"), ICON_MULTIPLY) - else if(ro.status & DESTROYED) + else if(ro.destroyed) stain_icon.Blend(new /icon('limb_mask.dmi', "left_[lying?"l":"s"]"), ICON_MULTIPLY) clothing_overlays += image("icon" = stain_icon, "layer" = B_GLOVES_LAYER) @@ -989,19 +990,19 @@ // Shoes lo = organs["l_foot"] ro = organs["r_foot"] - if (!(lo.status & DESTROYED && ro.status & DESTROYED) && shoes) + if ((!lo.destroyed || !ro.destroyed) && shoes) var/t1 = shoes.icon_state var/icon/shoes_icon = new /icon("icon" = 'feet.dmi', "icon_state" = text("[][]", t1, (!( lying ) ? null : "2"))) - if(lo.status & DESTROYED && !lying) + if(lo.destroyed && !lying) shoes_icon.Blend(new /icon('limb_mask.dmi', "right[lying?"_l":""]"), ICON_MULTIPLY) - else if(ro.status & DESTROYED && !lying) + else if(ro.destroyed && !lying) shoes_icon.Blend(new /icon('limb_mask.dmi', "left[lying?"_l":""]"), ICON_MULTIPLY) clothing_overlays += image(shoes_icon, "layer" = SHOES_LAYER) if (shoes.blood_DNA) var/icon/stain_icon = icon('blood.dmi', "shoeblood[!lying ? "" : "2"]") - if(lo.status & DESTROYED) + if(lo.destroyed) stain_icon.Blend(new /icon('limb_mask.dmi', "right_[lying?"l":"s"]"), ICON_MULTIPLY) - else if(ro.status & DESTROYED) + else if(ro.destroyed) 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 @@ -1388,7 +1389,7 @@ lying_icon.Blend(new /icon('human.dmi', "chest_[g]_l"), ICON_OVERLAY) var/datum/organ/external/head = organs["head"] - if(!(head.status & DESTROYED)) + if(!head.destroyed) stand_icon.Blend(new /icon('human.dmi', "head_[g]_s"), ICON_OVERLAY) lying_icon.Blend(new /icon('human.dmi', "head_[g]_l"), ICON_OVERLAY) @@ -1397,12 +1398,12 @@ if(!istype(part, /datum/organ/external/groin) \ && !istype(part, /datum/organ/external/chest) \ && !istype(part, /datum/organ/external/head) \ - && !(part.status & DESTROYED)) + && !part.destroyed) 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.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) 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.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) stand_icon.Blend(new /icon('human.dmi', "groin_[g]_s"), ICON_OVERLAY) @@ -1442,7 +1443,7 @@ if(!istype(part, /datum/organ/external/groin) \ && !istype(part, /datum/organ/external/chest) \ && !istype(part, /datum/organ/external/head) \ - && (part.status & DESTROYED)) + && part.destroyed) 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) @@ -1472,7 +1473,7 @@ if(organs) var/datum/organ/external/head = organs["head"] if(head) - if(head.status & DESTROYED) + if(head.destroyed) del(face_standing) del(face_lying) return @@ -2597,7 +2598,7 @@ It can still be worn/put on as normal. var/amount = 0.0 for(var/name in organs) var/datum/organ/external/O = organs[name] - if(!(O.status & ROBOT)) amount+= O.brute_dam + if(!O.robot) amount+= O.brute_dam return amount /mob/living/carbon/human/adjustBruteLoss(var/amount, var/used_weapon = null) @@ -2610,7 +2611,7 @@ It can still be worn/put on as normal. var/amount = 0.0 for(var/name in organs) var/datum/organ/external/O = organs[name] - if(!(O.status & ROBOT)) amount+= O.burn_dam + if(!O.robot) amount+= O.burn_dam return amount /mob/living/carbon/human/adjustFireLoss(var/amount,var/used_weapon = null) @@ -2722,7 +2723,7 @@ It can still be worn/put on as normal. check_dna() for(var/mob/M in view()) - M.show_message("\blue \The [src.name] morphs and changes [get_gender_form("its")] appearance!") + user.visible_message("\blue \The [src] morphs and changes [user.get_gender_form() == MALE ? "his" : user.get_gender_form() == FEMALE ? "her" : "their"] appearance!", "\blue You change your appearance!", "\red Oh, god! What the hell was that? It sounded like flesh getting squished and bone ground into a different shape!") /mob/living/carbon/human/proc/remotesay() set name = "Project mind" @@ -2783,6 +2784,12 @@ It can still be worn/put on as normal. src.tkdisable = 0 /mob/living/carbon/human/get_visible_gender() - if(wear_suit && wear_suit.flags_inv & HIDEJUMPSUIT && ((head && head.flags_inv & HIDEMASK) || wear_mask)) - return NEUTER - return gender + var/skip_gender = (wear_suit && wear_suit.flags_inv & HIDEJUMPSUIT && ((head && head.flags_inv & HIDEMASK) || wear_mask)) + + if( !skip_gender ) //big suits/masks make it hard to tell their gender + switch(gender) + if(MALE) + return list("It" = "He", "its" = "his", "it" = "he", "has" = "has", "is" = "is", "itself" = "himself") + if(FEMALE) + return list("It" = "She", "its" = "her", "it" = "she", "has" = "has", "is" = "is", "itself" = "herself") + return list("It" = "They", "its" = "their", "it" = "them", "has" = "have", "is" = "are", "itself" = "themselves")