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!",