Merge pull request #699 from Citadel-Station-13/upstream-merge-26556
[MIRROR] Saline-glucose changes
This commit is contained in:
@@ -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, "<span class = 'warning'>You feel salty.</span>")
|
||||
holder.add_reagent("sodiumchloride", 1)
|
||||
holder.remove_reagent("salglu_solution", 0.5)
|
||||
else if(prob(3))
|
||||
to_chat(M, "<span class = 'warning'>You feel sweet.</span>")
|
||||
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
|
||||
|
||||
Reference in New Issue
Block a user