diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm index 207647d7b31..e3580ea3a7c 100644 --- a/code/modules/mob/living/carbon/human/life.dm +++ b/code/modules/mob/living/carbon/human/life.dm @@ -447,6 +447,19 @@ if(breath) loc.assume_air(breath) + vomit() + // Make the human vomit on the floor + for(var/mob/O in viewers(world.view, src)) + O.show_message(text("\red [] throws up!", src), 1) + playsound(src.loc, 'splat.ogg', 50, 1) + + var/turf/location = loc + if (istype(location, /turf/simulated)) + location.add_vomit_floor(src, 1) + + nutrition -= 20 + adjustToxLoss(-3) + get_breath_from_internal(volume_needed) if(internal) @@ -1088,10 +1101,13 @@ if(!client) return 0 + // Apparently deletes all the hud_ icons for(var/image/hud in client.images) if(copytext(hud.icon_state,1,4) == "hud") //ugly, but icon comparison is worse, I believe del(hud) + // Handle special vision stuff, such as thermals or ghost vision + // ------------------------------------------------------------- if (stat == 2 || mutations & XRAY) sight |= SEE_TURFS sight |= SEE_MOBS @@ -1131,11 +1147,11 @@ sight |= SEE_TURFS if(!druggy) see_invisible = 0 - else if(istype(glasses, /obj/item/clothing/glasses/meson)) sight |= SEE_TURFS if(!druggy) see_invisible = 0 + else if(istype(glasses, /obj/item/clothing/glasses/night)) see_in_dark = 5 if(!druggy) @@ -1185,14 +1201,12 @@ - - - - - - /* HUD shit goes here, as long as it doesn't modify src.sight flags */ // The purpose of this is to stop xray and w/e from preventing you from using huds -- Love, Doohl + + + // Special on-map HUDs like the medical HUD + // ---------------------------------------- if(istype(glasses, /obj/item/clothing/glasses/hud/health)) if(client) glasses:process_hud(src) @@ -1214,15 +1228,20 @@ if (!druggy) see_invisible = 0 + // ====================================================== + // HUD icon updates(sleep, rest, health, nutrition, etc.) + // ====================================================== - + // Update the sleep icon + // ----------------------- if (src.sleep && !hal_crit) src.sleep.icon_state = text("sleep[]", src.sleeping > 0 ? 1 : 0) src.sleep.overlays = null if(src.sleeping_willingly) src.sleep.overlays += icon(src.sleep.icon, "sleep_willing") - if (rest) rest.icon_state = text("rest[]", resting) + // Update the health display + // ------------------------- if (healths) if (stat != 2) // if the mob is not in crit, do a switch @@ -1253,6 +1272,8 @@ if(hal_screwyhud == 2) healths.icon_state = "health7" + // Update the nutrition icon + // ------------------------- if (nutrition_icon) switch(nutrition) if(450 to INFINITY) @@ -1266,6 +1287,8 @@ else nutrition_icon.icon_state = "nutrition4" + // Update the icon displaying whether we're on internals + // ----------------------------------------------------- if (pressure) if(istype(wear_suit, /obj/item/clothing/suit/space)||istype(wear_suit, /obj/item/clothing/suit/armor/captain)) @@ -1286,17 +1309,25 @@ else pressure.icon_state = "pressure-2" + // Update the icon which displays whether we're pulling something + // -------------------------------------------------------------- if(pullin) pullin.icon_state = "pull[pulling ? 1 : 0]" + // Update the rest icon + // -------------------- if(rest) rest.icon_state = "rest[(resting || lying || sleeping) ? 1 : 0]" - + // Update the air alarms + // --------------------- if (toxin || hal_screwyhud == 4) toxin.icon_state = "tox[toxins_alert ? 1 : 0]" if (oxygen || hal_screwyhud == 3) oxygen.icon_state = "oxy[oxygen_alert ? 1 : 0]" - if (fire) fire.icon_state = "fire[fire_alert ? 1 : 0]" //NOTE: INVESTIGATE NUKE BURNINGS + if (fire) fire.icon_state = "fire[fire_alert ? 1 : 0]" + //NOTE: INVESTIGATE NUKE BURNINGS //NOTE: the alerts dont reset when youre out of danger. dont blame me, //blame the person who coded them. Temporary fix added. + // Update body temperature display + // ------------------------------- if(bodytemp) switch(bodytemperature) //310.055 optimal body temp if(370 to INFINITY) @@ -1318,6 +1349,9 @@ else bodytemp.icon_state = "temp-4" + // ==================================================== + // Update complete screen overlays, like blurred vision + // ==================================================== if(!client) return 0 //Wish we did not need these client.screen -= hud_used.blurry client.screen -= hud_used.druggy @@ -1350,7 +1384,9 @@ client.screen += hud_used.vimpaired - + // ============================================= + // If we're a machine, check if we can still see + // ============================================= if (stat != 2) if (machine) if (!( machine.check_eye(src) )) @@ -1363,13 +1399,6 @@ return 1 handle_random_events() - /* // probably stupid -- Doohl - if (prob(1) && prob(2)) - spawn(0) - emote("sneeze") - return - */ - // Puke if toxloss is too high if(!stat) if (getToxLoss() >= 45 && nutrition > 20) @@ -1377,16 +1406,7 @@ if(lastpuke >= 25) // about 25 second delay I guess Stun(5) - for(var/mob/O in viewers(world.view, src)) - O.show_message(text("\red [] throws up!", src), 1) - playsound(src.loc, 'splat.ogg', 50, 1) - - var/turf/location = loc - if (istype(location, /turf/simulated)) - location.add_vomit_floor(src, 1) - - nutrition -= 20 - adjustToxLoss(-3) + src.vomit() // make it so you can only puke so fast lastpuke = 0