mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-23 03:57:13 +01:00
Merge pull request #6494 from Crazylemon64/risky_strange_reagent
Strange Reagent is now Riskier
This commit is contained in:
@@ -617,6 +617,9 @@
|
||||
..()
|
||||
|
||||
/datum/reagent/medicine/strange_reagent/reaction_mob(mob/living/M, method=TOUCH, volume)
|
||||
if(volume < 1)
|
||||
// gotta pay to play
|
||||
return ..()
|
||||
if(isanimal(M))
|
||||
if(method == TOUCH)
|
||||
var/mob/living/simple_animal/SM = M
|
||||
@@ -628,10 +631,11 @@
|
||||
if(iscarbon(M))
|
||||
if(method == INGEST)
|
||||
if(M.stat == DEAD)
|
||||
if(M.getBruteLoss()+M.getFireLoss() >= 150)
|
||||
if(M.getBruteLoss()+M.getFireLoss()+M.getCloneLoss() >= 150)
|
||||
M.visible_message("<span class='warning'>[M]'s body starts convulsing!</span>")
|
||||
M.gib()
|
||||
return
|
||||
M.adjustCloneLoss(50)
|
||||
var/mob/dead/observer/ghost = M.get_ghost()
|
||||
if(ghost)
|
||||
to_chat(ghost, "<span class='ghostalert'>You are attempting to be revived with Strange Reagent. Return to your body if you want to be revived!</span> (Verbs -> Ghost -> Re-enter corpse)")
|
||||
@@ -639,11 +643,27 @@
|
||||
ghost << sound('sound/effects/genetics.ogg')
|
||||
M.visible_message("<span class='notice'>[M] doesn't appear to respond, perhaps try again later?</span>")
|
||||
if(!M.suiciding && !ghost && !(NOCLONE in M.mutations))
|
||||
var/time_dead = world.time - M.timeofdeath
|
||||
M.visible_message("<span class='warning'>[M] seems to rise from the dead!</span>")
|
||||
M.setOxyLoss(0)
|
||||
M.adjustBruteLoss(rand(0,15))
|
||||
M.adjustToxLoss(rand(0,15))
|
||||
M.adjustFireLoss(rand(0,15))
|
||||
if(ishuman(M))
|
||||
var/mob/living/carbon/human/H = M
|
||||
var/necrosis_prob = 40 * min((20 MINUTES), max((time_dead - (1 MINUTES)), 0)) / ((20 MINUTES) - (1 MINUTES))
|
||||
to_chat(world, "Necrosis prob: [necrosis_prob]")
|
||||
for(var/obj/item/organ/O in (H.organs | H.internal_organs))
|
||||
// Per non-vital body part:
|
||||
// 0% chance of necrosis within 1 minute of death
|
||||
// 40% chance of necrosis after 20 minutes of death
|
||||
if(!O.vital && prob(necrosis_prob))
|
||||
// side effects may include: Organ failure
|
||||
O.necrotize(FALSE)
|
||||
if(O.status & ORGAN_DEAD)
|
||||
O.germ_level = INFECTION_LEVEL_THREE
|
||||
H.update_body()
|
||||
|
||||
M.update_revive()
|
||||
M.stat = UNCONSCIOUS
|
||||
add_logs(M, M, "revived", object="strange reagent") //Yes, the logs say you revived yourself.
|
||||
@@ -1003,4 +1023,4 @@
|
||||
|
||||
/datum/reagent/medicine/earthsblood/overdose_process(mob/living/M)
|
||||
M.SetHallucinate(min(max(0, M.hallucination + 10), 50))
|
||||
M.adjustToxLoss(5 * REAGENTS_EFFECT_MULTIPLIER)
|
||||
M.adjustToxLoss(5 * REAGENTS_EFFECT_MULTIPLIER)
|
||||
|
||||
Reference in New Issue
Block a user