diff --git a/code/game/machinery/vending_types.dm b/code/game/machinery/vending_types.dm index 40c16202abe..cc936d3c3fe 100644 --- a/code/game/machinery/vending_types.dm +++ b/code/game/machinery/vending_types.dm @@ -49,56 +49,56 @@ icon_deny = "boozeomat-deny" vend_id = "booze" products = list( - /obj/item/reagent_containers/food/drinks/bottle/gin = 5, - /obj/item/reagent_containers/food/drinks/bottle/whiskey = 5, - /obj/item/reagent_containers/food/drinks/bottle/fireball = 2, + /obj/item/reagent_containers/food/drinks/bottle/bitters = 6, + /obj/item/reagent_containers/food/drinks/bottle/boukha = 2, + /obj/item/reagent_containers/food/drinks/bottle/brandy = 4, + /obj/item/reagent_containers/food/drinks/bottle/grenadine = 5, /obj/item/reagent_containers/food/drinks/bottle/tequilla = 5, - /obj/item/reagent_containers/food/drinks/bottle/champagne = 5, - /obj/item/reagent_containers/food/drinks/bottle/vodka = 5, - /obj/item/reagent_containers/food/drinks/bottle/vermouth = 5, /obj/item/reagent_containers/food/drinks/bottle/rum = 5, + /obj/item/reagent_containers/food/drinks/bottle/cognac = 5, + /obj/item/reagent_containers/food/drinks/bottle/cremeyvette = 4, /obj/item/reagent_containers/food/drinks/bottle/wine = 5, /obj/item/reagent_containers/food/drinks/bottle/whitewine = 5, - /obj/item/reagent_containers/food/drinks/bottle/cognac = 5, + /obj/item/reagent_containers/food/drinks/bottle/drambuie = 4, + /obj/item/reagent_containers/food/drinks/bottle/melonliquor = 2, + /obj/item/reagent_containers/food/drinks/bottle/gin = 5, + /obj/item/reagent_containers/food/drinks/bottle/vermouth = 5, + /obj/item/reagent_containers/food/drinks/bottle/chartreusegreen = 5, + /obj/item/reagent_containers/food/drinks/bottle/guinness = 4, + /obj/item/reagent_containers/food/drinks/bottle/absinthe = 2, + /obj/item/reagent_containers/food/drinks/bottle/bluecuracao = 2, /obj/item/reagent_containers/food/drinks/bottle/kahlua = 5, + /obj/item/reagent_containers/food/drinks/bottle/sarezhiwine = 2, + /obj/item/reagent_containers/food/drinks/bottle/champagne = 5, + /obj/item/reagent_containers/food/drinks/bottle/vodka = 5, + /obj/item/reagent_containers/food/drinks/bottle/fireball = 2, + /obj/item/reagent_containers/food/drinks/bottle/whiskey = 5, /obj/item/reagent_containers/food/drinks/bottle/victorygin = 2, - /obj/item/reagent_containers/food/drinks/bottle/boukha = 2, - /obj/item/reagent_containers/food/drinks/bottle/small/beer = 6, + /obj/item/reagent_containers/food/drinks/bottle/cremewhite = 4, + /obj/item/reagent_containers/food/drinks/bottle/mintsyrup = 5, + /obj/item/reagent_containers/food/drinks/bottle/chartreuseyellow =5, /obj/item/reagent_containers/food/drinks/bottle/small/ale = 6, - /obj/item/reagent_containers/food/drinks/bottle/carton/orangejuice = 4, - /obj/item/reagent_containers/food/drinks/bottle/carton/applejuice = 4, - /obj/item/reagent_containers/food/drinks/bottle/carton/tomatojuice = 4, - /obj/item/reagent_containers/food/drinks/bottle/carton/limejuice = 4, - /obj/item/reagent_containers/food/drinks/bottle/carton/lemonjuice = 4, - /obj/item/reagent_containers/food/drinks/bottle/carton/dynjuice = 4, - /obj/item/reagent_containers/food/drinks/cans/grape_juice = 6, - /obj/item/reagent_containers/food/drinks/bottle/carton/cream = 4, - /obj/item/reagent_containers/food/drinks/cans/tonic = 8, + /obj/item/reagent_containers/food/drinks/bottle/small/beer = 6, + /obj/item/reagent_containers/food/drinks/bottle/small/xuizijuice = 8, /obj/item/reagent_containers/food/drinks/bottle/cola = 5, - /obj/item/reagent_containers/food/drinks/bottle/space_up = 5, /obj/item/reagent_containers/food/drinks/bottle/space_mountain_wind = 5, + /obj/item/reagent_containers/food/drinks/bottle/space_up = 5, + /obj/item/reagent_containers/food/drinks/cans/adhomai_milk = 2, + /obj/item/reagent_containers/food/drinks/cans/grape_juice = 6, + /obj/item/reagent_containers/food/drinks/cans/beetle_milk = 2, /obj/item/reagent_containers/food/drinks/cans/sodawater = 15, + /obj/item/reagent_containers/food/drinks/cans/tonic = 8, + /obj/item/reagent_containers/food/drinks/carton/applejuice = 4, + /obj/item/reagent_containers/food/drinks/carton/cream = 4, + /obj/item/reagent_containers/food/drinks/carton/dynjuice = 4, + /obj/item/reagent_containers/food/drinks/carton/limejuice = 4, + /obj/item/reagent_containers/food/drinks/carton/lemonjuice = 4, + /obj/item/reagent_containers/food/drinks/carton/orangejuice = 4, + /obj/item/reagent_containers/food/drinks/carton/tomatojuice = 4, /obj/item/reagent_containers/food/drinks/flask/barflask = 2, /obj/item/reagent_containers/food/drinks/flask/vacuumflask = 2, - /obj/item/reagent_containers/food/drinks/drinkingglass = 30, /obj/item/reagent_containers/food/drinks/ice = 9, - /obj/item/reagent_containers/food/drinks/bottle/melonliquor = 2, - /obj/item/reagent_containers/food/drinks/bottle/bluecuracao = 2, - /obj/item/reagent_containers/food/drinks/bottle/absinthe = 2, - /obj/item/reagent_containers/food/drinks/bottle/grenadine = 5, - /obj/item/reagent_containers/food/drinks/bottle/chartreusegreen = 5, - /obj/item/reagent_containers/food/drinks/bottle/chartreuseyellow =5, - /obj/item/reagent_containers/food/drinks/bottle/bitters = 6, - /obj/item/reagent_containers/food/drinks/bottle/mintsyrup = 5, - /obj/item/reagent_containers/food/drinks/bottle/cremewhite = 4, - /obj/item/reagent_containers/food/drinks/bottle/brandy = 4, - /obj/item/reagent_containers/food/drinks/bottle/guinness = 4, - /obj/item/reagent_containers/food/drinks/bottle/drambuie = 4, - /obj/item/reagent_containers/food/drinks/bottle/cremeyvette = 4, - /obj/item/reagent_containers/food/drinks/bottle/small/xuizijuice = 8, - /obj/item/reagent_containers/food/drinks/bottle/sarezhiwine = 2, - /obj/item/reagent_containers/food/drinks/cans/beetle_milk = 2, - /obj/item/reagent_containers/food/drinks/cans/adhomai_milk = 2 + /obj/item/reagent_containers/food/drinks/drinkingglass = 30 ) contraband = list( /obj/item/reagent_containers/food/drinks/tea = 10 diff --git a/code/modules/cargo/random_stock/t1_common.dm b/code/modules/cargo/random_stock/t1_common.dm index 12ce8bd213c..0a870c467c7 100644 --- a/code/modules/cargo/random_stock/t1_common.dm +++ b/code/modules/cargo/random_stock/t1_common.dm @@ -389,7 +389,7 @@ STOCK_ITEM_COMMON(booze, 3.7) new /obj/structure/reagent_dispensers/keg/xuizikeg(T) else var/list/drinks = subtypesof(/obj/item/reagent_containers/food/drinks/bottle) - drinks -= /obj/item/reagent_containers/food/drinks/bottle/carton + drinks += subtypesof(/obj/item/reagent_containers/food/drinks/carton) for (var/i in 1 to rand(1, 3)) var/type = pick(drinks) diff --git a/code/modules/reagents/reagent_containers/food/drinks.dm b/code/modules/reagents/reagent_containers/food/drinks.dm index ef4827c704b..3046e6948f1 100644 --- a/code/modules/reagents/reagent_containers/food/drinks.dm +++ b/code/modules/reagents/reagent_containers/food/drinks.dm @@ -1,3 +1,16 @@ +//drink_flags defines +#define NO_EMPTY_ICON 1 //does NOT have an iconstate_empty icon. If adding empty icons for a drink, make sure it does not have this flag +#define UNIQUE_EMPTY_ICON 2 //Uses the empty_icon_state listed. Should really only be used when one trash state applies to multiple drinks. Remove if one is added +#define IS_GLASS 4 //Container is glass. Affects shattering, unacidable, etc. + +/* +Standards for trash/empty states under the /drinks path: +Adding Empty States: Trash/Empty states should be placed in the drinks_empty.dmi and should be the drink's icon_state name followed by _empty (ex: whiskeybottle_empty) and the NO_EMPTY_ICON flag should be removed. +If your trash state applies to multiple drinks, to avoid duplicating sprites, use UNIQUE_EMPTY_ICON and set the empty_icon_state var to that icon state. These will still need to be placed in drinks_empty.dmi +If you add a drink with no empty icon sprite, ensure it is flagged as NO_EMPTY_ICON, else it will turn invisible when empty. +*/ + + //////////////////////////////////////////////////////////////////////////////// /// Drinks. //////////////////////////////////////////////////////////////////////////////// @@ -11,9 +24,30 @@ amount_per_transfer_from_this = 5 volume = 50 var/shaken = 0 + var/drink_flags = NO_EMPTY_ICON + var/empty_icon_state = null //This icon_state should be the one set in drinks_empty.dmi and ONLY if it's a UNIQUE_EMPTY_ICON + +/obj/item/reagent_containers/food/drinks/Initialize() + . = ..() + if(drink_flags & IS_GLASS) + unacidable = TRUE /obj/item/reagent_containers/food/drinks/on_reagent_change() - return + update_icon() + +/obj/item/reagent_containers/food/drinks/update_icon() + if(!reagents.total_volume) + if(drink_flags & UNIQUE_EMPTY_ICON) + icon = 'icons/obj/drinks_empty.dmi' + icon_state = empty_icon_state + return + if(!(drink_flags & NO_EMPTY_ICON)) + icon = 'icons/obj/drinks_empty.dmi' + icon_state = "[initial(icon_state)]_empty" + return + else + icon = initial(icon) //Necessary for refilling empty drinks + icon_state = initial(icon_state) /obj/item/reagent_containers/food/drinks/attack_self(mob/user as mob) if(!is_open_container()) @@ -108,9 +142,10 @@ item_state = "carton" drop_sound = 'sound/items/drop/box.ogg' center_of_mass = list("x"=16, "y"=9) - Initialize() - . = ..() - reagents.add_reagent("milk", 50) + +/obj/item/reagent_containers/food/drinks/milk/Initialize() + . = ..() + reagents.add_reagent("milk", 50) /obj/item/reagent_containers/food/drinks/soymilk name = "soymilk" @@ -119,9 +154,10 @@ item_state = "carton" drop_sound = 'sound/items/drop/box.ogg' center_of_mass = list("x"=16, "y"=9) - Initialize() - . = ..() - reagents.add_reagent("soymilk", 50) + +/obj/item/reagent_containers/food/drinks/soymilk/Initialize() + . = ..() + reagents.add_reagent("soymilk", 50) /obj/item/reagent_containers/food/drinks/coffee name = "robust coffee" @@ -129,11 +165,13 @@ icon_state = "coffee_vended" item_state = "coffee" trash = /obj/item/trash/coffee + drink_flags = null drop_sound = 'sound/items/drop/papercup.ogg' center_of_mass = list("x"=16, "y"=11) - Initialize() - . = ..() - reagents.add_reagent("coffee", 30) + +/obj/item/reagent_containers/food/drinks/coffee/Initialize() + . = ..() + reagents.add_reagent("coffee", 30) /obj/item/reagent_containers/food/drinks/pslatte name = "seasonal pumpkin spice latte" @@ -141,11 +179,14 @@ icon_state = "psl_vended" item_state = "coffee" trash = /obj/item/trash/coffee + drink_flags = UNIQUE_EMPTY_ICON + empty_icon_state = "coffee_vended_empty" drop_sound = 'sound/items/drop/papercup.ogg' center_of_mass = list("x"=16, "y"=11) - Initialize() - . = ..() - reagents.add_reagent("sadpslatte", 30) + +/obj/item/reagent_containers/food/drinks/pslatte/Initialize() + . = ..() + reagents.add_reagent("sadpslatte", 30) /obj/item/reagent_containers/food/drinks/tea name = "duke purple tea" @@ -153,11 +194,13 @@ icon_state = "coffee_vended" item_state = "coffee" trash = /obj/item/trash/coffee + drink_flags = null drop_sound = 'sound/items/drop/papercup.ogg' center_of_mass = list("x"=16, "y"=14) - Initialize() - . = ..() - reagents.add_reagent("tea", 30) + +/obj/item/reagent_containers/food/drinks/tea/Initialize() + . = ..() + reagents.add_reagent("tea", 30) /obj/item/reagent_containers/food/drinks/greentea name = "green tea" @@ -165,11 +208,14 @@ icon_state = "greentea_vended" item_state = "coffee" trash = /obj/item/trash/coffee + drink_flags = UNIQUE_EMPTY_ICON + empty_icon_state = "coffee_vended_empty" drop_sound = 'sound/items/drop/papercup.ogg' center_of_mass = list("x"=16, "y"=14) - Initialize() - . = ..() - reagents.add_reagent("greentea", 30) + +/obj/item/reagent_containers/food/drinks/greentea/Initialize() + . = ..() + reagents.add_reagent("greentea", 30) /obj/item/reagent_containers/food/drinks/hotcider name = "hot cider" @@ -177,23 +223,29 @@ icon_state = "soy_latte_vended" item_state = "coffee" trash = /obj/item/trash/coffee + drink_flags = UNIQUE_EMPTY_ICON + empty_icon_state = "coffee_vended_empty" drop_sound = 'sound/items/drop/papercup.ogg' center_of_mass = list("x"=16, "y"=14) - Initialize() - . = ..() - reagents.add_reagent("ciderhot", 30) + +/obj/item/reagent_containers/food/drinks/hotcider/Initialize() + . = ..() + reagents.add_reagent("ciderhot", 30) /obj/item/reagent_containers/food/drinks/chaitea - name = "chai Tea" + name = "chai tea" desc = "The name is redundant but the flavor is delicious!" icon_state = "chai_vended" item_state = "coffee" trash = /obj/item/trash/coffee + drink_flags = UNIQUE_EMPTY_ICON + empty_icon_state = "coffee_vended_empty" drop_sound = 'sound/items/drop/papercup.ogg' center_of_mass = list("x"=16, "y"=14) - Initialize() - . = ..() - reagents.add_reagent("chaitea", 30) + +/obj/item/reagent_containers/food/drinks/chaitea/Initialize() + . = ..() + reagents.add_reagent("chaitea", 30) /obj/item/reagent_containers/food/drinks/ice name = "ice cup" @@ -201,23 +253,27 @@ icon_state = "coffee_vended" item_state = "coffee" trash = /obj/item/trash/coffee + drink_flags = null drop_sound = 'sound/items/drop/papercup.ogg' center_of_mass = list("x"=15, "y"=10) - Initialize() - . = ..() - reagents.add_reagent("ice", 30) + +/obj/item/reagent_containers/food/drinks/ice/Initialize() + . = ..() + reagents.add_reagent("ice", 30) /obj/item/reagent_containers/food/drinks/h_chocolate name = "dutch hot coco" desc = "Made in Space South America." - icon_state = "hot_coco" + icon_state = "coffee_vended" item_state = "coffee" trash = /obj/item/trash/coffee + drink_flags = null drop_sound = 'sound/items/drop/papercup.ogg' center_of_mass = list("x"=15, "y"=13) - Initialize() - . = ..() - reagents.add_reagent("hot_coco", 30) + +/obj/item/reagent_containers/food/drinks/h_chocolate/Initialize() + . = ..() + reagents.add_reagent("hot_coco", 30) /obj/item/reagent_containers/food/drinks/dry_ramen name = "cup ramen" @@ -225,11 +281,13 @@ icon_state = "ramen" item_state = "coffee" trash = /obj/item/trash/ramen + drink_flags = null drop_sound = 'sound/items/drop/papercup.ogg' center_of_mass = list("x"=16, "y"=11) - Initialize() - . = ..() - reagents.add_reagent("dry_ramen", 30) + +/obj/item/reagent_containers/food/drinks/dry_ramen/Initialize() + . = ..() + reagents.add_reagent("dry_ramen", 30) /obj/item/reagent_containers/food/drinks/sillycup @@ -240,13 +298,12 @@ possible_transfer_amounts = null volume = 10 center_of_mass = list("x"=16, "y"=12) - Initialize() - . = ..() - on_reagent_change() - if(reagents.total_volume) - icon_state = "water_cup" - else - icon_state = "water_cup_e" + +/obj/item/reagent_containers/food/drinks/sillycup/on_reagent_change() + if(reagents.total_volume) + icon_state = "water_cup" + else + icon_state = "water_cup_e" /obj/item/reagent_containers/food/drinks/medcup name = "medicine cup" @@ -288,6 +345,79 @@ filling.color = reagents.get_color() add_overlay(filling) +//////////////////////////JUICES AND STUFF /////////////////////// + +/obj/item/reagent_containers/food/drinks/carton + name = "carton" + desc = "An abstract way to organize bottles that are really cartons. Finally!" + item_state = "carton" + volume = 100 + center_of_mass = list("x"=16, "y"=6) + drop_sound = 'sound/items/drop/box.ogg' + +/obj/item/reagent_containers/food/drinks/carton/orangejuice + name = "orange juice" + desc = "Full of vitamins and deliciousness!" + icon_state = "orangejuice" + +/obj/item/reagent_containers/food/drinks/carton/orangejuice/Initialize() + . = ..() + reagents.add_reagent("orangejuice", 100) + +/obj/item/reagent_containers/food/drinks/carton/cream + name = "milk cream" + desc = "It's cream. Made from milk. What else did you think you'd find in there?" + icon_state = "cream" + +/obj/item/reagent_containers/food/drinks/carton/cream/Initialize() + . = ..() + reagents.add_reagent("cream", 100) + +/obj/item/reagent_containers/food/drinks/carton/tomatojuice + name = "tomato juice" + desc = "Well, at least it LOOKS like tomato juice. You can't tell with all that redness." + icon_state = "tomatojuice" + +/obj/item/reagent_containers/food/drinks/carton/tomatojuice/Initialize() + . = ..() + reagents.add_reagent("tomatojuice", 100) + +/obj/item/reagent_containers/food/drinks/carton/limejuice + name = "lime juice" + desc = "Sweet-sour goodness." + icon_state = "limejuice" + +/obj/item/reagent_containers/food/drinks/carton/limejuice/Initialize() + . = ..() + reagents.add_reagent("limejuice", 100) + +/obj/item/reagent_containers/food/drinks/carton/lemonjuice + name = "lemon juice" + desc = "This juice is VERY sour." + icon_state = "lemoncarton" + +/obj/item/reagent_containers/food/drinks/carton/lemonjuice/Initialize() + . = ..() + reagents.add_reagent("lemonjuice", 100) + +/obj/item/reagent_containers/food/drinks/carton/dynjuice + name = "dyn juice" + desc = "Juice from a Skrell medicinal herb. It's supposed to be diluted." + icon_state = "dyncarton" + +/obj/item/reagent_containers/food/drinks/carton/dynjuice/Initialize() + . = ..() + reagents.add_reagent("dynjuice", 100) + +/obj/item/reagent_containers/food/drinks/carton/applejuice + name = "apple juice" + desc = "Juice from an apple. Yes." + icon_state = "applejuice" + +/obj/item/reagent_containers/food/drinks/carton/applejuice/Initialize() + . = ..() + reagents.add_reagent("applejuice", 100) + //////////////////////////drinkingglass and shaker// //Note by Darem: This code handles the mixing of drinks. New drinks go in three places: In Chemistry-Reagents.dm (for the drink // itself), in Chemistry-Recipes.dm (for the reaction that changes the components into the drink), and here (for the drinking glass @@ -297,6 +427,7 @@ name = "shaker" desc = "A metal shaker to mix drinks in." icon_state = "shaker" + unacidable = TRUE amount_per_transfer_from_this = 10 volume = 120 center_of_mass = list("x"=16, "y"=8) @@ -314,6 +445,7 @@ desc = "An elegant teapot. It simply oozes class." icon_state = "teapot" item_state = "teapot" + unacidable = TRUE amount_per_transfer_from_this = 10 volume = 120 center_of_mass = list("x"=17, "y"=7) diff --git a/code/modules/reagents/reagent_containers/food/drinks/bottle.dm b/code/modules/reagents/reagent_containers/food/drinks/bottle.dm index d24c28327c5..d40ab239dc3 100644 --- a/code/modules/reagents/reagent_containers/food/drinks/bottle.dm +++ b/code/modules/reagents/reagent_containers/food/drinks/bottle.dm @@ -2,9 +2,6 @@ //Functionally identical to regular drinks. The only difference is that the default bottle size is 100. - Darem //Bottles now weaken and break when smashed on people's heads. - Giacom -#define NO_EMPTY_ICON 1 //If icon does not have iconnamestate_empty as an empty state, use this flag to prevent it going invisible. See update_icon(). Remove this flag if you add empty states -#define BOTTLE_IS_GLASS 2 //Whether the 'bottle' is made of glass or not so that milk cartons dont shatter when someone gets hit by it - /obj/item/reagent_containers/food/drinks/bottle name = "empty bottle" desc = "A sad empty bottle." @@ -19,12 +16,7 @@ var/obj/item/reagent_containers/glass/rag/rag = null var/rag_underlay = "rag" - var/bottle_flags = BOTTLE_IS_GLASS - -/obj/item/reagent_containers/food/drinks/bottle/Initialize() - . = ..() - if(bottle_flags & BOTTLE_IS_GLASS) - unacidable = 1 + drink_flags = IS_GLASS /obj/item/reagent_containers/food/drinks/bottle/Destroy() if(rag) @@ -32,16 +24,12 @@ rag = null return ..() -/obj/item/reagent_containers/food/drinks/bottle/on_reagent_change() - update_icon() - - //when thrown on impact, bottles smash and spill their contents /obj/item/reagent_containers/food/drinks/bottle/throw_impact(atom/hit_atom, var/speed) ..() var/mob/M = thrower - if((bottle_flags & BOTTLE_IS_GLASS) && istype(M) && M.a_intent == I_HURT) + if((drink_flags & IS_GLASS) && istype(M) && M.a_intent == I_HURT) var/throw_dist = get_dist(throw_source, loc) if(speed >= throw_speed && smash_check(throw_dist)) //not as reliable as smashing directly if(reagents) @@ -50,7 +38,7 @@ src.smash(loc, hit_atom) /obj/item/reagent_containers/food/drinks/bottle/proc/smash_check(var/distance) - if(!(bottle_flags & BOTTLE_IS_GLASS) || !smash_duration) + if(!(drink_flags & IS_GLASS) || !smash_duration) return 0 var/list/chance_table = list(90, 90, 85, 85, 60, 35, 15) //starting from distance 0 @@ -68,7 +56,7 @@ var/obj/item/broken_bottle/B = new /obj/item/broken_bottle(newloc) if(prob(33)) new/obj/item/material/shard(newloc) // Create a glass shard at the target's location! - B.icon_state = src.icon_state + B.icon_state = initial(icon_state) var/icon/I = new('icons/obj/drinks.dmi', src.icon_state) I.Blend(B.broken_outline, ICON_OVERLAY, rand(5), 1) @@ -102,7 +90,7 @@ ..() /obj/item/reagent_containers/food/drinks/bottle/proc/insert_rag(obj/item/reagent_containers/glass/rag/R, mob/user) - if(!(bottle_flags & BOTTLE_IS_GLASS) || rag) + if(!(drink_flags & IS_GLASS) || rag) return if(user.unEquip(R)) to_chat(user, "You stuff [R] into [src].") @@ -131,10 +119,7 @@ set_light(2) else set_light(0) - if(!reagents.total_volume && !(bottle_flags & NO_EMPTY_ICON)) - icon_state = "[initial(icon_state)]_empty" - else - icon_state = "[initial(icon_state)]" + ..() /obj/item/reagent_containers/food/drinks/bottle/attack(mob/living/target, mob/living/user, var/hit_zone) var/blocked = ..() @@ -207,9 +192,10 @@ desc = "A bottle of high quality gin, produced in the New London Space Station." icon_state = "ginbottle" center_of_mass = list("x"=16, "y"=4) - Initialize() - . = ..() - reagents.add_reagent("gin", 100) + +/obj/item/reagent_containers/food/drinks/bottle/gin/Initialize() + . = ..() + reagents.add_reagent("gin", 100) /obj/item/reagent_containers/food/drinks/bottle/victorygin name = "Victory gin" @@ -219,9 +205,10 @@ description_fluff = "Adhomian beverages are commonly made with fermented grains or vegetables, if alcoholic, or juices mixed with sugar or honey. Victory gin is the most \ widespread alcoholic drink in Adhomai, the result of the fermentation of honey extracted from Messa's tears, but its production and consumption is slowly declining due to the \ People's Republic situation in the current conflict." - Initialize() - . = ..() - reagents.add_reagent("victorygin", 100) + +/obj/item/reagent_containers/food/drinks/bottle/victorygin/Initialize() + . = ..() + reagents.add_reagent("victorygin", 100) /obj/item/reagent_containers/food/drinks/bottle/whiskey name = "Uncle Git's Special Reserve" @@ -237,282 +224,240 @@ desc = "A premium single-malt whiskey, infused with cinnamon and hot pepper inside the tunnels of a nuclear shelter. TUNNEL WHISKEY RULES." icon_state = "whiskeybottle" center_of_mass = list("x"=16, "y"=4) - Initialize() - . = ..() - reagents.add_reagent("fireball", 100) + +/obj/item/reagent_containers/food/drinks/bottle/fireball/Initialize() + . = ..() + reagents.add_reagent("fireball", 100) /obj/item/reagent_containers/food/drinks/bottle/vodka name = "Tunguska Triple Distilled" desc = "Aah, vodka. Prime choice of drink AND fuel by Russians worldwide." icon_state = "vodkabottle" center_of_mass = list("x"=17, "y"=4) - Initialize() - . = ..() - reagents.add_reagent("vodka", 100) + +/obj/item/reagent_containers/food/drinks/bottle/vodka/Initialize() + . = ..() + reagents.add_reagent("vodka", 100) /obj/item/reagent_containers/food/drinks/bottle/tequilla name = "Caccavo Guaranteed Quality tequila" desc = "Made from premium petroleum distillates, pure thalidomide and other fine quality ingredients!" icon_state = "tequillabottle" center_of_mass = list("x"=16, "y"=4) - Initialize() - . = ..() - reagents.add_reagent("tequilla", 100) + +/obj/item/reagent_containers/food/drinks/bottle/tequilla/Initialize() + . = ..() + reagents.add_reagent("tequilla", 100) /obj/item/reagent_containers/food/drinks/bottle/bottleofnothing name = "bottle of nothing" desc = "A bottle filled with nothing" icon_state = "bottleofnothing" center_of_mass = list("x"=16, "y"=5) - Initialize() - . = ..() - reagents.add_reagent("nothing", 100) + +/obj/item/reagent_containers/food/drinks/bottle/bottleofnothing/Initialize() + . = ..() + reagents.add_reagent("nothing", 100) /obj/item/reagent_containers/food/drinks/bottle/bitters name = "Angstra Aromatic Bitters" desc = "Only the finest and highest quality herbs find their way into our cocktail bitters." icon_state = "bitters" center_of_mass = list("x"=16, "y"=9) - Initialize() - . = ..() - reagents.add_reagent("bitters",40) + +/obj/item/reagent_containers/food/drinks/bottle/bitters/Initialize() + . = ..() + reagents.add_reagent("bitters",40) /obj/item/reagent_containers/food/drinks/bottle/champagne name = "Tailfeather's Bubbliest champagne" desc = "A rather fancy bottle of champagne, fit for collecting and storing in a cellar for decades." icon_state = "champagnebottle" center_of_mass = list("x"=16, "y"=4) - Initialize() - . = ..() - reagents.add_reagent("champagne",100) + +/obj/item/reagent_containers/food/drinks/bottle/champagne/Initialize() + . = ..() + reagents.add_reagent("champagne",100) /obj/item/reagent_containers/food/drinks/bottle/mintsyrup name = "Wintergreen Mint Syrup" desc = "Minty fresh. NOTE: Do not use as a replacement for breath fresheners." icon_state = "mint_syrup" center_of_mass = list("x"=16, "y"=6) - Initialize() - . = ..() - reagents.add_reagent("mintsyrup", 100) + +/obj/item/reagent_containers/food/drinks/bottle/mintsyrup/Initialize() + . = ..() + reagents.add_reagent("mintsyrup", 100) /obj/item/reagent_containers/food/drinks/bottle/patron name = "Wrapp Artiste patron" desc = "Silver laced tequilla, served in space night clubs across the galaxy." icon_state = "patronbottle" center_of_mass = list("x"=16, "y"=7) - Initialize() - . = ..() - reagents.add_reagent("patron", 100) + +/obj/item/reagent_containers/food/drinks/bottle/patron/Initialize() + . = ..() + reagents.add_reagent("patron", 100) /obj/item/reagent_containers/food/drinks/bottle/rum name = "Captain Pete's Cuban Spiced rum" desc = "This isn't just rum, oh no. It's practically GRIFF in a bottle." icon_state = "rumbottle" center_of_mass = list("x"=16, "y"=4) - Initialize() - . = ..() - reagents.add_reagent("rum", 100) + +/obj/item/reagent_containers/food/drinks/bottle/rum/Initialize() + . = ..() + reagents.add_reagent("rum", 100) /obj/item/reagent_containers/food/drinks/bottle/holywater name = "flask of holy water" desc = "A flask of the chaplain's holy water." icon_state = "holyflask" center_of_mass = list("x"=17, "y"=10) - Initialize() - . = ..() - reagents.add_reagent("holywater", 100) + +/obj/item/reagent_containers/food/drinks/bottle/holywater/Initialize() + . = ..() + reagents.add_reagent("holywater", 100) /obj/item/reagent_containers/food/drinks/bottle/vermouth name = "Goldeneye vermouth" desc = "Sweet, sweet dryness~" icon_state = "vermouthbottle" center_of_mass = list("x"=16, "y"=4) - Initialize() - . = ..() - reagents.add_reagent("vermouth", 100) + +/obj/item/reagent_containers/food/drinks/bottle/vermouth/Initialize() + . = ..() + reagents.add_reagent("vermouth", 100) /obj/item/reagent_containers/food/drinks/bottle/kahlua name = "Robert Robust's coffee liqueur" desc = "A widely known, Mexican coffee-flavoured liqueur. In production since 1936, HONK" icon_state = "kahluabottle" center_of_mass = list("x"=16, "y"=5) - Initialize() - . = ..() - reagents.add_reagent("kahlua", 100) + +/obj/item/reagent_containers/food/drinks/bottle/kahlua/Initialize() + . = ..() + reagents.add_reagent("kahlua", 100) /obj/item/reagent_containers/food/drinks/bottle/goldschlager name = "College Girl goldschlager" desc = "Because they are the only ones who will drink 100 proof cinnamon schnapps." icon_state = "goldschlagerbottle" center_of_mass = list("x"=16, "y"=4) - Initialize() - . = ..() - reagents.add_reagent("goldschlager", 100) + +/obj/item/reagent_containers/food/drinks/bottle/goldschlager/Initialize() + . = ..() + reagents.add_reagent("goldschlager", 100) /obj/item/reagent_containers/food/drinks/bottle/cognac name = "Chateau De Baton Premium cognac" desc = "A sweet and strongly alchoholic drink, made after numerous distillations and years of maturing. You might as well not scream 'SHITCURITY' this time." icon_state = "cognacbottle" center_of_mass = list("x"=16, "y"=4) - Initialize() - . = ..() - reagents.add_reagent("cognac", 100) + +/obj/item/reagent_containers/food/drinks/bottle/cognac/Initialize() + . = ..() + reagents.add_reagent("cognac", 100) /obj/item/reagent_containers/food/drinks/bottle/wine name = "Doublebeard Bearded Red Wine" desc = "A faint aura of unease and asspainery surrounds the bottle." icon_state = "winebottle" center_of_mass = list("x"=16, "y"=4) - Initialize() - . = ..() - reagents.add_reagent("wine", 100) + +/obj/item/reagent_containers/food/drinks/bottle/wine/Initialize() + . = ..() + reagents.add_reagent("wine", 100) /obj/item/reagent_containers/food/drinks/bottle/absinthe name = "Jailbreaker Verte" desc = "One sip of this and you just know you're gonna have a good time." icon_state = "absinthebottle" center_of_mass = list("x"=16, "y"=7) - Initialize() - . = ..() - reagents.add_reagent("absinthe", 100) + +/obj/item/reagent_containers/food/drinks/bottle/absinthe/Initialize() + . = ..() + reagents.add_reagent("absinthe", 100) /obj/item/reagent_containers/food/drinks/bottle/melonliquor name = "Emeraldine melon liquor" desc = "A bottle of 46 proof Emeraldine Melon Liquor. Sweet and light." icon_state = "alco-green" //Placeholder. center_of_mass = list("x"=16, "y"=6) - bottle_flags = BOTTLE_IS_GLASS | NO_EMPTY_ICON - Initialize() - . = ..() - reagents.add_reagent("melonliquor", 100) + drink_flags = IS_GLASS | UNIQUE_EMPTY_ICON + empty_icon_state = "alco-blue_empty" + +/obj/item/reagent_containers/food/drinks/bottle/melonliquor/Initialize() + . = ..() + reagents.add_reagent("melonliquor", 100) /obj/item/reagent_containers/food/drinks/bottle/bluecuracao name = "Miss blue curacao" desc = "A fruity, exceptionally azure drink. Does not allow the imbiber to use the fifth magic." icon_state = "alco-blue" //Placeholder. - bottle_flags = BOTTLE_IS_GLASS | NO_EMPTY_ICON + empty_icon_state = "alco-clear" center_of_mass = list("x"=16, "y"=6) - Initialize() - . = ..() - reagents.add_reagent("bluecuracao", 100) + +/obj/item/reagent_containers/food/drinks/bottle/bluecuracao/Initialize() + . = ..() + reagents.add_reagent("bluecuracao", 100) /obj/item/reagent_containers/food/drinks/bottle/grenadine name = "Briar Rose grenadine syrup" desc = "Sweet and tangy, a bar syrup used to add color or flavor to drinks." icon_state = "grenadinebottle" - bottle_flags = BOTTLE_IS_GLASS | NO_EMPTY_ICON + drink_flags = IS_GLASS | NO_EMPTY_ICON center_of_mass = list("x"=16, "y"=6) - Initialize() - . = ..() - reagents.add_reagent("grenadine", 100) + +/obj/item/reagent_containers/food/drinks/bottle/grenadine/Initialize() + . = ..() + reagents.add_reagent("grenadine", 100) /obj/item/reagent_containers/food/drinks/bottle/cola name = "space cola" desc = "Cola. in space" icon_state = "colabottle" center_of_mass = list("x"=16, "y"=6) - bottle_flags = NO_EMPTY_ICON + drink_flags = NO_EMPTY_ICON drop_sound = 'sound/items/drop/shoes.ogg' - Initialize() - . = ..() - reagents.add_reagent("cola", 100) + +/obj/item/reagent_containers/food/drinks/bottle/cola/Initialize() + . = ..() + reagents.add_reagent("cola", 100) /obj/item/reagent_containers/food/drinks/bottle/space_up name = "\improper Space-Up" desc = "Tastes like a hull breach in your mouth." icon_state = "space-up_bottle" center_of_mass = list("x"=16, "y"=6) - bottle_flags = NO_EMPTY_ICON + drink_flags = NO_EMPTY_ICON drop_sound = 'sound/items/drop/shoes.ogg' - Initialize() - ..() - reagents.add_reagent("space_up", 100) + +/obj/item/reagent_containers/food/drinks/bottle/space_up/Initialize() + . = ..() + reagents.add_reagent("space_up", 100) /obj/item/reagent_containers/food/drinks/bottle/space_mountain_wind name = "\improper Space Mountain Wind" desc = "Blows right through you like a space wind." icon_state = "space_mountain_wind_bottle" center_of_mass = list("x"=16, "y"=6) - bottle_flags = NO_EMPTY_ICON + drink_flags = NO_EMPTY_ICON drop_sound = 'sound/items/drop/shoes.ogg' - Initialize() - . = ..() - reagents.add_reagent("spacemountainwind", 100) + +/obj/item/reagent_containers/food/drinks/bottle/space_mountain_wind/Initialize() + . = ..() + reagents.add_reagent("spacemountainwind", 100) /obj/item/reagent_containers/food/drinks/bottle/pwine name = "Warlock's Velvet" desc = "What a delightful packaging for a surely high quality wine! The vintage must be amazing!" icon_state = "pwinebottle" center_of_mass = list("x"=16, "y"=4) - Initialize() - . = ..() - reagents.add_reagent("pwine", 100) -//////////////////////////JUICES AND STUFF /////////////////////// - -/obj/item/reagent_containers/food/drinks/bottle/carton - name = "carton" - desc = "An abstract way to organize bottles that are really cartons. Finally!" - bottle_flags = NO_EMPTY_ICON - item_state = "carton" - center_of_mass = list("x"=16, "y"=6) - drop_sound = 'sound/items/drop/box.ogg' - -/obj/item/reagent_containers/food/drinks/bottle/carton/orangejuice - name = "orange juice" - desc = "Full of vitamins and deliciousness!" - icon_state = "orangejuice" - Initialize() - . = ..() - reagents.add_reagent("orangejuice", 100) - -/obj/item/reagent_containers/food/drinks/bottle/carton/cream - name = "milk cream" - desc = "It's cream. Made from milk. What else did you think you'd find in there?" - icon_state = "cream" - Initialize() - . = ..() - reagents.add_reagent("cream", 100) - -/obj/item/reagent_containers/food/drinks/bottle/carton/tomatojuice - name = "tomato juice" - desc = "Well, at least it LOOKS like tomato juice. You can't tell with all that redness." - icon_state = "tomatojuice" - Initialize() - . = ..() - reagents.add_reagent("tomatojuice", 100) - -/obj/item/reagent_containers/food/drinks/bottle/carton/limejuice - name = "lime juice" - desc = "Sweet-sour goodness." - icon_state = "limejuice" - Initialize() - . = ..() - reagents.add_reagent("limejuice", 100) - -/obj/item/reagent_containers/food/drinks/bottle/carton/lemonjuice - name = "lemon juice" - desc = "This juice is VERY sour." - icon_state = "lemoncarton" - Initialize() - . = ..() - reagents.add_reagent("lemonjuice", 100) - -/obj/item/reagent_containers/food/drinks/bottle/carton/dynjuice - name = "dyn juice" - desc = "Juice from a Skrell medicinal herb. It's supposed to be diluted." - icon_state = "dyncarton" - Initialize() - . = ..() - reagents.add_reagent("dynjuice", 100) - -/obj/item/reagent_containers/food/drinks/bottle/carton/applejuice - name = "apple juice" - desc = "Juice from an apple. Yes." - icon_state = "applejuice" - Initialize() - . = ..() - reagents.add_reagent("applejuice", 100) +/obj/item/reagent_containers/food/drinks/bottle/pwine/Initialize() + . = ..() + reagents.add_reagent("pwine", 100) //Small bottles /obj/item/reagent_containers/food/drinks/bottle/small @@ -529,9 +474,10 @@ desc = "Contains only water, malt and hops." icon_state = "beer" center_of_mass = list("x"=16, "y"=8) - Initialize() - . = ..() - reagents.add_reagent("beer", 30) + +/obj/item/reagent_containers/food/drinks/bottle/small/beer/Initialize() + . = ..() + reagents.add_reagent("beer", 30) /obj/item/reagent_containers/food/drinks/bottle/small/ale name = "\improper Magm-ale" @@ -539,9 +485,10 @@ icon_state = "alebottle" item_state = "beer" center_of_mass = list("x"=16, "y"=8) - Initialize() - . = ..() - reagents.add_reagent("ale", 30) + +/obj/item/reagent_containers/food/drinks/bottle/small/ale/Initialize() + . = ..() + reagents.add_reagent("ale", 30) //aurora's drinks @@ -550,72 +497,80 @@ desc = "A green, strong liqueur." icon_state = "chartreusegreenbottle" center_of_mass = list("x" = 15,"y" = 5) - Initialize() - . = ..() - reagents.add_reagent("chartreusegreen", 100) + +/obj/item/reagent_containers/food/drinks/bottle/chartreusegreen/Initialize() + . = ..() + reagents.add_reagent("chartreusegreen", 100) /obj/item/reagent_containers/food/drinks/bottle/chartreuseyellow name = "yellow chartreuse" desc = "A yellow, strong liqueur." icon_state = "chartreuseyellowbottle" center_of_mass = list("x" = 15,"y" = 5) - Initialize() - . = ..() - reagents.add_reagent("chartreuseyellow", 100) + +/obj/item/reagent_containers/food/drinks/bottle/chartreuseyellow/Initialize() + . = ..() + reagents.add_reagent("chartreuseyellow", 100) /obj/item/reagent_containers/food/drinks/bottle/cremewhite name = "white creme de menthe" desc = "Mint-flavoured alcohol, in a bottle." icon_state = "whitecremebottle" center_of_mass = list("x" = 16,"y" = 5) - Initialize() - . = ..() - reagents.add_reagent("cremewhite", 100) + +/obj/item/reagent_containers/food/drinks/bottle/cremewhite/Initialize() + . = ..() + reagents.add_reagent("cremewhite", 100) /obj/item/reagent_containers/food/drinks/bottle/cremeyvette name = "Creme de Yvette" desc = "Berry-flavoured alcohol, in a bottle." icon_state = "cremedeyvettebottle" center_of_mass = list("x" = 16,"y" = 6) - Initialize() - . = ..() - reagents.add_reagent("cremeyvette", 100) + +/obj/item/reagent_containers/food/drinks/bottle/cremeyvette/Initialize() + . = ..() + reagents.add_reagent("cremeyvette", 100) /obj/item/reagent_containers/food/drinks/bottle/brandy name = "brandy" desc = "Cheap knock off for cognac." icon_state = "brandybottle" center_of_mass = list("x" = 15,"y" = 8) - Initialize() - . = ..() - reagents.add_reagent("brandy", 100) + +/obj/item/reagent_containers/food/drinks/bottle/brandy/Initialize() + . = ..() + reagents.add_reagent("brandy", 100) /obj/item/reagent_containers/food/drinks/bottle/guinness name = "Guinness" desc = "A bottle of good old Guinness." icon_state = "guinness_bottle" center_of_mass = list("x" = 15,"y" = 4) - Initialize() - . = ..() - reagents.add_reagent("guinness", 100) + +/obj/item/reagent_containers/food/drinks/bottle/guinness/Initialize() + . = ..() + reagents.add_reagent("guinness", 100) /obj/item/reagent_containers/food/drinks/bottle/drambuie name = "Drambuie" desc = "A bottle of Drambuie." icon_state = "drambuie_bottle" center_of_mass = list("x" = 16,"y" = 6) - Initialize() - . = ..() - reagents.add_reagent("drambuie", 100) + +/obj/item/reagent_containers/food/drinks/bottle/drambuie/Initialize() + . = ..() + reagents.add_reagent("drambuie", 100) /obj/item/reagent_containers/food/drinks/bottle/sbiten name = "sbiten" desc = "A bottle full of sweet sbiten." icon_state = "sbitenbottle" center_of_mass = list("x" = 16,"y" = 7) - Initialize() - . = ..() - reagents.add_reagent("sbiten", 100) + +/obj/item/reagent_containers/food/drinks/bottle/sbiten/Initialize() + . = ..() + reagents.add_reagent("sbiten", 100) /obj/item/reagent_containers/food/drinks/bottle/messa_mead name = "messa's mead" @@ -625,9 +580,10 @@ description_fluff = "Adhomian beverages are commonly made with fermented grains or vegetables, if alcoholic, or juices mixed with sugar or honey. Victory gin is the most \ widespread alcoholic drink in Adhomai, the result of the fermentation of honey extracted from Messa's tears, but its production and consumption is slowly declining due to the \ People's Republic situation in the current conflict. Messa's mead is also another more traditional alternative, made with honey and fermented Earthen-Root juice." - Initialize() - . = ..() - reagents.add_reagent("messa_mead", 100) + +/obj/item/reagent_containers/food/drinks/bottle/messa_mead/Initialize() + . = ..() + reagents.add_reagent("messa_mead", 100) // Butanol-based alcoholic drinks //===================================== @@ -638,18 +594,20 @@ desc = "Blended flower buds from the Xuizi cactus. It smells faintly of vanilla. Bottled by the Arizi Guild for over 200 years." icon_state = "xuizibottle" center_of_mass = list("x"=16, "y"=8) - Initialize() - . = ..() - reagents.add_reagent("xuizijuice", 30) + +/obj/item/reagent_containers/food/drinks/bottle/small/xuizijuice/Initialize() + . = ..() + reagents.add_reagent("xuizijuice", 30) /obj/item/reagent_containers/food/drinks/bottle/sarezhiwine name = "Sarezhi Wine" desc = "A premium Moghean wine made from Sareszhi berries. Bottled by the Arizi Guild for over 200 years." icon_state = "sarezhibottle" center_of_mass = list("x" = 16,"y" = 6) - Initialize() - . = ..() - reagents.add_reagent("sarezhiwine", 100) + +/obj/item/reagent_containers/food/drinks/bottle/sarezhiwine/Initialize() + . = ..() + reagents.add_reagent("sarezhiwine", 100) // Synnono Meme (Bottled) Drinks //====================================== @@ -660,15 +618,17 @@ desc = "A distillation of figs, imported from the Serene Republic of Elyra. Makes an excellent apertif or digestif." icon_state = "boukhabottle" center_of_mass = list("x"=16, "y"=6) - Initialize() - . = ..() - reagents.add_reagent("boukha", 100) + +/obj/item/reagent_containers/food/drinks/bottle/boukha/Initialize() + . = ..() + reagents.add_reagent("boukha", 100) /obj/item/reagent_containers/food/drinks/bottle/whitewine name = "Doublebeard Bearded White Wine" desc = "A faint aura of unease and asspainery surrounds the bottle." icon_state = "whitewinebottle" center_of_mass = list("x"=16, "y"=4) - Initialize() - . = ..() - reagents.add_reagent("whitewine", 100) + +/obj/item/reagent_containers/food/drinks/bottle/whitewine/Initialize() + . = ..() + reagents.add_reagent("whitewine", 100) diff --git a/code/modules/reagents/reagent_containers/food/drinks/drinkingglass.dm b/code/modules/reagents/reagent_containers/food/drinks/drinkingglass.dm index 20624d9cc7f..0f78330d8b9 100644 --- a/code/modules/reagents/reagent_containers/food/drinks/drinkingglass.dm +++ b/code/modules/reagents/reagent_containers/food/drinks/drinkingglass.dm @@ -9,6 +9,7 @@ unacidable = 1 //glass center_of_mass = list("x"=16, "y"=10) matter = list(MATERIAL_GLASS = 300) + drink_flags = NO_EMPTY_ICON //This should not be removed unless a total overhaul of drink reagent sprites is done. on_reagent_change() /*if(reagents.reagent_list.len > 1 ) diff --git a/html/changelogs/doxxmedearly - drinkrerefactor.yml b/html/changelogs/doxxmedearly - drinkrerefactor.yml new file mode 100644 index 00000000000..838191aa07d --- /dev/null +++ b/html/changelogs/doxxmedearly - drinkrerefactor.yml @@ -0,0 +1,13 @@ +# Your name. +author: Doxxmedearly + +# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again. +delete-after: True + +# Any changes you've made. See valid prefix list above. +changes: + - tweak: "Reorganized the booze-o-mat. It should be less of a hunt to find things now." + - tweak: "Hot coco now vends in a disposable cup instead of a ceramic mug." + - tweak: "Shakers and teapots will no longer be melted by acid. Feel free to mix Acid Spit all you want." + - bugfix: "Fixes empty icons for vended coffee/ramen not showing up." + - rscadd: "Organizes drink code a bit to make it easier to add empty/trash sprites for drinks in the future." diff --git a/icons/obj/drinks.dmi b/icons/obj/drinks.dmi index a08654d155d..8e54ab94ca8 100644 Binary files a/icons/obj/drinks.dmi and b/icons/obj/drinks.dmi differ diff --git a/icons/obj/drinks_empty.dmi b/icons/obj/drinks_empty.dmi new file mode 100644 index 00000000000..d96b8df104a Binary files /dev/null and b/icons/obj/drinks_empty.dmi differ