Penthrite rework: now it's actually usable![READY] (#50342)

* penthrite rework and ldx addition

* e

* Apply suggestions from code review

Co-Authored-By: trollbreeder <trollbreeder@users.noreply.github.com>

* removes LDX , maybe in the future, not now

* you can od on penthrite and recipe is now changed

* ldx no longer exists v2

* mk2

* penthrite now requires salbu

* Apply suggestions from code review

Co-Authored-By: trollbreeder <trollbreeder@users.noreply.github.com>

* e

* explanation

* penthrite requires wittel now

Co-authored-by: trollbreeder <trollbreeder@users.noreply.github.com>
This commit is contained in:
EdgeLordExe
2020-04-25 15:12:21 -04:00
committed by GitHub
co-authored by trollbreeder
parent 78ca688ebb
commit ad06bb4075
4 changed files with 63 additions and 9 deletions
@@ -432,23 +432,72 @@
/******ORGAN HEALING******/
/*Suffix: -rite*/
/*
*How this medicine works:
*Penthrite if you are not in crit only stabilizes your heart.
*As soon as you pass crit threshold it's special effects kick in. Penthrite forces your heart to beat preventing you from entering
*soft and hard crit, but there is a catch. During this you will be healed and you will sustain
*heart damage that will not imapct you as long as penthrite is in your system.
*If you reach the threshold of -60 HP penthrite stops working and you get a heart attack, penthrite is flushed from your system in that very moment,
*causing you to loose your soft crit, hard crit and heart stabilization effects.
*Overdosing on penthrite also causes a heart failure.
*/
/datum/reagent/medicine/C2/penthrite
name = "Penthrite"
description = "An explosive compound used to stabilize heart conditions. May interfere with stomach acid!"
description = "An expensive medicine that aids with pumping blood around the body even without a heart, and prevents the heart from slowing down. It reacts violently with other emergency medication."
color = "#F5F5F5"
self_consuming = TRUE
overdose_threshold = 50
/datum/reagent/medicine/C2/penthrite/on_mob_add(mob/living/M)
. = ..()
to_chat(M,"<span class='notice'>Your heart begins to beat with great force!")
ADD_TRAIT(M, TRAIT_STABLEHEART, type)
ADD_TRAIT(M, TRAIT_NOHARDCRIT,type)
ADD_TRAIT(M, TRAIT_NOSOFTCRIT,type)
M.crit_threshold = M.crit_threshold + HEALTH_THRESHOLD_FULLCRIT*2 //your heart is still pumping!
/datum/reagent/medicine/C2/penthrite/on_mob_metabolize(mob/living/M)
/datum/reagent/medicine/C2/penthrite/on_mob_life(mob/living/carbon/human/H)
H.adjustOrganLoss(ORGAN_SLOT_STOMACH,0.25)
if(H.health <= HEALTH_THRESHOLD_CRIT && H.health > H.crit_threshold) //we cannot save someone above our raised crit threshold.
H.adjustToxLoss(-2 * REM, 0)
H.adjustBruteLoss(-2 * REM, 0)
H.adjustFireLoss(-2 * REM, 0)
H.adjustOxyLoss(-6 * REM, 0)
H.losebreath = 0
H.adjustOrganLoss(ORGAN_SLOT_HEART,max(1,volume/10)) // your heart is barely keeping up!
H.Jitter(rand(0,2))
H.Dizzy(rand(0,2))
if(prob(33))
to_chat(H,"<span class='danger'>Your body is trying to give up, but your heart is still beating!</span>")
if(H.health <= H.crit_threshold) //certain death above this threshold
REMOVE_TRAIT(H, TRAIT_STABLEHEART, type) //we have to remove the stable heart before we give him heart attack
to_chat(H,"<span class='danger'>You feel something rupturing inside your chest!</span>")
H.emote("scream")
H.set_heartattack(TRUE)
volume = 0
. = ..()
M.adjustOrganLoss(ORGAN_SLOT_STOMACH,0.5 * REM)
/datum/reagent/medicine/C2/penthrite/on_mob_end_metabolize(mob/living/M)
M.crit_threshold = M.crit_threshold - HEALTH_THRESHOLD_FULLCRIT*2 //your heart is still pumping!
REMOVE_TRAIT(M, TRAIT_STABLEHEART, type)
REMOVE_TRAIT(M, TRAIT_NOHARDCRIT,type)
REMOVE_TRAIT(M, TRAIT_NOSOFTCRIT,type)
. = ..()
/datum/reagent/medicine/C2/penthrite/overdose_process(mob/living/carbon/human/H)
REMOVE_TRAIT(H, TRAIT_STABLEHEART, type)
H.adjustStaminaLoss(10)
H.adjustOrganLoss(ORGAN_SLOT_HEART,10)
H.set_heartattack(TRUE)
/******NICHE******/
//todo
@@ -61,5 +61,5 @@
required_reagents = list(/datum/reagent/sulfur = 1, /datum/reagent/fluorine = 1, /datum/reagent/toxin = 1, /datum/reagent/nitrous_oxide = 2)
/datum/chemical_reaction/penthrite
results = list(/datum/reagent/medicine/C2/penthrite = 4)
required_reagents = list(/datum/reagent/pentaerythritol = 4, /datum/reagent/acetone = 1, /datum/reagent/toxin/acid/nitracid = 1)
results = list(/datum/reagent/medicine/C2/penthrite = 3)
required_reagents = list(/datum/reagent/pentaerythritol = 1, /datum/reagent/acetone = 1, /datum/reagent/toxin/acid/nitracid = 1 , /datum/reagent/wittel = 1)
@@ -169,3 +169,4 @@
var/location = get_turf(holder.my_atom)
for(var/i = 1, i <= created_volume, i++)
new /obj/item/stack/medical/mesh/advanced(location)
@@ -115,11 +115,15 @@
required_temp = 550 + rand(-49,49)
/datum/chemical_reaction/reagent_explosion/penthrite_explosion
required_reagents = list(/datum/reagent/medicine/C2/penthrite = 1, /datum/reagent/phenol = 1, /datum/reagent/acetone_oxide = 1)
required_temp = 315
/datum/chemical_reaction/reagent_explosion/penthrite_explosion_epinephrine
required_reagents = list(/datum/reagent/medicine/C2/penthrite = 1, /datum/reagent/medicine/epinephrine = 1)
strengthdiv = 5
/datum/chemical_reaction/reagent_explosion/penthrite_explosion_atropine
required_reagents = list(/datum/reagent/medicine/C2/penthrite = 1, /datum/reagent/medicine/atropine = 1)
strengthdiv = 5
modifier = 5
/datum/chemical_reaction/reagent_explosion/potassium_explosion
required_reagents = list(/datum/reagent/water = 1, /datum/reagent/potassium = 1)
strengthdiv = 20