From 95ce852fad3ad5c8a3f0d39caa2c5b3e8afc3a4b Mon Sep 17 00:00:00 2001 From: SkyratBot <59378654+SkyratBot@users.noreply.github.com> Date: Fri, 5 Feb 2021 23:05:20 +0100 Subject: [PATCH] [MIRROR] Tend wound fix and minor refactor. (#3117) * Tend wound fix and minor refactor. (#56599) * fixes tend wounds healing damage that wasnt specified by it. fixes the tend wounds that should heal one damage you choose i.e.: burn randomly heal some brute while not healing burn or heal burn and brute at the same time. * Tend wound fix and minor refactor. Co-authored-by: manofpepsi <71612753+manofpepsi@users.noreply.github.com> --- code/modules/surgery/healing.dm | 60 +++++++++++++++++---------------- 1 file changed, 31 insertions(+), 29 deletions(-) diff --git a/code/modules/surgery/healing.dm b/code/modules/surgery/healing.dm index 8dd8eefbb8c..e1440084638 100644 --- a/code/modules/surgery/healing.dm +++ b/code/modules/surgery/healing.dm @@ -37,7 +37,8 @@ time = 25 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! + var/brute_multiplier = 0 //multiplies the damage that the patient has. if 0 the patient wont get any additional healing from the damage he has. + var/burn_multiplier = 0 /datum/surgery_step/heal/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) var/woundtype @@ -64,21 +65,21 @@ /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" var/tmsg = "[user] fixes some of [target]'s wounds" //see above - var/urhealedamt_brute = brutehealing - var/urhealedamt_burn = burnhealing - if(missinghpbonus) - if(target.stat != DEAD) - urhealedamt_brute += round((target.getBruteLoss()/ missinghpbonus),0.1) - urhealedamt_burn += round((target.getFireLoss()/ missinghpbonus),0.1) - else //less healing bonus for the dead since they're expected to have lots of damage to begin with (to make TW into defib not TOO simple) - urhealedamt_brute += round((target.getBruteLoss()/ (missinghpbonus*5)),0.1) - urhealedamt_burn += round((target.getFireLoss()/ (missinghpbonus*5)),0.1) + var/brute_healed = brutehealing + var/burn_healed = burnhealing + if(target.stat == DEAD) //dead patients get way less additional heal from the damage they have. + brute_healed += round((target.getBruteLoss() * (brute_multiplier * 0.2)),0.1) + burn_healed += round((target.getFireLoss() * (burn_multiplier * 0.2)),0.1) + else + brute_healed += round((target.getBruteLoss() * brute_multiplier),0.1) + burn_healed += round((target.getFireLoss() * burn_multiplier),0.1) if(!get_location_accessible(target, target_zone)) - urhealedamt_brute *= 0.55 - urhealedamt_burn *= 0.55 + brute_healed *= 0.55 + burn_healed *= 0.55 umsg += " as best as you can while [target.p_they()] [target.p_have()] clothing on" tmsg += " as best as [user.p_they()] can while [target.p_they()] [target.p_have()] clothing on" - target.heal_bodypart_damage(urhealedamt_brute,urhealedamt_burn) + target.heal_bodypart_damage(brute_healed,burn_healed) + display_results(user, target, "[umsg].", "[tmsg].", "[tmsg].") @@ -91,13 +92,11 @@ display_results(user, target, "You screwed up!", "[user] screws up!", "[user] fixes some of [target]'s wounds.", TRUE) - var/urdamageamt_burn = brutehealing * 0.8 - var/urdamageamt_brute = burnhealing * 0.8 - if(missinghpbonus) - urdamageamt_brute += round((target.getBruteLoss()/ (missinghpbonus*2)),0.1) - urdamageamt_burn += round((target.getFireLoss()/ (missinghpbonus*2)),0.1) - - target.take_bodypart_damage(urdamageamt_brute, urdamageamt_burn, wound_bonus=CANT_WOUND) + var/brute_dealt = brutehealing * 0.8 + var/burn_dealt = burnhealing * 0.8 + brute_dealt += round((target.getBruteLoss() * (brute_multiplier * 0.5)),0.1) + burn_dealt += round((target.getFireLoss() * (burn_multiplier * 0.5)),0.1) + target.take_bodypart_damage(brute_dealt, burn_dealt, wound_bonus=CANT_WOUND) return FALSE /***************************BRUTE***************************/ @@ -128,15 +127,15 @@ /datum/surgery_step/heal/brute/basic name = "tend bruises" brutehealing = 5 - missinghpbonus = 15 + brute_multiplier = 0.07 /datum/surgery_step/heal/brute/upgraded brutehealing = 5 - missinghpbonus = 10 + brute_multiplier = 0.1 /datum/surgery_step/heal/brute/upgraded/femto brutehealing = 5 - missinghpbonus = 5 + brute_multiplier = 0.2 /***************************BURN***************************/ /datum/surgery/healing/burn @@ -166,15 +165,15 @@ /datum/surgery_step/heal/burn/basic name = "tend burn wounds" burnhealing = 5 - missinghpbonus = 15 + burn_multiplier = 0.07 /datum/surgery_step/heal/burn/upgraded burnhealing = 5 - missinghpbonus = 10 + burn_multiplier = 0.1 /datum/surgery_step/heal/burn/upgraded/femto burnhealing = 5 - missinghpbonus = 5 + burn_multiplier = 0.2 /***************************COMBO***************************/ /datum/surgery/healing/combo @@ -205,18 +204,21 @@ name = "tend physical wounds" brutehealing = 3 burnhealing = 3 - missinghpbonus = 15 + brute_multiplier = 0.07 + burn_multiplier = 0.07 time = 10 /datum/surgery_step/heal/combo/upgraded brutehealing = 3 burnhealing = 3 - missinghpbonus = 10 + brute_multiplier = 0.1 + burn_multiplier = 0.1 /datum/surgery_step/heal/combo/upgraded/femto brutehealing = 1 burnhealing = 1 - missinghpbonus = 2.5 + brute_multiplier = 0.4 + burn_multiplier = 0.4 /datum/surgery_step/heal/combo/upgraded/femto/failure(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) display_results(user, target, "You screwed up!",