Fixes not being able to stop wounds from bleeding

This commit is contained in:
Yoshax
2016-05-13 02:51:40 +01:00
parent 2ba17c6c88
commit 24f7c0ca2c

View File

@@ -13,6 +13,8 @@
var/damage = 0
// ticks of bleeding left.
var/bleed_timer = 0
// Above this amount wounds you will need to treat the wound to stop bleeding, regardless of bleed_timer
var/bleed_threshold = 30
// amount of damage the current wound type requires(less means we need to apply the next healing stage)
var/min_damage = 0
@@ -187,7 +189,7 @@
return 0 //incompatible damage types
if (src.amount > 1)
return 0
return 0//merged wounds cannot be worsened.
//with 1.5*, a shallow cut will be able to carry at most 30 damage,
//37.5 for a deep cut
@@ -208,8 +210,8 @@
if (bandaged||clamped)
return 0
if (wound_damage() <= 30 && bleed_timer <= 0)
return 0 //Bleed timer has run out. Wounds with more than 30 damage don't stop bleeding on their own.
if (bleed_timer <= 0 && wound_damage() <= bleed_threshold)
return 0 //Bleed timer has run out. Once a wound is big enough though, you'll need a bandage to stop it
return 1
@@ -264,8 +266,9 @@
return null //no wound
/** CUTS **/
/datum/wound/cut/bleeding()
return ..() || wound_damage() >= 5
/datum/wound/cut
bleed_threshold = 5
damage_type = CUT
/datum/wound/cut/small
// link wound descriptions to amounts of damage
@@ -273,40 +276,34 @@
// The major cut types have the max_bleeding_stage set to the clot stage (which is accordingly given the "blood soaked" descriptor).
max_bleeding_stage = 3
stages = list("ugly ripped cut" = 20, "ripped cut" = 10, "cut" = 5, "healing cut" = 2, "small scab" = 0)
damage_type = CUT
/datum/wound/cut/deep
max_bleeding_stage = 3
stages = list("ugly deep ripped cut" = 25, "deep ripped cut" = 20, "deep cut" = 15, "clotted cut" = 8, "scab" = 2, "fresh skin" = 0)
damage_type = CUT
/datum/wound/cut/flesh
max_bleeding_stage = 4
stages = list("ugly ripped flesh wound" = 35, "ugly flesh wound" = 30, "flesh wound" = 25, "blood soaked clot" = 15, "large scab" = 5, "fresh skin" = 0)
damage_type = CUT
/datum/wound/cut/gaping
max_bleeding_stage = 3
stages = list("gaping wound" = 50, "large blood soaked clot" = 25, "blood soaked clot" = 15, "small angry scar" = 5, "small straight scar" = 0)
damage_type = CUT
/datum/wound/cut/gaping_big
max_bleeding_stage = 3
stages = list("big gaping wound" = 60, "healing gaping wound" = 40, "large blood soaked clot" = 25, "large angry scar" = 10, "large straight scar" = 0)
damage_type = CUT
datum/wound/cut/massive
max_bleeding_stage = 3
stages = list("massive wound" = 70, "massive healing wound" = 50, "massive blood soaked clot" = 25, "massive angry scar" = 10, "massive jagged scar" = 0)
damage_type = CUT
/** PUNCTURES **/
/datum/wound/puncture
bleed_threshold = 5
damage_type = PIERCE
/datum/wound/puncture/can_worsen(damage_type, damage)
return 0
/datum/wound/puncture/can_merge(var/datum/wound/other)
return 0
/datum/wound/puncture/bleeding()
return ..() || wound_damage() >= 5
return 0 //puncture wounds cannot be enlargened
/datum/wound/puncture/small
max_bleeding_stage = 2
@@ -334,41 +331,36 @@ datum/wound/puncture/massive
damage_type = PIERCE
/** BRUISES **/
/datum/wound/bruise/bleeding()
return ..() || wound_damage() >= 20
/datum/wound/bruise
stages = list("monumental bruise" = 80, "huge bruise" = 50, "large bruise" = 30,
"moderate bruise" = 20, "small bruise" = 10, "tiny bruise" = 5)
bleed_threshold = 20
max_bleeding_stage = 3 //only large bruise and above can bleed.
autoheal_cutoff = 30
damage_type = BRUISE
/** BURNS **/
/datum/wound/burn
damage_type = BURN
max_bleeding_stage = 0
/datum/wound/burn/bleeding()
return 0
/datum/wound/burn/moderate
stages = list("ripped burn" = 10, "moderate burn" = 5, "healing moderate burn" = 2, "fresh skin" = 0)
damage_type = BURN
/datum/wound/burn/large
stages = list("ripped large burn" = 20, "large burn" = 15, "healing large burn" = 5, "fresh skin" = 0)
damage_type = BURN
/datum/wound/burn/severe
stages = list("ripped severe burn" = 35, "severe burn" = 30, "healing severe burn" = 10, "burn scar" = 0)
damage_type = BURN
/datum/wound/burn/deep
stages = list("ripped deep burn" = 45, "deep burn" = 40, "healing deep burn" = 15, "large burn scar" = 0)
damage_type = BURN
/datum/wound/burn/carbonised
stages = list("carbonised area" = 50, "healing carbonised area" = 20, "massive burn scar" = 0)
damage_type = BURN
/** INTERNAL BLEEDING **/
/datum/wound/internal_bleeding