Tg 1 28 sync testing/confirmation (#5178)
* maps, tgui, tools * defines and helpers * onclick and controllers * datums fucking caught that hulk reversal too. * game and shuttle modular * module/admin * oh god they fucking moved antag shit again * haaaaate. Haaaaaaaaaate. * enables moff wings * more modules things * tgstation.dme before I forget something important * some mob stuff * s'more mob/living stuff * some carbon stuff * ayy lmaos and kitchen meat * Human stuff * species things moff wings have a 'none' version too * the rest of the module stuff. * some strings * misc * mob icons * some other icons. * It compiles FUCK BORERS FUCK BORERS
This commit is contained in:
@@ -442,32 +442,8 @@
|
||||
update_total()
|
||||
if(my_atom)
|
||||
my_atom.on_reagent_change(DEL_REAGENT)
|
||||
check_ignoreslow(my_atom)
|
||||
check_gofast(my_atom)
|
||||
check_goreallyfast(my_atom)
|
||||
return 1
|
||||
|
||||
/datum/reagents/proc/check_ignoreslow(mob/M)
|
||||
if(ismob(M))
|
||||
if(M.reagents.has_reagent("morphine"))
|
||||
return 1
|
||||
else
|
||||
M.status_flags &= ~IGNORESLOWDOWN
|
||||
|
||||
/datum/reagents/proc/check_gofast(mob/M)
|
||||
if(ismob(M))
|
||||
if(M.reagents.has_reagent("unholywater")||M.reagents.has_reagent("nuka_cola")||M.reagents.has_reagent("stimulants")||M.reagents.has_reagent("ephedrine"))
|
||||
return 1
|
||||
else
|
||||
M.status_flags &= ~GOTTAGOFAST
|
||||
|
||||
/datum/reagents/proc/check_goreallyfast(mob/M)
|
||||
if(ismob(M))
|
||||
if(M.reagents.has_reagent("methamphetamine"))
|
||||
return 1
|
||||
else
|
||||
M.status_flags &= ~GOTTAGOREALLYFAST
|
||||
|
||||
/datum/reagents/proc/update_total()
|
||||
var/list/cached_reagents = reagent_list
|
||||
total_volume = 0
|
||||
|
||||
@@ -82,12 +82,12 @@
|
||||
use_power(2500)
|
||||
|
||||
/obj/machinery/chem_dispenser/emag_act(mob/user)
|
||||
if(emagged)
|
||||
if(obj_flags & EMAGGED)
|
||||
to_chat(user, "<span class='warning'>[src] has no functional safeties to emag.</span>")
|
||||
return
|
||||
to_chat(user, "<span class='notice'>You short out [src]'s safeties.</span>")
|
||||
dispensable_reagents |= emagged_reagents//add the emagged reagents to the dispensable ones
|
||||
emagged = TRUE
|
||||
obj_flags |= EMAGGED
|
||||
|
||||
/obj/machinery/chem_dispenser/ex_act(severity, target)
|
||||
if(severity < 3)
|
||||
|
||||
@@ -1282,6 +1282,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
|
||||
glass_name = "eggnog"
|
||||
glass_desc = "For enjoying the most wonderful time of the year."
|
||||
|
||||
|
||||
/datum/reagent/consumable/ethanol/narsour
|
||||
name = "Nar'Sour"
|
||||
id = "narsour"
|
||||
|
||||
@@ -396,13 +396,24 @@
|
||||
glass_name = "glass of Nuka Cola"
|
||||
glass_desc = "Don't cry, Don't raise your eye, It's only nuclear wasteland."
|
||||
|
||||
/datum/reagent/consumable/nuka_cola/on_mob_add(mob/M)
|
||||
..()
|
||||
if(isliving(M))
|
||||
var/mob/living/L = M
|
||||
L.add_trait(TRAIT_GOTTAGOFAST, id)
|
||||
|
||||
/datum/reagent/consumable/nuka_cola/on_mob_delete(mob/M)
|
||||
if(isliving(M))
|
||||
var/mob/living/L = M
|
||||
L.remove_trait(TRAIT_GOTTAGOFAST, id)
|
||||
..()
|
||||
|
||||
/datum/reagent/consumable/nuka_cola/on_mob_life(mob/living/M)
|
||||
M.Jitter(20)
|
||||
M.set_drugginess(30)
|
||||
M.dizziness +=5
|
||||
M.drowsyness = 0
|
||||
M.AdjustSleeping(-40, FALSE)
|
||||
M.status_flags |= GOTTAGOFAST
|
||||
if (M.bodytemperature > BODYTEMP_NORMAL)//310.15 is the normal bodytemp.
|
||||
M.bodytemperature = max(BODYTEMP_NORMAL, M.bodytemperature - (5 * TEMPERATURE_DAMAGE_COEFFICIENT))
|
||||
..()
|
||||
|
||||
@@ -166,6 +166,18 @@
|
||||
addiction_threshold = 10
|
||||
metabolization_rate = 0.75 * REAGENTS_METABOLISM
|
||||
|
||||
/datum/reagent/drug/methamphetamine/on_mob_add(mob/M)
|
||||
..()
|
||||
if(isliving(M))
|
||||
var/mob/living/L = M
|
||||
L.add_trait(TRAIT_GOTTAGOREALLYFAST, id)
|
||||
|
||||
/datum/reagent/drug/methamphetamine/on_mob_delete(mob/M)
|
||||
if(isliving(M))
|
||||
var/mob/living/L = M
|
||||
L.remove_trait(TRAIT_GOTTAGOREALLYFAST, id)
|
||||
..()
|
||||
|
||||
/datum/reagent/drug/methamphetamine/on_mob_life(mob/living/M)
|
||||
var/high_message = pick("You feel hyper.", "You feel like you need to go faster.", "You feel like you can run the world.")
|
||||
if(prob(5))
|
||||
@@ -174,7 +186,6 @@
|
||||
M.AdjustKnockdown(-40, 0)
|
||||
M.AdjustUnconscious(-40, 0)
|
||||
M.adjustStaminaLoss(-2, 0)
|
||||
M.status_flags |= GOTTAGOREALLYFAST
|
||||
M.Jitter(2)
|
||||
M.adjustBrainLoss(0.25)
|
||||
if(prob(5))
|
||||
|
||||
@@ -41,10 +41,10 @@
|
||||
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()
|
||||
M.remove_all_traits()
|
||||
M.set_blurriness(0)
|
||||
M.set_blindness(0)
|
||||
M.SetKnockdown(0, 0)
|
||||
@@ -134,9 +134,9 @@
|
||||
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
|
||||
M.remove_trait(TRAIT_DISFIGURED, TRAIT_GENERIC) //fixes common causes for disfiguration
|
||||
. = 1
|
||||
metabolization_rate = REAGENTS_METABOLISM * (0.00001 * (M.bodytemperature ** 2) + 0.5)
|
||||
..()
|
||||
@@ -152,11 +152,40 @@
|
||||
/datum/reagent/medicine/clonexadone/on_mob_life(mob/living/M)
|
||||
if(M.bodytemperature < T0C)
|
||||
M.adjustCloneLoss(0.00006 * (M.bodytemperature ** 2) - 6, 0)
|
||||
M.status_flags &= ~DISFIGURED
|
||||
M.remove_trait(TRAIT_DISFIGURED, TRAIT_GENERIC)
|
||||
. = 1
|
||||
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.remove_trait(TRAIT_DISFIGURED, TRAIT_GENERIC)
|
||||
. = 1
|
||||
..()
|
||||
|
||||
/datum/reagent/medicine/rezadone
|
||||
name = "Rezadone"
|
||||
id = "rezadone"
|
||||
@@ -169,7 +198,7 @@
|
||||
/datum/reagent/medicine/rezadone/on_mob_life(mob/living/M)
|
||||
M.setCloneLoss(0) //Rezadone is almost never used in favor of cryoxadone. Hopefully this will change that.
|
||||
M.heal_bodypart_damage(1,1, 0)
|
||||
M.status_flags &= ~DISFIGURED
|
||||
M.remove_trait(TRAIT_DISFIGURED, TRAIT_GENERIC)
|
||||
..()
|
||||
. = 1
|
||||
|
||||
@@ -518,8 +547,19 @@
|
||||
overdose_threshold = 45
|
||||
addiction_threshold = 30
|
||||
|
||||
/datum/reagent/medicine/ephedrine/on_mob_add(mob/M)
|
||||
..()
|
||||
if(isliving(M))
|
||||
var/mob/living/L = M
|
||||
L.add_trait(TRAIT_GOTTAGOFAST, id)
|
||||
|
||||
/datum/reagent/medicine/ephedrine/on_mob_delete(mob/M)
|
||||
if(isliving(M))
|
||||
var/mob/living/L = M
|
||||
L.remove_trait(TRAIT_GOTTAGOFAST, id)
|
||||
..()
|
||||
|
||||
/datum/reagent/medicine/ephedrine/on_mob_life(mob/living/M)
|
||||
M.status_flags |= GOTTAGOFAST
|
||||
M.AdjustStun(-20, 0)
|
||||
M.AdjustKnockdown(-20, 0)
|
||||
M.AdjustUnconscious(-20, 0)
|
||||
@@ -587,8 +627,19 @@
|
||||
overdose_threshold = 30
|
||||
addiction_threshold = 25
|
||||
|
||||
/datum/reagent/medicine/morphine/on_mob_add(mob/M)
|
||||
..()
|
||||
if(isliving(M))
|
||||
var/mob/living/L = M
|
||||
L.add_trait(TRAIT_IGNORESLOWDOWN, id)
|
||||
|
||||
/datum/reagent/medicine/morphine/on_mob_delete(mob/M)
|
||||
if(isliving(M))
|
||||
var/mob/living/L = M
|
||||
L.remove_trait(TRAIT_IGNORESLOWDOWN, id)
|
||||
..()
|
||||
|
||||
/datum/reagent/medicine/morphine/on_mob_life(mob/living/M)
|
||||
M.status_flags |= IGNORESLOWDOWN
|
||||
switch(current_cycle)
|
||||
if(11)
|
||||
to_chat(M, "<span class='warning'>You start to feel tired...</span>" )
|
||||
@@ -652,14 +703,14 @@
|
||||
var/obj/item/organ/eyes/eyes = M.getorganslot(ORGAN_SLOT_EYES)
|
||||
if (!eyes)
|
||||
return
|
||||
if(M.has_disability(DISABILITY_BLIND, EYE_DAMAGE))
|
||||
if(M.has_trait(TRAIT_BLIND, EYE_DAMAGE))
|
||||
if(prob(20))
|
||||
to_chat(M, "<span class='warning'>Your vision slowly returns...</span>")
|
||||
M.cure_blind(EYE_DAMAGE)
|
||||
M.cure_nearsighted(EYE_DAMAGE)
|
||||
M.blur_eyes(35)
|
||||
|
||||
else if(M.has_disability(DISABILITY_NEARSIGHT, EYE_DAMAGE))
|
||||
else if(M.has_trait(TRAIT_NEARSIGHT, EYE_DAMAGE))
|
||||
to_chat(M, "<span class='warning'>The blackness in your peripheral vision fades.</span>")
|
||||
M.cure_nearsighted(EYE_DAMAGE)
|
||||
M.blur_eyes(10)
|
||||
@@ -750,7 +801,7 @@
|
||||
M.visible_message("<span class='warning'>[M]'s body convulses a bit, and then falls still once more.</span>")
|
||||
return
|
||||
M.visible_message("<span class='warning'>[M]'s body convulses a bit.</span>")
|
||||
if(!M.suiciding && !(M.has_disability(DISABILITY_NOCLONE)) && !M.hellbound)
|
||||
if(!M.suiciding && !(M.has_trait(TRAIT_NOCLONE)) && !M.hellbound)
|
||||
if(!M)
|
||||
return
|
||||
if(M.notify_ghost_cloning(source = M))
|
||||
@@ -829,8 +880,19 @@
|
||||
metabolization_rate = 0.5 * REAGENTS_METABOLISM
|
||||
overdose_threshold = 60
|
||||
|
||||
/datum/reagent/medicine/stimulants/on_mob_add(mob/M)
|
||||
..()
|
||||
if(isliving(M))
|
||||
var/mob/living/L = M
|
||||
L.add_trait(TRAIT_GOTTAGOFAST, id)
|
||||
|
||||
/datum/reagent/medicine/stimulants/on_mob_delete(mob/M)
|
||||
if(isliving(M))
|
||||
var/mob/living/L = M
|
||||
L.remove_trait(TRAIT_GOTTAGOFAST, id)
|
||||
..()
|
||||
|
||||
/datum/reagent/medicine/stimulants/on_mob_life(mob/living/M)
|
||||
M.status_flags |= GOTTAGOFAST
|
||||
if(M.health < 50 && M.health > 0)
|
||||
M.adjustOxyLoss(-1*REM, 0)
|
||||
M.adjustToxLoss(-1*REM, 0)
|
||||
@@ -979,6 +1041,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"
|
||||
@@ -1092,8 +1170,19 @@
|
||||
color = "#C8A5DC"
|
||||
metabolization_rate = 1
|
||||
|
||||
/datum/reagent/medicine/changelingAdrenaline2/on_mob_add(mob/M)
|
||||
..()
|
||||
if(isliving(M))
|
||||
var/mob/living/L = M
|
||||
L.add_trait(TRAIT_GOTTAGOREALLYFAST, id)
|
||||
|
||||
/datum/reagent/medicine/changelingAdrenaline2/on_mob_delete(mob/M)
|
||||
if(isliving(M))
|
||||
var/mob/living/L = M
|
||||
L.remove_trait(TRAIT_GOTTAGOREALLYFAST, id)
|
||||
..()
|
||||
|
||||
/datum/reagent/medicine/changelingAdrenaline2/on_mob_life(mob/living/M as mob)
|
||||
M.status_flags |= GOTTAGOREALLYFAST
|
||||
M.adjustToxLoss(2, 0)
|
||||
. = 1
|
||||
..()
|
||||
@@ -1117,8 +1206,6 @@
|
||||
addiction_threshold = 5
|
||||
|
||||
/datum/reagent/medicine/ketrazine/on_mob_life(mob/living/M)
|
||||
M.status_flags |= IGNORESLOWDOWN
|
||||
M.status_flags |= GOTTAGOFAST
|
||||
M.adjustToxLoss(-3*REM, 0)
|
||||
M.adjustBruteLoss(-5*REM, 0)
|
||||
M.adjustFireLoss(-5*REM, 0)
|
||||
@@ -1167,6 +1254,14 @@
|
||||
|
||||
..()
|
||||
|
||||
/datum/reagent/medicine/ketrazine/on_mob_add(mob/living/M)
|
||||
M.add_trait(TRAIT_IGNORESLOWDOWN, id)
|
||||
M.add_trait(TRAIT_GOTTAGOFAST, id)
|
||||
|
||||
/datum/reagent/medicine/ketrazine/on_mob_delete(mob/living/M)
|
||||
M.remove_trait(TRAIT_IGNORESLOWDOWN, id)
|
||||
M.remove_trait(TRAIT_GOTTAGOFAST, id)
|
||||
|
||||
/datum/reagent/medicine/ketrazine/overdose_process(mob/living/M)
|
||||
if(prob(66))
|
||||
to_chat(M, "<span class='warning'> You feel a sense of impending doom. </span>")
|
||||
|
||||
@@ -219,7 +219,7 @@
|
||||
if(data >= 75) // 30 units, 135 seconds
|
||||
if(iscultist(M) || is_servant_of_ratvar(M))
|
||||
if(iscultist(M))
|
||||
SSticker.mode.remove_cultist(M.mind, 1, 1)
|
||||
SSticker.mode.remove_cultist(M.mind, FALSE, TRUE)
|
||||
else if(is_servant_of_ratvar(M))
|
||||
remove_servant_of_ratvar(M)
|
||||
M.jitteriness = 0
|
||||
@@ -397,17 +397,17 @@
|
||||
..()
|
||||
return
|
||||
|
||||
/datum/reagent/stableslimetoxin
|
||||
/datum/reagent/mutationtoxin
|
||||
name = "Stable Mutation Toxin"
|
||||
id = "stablemutationtoxin"
|
||||
description = "A humanizing toxin produced by slimes."
|
||||
description = "A humanizing toxin."
|
||||
color = "#5EFF3B" //RGB: 94, 255, 59
|
||||
metabolization_rate = INFINITY //So it instantly removes all of itself
|
||||
taste_description = "slime"
|
||||
var/datum/species/race = /datum/species/human
|
||||
var/mutationtext = "<span class='danger'>The pain subsides. You feel... human.</span>"
|
||||
|
||||
/datum/reagent/stableslimetoxin/on_mob_life(mob/living/carbon/human/H)
|
||||
/datum/reagent/mutationtoxin/on_mob_life(mob/living/carbon/human/H)
|
||||
..()
|
||||
if(!istype(H))
|
||||
return
|
||||
@@ -417,7 +417,7 @@
|
||||
addtimer(CALLBACK(src, .proc/mutate, H), 30)
|
||||
return
|
||||
|
||||
/datum/reagent/stableslimetoxin/proc/mutate(mob/living/carbon/human/H)
|
||||
/datum/reagent/mutationtoxin/proc/mutate(mob/living/carbon/human/H)
|
||||
if(QDELETED(H))
|
||||
return
|
||||
var/current_species = H.dna.species.type
|
||||
@@ -428,130 +428,158 @@
|
||||
else
|
||||
to_chat(H, "<span class='danger'>The pain vanishes suddenly. You feel no different.</span>")
|
||||
|
||||
/datum/reagent/stableslimetoxin/classic //The one from plasma on green slimes
|
||||
/datum/reagent/mutationtoxin/classic //The one from plasma on green slimes
|
||||
name = "Mutation Toxin"
|
||||
id = "mutationtoxin"
|
||||
description = "A corruptive toxin produced by slimes."
|
||||
description = "A corruptive toxin."
|
||||
color = "#13BC5E" // rgb: 19, 188, 94
|
||||
race = /datum/species/jelly/slime
|
||||
mutationtext = "<span class='danger'>The pain subsides. Your whole body feels like slime.</span>"
|
||||
|
||||
/datum/reagent/stableslimetoxin/lizard
|
||||
/datum/reagent/mutationtoxin/lizard
|
||||
name = "Lizard Mutation Toxin"
|
||||
id = "lizardmutationtoxin"
|
||||
description = "A lizarding toxin produced by slimes."
|
||||
description = "A lizarding toxin."
|
||||
color = "#5EFF3B" //RGB: 94, 255, 59
|
||||
race = /datum/species/lizard
|
||||
mutationtext = "<span class='danger'>The pain subsides. You feel... scaly.</span>"
|
||||
|
||||
/datum/reagent/stableslimetoxin/fly
|
||||
/datum/reagent/mutationtoxin/fly
|
||||
name = "Fly Mutation Toxin"
|
||||
id = "flymutationtoxin"
|
||||
description = "An insectifying toxin produced by slimes."
|
||||
description = "An insectifying toxin."
|
||||
color = "#5EFF3B" //RGB: 94, 255, 59
|
||||
race = /datum/species/fly
|
||||
mutationtext = "<span class='danger'>The pain subsides. You feel... buzzy.</span>"
|
||||
|
||||
/datum/reagent/stableslimetoxin/pod
|
||||
/datum/reagent/mutationtoxin/moth
|
||||
name = "Moth Mutation Toxin"
|
||||
id = "mothmutationtoxin"
|
||||
description = "A glowing toxin."
|
||||
color = "#5EFF3B" //RGB: 94, 255, 59
|
||||
race = /datum/species/moth
|
||||
mutationtext = "<span class='danger'>The pain subsides. You feel... attracted to light.</span>"
|
||||
|
||||
/datum/reagent/mutationtoxin/pod
|
||||
name = "Podperson Mutation Toxin"
|
||||
id = "podmutationtoxin"
|
||||
description = "A vegetalizing toxin produced by slimes."
|
||||
description = "A vegetalizing toxin."
|
||||
color = "#5EFF3B" //RGB: 94, 255, 59
|
||||
race = /datum/species/pod
|
||||
mutationtext = "<span class='danger'>The pain subsides. You feel... plantlike.</span>"
|
||||
|
||||
/datum/reagent/stableslimetoxin/jelly
|
||||
/datum/reagent/mutationtoxin/jelly
|
||||
name = "Imperfect Mutation Toxin"
|
||||
id = "jellymutationtoxin"
|
||||
description = "An jellyfying toxin produced by slimes."
|
||||
description = "An jellyfying toxin."
|
||||
color = "#5EFF3B" //RGB: 94, 255, 59
|
||||
race = /datum/species/jelly
|
||||
mutationtext = "<span class='danger'>The pain subsides. You feel... wobbly.</span>"
|
||||
|
||||
/datum/reagent/stableslimetoxin/golem
|
||||
/datum/reagent/mutationtoxin/golem
|
||||
name = "Golem Mutation Toxin"
|
||||
id = "golemmutationtoxin"
|
||||
description = "A crystal toxin produced by slimes."
|
||||
description = "A crystal toxin."
|
||||
color = "#5EFF3B" //RGB: 94, 255, 59
|
||||
race = /datum/species/golem/random
|
||||
mutationtext = "<span class='danger'>The pain subsides. You feel... rocky.</span>"
|
||||
|
||||
/datum/reagent/stableslimetoxin/abductor
|
||||
/datum/reagent/mutationtoxin/abductor
|
||||
name = "Abductor Mutation Toxin"
|
||||
id = "abductormutationtoxin"
|
||||
description = "An alien toxin produced by slimes."
|
||||
description = "An alien toxin."
|
||||
color = "#5EFF3B" //RGB: 94, 255, 59
|
||||
race = /datum/species/abductor
|
||||
mutationtext = "<span class='danger'>The pain subsides. You feel... alien.</span>"
|
||||
|
||||
/datum/reagent/stableslimetoxin/android
|
||||
/datum/reagent/mutationtoxin/android
|
||||
name = "Android Mutation Toxin"
|
||||
id = "androidmutationtoxin"
|
||||
description = "A robotic toxin produced by slimes."
|
||||
description = "A robotic toxin."
|
||||
color = "#5EFF3B" //RGB: 94, 255, 59
|
||||
race = /datum/species/android
|
||||
mutationtext = "<span class='danger'>The pain subsides. You feel... artificial.</span>"
|
||||
|
||||
|
||||
//BLACKLISTED RACES
|
||||
/datum/reagent/stableslimetoxin/skeleton
|
||||
/datum/reagent/mutationtoxin/skeleton
|
||||
name = "Skeleton Mutation Toxin"
|
||||
id = "skeletonmutationtoxin"
|
||||
description = "A scary toxin produced by slimes."
|
||||
description = "A scary toxin."
|
||||
color = "#5EFF3B" //RGB: 94, 255, 59
|
||||
race = /datum/species/skeleton
|
||||
mutationtext = "<span class='danger'>The pain subsides. You feel... spooky.</span>"
|
||||
|
||||
/datum/reagent/stableslimetoxin/zombie
|
||||
/datum/reagent/mutationtoxin/zombie
|
||||
name = "Zombie Mutation Toxin"
|
||||
id = "zombiemutationtoxin"
|
||||
description = "An undead toxin produced by slimes."
|
||||
description = "An undead toxin."
|
||||
color = "#5EFF3B" //RGB: 94, 255, 59
|
||||
race = /datum/species/zombie //Not the infectious kind. The days of xenobio zombie outbreaks are long past.
|
||||
mutationtext = "<span class='danger'>The pain subsides. You feel... undead.</span>"
|
||||
|
||||
/datum/reagent/stableslimetoxin/ash
|
||||
/datum/reagent/mutationtoxin/ash
|
||||
name = "Ash Mutation Toxin"
|
||||
id = "ashmutationtoxin"
|
||||
description = "An ashen toxin produced by slimes."
|
||||
description = "An ashen toxin."
|
||||
color = "#5EFF3B" //RGB: 94, 255, 59
|
||||
race = /datum/species/lizard/ashwalker
|
||||
mutationtext = "<span class='danger'>The pain subsides. You feel... savage.</span>"
|
||||
|
||||
|
||||
//DANGEROUS RACES
|
||||
/datum/reagent/stableslimetoxin/shadow
|
||||
/datum/reagent/mutationtoxin/shadow
|
||||
name = "Shadow Mutation Toxin"
|
||||
id = "shadowmutationtoxin"
|
||||
description = "A dark toxin produced by slimes."
|
||||
description = "A dark toxin."
|
||||
color = "#5EFF3B" //RGB: 94, 255, 59
|
||||
race = /datum/species/shadow
|
||||
mutationtext = "<span class='danger'>The pain subsides. You feel... darker.</span>"
|
||||
|
||||
/datum/reagent/stableslimetoxin/plasma
|
||||
/datum/reagent/mutationtoxin/plasma
|
||||
name = "Plasma Mutation Toxin"
|
||||
id = "plasmamutationtoxin"
|
||||
description = "A plasma-based toxin produced by slimes."
|
||||
description = "A plasma-based toxin."
|
||||
color = "#5EFF3B" //RGB: 94, 255, 59
|
||||
race = /datum/species/plasmaman
|
||||
mutationtext = "<span class='danger'>The pain subsides. You feel... flammable.</span>"
|
||||
|
||||
/datum/reagent/stableslimetoxin/unstable //PSYCH
|
||||
name = "Unstable Mutation Toxin"
|
||||
id = "unstablemutationtoxin"
|
||||
description = "An unstable and unpredictable corruptive toxin produced by slimes."
|
||||
/datum/reagent/slime_toxin
|
||||
name = "Slime Mutation Toxin"
|
||||
id = "slime_toxin"
|
||||
description = "A toxin that turns organic material into slime."
|
||||
color = "#5EFF3B" //RGB: 94, 255, 59
|
||||
mutationtext = "<span class='danger'>The pain subsides. You feel... different.</span>"
|
||||
taste_description = "slime"
|
||||
metabolization_rate = 0.2
|
||||
|
||||
/datum/reagent/stableslimetoxin/unstable/on_mob_life(mob/living/carbon/human/H)
|
||||
var/list/possible_morphs = list()
|
||||
for(var/type in subtypesof(/datum/species))
|
||||
var/datum/species/S = type
|
||||
if(initial(S.blacklisted))
|
||||
continue
|
||||
possible_morphs += S
|
||||
race = pick(possible_morphs)
|
||||
/datum/reagent/slime_toxin/on_mob_life(mob/living/carbon/human/H)
|
||||
..()
|
||||
if(!istype(H))
|
||||
return
|
||||
if(!H.dna || !H.dna.species || !(H.dna.species.species_traits & SPECIES_ORGANIC))
|
||||
return
|
||||
|
||||
if(isjellyperson(H))
|
||||
to_chat(H, "<span class='warning'>Your jelly shifts and morphs, turning you into another subspecies!</span>")
|
||||
var/species_type = pick(subtypesof(/datum/species/jelly))
|
||||
H.set_species(species_type)
|
||||
H.reagents.del_reagent(id)
|
||||
|
||||
switch(current_cycle)
|
||||
if(1 to 6)
|
||||
if(prob(10))
|
||||
to_chat(H, "<span class='warning'>[pick("You don't feel very well.", "Your skin feels a little slimy.")]</span>")
|
||||
if(7 to 12)
|
||||
if(prob(10))
|
||||
to_chat(H, "<span class='warning'>[pick("Your appendages are melting away.", "Your limbs begin to lose their shape.")]</span>")
|
||||
if(13 to 19)
|
||||
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(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>")
|
||||
|
||||
/datum/reagent/mulligan
|
||||
name = "Mulligan Toxin"
|
||||
@@ -1175,8 +1203,19 @@
|
||||
color = "E1A116"
|
||||
taste_description = "sourness"
|
||||
|
||||
/datum/reagent/stimulum/on_mob_add(mob/M)
|
||||
..()
|
||||
if(isliving(M))
|
||||
var/mob/living/L = M
|
||||
L.add_trait(TRAIT_GOTTAGOFAST, id)
|
||||
|
||||
/datum/reagent/stimulum/on_mob_delete(mob/M)
|
||||
if(isliving(M))
|
||||
var/mob/living/L = M
|
||||
L.remove_trait(TRAIT_GOTTAGOFAST, id)
|
||||
..()
|
||||
|
||||
/datum/reagent/stimulum/on_mob_life(mob/living/M) // Has a speedup, and the anti-stun effects of nicotine.
|
||||
M.status_flags |= GOTTAGOFAST
|
||||
M.AdjustStun(-20, 0)
|
||||
M.AdjustKnockdown(-20, 0)
|
||||
M.AdjustUnconscious(-20, 0)
|
||||
@@ -1194,8 +1233,16 @@
|
||||
color = "90560B"
|
||||
taste_description = "burning"
|
||||
|
||||
/datum/reagent/nitryl/on_mob_life(mob/living/M) //Has just a speedup
|
||||
M.status_flags |= GOTTAGOFAST
|
||||
/datum/reagent/nitryl/on_mob_add(mob/M)
|
||||
..()
|
||||
if(isliving(M))
|
||||
var/mob/living/L = M
|
||||
L.add_trait(TRAIT_GOTTAGOFAST, id)
|
||||
|
||||
/datum/reagent/nitryl/on_mob_delete(mob/M)
|
||||
if(isliving(M))
|
||||
var/mob/living/L = M
|
||||
L.remove_trait(TRAIT_GOTTAGOFAST, id)
|
||||
..()
|
||||
|
||||
/////////////////////////Coloured Crayon Powder////////////////////////////
|
||||
@@ -1709,10 +1756,10 @@
|
||||
..()
|
||||
if(isliving(M))
|
||||
var/mob/living/L = M
|
||||
L.add_disability(DISABILITY_PACIFISM, CHEMICAL_DISABILITY)
|
||||
L.add_trait(TRAIT_PACIFISM, id)
|
||||
|
||||
/datum/reagent/pax/on_mob_delete(mob/M)
|
||||
if(isliving(M))
|
||||
var/mob/living/L = M
|
||||
L.remove_disability(DISABILITY_PACIFISM, CHEMICAL_DISABILITY)
|
||||
..()
|
||||
L.remove_trait(TRAIT_PACIFISM, id)
|
||||
..()
|
||||
|
||||
@@ -226,3 +226,63 @@
|
||||
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)
|
||||
..()
|
||||
|
||||
/datum/reagent/firefighting_foam
|
||||
name = "Firefighting Foam"
|
||||
id = "firefighting_foam"
|
||||
description = "A historical fire suppressant. Originally believed to simply displace oxygen to starve fires, it actually interferes with the combustion reaction itself. Vastly superior to the cheap water-based extinguishers found on NT vessels."
|
||||
reagent_state = LIQUID
|
||||
color = "#A6FAFF55"
|
||||
taste_description = "the inside of a fire extinguisher"
|
||||
|
||||
/datum/reagent/firefighting_foam/reaction_turf(turf/open/T, reac_volume)
|
||||
if (!istype(T))
|
||||
return
|
||||
|
||||
if(reac_volume >= 1)
|
||||
var/obj/effect/particle_effect/foam/firefighting/F = (locate(/obj/effect/particle_effect/foam) in T)
|
||||
if(!F)
|
||||
F = new(T)
|
||||
else if(istype(F))
|
||||
F.lifetime = initial(F.lifetime) //reduce object churn a little bit when using smoke by keeping existing foam alive a bit longer
|
||||
|
||||
var/obj/effect/hotspot/hotspot = (locate(/obj/effect/hotspot) in T)
|
||||
if(hotspot && !isspaceturf(T))
|
||||
if(T.air)
|
||||
var/datum/gas_mixture/G = T.air
|
||||
if(G.temperature > T20C)
|
||||
G.temperature = max(G.temperature/2,T20C)
|
||||
G.react()
|
||||
qdel(hotspot)
|
||||
|
||||
/datum/reagent/firefighting_foam/reaction_obj(obj/O, reac_volume)
|
||||
O.extinguish()
|
||||
|
||||
/datum/reagent/firefighting_foam/reaction_mob(mob/living/M, method=TOUCH, reac_volume)
|
||||
if(!istype(M))
|
||||
return
|
||||
if(method in list(VAPOR, TOUCH))
|
||||
M.adjust_fire_stacks(-reac_volume)
|
||||
M.ExtinguishMob()
|
||||
..()
|
||||
@@ -143,7 +143,7 @@
|
||||
taste_description = "mint"
|
||||
|
||||
/datum/reagent/toxin/minttoxin/on_mob_life(mob/living/M)
|
||||
if(M.has_disability(DISABILITY_FAT))
|
||||
if(M.has_trait(TRAIT_FAT))
|
||||
M.gib()
|
||||
return ..()
|
||||
|
||||
@@ -164,19 +164,23 @@
|
||||
toxpwr = 0.5
|
||||
taste_description = "death"
|
||||
|
||||
/datum/reagent/toxin/zombiepowder/on_mob_life(mob/living/carbon/M)
|
||||
M.status_flags |= FAKEDEATH
|
||||
M.adjustOxyLoss(0.5*REM, 0)
|
||||
M.Knockdown(100, 0)
|
||||
M.silent = max(M.silent, 5)
|
||||
M.tod = worldtime2text()
|
||||
/datum/reagent/toxin/zombiepowder/on_mob_add(mob/M)
|
||||
..()
|
||||
. = 1
|
||||
if(isliving(M))
|
||||
var/mob/living/L = M
|
||||
L.fakedeath(id)
|
||||
|
||||
/datum/reagent/toxin/zombiepowder/on_mob_delete(mob/M)
|
||||
M.status_flags &= ~FAKEDEATH
|
||||
if(isliving(M))
|
||||
var/mob/living/L = M
|
||||
L.cure_fakedeath(id)
|
||||
..()
|
||||
|
||||
/datum/reagent/toxin/zombiepowder/on_mob_life(mob/living/carbon/M)
|
||||
M.adjustOxyLoss(0.5*REM, 0)
|
||||
..()
|
||||
. = 1
|
||||
|
||||
/datum/reagent/toxin/mindbreaker
|
||||
name = "Mindbreaker Toxin"
|
||||
id = "mindbreaker"
|
||||
|
||||
@@ -21,18 +21,8 @@
|
||||
return
|
||||
//I recommend you set the result amount to the total volume of all components.
|
||||
|
||||
/datum/chemical_reaction/proc/chemical_mob_spawn(datum/reagents/holder, amount_to_spawn, reaction_name, mob_faction = "chemicalsummon")
|
||||
var/static/list/chemical_mob_spawn_meancritters = list() // list of possible hostile mobs
|
||||
var/static/list/chemical_mob_spawn_nicecritters = list() // and possible friendly mobs
|
||||
/datum/chemical_reaction/proc/chemical_mob_spawn(datum/reagents/holder, amount_to_spawn, reaction_name, mob_class = HOSTILE_SPAWN, mob_faction = "chemicalsummon")
|
||||
if(holder && holder.my_atom)
|
||||
if (chemical_mob_spawn_meancritters.len <= 0 || chemical_mob_spawn_nicecritters.len <= 0)
|
||||
for (var/T in typesof(/mob/living/simple_animal))
|
||||
var/mob/living/simple_animal/SA = T
|
||||
switch(initial(SA.gold_core_spawnable))
|
||||
if(HOSTILE_SPAWN)
|
||||
chemical_mob_spawn_meancritters += T
|
||||
if(FRIENDLY_SPAWN)
|
||||
chemical_mob_spawn_nicecritters += T
|
||||
var/atom/A = holder.my_atom
|
||||
var/turf/T = get_turf(A)
|
||||
var/message = "A [reaction_name] reaction has occurred in [get_area_name(T)] [ADMIN_COORDJMP(T)]"
|
||||
@@ -50,18 +40,13 @@
|
||||
|
||||
for(var/mob/living/carbon/C in viewers(get_turf(holder.my_atom), null))
|
||||
C.flash_act()
|
||||
for(var/i = 1, i <= amount_to_spawn, i++)
|
||||
var/chosen
|
||||
if (reaction_name == "Friendly Gold Slime")
|
||||
chosen = pick(chemical_mob_spawn_nicecritters)
|
||||
else
|
||||
chosen = pick(chemical_mob_spawn_meancritters)
|
||||
var/spawnloc = get_turf(holder.my_atom)
|
||||
var/mob/living/simple_animal/C = new chosen(spawnloc)
|
||||
C.faction |= mob_faction
|
||||
|
||||
for(var/i in 1 to amount_to_spawn)
|
||||
var/mob/living/simple_animal/S = create_random_mob(get_turf(holder.my_atom), mob_class)
|
||||
S.faction |= mob_faction
|
||||
if(prob(50))
|
||||
for(var/j = 1, j <= rand(1, 3), j++)
|
||||
step(C, pick(NORTH,SOUTH,EAST,WEST))
|
||||
step(S, pick(NORTH,SOUTH,EAST,WEST))
|
||||
|
||||
/datum/chemical_reaction/proc/goonchem_vortex(turf/T, setting_type, range)
|
||||
for(var/atom/movable/X in orange(range, T))
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -125,96 +125,12 @@
|
||||
required_reagents = list("ammonia" = 2, "nitrogen" = 1, "oxygen" = 2)
|
||||
required_temp = 525
|
||||
|
||||
////////////////////////////////// Mutation Toxins ///////////////////////////////////
|
||||
|
||||
/datum/chemical_reaction/stable_mutation_toxin
|
||||
name = "Stable Mutation Toxin"
|
||||
id = "stablemutationtoxin"
|
||||
results = list("stablemutationtoxin" = 1)
|
||||
required_reagents = list("unstablemutationtoxin" = 1, "blood" = 1) //classic
|
||||
|
||||
/datum/chemical_reaction/lizard_mutation_toxin
|
||||
name = "Lizard Mutation Toxin"
|
||||
id = "lizardmutationtoxin"
|
||||
results = list("lizardmutationtoxin" = 1)
|
||||
required_reagents = list("unstablemutationtoxin" = 1, "radium" = 1) //mutant
|
||||
|
||||
/datum/chemical_reaction/fly_mutation_toxin
|
||||
name = "Fly Mutation Toxin"
|
||||
id = "flymutationtoxin"
|
||||
results = list("flymutationtoxin" = 1)
|
||||
required_reagents = list("unstablemutationtoxin" = 1, "mutagen" = 1) //VERY mutant
|
||||
|
||||
/datum/chemical_reaction/jelly_mutation_toxin
|
||||
name = "Imperfect Mutation Toxin"
|
||||
id = "jellymutationtoxin"
|
||||
results = list("jellymutationtoxin" = 1)
|
||||
required_reagents = list("unstablemutationtoxin" = 1, "slimejelly" = 1) //why would you even make this
|
||||
|
||||
/datum/chemical_reaction/abductor_mutation_toxin
|
||||
name = "Abductor Mutation Toxin"
|
||||
id = "abductormutationtoxin"
|
||||
results = list("abductormutationtoxin" = 1)
|
||||
required_reagents = list("unstablemutationtoxin" = 1, "morphine" = 1)
|
||||
|
||||
/datum/chemical_reaction/android_mutation_toxin
|
||||
name = "Android Mutation Toxin"
|
||||
id = "androidmutationtoxin"
|
||||
results = list("androidmutationtoxin" = 1)
|
||||
required_reagents = list("unstablemutationtoxin" = 1, "teslium" = 1) //beep boop
|
||||
|
||||
/datum/chemical_reaction/pod_mutation_toxin
|
||||
name = "Podperson Mutation Toxin"
|
||||
id = "podmutationtoxin"
|
||||
results = list("podmutationtoxin" = 1)
|
||||
required_reagents = list("unstablemutationtoxin" = 1, "eznutriment" = 1) //plant food
|
||||
|
||||
/datum/chemical_reaction/golem_mutation_toxin
|
||||
name = "Golem Mutation Toxin"
|
||||
id = "golemmutationtoxin"
|
||||
results = list("golemmutationtoxin" = 1)
|
||||
required_reagents = list("unstablemutationtoxin" = 1, "silver" = 1) //not too hard to get but also not just there in xenobio
|
||||
|
||||
|
||||
//BLACKLISTED RACES
|
||||
/datum/chemical_reaction/skeleton_mutation_toxin
|
||||
name = "Skeleton Mutation Toxin"
|
||||
id = "skeletonmutationtoxin"
|
||||
results = list("skeletonmutationtoxin" = 1)
|
||||
required_reagents = list("amutationtoxin" = 1, "milk" = 1) //good for yer bones
|
||||
|
||||
/datum/chemical_reaction/zombie_mutation_toxin
|
||||
name = "Zombie Mutation Toxin"
|
||||
id = "zombiemutationtoxin"
|
||||
results = list("zombiemutationtoxin" = 1)
|
||||
required_reagents = list("amutationtoxin" = 1, "toxin" = 1)
|
||||
|
||||
/datum/chemical_reaction/ash_mutation_toxin //ash lizard
|
||||
name = "Ash Mutation Toxin"
|
||||
id = "ashmutationtoxin"
|
||||
results = list("ashmutationtoxin" = 1)
|
||||
required_reagents = list("amutationtoxin" = 1, "lizardmutationtoxin" = 1, "ash" = 1)
|
||||
|
||||
|
||||
//DANGEROUS RACES
|
||||
/datum/chemical_reaction/plasma_mutation_toxin
|
||||
name = "Plasma Mutation Toxin"
|
||||
id = "plasmamutationtoxin"
|
||||
results = list("plasmamutationtoxin" = 1)
|
||||
required_reagents = list("skeletonmutationtoxin" = 1, "plasma" = 1, "uranium" = 1) //this is very fucking powerful, so it's hard to make
|
||||
|
||||
/datum/chemical_reaction/shadow_mutation_toxin
|
||||
name = "Shadow Mutation Toxin"
|
||||
id = "shadowmutationtoxin"
|
||||
results = list("shadowmutationtoxin" = 1)
|
||||
required_reagents = list("amutationtoxin" = 1, "liquid_dark_matter" = 1, "holywater" = 1)
|
||||
|
||||
//Technically a mutation toxin
|
||||
/datum/chemical_reaction/mulligan
|
||||
name = "Mulligan"
|
||||
id = "mulligan"
|
||||
results = list("mulligan" = 1)
|
||||
required_reagents = list("stablemutationtoxin" = 1, "mutagen" = 1)
|
||||
required_reagents = list("slime_toxin" = 1, "mutagen" = 1)
|
||||
|
||||
|
||||
////////////////////////////////// VIROLOGY //////////////////////////////////////////
|
||||
|
||||
@@ -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"
|
||||
@@ -418,3 +425,11 @@
|
||||
strengthdiv = 7
|
||||
required_temp = 575
|
||||
modifier = 1
|
||||
|
||||
/datum/chemical_reaction/firefighting_foam
|
||||
name = "Firefighting Foam"
|
||||
id = "firefighting_foam"
|
||||
results = list("firefighting_foam" = 3)
|
||||
required_reagents = list("stabilizing_agent" = 1,"fluorosurfactant" = 1,"carbon" = 1)
|
||||
required_temp = 200
|
||||
is_cold_recipe = 1
|
||||
|
||||
@@ -48,21 +48,27 @@
|
||||
//Green
|
||||
/datum/chemical_reaction/slime/slimemutate
|
||||
name = "Mutation Toxin"
|
||||
id = "mutationtoxin"
|
||||
results = list("mutationtoxin" = 1)
|
||||
id = "slimetoxin"
|
||||
results = list("slime_toxin" = 1)
|
||||
required_reagents = list("plasma" = 1)
|
||||
required_other = 1
|
||||
required_container = /obj/item/slime_extract/green
|
||||
|
||||
//Mutated Green
|
||||
/datum/chemical_reaction/slime/slimemutate_unstable
|
||||
name = "Unstable Mutation Toxin"
|
||||
id = "unstablemutationtoxin"
|
||||
results = list("unstablemutationtoxin" = 1)
|
||||
/datum/chemical_reaction/slime/slimehuman
|
||||
name = "Human Mutation Toxin"
|
||||
id = "humanmuttoxin"
|
||||
results = list("stablemutationtoxin" = 1)
|
||||
required_reagents = list("blood" = 1)
|
||||
required_other = 1
|
||||
required_container = /obj/item/slime_extract/green
|
||||
|
||||
/datum/chemical_reaction/slime/slimelizard
|
||||
name = "Lizard Mutation Toxin"
|
||||
id = "lizardmuttoxin"
|
||||
results = list("lizardmutationtoxin" = 1)
|
||||
required_reagents = list("radium" = 1)
|
||||
required_other = 1
|
||||
required_container = /obj/item/slime_extract/green
|
||||
mix_message = "<span class='info'>The mixture rapidly expands and contracts, its appearance shifting into a sickening green.</span>"
|
||||
|
||||
//Metal
|
||||
/datum/chemical_reaction/slime/slimemetal
|
||||
@@ -110,7 +116,7 @@
|
||||
|
||||
/datum/chemical_reaction/slime/slimemobspawn/proc/summon_mobs(datum/reagents/holder, turf/T)
|
||||
T.visible_message("<span class='danger'>The slime extract begins to vibrate violently!</span>")
|
||||
addtimer(CALLBACK(src, .proc/chemical_mob_spawn, holder, 5, "Gold Slime"), 50)
|
||||
addtimer(CALLBACK(src, .proc/chemical_mob_spawn, holder, 5, "Gold Slime", HOSTILE_SPAWN), 50)
|
||||
|
||||
/datum/chemical_reaction/slime/slimemobspawn/lesser
|
||||
name = "Slime Crit Lesser"
|
||||
@@ -119,7 +125,7 @@
|
||||
|
||||
/datum/chemical_reaction/slime/slimemobspawn/lesser/summon_mobs(datum/reagents/holder, turf/T)
|
||||
T.visible_message("<span class='danger'>The slime extract begins to vibrate violently!</span>")
|
||||
addtimer(CALLBACK(src, .proc/chemical_mob_spawn, holder, 3, "Lesser Gold Slime", "neutral"), 50)
|
||||
addtimer(CALLBACK(src, .proc/chemical_mob_spawn, holder, 3, "Lesser Gold Slime", HOSTILE_SPAWN, "neutral"), 50)
|
||||
|
||||
/datum/chemical_reaction/slime/slimemobspawn/friendly
|
||||
name = "Slime Crit Friendly"
|
||||
@@ -128,7 +134,7 @@
|
||||
|
||||
/datum/chemical_reaction/slime/slimemobspawn/friendly/summon_mobs(datum/reagents/holder, turf/T)
|
||||
T.visible_message("<span class='danger'>The slime extract begins to vibrate adorably!</span>")
|
||||
addtimer(CALLBACK(src, .proc/chemical_mob_spawn, holder, 1, "Friendly Gold Slime", "neutral"), 50)
|
||||
addtimer(CALLBACK(src, .proc/chemical_mob_spawn, holder, 1, "Friendly Gold Slime", FRIENDLY_SPAWN, "neutral"), 50)
|
||||
|
||||
//Silver
|
||||
/datum/chemical_reaction/slime/slimebork
|
||||
@@ -140,7 +146,6 @@
|
||||
|
||||
/datum/chemical_reaction/slime/slimebork/on_reaction(datum/reagents/holder)
|
||||
//BORK BORK BORK
|
||||
var/list/borks = getborks()
|
||||
var/turf/T = get_turf(holder.my_atom)
|
||||
|
||||
playsound(T, 'sound/effects/phasein.ogg', 100, 1)
|
||||
@@ -149,7 +154,7 @@
|
||||
C.flash_act()
|
||||
|
||||
for(var/i in 1 to 4 + rand(1,2))
|
||||
var/chosen = pick(borks)
|
||||
var/chosen = getbork()
|
||||
var/obj/B = new chosen(T)
|
||||
if(prob(5))//Fry it!
|
||||
var/obj/item/reagent_containers/food/snacks/deepfryholder/fried
|
||||
@@ -161,36 +166,16 @@
|
||||
step(B, pick(NORTH,SOUTH,EAST,WEST))
|
||||
..()
|
||||
|
||||
/datum/chemical_reaction/slime/slimebork/proc/getborks()
|
||||
var/list/blocked = list(/obj/item/reagent_containers/food/snacks,
|
||||
/obj/item/reagent_containers/food/snacks/store/bread,
|
||||
/obj/item/reagent_containers/food/snacks/breadslice,
|
||||
/obj/item/reagent_containers/food/snacks/store/cake,
|
||||
/obj/item/reagent_containers/food/snacks/cakeslice,
|
||||
/obj/item/reagent_containers/food/snacks/store,
|
||||
/obj/item/reagent_containers/food/snacks/pie,
|
||||
/obj/item/reagent_containers/food/snacks/kebab,
|
||||
/obj/item/reagent_containers/food/snacks/pizza,
|
||||
/obj/item/reagent_containers/food/snacks/pizzaslice,
|
||||
/obj/item/reagent_containers/food/snacks/salad,
|
||||
/obj/item/reagent_containers/food/snacks/meat,
|
||||
/obj/item/reagent_containers/food/snacks/meat/slab,
|
||||
/obj/item/reagent_containers/food/snacks/soup,
|
||||
/obj/item/reagent_containers/food/snacks/grown,
|
||||
/obj/item/reagent_containers/food/snacks/grown/mushroom,
|
||||
/obj/item/reagent_containers/food/snacks/deepfryholder
|
||||
)
|
||||
blocked |= typesof(/obj/item/reagent_containers/food/snacks/customizable)
|
||||
|
||||
return typesof(/obj/item/reagent_containers/food/snacks) - blocked
|
||||
/datum/chemical_reaction/slime/slimebork/proc/getbork()
|
||||
return get_random_food()
|
||||
|
||||
/datum/chemical_reaction/slime/slimebork/drinks
|
||||
name = "Slime Bork 2"
|
||||
id = "m_tele4"
|
||||
required_reagents = list("water" = 1)
|
||||
|
||||
/datum/chemical_reaction/slime/slimebork/drinks/getborks()
|
||||
return subtypesof(/obj/item/reagent_containers/food/drinks)
|
||||
/datum/chemical_reaction/slime/slimebork/drinks/getbork()
|
||||
return get_random_drink()
|
||||
|
||||
//Blue
|
||||
/datum/chemical_reaction/slime/slimefrost
|
||||
@@ -344,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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user