[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>
This commit is contained in:
SkyratBot
2021-02-05 22:05:20 +00:00
committed by GitHub
co-authored by manofpepsi
parent 2437ec5341
commit 95ce852fad
+31 -29
View File
@@ -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, "<span class='notice'>[umsg].</span>",
"[tmsg].",
"[tmsg].")
@@ -91,13 +92,11 @@
display_results(user, target, "<span class='warning'>You screwed up!</span>",
"<span class='warning'>[user] screws up!</span>",
"<span class='notice'>[user] fixes some of [target]'s wounds.</span>", 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, "<span class='warning'>You screwed up!</span>",