diff --git a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm
index aa913ba8f0..500147d233 100644
--- a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm
+++ b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm
@@ -288,30 +288,43 @@
/datum/reagent/medicine/salglu_solution
name = "Saline-Glucose Solution"
id = "salglu_solution"
- description = "Has a 33% chance per metabolism cycle to heal brute and burn damage. Can be used as a blood substitute on an IV drip."
+ description = "Has a 33% chance per metabolism cycle to heal brute and burn damage. Can be used as a temporary blood substitute."
reagent_state = LIQUID
color = "#DCDCDC"
metabolization_rate = 0.5 * REAGENTS_METABOLISM
+ overdose_threshold = 60
taste_description = "sweetness and salt"
+ var/last_added = 0
+ var/maximum_reachable = BLOOD_VOLUME_NORMAL - 10 //So that normal blood regeneration can continue with salglu active
/datum/reagent/medicine/salglu_solution/on_mob_life(mob/living/M)
+ if(last_added)
+ M.blood_volume -= last_added
+ last_added = 0
+ if(M.blood_volume < maximum_reachable) //Can only up to double your effective blood level.
+ var/amount_to_add = min(M.blood_volume, volume*5)
+ var/new_blood_level = min(M.blood_volume + amount_to_add, maximum_reachable)
+ last_added = new_blood_level - M.blood_volume
+ M.blood_volume = new_blood_level
if(prob(33))
M.adjustBruteLoss(-0.5*REM, 0)
M.adjustFireLoss(-0.5*REM, 0)
- if(iscarbon(M))
- var/mob/living/carbon/C = M
- C.blood_volume += 0.2
. = 1
..()
-/datum/reagent/medicine/salglu_solution/reaction_mob(mob/living/M, method=TOUCH, reac_volume, show_message = 1)
- if(ishuman(M) && method == INJECT)
- var/mob/living/carbon/human/H = M
- if(H.dna && !(NOBLOOD in H.dna.species.species_traits))
- var/efficiency = (BLOOD_VOLUME_NORMAL-H.blood_volume)/700 + 0.2//The lower the blood of the patient, the better it is as a blood substitute.
- efficiency = Clamp(efficiency, 0.1, 0.75)
- //As it's designed for an IV drip, make large injections not as effective as repeated small injections.
- H.blood_volume += round(efficiency * min(5,reac_volume), 0.1)
+/datum/reagent/medicine/salglu_solution/overdose_process(mob/living/M)
+ if(prob(3))
+ to_chat(M, "You feel salty.")
+ holder.add_reagent("sodiumchloride", 1)
+ holder.remove_reagent("salglu_solution", 0.5)
+ else if(prob(3))
+ to_chat(M, "You feel sweet.")
+ holder.add_reagent("sugar", 1)
+ holder.remove_reagent("salglu_solution", 0.5)
+ if(prob(33))
+ M.adjustBruteLoss(0.5*REM, 0)
+ M.adjustFireLoss(0.5*REM, 0)
+ . = 1
..()
/datum/reagent/medicine/mine_salve