Adds a few jelly reagents, small chem adjustments for slimepeople (#34524)

🆑 XDTM
add: Added Regenerative Jelly, made with tricordrazine and slime jelly. It regenerates a bit faster, and won't harm jellypeople.
add: Added Energized Jelly, made with teslium and jelly. It works as an anti-stun chemical for slimepeople and speeds up luminescents' power cooldown, but non-jellypeople will just get shocked.
add: Added Pyroxadone, made with cryoxadone and slime jelly. It's basically inverse cryoxadone: it heals faster the hotter your body temperature is.
tweak: Cryoxadone no longer deals toxin damage to jellypeople.
tweak: Purple Slime Extracts no longer have their sugar->slime jelly reaction (obsolete with extract grinding), and instead have a blood->regen jelly reaction.
tweak: Purple Extract's major activation by Luminescents now give regenerative jelly instead of tricordrazine.
/🆑

Gives a better purpose to purple slimes, makes slime jelly something nice to give to chemistry for improved healing, and makes it so luminescents no longer kill themselves with cryoxadone and tricordrazine.

Also reduced the amount of frost oil given to luminescents in dark blue's activation, so they match cryoxadone's duration.

Fixes #34517
Fixes #34539
This commit is contained in:
XDTM
2018-01-23 20:36:50 +13:00
committed by oranges
parent 2868a61b4a
commit 13cc69e407
8 changed files with 100 additions and 12 deletions
+2
View File
@@ -61,7 +61,9 @@
#define isplasmaman(A) (is_species(A, /datum/species/plasmaman))
#define ispodperson(A) (is_species(A, /datum/species/podperson))
#define isflyperson(A) (is_species(A, /datum/species/fly))
#define isjellyperson(A) (is_species(A, /datum/species/jelly))
#define isslimeperson(A) (is_species(A, /datum/species/jelly/slime))
#define isluminescent(A) (is_species(A, /datum/species/jelly/luminescent))
#define isshadowperson(A) (is_species(A, /datum/species/shadow))
#define iszombie(A) (is_species(A, /datum/species/zombie))
#define ishumanbasic(A) (is_species(A, /datum/species/human))
@@ -41,7 +41,7 @@
M.setOxyLoss(0, 0)
M.radiation = 0
M.heal_bodypart_damage(5,5, 0)
M.adjustToxLoss(-5, 0)
M.adjustToxLoss(-5, 0, TRUE)
M.hallucination = 0
M.setBrainLoss(0)
M.remove_all_disabilities()
@@ -134,7 +134,7 @@
M.adjustOxyLoss(-3 * power, 0)
M.adjustBruteLoss(-power, 0)
M.adjustFireLoss(-power, 0)
M.adjustToxLoss(-power, 0)
M.adjustToxLoss(-power, 0, TRUE) //heals TOXINLOVERs
M.adjustCloneLoss(-power, 0)
M.status_flags &= ~DISFIGURED
. = 1
@@ -157,6 +157,35 @@
metabolization_rate = REAGENTS_METABOLISM * (0.000015 * (M.bodytemperature ** 2) + 0.75)
..()
/datum/reagent/medicine/pyroxadone
name = "Pyroxadone"
id = "pyroxadone"
description = "A mixture of cryoxadone and slime jelly, that apparently inverses the requirement for its activation."
color = "#f7832a"
taste_description = "spicy jelly"
/datum/reagent/medicine/pyroxadone/on_mob_life(mob/living/M)
if(M.bodytemperature > BODYTEMP_HEAT_DAMAGE_LIMIT)
var/power = 0
switch(M.bodytemperature)
if(BODYTEMP_HEAT_DAMAGE_LIMIT to 400)
power = 2
if(400 to 460)
power = 3
else
power = 5
if(M.on_fire)
power *= 2
M.adjustOxyLoss(-2 * power, 0)
M.adjustBruteLoss(-power, 0)
M.adjustFireLoss(-1.5 * power, 0)
M.adjustToxLoss(-power, 0, TRUE)
M.adjustCloneLoss(-power, 0)
M.status_flags &= ~DISFIGURED
. = 1
..()
/datum/reagent/medicine/rezadone
name = "Rezadone"
id = "rezadone"
@@ -979,6 +1008,22 @@
..()
. = 1
/datum/reagent/medicine/regen_jelly
name = "Regenerative Jelly"
id = "regen_jelly"
description = "Gradually regenerates all types of damage, without harming slime anatomy."
reagent_state = LIQUID
color = "#91D865"
taste_description = "jelly"
/datum/reagent/medicine/regen_jelly/on_mob_life(mob/living/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
..()
/datum/reagent/medicine/syndicate_nanites //Used exclusively by Syndicate medical cyborgs
name = "Restorative Nanites"
id = "syndicate_nanites"
@@ -559,9 +559,9 @@
if(!H.dna || !H.dna.species || !(H.dna.species.species_traits & SPECIES_ORGANIC))
return
if(istype(H.dna.species, /datum/species/jelly/slime) || istype(H.dna.species, /datum/species/jelly/stargazer) || istype(H.dna.species, /datum/species/jelly/luminescent))
if(isjellyperson(H))
to_chat(H, "<span class='warning'>Your jelly shifts and morphs, turning you into another subspecies!</span>")
var/species_type = pick(/datum/species/jelly/slime,/datum/species/jelly/stargazer,/datum/species/jelly/luminescent)
var/species_type = pick(subtypesof(/datum/species/jelly))
H.set_species(species_type)
H.reagents.del_reagent(id)
@@ -576,7 +576,7 @@
if(prob(10))
to_chat(H, "<span class='warning'>[pick("You feel your internal organs turning into slime.", "You feel very slimelike.")]</span>")
if(20 to INFINITY)
var/species_type = pick(/datum/species/jelly/slime,/datum/species/jelly/stargazer,/datum/species/jelly/luminescent)
var/species_type = pick(subtypesof(/datum/species/jelly))
H.set_species(species_type)
H.reagents.del_reagent(id)
to_chat(H, "<span class='warning'>You've become \a jellyperson!</span>")
@@ -226,3 +226,25 @@
M.electrocute_act(rand(5,20), "Teslium in their body", 1, 1) //Override because it's caused from INSIDE of you
playsound(M, "sparks", 50, 1)
..()
/datum/reagent/teslium/energized_jelly
name = "Energized Jelly"
id = "energized_jelly"
description = "Electrically-charged jelly. Boosts jellypeople's nervous system, but only shocks other lifeforms."
reagent_state = LIQUID
color = "#CAFF43"
taste_description = "jelly"
/datum/reagent/teslium/energized_jelly/on_mob_life(mob/living/M)
if(isjellyperson(M))
shock_timer = 0 //immune to shocks
M.AdjustStun(-40, 0)
M.AdjustKnockdown(-40, 0)
M.AdjustUnconscious(-40, 0)
M.adjustStaminaLoss(-2, 0)
if(isluminescent(M))
var/mob/living/carbon/human/H = M
var/datum/species/jelly/luminescent/L = H.dna.species
L.extract_cooldown = max(0, L.extract_cooldown - 20)
..()
@@ -184,6 +184,12 @@
results = list("cryoxadone" = 3)
required_reagents = list("stable_plasma" = 1, "acetone" = 1, "mutagen" = 1)
/datum/chemical_reaction/pyroxadone
name = "Pyroxadone"
id = "pyroxadone"
results = list("pyroxadone" = 2)
required_reagents = list("cryoxadone" = 1, "slimejelly" = 1)
/datum/chemical_reaction/clonexadone
name = "Clonexadone"
id = "clonexadone"
@@ -221,6 +227,12 @@
results = list("tricordrazine" = 3)
required_reagents = list("bicaridine" = 1, "kelotane" = 1, "antitoxin" = 1)
/datum/chemical_reaction/regen_jelly
name = "Regenerative Jelly"
id = "regen_jelly"
results = list("regen_jelly" = 2)
required_reagents = list("tricordrazine" = 1, "slimejelly" = 1)
/datum/chemical_reaction/corazone
name = "Corazone"
id = "corazone"
@@ -379,6 +379,13 @@
mix_message = "<span class='danger'>A jet of sparks flies from the mixture as it merges into a flickering slurry.</span>"
required_temp = 400
/datum/chemical_reaction/energized_jelly
name = "Energized Jelly"
id = "energized_jelly"
results = list("energized_jelly" = 2)
required_reagents = list("slimejelly" = 1, "teslium" = 1)
mix_message = "<span class='danger'>The slime jelly starts glowing intermittently.</span>"
/datum/chemical_reaction/reagent_explosion/teslium_lightning
name = "Teslium Destabilization"
id = "teslium_lightning"
@@ -329,11 +329,11 @@
new /obj/item/slimepotion/steroid(get_turf(holder.my_atom))
..()
/datum/chemical_reaction/slime/slimejam
name = "Slime Jam"
id = "m_jam"
results = list("slimejelly" = 10)
required_reagents = list("sugar" = 1)
/datum/chemical_reaction/slime/slimeregen
name = "Slime Regen"
id = "m_regen"
results = list("regen_jelly" = 5)
required_reagents = list("blood" = 1)
required_container = /obj/item/slime_extract/purple
required_other = 1
@@ -148,7 +148,7 @@
if(SLIME_ACTIVATE_MAJOR)
to_chat(user, "<span class='notice'>You activate [src], and it releases regenerative chemicals!</span>")
user.reagents.add_reagent("tricordrazine",10)
user.reagents.add_reagent("regen_jelly",10)
return 600
/obj/item/slime_extract/darkpurple
@@ -261,7 +261,7 @@
to_chat(user, "<span class='notice'>You activate [src]. You start feeling colder!</span>")
user.ExtinguishMob()
user.adjust_fire_stacks(-20)
user.reagents.add_reagent("frostoil",5)
user.reagents.add_reagent("frostoil",4)
user.reagents.add_reagent("cryoxadone",5)
return 100