mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-07-11 15:14:27 +01:00
Balanced out wound healing.
This commit is contained in:
@@ -16,6 +16,9 @@
|
||||
var/lyingcheck = 0
|
||||
var/buckle_check = 0
|
||||
|
||||
// total amount of wounds on mob, used to spread out healing and the like over all wounds
|
||||
var/number_wounds = 0
|
||||
|
||||
/mob/living/carbon/human/Life()
|
||||
set invisibility = 0
|
||||
set background = 1
|
||||
@@ -900,10 +903,15 @@
|
||||
handle_organs()
|
||||
// take care of organ related updates, such as broken and missing limbs
|
||||
|
||||
// recalculate number of wounds
|
||||
number_wounds = 0
|
||||
|
||||
var/leg_tally = 2
|
||||
for(var/name in organs)
|
||||
var/datum/organ/external/E = organs[name]
|
||||
E.process()
|
||||
for(var/datum/wound/W in E.wounds)
|
||||
number_wounds++
|
||||
if(E.status & ORGAN_ROBOT && prob(E.brute_dam + E.burn_dam))
|
||||
if(E.name == "l_hand" || E.name == "l_arm")
|
||||
if(hand && equipped())
|
||||
@@ -956,6 +964,7 @@
|
||||
paralysis = 10
|
||||
|
||||
|
||||
|
||||
handle_blood()
|
||||
// take care of blood and blood loss
|
||||
if(stat < 2)
|
||||
|
||||
@@ -126,8 +126,9 @@
|
||||
proc/open_wound()
|
||||
if(current_stage > 1)
|
||||
// e.g. current_stage is 2, then reset it to 0 and do next_stage(), bringing it to 1
|
||||
current_stage -= 2
|
||||
src.current_stage -= 2
|
||||
next_stage()
|
||||
src.damage = src.min_damage
|
||||
|
||||
/** CUTS **/
|
||||
/datum/wound/cut
|
||||
@@ -406,7 +407,8 @@
|
||||
if(W.bandaged) amount++
|
||||
if(W.salved) amount++
|
||||
if(W.disinfected) amount++
|
||||
W.heal_damage(amount / 20)
|
||||
// amount of healing is spread over all the wounds
|
||||
W.heal_damage(amount / (owner.number_wounds+1))
|
||||
|
||||
proc/add_wound(var/used_weapon, var/damage)
|
||||
var/datum/autopsy_data/W = autopsy_data[used_weapon]
|
||||
@@ -595,7 +597,7 @@
|
||||
var/size = min( max( 1, damage/10 ) , 6)
|
||||
|
||||
// first check whether we can widen an existing wound
|
||||
if(wounds.len > 0)
|
||||
if(wounds.len > 0 && prob(5))
|
||||
if((type == CUT || type == BRUISE) && damage >= 5)
|
||||
var/datum/wound/W = pick(wounds)
|
||||
if(W.started_healing())
|
||||
|
||||
Reference in New Issue
Block a user