Files
2025-12-19 18:42:58 +01:00

59 lines
2.6 KiB
Plaintext

/datum/surgery_operation/organ/stomach_pump
name = "pump stomach"
rnd_name = "Gastric Lavage (Stomach Pump)"
desc = "Manually pump a patient's stomach to induce vomiting and expel harmful chemicals."
operation_flags = OPERATION_NOTABLE
implements = list(
IMPLEMENT_HAND = 1,
)
time = 2 SECONDS
required_organ_flag = ORGAN_TYPE_FLAGS & ~ORGAN_ROBOTIC
target_type = /obj/item/organ/stomach
all_surgery_states_required = SURGERY_SKIN_OPEN|SURGERY_ORGANS_CUT
/datum/surgery_operation/organ/stomach_pump/get_default_radial_image()
return image(/atom/movable/screen/alert/disgusted::overlay_icon, /atom/movable/screen/alert/disgusted::overlay_state)
/datum/surgery_operation/organ/stomach_pump/all_required_strings()
return ..() + list("the patient must not be husked")
/datum/surgery_operation/organ/stomach_pump/state_check(obj/item/organ/stomach/organ)
return !HAS_TRAIT(organ.owner, TRAIT_HUSK)
/datum/surgery_operation/organ/stomach_pump/on_preop(obj/item/organ/stomach/organ, mob/living/surgeon, obj/item/tool, list/operation_args)
display_results(
surgeon,
organ.owner,
span_notice("You begin to pump [organ.owner]'s stomach..."),
span_notice("[surgeon] begins to pump [organ.owner]'s stomach."),
span_notice("[surgeon] begins to press on [organ.owner]'s abdomen."),
)
display_pain(organ.owner, "You feel a horrible sloshing feeling in your gut! You're going to be sick!")
/datum/surgery_operation/organ/stomach_pump/on_success(obj/item/organ/stomach/organ, mob/living/surgeon, obj/item/tool, list/operation_args)
display_results(
surgeon,
organ.owner,
span_notice("[surgeon] forces [organ.owner] to vomit, cleansing their stomach of some chemicals!"),
span_notice("[surgeon] forces [organ.owner] to vomit, cleansing their stomach of some chemicals!"),
span_notice("[surgeon] forces [organ.owner] to vomit!"),
)
organ.owner.vomit((MOB_VOMIT_MESSAGE | MOB_VOMIT_STUN), lost_nutrition = 20, purge_ratio = 0.67)
/datum/surgery_operation/organ/stomach_pump/on_failure(obj/item/organ/stomach/organ, mob/living/surgeon, obj/item/tool, list/operation_args)
display_results(
surgeon,
organ.owner,
span_warning("You screw up, bruising [organ.owner]'s chest!"),
span_warning("[surgeon] screws up, bruising [organ.owner]'s chest!"),
span_warning("[surgeon] screws up!"),
)
organ.apply_organ_damage(5)
organ.bodypart_owner.receive_damage(5)
/datum/surgery_operation/organ/stomach_pump/mechanic
name = "purge nutrient processor"
rnd_name = "Nutrient Processor Purge (Stomach Pump)"
required_organ_flag = ORGAN_ROBOTIC
operation_flags = parent_type::operation_flags | OPERATION_MECHANIC