diff --git a/code/game/objects/items/weapons/manuals.dm b/code/game/objects/items/weapons/manuals.dm
index 492293b821e..6a3aaccfc7e 100644
--- a/code/game/objects/items/weapons/manuals.dm
+++ b/code/game/objects/items/weapons/manuals.dm
@@ -1026,7 +1026,7 @@
Trivial Soft 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 doesn't currently accept soft drinks, but if they did, they wouldn't like these.
+ 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!
Banana Honk:
Mix one part each of banana juice, cream, and sugar.
Cafe Latte:
@@ -1055,7 +1055,7 @@
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. Drinks marked with § are for synthetic customers only. Drinks marked with † are enjoyable for synthetic and organic customers alike.
+ You can make most of these drinks straight from your own dispensers. 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: §
@@ -1079,7 +1079,7 @@
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.
+ Mix one part each of TCP Sip, Dr. Gibb, and Iced Tea (Trivial Soft Drinks).
Rewriter:
Mix one part space mountain wind soda to one part coffee.
Roy Rogers:
@@ -1112,7 +1112,7 @@
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. Drinks marked with § are for synthetic customers only.
+ Most of these drinks require many steps or collaboration with other departments. 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: §
@@ -1159,7 +1159,7 @@
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. Drinks marked with § are for synthetic customers only.
+ These drinks require a significant amount of cross-department collaboration, many steps, or rare ingredients. 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:
diff --git a/code/modules/reagents/chemistry/reagents/drink_base.dm b/code/modules/reagents/chemistry/reagents/drink_base.dm
index 49795cfa3c3..c49d1a12dc4 100644
--- a/code/modules/reagents/chemistry/reagents/drink_base.dm
+++ b/code/modules/reagents/chemistry/reagents/drink_base.dm
@@ -1,13 +1,14 @@
/datum/reagent/consumable/drink
name = "Drink"
id = "drink"
- description = "Uh, some kind of drink."
+ description = ABSTRACT_TYPE_DESC
reagent_state = LIQUID
color = "#E78108" // rgb: 231, 129, 8
taste_description = "something which should not exist"
var/adj_dizzy = 0
var/adj_drowsy = 0
var/adj_sleepy = 0
+ goal_department = "Bar"
/datum/reagent/consumable/drink/on_mob_life(mob/living/M)
var/update_flags = STATUS_UPDATE_NONE
diff --git a/code/modules/reagents/chemistry/reagents/drinks_reagents.dm b/code/modules/reagents/chemistry/reagents/drinks_reagents.dm
index 684a924ae55..e341b0a93de 100644
--- a/code/modules/reagents/chemistry/reagents/drinks_reagents.dm
+++ b/code/modules/reagents/chemistry/reagents/drinks_reagents.dm
@@ -112,6 +112,7 @@
drink_name = "Doctor's Delight"
drink_desc = "A healthy mixture of juices, guaranteed to keep you healthy until the next toolboxing takes place."
taste_description = "healthy dietary choices"
+ goal_difficulty = REAGENT_GOAL_EASY
/datum/reagent/consumable/drink/doctor_delight/on_mob_life(mob/living/M)
var/update_flags = STATUS_UPDATE_NONE
@@ -295,6 +296,7 @@
drink_name = "Chocolate milk"
drink_desc = "Smells like childhood. What would they need to add to make it taste like childhood too?"
taste_description = "chocolate milk"
+ goal_difficulty = REAGENT_GOAL_NORMAL
/datum/reagent/consumable/drink/hot_coco
name = "Hot Chocolate"
@@ -363,6 +365,7 @@
drink_name = "Soy Latte"
drink_desc = "A nice and refrshing beverage while you are reading."
taste_description = "milkish coffee"
+ goal_difficulty = REAGENT_GOAL_EASY
/datum/reagent/consumable/drink/coffee/soy_latte/on_mob_life(mob/living/M)
var/update_flags = STATUS_UPDATE_NONE
@@ -408,6 +411,7 @@
drink_name = "Pumpkin Latte"
drink_desc = "A mix of coffee and pumpkin juice."
taste_description = "overpriced hipster spices"
+ goal_difficulty = REAGENT_GOAL_NORMAL
/datum/reagent/consumable/drink/tea
name = "Tea"
@@ -474,6 +478,7 @@
drink_name = "Silencer"
drink_desc = "A drink from mime Heaven."
taste_description = "mphhhh"
+ goal_difficulty = REAGENT_GOAL_EASY
/datum/reagent/consumable/drink/silencer/on_mob_life(mob/living/carbon/human/M)
var/update_flags = STATUS_UPDATE_NONE
@@ -492,6 +497,7 @@
drink_name = "Chocolate Pudding"
drink_desc = "A decadent chocolate dessert, in drinkable form."
taste_description = "chocolate"
+ goal_difficulty = REAGENT_GOAL_NORMAL
/datum/reagent/consumable/drink/vanillapudding
name = "Vanilla Pudding"
@@ -503,6 +509,7 @@
drink_name = "Vanilla Pudding"
drink_desc = "A rich vanilla dessert, in drinkable form."
taste_description = "vanilla"
+ goal_difficulty = REAGENT_GOAL_NORMAL
/datum/reagent/consumable/drink/cherryshake
name = "Cherry Shake"
@@ -514,6 +521,7 @@
drink_name = "Cherry Shake"
drink_desc = "A cherry flavored milkshake."
taste_description = "cherry milkshake"
+ goal_difficulty = REAGENT_GOAL_NORMAL
/datum/reagent/consumable/drink/bluecherryshake
name = "Blue Cherry Shake"
@@ -525,6 +533,7 @@
drink_name = "Blue Cherry Shake"
drink_desc = "An exotic blue milkshake."
taste_description = "blues"
+ goal_difficulty = REAGENT_GOAL_HARD
/datum/reagent/consumable/drink/gibbfloats
name = "Gibb Floats"
@@ -536,6 +545,7 @@
drink_name = "Gibbfloat"
drink_desc = "Dr. Gibb with ice cream on top."
taste_description = "taste revolution"
+ goal_difficulty = REAGENT_GOAL_EASY
/datum/reagent/consumable/drink/pumpkinjuice
name = "Pumpkin Juice"
@@ -573,6 +583,7 @@
drink_name = "Iced Cocoa"
drink_desc = "A sweeter drink to perk you up and refresh you!"
taste_description = "refreshingly cold cocoa"
+ goal_difficulty = REAGENT_GOAL_EASY
/datum/reagent/consumable/drink/tonic
name = "Tonic Water"
@@ -636,6 +647,7 @@
drink_desc = "Don't cry, Don't raise your eye, It's only nuclear wasteland."
harmless = FALSE
taste_description = "radioactive cola"
+ goal_difficulty = REAGENT_GOAL_HARD
/datum/reagent/consumable/drink/nuka_cola/on_mob_life(mob/living/M)
var/update_flags = STATUS_UPDATE_NONE
@@ -699,6 +711,7 @@
drink_name = "Lemonade"
drink_desc = "Oh the nostalgia..."
taste_description = "lemonade"
+ goal_difficulty = REAGENT_GOAL_EASY
/datum/reagent/consumable/drink/kiraspecial
name = "Kira Special"
@@ -709,6 +722,7 @@
drink_name = "Kira Special"
drink_desc = "Long live the guy who everyone had mistaken for a girl. Baka!"
taste_description = "citrus soda"
+ goal_difficulty = REAGENT_GOAL_EASY
/datum/reagent/consumable/drink/brownstar
name = "Brown Star"
@@ -719,6 +733,7 @@
drink_name = "Brown Star"
drink_desc = "Its not what it sounds like..."
taste_description = "orange soda"
+ goal_difficulty = REAGENT_GOAL_EASY
/datum/reagent/consumable/drink/milkshake
name = "Milkshake"
@@ -739,6 +754,7 @@
drink_name = "Rewriter"
drink_desc = "The secret of the sanctuary of the Librarian..."
taste_description = "coffee...soda?"
+ goal_difficulty = REAGENT_GOAL_EASY
/datum/reagent/consumable/drink/rewriter/on_mob_life(mob/living/M)
M.Jitter(10 SECONDS)
@@ -753,6 +769,7 @@
drink_name = "Arnold Palmer"
drink_desc = "A wholesome mixture of lemonade and iced tea... looks like somebody didn't stir this one very well."
taste_description = "sweet and fizzy"
+ goal_difficulty = REAGENT_GOAL_NORMAL
/datum/reagent/consumable/drink/fyrsskar_tears
name = "Tears of Fyrsskar"
@@ -765,6 +782,7 @@
taste_description = "plasma"
var/alcohol_perc = 0.05
var/dizzy_adj = 6 SECONDS
+ goal_difficulty = REAGENT_GOAL_NORMAL
/datum/reagent/consumable/drink/fyrsskar_tears/on_mob_add(mob/living/M)
if(isskrell(M))
@@ -806,6 +824,7 @@
drink_name = "Lean"
drink_desc = "Also known as Purple Drank."
taste_description = "sweet druggy soda"
+ goal_difficulty = REAGENT_GOAL_HARD
/datum/reagent/consumable/drink/melonade
name = "Melonade"
@@ -816,6 +835,7 @@
drink_name = "Tall Glass of Melonade"
drink_desc = "This would go great with 147 fluffity puffity marshalays."
taste_description = "summer fruit"
+ goal_difficulty = REAGENT_GOAL_EASY
/datum/reagent/consumable/drink/melonade/on_mob_life(mob/living/M)
if(M.satiety < 600)
@@ -841,6 +861,7 @@
drink_name = "Bubble Tea"
drink_desc = "You feel trendy for drinking this."
taste_description = "sweet tea with chewy pearls"
+ goal_difficulty = REAGENT_GOAL_NORMAL
/datum/reagent/consumable/drink/milktea
name = "Milk Tea"
@@ -851,6 +872,7 @@
drink_name = "Milk Tea"
drink_desc = "A refreshing and sweet beverage."
taste_description = "sweet milky tea"
+ goal_difficulty = REAGENT_GOAL_EASY
/datum/reagent/consumable/drink/bubblemilktea
name = "Bubble Milk Tea"
@@ -861,6 +883,7 @@
drink_name = "Bubble Milk Tea"
drink_desc = "You feel extra trendy for drinking this."
taste_description = "sweet milky tea with chewy pearls"
+ goal_difficulty = REAGENT_GOAL_NORMAL
/datum/reagent/consumable/drink/royrogers
name = "Roy Rogers"
@@ -871,6 +894,7 @@
drink_name = "Roy Rogers"
drink_desc = "The rootinest, tootinest drink you can get at the bar without any alcohol."
taste_description = "berries and cola"
+ goal_difficulty = REAGENT_GOAL_EASY
/datum/reagent/consumable/drink/shirleytemple
name = "Shirley Temple"
@@ -881,6 +905,7 @@
drink_name = "Shirley Temple"
drink_desc = "A soft drink classic with a cherry on top."
taste_description = "berries and carbonation"
+ goal_difficulty = REAGENT_GOAL_EASY
/datum/reagent/consumable/drink/partypunch
name = "Party Punch"
@@ -891,6 +916,7 @@
drink_name = "Glass of Party Punch"
drink_desc = "A vibrant mix of fruit juices. A real punch of flavor."
taste_description = "a punch of fruit"
+ goal_difficulty = REAGENT_GOAL_EASY
/datum/reagent/consumable/drink/coffee/eggcoffee
name = "Egg Coffee"
@@ -901,6 +927,7 @@
drink_name = "Glass Mug of Egg Coffee"
drink_desc = "Rich coffee with custard foam."
taste_description = "rich foam"
+ goal_difficulty = REAGENT_GOAL_NORMAL
/datum/reagent/consumable/drink/coffee/eggcoffee/on_mob_life(mob/living/M)
if(prob(3))
@@ -916,6 +943,7 @@
drink_name = "Glass of Horchata"
drink_desc = "Sweetened rice milk topped with cinnamon."
taste_description = "cinnamony rice milk"
+ goal_difficulty = REAGENT_GOAL_NORMAL
/datum/reagent/consumable/drink/monstermix
name = "Monster Mix"
@@ -926,6 +954,7 @@
drink_name = "Glass of Monster Mix"
drink_desc = "A mix of every soda in the dispenser. You monster."
taste_description = "an unholy amalgam"
+ goal_difficulty = REAGENT_GOAL_EASY
/datum/reagent/consumable/drink/spessamatosmash
name = "Spessamato Smash"
@@ -936,6 +965,7 @@
drink_name = "Glass of Spessamato Smash"
drink_desc = "Fruity yet salty."
taste_description = "sparkling tomato"
+ goal_difficulty = REAGENT_GOAL_EASY
/datum/reagent/consumable/drink/eggcream
name = "Egg Cream"
@@ -946,6 +976,7 @@
drink_name = "Glass of Egg Cream"
drink_desc = "You now have a glass of custard."
taste_description = "sweet egg"
+ goal_difficulty = REAGENT_GOAL_NORMAL
/datum/reagent/consumable/drink/eggcream/on_mob_life(mob/living/M)
if(prob(2))
@@ -961,6 +992,7 @@
drink_name = "Glass of Beet Shrub"
drink_desc = "The vinegar gives this far more bite than any ordinary person would drink straight."
taste_description = "vinegar"
+ goal_difficulty = REAGENT_GOAL_HARD
/datum/reagent/consumable/drink/berrybeetrefresher
name = "Berry Beet Refresher"
@@ -971,10 +1003,10 @@
drink_name = "Glass of Berry Beet Refresher"
drink_desc = "Tangy, sweet, with just a bit of bite."
taste_description = "tangy, bubbly fruit"
+ goal_difficulty = REAGENT_GOAL_HARD
/datum/reagent/consumable/drink/smoothie
name = "Empty Smoothie"
- description = ABSTRACT_TYPE_DESC
id = "smoothie"
color = "#9933FF"
nutriment_factor = 4 * REAGENTS_METABOLISM
@@ -996,6 +1028,7 @@
drink_name = "Glass of PB Banana Smoothie"
drink_desc = "So smooth and fluffy."
taste_description = "nutty banana"
+ goal_difficulty = REAGENT_GOAL_NORMAL
/datum/reagent/consumable/drink/smoothie/veryberry
name = "Very Berry Smoothie"
@@ -1006,6 +1039,7 @@
drink_name = "Glass of Very Berry Smoothie"
drink_desc = "Berries give this creamy beverage its speckled appearance."
taste_description = "berries and cream"
+ goal_difficulty = REAGENT_GOAL_NORMAL
/datum/reagent/consumable/drink/vegetablemix
name = "Vegetable Juice Mix"
@@ -1016,6 +1050,7 @@
drink_name = "Glass of Vegetable Juice"
drink_desc = "Mellow and creamy vegetable juice."
taste_description = "so many vitamins"
+ goal_difficulty = REAGENT_GOAL_HARD
/datum/reagent/consumable/drink/vegetablemix/on_mob_life(mob/living/M)
var/update_flags = STATUS_UPDATE_NONE
@@ -1072,6 +1107,7 @@
drink_name = "Glass of Top-Up"
drink_desc = "A sports drink for the busy spessman."
taste_description = "lemony lectrolytes"
+ goal_difficulty = REAGENT_GOAL_EASY
/datum/reagent/consumable/drink/electrolytes/zero_day
name = "Zero Day"
@@ -1083,6 +1119,7 @@
drink_desc = "A data breach in a glass."
taste_description = "half-emptiness"
COOLDOWN_DECLARE(drip_cooldown)
+ goal_difficulty = REAGENT_GOAL_EASY
/datum/reagent/consumable/drink/electrolytes/zero_day/on_new(data)
..()
@@ -1122,6 +1159,7 @@
drink_name = "Glass of TCP Sip"
drink_desc = "A non-synthanolic refreshment for synthetics."
taste_description = "half-emptiness"
+ goal_difficulty = REAGENT_GOAL_EASY
/datum/reagent/consumable/drink/electrolytes/tcp_sip/on_mob_life(mob/living/M)
metabolization_rate = REAGENTS_METABOLISM
@@ -1162,6 +1200,7 @@
drink_name = "Glass of Electrocharge"
drink_desc = "A real charge-up for synthetics."
taste_description = "a full battery"
+ goal_difficulty = REAGENT_GOAL_HARD
COOLDOWN_DECLARE(drink_message_cooldown)
COOLDOWN_DECLARE(drink_overcharge_cooldown)
@@ -1200,6 +1239,7 @@
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"
+ goal_difficulty = REAGENT_GOAL_NORMAL
/datum/reagent/consumable/drink/electrolytes/tcp_sip/processor_punch
name = "Processor Punch"
@@ -1220,6 +1260,7 @@
drink_name = "Glass of Bubbly Beep"
drink_desc = "The cleanest, bubbliest drink on the station."
taste_description = "decontamination"
+ goal_difficulty = REAGENT_GOAL_NORMAL
process_flags = SYNTHETIC | ORGANIC
/datum/reagent/consumable/drink/bubbly_beep/on_mob_life(mob/living/M)
@@ -1247,6 +1288,7 @@
drink_name = "Glass of Tin and Tonic"
drink_desc = "A good sip for a synthetic curious about quinine."
taste_description = "smoothly-running processors"
+ goal_difficulty = REAGENT_GOAL_NORMAL
process_flags = SYNTHETIC | ORGANIC
/datum/reagent/consumable/drink/tin_and_tonic/on_mob_life(mob/living/M)
@@ -1267,6 +1309,7 @@
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"
+ goal_difficulty = REAGENT_GOAL_HARD
process_flags = SYNTHETIC | ORGANIC
/datum/reagent/consumable/drink/salt_and_battery/on_mob_life(mob/living/M)
@@ -1307,6 +1350,7 @@
drink_name = "Glass of Soft Reset"
drink_desc = "Have you tried turning it off and back on again?"
taste_description = "a little reboot"
+ goal_difficulty = REAGENT_GOAL_HARD
process_flags = SYNTHETIC | ORGANIC
COOLDOWN_DECLARE(reboot_cooldown)
diff --git a/code/modules/station_goals/secondary/bar/variety_drinks.dm b/code/modules/station_goals/secondary/bar/variety_drinks.dm
index 31582df2d4d..8ed98ca26ca 100644
--- a/code/modules/station_goals/secondary/bar/variety_drinks.dm
+++ b/code/modules/station_goals/secondary/bar/variety_drinks.dm
@@ -2,9 +2,58 @@
name = "Variety of Drinks"
department = "Bar"
generic_name_plural = "alcoholic drinks"
+ progress_type = /datum/secondary_goal_progress/variety_reagent/bar
weight = 1
/datum/station_goal/secondary/variety_reagent/bar/randomize_params()
..()
+ generic_name_plural = pick("soft drinks", "alcoholic drinks")
department_account = GLOB.station_money_database.get_account_by_department(DEPARTMENT_SERVICE)
- report_message = "We're hosting a party, and need a variety of alcoholic drinks. Send us at least [amount_per] units each of [different_types] different ones. Keep them separate, and don't include anything too simple; we have our own booze dispenser."
+ report_message = "We're hosting a party, and need a variety of [generic_name_plural]. Send us at least [amount_per] units each of [different_types] different ones. Keep them separate, and don't include anything too simple; we have our own dispensers."
+
+/datum/secondary_goal_progress/variety_reagent/bar/update(atom/movable/AM, datum/economy/cargo_shuttle_manifest/manifest = null)
+ // Not properly labeled for this goal? Ignore.
+ if(!check_goal_label(AM))
+ return
+
+ // No reagents? Ignore.
+ if(!length(AM.reagents?.reagent_list))
+ return
+
+ var/datum/reagent/reagent = AM.reagents.get_master_reagent()
+
+ // Make sure it's for our department.
+ if(!reagent || reagent.goal_department != department)
+ return
+
+ // Isolated reagents only, please.
+ // This goes here because I want it checked before alcoholic drinks, to head off people adding alcohol to soft drinks.
+ if(length(AM.reagents.reagent_list) != 1)
+ return ..()
+
+ // Make sure it's the right kind
+ if(istype(reagent, /datum/reagent/consumable/ethanol/) && generic_name_plural == "soft drinks")
+ if(!manifest)
+ return COMSIG_CARGO_SELL_WRONG
+ SSblackbox.record_feedback("nested tally", "secondary goals", 1, list(goal_name, "wrong reagents type"))
+ var/datum/economy/line_item/item = new
+ item.account = department_account
+ item.credits = 0
+ item.reason = "That [reagent.name] seems to be alcoholic. Send soft drinks only, please!"
+ item.requests_console_department = department
+ manifest.line_items += item
+ return COMSIG_CARGO_SELL_WRONG
+
+ if(!istype(reagent, /datum/reagent/consumable/ethanol/) && generic_name_plural == "alcoholic drinks")
+ if(!manifest)
+ return COMSIG_CARGO_SELL_WRONG
+ SSblackbox.record_feedback("nested tally", "secondary goals", 1, list(goal_name, "wrong reagents type"))
+ var/datum/economy/line_item/item = new
+ item.account = department_account
+ item.credits = 0
+ item.reason = "That [reagent.name] isn't any alcoholic drink I've heard of. Send hard drinks only, please!"
+ item.requests_console_department = department
+ manifest.line_items += item
+ return COMSIG_CARGO_SELL_WRONG
+
+ return ..()