mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-07-12 07:33:34 +01:00
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:
@@ -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."
|
||||
|
||||
Reference in New Issue
Block a user