Chemistry Cleanup and Fixes

This commit is contained in:
Fox-McCloud
2015-03-01 16:34:23 -05:00
parent 5b4c156989
commit 3bed31e08c
12 changed files with 129 additions and 810 deletions
@@ -1,158 +0,0 @@
//Cough medicine.
/datum/reagent/antidepressant/dextromethorphan
name = "Dextromethorphan"
id = "dextromethorphan"
description = "Cough medicine."
reagent_state = LIQUID
color = "#FF1111"
custom_metabolism = 0.05
data = 0
var/message = 0
on_mob_life(var/mob/living/M as mob)
if(!M) M = holder.my_atom
if(!data) data = 0
if(!message) message = 0
data += custom_metabolism
switch(data + src.volume)
if(1 to 5)
if(message == 0)
M << "\red Your throat feels better and you stop coughing."
//The coughing check is made in carbon/human/emote.dm where it checks after this reagent.
message = 1
if(5 to 12.5)
if(message < 2)
M << "\red You feel full of strength and energy! You're getting restless!"
message = 2
if(prob(5)) M.emote(pick("twitch_s"))
if(12.5 to 25)
if(message < 3)
M << "\red Your heartrate is racing. You feel euphoric!"
message = 3
M.druggy = max(M.druggy, 15)
if(prob(5)) M.emote(pick("twitch_s","moan"))
if(25 to INFINITY)
if(message < 4)
M << "\red Your heart is racing and your body won't respond properly. You almost feel like you're on autopilot."
message = 4
M.druggy = max(M.druggy, 15)
if(prob(10)) M.emote(pick("twitch","moan","drool"))
if(prob(10)) M:weakened = max(M:weakened, 10)
if(prob(5)) M.hallucination = max(M.hallucination, 5)
..()
return
/datum/chemical_reaction/dextromethorphan
name = "Dextromethorphan"
id = "dextromethorphan"
result = "dextromethorphan"
required_reagents = list("cryptobiolin" = 1, "hydrogen" = 1, "carbon" = 1)
result_amount = 3
//MDMA
/datum/reagent/antidepressant/mdma
name = "MDMA"
id = "mdma"
description = "MDMA is one of the most popular recreational psychoactives, most commonly sold in the form of 'ecstasy' tablets. It is known for its empathogenic, euphoric, and stimulant effects, and has also been used in psychotherapy."
reagent_state = LIQUID
color = "#EEEEEE"
custom_metabolism = 0.1
data = 0
var/message = 0
on_mob_life(var/mob/living/M as mob)
if(!M) M = holder.my_atom
if(!data) data = 0
if(!message) message = 0
data += custom_metabolism
switch(data + src.volume)
if(1 to 5)
if(message == 0)
M << "\red Your heart rate increases. Your senses all seem more amplified. You start to feel... euphoric."
message = 1
M.druggy = max(M.druggy, 15)
if(prob(5)) M.emote(pick("giggle","moan"))
if(5 to 10)
if(message < 2)
M << "\red Your heart rate increases. Your senses all seem more amplified. You start to feel... euphoric."
message = 2
M.druggy = max(M.druggy, 15)
if(prob(5)) M.emote(pick("giggle","moan"))
if(10 to 20)
if(message < 3)
M << "\red Your heart rate increases. Your senses all seem more amplified. You start to feel... euphoric."
message = 3
M.druggy = max(M.druggy, 15)
if(prob(5)) M.emote(pick("giggle","moan"))
if(20 to INFINITY)
if(message < 4)
M << "\red That was probably too much..."
message = 4
M.druggy = max(M.druggy, 15)
if(prob(10)) M.emote(pick("twitch","giggle","moan"))
if(prob(10)) M.emote(pick("drool"))
if(prob(10)) M:weakened = max(M:weakened, 10)
..()
return
/datum/chemical_reaction/mdma
name = "MDMA"
id = "mdma"
result = "mdma"
required_reagents = list("cryptobiolin" = 1, "inaprovaline" = 1, "sugar" = 1)
result_amount = 3
//Meth
/datum/reagent/antidepressant/meth
name = "Methamphetamine"
id = "meth"
description = "Methamphetamine is a neurotoxin and potent psychostimulant of the phenethylamine and amphetamine classes that is used as a recreational drug and, rarely, to treat attention deficit hyperactivity disorder (ADHD) and obesity."
reagent_state = LIQUID
color = "#000088"
custom_metabolism = 0.1
data = 0
var/message = 0
on_mob_life(var/mob/living/M as mob)
if(!M) M = holder.my_atom
if(!data) data = 0
if(!message) message = 0
data += custom_metabolism
switch(data + src.volume)
if(1 to 5)
if(message == 0)
M << "\red You feel an intense euphoria wash over you."
message = 1
M.druggy = max(M.druggy, 15)
if(prob(10)) M.emote(pick("giggle","moan"))
if(5 to 10)
if(message < 2)
M << "\red The euphoria washing over you is accompanied by an intense restlessness. You need something to do... badly."
message = 2
M.druggy = max(M.druggy, 15)
if(prob(10)) M.emote(pick("giggle", "moan", "twitch_s", "twitch"))
if(10 to 20)
if(message < 3)
M << "\red The euphoria you're feeling is accompanied by equal parts restlessness and discomfort as your heartbeat goes all over the place."
message = 3
M.druggy = max(M.druggy, 15)
if(prob(10)) M.emote(pick("giggle", "moan", "twitch_s", "twitch"))
if(20 to INFINITY)
if(message < 4)
M << "\red Your heartbeat becomes highly irregular all of a sudden. The world seems a blur around you. Your head is aching."
message = 4
M.druggy = max(M.druggy, 15)
if(prob(10)) M.emote(pick("giggle", "moan", "twitch_s", "twitch"))
if(prob(10)) M.emote(pick("drool"))
if(prob(10)) M:weakened = max(M:weakened, 10)
..()
return
/datum/chemical_reaction/meth
name = "Methamphetamine"
id = "meth"
result = "meth"
required_reagents = list("water" = 1, "dextromethorphan" = 1, "potassium" = 1)
required_catalysts = list("fuel" = 5)
result_amount = 3
+36 -214
View File
@@ -485,38 +485,6 @@ datum
..()
return
srejuvenate
name = "Soporific Rejuvenant"
id = "stoxin2"
description = "Put people to sleep, and heals them."
reagent_state = LIQUID
color = "#C8A5DC" // rgb: 200, 165, 220
on_mob_life(var/mob/living/M as mob)
if(!M) M = holder.my_atom
if(!data) data = 1
data++
if(M.losebreath >= 10)
M.losebreath = max(10, M.losebreath-10)
holder.remove_reagent(src.id, 0.2)
switch(data)
if(1 to 15)
M.eye_blurry = max(M.eye_blurry, 10)
if(15 to 25)
M.drowsyness = max(M.drowsyness, 20)
if(25 to INFINITY)
M.sleeping += 1
M.adjustOxyLoss(-M.getOxyLoss())
M.SetWeakened(0)
M.SetStunned(0)
M.SetParalysis(0)
M.dizziness = 0
M.drowsyness = 0
M.stuttering = 0
M.confused = 0
M.jitteriness = 0
..()
return
inaprovaline
name = "Inaprovaline"
id = "inaprovaline"
@@ -1037,24 +1005,12 @@ datum
var/needs_update = 1 //M.mutations.len > 0
//Ryetalyn now cures by a random chance per on_mob_life call - Bone White
// 1 volume = ~2% chance
// 10 volume = ~17% chance
// 30 volume = ~38% chance
//if (rand(0, 50+volume) > 50 && ishuman(M))
if (volume >= 1 && ishuman(M))
for(var/block=1;block<=DNA_SE_LENGTH;block++)
M.dna.SetSEState(block,0)
genemutcheck(M,block,null,MUTCHK_FORCED)
M.update_mutations()
for(var/block=1;block<=DNA_SE_LENGTH;block++)
M.dna.SetSEState(block,0)
genemutcheck(M,block,null,MUTCHK_FORCED)
M.update_mutations()
M.dna.struc_enzymes = M.dna.struc_enzymes_original
/* Old Code (non-functional)
M.mutations = list()
M.disabilities = 0
M.sdisabilities = 0
*/
M.dna.struc_enzymes = M.dna.struc_enzymes_original
// Might need to update appearance for hulk etc.
if(needs_update && ishuman(M))
@@ -1637,25 +1593,6 @@ datum
..()
return
Alchdranine
name = "Alchdranine"
id = "alchdranine"
description = "Alchdranine is an extremely strange chemical substance that can be used to treat almost any injury with a high level of effectiveness "
reagent_state = LIQUID
color = "#07a4d1" // rgb: 7, 164, 209
on_mob_life(var/mob/living/M as mob, var/alien)
if(M.stat == 2.0)
return
if(!M) M = holder.my_atom
if(!alien || alien != IS_DIONA)
M.adjustOxyLoss(-1*REM)
M.heal_organ_damage(1*REM,0)
M.heal_organ_damage(0,1*REM)
M.adjustToxLoss(-1*REM)
..()
return
adminordrazine //An OP chemical for admins
name = "Adminordrazine"
id = "adminordrazine"
@@ -1665,43 +1602,20 @@ datum
on_mob_life(var/mob/living/carbon/M as mob)
if(!M) M = holder.my_atom ///This can even heal dead people.
for(var/datum/reagent/R in M.reagents.reagent_list)
if(R != src)
M.reagents.remove_reagent(R.id,5)
M.setCloneLoss(0)
M.setOxyLoss(0)
M.radiation = 0
M.heal_organ_damage(5,5)
M.adjustToxLoss(-5)
if(holder.has_reagent("toxin"))
holder.remove_reagent("toxin", 5)
if(holder.has_reagent("stoxin"))
holder.remove_reagent("stoxin", 5)
if(holder.has_reagent("plasma"))
holder.remove_reagent("plasma", 5)
if(holder.has_reagent("sacid"))
holder.remove_reagent("sacid", 5)
if(holder.has_reagent("pacid"))
holder.remove_reagent("pacid", 5)
if(holder.has_reagent("cyanide"))
holder.remove_reagent("cyanide", 5)
if(holder.has_reagent("lexorin"))
holder.remove_reagent("lexorin", 5)
if(holder.has_reagent("amatoxin"))
holder.remove_reagent("amatoxin", 5)
if(holder.has_reagent("chloralhydrate"))
holder.remove_reagent("chloralhydrate", 5)
if(holder.has_reagent("carpotoxin"))
holder.remove_reagent("carpotoxin", 5)
if(holder.has_reagent("zombiepowder"))
holder.remove_reagent("zombiepowder", 5)
if(holder.has_reagent("mindbreaker"))
holder.remove_reagent("mindbreaker", 5)
M.hallucination = 0
M.setBrainLoss(0)
M.disabilities = 0
M.sdisabilities = 0
M.eye_blurry = 0
M.eye_blind = 0
// M.disabilities &= ~NEARSIGHTED //doesn't even do anythig cos of the disabilities = 0 bit
// M.sdisabilities &= ~BLIND //doesn't even do anythig cos of the sdisabilities = 0 bit
if(ishuman(M))
var/mob/living/carbon/human/H = M
var/datum/organ/internal/eyes/E = H.internal_organs_by_name["eyes"]
@@ -1714,9 +1628,16 @@ datum
M.dizziness = 0
M.drowsyness = 0
M.stuttering = 0
M.slurring = 0
M.confused = 0
M.sleeping = 0
M.jitteriness = 0
if(istype(M,/mob/living/carbon)) // make sure to only use it on carbon mobs
var/mob/living/carbon/C = M
if(C.virus2.len)
for (var/ID in C.virus2)
var/datum/disease2/disease/V = C.virus2[ID]
M:antibodies |= V.antigen
..()
return
@@ -2136,47 +2057,7 @@ datum
description = "A highly addictive stimulant extracted from the tobacco plant."
reagent_state = LIQUID
color = "#181818" // rgb: 24, 24, 24
/*
ethanol
name = "Ethanol"
id = "ethanol"
description = "A well-known alcohol with a variety of applications."
reagent_state = LIQUID
color = "#404030" // rgb: 64, 64, 48
on_mob_life(var/mob/living/M as mob)
if(!data) data = 1
data++
M.Dizzy(5)
M.jitteriness = max(M.jitteriness-5,0)
if(data >= 25)
if (!M.stuttering) M.stuttering = 1
M.stuttering += 4
if(data >= 40 && prob(33))
if (!M.confused) M.confused = 1
M.confused += 3
..()
return
reaction_obj(var/obj/O, var/volume)
if(istype(O,/obj/item/weapon/paper))
var/obj/item/weapon/paper/paperaffected = O
paperaffected.clearpaper()
usr << "The solution melts away the ink on the paper."
if(istype(O,/obj/item/weapon/book))
if(volume >= 5)
var/obj/item/weapon/book/affectedbook = O
affectedbook.dat = null
usr << "The solution melts away the ink on the book."
else
usr << "It wasn't enough..."
return
reaction_mob(var/mob/living/M, var/method=TOUCH, var/volume)//Splashing people with ethanol isn't quite as good as fuel.
if(!istype(M, /mob/living))
return
if(method == TOUCH)
M.adjust_fire_stacks(volume / 15)
return
*/
ammonia
name = "Ammonia"
id = "ammonia"
@@ -2184,11 +2065,6 @@ datum
reagent_state = GAS
color = "#404030" // rgb: 64, 64, 48
ultraglue
name = "Ultra Glue"
id = "glue"
description = "An extremely powerful bonding agent."
color = "#FFFFCC" // rgb: 255, 255, 204
diethylamine
name = "Diethylamine"
@@ -2254,28 +2130,23 @@ datum
..()
return
beer2 //copypasta of chloral hydrate, disguised as normal beer for use by emagged brobots
beer2 //disguised as normal beer for use by emagged brobots
name = "Beer"
id = "beer2"
description = "An alcoholic beverage made from malted grains, hops, yeast, and water."
reagent_state = LIQUID
color = "#664300" // rgb: 102, 67, 0
reaction_mob(var/mob/living/carbon/M, var/method=TOUCH, var/volume)
if(!..()) return
if(!istype(M) || !M.dna) return //No robots, AIs, aliens, Ians or other mobs should be affected by this.
src = null
if((method==TOUCH && prob(33)) || method==INGEST)
randmuti(M)
if(prob(98)) randmutb(M)
else randmutg(M)
domutcheck(M, null)
M.UpdateAppearance()
return
on_mob_life(var/mob/living/carbon/M)
if(!istype(M)) return
if(!M) M = holder.my_atom
M.apply_effect(10,IRRADIATE,0)
on_mob_life(var/mob/living/M as mob)
if(!data)
data = 1
switch(data)
if(1 to 50)
M.sleeping += 1
if(51 to INFINITY)
M.sleeping += 1
M.adjustToxLoss((data - 50)*REM)
data++
holder.remove_reagent(src.id, 0.5 * REAGENTS_METABOLISM)
..()
return
@@ -2294,19 +2165,6 @@ datum
if(!M) M = holder.my_atom
if(prob(50)) M.heal_organ_damage(1,0)
M.nutrition += nutriment_factor // For hunger and fatness
/*
// If overeaten - vomit and fall down
// Makes you feel bad but removes reagents and some effect
// from your body
if (M.nutrition > 650)
M.nutrition = rand (250, 400)
M.weakened += rand(2, 10)
M.jitteriness += rand(0, 5)
M.dizziness = max (0, (M.dizziness - rand(0, 15)))
M.druggy = max (0, (M.druggy - rand(0, 15)))
M.adjustToxLoss(rand(-15, -5)))
M.updatehealth()
*/
..()
return
@@ -2598,25 +2456,6 @@ datum
return
..()
/* //removed because of meta bullshit. this is why we can't have nice things.
syndicream
name = "Cream filling"
id = "syndicream"
description = "Delicious cream filling of a mysterious origin. Tastes criminally good."
nutriment_factor = 1 * REAGENTS_METABOLISM
color = "#AB7878" // rgb: 171, 120, 120
on_mob_life(var/mob/living/M as mob)
M.nutrition += nutriment_factor
if(istype(M, /mob/living/carbon/human) && M.mind)
if(M.mind.special_role)
if(!M) M = holder.my_atom
M.heal_organ_damage(1,1)
M.nutrition += nutriment_factor
..()
return
..()
*/
cornoil
name = "Corn Oil"
id = "cornoil"
@@ -2705,7 +2544,7 @@ datum
..()
return
/* We're back to flour bags
flour
name = "flour"
id = "flour"
@@ -2723,7 +2562,6 @@ datum
src = null
if(!istype(T, /turf/space))
new /obj/effect/decal/cleanable/flour(T)
*/
rice
name = "Rice"
@@ -3327,6 +3165,13 @@ datum
usr << "It wasn't enough..."
return
reaction_mob(var/mob/living/M, var/method=TOUCH, var/volume)//Splashing people with ethanol isn't quite as good as fuel.
if(!istype(M, /mob/living))
return
if(method == TOUCH)
M.adjust_fire_stacks(volume / 15)
return
beer //It's really much more stronger than other drinks.
name = "Beer"
id = "beer"
@@ -3974,29 +3819,6 @@ datum
return
//Fox
/////////////////Requires Further Balance Testing//////////////////
/*
lectrazine
name = "Lectrazine"
id = "lectrazine"
description = "An extremly powerful cardiostimulant and analgesic which is used in revival of deceased."
reagent_state = LIQUID
color = "#080000"
custom_metabolism = 0.1
reaction_mob(var/mob/living/carbon/M as mob, var/methode=INGEST)
if(!M) M = holder.my_atom
M.stat = CONSCIOUS
M.setOxyLoss(0)
M.heal_organ_damage(15,0)
M.SetParalysis(15)
M.adjustBrainLoss(10*REM)
return
*/
// Undefine the alias for REAGENTS_EFFECT_MULTIPLER
#undef REM
@@ -4004,4 +3826,4 @@ datum
/datum/reagent/Destroy()
if(holder)
holder.reagent_list -= src
holder = null
holder = null
+1 -333
View File
@@ -327,13 +327,6 @@ datum
required_reagents = list("oxygen" = 1, "anti_toxin" = 1, "carbon" = 1)
result_amount = 3
ethanoloxidation
name = "ethanoloxidation" //Kind of a placeholder in case someone ever changes it so that chemicals
id = "ethanoloxidation" // react in the body. Also it would be silly if it didn't exist.
result = "water"
required_reagents = list("ethylredoxrazine" = 1, "ethanol" = 1)
result_amount = 2
glycerol
name = "Glycerol"
id = "glycerol"
@@ -405,33 +398,6 @@ datum
holder.del_reagent("napalm")
return
/*
smoke
name = "Smoke"
id = "smoke"
result = null
required_reagents = list("potassium" = 1, "sugar" = 1, "phosphorus" = 1 )
result_amount = null
secondary = 1
on_reaction(var/datum/reagents/holder, var/created_volume)
var/location = get_turf(holder.my_atom)
var/datum/effect/system/bad_smoke_spread/S = new /datum/effect/system/bad_smoke_spread
S.attach(location)
S.set_up(10, 0, location)
playsound(location, 'sound/effects/smoke.ogg', 50, 1, -3)
spawn(0)
S.start()
sleep(10)
S.start()
sleep(10)
S.start()
sleep(10)
S.start()
sleep(10)
S.start()
holder.clear_reagents()
return */
chemsmoke
name = "Chemsmoke"
id = "chemsmoke"
@@ -720,289 +686,7 @@ datum
M.show_message( "<span class ='notice'>The blood seems to break apart in the fuel.</span>", 1)
holder.del_reagent("blood")
return
/////////////////////////////////////OLD SLIME CORE REACTIONS ///////////////////////////////
/*
slimepepper
name = "Slime Condensedcapaicin"
id = "m_condensedcapaicin"
result = "condensedcapsaicin"
required_reagents = list("sugar" = 1)
result_amount = 1
required_container = /obj/item/slime_core
required_other = 1
slimefrost
name = "Slime Frost Oil"
id = "m_frostoil"
result = "frostoil"
required_reagents = list("water" = 1)
result_amount = 1
required_container = /obj/item/slime_core
required_other = 1
slimeglycerol
name = "Slime Glycerol"
id = "m_glycerol"
result = "glycerol"
required_reagents = list("blood" = 1)
result_amount = 1
required_container = /obj/item/slime_core
required_other = 1
slime_explosion
name = "Slime Explosion"
id = "m_explosion"
result = null
required_reagents = list("blood" = 1)
result_amount = 2
required_container = /obj/item/slime_core
required_other = 2
on_reaction(var/datum/reagents/holder, var/created_volume)
var/location = get_turf(holder.my_atom)
var/datum/effect/effect/system/reagents_explosion/e = new()
e.set_up(round (created_volume/10, 1), location, 0, 0)
e.start()
holder.clear_reagents()
return
slimejam
name = "Slime Jam"
id = "m_jam"
result = "slimejelly"
required_reagents = list("water" = 1)
result_amount = 1
required_container = /obj/item/slime_core
required_other = 2
slimesynthi
name = "Slime Synthetic Flesh"
id = "m_flesh"
result = null
required_reagents = list("sugar" = 1)
result_amount = 1
required_container = /obj/item/slime_core
required_other = 2
on_reaction(var/datum/reagents/holder, var/created_volume)
var/location = get_turf(holder.my_atom)
new /obj/item/weapon/reagent_containers/food/snacks/meat/syntiflesh(location)
return
slimeenzyme
name = "Slime Enzyme"
id = "m_enzyme"
result = "enzyme"
required_reagents = list("blood" = 1, "water" = 1)
result_amount = 2
required_container = /obj/item/slime_core
required_other = 3
slimeplasma
name = "Slime Plasma"
id = "m_plasma"
result = "plasma"
required_reagents = list("sugar" = 1, "blood" = 2)
result_amount = 2
required_container = /obj/item/slime_core
required_other = 3
slimevirus
name = "Slime Virus"
id = "m_virus"
result = null
required_reagents = list("sugar" = 1, "sacid" = 1)
result_amount = 2
required_container = /obj/item/slime_core
required_other = 3
on_reaction(var/datum/reagents/holder, var/created_volume)
holder.clear_reagents()
var/virus = pick(/datum/disease/advance/flu, /datum/disease/advance/cold, \
/datum/disease/pierrot_throat, /datum/disease/fake_gbs, \
/datum/disease/brainrot, /datum/disease/magnitis)
var/datum/disease/F = new virus(0)
var/list/data = list("viruses"= list(F))
holder.add_reagent("blood", 20, data)
holder.add_reagent("cyanide", rand(1,10))
return
slimeteleport
name = "Slime Teleport"
id = "m_tele"
result = null
required_reagents = list("pacid" = 2, "mutagen" = 2)
required_catalysts = list("plasma" = 1)
result_amount = 1
required_container = /obj/item/slime_core
required_other = 4
on_reaction(var/datum/reagents/holder, var/created_volume)
// Calculate new position (searches through beacons in world)
var/obj/item/device/radio/beacon/chosen
var/list/possible = list()
for(var/obj/item/device/radio/beacon/W in world)
possible += W
if(possible.len > 0)
chosen = pick(possible)
if(chosen)
// Calculate previous position for transition
var/turf/FROM = get_turf_loc(holder.my_atom) // the turf of origin we're travelling FROM
var/turf/TO = get_turf_loc(chosen) // the turf of origin we're travelling TO
playsound(TO, 'sound/effects/phasein.ogg', 100, 1)
var/list/flashers = list()
for(var/mob/living/carbon/human/M in viewers(TO, null))
if(M:eyecheck() <= 0)
flick("e_flash", M.flash) // flash dose faggots
flashers += M
var/y_distance = TO.y - FROM.y
var/x_distance = TO.x - FROM.x
for (var/atom/movable/A in range(2, FROM )) // iterate thru list of mobs in the area
if(istype(A, /obj/item/device/radio/beacon)) continue // don't teleport beacons because that's just insanely stupid
if( A.anchored && !istype(A, /mob/dead/observer) ) continue // don't teleport anchored things (computers, tables, windows, grilles, etc) because this causes problems!
// do teleport ghosts however because hell why not
var/turf/newloc = locate(A.x + x_distance, A.y + y_distance, TO.z) // calculate the new place
if(!A.Move(newloc)) // if the atom, for some reason, can't move, FORCE them to move! :) We try Move() first to invoke any movement-related checks the atom needs to perform after moving
A.loc = locate(A.x + x_distance, A.y + y_distance, TO.z)
spawn()
if(ismob(A) && !(A in flashers)) // don't flash if we're already doing an effect
var/mob/M = A
if(M.client)
var/obj/blueeffect = new /obj(src)
blueeffect.screen_loc = "WEST,SOUTH to EAST,NORTH"
blueeffect.icon = 'icons/effects/effects.dmi'
blueeffect.icon_state = "shieldsparkles"
blueeffect.layer = 17
blueeffect.mouse_opacity = 0
M.client.screen += blueeffect
sleep(20)
M.client.screen -= blueeffect
del(blueeffect)
slimecrit
name = "Slime Crit"
id = "m_tele"
result = null
required_reagents = list("sacid" = 1, "blood" = 1)
required_catalysts = list("plasma" = 1)
result_amount = 1
required_container = /obj/item/slime_core
required_other = 4
on_reaction(var/datum/reagents/holder, var/created_volume)
var/blocked = list(/mob/living/simple_animal/hostile,
/mob/living/simple_animal/hostile/pirate,
/mob/living/simple_animal/hostile/pirate/ranged,
/mob/living/simple_animal/hostile/russian,
/mob/living/simple_animal/hostile/russian/ranged,
/mob/living/simple_animal/hostile/syndicate,
/mob/living/simple_animal/hostile/syndicate/melee,
/mob/living/simple_animal/hostile/syndicate/melee/space,
/mob/living/simple_animal/hostile/syndicate/ranged,
/mob/living/simple_animal/hostile/syndicate/ranged/space,
/mob/living/simple_animal/hostile/alien/queen/large,
/mob/living/simple_animal/clown
)//exclusion list for things you don't want the reaction to create.
var/list/critters = typesof(/mob/living/simple_animal/hostile) - blocked // list of possible hostile mobs
playsound(get_turf_loc(holder.my_atom), 'sound/effects/phasein.ogg', 100, 1)
for(var/mob/living/carbon/human/M in viewers(get_turf_loc(holder.my_atom), null))
if(M:eyecheck() <= 0)
flick("e_flash", M.flash)
for(var/i = 1, i <= created_volume, i++)
var/chosen = pick(critters)
var/mob/living/simple_animal/hostile/C = new chosen
C.loc = get_turf_loc(holder.my_atom)
if(prob(50))
for(var/j = 1, j <= rand(1, 3), j++)
step(C, pick(NORTH,SOUTH,EAST,WEST))
slimebork
name = "Slime Bork"
id = "m_tele"
result = null
required_reagents = list("sugar" = 1, "water" = 1)
result_amount = 2
required_container = /obj/item/slime_core
required_other = 4
on_reaction(var/datum/reagents/holder, var/created_volume)
var/list/borks = typesof(/obj/item/weapon/reagent_containers/food/snacks) - /obj/item/weapon/reagent_containers/food/snacks
// BORK BORK BORK
playsound(get_turf_loc(holder.my_atom), 'sound/effects/phasein.ogg', 100, 1)
for(var/mob/living/carbon/human/M in viewers(get_turf_loc(holder.my_atom), null))
if(M:eyecheck() <= 0)
flick("e_flash", M.flash)
for(var/i = 1, i <= created_volume + rand(1,2), i++)
var/chosen = pick(borks)
var/obj/B = new chosen
if(B)
B.loc = get_turf_loc(holder.my_atom)
if(prob(50))
for(var/j = 1, j <= rand(1, 3), j++)
step(B, pick(NORTH,SOUTH,EAST,WEST))
slimechloral
name = "Slime Chloral"
id = "m_bunch"
result = "chloralhydrate"
required_reagents = list("blood" = 1, "water" = 2)
result_amount = 2
required_container = /obj/item/slime_core
required_other = 5
slimeretro
name = "Slime Retro"
id = "m_xeno"
result = null
required_reagents = list("sugar" = 1)
result_amount = 1
required_container = /obj/item/slime_core
required_other = 5
on_reaction(var/datum/reagents/holder, var/created_volume)
var/datum/disease/F = new /datum/disease/dna_retrovirus(0)
var/list/data = list("viruses"= list(F))
holder.add_reagent("blood", 20, data)
slimefoam
name = "Slime Foam"
id = "m_foam"
result = null
required_reagents = list("sacid" = 1)
result_amount = 2
required_container = /obj/item/slime_core
required_other = 5
on_reaction(var/datum/reagents/holder, var/created_volume)
var/location = get_turf(holder.my_atom)
for(var/mob/M in viewers(5, location))
M << "\red The solution violently bubbles!"
location = get_turf(holder.my_atom)
for(var/mob/M in viewers(5, location))
M << "\red The solution spews out foam!"
//world << "Holder volume is [holder.total_volume]"
//for(var/datum/reagent/R in holder.reagent_list)
// world << "[R.name] = [R.volume]"
var/datum/effect/effect/system/foam_spread/s = new()
s.set_up(created_volume, location, holder, 0)
s.start()
holder.clear_reagents()
return
*/
/////////////////////////////////////////////NEW SLIME CORE REACTIONS/////////////////////////////////////////////
//Grey
@@ -2184,20 +1868,4 @@ datum
id = "rewriter"
result = "rewriter"
required_reagents = list("spacemountainwind" = 1, "coffee" = 1)
result_amount = 2
//Fox
///////////////////////Requires Balance Testing///////////////////
/*
lectrazine
name = "Lectrazine"
id = "lectrazine"
result = "lectrazine"
required_reagents = list("inaprovaline" = 1, "phosphorus" = 1)
required_catalysts = list("silver" = 5)
result_amount = 2
*/
result_amount = 2