Adds Mutone, Plexium, Venenum (#5588)

Adds three new chemicals. View the feedback thread for more information.

https://forums.aurorastation.org/viewtopic.php?f=21&t=12218
This commit is contained in:
BurgerLUA
2018-11-29 15:16:12 -08:00
committed by Werner
parent c0aa68a47a
commit 24a3da2ad9
7 changed files with 186 additions and 6 deletions
@@ -186,6 +186,8 @@
/datum/reagents/proc/del_reagent(var/id)
for(var/datum/reagent/current in reagent_list)
if (current.id == id)
if(ismob(my_atom))
current.final_effect(my_atom)
reagent_list -= current
qdel(current)
update_holder(FALSE)
@@ -79,6 +79,9 @@
if(overdose && (dose > overdose) && (location != CHEM_TOUCH))
overdose(M, alien, removed, dose/overdose)
if(dose == 0)
initial_effect(M,alien)
dose = min(dose + removed, max_dose)
var/bodytempchange = Clamp((get_temperature() - M.bodytemperature) * removed * REAGENTS_BODYTEMP,-REAGENTS_BODYTEMP_MAX * removed, REAGENTS_BODYTEMP_MAX * removed)
@@ -105,6 +108,10 @@
/datum/reagent/proc/initial_effect(var/mob/living/carbon/M, var/alien)
return
//Final effect is called once when the reagent finishes affecting a mob.
/datum/reagent/proc/final_effect(var/mob/living/carbon/M)
return
/datum/reagent/proc/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
return
@@ -453,6 +453,13 @@
color = "#F2F3F4"
taste_description = "metal"
/datum/reagent/luminol/touch_obj(var/obj/O)
O.reveal_blood()
/datum/reagent/luminol/touch_mob(var/mob/living/L)
. = ..()
L.reveal_blood()
/datum/reagent/pyrosilicate
name = "Pyrosilicate"
id = "pyrosilicate"
@@ -471,13 +478,101 @@
taste_description = "needles"
default_temperature = 100 //Kelvin
/datum/reagent/luminol/touch_obj(var/obj/O)
O.reveal_blood()
/datum/reagent/mutone
name = "Mutone"
id = "mutone"
description = "A strange green powder with even stranger properties."
reagent_state = SOLID
color = "#11AA11"
metabolism = (5/60) //5u every 60 seconds.
taste_description = "sweet metal"
var/stored_value = 0 //Internal value. Every 10 units equals a dosage.
/datum/reagent/luminol/touch_mob(var/mob/living/L)
. = ..()
L.reveal_blood()
/datum/reagent/mutone/initial_effect(var/mob/living/carbon/M, var/alien)
stored_value = metabolism
/datum/reagent/mutone/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
stored_value += removed
if(stored_value >= 5)
to_chat(M,span("notice","You feel strange..."))
if(prob(25))
randmutb(M)
else
randmutg(M)
M.UpdateAppearance()
stored_value -= 5
/datum/reagent/plexium
name = "Plexium"
id = "plexium"
description = "A yellow, fowl smelling liquid that seems to affect the brain in strange ways."
reagent_state = LIQUID
color = "#888822"
metabolism = 1 //1u every second
taste_description = "brain freeze"
var/stored_value = 0 //Internal value. Every 5 units equals a dosage.
/datum/reagent/plexium/initial_effect(var/mob/living/carbon/M, var/alien)
stored_value = metabolism
/datum/reagent/plexium/affect_blood(var/mob/living/carbon/human/H, var/alien, var/removed)
var/obj/item/organ/brain/B = H.internal_organs_by_name["brain"]
if(B && H.species && H.species.has_organ["brain"] && !isipc(H))
stored_value += removed
if(stored_value >= 5)
if(prob(50) && !B.has_trauma_type(BRAIN_TRAUMA_MILD))
B.gain_trauma_type(BRAIN_TRAUMA_MILD)
else if(prob(50) && !B.has_trauma_type(BRAIN_TRAUMA_SEVERE))
B.gain_trauma_type(BRAIN_TRAUMA_SEVERE)
else if(prob(50) && !B.has_trauma_type(BRAIN_TRAUMA_SPECIAL))
B.gain_trauma_type(BRAIN_TRAUMA_SPECIAL)
stored_value -= 5
/datum/reagent/venenum
name = "Venenum"
id = "venenum"
description = "A thick tar like liquid that seems to move around on it's own every now and then. Limited data shows it only works when injected into the bloodstream."
reagent_state = LIQUID
color = "#000000"
taste_description = "tar"
metabolism = (1/30) //1u = 30 seconds, 1 transform.
metabolism_min = (1/30)*0.5
ingest_mul = 0
breathe_mul = 0
touch_mul = 0
var/stored_value = 0
var/datum/dna/stored_dna
/datum/reagent/venenum/initial_effect(var/mob/living/carbon/M, var/alien)
stored_value = metabolism
stored_dna = M.dna.Clone()
to_chat(M,span("warning","Your skin starts crawling..."))
/datum/reagent/venenum/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
stored_value += removed
if(stored_value >= 1)
M.visible_message(\
"<span class='warning'>/The [M]'s body shifts and contorts!</span>",\
"<span class='danger'>Your body shifts and contorts!</span>",\
"<span class='notice'>You hear strange flesh-like noises.</span>"\
)
scramble(TRUE, M, 100)
M.adjustHalLoss(25)
M.UpdateAppearance()
M.dna.real_name = random_name(M.gender, M.dna.species)
M.real_name = M.dna.real_name
stored_value -= 1
/datum/reagent/venenum/final_effect(var/mob/living/carbon/M)
if(stored_dna)
M.dna = stored_dna.Clone()
M.real_name = M.dna.real_name
M.UpdateAppearance()
to_chat(M,span("warning","You seem back to your normal self."))
//Secret chems.
//Shhh don't tell no one.
/datum/reagent/estus
name = "Liquid Light"
id = "estus"
+22 -1
View File
@@ -3054,4 +3054,25 @@
e.set_up(explosion_mod, location, 0, 0)
e.start()
holder.del_reagent("phoron_salt")
return
return
/datum/chemical_reaction/mutone
name = "Mutone"
id = "mutone"
result = "mutone"
result_amount = 1
required_reagents = list("phoron_salt" = 1, "mutagen" = 1)
/datum/chemical_reaction/plexium
name = "Plexium"
id = "plexium"
result = "plexium"
result_amount = 1
required_reagents = list("phoron_salt" = 1, "alkysine" = 1)
/datum/chemical_reaction/venenum
name = "Venenum"
id = "venenum"
result = "venenum"
result_amount = 1
required_reagents = list("phoron_salt" = 1, "ryetalyn" = 1)