mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-08-27 06:54:18 +01:00
Fixes and reworks panotoxin (#17813)
* the pr! * changelog, overdose fiddling * more overdose fiddling. overdose now kills. * overdose hello?? * overdose is fine * associative list? dmdocs?? it still works * mayhap... you wanted... a space??/ * I... capitalize....? * dmdoc part final?
This commit is contained in:
@@ -73,14 +73,55 @@
|
||||
|
||||
/singleton/reagent/toxin/panotoxin
|
||||
name = "Panotoxin"
|
||||
description = "A strange poison from the strange panocelium mushroom that causes intense pain when injected."
|
||||
description = "An insidious poison from the panocelium mushroom that causes mind-shattering pain. Known to cause fatal shock in small doses. Torturers dilute it."
|
||||
reagent_state = LIQUID
|
||||
color = "#008844"
|
||||
strength = 0
|
||||
overdose = 2
|
||||
od_minimum_dose = REAGENTS_OVERDOSE * 0.25
|
||||
taste_description = "stinging needles"
|
||||
|
||||
/singleton/reagent/toxin/panotoxin/initial_effect(var/mob/living/carbon/human/M, var/alien, var/holder)
|
||||
M.chem_tracking[/singleton/reagent/toxin/panotoxin] = 0
|
||||
|
||||
/singleton/reagent/toxin/panotoxin/affect_blood(var/mob/living/carbon/M, var/alien, var/removed, var/datum/reagents/holder)
|
||||
M.adjustHalLoss(removed*15)
|
||||
if(ishuman(M))
|
||||
var/mob/living/carbon/human/H = M
|
||||
if(!H.can_feel_pain())
|
||||
return
|
||||
if(prob(40))
|
||||
M.apply_effect(20, DAMAGE_PAIN) //Third of a stunbaton per proc! This gets really bad.
|
||||
M.chem_tracking[/singleton/reagent/toxin/panotoxin] += 20
|
||||
else if(prob(5))
|
||||
M.Stun(4)
|
||||
M.custom_pain(SPAN_DANGER("You feel [pick("a spike of horrific pain razing through every cell of your body","your insides bursting into screaming fire","your body trying to turn itself inside out","what death must be like")]!"), 40)
|
||||
M.chem_tracking[/singleton/reagent/toxin/panotoxin] += 40
|
||||
M.visible_message(SPAN_WARNING("[M] [pick("writhes in agony!","seizes up!","contorts in pain!")]"))
|
||||
|
||||
/singleton/reagent/toxin/panotoxin/overdose(var/mob/living/carbon/M, var/alien, var/removed, var/datum/reagents/holder)
|
||||
if(ishuman(M))
|
||||
var/mob/living/carbon/human/H = M
|
||||
if(!H.can_feel_pain())
|
||||
return
|
||||
if(prob(5))
|
||||
M.visible_message(SPAN_WARNING("[M] [pick("twitches faintly...","quivers slightly...")]"), range = 2)
|
||||
else if(prob(5))
|
||||
M.add_chemical_effect(CE_CARDIOTOXIC, 1)
|
||||
M.custom_pain(SPAN_HIGHDANGER("You feel [pick("your innermost being rotting alive as it slides down a slope of sandpaper","death's crushing, scalding grip engulf you","your insides imploding into a horrific singularity","nothing at all but cold scorching agony","the end of everything, pouring into and suffusing you like a waterfall of needles")]!"), 120)
|
||||
M.chem_tracking[/singleton/reagent/toxin/panotoxin] += 120
|
||||
M.visible_message(SPAN_WARNING("[M] [pick("tenses all over, and doesn't relax!","convulses violently!")]"))
|
||||
|
||||
/singleton/reagent/toxin/panotoxin/final_effect(var/mob/living/carbon/human/M, var/alien, var/holder)
|
||||
var/pain_to_refund = M.chem_tracking[/singleton/reagent/toxin/panotoxin] //5u does about 1900-2600 pain.
|
||||
if(pain_to_refund > 80)
|
||||
M.visible_message("<b>[M]</b> visibly untenses.") //Torturers should microdose. This saves them constant scans while preventing spam if IV'd.
|
||||
to_chat(M, SPAN_GOOD("You feel the agony start to recede!"))
|
||||
M.apply_effect(pain_to_refund * -0.5, DAMAGE_PAIN) //Without this, they can easily be trapped in deep pain shock for most of a round with no recourse in the game except for red nightshade. We only do half because a lot of it heals during the dose.
|
||||
if(pain_to_refund > 4000)
|
||||
to_chat(M, SPAN_WARNING("You're... free? Was life always so beautiful...?"))
|
||||
M.apply_effect(pain_to_refund * -0.3, DAMAGE_PAIN) //If it's super bad, reduce further to mitigate OOC agony. We've been through multiple heart failures at this point. Let's be generous.
|
||||
M.chem_tracking -= /singleton/reagent/toxin/panotoxin
|
||||
pain_to_refund = null
|
||||
|
||||
/singleton/reagent/toxin/phoron
|
||||
name = "Phoron"
|
||||
|
||||
@@ -413,8 +413,8 @@
|
||||
|
||||
/obj/item/reagent_containers/syringe/drugs
|
||||
name = "Syringe (drugs)"
|
||||
desc = "Contains aggressive drugs meant for torture."
|
||||
reagents_to_add = list(/singleton/reagent/toxin/panotoxin = 5, /singleton/reagent/drugs/mindbreaker = 10)
|
||||
desc = "Contains aggressive drugs meant for torture. Markered lines denote points at which to stop injecting."
|
||||
reagents_to_add = list(/singleton/reagent/toxin/panotoxin = 1, /singleton/reagent/drugs/cryptobiolin = 4, /singleton/reagent/drugs/mindbreaker = 10)
|
||||
|
||||
/obj/item/reagent_containers/syringe/drugs/Initialize()
|
||||
. = ..()
|
||||
|
||||
Reference in New Issue
Block a user