mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-11 10:43:20 +00:00
Fixes not being able to stop wounds from bleeding
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user