mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-07-21 03:55:05 +01:00
Chemistry Cleanup and Fixes
This commit is contained in:
@@ -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
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
Reference in New Issue
Block a user