mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-26 06:29:23 +01:00
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:
@@ -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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user