mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-21 03:59:59 +01:00
* Makes the stomach important part of eating (#53228) This puts food you eat in to the stomach. If you do not have a stomach you can not eat, if you try to swallow anything you will spew it out. Changes to surgeries: Stomach pump can now be done on the living, and pushes out the reagents in the stomach. Blood filter is a new tool and cleans the reagents out of the body. This also makes it so that reagents that do not metabolize can accumulate in the stomach reducing how much food you can eat. * Makes the stomach important part of eating Co-authored-by: NightRed <nightred@gmail.com>
53 lines
2.3 KiB
Plaintext
53 lines
2.3 KiB
Plaintext
/datum/surgery/stomach_pump
|
|
name = "Stomach Pump"
|
|
steps = list(/datum/surgery_step/incise,
|
|
/datum/surgery_step/retract_skin,
|
|
/datum/surgery_step/incise,
|
|
/datum/surgery_step/clamp_bleeders,
|
|
/datum/surgery_step/stomach_pump,
|
|
/datum/surgery_step/close)
|
|
|
|
target_mobtypes = list(/mob/living/carbon/human, /mob/living/carbon/monkey)
|
|
possible_locs = list(BODY_ZONE_CHEST)
|
|
requires_bodypart_type = TRUE
|
|
ignore_clothes = FALSE
|
|
var/accumulated_experience = 0
|
|
|
|
/datum/surgery/stomach_pump/can_start(mob/user, mob/living/carbon/target)
|
|
var/obj/item/organ/stomach/S = target.getorganslot(ORGAN_SLOT_STOMACH)
|
|
if(HAS_TRAIT(target, TRAIT_HUSK))
|
|
return FALSE
|
|
if(!S)
|
|
return FALSE
|
|
return ..()
|
|
|
|
//Working the stomach by hand in such a way that you induce vomiting.
|
|
/datum/surgery_step/stomach_pump
|
|
name = "Pump Stomach"
|
|
accept_hand = TRUE
|
|
repeatable = TRUE
|
|
time = 20
|
|
|
|
/datum/surgery_step/stomach_pump/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
|
|
display_results(user, target, "<span class='notice'>You begin pumping [target]'s stomach...</span>",
|
|
"<span class='notice'>[user] begins to pump [target]'s stomach.</span>",
|
|
"<span class='notice'>[user] begins to press on [target]'s chest.</span>")
|
|
|
|
/datum/surgery_step/stomach_pump/success(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery, default_display_results = FALSE)
|
|
if(ishuman(target))
|
|
var/mob/living/carbon/human/H = target
|
|
display_results(user, target, "<span class='notice'>[user] forces [H] to vomit, cleansing their stomach of some chemicals!</span>",
|
|
"<span class='notice'>[user] forces [H] to vomit, cleansing their stomach of some chemicals!</span>",
|
|
"[user] forces [H] to vomit!")
|
|
H.vomit(20, FALSE, TRUE, 1, TRUE, FALSE, purge = TRUE) //called with purge as true to lose more reagents
|
|
return ..()
|
|
|
|
/datum/surgery_step/stomach_pump/failure(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
|
|
if(ishuman(target))
|
|
var/mob/living/carbon/human/H = target
|
|
display_results(user, target, "<span class='warning'>You screw up, brusing [H]'s chest!</span>",
|
|
"<span class='warning'>[user] screws up, brusing [H]'s chest!</span>",
|
|
"<span class='warning'>[user] screws up!</span>")
|
|
H.adjustOrganLoss(ORGAN_SLOT_STOMACH, 5)
|
|
H.adjustBruteLoss(5)
|