/mob/living/carbon/examine(mob/user) var/t_He = p_they(TRUE) var/t_His = p_their(TRUE) var/t_his = p_their() var/t_him = p_them() var/t_has = p_have() var/t_is = p_are() . = list("This is [icon2html(src, user)] \a [src]!") if (handcuffed) . += "[t_He] [t_is] [icon2html(handcuffed, user)] handcuffed!" if (head) . += "[t_He] [t_is] wearing [head.get_examine_string(user)] on [t_his] head." if (wear_mask) . += "[t_He] [t_is] wearing [wear_mask.get_examine_string(user)] on [t_his] face." if (wear_neck) . += "[t_He] [t_is] wearing [wear_neck.get_examine_string(user)] around [t_his] neck.\n" for(var/obj/item/I in held_items) if(!(I.item_flags & ABSTRACT)) . += "[t_He] [t_is] holding [I.get_examine_string(user)] in [t_his] [get_held_index_name(get_held_index_of_item(I))]." if (back) . += "[t_He] [t_has] [back.get_examine_string(user)] on [t_his] back." var/appears_dead = 0 if (stat == DEAD) appears_dead = 1 if(getorgan(/obj/item/organ/brain)) . += "[t_He] [t_is] limp and unresponsive, with no signs of life." else if(get_bodypart(BODY_ZONE_HEAD)) . += "It appears that [t_his] brain is missing..." var/list/msg = list("") var/list/missing = list(BODY_ZONE_HEAD, BODY_ZONE_CHEST, BODY_ZONE_R_ARM, BODY_ZONE_L_ARM, BODY_ZONE_R_LEG, BODY_ZONE_L_LEG) var/list/disabled = list() for(var/X in bodyparts) var/obj/item/bodypart/BP = X if(BP.disabled) disabled += BP missing -= BP.body_zone for(var/obj/item/I in BP.embedded_objects) if(I.isEmbedHarmless()) msg += "[t_He] [t_has] \a [icon2html(I, user)] [I] stuck to [t_his] [BP.name]!\n" else msg += "[t_He] [t_has] \a [icon2html(I, user)] [I] embedded in [t_his] [BP.name]!\n" for(var/i in BP.wounds) var/datum/wound/W = i msg += "[W.get_examine_description(user)]\n" for(var/X in disabled) var/obj/item/bodypart/BP = X var/damage_text if(!(BP.get_damage(include_stamina = FALSE) >= BP.max_damage)) //Stamina is disabling the limb damage_text = "limp and lifeless" else damage_text = (BP.brute_dam >= BP.burn_dam) ? BP.heavy_brute_msg : BP.heavy_burn_msg msg += "[capitalize(t_his)] [BP.name] is [damage_text]!\n" for(var/t in missing) if(t==BODY_ZONE_HEAD) msg += "[t_His] [parse_zone(t)] is missing!\n" continue msg += "[t_His] [parse_zone(t)] is missing!\n" var/temp = getBruteLoss() if(!(user == src && src.hal_screwyhud == SCREWYHUD_HEALTHY)) //fake healthy if(temp) if (temp < 25) msg += "[t_He] [t_has] minor bruising.\n" else if (temp < 50) msg += "[t_He] [t_has] moderate bruising!\n" else msg += "[t_He] [t_has] severe bruising!\n" temp = getFireLoss() if(temp) if (temp < 25) msg += "[t_He] [t_has] minor burns.\n" else if (temp < 50) msg += "[t_He] [t_has] moderate burns!\n" else msg += "[t_He] [t_has] severe burns!\n" temp = getCloneLoss() if(temp) if(temp < 25) msg += "[t_He] [t_is] slightly deformed.\n" else if (temp < 50) msg += "[t_He] [t_is] moderately deformed!\n" else msg += "[t_He] [t_is] severely deformed!\n" if(HAS_TRAIT(src, TRAIT_DUMB)) msg += "[t_He] seem[p_s()] to be clumsy and unable to think.\n" if(fire_stacks > 0) msg += "[t_He] [t_is] covered in something flammable.\n" if(fire_stacks < 0) msg += "[t_He] look[p_s()] a little soaked.\n" if(pulledby && pulledby.grab_state) msg += "[t_He] [t_is] restrained by [pulledby]'s grip.\n" var/scar_severity = 0 for(var/i in all_scars) var/datum/scar/S = i if(S.is_visible(user)) scar_severity += S.severity switch(scar_severity) if(1 to 2) msg += "[t_He] [t_has] visible scarring, you can look again to take a closer look...\n" if(3 to 4) msg += "[t_He] [t_has] several bad scars, you can look again to take a closer look...\n" if(5 to 6) msg += "[t_He] [t_has] significantly disfiguring scarring, you can look again to take a closer look...\n" if(7 to INFINITY) msg += "[t_He] [t_is] just absolutely fucked up, you can look again to take a closer look...\n" //GS13 EDIT FAT EXAMINE switch(fullness) if(FULLNESS_LEVEL_BLOATED to FULLNESS_LEVEL_BEEG) msg += "[t_He] look[p_s()] like [t_He] ate a bit too much.\n" if(FULLNESS_LEVEL_BEEG to FULLNESS_LEVEL_NOMOREPLZ) msg += "[t_His] stomach looks very round and very full.\n" if(FULLNESS_LEVEL_NOMOREPLZ to INFINITY) msg += "[t_His] stomach has been stretched to enormous proportions.\n" if(nutrition < NUTRITION_LEVEL_STARVING - 50) msg += "[t_He] [t_is] severely malnourished.\n" if(fatness >= FATNESS_LEVEL_BLOB) msg += "[t_He] [t_is] completely engulfed in rolls upon rolls of flab. [t_His] head is poking out on top of [t_His] body, akin to a marble on top of a hill.\n" else if(fatness >= FATNESS_LEVEL_IMMOBILE) msg += "[t_His] body is buried in an overflowing surplus of adipose, and [t_His] legs are completely buried beneath layers of meaty, obese flesh.\n" else if(fatness >= FATNESS_LEVEL_BARELYMOBILE) msg += "[t_He] [t_is] as wide as [t_He] [t_is] tall, barely able to move [t_His] masssive body that seems to be overtaken with piles of flab.\n" else if(fatness >= FATNESS_LEVEL_EXTREMELY_OBESE) msg += "[t_He] [t_is] ripe with numerous rolls of fat, almost all of [t_His] body layered with adipose.\n" else if(fatness >= FATNESS_LEVEL_MORBIDLY_OBESE) msg += "[t_He] [t_is] utterly stuffed with abundant lard, [t_He] doesn't seem to be able to move much.\n" else if(fatness >= FATNESS_LEVEL_OBESE) msg += "[t_He] [t_is] engorged with fat, [t_His] body laden in rolls of fattened flesh.\n" else if(fatness >= FATNESS_LEVEL_VERYFAT) msg += "[t_He] [t_is] pleasantly plushy, [t_His] body gently wobbling whenever they move. \n" else if(fatness >= FATNESS_LEVEL_FATTER) msg += "[t_He] [t_is] soft and curvy, [t_His] belly looking like a small pillow.\n" if(msg.len) . += "[msg.Join("")]" if(!appears_dead) if(stat == UNCONSCIOUS) . += "[t_He] [t_is]n't responding to anything around [t_him] and seems to be asleep." else if(InCritical()) . += "[t_His] breathing is shallow and labored." if(digitalcamo) . += "[t_He] [t_is] moving [t_his] body in an unnatural and blatantly unsimian manner." if(SEND_SIGNAL(src, COMSIG_COMBAT_MODE_CHECK, COMBAT_MODE_ACTIVE)) . += "[t_He] [t_is] visibly tense[CHECK_MOBILITY(src, MOBILITY_STAND) ? "." : ", and [t_is] standing in combative stance."]" //GS13 EDIT START if(client?.prefs?.noncon_weight_gain) msg += "Non-con fattening is allowed\n" if(client?.prefs?.trouble_seeker) msg += "[t_He] seems to want to be confronted.\n" //GS13 EDIT END var/trait_exam = common_trait_examine() if (!isnull(trait_exam)) . += trait_exam var/datum/component/mood/mood = src.GetComponent(/datum/component/mood) if(mood) switch(mood.shown_mood) if(-INFINITY to MOOD_LEVEL_SAD4) . += "[t_He] look[p_s()] depressed." if(MOOD_LEVEL_SAD4 to MOOD_LEVEL_SAD3) . += "[t_He] look[p_s()] very sad." if(MOOD_LEVEL_SAD3 to MOOD_LEVEL_SAD2) . += "[t_He] look[p_s()] a bit down." if(MOOD_LEVEL_HAPPY2 to MOOD_LEVEL_HAPPY3) . += "[t_He] look[p_s()] quite happy." if(MOOD_LEVEL_HAPPY3 to MOOD_LEVEL_HAPPY4) . += "[t_He] look[p_s()] very happy." if(MOOD_LEVEL_HAPPY4 to INFINITY) . += "[t_He] look[p_s()] ecstatic." if(LAZYLEN(.) > 1) .[2] = "
[.[2]]" SEND_SIGNAL(src, COMSIG_PARENT_EXAMINE, user, .) /mob/living/carbon/examine_more(mob/user) if(!all_scars) return ..() var/list/visible_scars for(var/i in all_scars) var/datum/scar/S = i if(S.is_visible(user)) LAZYADD(visible_scars, S) if(!visible_scars) return ..() var/msg = list("You examine [src] closer, and note the following...") for(var/i in visible_scars) var/datum/scar/S = i var/scar_text = S.get_examine_description(user) if(scar_text) msg += "[scar_text]" return msg