diff --git a/code/game/objects/effects/decals/Cleanable/misc_cleanables.dm b/code/game/objects/effects/decals/Cleanable/misc_cleanables.dm index 65953f9671f..ae12c242da3 100644 --- a/code/game/objects/effects/decals/Cleanable/misc_cleanables.dm +++ b/code/game/objects/effects/decals/Cleanable/misc_cleanables.dm @@ -303,4 +303,28 @@ icon_state = "xfloor1" random_icon_states = list("xfloor1", "xfloor2", "xfloor3", "xfloor4", "xfloor5", "xfloor6", "xfloor7") +/obj/effect/decal/cleanable/reagent + name = "fluid" + desc = "Some kind of fluid?" + icon = 'icons/effects/blood.dmi' + icon_state = "xfloor1" + random_icon_states = list("xfloor1", "xfloor2", "xfloor3", "xfloor4", "xfloor5", "xfloor6", "xfloor7") + var/basecolor = "#909090" + var/amount = 10 + +/obj/effect/decal/cleanable/reagent/Initialize(mapload, decal_color) + . = ..() + color = basecolor + if(decal_color) + color = decal_color + base_icon_state = icon_state + + update_icon() + +/obj/effect/decal/cleanable/reagent/drip + icon = 'icons/effects/drip.dmi' + icon_state = "1" + random_icon_states = list("1", "2", "3", "4", "5") + amount = 1 + #undef ALWAYS_IN_GRAVITY diff --git a/code/game/objects/items/weapons/manuals.dm b/code/game/objects/items/weapons/manuals.dm index 5be5e58058f..6c9b762d196 100644 --- a/code/game/objects/items/weapons/manuals.dm +++ b/code/game/objects/items/weapons/manuals.dm @@ -772,7 +772,7 @@

Trivial Alcoholic Drinks

- With upgraded machines, you can dispense many of these straightaway—Or if you're not so lucky, you can mix them as follows. Procurement won't be happy if you send these! Drinks marked with a § are for synthetic customers. + With upgraded machines, you can dispense many of these straightaway—Or if you're not so lucky, you can mix them as follows. Procurement won't be happy if you send these!

Brave Bull:

Mix two parts tequila to one part kahlua.

Goldschlager:

@@ -785,8 +785,6 @@ Mix two parts whiskey to one part vermouth.

Patron:

Mix 10 parts tequila to one part silver. -

Robot Tears: §

- Mix one part each of synthanol, soda water, and oil. Chemistry can help.

Synthignon:

Mix one part synthanol to one part wine.

Back to Table of Contents @@ -824,12 +822,16 @@ Mix three parts vodka to two parts kahlua.

Bloody Mary:

Mix two parts tomato juice to one part each of vodka and lime juice. +

Bluescreen: §

+ Mix one part each of synthanol, welding fuel, Goldschlager (Trivial Alcoholic Drinks), tonic, and water. You might find a fuel tank in the maintenance tunnels.

Booger:

Mix one part each of cream, banana juice, rum, and watermelon juice.

Changeling Sting:

Mix one part each of lime juice, lemon juice, and Screwdriver.

Classic Martini:

Mix two parts gin to one part vermouth. +

CSV: §

+ Mix one part each of cognac, synthanol, and vodka.

Cuba Libre:

Mix two parts each rum and cola to one part lime juice.

Daiquiri:

@@ -870,6 +872,10 @@ Mix one part each of gin, vodka, whiskey, cognac, and lime juice.

Piña Colada:

Mix three parts rum to two parts pineapple juice and one part cream. +

Robot Tears: §

+ Mix one part each of synthanol, soda water, and oil. Chemistry can help. +

Runtime: §

+ Mix three parts Screwdriver to one part synthanol.

Screwdriver:

Mix two parts vodka to one part orange juice.

Servo: §

@@ -912,7 +918,7 @@

Intermediate Alcoholic Drinks

- Most of these drinks require many steps or collaboration with other departments. + Most of these drinks require many steps or collaboration with other departments. Drinks marked with a § are for synthetic customers.

Acid Dreams: (a Grey favorite!)

Mix one part each of Pan-Galactic Gargle Blaster (Easy Alcoholic Drinks), sulphuric acid, and sugar. Chemistry can help.

Acid Spit:

@@ -925,12 +931,16 @@ Cool two parts cider to 270K. Chemistry can help.

Beepsky Smash:

Mix two parts each lime juice and whiskey to one part iron. Chemistry or Cargo can help. +

Burnout: §

+ Mix one part synthanol to one part acetone. Heat to 375K. Chemistry can help.

Die Seife: (a Drask favorite!)

Mix one part each of lye, whiskey, and Iced Beer (Trivial Alcoholic Drinks). Chemistry can help.

Diona Smash: (a Kidan favorite!)

Mix four parts nutriment to two parts each of sugar and gin. The Kitchen or Botany can help.

Drunken Blumpkin:

Mix one part each of blumpkin juice, Irish Cream (Trivial Alcoholic Drinks), and ice. Botany can help. +

Dryer Martini: §

+ Mix two parts synthanol to one part drying agent. Chemistry can help.

Feast by the Beach: (an Unathi favorite!)

Mix one part each of vodka, lime juice, grape juice, and silicon. Heat above 373K. Chemistry can help.

Flaming Moe:

@@ -951,6 +961,8 @@ Mix 10 parts vodka to one part capsaicin. The Xenobiologist can help.

Singulo:

Mix five parts each of vodka and wine to one part radium. Chemistry can help. +

Stack Trace: §

+ Mix one part Rewriter (Easy Soft Drinks) to one part Runtime (Easy Alcoholic Drinks).

Suicider:

Mix one part each of cider, vodka, welding fuel, and epinephrine. Chemistry or Medical can help.

Toxins Special:

@@ -967,7 +979,7 @@

Hard Alcoholic Drinks

- These drinks require a significant amount of cross-department collaboration, many steps, or rare ingredients. + These drinks require a significant amount of cross-department collaboration, many steps, or rare ingredients. Drinks marked with a § are for synthetic customers.

Adminfreeze:

Mix one part each of Neuro-toxin (Intermediate Alcoholic Drinks), Toxins Special (Intermediate Alcoholic Drinks), fernet, Moonshine (Intermediate Alcoholic Drinks), and morphine. Heat to 374K. Medical or Cargo can help.

Atomic Bomb:

@@ -976,14 +988,24 @@ Mix one part each of Hooch (Intermediate Alcoholic Drinks), absinthe, The Manly Dorf (Easy Alcoholic Drinks), and Syndicate Bomb (Easy Alcoholic Drinks).

Eggnog:

Mix five parts each of cream, egg, and rum. The Kitchen or Botany can help. +

Gear Grinder: §

+ Mix one part Beet Shrub (Hard Soft Drinks) to one part Robot Tears (Easy Alcoholic Drinks). +

GFS:

+ Mix one part each of gin, fernet, and Beet Shrub (Hard Soft Drinks).

Gin and Sonic:

Mix one part Gin and Tonic (Easy Alcoholic Drinks) to one part methamphetamine. Chemistry can help. +

Hard Reset: §

+ Mix one part Soft Reset (Hard Soft Drinks) to one part Bluescreen (Easy Alcoholic Drinks).

Hippie's Delight:

Mix one part each of psilocybin and Pan-Galactic Gargle Blaster (Easy Alcoholic Drinks). Botany can help. +

It's Overclock Somewhere: §

+ Mix one part each of ultra lube, oil, and synthanol. Chemistry can help.

Manhattan Project:

Mix 10 parts Manhattan (Trivial Alcoholic Drinks) to one part uranium. Cargo can help.

Red Mead:

Mix one part mead to one part blood. Medical or Botany can help. +

Shrub Julep:

+ Mix two parts whiskey to one part each of mint, Beet Shrub (Hard Soft Drinks), and ice. Botany or the Kitchen can help.

Slime Mold: (a Slime People favorite!)

Mix two parts each of Booger (Easy Alcoholic Drinks) and slime jelly to one part egg. Medical, Xenobiology, or the Kitchen can help.

Sontse: (a Nian favorite!)

@@ -1033,11 +1055,15 @@

Easy Soft Drinks

- You can make most of these drinks straight from your own dispensers. Procurement doesn't currently accept soft drinks, so this list is only for your reference. + You can make most of these drinks straight from your own dispensers. Procurement doesn't currently accept soft drinks, so this list is only for your reference. Drinks marked with § are for synthetic customers only. Drinks marked with † are enjoyable for synthetic and organic customers alike.

Brown Star:

Mix two parts orange juice to one part cola. +

Cog-a-Cola: §

+ Mix one part TCP Sip to one part cola.

Gibb Floats:

Mix five parts each of cream, Dr. Gibb, and ice. +

Ginger Beep: §

+ Mix one part TCP Sip to one part ginger ale.

Iced Coco:

Mix three parts hot chocolate to one part ice.

Kira Special:

@@ -1050,6 +1076,8 @@ Mix one part each of soda water, Dr. Gibb, space mountain wind soda, space-up, cola, and ice.

Party Punch:

Mix two parts soda water to one part each of Triple Citrus (Trivial Soft Drinks), banana juice, berry juice, pineapple juice, watermelon juice, and grape juice. +

Processor Punch: §

+ Mix one part each of TCP Sip, Dr. Gibb, and iced tea.

Rewriter:

Mix one part space mountain wind soda to one part coffee.

Roy Rogers:

@@ -1062,8 +1090,14 @@ Mix one part coffee to one part soy milk.

Spessamato Smash:

Mix one part tomato juice to one part space-up. +

TCP Sip: §

+ Mix one part electrolytes to one part welding fuel. You can likely find a fuel tank in the maintenance tunnels.

The Doctor's Delight:

Mix one part each of lime juice, tomato juice, orange juice, and cream. +

Top-Up: †

+ Mix one part electrolytes to one part space-up. +

Zero Day: †

+ Mix one part electrolytes to one part nothing.

Back to Table of Contents @@ -1076,9 +1110,13 @@

Intermediate Soft Drinks

- Most of these drinks require many steps or collaboration with other departments. Procurement doesn't currently accept soft drinks, so this list is only for your reference. + Most of these drinks require many steps or collaboration with other departments. Procurement doesn't currently accept soft drinks, so this list is only for your reference. Drinks marked with § are for synthetic customers only.

Arnold Palmer:

Mix one part Lemonade (Easy Soft Drinks) to one part Iced Tea (Trivial Soft Drinks). +

Battery Acid: §

+ Mix one part TCP Sip (Easy Soft Drinks) to one part Triple Citrus (Trivial Soft Drinks). +

Bubbly Beep: §

+ Mix one part space cleaner to one part soda water. Custodial or Chemistry can help.

Cherry Shake:

Mix one part each of cherry jelly, cream, and ice. Botany or the Kitchen can help.

Chocolate Milk:

@@ -1097,6 +1135,8 @@ Mix five parts each of coffee, cream, and pumpkin juice. Botany can help.

Tears of Fyrsskar:

Mix one part each of plasma, oxygen, and Triple Citrus (Trivial Soft Drinks). Chemistry can help. +

Tin and Tonic: §

+ Mix one part liquid solder to one part tonic water. Chemistry can help.

Vanilla Pudding:

Mix five parts each of egg, coffee, and vanilla powder. Botany or the Kitchen can help.

Very Berry Smoothie:

@@ -1113,17 +1153,23 @@

Hard Soft Drinks

- These drinks require a significant amount of cross-department collaboration, many steps, or rare ingredients. Procurement doesn't currently accept soft drinks, so this list is only for your reference. + These drinks require a significant amount of cross-department collaboration, many steps, or rare ingredients. Procurement doesn't currently accept soft drinks, so this list is only for your reference. Drinks marked with § are for synthetic customers only.

Beet Shrub:

Mix two parts beet juice to one part each of vinegar and corn syrup. Heat to 375K. Botany or the Kitchen can help.

Berry Beet Refresher:

Mix four parts soda water, three parts ice, and one part each of Beet Shrub, berry juice, and lime juice.

Blue Cherry Shake:

Mix one part each of blue cherry jelly, cream, and ice. Botany can help. +

Electrocharge: §

+ Mix three parts TCP Sip (Easy Soft Drinks) to one part each of copper and silver. Chemistry or Cargo can help.

Lean:

Mix one part each of space drugs, soda water, and grape juice. Chemistry can help.

Nuka Cola:

Mix six parts cola to one part uranium. Cargo can help. +

Salt and Battery: §

+ Mix one part electrolytes to one part conductive lube. Chemistry can help. +

Soft Reset: §

+ Mix one part each of degreaser, sterilizine, drying agent, and space cleaner. Chemistry, Custodial, or Virology can help.

Vegetable Juice Mix:

Mix one part each of tomato juice, carrot juice, beet juice, and lettuce juice. Botany can help.

Back to Table of Contents diff --git a/code/modules/food_and_drinks/drinks/drinks/drinkingglass.dm b/code/modules/food_and_drinks/drinks/drinks/drinkingglass.dm index 02bac16a11e..fb9b77c7113 100644 --- a/code/modules/food_and_drinks/drinks/drinks/drinkingglass.dm +++ b/code/modules/food_and_drinks/drinks/drinks/drinkingglass.dm @@ -26,6 +26,20 @@ qdel(egg) return ITEM_INTERACT_COMPLETE +/obj/item/reagent_containers/drinks/drinkingglass/interact_with_atom(atom/target, mob/living/user, list/modifiers) + if(!reagents || !reagents.total_volume) + return ..() + if(istype(reagents.get_master_reagent(), /datum/reagent/consumable/drink/salt_and_battery) && user.a_intent == INTENT_HARM) + return CONTINUE_ATTACK + return ..() + +/obj/item/reagent_containers/drinks/drinkingglass/after_attack(atom/target, mob/user, proximity_flag, click_parameters) + if(!reagents || !reagents.total_volume) + return ..() + if(istype(reagents.get_master_reagent(), /datum/reagent/consumable/drink/salt_and_battery) && user.a_intent == INTENT_HARM) + reagents.remove_reagent("salt_and_battery", 10) // this is not an unlimited weapon + return ..() + /obj/item/reagent_containers/drinks/drinkingglass/fire_act(datum/gas_mixture/air, exposed_temperature, exposed_volume, global_overlay = TRUE) if(!reagents.total_volume) return @@ -41,6 +55,8 @@ var/datum/reagent/R = reagents.get_master_reagent() name = R.drink_name desc = R.drink_desc + force = (istype(R, /datum/reagent/consumable/drink/salt_and_battery) && reagents.total_volume) ? 10 : initial(force) + attack_verb = (istype(R, /datum/reagent/consumable/drink/salt_and_battery) && reagents.total_volume) ? list("assaulted", "battered") : initial(attack_verb) if(R.drink_icon) icon_state = R.drink_icon else @@ -48,6 +64,8 @@ I.color = mix_color_from_reagents(reagents.reagent_list) overlays += I else + force = initial(force) + attack_verb = initial(attack_verb) icon_state = "glass_empty" name = initial(name) desc = initial(desc) diff --git a/code/modules/reagents/chemistry/reagents/alcohol.dm b/code/modules/reagents/chemistry/reagents/alcohol.dm index edd308c62e4..4acb28c3743 100644 --- a/code/modules/reagents/chemistry/reagents/alcohol.dm +++ b/code/modules/reagents/chemistry/reagents/alcohol.dm @@ -1199,6 +1199,30 @@ return return ..() | update_flags +/datum/reagent/consumable/ethanol/gfs + name = "GFS" + id = "gfs" + description = "Gin, fernet, shrub. Simple, sour, and sweet." + color = "#7e0243" + alcohol_perc = 0.25 + drink_icon = "gfs_glass" + drink_name = "Glass of GFS" + drink_desc = "Gin, fernet, shrub. Simple, sour, and sweet." + taste_description = "sweetness tempered by earthy beets" + goal_difficulty = REAGENT_GOAL_HARD + +/datum/reagent/consumable/ethanol/shrub_julep + name = "Shrub Julep" + id = "shrub_julep" + description = "A bit spicy. Incredibly refreshing." + color = "#7e0243" + alcohol_perc = 0.15 + drink_icon = "shrub_julep_glass" + drink_name = "Glass of Shrub Julep" + drink_desc = "A bit spicy. Incredibly refreshing." + taste_description = "chilly mint and earthy beets" + goal_difficulty = REAGENT_GOAL_HARD + // ROBOT ALCOHOL PAST THIS POINT // WOOO! @@ -1216,11 +1240,12 @@ /datum/reagent/consumable/ethanol/synthanol/on_mob_life(mob/living/M) metabolization_rate = REAGENTS_METABOLISM - if(!(M.dna.species.reagent_tag & PROCESS_SYN)) - metabolization_rate += 3.6 //gets removed from organics very fast - if(prob(25)) - metabolization_rate += 15 - M.fakevomit() + if(M.dna.species.reagent_tag & PROCESS_SYN) + return ..() + metabolization_rate += 3.6 // gets removed from organics very fast + if(prob(25)) + metabolization_rate += 15 + M.fakevomit() return ..() /datum/reagent/consumable/ethanol/synthanol/reaction_mob(mob/living/M, method=REAGENT_TOUCH, volume) @@ -1239,6 +1264,7 @@ drink_name = "Glass of Robot Tears" drink_desc = "No robots were hurt in the making of this drink." taste_description = "existential angst" + goal_difficulty = REAGENT_GOAL_EASY /datum/reagent/consumable/ethanol/synthanol/trinary name = "Trinary" @@ -1299,6 +1325,214 @@ drink_desc = "Someone mixed good wine and robot booze. Romantic, but atrocious." taste_description = "fancy motor oil" +/datum/reagent/consumable/ethanol/synthanol/gear_grinder + name = "Gear Grinder" + id = "gear_grinder" + description = "A gritty mixture that looks even worse for organics than it is for robots." + color = "#524745" + alcohol_perc = 0.25 + drink_icon = "gear_grinder_glass" + drink_name = "Glass of Gear Grinder" + drink_desc = "Someone mixed good wine and robot booze. Romantic, but atrocious." + taste_description = "vingear and regret" + COOLDOWN_DECLARE(drink_message_cooldown) + goal_difficulty = REAGENT_GOAL_HARD + +/datum/reagent/consumable/ethanol/synthanol/gear_grinder/on_mob_life(mob/living/M) + if(!(M.dna.species.reagent_tag & PROCESS_SYN)) + return ..() + M.SetSlowed(8, 2) + if(COOLDOWN_FINISHED(src, drink_message_cooldown)) + to_chat(M, "Your joints struggle to move.") + COOLDOWN_START(src, drink_message_cooldown, 10 SECONDS) + return ..() + +/datum/reagent/consumable/ethanol/synthanol/runtime + name = "Runtime" + id = "runtime" + description = "That color doesn't look right..." + color = "#ac0649" + alcohol_perc = 0.3 + dizzy_adj = 10 SECONDS + drink_icon = "runtime_glass" + drink_name = "Glass of Runtime" + drink_desc = "Looks like there was some kind of error while mixing this drink." + taste_description = "something only half-describable" + goal_difficulty = REAGENT_GOAL_EASY + +/datum/reagent/consumable/ethanol/synthanol/runtime/on_mob_life(mob/living/M) + if((M.dna.species.reagent_tag & PROCESS_SYN) && prob(20)) + M.Hallucinate(10 SECONDS) + return ..() + +/datum/reagent/consumable/ethanol/synthanol/stack_trace + name = "Stack Trace" + id = "stack_trace" + description = "A glistering green beverage." + color = "#2ed92e" + alcohol_perc = 0.2 + drink_icon = "stack_trace_glass" + drink_name = "Glass of Stack Trace" + drink_desc = "A glistering green beverage, best of both its components." + taste_description = "sweet, sweet progress" + goal_difficulty = REAGENT_GOAL_NORMAL + +/datum/reagent/consumable/ethanol/synthanol/csv + name = "CSV" + id = "csv" + description = "Cognac, synthanol, vodka." + color = "#f5303c" + alcohol_perc = 0.3 + drink_icon = "csv_glass" + drink_name = "Glass of CSV" + drink_desc = "Cognac, synthanol, vodka. Sadly, the comma can't separate the literal fluids." + taste_description = "late-night spreadsheets" + goal_difficulty = REAGENT_GOAL_EASY + +/datum/reagent/consumable/ethanol/synthanol/hard_reset + name = "Hard Reset" + id = "hard_reset" + description = "This looks like it'll set your systems right." + color = "#1b1c20" + dizzy_adj = 2 SECONDS + drink_icon = "hard_reset_glass" + drink_name = "Glass of Hard Reset" + drink_desc = "Have you tried unplugging it and plugging it back in?" + taste_description = "a full stop" + COOLDOWN_DECLARE(reboot_cooldown) + goal_difficulty = REAGENT_GOAL_HARD + +/datum/reagent/consumable/ethanol/synthanol/hard_reset/on_mob_life(mob/living/M) + if(!(M.dna.species.reagent_tag & PROCESS_SYN)) + return ..() + for(var/obj/effect/decal/cleanable/C in M) + qdel(C) + M.clean_blood() + SEND_SIGNAL(src, COMSIG_COMPONENT_CLEAN_ACT) + var/mob/living/carbon/Mc = M + if(istype(Mc)) + Mc.wetlevel = 0 + M.germ_level -= min(volume * 30, M.germ_level) + if(COOLDOWN_FINISHED(src, reboot_cooldown) && prob(10)) + to_chat(M, "Your systems prepare for a reboot.") + M.Paralyse(5 SECONDS) + M.Drowsy(20 SECONDS) + metabolization_rate += 4.6 // get rid of it faster after rebooting + COOLDOWN_START(src, reboot_cooldown, 5 MINUTES) + if(prob(50)) + M.AdjustConfused(-10 SECONDS) + for(var/datum/reagent/R in M.reagents.reagent_list) + if(R == src) + M.reagents.remove_reagent(R.id, 2) + continue + if(R.id == "ultralube" || R.id == "lube") + // Flushes lube and ultra-lube even faster than other chems + M.reagents.remove_reagent(R.id, 10) + else + M.reagents.remove_reagent(R.id, 4) + return ..() + +/datum/reagent/consumable/ethanol/synthanol/overclock_somewhere + name = "It's Overclock Somewhere" + id = "overclock_somewhere" + description = "A premium mix of premium lubricants for robots." + color = "#107bd6" + shock_reduction = 20 + dizzy_adj = 30 SECONDS + drink_icon = "overclock_somewhere_glass" + drink_name = "Glass of It's Overclock Somewhere" + drink_desc = "Break things fast." + taste_description = "greased lightning" + goal_difficulty = REAGENT_GOAL_HARD + +/datum/reagent/consumable/ethanol/synthanol/overclock_somewhere/on_mob_life(mob/living/M) + if(!(M.dna.species.reagent_tag & PROCESS_SYN)) + return ..() + M.reagents.add_reagent("ultralube", 0.2) + M.Confused(2 SECONDS) + return ..() + +/datum/reagent/consumable/ethanol/synthanol/bluescreen + name = "Bluescreen" + id = "bluescreen" + description = "A great way to give any robot synthanol poisoning." + color = "#0000ff" + alcohol_perc = 0.7 + dizzy_adj = 20 SECONDS + drink_icon = "bluescreen_glass" + drink_name = "Glass of Bluescreen" + drink_desc = "You can't tell whether the scrolling messages are a good thing or a bad thing." + taste_description = "segmentation fault" + COOLDOWN_DECLARE(monitor_change_cooldown) + COOLDOWN_DECLARE(drink_drowsiness_cooldown) + goal_difficulty = REAGENT_GOAL_EASY + +/datum/reagent/consumable/ethanol/synthanol/bluescreen/on_mob_life(mob/living/M) + if(!(M.dna.species.reagent_tag & PROCESS_SYN)) + return ..() + if(prob(20) && COOLDOWN_FINISHED(src, monitor_change_cooldown)) + COOLDOWN_START(src, monitor_change_cooldown, 1 MINUTES) + var/mob/living/carbon/human/H = M + var/obj/item/organ/external/head/head_organ = M.get_organ("head") + var/datum/robolimb/robohead = GLOB.all_robolimbs[head_organ.model] + if(head_organ && robohead.is_monitor) + H.change_hair("Blue IPC Screen", 1) + var/bluescreen_message = pick("Stack underflow.", "Null pointer exception.", "Syntax error.", "500 Internal Server Error.", "Segmentation fault.", "Runtime exception.", "418 I'm a teapot.", "Could not open [M]: No such file or directory.", "fatal: not a git repository (or any of the parent directories): .git", "Display error: No signal.") + to_chat(M, "[bluescreen_message]") + if(prob(50) && COOLDOWN_FINISHED(src, drink_drowsiness_cooldown)) + M.EyeBlurry(10 SECONDS) + M.Drowsy(5 SECONDS) + COOLDOWN_START(src, drink_drowsiness_cooldown, 1 MINUTES) + return ..() + +/datum/reagent/consumable/ethanol/synthanol/burnout + name = "Burnout" + id = "burnout" + description = "A fiery mixture for robots' enjoyment." + color = "#1bb1ff" + alcohol_perc = 0.3 + drink_icon = "burnout_glass" + drink_name = "Glass of Burnout" + drink_desc = "Perfect, if you want a drink that really burns." + taste_description = "white-hot metal" + goal_difficulty = REAGENT_GOAL_NORMAL + +/datum/reagent/consumable/ethanol/synthanol/burnout/on_mob_life(mob/living/M) + if(!(M.dna.species.reagent_tag & PROCESS_SYN)) + return ..() + var/update_flags = STATUS_UPDATE_NONE + M.bodytemperature += 8 + if(prob(5)) + update_flags |= M.adjustFireLoss(5, FALSE) + var/burn_message = pick("Your wires singe!", "Your fans are working overtime!", "It burns...!") + to_chat(M, "[burn_message]") + return ..() | update_flags + +/datum/reagent/consumable/ethanol/synthanol/dryer_martini + name = "Dryer Martini" + id = "dryer_martini" + description = "In general, you want the martini to taste dry, not dry up." + color = "#d004e7" + dizzy_adj = 14 SECONDS + drink_icon = "dryer_martini_glass" + drink_name = "Glass of Dryer Martini" + drink_desc = "No matter how much you fill it, only a short paste remains in the bottom of the glass." + taste_description = "synthanolic paste" + COOLDOWN_DECLARE(drink_message_cooldown) + goal_difficulty = REAGENT_GOAL_NORMAL + +/datum/reagent/consumable/ethanol/synthanol/dryer_martini/on_mob_life(mob/living/M) + if(!(M.dna.species.reagent_tag & PROCESS_SYN)) + return ..() + if(prob(30)) + var/mob/living/carbon/Mc = M + if(istype(Mc) && Mc.wetlevel > 0) + Mc.wetlevel -= 1 + if(COOLDOWN_FINISHED(src, drink_message_cooldown)) + to_chat(M, "The martini dries your peripherals somewhat.") + COOLDOWN_START(src, drink_message_cooldown, 5 SECONDS) + return ..() + /datum/reagent/consumable/ethanol/fruit_wine name = "Fruit Wine" id = "fruit_wine" diff --git a/code/modules/reagents/chemistry/reagents/drinks_reagents.dm b/code/modules/reagents/chemistry/reagents/drinks_reagents.dm index c15e73eea7d..02af4933e59 100644 --- a/code/modules/reagents/chemistry/reagents/drinks_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/drinks_reagents.dm @@ -1022,3 +1022,285 @@ drink_name = "Glass of Ginger Ale" drink_desc = "Spicy and fizzy soda." taste_description = "sweet, carbonated ginger" + +/datum/reagent/consumable/drink/electrolytes/top_up + name = "Top-Up" + description = "A sports drink for the busy spessman." + id = "top_up" + color = "#3c5e8b" + drink_icon = "top_up_glass" + drink_name = "Glass of Top-Up" + drink_desc = "A sports drink for the busy spessman." + taste_description = "lemony lectrolytes" + +/datum/reagent/consumable/drink/electrolytes/zero_day + name = "Zero Day" + description = "This beverage keeps leaking and leaking." + id = "zero_day" + color = "#9dafad" + drink_icon = "zero_day_glass" + drink_name = "Glass of Zero Day" + drink_desc = "A data breach in a glass." + taste_description = "half-emptiness" + COOLDOWN_DECLARE(drip_cooldown) + +/datum/reagent/consumable/drink/electrolytes/zero_day/on_new(data) + ..() + START_PROCESSING(SSprocessing, src) + +/datum/reagent/consumable/drink/electrolytes/zero_day/process() + if(!..()) + return + if(!istype(holder.my_atom, /obj/item/reagent_containers/iv_bag) && !istype(holder.my_atom, /obj/item/reagent_containers/drinks)) + return + if(!COOLDOWN_FINISHED(src, drip_cooldown)) + return + holder.remove_reagent("zero_day", 1) + var/turf/T = get_turf(holder.my_atom) + var/drop_type = /obj/effect/decal/cleanable/reagent/drip + var/obj/effect/decal/cleanable/reagent/drip/drop = locate() in T + if(drop) + if(drop.amount < 5) + drop.amount++ + var/image/I = image(drop.icon, drop.random_icon_states) + I.icon += drop.basecolor + drop.overlays |= I + drop.basecolor = color + drop.update_icon() + else + drop = new drop_type(T, color) + drop.desc = "Looks like someone spilled their drink." + drop.update_icon() + COOLDOWN_START(src, drip_cooldown, 2.6 SECONDS) + +/datum/reagent/consumable/drink/electrolytes/tcp_sip + name = "TCP Sip" + description = "A non-synthanolic refreshment for synthetics." + id = "tcp_sip" + color = "#467ae6" + drink_icon = "tcp_sip_glass" + drink_name = "Glass of TCP Sip" + drink_desc = "A non-synthanolic refreshment for synthetics." + taste_description = "half-emptiness" + +/datum/reagent/consumable/drink/electrolytes/tcp_sip/on_mob_life(mob/living/M) + metabolization_rate = REAGENTS_METABOLISM + if(M.dna.species.reagent_tag & PROCESS_SYN) + return ..() + metabolization_rate += 3.6 // gets removed from organics very fast + if(prob(25)) + metabolization_rate += 15 + M.fakevomit() + return ..() + +/datum/reagent/consumable/drink/electrolytes/tcp_sip/ginger_beep + name = "ginger_beep" + description = "A gingery refreshment for synthetics." + id = "ginger_beep" + color = "#bd994d" + drink_icon = "ginger_beep_glass" + drink_name = "Glass of Ginger Beep" + drink_desc = "A gingery refreshment for synthetics. Fizzy, too." + taste_description = "static and spice" + +/datum/reagent/consumable/drink/electrolytes/tcp_sip/cog_a_cola + name = "Cog-a-Cola" + description = "A non-synthanolic soda for synthetics." + id = "cog_a_cola" + color = "#7f300b" + drink_icon = "cog_a_cola_glass" + drink_name = "Glass of Cog-a-Cola" + drink_desc = "A non-synthanolic soda for synthetics." + taste_description = "sugary bubbles with a hint of oil" + +/datum/reagent/consumable/drink/electrolytes/tcp_sip/electrocharge + name = "Electrocharge" + description = "A non-synthanolic beverage to keep a synthetic's battery high." + id = "electrocharge" + color = "#9090a8" + drink_icon = "electrocharge_glass" + drink_name = "Glass of Electrocharge" + drink_desc = "A real charge-up for synthetics." + taste_description = "a full battery" + COOLDOWN_DECLARE(drink_message_cooldown) + COOLDOWN_DECLARE(drink_overcharge_cooldown) + +/datum/reagent/consumable/drink/electrolytes/tcp_sip/electrocharge/on_mob_life(mob/living/M) + metabolization_rate = REAGENTS_METABOLISM + if(!(M.dna.species.reagent_tag & PROCESS_SYN)) + return ..() + var/obj/item/organ/internal/cell/microbattery = M.get_organ_slot("heart") + if(!istype(microbattery)) // if there's no microbattery don't bother + return ..() + if(M.nutrition > NUTRITION_LEVEL_FULL && prob(10) && COOLDOWN_FINISHED(src, drink_overcharge_cooldown)) + do_sparks(2, FALSE, M) + M.visible_message( + "[M] lets off a few sparks.", + "You feel a little too charged up.", + "Something fizzles nearby." + ) + microbattery.receive_damage(2, TRUE) // this drink is not great for you when you're already charged + COOLDOWN_START(src, drink_overcharge_cooldown, 30 SECONDS) + if(M.nutrition < NUTRITION_LEVEL_WELL_FED) + M.nutrition += 1 + if(M.nutrition < NUTRITION_LEVEL_HUNGRY) + metabolization_rate += 0.8 // charging triple means burning through triple + M.nutrition += 2 + if(COOLDOWN_FINISHED(src, drink_message_cooldown)) + to_chat(M, "You feel relief surging through your wires!") + COOLDOWN_START(src, drink_message_cooldown, 10 MINUTES) + return ..() + +/datum/reagent/consumable/drink/electrolytes/tcp_sip/battery_acid + name = "Battery Acid" + description = "An acidic beverage for synthetics." + id = "battery_acid" + color = "#d0e7ea" + drink_icon = "battery_acid_glass" + drink_name = "Glass of Battery Acid" + drink_desc = "So acidic, it forms an acid like its namesake on the rim of the glass." + taste_description = "fried wires" + +/datum/reagent/consumable/drink/electrolytes/tcp_sip/processor_punch + name = "Processor Punch" + description = "A sweetened, non-synthanolic, synthetic sip." + id = "processor_punch" + color = "#88242d" + drink_icon = "processor_punch_glass" + drink_name = "Glass of Processor Punch" + drink_desc = "A sweetened, non-synthanolic, synthetic sip." + taste_description = "a punch to the processors" + +/datum/reagent/consumable/drink/bubbly_beep + name = "Bubbly Beep" + description = "A squeaky-clean, foamy, synthetic beverage." + id = "bubbly_beep" + color = "#2984d1" + drink_icon = "bubbly_beep_glass" + drink_name = "Glass of Bubbly Beep" + drink_desc = "The cleanest, bubbliest drink on the station." + taste_description = "decontamination" + process_flags = SYNTHETIC | ORGANIC + +/datum/reagent/consumable/drink/bubbly_beep/on_mob_life(mob/living/M) + metabolization_rate = REAGENTS_METABOLISM + if(!(M.dna.species.reagent_tag & PROCESS_SYN)) + metabolization_rate += 3.6 // gets removed from organics very fast + if(prob(50)) + metabolization_rate += 30 + M.fakevomit() + return ..() + if(/obj/effect/decal/cleanable in M) + qdel(pick(/obj/effect/decal/cleanable/ in M)) + else + M.clean_blood() + to_chat(M, "The foam cleans you as it bubbles through your components.") + SEND_SIGNAL(src, COMSIG_COMPONENT_CLEAN_ACT) + return ..() + +/datum/reagent/consumable/drink/tin_and_tonic + name = "Tin and Tonic" + description = "A good sip for a synthetic curious about quinine." + id = "tin_and_tonic" + color = "#61a6a8" + drink_icon = "tin_and_tonic_glass" + drink_name = "Glass of Tin and Tonic" + drink_desc = "A good sip for a synthetic curious about quinine." + taste_description = "smoothly-running processors" + process_flags = SYNTHETIC | ORGANIC + +/datum/reagent/consumable/drink/tin_and_tonic/on_mob_life(mob/living/M) + metabolization_rate = REAGENTS_METABOLISM + if(!(M.dna.species.reagent_tag & PROCESS_SYN)) + metabolization_rate += 3.6 // gets removed from organics very fast + return ..() + var/update_flags = STATUS_UPDATE_NONE + update_flags |= M.adjustBrainLoss(-0.5, FALSE) + return ..() | update_flags + +/datum/reagent/consumable/drink/salt_and_battery + name = "Salt and Battery" + description = "A particularly offensive beverage for synthetics." + id = "salt_and_battery" + color = "#959595" + drink_icon = "salt_and_battery_glass" + drink_name = "Glass of Salt and Battery" + drink_desc = "Looks like it'll charge you up, but really it'll beat you down." + taste_description = "assault to the batteries" + process_flags = SYNTHETIC | ORGANIC + +/datum/reagent/consumable/drink/salt_and_battery/on_mob_life(mob/living/M) + metabolization_rate = REAGENTS_METABOLISM + if(!(M.dna.species.reagent_tag & PROCESS_SYN)) + metabolization_rate += 3.6 // gets removed from organics very fast + if(prob(15)) + metabolization_rate += 15 + M.fakevomit() + return ..() + var/datum/antagonist/mindflayer/flayer = M.mind?.has_antag_datum(/datum/antagonist/mindflayer) + if(flayer && (flayer.total_swarms_gathered > 0)) // Inherited from conductive lube + M.Jitter(15 SECONDS_TO_JITTER) + if(prob(10)) + do_sparks(2, FALSE, M) + M.bodytemperature += 5 + if(prob(20)) + metabolization_rate += 1.6 // if it kicks your butt, make it kick some of the drink out too. + M.adjustBruteLoss(2, FALSE) + playsound(get_turf(M), 'sound/effects/hit_punch.ogg', 60, TRUE) + var/beat_verbs = pick("assaults","batters") + M.Jitter(0.5 SECONDS) + M.visible_message( + "[M] is battered by an unseen assailant!", + "The beverage [beat_verbs] you!", + "You hear empty punches against metal!" + ) + if(prob(25)) + M.KnockDown(2 SECONDS) + return ..() + +/datum/reagent/consumable/drink/soft_reset + name = "Soft Reset" + description = "Maybe your systems could use this once in a while." + id = "soft_reset" + color = "#1f3a46" + drink_icon = "soft_reset_glass" + drink_name = "Glass of Soft Reset" + drink_desc = "Have you tried turning it off and back on again?" + taste_description = "a little reboot" + process_flags = SYNTHETIC | ORGANIC + COOLDOWN_DECLARE(reboot_cooldown) + +/datum/reagent/consumable/drink/soft_reset/on_mob_life(mob/living/M) + if(!(M.dna.species.reagent_tag & PROCESS_SYN)) + metabolization_rate += 3.6 // gets removed from organics very fast + if(prob(50)) + metabolization_rate += 30 + M.fakevomit() + return ..() + if(prob(10)) + for(var/obj/effect/decal/cleanable/C in M) + qdel(C) + M.clean_blood() + SEND_SIGNAL(src, COMSIG_COMPONENT_CLEAN_ACT) + var/mob/living/carbon/Mc = M + if(istype(Mc)) + Mc.wetlevel -= 2 + M.germ_level -= min(volume*20, M.germ_level) + if(COOLDOWN_FINISHED(src, reboot_cooldown) && prob(10)) + to_chat(M, "Your systems prepare for a reboot.") + M.Paralyse(3 SECONDS) + M.Drowsy(10 SECONDS) + metabolization_rate += 2.6 // get rid of it faster after rebooting + COOLDOWN_START(src, reboot_cooldown, 10 MINUTES) + if(prob(50)) + M.AdjustConfused(-5 SECONDS) + for(var/datum/reagent/R in M.reagents.reagent_list) + if(R == src) + M.reagents.remove_reagent(R.id, 1) + continue + if(R.id == "ultralube" || R.id == "lube") + // Flushes lube and ultra-lube even faster than other chems + M.reagents.remove_reagent(R.id, 5) + else + M.reagents.remove_reagent(R.id, 2) + return ..() diff --git a/code/modules/reagents/chemistry/reagents/food_reagents.dm b/code/modules/reagents/chemistry/reagents/food_reagents.dm index de7d67d3683..b66490a7994 100644 --- a/code/modules/reagents/chemistry/reagents/food_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/food_reagents.dm @@ -289,6 +289,22 @@ update_flags |= M.adjustBrainLoss(1, FALSE) return ..() | update_flags +/datum/reagent/consumable/potass_chloride + name = "Potassium Salt" + id = "potass_chloride" + description = "Potassium chloride, for folks who need to watch their sodium intake." + color = "#B1B0B0" + harmless = FALSE + overdose_threshold = 100 + taste_mult = 2 + taste_description = "salt" + +/datum/reagent/consumable/potass_chloride/overdose_process(mob/living/M, severity) + var/update_flags = STATUS_UPDATE_NONE + if(prob(50)) + update_flags |= M.adjustBrainLoss(1, FALSE) + return ..() | update_flags + /datum/reagent/consumable/blackpepper name = "Black Pepper" id = "blackpepper" diff --git a/code/modules/reagents/chemistry/reagents/medicine.dm b/code/modules/reagents/chemistry/reagents/medicine.dm index f6a1b2ab564..3d7a1064ca5 100644 --- a/code/modules/reagents/chemistry/reagents/medicine.dm +++ b/code/modules/reagents/chemistry/reagents/medicine.dm @@ -1462,10 +1462,10 @@ for(var/datum/reagent/R in M.reagents.reagent_list) if(R != src) if(R.id == "ultralube" || R.id == "lube") - //Flushes lube and ultra-lube even faster than other chems + // Flushes lube and ultra-lube even faster than other chems M.reagents.remove_reagent(R.id, 5) else - M.reagents.remove_reagent(R.id,1) + M.reagents.remove_reagent(R.id, 1) return ..() | update_flags /datum/reagent/medicine/degreaser/reaction_turf(turf/simulated/T, volume) diff --git a/code/modules/reagents/chemistry/reagents/pyrotechnic.dm b/code/modules/reagents/chemistry/reagents/pyrotechnic.dm index 2a9152c5f23..33294e4169b 100644 --- a/code/modules/reagents/chemistry/reagents/pyrotechnic.dm +++ b/code/modules/reagents/chemistry/reagents/pyrotechnic.dm @@ -93,7 +93,7 @@ description = "A highly flammable blend of basic hydrocarbons, mostly Acetylene. Useful for both welding and organic chemistry, and can be fortified into a heavier oil." reagent_state = LIQUID color = "#060606" - drink_icon = "dr_gibb_glass" + drink_icon = "fuel_glass" drink_name = "Glass of welder fuel" drink_desc = "Unless you are an industrial tool, this is probably not safe for consumption." taste_description = "mistakes" diff --git a/code/modules/reagents/chemistry/recipes/drinks_reactions.dm b/code/modules/reagents/chemistry/recipes/drinks_reactions.dm index e53e0fe1064..e44740ffedf 100644 --- a/code/modules/reagents/chemistry/recipes/drinks_reactions.dm +++ b/code/modules/reagents/chemistry/recipes/drinks_reactions.dm @@ -468,9 +468,6 @@ result_amount = 4 mix_sound = 'sound/goonstation/misc/drinkfizz.ogg' - -////DRINKS THAT REQUIRED IMPROVED SPRITES BELOW:: -Agouri///// - /datum/chemical_reaction/sbiten name = "Sbiten" id = "sbiten" @@ -786,6 +783,79 @@ result_amount = 2 mix_message = "The chemicals mix to create a fine, red substance." +/datum/chemical_reaction/synthanol/gear_grinder + name = "Gear Grinder" + id = "gear_grinder" + result = "gear_grinder" + required_reagents = list("beetshrub" = 1, "robottears" = 1) + result_amount = 2 + mix_message = "The goos solidify into a gritty sludge." + +/datum/chemical_reaction/synthanol/runtime + name = "Runtime" + id = "runtime" + result = "runtime" + required_reagents = list("synthanol" = 2, "screwdrivercocktail" = 3) + result_amount = 5 + mix_message = "The colors in the drink separate in an odd way..." + mix_sound = 'sound/effects/glassbang.ogg' + +/datum/chemical_reaction/synthanol/stack_trace + name = "Stack Trace" + id = "stack_trace" + result = "stack_trace" + required_reagents = list("runtime" = 1, "rewriter" = 1) + result_amount = 2 + mix_message = "You tame the runtime mixture with rewriter." + +/datum/chemical_reaction/synthanol/csv + name = "CSV" + id = "csv" + result = "csv" + required_reagents = list("cognac" = 1, "synthanol" = 1, "vodka" = 1) + mix_message = "The mixture turns bright red as you garnish it with a comma." + +/datum/chemical_reaction/synthanol/hard_reset + name = "Hard Reset" + id = "hard_reset" + result = "hard_reset" + required_reagents = list("soft_reset" = 1, "bluescreen" = 1) + result_amount = 2 + mix_message = "The swirling portion of the mixture sinks deeper into the drink." + +/datum/chemical_reaction/synthanol/overclock_somewhere + name = "It's Overclock Somewhere" + id = "overclock_somewhere" + result = "overclock_somewhere" + required_reagents = list("synthanol" = 1, "ultralube" = 1, "oil" = 1) + mix_message = "The oils rise to form a shimmering layer on the top." + +/datum/chemical_reaction/synthanol/bluescreen + name = "Bluescreen" + id = "bluescreen" + result = "bluescreen" + required_reagents = list("synthanol" = 1, "fuel" = 1, "goldschlager" = 1, "tonic" = 1, "water" = 1) + result_amount = 5 + mix_message = "As soon as you fill the glass, it turns bright blue." + mix_sound = 'sound/effects/glassbang.ogg' + +/datum/chemical_reaction/synthanol/burnout + name = "Burnout" + id = "burnout" + result = "burnout" + required_reagents = list("synthanol" = 1, "acetone" = 1) + result_amount = 2 + mix_message = "The flammable liquids catch fire!" + mix_sound = 'sound/effects/fire_sizzle.ogg' + min_temp = T0C + 100 + +/datum/chemical_reaction/synthanol/dryer_martini + name = "Dryer Martini" + id = "dryer_martini" + result = "dryer_martini" + required_reagents = list("synthanol" = 2, "drying_agent" = 1) + mix_message = "Most of the fluid in the glass dries up, leaving a thick paste behind." + /datum/chemical_reaction/triple_citrus name = "triple_citrus" id = "triple_citrus" @@ -1062,6 +1132,24 @@ result_amount = 5 mix_sound = 'sound/goonstation/misc/drinkfizz.ogg' +/datum/chemical_reaction/gfs + name = "GFS" + id = "gfs" + result = "gfs" + required_reagents = list("gin" = 1, "fernet" = 1, "beetshrub" = 1) + result_amount = 3 + mix_message = "The mixture settles into a soothing purple color." + mix_sound = 'sound/goonstation/misc/drinkfizz.ogg' + +/datum/chemical_reaction/shrub_julep + name = "Shrub Julep" + id = "shrub_julep" + result = "shrub_julep" + required_reagents = list("mint" = 1, "whiskey" = 2, "beetshrub" = 1, "ice" = 1) + result_amount = 5 + mix_message = "The liquid pools dark underneath the ice." + mix_sound = 'sound/goonstation/misc/drinkfizz.ogg' + /datum/chemical_reaction/melonade name = "Melonade" id = "melonade" @@ -1184,3 +1272,118 @@ result_amount = 4 mix_message = "The blended vegetables form a creamy mix." mix_sound = 'sound/goonstation/misc/drinkfizz.ogg' + +/datum/chemical_reaction/electrolytes + name = "Electrolytes" + id = "electrolytes" + result = "electrolytes" + required_reagents = list("sodiumchloride" = 1, "potass_chloride" = 1, "water" = 3) + result_amount = 5 + mix_message = "The salts dissolve in the water." + mix_sound = 'sound/goonstation/misc/drinkfizz.ogg' + +/datum/chemical_reaction/tcp_sip + name = "TCP Sip" + id = "tcp_sip" + result = "tcp_sip" + required_reagents = list("electrolytes" = 1, "fuel" = 1) + result_amount = 2 + mix_message = "The fuel darkens the beverage." + mix_sound = 'sound/goonstation/misc/drinkfizz.ogg' + +/datum/chemical_reaction/ginger_beep + name = "Ginger Beep" + id = "ginger_beep" + result = "ginger_beep" + required_reagents = list("tcp_sip" = 1, "ginger_ale" = 1) + result_amount = 2 + mix_message = "The fizzy ginger ale takes on a metallic appearance." + mix_sound = 'sound/goonstation/misc/drinkfizz.ogg' + +/datum/chemical_reaction/bubbly_beep + name = "Bubbly Beep" + id = "bubbly_beep" + result = "bubbly_beep" + required_reagents = list("cleaner" = 1, "sodawater" = 1) + result_amount = 4 + mix_message = "Bubbles overflow from the container!" + +/datum/chemical_reaction/top_up + name = "Top-Up" + id = "top_up" + result = "top_up" + required_reagents = list("electrolytes" = 1, "space_up" = 1) + result_amount = 2 + mix_message = "The salts and soda swirl together." + mix_sound = 'sound/goonstation/misc/drinkfizz.ogg' + +/datum/chemical_reaction/cog_a_cola + name = "Cog-A-Cola" + id = "cog_a_cola" + result = "cog_a_cola" + required_reagents = list("tcp_sip" = 1, "cola" = 1) + result_amount = 2 + mix_message = "The cola takes on a metallic tinge." + mix_sound = 'sound/goonstation/misc/drinkfizz.ogg' + +/datum/chemical_reaction/electrocharge + name = "Electrocharge" + id = "electrocharge" + result = "electrocharge" + required_reagents = list("tcp_sip" = 3, "copper" = 1, "silver" = 1) + result_amount = 5 + mix_message = "The container fizzes in your hand." + mix_sound = 'sound/effects/sparks4.ogg' + +/datum/chemical_reaction/tin_and_tonic + name = "Tin and Tonic" + id = "tin_and_tonic" + result = "tin_and_tonic" + required_reagents = list("liquid_solder" = 1, "tonic" = 1) + result_amount = 2 + mix_message = "The solder disperses throughout the tonic." + mix_sound = 'sound/goonstation/misc/drinkfizz.ogg' + +/datum/chemical_reaction/salt_and_battery + name = "Salt and Battery" + id = "salt_and_battery" + result = "salt_and_battery" + required_reagents = list("electrolytes" = 1, "conductivelube" = 1) + result_amount = 2 + mix_message = "The solution sparks a little less than the lube used to make it...a little." + mix_sound = 'sound/effects/sparks4.ogg' + +/datum/chemical_reaction/zero_day + name = "Zero Day" + id = "zero_day" + result = "zero_day" + required_reagents = list("electrolytes" = 1, "nothing" = 1) + result_amount = 1 + mix_message = "Much of the solution spills out of the glass." + mix_sound = 'sound/goonstation/misc/drinkfizz.ogg' + +/datum/chemical_reaction/battery_acid + name = "Battery Acid" + id = "battery_acid" + result = "battery_acid" + required_reagents = list("tcp_sip" = 1, "triple_citrus" = 1) + result_amount = 2 + mix_message = "The mixture forms an acidic fuzz on the rim of the container." + mix_sound = 'sound/goonstation/misc/drinkfizz.ogg' + +/datum/chemical_reaction/processor_punch + name = "Processor Punch" + id = "processor_punch" + result = "processor_punch" + required_reagents = list("tcp_sip" = 1, "dr_gibb" = 1, "icetea" = 1) + result_amount = 3 + mix_message = "The liquids combine into a cherry-brown mixture." + mix_sound = 'sound/goonstation/misc/drinkfizz.ogg' + +/datum/chemical_reaction/soft_reset + name = "Soft Reset" + id = "soft_reset" + result = "soft_reset" + required_reagents = list("degreaser" = 1, "sterilizine" = 1, "drying_agent" = 1, "cleaner" = 1) + result_amount = 4 + mix_message = "The solution swirls together in the container and doesn't stop swirling." diff --git a/code/modules/reagents/chemistry/recipes/others.dm b/code/modules/reagents/chemistry/recipes/others.dm index 9b7125d7c8c..ad5f6412815 100644 --- a/code/modules/reagents/chemistry/recipes/others.dm +++ b/code/modules/reagents/chemistry/recipes/others.dm @@ -642,3 +642,10 @@ return TRUE return FALSE +/datum/chemical_reaction/potass_chloride + name = "Potassium Chloride" + id = "potass_chloride" + result = "potass_chloride" + required_reagents = list("potassium" = 1, "chlorine" = 1) + result_amount = 2 + mix_message = "The solution crystallizes with a brief flare of light." diff --git a/icons/obj/drinks.dmi b/icons/obj/drinks.dmi index 04fd5367344..c57c0edc9da 100644 Binary files a/icons/obj/drinks.dmi and b/icons/obj/drinks.dmi differ