__ .__ _/ |_ _______ __|__| ____ ______ \ __\/ _ \ \/ / |/ \ / ___/ | | ( <_> > <| | | \\___ \ |__| \____/__/\_ \__|___| /____ > \/ \/ \/ /datum/chemical_reaction/formaldehyde name = "formaldehyde" id = "Formaldehyde" result = "formaldehyde" required_reagents = list("ethanol" = 1, "oxygen" = 1, "silver" = 1) result_amount = 3 required_temp = 420 /datum/chemical_reaction/neurotoxin2 name = "neurotoxin2" id = "neurotoxin2" result = "neurotoxin2" required_reagents = list("space_drugs" = 1) result_amount = 1 required_temp = 674 /datum/chemical_reaction/cyanide name = "Cyanide" id = "cyanide" result = "cyanide" required_reagents = list("oil" = 1, "ammonia" = 1, "oxygen" = 1) result_amount = 3 required_temp = 380 /datum/chemical_reaction/itching_powder name = "Itching Powder" id = "itching_powder" result = "itching_powder" required_reagents = list("fuel" = 1, "ammonia" = 1, "anti_toxin" = 1) result_amount = 3 /datum/chemical_reaction/sulfonal name = "sulfonal" id = "sulfonal" result = "sulfonal" required_reagents = list("acetone" = 1, "diethylamine" = 1, "sulfur" = 1) result_amount = 3 /datum/chemical_reaction/mutagen name = "Unstable mutagen" id = "mutagen" result = "mutagen" required_reagents = list("radium" = 1, "phosphorus" = 1, "chlorine" = 1) result_amount = 3 /datum/chemical_reaction/lexorin name = "Lexorin" id = "lexorin" result = "lexorin" required_reagents = list("plasma" = 1, "hydrogen" = 1, "nitrogen" = 1) result_amount = 3 /datum/chemical_reaction/chloralhydrate name = "Chloral Hydrate" id = "chloralhydrate" result = "chloralhydrate" required_reagents = list("ethanol" = 1, "chlorine" = 3, "water" = 1) result_amount = 1 /datum/chemical_reaction/mutetoxin //i'll just fit this in here snugly between other unfun chemicals :v name = "Mute toxin" id = "mutetoxin" result = "mutetoxin" required_reagents = list("uranium" = 2, "water" = 1, "carbon" = 1) result_amount = 2 /datum/chemical_reaction/zombiepowder name = "Zombie Powder" id = "zombiepowder" result = "zombiepowder" required_reagents = list("carpotoxin" = 5, "morphine" = 5, "copper" = 5) result_amount = 2 /datum/chemical_reaction/mindbreaker name = "Mindbreaker Toxin" //man I wish it was still named LSD id = "mindbreaker" result = "mindbreaker" required_reagents = list("silicon" = 1, "hydrogen" = 1, "anti_toxin" = 1) result_amount = 5 /datum/chemical_reaction/stoxin name = "Sleep Toxin" id = "stoxin" result = "stoxin" required_reagents = list("chloralhydrate" = 1, "sugar" = 4) result_amount = 5 /datum/chemical_reaction/pacid name = "Polytrinic acid" id = "pacid" result = "pacid" required_reagents = list("sacid" = 1, "chlorine" = 1, "potassium" = 1) result_amount = 3 /datum/chemical_reaction/space_drugs name = "Space Drugs" id = "space_drugs" result = "space_drugs" required_reagents = list("mercury" = 1, "sugar" = 1, "lithium" = 1) result_amount = 3 /datum/chemical_reaction/crank name = "Crank" id = "crank" result = "crank" required_reagents = list("diphenhydramine" = 1, "ammonia" = 1, "lithium" = 1, "sacid" = 1, "fuel" = 1) result_amount = 5 mix_message = "The mixture violently reacts, leaving behind a few crystalline shards." required_temp = 390 /datum/chemical_reaction/krokodil name = "Krokodil" id = "krokodil" result = "krokodil" required_reagents = list("diphenhydramine" = 1, "morphine" = 1, "cleaner" = 1, "potassium" = 1, "phosphorus" = 1, "fuel" = 1) result_amount = 6 mix_message = "The mixture dries into a pale blue powder." required_temp = 380 /datum/chemical_reaction/methamphetamine name = "methamphetamine" id = "methamphetamine" result = "methamphetamine" required_reagents = list("ephedrine" = 1, "iodine" = 1, "phosphorus" = 1, "hydrogen" = 1) result_amount = 4 required_temp = 374 /datum/chemical_reaction/bath_salts name = "bath_salts" id = "bath_salts" result = "bath_salts" required_reagents = list("????" = 1, "saltpetre" = 1, "nutriment" = 1, "cleaner" = 1, "enzyme" = 1, "tea" = 1, "mercury" = 1) result_amount = 7 required_temp = 374 /datum/chemical_reaction/aranesp name = "aranesp" id = "aranesp" result = "aranesp" required_reagents = list("inaprovaline" = 1, "atropine" = 1, "morphine" = 1) result_amount = 3 .___.__ .__ _____ ____ __| _/|__| ____ |__| ____ ____ / \_/ __ \ / __ | | |/ ___\| |/ \_/ __ \ | Y Y \ ___// /_/ | | \ \___| | | \ ___/ |__|_| /\___ >____ | |__|\___ >__|___| /\___ > \/ \/ \/ \/ \/ \/ /datum/chemical_reaction/leporazine name = "Leporazine" id = "leporazine" result = "leporazine" required_reagents = list("silicon" = 1, "copper" = 1) required_catalysts = list("plasma" = 5) result_amount = 2 /datum/chemical_reaction/rezadone name = "Rezadone" id = "rezadone" result = "rezadone" required_reagents = list("carpotoxin" = 1, "cryptobiolin" = 1, "copper" = 1) result_amount = 3 /datum/chemical_reaction/synaptizine name = "Synaptizine" id = "synaptizine" result = "synaptizine" required_reagents = list("sugar" = 1, "lithium" = 1, "water" = 1) result_amount = 3 /datum/chemical_reaction/salglu_solution name = "Saline-Glucose Solution" id = "salglu_solution" result = "salglu_solution" required_reagents = list("sodiumchloride" = 1, "water" = 1, "sugar" = 1) result_amount = 3 /datum/chemical_reaction/calomel name = "Calomel" id = "calomel" result = "calomel" required_reagents = list("mercury" = 1, "chlorine" = 1) result_amount = 2 required_temp = 374 /datum/chemical_reaction/potass_iodide name = "Potassium Iodide" id = "potass_iodide" result = "potass_iodide" required_reagents = list("potassium" = 1, "iodine" = 1) result_amount = 2 /datum/chemical_reaction/pen_acid name = "Pentetic Acid" id = "pen_acid" result = "pen_acid" required_reagents = list("fuel" = 1, "chlorine" = 1, "ammonia" = 1, "formaldehyde" = 1, "sodium" = 1, "cyanide" = 1) result_amount = 6 /datum/chemical_reaction/ephedrine name = "Ephedrine" id = "ephedrine" result = "ephedrine" required_reagents = list("sugar" = 1, "oil" = 1, "hydrogen" = 1, "diethylamine" = 1) result_amount = 4 mix_message = "The solution fizzes and gives off toxic fumes." /datum/chemical_reaction/diphenhydramine name = "Diphenhydramine" id = "diphenhydramine" result = "diphenhydramine" required_reagents = list("oil" = 1, "carbon" = 1, "bromine" = 1, "diethylamine" = 1, "ethanol" = 1) result_amount = 4 mix_message = "The mixture dries into a pale blue powder." /datum/chemical_reaction/atropine name = "Atropine" id = "atropine" result = "atropine" required_reagents = list("ethanol" = 1, "acetone" = 1, "diethylamine" = 1, "phenol" = 1, "sacid" = 1) result_amount = 5 /datum/chemical_reaction/strange_reagent name = "Strange Reagent" id = "strange_reagent" result = "strange_reagent" required_reagents = list("tricordrazine" = 1, "holywater" = 1, "mutagen" = 1) result_amount = 3 /datum/chemical_reaction/cryoxadone name = "Cryoxadone" id = "cryoxadone" result = "cryoxadone" required_reagents = list("stable_plasma" = 1, "acetone" = 1, "mutagen" = 1) result_amount = 3 /datum/chemical_reaction/inaprovaline name = "Inaprovaline" id = "inaprovaline" result = "inaprovaline" required_reagents = list("oxygen" = 1, "carbon" = 1, "sugar" = 1) result_amount = 3 /datum/chemical_reaction/anti_toxin name = "Anti-Toxin (Dylovene)" id = "anti_toxin" result = "anti_toxin" required_reagents = list("silicon" = 1, "potassium" = 1, "nitrogen" = 1) result_amount = 3 /datum/chemical_reaction/hyronalin name = "Hyronalin" id = "hyronalin" result = "hyronalin" required_reagents = list("radium" = 1, "anti_toxin" = 1) result_amount = 2 /datum/chemical_reaction/arithrazine name = "Arithrazine" id = "arithrazine" result = "arithrazine" required_reagents = list("hyronalin" = 1, "hydrogen" = 1) result_amount = 2 /datum/chemical_reaction/kelotane name = "Kelotane" id = "kelotane" result = "kelotane" required_reagents = list("silicon" = 1, "carbon" = 1) result_amount = 2 /datum/chemical_reaction/tricordrazine name = "Tricordrazine" id = "tricordrazine" result = "tricordrazine" required_reagents = list("inaprovaline" = 1, "anti_toxin" = 1) result_amount = 2 /datum/chemical_reaction/alkysine name = "Alkysine" id = "alkysine" result = "alkysine" required_reagents = list("chlorine" = 1, "nitrogen" = 1, "anti_toxin" = 1) result_amount = 2 /datum/chemical_reaction/dexalin name = "Dexalin" id = "dexalin" result = "dexalin" required_reagents = list("oxygen" = 2) required_catalysts = list("plasma" = 5) result_amount = 1 /datum/chemical_reaction/dermaline name = "Dermaline" id = "dermaline" result = "dermaline" required_reagents = list("oxygen" = 1, "phosphorus" = 1, "kelotane" = 1) result_amount = 3 /datum/chemical_reaction/dexalinp name = "Dexalin Plus" id = "dexalinp" result = "dexalinp" required_reagents = list("dexalin" = 1, "carbon" = 1, "iron" = 1) result_amount = 3 /datum/chemical_reaction/bicaridine name = "Bicaridine" id = "bicaridine" result = "bicaridine" required_reagents = list("inaprovaline" = 1, "carbon" = 1) result_amount = 2 /datum/chemical_reaction/hyperzine name = "Hyperzine" id = "hyperzine" result = "hyperzine" required_reagents = list("sugar" = 1, "phosphorus" = 1, "sulfur" = 1,) result_amount = 3 /datum/chemical_reaction/ryetalyn name = "Ryetalyn" id = "ryetalyn" result = "ryetalyn" required_reagents = list("arithrazine" = 1, "carbon" = 1) result_amount = 2 /datum/chemical_reaction/clonexadone name = "Clonexadone" id = "clonexadone" result = "clonexadone" required_reagents = list("cryoxadone" = 1, "sodium" = 1) required_catalysts = list("plasma" = 5) result_amount = 2 /datum/chemical_reaction/spaceacillin name = "Spaceacillin" id = "spaceacillin" result = "spaceacillin" required_reagents = list("cryptobiolin" = 1, "inaprovaline" = 1) result_amount = 2 /datum/chemical_reaction/imidazoline name = "imidazoline" id = "imidazoline" result = "imidazoline" required_reagents = list("carbon" = 1, "hydrogen" = 1, "anti_toxin" = 1) result_amount = 2 /datum/chemical_reaction/inacusiate name = "inacusiate" id = "inacusiate" result = "inacusiate" required_reagents = list("water" = 1, "carbon" = 1, "anti_toxin" = 1) result_amount = 2 /datum/chemical_reaction/ethylredoxrazine name = "Ethylredoxrazine" id = "ethylredoxrazine" result = "ethylredoxrazine" required_reagents = list("oxygen" = 1, "anti_toxin" = 1, "carbon" = 1) result_amount = 3 /datum/chemical_reaction/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 /datum/chemical_reaction/silver_sulfadiazine name = "Silver Sulfadiazine" id = "silver_sulfadiazine" result = "silver_sulfadiazine" required_reagents = list("ammonia" = 1, "silver" = 1, "sulfur" = 1, "oxygen" = 1, "chlorine" = 1) result_amount = 5 /datum/chemical_reaction/styptic_powder name = "Styptic Powder" id = "styptic_powder" result = "styptic_powder" required_reagents = list("aluminium" = 1, "hydrogen" = 1, "oxygen" = 1, "sacid" = 1) result_amount = 4 mix_message = "The solution yields an astringent powder." ________ __ .__ .__ .__ __ \_____ \_/ |_| |__ ___________ _____| |__ |__|/ |_ / | \ __\ | \_/ __ \_ __ \ / ___/ | \| \ __\ / | \ | | Y \ ___/| | \/ \___ \| Y \ || | \_______ /__| |___| /\___ >__| /____ >___| /__||__| \/ \/ \/ \/ \/ /datum/chemical_reaction/sterilizine name = "Sterilizine" id = "sterilizine" result = "sterilizine" required_reagents = list("ethanol" = 1, "anti_toxin" = 1, "chlorine" = 1) result_amount = 3 /datum/chemical_reaction/lube name = "Space Lube" id = "lube" result = "lube" required_reagents = list("water" = 1, "silicon" = 1, "oxygen" = 1) result_amount = 4 /datum/chemical_reaction/impedrezene name = "Impedrezene" id = "impedrezene" result = "impedrezene" required_reagents = list("mercury" = 1, "oxygen" = 1, "sugar" = 1) result_amount = 2 /datum/chemical_reaction/cryptobiolin name = "Cryptobiolin" id = "cryptobiolin" result = "cryptobiolin" required_reagents = list("potassium" = 1, "oxygen" = 1, "sugar" = 1) result_amount = 3 /datum/chemical_reaction/glycerol name = "Glycerol" id = "glycerol" result = "glycerol" required_reagents = list("cornoil" = 3, "sacid" = 1) result_amount = 1 /datum/chemical_reaction/sodiumchloride name = "Sodium Chloride" id = "sodiumchloride" result = "sodiumchloride" required_reagents = list("sodium" = 1, "chlorine" = 1) result_amount = 2 /datum/chemical_reaction/plasmasolidification name = "Solid Plasma" id = "solidplasma" result = null required_reagents = list("iron" = 5, "frostoil" = 5, "plasma" = 20) result_amount = 1 mob_react = 1 /datum/chemical_reaction/plasmasolidification/on_reaction(var/datum/reagents/holder, var/created_volume) var/location = get_turf(holder.my_atom) new /obj/item/stack/sheet/mineral/plasma(location) return /datum/chemical_reaction/capsaicincondensation name = "Capsaicincondensation" id = "capsaicincondensation" result = "condensedcapsaicin" required_reagents = list("capsaicin" = 1, "ethanol" = 5) result_amount = 5 ////////////////////////////////// VIROLOGY ////////////////////////////////////////// /datum/chemical_reaction/virus_food name = "Virus Food" id = "virusfood" result = "virusfood" required_reagents = list("water" = 5, "milk" = 5) result_amount = 15 /datum/chemical_reaction/mix_virus name = "Mix Virus" id = "mixvirus" result = "blood" required_reagents = list("virusfood" = 1) required_catalysts = list("blood" = 1) var/level_min = 0 var/level_max = 2 /datum/chemical_reaction/mix_virus/on_reaction(var/datum/reagents/holder, var/created_volume) var/datum/reagent/blood/B = locate(/datum/reagent/blood) in holder.reagent_list if(B && B.data) var/datum/disease/advance/D = locate(/datum/disease/advance) in B.data["viruses"] if(D) D.Evolve(level_min, level_max) /datum/chemical_reaction/mix_virus/mix_virus_2 name = "Mix Virus 2" id = "mixvirus2" required_reagents = list("mutagen" = 1) level_min = 2 level_max = 4 /datum/chemical_reaction/mix_virus/mix_virus_3 name = "Mix Virus 3" id = "mixvirus3" required_reagents = list("plasma" = 1) level_min = 4 level_max = 6 /datum/chemical_reaction/mix_virus/rem_virus name = "Devolve Virus" id = "remvirus" required_reagents = list("synaptizine" = 1) required_catalysts = list("blood" = 1) /datum/chemical_reaction/mix_virus/rem_virus/on_reaction(var/datum/reagents/holder, var/created_volume) var/datum/reagent/blood/B = locate(/datum/reagent/blood) in holder.reagent_list if(B && B.data) var/datum/disease/advance/D = locate(/datum/disease/advance) in B.data["viruses"] if(D) D.Devolve() ////////////////////////////////// foam and foam precursor /////////////////////////////////////////////////// /datum/chemical_reaction/surfactant name = "Foam surfactant" id = "foam surfactant" result = "fluorosurfactant" required_reagents = list("fluorine" = 2, "carbon" = 2, "sacid" = 1) result_amount = 5 /datum/chemical_reaction/foam name = "Foam" id = "foam" result = null required_reagents = list("fluorosurfactant" = 1, "water" = 1) result_amount = 2 mob_react = 1 /datum/chemical_reaction/foam/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 << "The solution spews out foam!" var/datum/effect/effect/system/foam_spread/s = new() s.set_up(created_volume, location, holder) s.start() holder.clear_reagents() return /datum/chemical_reaction/metalfoam name = "Metal Foam" id = "metalfoam" result = null required_reagents = list("aluminium" = 3, "foaming_agent" = 1, "pacid" = 1) result_amount = 5 mob_react = 1 /datum/chemical_reaction/metalfoam/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 << "The solution spews out a metallic foam!" var/datum/effect/effect/system/foam_spread/metal/s = new() s.set_up(created_volume, location, holder, 1) s.start() holder.clear_reagents() /datum/chemical_reaction/ironfoam name = "Iron Foam" id = "ironlfoam" result = null required_reagents = list("iron" = 3, "foaming_agent" = 1, "pacid" = 1) result_amount = 5 mob_react = 1 /datum/chemical_reaction/ironfoam/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 << "The solution spews out a metallic foam!" var/datum/effect/effect/system/foam_spread/metal/s = new() s.set_up(created_volume, location, holder, 2) s.start() holder.clear_reagents() /datum/chemical_reaction/foaming_agent name = "Foaming Agent" id = "foaming_agent" result = "foaming_agent" required_reagents = list("lithium" = 1, "hydrogen" = 1) result_amount = 1 /////////////////////////////// Cleaning and hydroponics ///////////////////////////////////////////////// /datum/chemical_reaction/ammonia name = "Ammonia" id = "ammonia" result = "ammonia" required_reagents = list("hydrogen" = 3, "nitrogen" = 1) result_amount = 3 /datum/chemical_reaction/diethylamine name = "Diethylamine" id = "diethylamine" result = "diethylamine" required_reagents = list ("ammonia" = 1, "ethanol" = 1) result_amount = 2 /datum/chemical_reaction/space_cleaner name = "Space cleaner" id = "cleaner" result = "cleaner" required_reagents = list("ammonia" = 1, "water" = 1) result_amount = 2 /datum/chemical_reaction/plantbgone name = "Plant-B-Gone" id = "plantbgone" result = "plantbgone" required_reagents = list("toxin" = 1, "water" = 4) result_amount = 5 datum/chemical_reaction/weedkiller name = "Weed Killer" id = "weedkiller" result = "weedkiller" required_reagents = list("toxin" = 1, "ammonia" = 4) result_amount = 5 datum/chemical_reaction/pestkiller name = "Pest Killer" id = "pestkiller" result = "pestkiller" required_reagents = list("toxin" = 1, "ethanol" = 4) result_amount = 5 //////////////////////////////////// Other goon stuff /////////////////////////////////////////// /datum/chemical_reaction/acetone name = "acetone" id = "acetone" result = "acetone" required_reagents = list("oil" = 1, "fuel" = 1, "oxygen" = 1) result_amount = 3 /datum/chemical_reaction/carpet name = "carpet" id = "carpet" result = "carpet" required_reagents = list("space_drugs" = 1, "blood" = 1) result_amount = 2 /datum/chemical_reaction/oil name = "Oil" id = "oil" result = "oil" required_reagents = list("fuel" = 1, "carbon" = 1, "hydrogen" = 1) result_amount = 3 /datum/chemical_reaction/phenol name = "phenol" id = "phenol" result = "phenol" required_reagents = list("water" = 1, "chlorine" = 1, "oil" = 1) result_amount = 3 /datum/chemical_reaction/ash name = "Ash" id = "ash" result = "ash" required_reagents = list("oil" = 1) result_amount = 1 required_temp = 480 /datum/chemical_reaction/colorful_reagent name = "colorful_reagent" id = "colorful_reagent" result = "colorful_reagent" required_reagents = list("stable_plasma" = 1, "radium" = 1, "space_drugs" = 1, "cryoxadone" = 1, "triple_citrus" = 1) result_amount = 5 /datum/chemical_reaction/life name = "Life" id = "life" result = null required_reagents = list("strange_reagent" = 1, "cryoxadone" = 1, "blood" = 1) result_amount = 1 required_temp = 374 /datum/chemical_reaction/life/on_reaction(var/datum/reagents/holder, var/created_volume) chemical_mob_spawn(holder, 1, "Life") /datum/chemical_reaction/corgium name = "corgium" id = "corgium" result = null required_reagents = list("nutriment" = 1, "colorful_reagent" = 1, "strange_reagent" = 1, "blood" = 1) result_amount = 1 required_temp = 374 /datum/chemical_reaction/corgium/on_reaction(var/datum/reagents/holder, var/created_volume) var/location = get_turf(holder.my_atom) new /mob/living/simple_animal/corgi(location) ..() /datum/chemical_reaction/hair_dye name = "hair_dye" id = "hair_dye" result = "hair_dye" required_reagents = list("colorful_reagent" = 1, "radium" = 1, "space_drugs" = 1) result_amount = 5 /datum/chemical_reaction/barbers_aid name = "barbers_aid" id = "barbers_aid" result = "barbers_aid" required_reagents = list("carpet" = 1, "radium" = 1, "space_drugs" = 1) result_amount = 5 /datum/chemical_reaction/concentrated_barbers_aid name = "concentrated_barbers_aid" id = "concentrated_barbers_aid" result = "concentrated_barbers_aid" required_reagents = list("barbers_aid" = 1, "mutagen" = 1) result_amount = 2 /datum/chemical_reaction/saltpetre name = "saltpetre" id = "saltpetre" result = "saltpetre" required_reagents = list("potassium" = 1, "nitrogen" = 1, "oxygen" = 3) result_amount = 3 ____ ___ _________ | | ____ _____|__| ____ ____ ______ _/ __ \\ \/ /\____ \| | / _ \/ ___/ |/ _ \ / \ / ___/ \ ___/ > < | |_> > |_( <_> )___ \| ( <_> ) | \\___ \ \___ >__/\_ \| __/|____/\____/____ >__|\____/|___| /____ > \/ \/|__| \/ \/ \/ /datum/chemical_reaction/nitroglycerin name = "Nitroglycerin" id = "nitroglycerin" result = "nitroglycerin" required_reagents = list("glycerol" = 1, "pacid" = 1, "sacid" = 1) result_amount = 2 /datum/chemical_reaction/nitroglycerin/on_reaction(var/datum/reagents/holder, var/created_volume) if(holder.has_reagent("stabilizing_agent")) return holder.remove_reagent("nitroglycerin", created_volume) var/location = get_turf(holder.my_atom) var/datum/effect/effect/system/reagents_explosion/e = new() e.set_up(round (created_volume/2, 1), location, 0, 0) e.start() holder.clear_reagents() /datum/chemical_reaction/nitroglycerin_explosion name = "Nitroglycerin explosion" id = "nitroglycerin_explosion" result = null required_reagents = list("nitroglycerin" = 1) result_amount = 1 required_temp = 474 /datum/chemical_reaction/nitroglycerin_explosion/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/2, 1), location, 0, 0) e.start() holder.clear_reagents() /datum/chemical_reaction/potassium_explosion name = "Explosion" id = "potassium_explosion" result = null required_reagents = list("water" = 1, "potassium" = 1) result_amount = 2 /datum/chemical_reaction/potassium_explosion/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() /datum/chemical_reaction/blackpowder name = "Black Powder" id = "blackpowder" result = "blackpowder" required_reagents = list("saltpetre" = 1, "anti_toxin" = 1, "sulfur" = 1) result_amount = 3 /datum/chemical_reaction/blackpowder_explosion name = "Black Powder Kaboom" id = "blackpowder_explosion" result = null required_reagents = list("blackpowder" = 1) result_amount = 1 required_temp = 474 mix_message = "Sparks start flying around the black powder!" /datum/chemical_reaction/blackpowder_explosion/on_reaction(var/datum/reagents/holder, var/created_volume) sleep(rand(50,100)) var/location = get_turf(holder.my_atom) var/datum/effect/effect/system/reagents_explosion/e = new() e.set_up(1 + round(created_volume/6, 1), location, 0, 0) e.start() holder.clear_reagents() /datum/chemical_reaction/thermite name = "Thermite" id = "thermite" result = "thermite" required_reagents = list("aluminium" = 1, "iron" = 1, "oxygen" = 1) result_amount = 3 /datum/chemical_reaction/emp_pulse name = "EMP Pulse" id = "emp_pulse" result = null required_reagents = list("uranium" = 1, "iron" = 1) // Yes, laugh, it's the best recipe I could think of that makes a little bit of sense result_amount = 2 /datum/chemical_reaction/emp_pulse/on_reaction(var/datum/reagents/holder, var/created_volume) var/location = get_turf(holder.my_atom) // 100 created volume = 4 heavy range & 7 light range. A few tiles smaller than traitor EMP grandes. // 200 created volume = 8 heavy range & 14 light range. 4 tiles larger than traitor EMP grenades. empulse(location, round(created_volume / 24), round(created_volume / 14), 1) holder.clear_reagents() /datum/chemical_reaction/stabilizing_agent name = "stabilizing_agent" id = "stabilizing_agent" result = "stabilizing_agent" required_reagents = list("iron" = 1, "oxygen" = 1, "hydrogen" = 1) result_amount = 3 /datum/chemical_reaction/clf3 name = "Chlorine Trifluoride" id = "clf3" result = "clf3" required_reagents = list("chlorine" = 1, "fluorine" = 3) result_amount = 4 required_temp = 424 /datum/chemical_reaction/clf3/on_reaction(var/datum/reagents/holder, var/created_volume) var/turf/T = get_turf(holder.my_atom) for(var/turf/turf in range(1,T)) PoolOrNew(/obj/effect/hotspot, turf) holder.chem_temp = 1000 // hot as shit /datum/chemical_reaction/sorium name = "Sorium" id = "sorium" result = "sorium" required_reagents = list("mercury" = 1, "oxygen" = 1, "nitrogen" = 1, "carbon" = 1) result_amount = 4 /datum/chemical_reaction/sorium/on_reaction(var/datum/reagents/holder, var/created_volume) if(holder.has_reagent("stabilizing_agent")) return holder.remove_reagent("sorium", created_volume) var/turf/simulated/T = get_turf(holder.my_atom) goonchem_vortex(T, 1, 5, 6) /datum/chemical_reaction/sorium_vortex name = "sorium_vortex" id = "sorium_vortex" result = null required_reagents = list("sorium" = 1) required_temp = 474 /datum/chemical_reaction/sorium_vortex/on_reaction(var/datum/reagents/holder, var/created_volume) var/turf/simulated/T = get_turf(holder.my_atom) goonchem_vortex(T, 1, 5, 6) /datum/chemical_reaction/liquid_dark_matter name = "Liquid Dark Matter" id = "liquid_dark_matter" result = "liquid_dark_matter" required_reagents = list("stable_plasma" = 1, "radium" = 1, "carbon" = 1) result_amount = 3 /datum/chemical_reaction/liquid_dark_matter/on_reaction(var/datum/reagents/holder, var/created_volume) if(holder.has_reagent("stabilizing_agent")) return holder.remove_reagent("liquid_dark_matter", created_volume) var/turf/simulated/T = get_turf(holder.my_atom) goonchem_vortex(T, 0, 5, 6) /datum/chemical_reaction/ldm_vortex name = "LDM Vortex" id = "ldm_vortex" result = null required_reagents = list("liquid_dark_matter" = 1) required_temp = 474 /datum/chemical_reaction/ldm_vortex/on_reaction(var/datum/reagents/holder, var/created_volume) var/turf/simulated/T = get_turf(holder.my_atom) goonchem_vortex(T, 0, 5, 6) /datum/chemical_reaction/flash_powder name = "Flash powder" id = "flash_powder" result = "flash_powder" required_reagents = list("aluminium" = 1, "potassium" = 1, "sulfur" = 1 ) result_amount = 3 /datum/chemical_reaction/flash_powder/on_reaction(var/datum/reagents/holder, var/created_volume) if(holder.has_reagent("stabilizing_agent")) return var/location = get_turf(holder.my_atom) var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread s.set_up(2, 1, location) s.start() for(var/mob/living/carbon/C in get_hearers_in_view(created_volume/10, location)) if(C.flash_eyes()) if(get_dist(C, location) < 4) C.Weaken(5) else C.Stun(5) holder.remove_reagent("flash_powder", created_volume) /datum/chemical_reaction/flash_powder_flash name = "Flash powder activation" id = "flash_powder_flash" result = null required_reagents = list("flash_powder" = 1) result_amount = 1 required_temp = 374 /datum/chemical_reaction/flash_powder_flash/on_reaction(var/datum/reagents/holder, var/created_volume) var/location = get_turf(holder.my_atom) var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread s.set_up(2, 1, location) s.start() for(var/mob/living/carbon/C in get_hearers_in_view(created_volume/10, location)) if(C.flash_eyes()) if(get_dist(C, location) < 4) C.Weaken(5) else C.Stun(5) /datum/chemical_reaction/smoke_powder name = "smoke_powder" id = "smoke_powder" result = "smoke_powder" required_reagents = list("potassium" = 1, "sugar" = 1, "phosphorus" = 1) result_amount = 3 /datum/chemical_reaction/smoke_powder/on_reaction(var/datum/reagents/holder, var/created_volume) if(holder.has_reagent("stabilizing_agent")) return holder.remove_reagent("smoke_powder", created_volume) var/location = get_turf(holder.my_atom) var/datum/effect/effect/system/chem_smoke_spread/S = new /datum/effect/effect/system/chem_smoke_spread S.attach(location) playsound(location, 'sound/effects/smoke.ogg', 50, 1, -3) spawn(0) if(S) S.set_up(holder, 10, 0, location) S.start() sleep(10) S.start() if(holder && holder.my_atom) holder.clear_reagents() return /datum/chemical_reaction/smoke_powder_smoke name = "smoke_powder_smoke" id = "smoke_powder_smoke" result = null required_reagents = list("smoke_powder" = 1) required_temp = 374 result_amount = 1 secondary = 1 mob_react = 1 /datum/chemical_reaction/smoke_powder_smoke/on_reaction(var/datum/reagents/holder, var/created_volume) var/location = get_turf(holder.my_atom) var/datum/effect/effect/system/chem_smoke_spread/S = new /datum/effect/effect/system/chem_smoke_spread S.attach(location) playsound(location, 'sound/effects/smoke.ogg', 50, 1, -3) spawn(0) if(S) S.set_up(holder, 10, 0, location) S.start() sleep(10) S.start() if(holder && holder.my_atom) holder.clear_reagents() return /datum/chemical_reaction/sonic_powder name = "sonic_powder" id = "sonic_powder" result = "sonic_powder" required_reagents = list("oxygen" = 1, "cola" = 1, "phosphorus" = 1) result_amount = 3 /datum/chemical_reaction/sonic_powder/on_reaction(var/datum/reagents/holder, var/created_volume) if(holder.has_reagent("stabilizing_agent")) return holder.remove_reagent("sonic_powder", created_volume) var/location = get_turf(holder.my_atom) playsound(location, 'sound/effects/bang.ogg', 25, 1) for(var/mob/living/carbon/C in get_hearers_in_view(created_volume/10, location)) if(C.check_ear_prot()) continue C.show_message("BANG", 2) C.Stun(5) C.Weaken(5) C.setEarDamage(C.ear_damage + rand(0, 5), max(C.ear_deaf,15)) if(C.ear_damage >= 15) C << "Your ears start to ring badly!" else if(C.ear_damage >= 5) C << "Your ears start to ring!" /datum/chemical_reaction/sonic_powder_deafen name = "sonic_powder_deafen" id = "sonic_powder_deafen" result = null required_reagents = list("sonic_powder" = 1) required_temp = 374 result_amount = 1 /datum/chemical_reaction/sonic_powder_deafen/on_reaction(var/datum/reagents/holder, var/created_volume) var/location = get_turf(holder.my_atom) playsound(location, 'sound/effects/bang.ogg', 25, 1) for(var/mob/living/carbon/C in get_hearers_in_view(created_volume/10, location)) if(C.check_ear_prot()) continue C.show_message("BANG", 2) C.Stun(5) C.Weaken(5) C.setEarDamage(C.ear_damage + rand(0, 5), max(C.ear_deaf,15)) if(C.ear_damage >= 15) C << "Your ears start to ring badly!" else if(C.ear_damage >= 5) C << "Your ears start to ring!" /datum/chemical_reaction/phlogiston name = "phlogiston" id = "phlogiston" result = "phlogiston" required_reagents = list("phosphorus" = 1, "sacid" = 1, "stable_plasma" = 1) result_amount = 3 /datum/chemical_reaction/phlogiston/on_reaction(var/datum/reagents/holder, var/created_volume) if(holder.has_reagent("stabilizing_agent")) return var/turf/simulated/T = get_turf(holder.my_atom) if(istype(T)) T.atmos_spawn_air(SPAWN_HEAT | SPAWN_TOXINS, created_volume) return /datum/chemical_reaction/napalm name = "Napalm" id = "napalm" result = "napalm" required_reagents = list("sugar" = 1, "fuel" = 1, "ethanol" = 1 ) result_amount = 3 /datum/chemical_reaction/cryostylane name = "cryostylane" id = "cryostylane" result = "cryostylane" required_reagents = list("water" = 1, "stable_plasma" = 1, "nitrogen" = 1) result_amount = 3 /datum/chemical_reaction/cryostylane/on_reaction(var/datum/reagents/holder, var/created_volume) holder.chem_temp = 20 // cools the fuck down return /datum/chemical_reaction/pyrosium name = "pyrosium" id = "pyrosium" result = "pyrosium" required_reagents = list("stable_plasma" = 1, "radium" = 1, "phosphorus" = 1) result_amount = 3 /datum/chemical_reaction/pyrosium/on_reaction(var/datum/reagents/holder, var/created_volume) holder.chem_temp = 20 // also cools the fuck down return