Add 23 new drinks; update bar manual. (#31026)

* Add 23 new drinks; update bar manual.
- Add three new drinks that use the beet shrub and their effects
- Add nine new synthanolic drinks and their effects
- Add two new soft drinks for both synthetic and organic customers, and their effects
- Add 10 new soft drinks for synthetic customers and their effects
- Add decals for reagent splashes and drips
- Update bar manual to include these drinks as well as all other mixed drinks currently on the wiki
- Add new sprite for welding fuel in a glass to reflect the liquid's color instead of Dr. Gibb
- Add chemistry recipes to mix electrolytes
- Change Robot Tears' drink difficulty to easy, to reflect the loss of ubiquitous oil tanks
- Add many, many puns, both visual and in written text

* Thanks, linters!

* Thanks, linters! (part 2)

* Thanks, linters! (part 3)

* Incorporate review suggestions.
- Add reagents to the zero day drips
- Rewrite many if statements to be early returns/continues
- Use nutrition defines
- Make hard and soft reset also purge themselves (my choice)

* Update dryer martini sprite to match proposal #31050

* Incorporate review suggestions.
- Remove reagents, weren't needed.
- Make sure basecolor is applied.
- Convert more if-blocks to early returns.
- Adjust spacing in function calls to match standard.

* Implement whitespace suggestions from review.
This commit is contained in:
Alan
2025-11-26 16:24:06 -05:00
committed by GitHub
parent ae642762fc
commit b29d968148
11 changed files with 849 additions and 19 deletions
@@ -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
+54 -8
View File
@@ -772,7 +772,7 @@
</head>
<body>
<h1>Trivial Alcoholic Drinks</h1>
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!
<h2>Brave Bull:</h2>
Mix two parts tequila to one part kahlua.
<h2>Goldschlager:</h2>
@@ -785,8 +785,6 @@
Mix two parts whiskey to one part vermouth.
<h2>Patron:</h2>
Mix 10 parts tequila to one part silver.
<h2>Robot Tears: §</h2>
Mix one part each of synthanol, soda water, and oil. Chemistry can help.
<h2>Synthignon:</h2>
Mix one part synthanol to one part wine.
<br><br><a href='byond://?src=[UID()];seek_page=1'>Back to Table of Contents</a>
@@ -824,12 +822,16 @@
Mix three parts vodka to two parts kahlua.
<h2>Bloody Mary:</h2>
Mix two parts tomato juice to one part each of vodka and lime juice.
<h2>Bluescreen: §</h2>
Mix one part each of synthanol, welding fuel, Goldschlager (<a href='byond://?src=[UID()];seek_page=3'>Trivial Alcoholic Drinks</a>), tonic, and water. You might find a fuel tank in the maintenance tunnels.
<h2>Booger:</h2>
Mix one part each of cream, banana juice, rum, and watermelon juice.
<h2>Changeling Sting:</h2>
Mix one part each of lime juice, lemon juice, and Screwdriver.
<h2>Classic Martini:</h2>
Mix two parts gin to one part vermouth.
<h2>CSV: §</h2>
Mix one part each of cognac, synthanol, and vodka.
<h2>Cuba Libre:</h2>
Mix two parts each rum and cola to one part lime juice.
<h2>Daiquiri:</h2>
@@ -870,6 +872,10 @@
Mix one part each of gin, vodka, whiskey, cognac, and lime juice.
<h2>Piña Colada:</h2>
Mix three parts rum to two parts pineapple juice and one part cream.
<h2>Robot Tears: §</h2>
Mix one part each of synthanol, soda water, and oil. Chemistry can help.
<h2>Runtime: §</h2>
Mix three parts Screwdriver to one part synthanol.
<h2>Screwdriver:</h2>
Mix two parts vodka to one part orange juice.
<h2>Servo: §</h2>
@@ -912,7 +918,7 @@
</head>
<body>
<h1>Intermediate Alcoholic Drinks</h1>
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.
<h2>Acid Dreams: (a Grey favorite!)</h2>
Mix one part each of Pan-Galactic Gargle Blaster (<a href='byond://?src=[UID()];seek_page=4'>Easy Alcoholic Drinks</a>), sulphuric acid, and sugar. Chemistry can help.
<h2>Acid Spit:</h2>
@@ -925,12 +931,16 @@
Cool two parts cider to 270K. Chemistry can help.
<h2>Beepsky Smash:</h2>
Mix two parts each lime juice and whiskey to one part iron. Chemistry or Cargo can help.
<h2>Burnout: §</h2>
Mix one part synthanol to one part acetone. Heat to 375K. Chemistry can help.
<h2>Die Seife: (a Drask favorite!)</h2>
Mix one part each of lye, whiskey, and Iced Beer (<a href='byond://?src=[UID()];seek_page=3'>Trivial Alcoholic Drinks</a>). Chemistry can help.
<h2>Diona Smash: (a Kidan favorite!)</h2>
Mix four parts nutriment to two parts each of sugar and gin. The Kitchen or Botany can help.
<h2>Drunken Blumpkin:</h2>
Mix one part each of blumpkin juice, Irish Cream (<a href='byond://?src=[UID()];seek_page=3'>Trivial Alcoholic Drinks</a>), and ice. Botany can help.
<h2>Dryer Martini: §</h2>
Mix two parts synthanol to one part drying agent. Chemistry can help.
<h2>Feast by the Beach: (an Unathi favorite!)</h2>
Mix one part each of vodka, lime juice, grape juice, and silicon. Heat above 373K. Chemistry can help.
<h2>Flaming Moe:</h2>
@@ -951,6 +961,8 @@
Mix 10 parts vodka to one part capsaicin. The Xenobiologist can help.
<h2>Singulo:</h2>
Mix five parts each of vodka and wine to one part radium. Chemistry can help.
<h2>Stack Trace: §</h2>
Mix one part Rewriter (<a href='byond://?src=[UID()];seek_page=8'>Easy Soft Drinks</a>) to one part Runtime (<a href='byond://?src=[UID()];seek_page=4'>Easy Alcoholic Drinks</a>).
<h2>Suicider:</h2>
Mix one part each of cider, vodka, welding fuel, and epinephrine. Chemistry or Medical can help.
<h2>Toxins Special:</h2>
@@ -967,7 +979,7 @@
</head>
<body>
<h1>Hard Alcoholic Drinks</h1>
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.
<h2>Adminfreeze:</h2>
Mix one part each of Neuro-toxin (<a href='byond://?src=[UID()];seek_page=5'>Intermediate Alcoholic Drinks</a>), Toxins Special (<a href='byond://?src=[UID()];seek_page=5'>Intermediate Alcoholic Drinks</a>), fernet, Moonshine (<a href='byond://?src=[UID()];seek_page=5'>Intermediate Alcoholic Drinks</a>), and morphine. Heat to 374K. Medical or Cargo can help.
<h2>Atomic Bomb:</h2>
@@ -976,14 +988,24 @@
Mix one part each of Hooch (<a href='byond://?src=[UID()];seek_page=5'>Intermediate Alcoholic Drinks</a>), absinthe, The Manly Dorf (<a href='byond://?src=[UID()];seek_page=4'>Easy Alcoholic Drinks</a>), and Syndicate Bomb (<a href='byond://?src=[UID()];seek_page=4'>Easy Alcoholic Drinks</a>).
<h2>Eggnog:</h2>
Mix five parts each of cream, egg, and rum. The Kitchen or Botany can help.
<h2>Gear Grinder: §</h2>
Mix one part Beet Shrub (<a href='byond://?src=[UID()];seek_page=10'>Hard Soft Drinks</a>) to one part Robot Tears (<a href='byond://?src=[UID()];seek_page=4'>Easy Alcoholic Drinks</a>).
<h2>GFS:</h2>
Mix one part each of gin, fernet, and Beet Shrub (<a href='byond://?src=[UID()];seek_page=10'>Hard Soft Drinks</a>).
<h2>Gin and Sonic:</h2>
Mix one part Gin and Tonic (<a href='byond://?src=[UID()];seek_page=4'>Easy Alcoholic Drinks</a>) to one part methamphetamine. Chemistry can help.
<h2>Hard Reset: §</h2>
Mix one part Soft Reset (<a href='byond://?src=[UID()];seek_page=10'>Hard Soft Drinks</a>) to one part Bluescreen (<a href='byond://?src=[UID()];seek_page=4'>Easy Alcoholic Drinks</a>).
<h2>Hippie's Delight:</h2>
Mix one part each of psilocybin and Pan-Galactic Gargle Blaster (<a href='byond://?src=[UID()];seek_page=4'>Easy Alcoholic Drinks</a>). Botany can help.
<h2>It's Overclock Somewhere: §</h2>
Mix one part each of ultra lube, oil, and synthanol. Chemistry can help.
<h2>Manhattan Project:</h2>
Mix 10 parts Manhattan (<a href='byond://?src=[UID()];seek_page=3'>Trivial Alcoholic Drinks</a>) to one part uranium. Cargo can help.
<h2>Red Mead:</h2>
Mix one part mead to one part blood. Medical or Botany can help.
<h2>Shrub Julep:</h2>
Mix two parts whiskey to one part each of mint, Beet Shrub (<a href='byond://?src=[UID()];seek_page=10'>Hard Soft Drinks</a>), and ice. Botany or the Kitchen can help.
<h2>Slime Mold: (a Slime People favorite!)</h2>
Mix two parts each of Booger (<a href='byond://?src=[UID()];seek_page=4'>Easy Alcoholic Drinks</a>) and slime jelly to one part egg. Medical, Xenobiology, or the Kitchen can help.
<h2>Sontse: (a Nian favorite!)</h2>
@@ -1033,11 +1055,15 @@
</head>
<body>
<h1>Easy Soft Drinks</h1>
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.
<h2>Brown Star:</h2>
Mix two parts orange juice to one part cola.
<h2>Cog-a-Cola: §</h2>
Mix one part TCP Sip to one part cola.
<h2>Gibb Floats:</h2>
Mix five parts each of cream, Dr. Gibb, and ice.
<h2>Ginger Beep: §</h2>
Mix one part TCP Sip to one part ginger ale.
<h2>Iced Coco:</h2>
Mix three parts hot chocolate to one part ice.
<h2>Kira Special:</h2>
@@ -1050,6 +1076,8 @@
Mix one part each of soda water, Dr. Gibb, space mountain wind soda, space-up, cola, and ice.
<h2>Party Punch:</h2>
Mix two parts soda water to one part each of Triple Citrus (<a href='byond://?src=[UID()];seek_page=7'>Trivial Soft Drinks</a>), banana juice, berry juice, pineapple juice, watermelon juice, and grape juice.
<h2>Processor Punch: §</h2>
Mix one part each of TCP Sip, Dr. Gibb, and iced tea.
<h2>Rewriter:</h2>
Mix one part space mountain wind soda to one part coffee.
<h2>Roy Rogers:</h2>
@@ -1062,8 +1090,14 @@
Mix one part coffee to one part soy milk.
<h2>Spessamato Smash:</h2>
Mix one part tomato juice to one part space-up.
<h2>TCP Sip: §</h2>
Mix one part electrolytes to one part welding fuel. You can likely find a fuel tank in the maintenance tunnels.
<h2>The Doctor's Delight:</h2>
Mix one part each of lime juice, tomato juice, orange juice, and cream.
<h2>Top-Up: †</h2>
Mix one part electrolytes to one part space-up.
<h2>Zero Day: †</h2>
Mix one part electrolytes to one part nothing.
<br><br><a href='byond://?src=[UID()];seek_page=1'>Back to Table of Contents</a>
</body>
</html>
@@ -1076,9 +1110,13 @@
</head>
<body>
<h1>Intermediate Soft Drinks</h1>
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.
<h2>Arnold Palmer:</h2>
Mix one part Lemonade (<a href='byond://?src=[UID()];seek_page=8'>Easy Soft Drinks</a>) to one part Iced Tea (<a href='byond://?src=[UID()];seek_page=7'>Trivial Soft Drinks</a>).
<h2>Battery Acid: §</h2>
Mix one part TCP Sip (<a href='byond://?src=[UID()];seek_page=8'>Easy Soft Drinks</a>) to one part Triple Citrus (<a href='byond://?src=[UID()];seek_page=7'>Trivial Soft Drinks</a>).
<h2>Bubbly Beep: §</h2>
Mix one part space cleaner to one part soda water. Custodial or Chemistry can help.
<h2>Cherry Shake:</h2>
Mix one part each of cherry jelly, cream, and ice. Botany or the Kitchen can help.
<h2>Chocolate Milk:</h2>
@@ -1097,6 +1135,8 @@
Mix five parts each of coffee, cream, and pumpkin juice. Botany can help.
<h2>Tears of Fyrsskar:</h2>
Mix one part each of plasma, oxygen, and Triple Citrus (<a href='byond://?src=[UID()];seek_page=7'>Trivial Soft Drinks</a>). Chemistry can help.
<h2>Tin and Tonic: §</h2>
Mix one part liquid solder to one part tonic water. Chemistry can help.
<h2>Vanilla Pudding:</h2>
Mix five parts each of egg, coffee, and vanilla powder. Botany or the Kitchen can help.
<h2>Very Berry Smoothie:</h2>
@@ -1113,17 +1153,23 @@
</head>
<body>
<h1>Hard Soft Drinks</h1>
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.
<h2>Beet Shrub:</h2>
Mix two parts beet juice to one part each of vinegar and corn syrup. Heat to 375K. Botany or the Kitchen can help.
<h2>Berry Beet Refresher:</h2>
Mix four parts soda water, three parts ice, and one part each of Beet Shrub, berry juice, and lime juice.
<h2>Blue Cherry Shake:</h2>
Mix one part each of blue cherry jelly, cream, and ice. Botany can help.
<h2>Electrocharge: §</h2>
Mix three parts TCP Sip (<a href='byond://?src=[UID()];seek_page=8'>Easy Soft Drinks</a>) to one part each of copper and silver. Chemistry or Cargo can help.
<h2>Lean:</h2>
Mix one part each of space drugs, soda water, and grape juice. Chemistry can help.
<h2>Nuka Cola:</h2>
Mix six parts cola to one part uranium. Cargo can help.
<h2>Salt and Battery: §</h2>
Mix one part electrolytes to one part conductive lube. Chemistry can help.
<h2>Soft Reset: §</h2>
Mix one part each of degreaser, sterilizine, drying agent, and space cleaner. Chemistry, Custodial, or Virology can help.
<h2>Vegetable Juice Mix:</h2>
Mix one part each of tomato juice, carrot juice, beet juice, and lettuce juice. Botany can help.
<br><br><a href='byond://?src=[UID()];seek_page=1'>Back to Table of Contents</a>
@@ -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)
@@ -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, "<span class='notice'>Your systems prepare for a reboot.</span>")
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, "<span class='warning'>[bluescreen_message]</span>")
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, "<span class='userdanger'>[burn_message]</span>")
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"
@@ -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(
"<span class='notice'>[M] lets off a few sparks.</span>",
"<span class='notice'>You feel a little <i>too</i> charged up.</span>",
"<span class='notice'>Something fizzles nearby.</span>"
)
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, "<span class='notice'>You feel relief surging through your wires!</span>")
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, "<span class='notice'>The foam cleans you as it bubbles through your components.</span>")
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(
"<span class='notice'>[M] is battered by an unseen assailant!</span>",
"<span class='notice'>The beverage [beat_verbs] you!</span>",
"<span class='warning'>You hear empty punches against metal!</span>"
)
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, "<span class='notice'>Your systems prepare for a reboot.</span>")
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 ..()
@@ -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"
@@ -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)
@@ -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"
@@ -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."
@@ -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."
Binary file not shown.

Before

Width:  |  Height:  |  Size: 106 KiB

After

Width:  |  Height:  |  Size: 110 KiB