mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-07-11 08:06:33 +01:00
59 lines
2.6 KiB
Plaintext
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
|