/obj/item/organ/stomach name = "stomach" icon_state = "stomach" w_class = WEIGHT_CLASS_NORMAL zone = BODY_ZONE_CHEST slot = ORGAN_SLOT_STOMACH attack_verb = list("gored", "squished", "slapped", "digested") desc = "Onaka ga suite imasu." var/disgust_metabolism = 1 healing_factor = STANDARD_ORGAN_HEALING decay_factor = STANDARD_ORGAN_DECAY low_threshold_passed = "Your stomach flashes with pain before subsiding. Food doesn't seem like a good idea right now." high_threshold_passed = "Your stomach flares up with constant pain- you can hardly stomach the idea of food right now!" high_threshold_cleared = "The pain in your stomach dies down for now, but food still seems unappealing." low_threshold_cleared = "The last bouts of pain in your stomach have died out." /obj/item/organ/stomach/on_life() ..() var/datum/reagent/consumable/nutriment/Nutri if(ishuman(owner)) var/mob/living/carbon/human/H = owner if(!(organ_flags & ORGAN_FAILING)) H.dna.species.handle_digestion(H) handle_disgust(H) Nutri = locate(/datum/reagent/consumable/nutriment) in H.reagents.reagent_list if(Nutri) if(prob((damage/40) * Nutri.volume * Nutri.volume)) H.vomit(damage) to_chat(H, "Your stomach reels in pain as you're incapable of holding down all that food!") else if(Nutri && damage > high_threshold) if(prob((damage/10) * Nutri.volume * Nutri.volume)) H.vomit(damage) to_chat(H, "Your stomach reels in pain as you're incapable of holding down all that food!") else if(iscarbon(owner)) var/mob/living/carbon/C = owner Nutri = locate(/datum/reagent/consumable/nutriment) in C.reagents.reagent_list if(damage < low_threshold) return /obj/item/organ/stomach/proc/handle_disgust(mob/living/carbon/human/H) if(H.disgust) var/pukeprob = 5 + 0.05 * H.disgust if(H.disgust >= DISGUST_LEVEL_GROSS) if(prob(10)) H.stuttering += 1 H.confused += 2 if(prob(10) && !H.stat) to_chat(H, "You feel kind of iffy...") H.jitteriness = max(H.jitteriness - 3, 0) if(H.disgust >= DISGUST_LEVEL_VERYGROSS) if(prob(pukeprob)) //iT hAndLeS mOrE ThaN PukInG H.confused += 2.5 H.stuttering += 1 H.vomit(10, 0, 1, 0, 1, 0) H.Dizzy(5) if(H.disgust >= DISGUST_LEVEL_DISGUSTED) if(prob(25)) H.blur_eyes(3) //We need to add more shit down here H.adjust_disgust(-0.5 * disgust_metabolism) switch(H.disgust) if(0 to DISGUST_LEVEL_GROSS) H.clear_alert("disgust") SEND_SIGNAL(H, COMSIG_CLEAR_MOOD_EVENT, "disgust") if(DISGUST_LEVEL_GROSS to DISGUST_LEVEL_VERYGROSS) H.throw_alert("disgust", /obj/screen/alert/gross) SEND_SIGNAL(H, COMSIG_ADD_MOOD_EVENT, "disgust", /datum/mood_event/gross) if(DISGUST_LEVEL_VERYGROSS to DISGUST_LEVEL_DISGUSTED) H.throw_alert("disgust", /obj/screen/alert/verygross) SEND_SIGNAL(H, COMSIG_ADD_MOOD_EVENT, "disgust", /datum/mood_event/verygross) if(DISGUST_LEVEL_DISGUSTED to INFINITY) H.throw_alert("disgust", /obj/screen/alert/disgusted) SEND_SIGNAL(H, COMSIG_ADD_MOOD_EVENT, "disgust", /datum/mood_event/disgusted) /obj/item/organ/stomach/Remove(special = FALSE) var/mob/living/carbon/human/H = owner if(H && istype(H)) H.clear_alert("disgust") SEND_SIGNAL(H, COMSIG_CLEAR_MOOD_EVENT, "disgust") ..() /obj/item/organ/stomach/fly name = "insectoid stomach" icon_state = "stomach-x" //xenomorph liver? It's just a black liver so it fits. desc = "A mutant stomach designed to handle the unique diet of a flyperson." /obj/item/organ/stomach/plasmaman name = "digestive crystal" icon_state = "stomach-p" desc = "A strange crystal that is responsible for metabolizing the unseen energy force that feeds plasmamen."