mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-23 05:00:55 +01:00
[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:
@@ -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>",
|
||||
|
||||
Reference in New Issue
Block a user