Skip to content

Commit

Permalink
Makes exsanguination not make blood uninjectable (#6413)
Browse files Browse the repository at this point in the history
  • Loading branch information
Putnam3145 committed Apr 26, 2024
1 parent 3025cc1 commit a9a7dd6
Showing 1 changed file with 15 additions and 1 deletion.
16 changes: 15 additions & 1 deletion code/modules/mob/living/carbon/human/blood.dm
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,15 @@ var/const/CE_STABLE_THRESHOLD = 0.5
B.color = B.data["blood_colour"]
B.name = B.data["blood_name"]

/mob/living/carbon/human/proc/fixblood_if_broken()
if(species.species_flags & NO_BLOOD)
return
if(!should_have_organ(O_HEART))
return
if(!vessel.has_reagent("blood"))
vessel.add_reagent("blood", 0.1)
fixblood()

// Takes care blood loss and regeneration
/mob/living/carbon/human/handle_blood()
if(inStasisNow())
Expand Down Expand Up @@ -211,7 +220,7 @@ var/const/CE_STABLE_THRESHOLD = 0.5
if(!amt)
return 0

if(amt > vessel.get_reagent_amount("blood"))
if(amt >= vessel.get_reagent_amount("blood"))
amt = vessel.get_reagent_amount("blood") - 1 // Bit of a safety net; it's impossible to add blood if there's not blood already in the vessel.

return vessel.remove_reagent("blood",amt * (src.mob_size/MOB_MEDIUM))
Expand Down Expand Up @@ -260,6 +269,9 @@ var/const/CE_STABLE_THRESHOLD = 0.5
if(vessel.get_reagent_amount("blood") < amount)
return null

if(amount >= vessel.get_reagent_amount("blood"))
amount = vessel.get_reagent_amount("blood") - 1 // Bit of a safety net; it's impossible to add blood if there's not blood already in the vessel.

. = ..()
vessel.remove_reagent("blood",amount) // Removes blood if human

Expand All @@ -286,6 +298,8 @@ var/const/CE_STABLE_THRESHOLD = 0.5
reagents.add_reagent("blood", amount, injected.data)
reagents.update_total()
return

fixblood_if_broken()

var/datum/reagent/blood/our = get_blood(vessel)

Expand Down

0 comments on commit a9a7dd6

Please sign in to comment.