mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-24 13:38:41 +01:00
Cobbduceus: Surgery Skill XP/Step Buffs (#49196)
* 💉 * 🐣 * excels help * waaa_fb * fixed lobotomy skill * waaa_fb2
This commit is contained in:
@@ -16,7 +16,7 @@
|
||||
name = "reshape ligaments"
|
||||
accept_hand = TRUE
|
||||
time = 125
|
||||
experience_given = 5
|
||||
experience_given = MEDICAL_SKILL_ADVANCED
|
||||
|
||||
/datum/surgery_step/reshape_ligaments/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
|
||||
display_results(user, target, "<span class='notice'>You start reshaping [target]'s ligaments into a hook-like shape.</span>",
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
name = "reinforce ligaments"
|
||||
accept_hand = TRUE
|
||||
time = 125
|
||||
experience_given = 5
|
||||
experience_given = MEDICAL_SKILL_ADVANCED
|
||||
|
||||
/datum/surgery_step/reinforce_ligaments/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
|
||||
display_results(user, target, "<span class='notice'>You start reinforcing [target]'s ligaments.</span>",
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
name = "shape vein muscles"
|
||||
accept_hand = TRUE
|
||||
time = 125
|
||||
experience_given = 5
|
||||
experience_given = MEDICAL_SKILL_ADVANCED
|
||||
|
||||
/datum/surgery_step/muscled_veins/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
|
||||
display_results(user, target, "<span class='notice'>You start wrapping muscles around [target]'s circulatory system.</span>",
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
name = "ground nerves"
|
||||
accept_hand = TRUE
|
||||
time = 155
|
||||
experience_given = 5
|
||||
experience_given = MEDICAL_SKILL_ADVANCED
|
||||
|
||||
/datum/surgery_step/ground_nerves/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
|
||||
display_results(user, target, "<span class='notice'>You start rerouting [target]'s nerves.</span>",
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
name = "splice nerves"
|
||||
accept_hand = TRUE
|
||||
time = 155
|
||||
experience_given = 5
|
||||
experience_given = MEDICAL_SKILL_ADVANCED
|
||||
|
||||
/datum/surgery_step/splice_nerves/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
|
||||
display_results(user, target, "<span class='notice'>You start splicing together [target]'s nerves.</span>",
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
name = "thread veins"
|
||||
accept_hand = TRUE
|
||||
time = 125
|
||||
experience_given = 5
|
||||
experience_given = MEDICAL_SKILL_ADVANCED
|
||||
|
||||
/datum/surgery_step/thread_veins/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
|
||||
display_results(user, target, "<span class='notice'>You start weaving [target]'s circulatory system.</span>",
|
||||
|
||||
@@ -29,6 +29,7 @@
|
||||
name = "brainwash"
|
||||
implements = list(TOOL_HEMOSTAT = 85, TOOL_WIRECUTTER = 50, /obj/item/stack/packageWrap = 35, /obj/item/stack/cable_coil = 15)
|
||||
time = 200
|
||||
experience_given = MEDICAL_SKILL_ADVANCED
|
||||
var/objective
|
||||
|
||||
/datum/surgery_step/brainwash/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
|
||||
@@ -39,7 +40,7 @@
|
||||
"<span class='notice'>[user] begins to fix [target]'s brain.</span>",
|
||||
"<span class='notice'>[user] begins to perform surgery on [target]'s brain.</span>")
|
||||
|
||||
/datum/surgery_step/brainwash/success(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery, default_display_results)
|
||||
/datum/surgery_step/brainwash/success(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery, default_display_results = FALSE)
|
||||
if(!target.mind)
|
||||
to_chat(user, "<span class='warning'>[target] doesn't respond to the brainwashing, as if [target.p_they()] lacked a mind...</span>")
|
||||
return FALSE
|
||||
@@ -53,7 +54,7 @@
|
||||
brainwash(target, objective)
|
||||
message_admins("[ADMIN_LOOKUPFLW(user)] surgically brainwashed [ADMIN_LOOKUPFLW(target)] with the objective '[objective]'.")
|
||||
log_game("[key_name(user)] surgically brainwashed [key_name(target)] with the objective '[objective]'.")
|
||||
return TRUE
|
||||
return ..()
|
||||
|
||||
/datum/surgery_step/brainwash/failure(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
|
||||
if(target.getorganslot(ORGAN_SLOT_BRAIN))
|
||||
|
||||
@@ -26,6 +26,7 @@
|
||||
implements = list(TOOL_SCALPEL = 85, /obj/item/melee/transforming/energy/sword = 55, /obj/item/kitchen/knife = 35,
|
||||
/obj/item/shard = 25, /obj/item = 20)
|
||||
time = 100
|
||||
experience_given = MEDICAL_SKILL_ADVANCED //lose XP if you end up giving them bad traumas
|
||||
|
||||
/datum/surgery_step/lobotomize/tool_check(mob/user, obj/item/tool)
|
||||
if(implement_type == /obj/item && !tool.get_sharpness())
|
||||
@@ -37,7 +38,7 @@
|
||||
"<span class='notice'>[user] begins to perform a lobotomy on [target]'s brain.</span>",
|
||||
"<span class='notice'>[user] begins to perform surgery on [target]'s brain.</span>")
|
||||
|
||||
/datum/surgery_step/lobotomize/success(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery, default_display_results)
|
||||
/datum/surgery_step/lobotomize/success(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery, default_display_results = FALSE)
|
||||
display_results(user, target, "<span class='notice'>You succeed in lobotomizing [target].</span>",
|
||||
"<span class='notice'>[user] successfully lobotomizes [target]!</span>",
|
||||
"<span class='notice'>[user] completes the surgery on [target]'s brain.</span>")
|
||||
@@ -47,11 +48,14 @@
|
||||
switch(rand(1,4))//Now let's see what hopefully-not-important part of the brain we cut off
|
||||
if(1)
|
||||
target.gain_trauma_type(BRAIN_TRAUMA_MILD, TRAUMA_RESILIENCE_MAGIC)
|
||||
experience_given = MEDICAL_SKILL_ADVANCED*0.9
|
||||
if(2)
|
||||
target.gain_trauma_type(BRAIN_TRAUMA_SEVERE, TRAUMA_RESILIENCE_MAGIC)
|
||||
experience_given = MEDICAL_SKILL_ADVANCED*0.8
|
||||
if(3)
|
||||
target.gain_trauma_type(BRAIN_TRAUMA_SPECIAL, TRAUMA_RESILIENCE_MAGIC)
|
||||
return TRUE
|
||||
experience_given = MEDICAL_SKILL_ADVANCED*0.5
|
||||
return ..()
|
||||
|
||||
/datum/surgery_step/lobotomize/failure(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
|
||||
var/obj/item/organ/brain/B = target.getorganslot(ORGAN_SLOT_BRAIN)
|
||||
|
||||
@@ -22,17 +22,18 @@
|
||||
time = 50
|
||||
chems_needed = list(/datum/reagent/toxin/zombiepowder, /datum/reagent/medicine/rezadone)
|
||||
require_all_chems = FALSE
|
||||
experience_given = MEDICAL_SKILL_ADVANCED
|
||||
|
||||
/datum/surgery_step/bionecrosis/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
|
||||
display_results(user, target, "<span class='notice'>You begin to grow a romerol tumor on [target]'s brain...</span>",
|
||||
"<span class='notice'>[user] begins to tinker with [target]'s brain...</span>",
|
||||
"<span class='notice'>[user] begins to perform surgery on [target]'s brain.</span>")
|
||||
|
||||
/datum/surgery_step/bionecrosis/success(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery, default_display_results)
|
||||
/datum/surgery_step/bionecrosis/success(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery, default_display_results = FALSE)
|
||||
display_results(user, target, "<span class='notice'>You succeed in growing a romerol tumor on [target]'s brain.</span>",
|
||||
"<span class='notice'>[user] successfully grows a romerol tumor on [target]'s brain!</span>",
|
||||
"<span class='notice'>[user] completes the surgery on [target]'s brain.</span>")
|
||||
if(!target.getorganslot(ORGAN_SLOT_ZOMBIE))
|
||||
var/obj/item/organ/zombie_infection/ZI = new()
|
||||
ZI.Insert(target)
|
||||
return TRUE
|
||||
return ..()
|
||||
|
||||
@@ -22,18 +22,19 @@
|
||||
name = "rewire brain"
|
||||
implements = list(TOOL_HEMOSTAT = 100, TOOL_SCREWDRIVER = 35, /obj/item/pen = 15)
|
||||
time = 40
|
||||
experience_given = MEDICAL_SKILL_ADVANCED
|
||||
|
||||
/datum/surgery_step/pacify/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
|
||||
display_results(user, target, "<span class='notice'>You begin to pacify [target]...</span>",
|
||||
"<span class='notice'>[user] begins to fix [target]'s brain.</span>",
|
||||
"<span class='notice'>[user] begins to perform surgery on [target]'s brain.</span>")
|
||||
|
||||
/datum/surgery_step/pacify/success(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery, default_display_results)
|
||||
/datum/surgery_step/pacify/success(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery, default_display_results = FALSE)
|
||||
display_results(user, target, "<span class='notice'>You succeed in neurologically pacifying [target].</span>",
|
||||
"<span class='notice'>[user] successfully fixes [target]'s brain!</span>",
|
||||
"<span class='notice'>[user] completes the surgery on [target]'s brain.</span>")
|
||||
target.gain_trauma(/datum/brain_trauma/severe/pacifism, TRAUMA_RESILIENCE_LOBOTOMY)
|
||||
return TRUE
|
||||
return ..()
|
||||
|
||||
/datum/surgery_step/pacify/failure(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
|
||||
display_results(user, target, "<span class='notice'>You screw up, rewiring [target]'s brain the wrong way around...</span>",
|
||||
|
||||
@@ -30,6 +30,7 @@
|
||||
implements = list(/obj/item/twohanded/shockpaddles = 100, /obj/item/melee/baton = 75, /obj/item/gun/energy = 60)
|
||||
repeatable = TRUE
|
||||
time = 120
|
||||
experience_given = MEDICAL_SKILL_ADVANCED
|
||||
|
||||
/datum/surgery_step/revive/tool_check(mob/user, obj/item/tool)
|
||||
. = TRUE
|
||||
|
||||
@@ -23,6 +23,7 @@
|
||||
implements = list(TOOL_CAUTERY = 100, TOOL_WELDER = 50, /obj/item = 30) // 30% success with any hot item.
|
||||
time = 100
|
||||
chems_needed = list(/datum/reagent/medicine/spaceacillin,/datum/reagent/consumable/virus_food,/datum/reagent/toxin/formaldehyde)
|
||||
experience_given = MEDICAL_SKILL_ADVANCED
|
||||
|
||||
/datum/surgery_step/viral_bond/tool_check(mob/user, obj/item/tool)
|
||||
if(implement_type == TOOL_WELDER || implement_type == /obj/item)
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
name = "sever limb"
|
||||
implements = list(/obj/item/shears = 300, TOOL_SCALPEL = 100, TOOL_SAW = 100, /obj/item/melee/arm_blade = 80, /obj/item/twohanded/fireaxe = 50, /obj/item/hatchet = 40, /obj/item/kitchen/knife/butcher = 25)
|
||||
time = 64
|
||||
experience_given = 5
|
||||
experience_given = MEDICAL_SKILL_ORGAN_FIX
|
||||
|
||||
/datum/surgery_step/sever_limb/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
|
||||
display_results(user, target, "<span class='notice'>You begin to sever [target]'s [parse_zone(target_zone)]...</span>",
|
||||
|
||||
@@ -38,7 +38,7 @@
|
||||
target.mind.remove_antag_datum(/datum/antagonist/brainwashed)
|
||||
target.setOrganLoss(ORGAN_SLOT_BRAIN, target.getOrganLoss(ORGAN_SLOT_BRAIN) - 50) //we set damage in this case in order to clear the "failing" flag
|
||||
var/cured_num = target.cure_all_traumas(TRAUMA_RESILIENCE_SURGERY)
|
||||
experience_given = 2*cured_num
|
||||
experience_given = (MEDICAL_SKILL_EASY*2*cured_num)
|
||||
if(target.getOrganLoss(ORGAN_SLOT_BRAIN) > 0)
|
||||
to_chat(user, "[target]'s brain looks like it could be fixed further.")
|
||||
return ..()
|
||||
|
||||
@@ -50,7 +50,7 @@
|
||||
name = "graft coronary bypass"
|
||||
implements = list(TOOL_HEMOSTAT = 90, TOOL_WIRECUTTER = 35, /obj/item/stack/packageWrap = 15, /obj/item/stack/cable_coil = 5)
|
||||
time = 90
|
||||
experience_given = 20
|
||||
experience_given = MEDICAL_SKILL_ORGAN_FIX
|
||||
|
||||
/datum/surgery_step/coronary_bypass/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
|
||||
display_results(user, target, "<span class='notice'>You begin to graft a bypass onto [target]'s heart...</span>",
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
name = "insert pill"
|
||||
implements = list(/obj/item/reagent_containers/pill = 100)
|
||||
time = 16
|
||||
experience_given = (MEDICAL_SKILL_MEDIUM*0.4) //quick to do
|
||||
|
||||
/datum/surgery_step/insert_pill/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
|
||||
display_results(user, target, "<span class='notice'>You begin to wedge [tool] in [target]'s [parse_zone(target_zone)]...</span>",
|
||||
|
||||
@@ -87,7 +87,7 @@
|
||||
target.apply_damage(80, BRUTE, L)
|
||||
ADD_TRAIT(target, TRAIT_DISSECTED, "[surgery.name]")
|
||||
repeatable = FALSE
|
||||
experience_given = 1+(points_earned/(BASE_HUMAN_REWARD/10))//if BHR = 500, 10 XP on base surgery
|
||||
experience_given = max(points_earned/(BASE_HUMAN_REWARD/MEDICAL_SKILL_MEDIUM),1)
|
||||
return ..()
|
||||
|
||||
/datum/surgery_step/dissection/failure(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
name = "fix eyes"
|
||||
implements = list(TOOL_HEMOSTAT = 100, TOOL_SCREWDRIVER = 45, /obj/item/pen = 25)
|
||||
time = 64
|
||||
experience_given = 5
|
||||
experience_given = (MEDICAL_SKILL_ORGAN_FIX*0.6) //repeatable and can be done at any damage
|
||||
|
||||
/datum/surgery/eye_surgery/can_start(mob/user, mob/living/carbon/target)
|
||||
var/obj/item/organ/eyes/E = target.getorganslot(ORGAN_SLOT_EYES)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
#define PER_ITERATION_XP_CAP 3 //TW XP gain scales with repeated iterations.
|
||||
#define PER_ITERATION_XP_CAP MEDICAL_SKILL_MEDIUM //TW XP gain scales with repeated iterations so we cap it.
|
||||
|
||||
/datum/surgery/healing
|
||||
steps = list(/datum/surgery_step/incise,
|
||||
@@ -28,7 +28,6 @@
|
||||
implements = list(TOOL_HEMOSTAT = 100, TOOL_SCREWDRIVER = 65, /obj/item/pen = 55)
|
||||
repeatable = TRUE
|
||||
time = 25
|
||||
experience_given = 1 //scales with repeated iterations
|
||||
var/brutehealing = 0
|
||||
var/burnhealing = 0
|
||||
var/missinghpbonus = 0 //heals an extra point of damager per X missing damage of type (burn damage for burn healing, brute for brute). Smaller Number = More Healing!
|
||||
@@ -50,11 +49,11 @@
|
||||
|
||||
/datum/surgery_step/heal/initiate(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery, try_to_fail = FALSE)
|
||||
if(..())
|
||||
experience_given = min(experience_given+0.25,PER_ITERATION_XP_CAP)
|
||||
experience_given = min(experience_given+1,PER_ITERATION_XP_CAP)
|
||||
while((brutehealing && target.getBruteLoss()) || (burnhealing && target.getFireLoss()))
|
||||
if(!..())
|
||||
break
|
||||
experience_given = min(experience_given+0.25,PER_ITERATION_XP_CAP)
|
||||
experience_given = min(experience_given+1,PER_ITERATION_XP_CAP)
|
||||
|
||||
/datum/surgery_step/heal/success(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery, default_display_results = FALSE)
|
||||
var/umsg = "You succeed in fixing some of [target]'s wounds" //no period, add initial space to "addons"
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
implements = list(TOOL_SCALPEL = 95, /obj/item/melee/transforming/energy/sword = 65, /obj/item/kitchen/knife = 45,
|
||||
/obj/item/shard = 35)
|
||||
time = 52
|
||||
experience_given = 10
|
||||
experience_given = (MEDICAL_SKILL_ORGAN_FIX*0.8) //repeatable so not as much xp
|
||||
|
||||
/datum/surgery_step/hepatectomy/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
|
||||
display_results(user, target, "<span class='notice'>You begin to cut out a damaged peice of [target]'s liver...</span>",
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
name = "extract implant"
|
||||
implements = list(TOOL_HEMOSTAT = 100, TOOL_CROWBAR = 65)
|
||||
time = 64
|
||||
experience_given = MEDICAL_SKILL_MEDIUM
|
||||
var/obj/item/implant/I = null
|
||||
|
||||
/datum/surgery_step/extract_implant/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
name = "replace limb"
|
||||
implements = list(/obj/item/bodypart = 100, /obj/item/organ_storage = 100)
|
||||
time = 32
|
||||
experience_given = 10
|
||||
experience_given = MEDICAL_SKILL_MEDIUM
|
||||
var/obj/item/bodypart/L = null // L because "limb"
|
||||
|
||||
|
||||
|
||||
@@ -14,7 +14,6 @@
|
||||
name = "cut excess fat"
|
||||
implements = list(TOOL_SAW = 100, /obj/item/hatchet = 35, /obj/item/kitchen/knife/butcher = 25)
|
||||
time = 64
|
||||
experience_given = 2
|
||||
|
||||
/datum/surgery_step/cut_fat/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
|
||||
user.visible_message("<span class='notice'>[user] begins to cut away [target]'s excess fat.</span>", "<span class='notice'>You begin to cut away [target]'s excess fat...</span>")
|
||||
@@ -48,7 +47,7 @@
|
||||
var/removednutriment = target.nutrition
|
||||
target.set_nutrition(NUTRITION_LEVEL_WELL_FED)
|
||||
removednutriment -= NUTRITION_LEVEL_WELL_FED //whatever was removed goes into the meat
|
||||
experience_given = (round(removednutriment/30))
|
||||
experience_given = (round(removednutriment/(MEDICAL_SKILL_EASY*5)))
|
||||
var/mob/living/carbon/human/H = target
|
||||
var/typeofmeat = /obj/item/reagent_containers/food/snacks/meat/slab/human
|
||||
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
implements = list(TOOL_SCALPEL = 95, /obj/item/melee/transforming/energy/sword = 65, /obj/item/kitchen/knife = 45,
|
||||
/obj/item/shard = 35)
|
||||
time = 42
|
||||
experience_given = 10
|
||||
experience_given = MEDICAL_SKILL_ORGAN_FIX
|
||||
|
||||
/datum/surgery_step/lobectomy/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
|
||||
display_results(user, target, "<span class='notice'>You begin to make an incision in [target]'s lungs...</span>",
|
||||
|
||||
@@ -67,7 +67,7 @@
|
||||
/datum/surgery_step/manipulate_organs
|
||||
time = 64
|
||||
name = "manipulate organs"
|
||||
repeatable = 1
|
||||
repeatable = TRUE
|
||||
implements = list(/obj/item/organ = 100, /obj/item/organ_storage = 100)
|
||||
var/implements_extract = list(TOOL_HEMOSTAT = 100, TOOL_CROWBAR = 55)
|
||||
var/current_type
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
name = "reshape face"
|
||||
implements = list(TOOL_SCALPEL = 100, /obj/item/kitchen/knife = 50, TOOL_WIRECUTTER = 35)
|
||||
time = 64
|
||||
experience_given = 5
|
||||
experience_given = MEDICAL_SKILL_MEDIUM
|
||||
|
||||
/datum/surgery_step/reshape_face/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
|
||||
user.visible_message("<span class='notice'>[user] begins to alter [target]'s appearance.</span>", "<span class='notice'>You begin to alter [target]'s appearance...</span>")
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
name = "add prosthetic"
|
||||
implements = list(/obj/item/bodypart = 100, /obj/item/organ_storage = 100, /obj/item/twohanded/required/chainsaw = 100, /obj/item/melee/synthetic_arm_blade = 100)
|
||||
time = 32
|
||||
experience_given = 5 //won't get full XP if rejected
|
||||
experience_given = MEDICAL_SKILL_ORGAN_FIX //won't get full XP if rejected
|
||||
var/organ_rejection_dam = 0
|
||||
|
||||
/datum/surgery_step/add_prosthetic/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
name = "remove embedded objects"
|
||||
time = 32
|
||||
accept_hand = 1
|
||||
experience_given = 5
|
||||
experience_given = MEDICAL_SKILL_MEDIUM
|
||||
var/obj/item/bodypart/L = null
|
||||
|
||||
|
||||
@@ -40,6 +40,7 @@
|
||||
display_results(user, target, "<span class='notice'>You successfully remove [objects] objects from [H]'s [L.name].</span>",
|
||||
"<span class='notice'>[user] successfully removes [objects] objects from [H]'s [L]!</span>",
|
||||
"<span class='notice'>[user] successfully removes [objects] objects from [H]'s [L]!</span>")
|
||||
experience_given = MEDICAL_SKILL_MEDIUM*(objects*0.75)
|
||||
else
|
||||
to_chat(user, "<span class='warning'>You find no objects embedded in [H]'s [L]!</span>")
|
||||
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
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)
|
||||
@@ -28,6 +29,7 @@
|
||||
accept_hand = TRUE
|
||||
repeatable = TRUE
|
||||
time = 20
|
||||
experience_given = 0
|
||||
|
||||
/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>",
|
||||
@@ -37,10 +39,16 @@
|
||||
/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
|
||||
var/reagents_volume_before_pump = H.reagents.total_volume
|
||||
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
|
||||
if(istype(surgery,/datum/surgery/stomach_pump))
|
||||
var/datum/surgery/stomach_pump/stom_pump = surgery
|
||||
if(stom_pump.accumulated_experience > MEDICAL_SKILL_MEDIUM*10) //capped so you can't dope bodies and purge for ezxp
|
||||
experience_given = (H.reagents.total_volume - reagents_volume_before_pump)/(MEDICAL_SKILL_MEDIUM)
|
||||
stom_pump.accumulated_experience += experience_given
|
||||
return ..()
|
||||
|
||||
/datum/surgery_step/stomach_pump/failure(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
var/require_all_chems = TRUE //any on the list or all on the list?
|
||||
var/silicons_obey_prob = FALSE
|
||||
/// The amount of a experience given for successfully completing the step.
|
||||
var/experience_given = 1
|
||||
var/experience_given = MEDICAL_SKILL_EASY
|
||||
|
||||
/datum/surgery_step/proc/try_op(mob/user, mob/living/target, target_zone, obj/item/tool, datum/surgery/surgery, try_to_fail = FALSE)
|
||||
var/success = FALSE
|
||||
|
||||
Reference in New Issue
Block a user