Add soft drinks to bar secondary goals. (#31100)

* Add soft drinks to bar secondary goals.

* Thanks, linters!

* Update bar manual to reflect that procurement will accept soft drinks.

* Add drink difficulties to synthetic soft drinks.
Amend bar manual.

* Thanks, linters!
This commit is contained in:
Alan
2025-12-03 18:31:30 +00:00
committed by GitHub
parent 2f030bd8e7
commit c7ac9f1037
4 changed files with 102 additions and 8 deletions
@@ -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
@@ -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)
@@ -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 ..()