diff --git a/code/modules/surgery/healing.dm b/code/modules/surgery/healing.dm index 0a375e4646d..6f59c728ad7 100644 --- a/code/modules/surgery/healing.dm +++ b/code/modules/surgery/healing.dm @@ -8,7 +8,7 @@ target_mobtypes = list(/mob/living/carbon/human, /mob/living/carbon/monkey) possible_locs = list(BODY_ZONE_CHEST) - requires_bodypart_type = 0 + requires_bodypart_type = FALSE replaced_by = /datum/surgery ignore_clothes = TRUE var/healing_step_type @@ -28,6 +28,7 @@ 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! /datum/surgery_step/heal/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) var/woundtype @@ -51,14 +52,23 @@ break /datum/surgery_step/heal/success(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) - var/umsg = "You succeed in fixing some of [target]'s wounds" - var/tmsg = "[user] fixes some of [target]'s wounds" - if(get_location_accessible(target, target_zone)) - target.heal_bodypart_damage(brutehealing,burnhealing) - else - target.heal_bodypart_damage(brutehealing*0.4,burnhealing*0.4) //60% less healing if with clothes. - umsg += " as best as you can while they have clothing on" //space please, no period + 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) + if(!get_location_accessible(target, target_zone)) + urhealedamt_brute *= 0.55 + urhealedamt_burn *= 0.55 + umsg += " as best as you can while they have clothing on" tmsg += " as best as they can while [target] has clothing on" + target.heal_bodypart_damage(urhealedamt_brute,urhealedamt_burn) display_results(user, target, "[umsg].", "[tmsg].", "[tmsg].") @@ -71,7 +81,13 @@ display_results(user, target, "You screwed up!", "[user] screws up!", "[user] fixes some of [target]'s wounds.", TRUE) - target.take_bodypart_damage(brutehealing*0.8,burnhealing*0.8) + 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) return FALSE /***************************BRUTE***************************/ @@ -82,32 +98,35 @@ name = "Tend Wounds (Bruises, Basic)" replaced_by = /datum/surgery/healing/brute/upgraded healing_step_type = /datum/surgery_step/heal/brute/basic - desc = "A surgical procedure that provides basic treatment for a patient's brute traumas." + desc = "A surgical procedure that provides basic treatment for a patient's brute traumas. Heals slightly more when the patient is severely injured." /datum/surgery/healing/brute/upgraded name = "Tend Wounds (Bruises, Adv.)" replaced_by = /datum/surgery/healing/brute/upgraded/femto requires_tech = TRUE healing_step_type = /datum/surgery_step/heal/brute/upgraded - desc = "A surgical procedure that provides advanced treatment for a patient's brute traumas." + desc = "A surgical procedure that provides advanced treatment for a patient's brute traumas. Heals more when the patient is severely injured." /datum/surgery/healing/brute/upgraded/femto name = "Tend Wounds (Bruises, Exp.)" replaced_by = /datum/surgery/healing/combo/upgraded/femto requires_tech = TRUE healing_step_type = /datum/surgery_step/heal/brute/upgraded/femto - desc = "A surgical procedure that provides experimental treatment for a patient's brute traumas." + desc = "A surgical procedure that provides experimental treatment for a patient's brute traumas. Heals considerably more when the patient is severely injured." /********************BRUTE STEPS********************/ /datum/surgery_step/heal/brute/basic name = "tend bruises" brutehealing = 5 + missinghpbonus = 15 /datum/surgery_step/heal/brute/upgraded - brutehealing = 10 + brutehealing = 5 + missinghpbonus = 10 /datum/surgery_step/heal/brute/upgraded/femto - brutehealing = 15 + brutehealing = 5 + missinghpbonus = 5 /***************************BURN***************************/ /datum/surgery/healing/burn @@ -117,32 +136,35 @@ name = "Tend Wounds (Burn, Basic)" replaced_by = /datum/surgery/healing/burn/upgraded healing_step_type = /datum/surgery_step/heal/burn/basic - desc = "A surgical procedure that provides basic treatment for a patient's burns." + desc = "A surgical procedure that provides basic treatment for a patient's burns. Heals slightly more when the patient is severely injured." /datum/surgery/healing/burn/upgraded name = "Tend Wounds (Burn, Adv.)" replaced_by = /datum/surgery/healing/burn/upgraded/femto requires_tech = TRUE healing_step_type = /datum/surgery_step/heal/burn/upgraded - desc = "A surgical procedure that provides advanced treatment for a patient's burns." + desc = "A surgical procedure that provides advanced treatment for a patient's burns. Heals more when the patient is severely injured." /datum/surgery/healing/burn/upgraded/femto name = "Tend Wounds (Burn, Exp.)" replaced_by = /datum/surgery/healing/combo/upgraded/femto requires_tech = TRUE healing_step_type = /datum/surgery_step/heal/burn/upgraded/femto - desc = "A surgical procedure that provides experimental treatment for a patient's burns." + desc = "A surgical procedure that provides experimental treatment for a patient's burns. Heals considerably more when the patient is severely injured." /********************BURN STEPS********************/ /datum/surgery_step/heal/burn/basic name = "tend burn wounds" burnhealing = 5 + missinghpbonus = 15 /datum/surgery_step/heal/burn/upgraded - burnhealing = 10 + burnhealing = 5 + missinghpbonus = 10 /datum/surgery_step/heal/burn/upgraded/femto - burnhealing = 15 + burnhealing = 5 + missinghpbonus = 5 /***************************COMBO***************************/ /datum/surgery/healing/combo @@ -153,32 +175,41 @@ replaced_by = /datum/surgery/healing/combo/upgraded requires_tech = TRUE healing_step_type = /datum/surgery_step/heal/combo - desc = "A surgical procedure that provides basic treatment for a patient's burns and brute traumas." + desc = "A surgical procedure that provides basic treatment for a patient's burns and brute traumas. Heals slightly more when the patient is severely injured." /datum/surgery/healing/combo/upgraded name = "Tend Wounds (Mixture, Adv.)" replaced_by = /datum/surgery/healing/combo/upgraded/femto healing_step_type = /datum/surgery_step/heal/combo/upgraded - desc = "A surgical procedure that provides advanced treatment for a patient's burns and brute traumas." + desc = "A surgical procedure that provides advanced treatment for a patient's burns and brute traumas. Heals more when the patient is severely injured." /datum/surgery/healing/combo/upgraded/femto //no real reason to type it like this except consistency, don't worry you're not missing anything name = "Tend Wounds (Mixture, Exp.)" replaced_by = null healing_step_type = /datum/surgery_step/heal/combo/upgraded/femto - desc = "A surgical procedure that provides experimental treatment for a patient's burns and brute traumas." + desc = "A surgical procedure that provides experimental treatment for a patient's burns and brute traumas. Heals considerably more when the patient is severely injured." /********************COMBO STEPS********************/ /datum/surgery_step/heal/combo name = "tend physical wounds" brutehealing = 3 - burnhealing = 2 + burnhealing = 3 + missinghpbonus = 15 time = 10 /datum/surgery_step/heal/combo/upgraded - brutehealing = 5 - burnhealing = 5 + brutehealing = 3 + burnhealing = 3 + missinghpbonus = 10 /datum/surgery_step/heal/combo/upgraded/femto - brutehealing = 8 - burnhealing = 7 + brutehealing = 1 + burnhealing = 1 + missinghpbonus = 2.5 + +/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!", + "[user] screws up!", + "[user] fixes some of [target]'s wounds.", TRUE) + target.take_bodypart_damage(5,5)