diff --git a/code/game/objects/items/stacks/medical.dm b/code/game/objects/items/stacks/medical.dm index 2826ef97a4..05f9128827 100644 --- a/code/game/objects/items/stacks/medical.dm +++ b/code/game/objects/items/stacks/medical.dm @@ -89,6 +89,8 @@ var/mob/living/carbon/human/H = C if(stop_bleeding) if(!H.bleedsuppress) //so you can't stack bleed suppression + if(H.bleed_rate) + H.bleed_rate -= 30 H.suppress_bloodloss(stop_bleeding) if(affecting.status == BODYPART_ORGANIC) //Limb must be organic to be healed - RR if(affecting.heal_damage(heal_brute, heal_burn)) diff --git a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm index eb7438aa20..417778c692 100644 --- a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm @@ -63,6 +63,10 @@ M.cure_all_traumas(TRAUMA_RESILIENCE_MAGIC) if(M.blood_volume < (BLOOD_VOLUME_NORMAL*M.blood_ratio)) M.blood_volume = (BLOOD_VOLUME_NORMAL*M.blood_ratio) + if(ishuman(M)) + var/mob/living/carbon/human/H = M + if(H.bleed_rate) + H.bleed_rate = 0 for(var/thing in M.diseases) var/datum/disease/D = thing @@ -144,6 +148,10 @@ M.adjustFireLoss(-power, 0) M.adjustToxLoss(-power, 0, TRUE) //heals TOXINLOVERs M.adjustCloneLoss(-power, 0) + if(ishuman(M)) + var/mob/living/carbon/human/H = M + if(H.bleed_rate) + H.bleed_rate -= 5 REMOVE_TRAIT(M, TRAIT_DISFIGURED, TRAIT_GENERIC) //fixes common causes for disfiguration . = 1 metabolization_rate = REAGENTS_METABOLISM * (0.00001 * (M.bodytemperature ** 2) + 0.5) @@ -296,6 +304,10 @@ to_chat(M, "You don't feel so good...") else if(M.getBruteLoss()) M.adjustBruteLoss(-reac_volume) + if(ishuman(M)) + var/mob/living/carbon/human/H = M + if(H.bleed_rate) + H.bleed_rate -= reac_volume if(show_message) to_chat(M, "You feel your bruises healing! It stings like hell!") M.emote("scream") @@ -365,6 +377,10 @@ C.adjustBruteLoss(-0.25*REM, 0) C.adjustFireLoss(-0.25*REM, 0) C.adjustStaminaLoss(-0.5*REM, 0) + if(ishuman(C)) + var/mob/living/carbon/human/H = C + if(H.bleed_rate) + H.bleed_rate -= 0.25 ..() return TRUE @@ -406,6 +422,10 @@ if(method in list(PATCH, TOUCH)) M.adjustBruteLoss(-1.25 * reac_volume) M.adjustFireLoss(-1.25 * reac_volume) + if(ishuman(M)) + var/mob/living/carbon/human/H = M + if(H.bleed_rate) + H.bleed_rate -= (1.25 * reac_volume) if(show_message) to_chat(M, "You feel your burns and bruises healing! It stings like hell!") SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "painful_medicine", /datum/mood_event/painful_medicine) @@ -444,6 +464,10 @@ M.adjustOxyLoss(-0.5*REM, 0) M.adjustBruteLoss(-0.5*REM, 0) M.adjustFireLoss(-0.5*REM, 0) + if(ishuman(M)) + var/mob/living/carbon/human/H = M + if(H.bleed_rate) + H.bleed_rate -= 0.25 ..() . = 1 @@ -585,6 +609,10 @@ if(prob(33)) M.adjustBruteLoss(-0.5*REM, 0) M.adjustFireLoss(-0.5*REM, 0) + if(ishuman(M)) + var/mob/living/carbon/human/H = M + if(H.bleed_rate) + H.bleed_rate -= 0.25 ..() return TRUE @@ -779,6 +807,10 @@ M.adjustBruteLoss(-2*REM, 0) M.adjustFireLoss(-2*REM, 0) M.adjustOxyLoss(-5*REM, 0) + if(ishuman(M)) + var/mob/living/carbon/human/H = M + if(H.bleed_rate) + H.bleed_rate -= 5 . = 1 M.losebreath = 0 if(prob(20)) @@ -815,6 +847,10 @@ if(M.losebreath < 0) M.losebreath = 0 M.adjustStaminaLoss(-0.5*REM, 0) + if(ishuman(M)) + var/mob/living/carbon/human/H = M + if(H.bleed_rate) + H.bleed_rate -= 0.5 //basically doubles natural clotting for reasons . = 1 if(prob(20)) M.AdjustStun(-20, 0) @@ -994,6 +1030,10 @@ /datum/reagent/medicine/bicaridine/on_mob_life(mob/living/carbon/M) M.adjustBruteLoss(-2*REM, 0) + if(ishuman(M)) + var/mob/living/carbon/human/H = M + if(H.bleed_rate) + H.bleed_rate -= 2 ..() . = 1 @@ -1091,6 +1131,10 @@ M.adjustOxyLoss(-1*REM, 0) M.adjustToxLoss(-1*REM, 0) . = 1 + if(ishuman(M)) + var/mob/living/carbon/human/H = M + if(H.bleed_rate) + H.bleed_rate -= 0.5 ..() /datum/reagent/medicine/tricordrazine/overdose_process(mob/living/M) @@ -1114,6 +1158,10 @@ M.adjustFireLoss(-1.5*REM, 0) M.adjustOxyLoss(-1.5*REM, 0) M.adjustToxLoss(-1.5*REM, 0, TRUE) //heals TOXINLOVERs + if(ishuman(M)) + var/mob/living/carbon/human/H = M + if(H.bleed_rate) + H.bleed_rate -= 2 . = 1 ..() @@ -1133,6 +1181,10 @@ M.adjustBrainLoss(-15*REM) M.adjustCloneLoss(-3*REM, 0) M.adjustStaminaLoss(-20*REM,0) + if(ishuman(M)) + var/mob/living/carbon/human/H = M + if(H.bleed_rate) + H.bleed_rate -= 10 ..() . = 1 @@ -1148,19 +1200,23 @@ pH = 11.8 /datum/reagent/medicine/neo_jelly/on_mob_life(mob/living/carbon/M) - M.adjustBruteLoss(-1.5*REM, 0) - M.adjustFireLoss(-1.5*REM, 0) - M.adjustOxyLoss(-1.5*REM, 0) - M.adjustToxLoss(-1.5*REM, 0, TRUE) //heals TOXINLOVERs - . = 1 - ..() + M.adjustBruteLoss(-1.5*REM, 0) + M.adjustFireLoss(-1.5*REM, 0) + M.adjustOxyLoss(-1.5*REM, 0) + M.adjustToxLoss(-1.5*REM, 0, TRUE) //heals TOXINLOVERs + if(ishuman(M)) + var/mob/living/carbon/human/H = M + if(H.bleed_rate) + H.bleed_rate -= 2 + . = 1 + ..() /datum/reagent/medicine/neo_jelly/overdose_process(mob/living/M) - M.adjustOxyLoss(2.6*REM, 0) - M.adjustBruteLoss(3.5*REM, 0) - M.adjustFireLoss(3.5*REM, 0) - ..() - . = 1 + M.adjustOxyLoss(2.6*REM, 0) + M.adjustBruteLoss(3.5*REM, 0) + M.adjustFireLoss(3.5*REM, 0) + ..() + . = 1 /datum/reagent/medicine/earthsblood //Created by ambrosia gaia plants name = "Earthsblood" @@ -1180,6 +1236,10 @@ M.adjustStaminaLoss(-30 * REM, 0) M.jitteriness = min(max(0, M.jitteriness + 3), 30) M.druggy = min(max(0, M.druggy + 10), 15) //See above + if(ishuman(M)) + var/mob/living/carbon/human/H = M + if(H.bleed_rate) + H.bleed_rate -= 5 ..() . = 1 @@ -1223,6 +1283,10 @@ /datum/reagent/medicine/lavaland_extract/on_mob_life(mob/living/carbon/M) M.heal_bodypart_damage(5,5) + if(ishuman(M)) + var/mob/living/carbon/human/H = M + if(H.bleed_rate) + H.bleed_rate -= 20 ..() return TRUE