From debfd3dabf23fe7c70cc9f5b19d8ce4091131931 Mon Sep 17 00:00:00 2001 From: GinjaNinja32 Date: Thu, 26 May 2016 16:49:31 +0100 Subject: [PATCH] Ports GinjaNinja32's drinks rewrite from Bay --- code/datums/supplypacks.dm | 25 +- code/game/machinery/autolathe_datums.dm | 30 +- code/game/machinery/vending.dm | 28 +- code/game/objects/items/weapons/RSF.dm | 2 +- .../objects/items/weapons/storage/boxes.dm | 11 +- code/modules/reagents/Chemistry-Machinery.dm | 2 +- code/modules/reagents/Chemistry-Reagents.dm | 10 +- .../Chemistry-Reagents-Core.dm | 9 +- .../Chemistry-Reagents-Dispenser.dm | 8 +- .../Chemistry-Reagents-Food-Drinks.dm | 543 ++++++------------ .../Chemistry-Reagents-Other.dm | 6 +- .../Chemistry-Reagents-Toxins.dm | 7 +- .../drinkingglass/drinkingglass.dm | 145 +++++ .../drinkingglass/extras.dm | 69 +++ .../drinkingglass/glass_boxes.dm | 75 +++ .../drinkingglass/glass_types.dm | 72 +++ .../reagent_containers/food/drinks/cup.dm | 43 ++ html/changelogs/GinjaNinja32-newdrinks.yml | 6 + icons/pdrink.dmi | Bin 0 -> 68135 bytes maps/polaris-1.dmm | 12 +- maps/polaris-2.dmm | 12 +- maps/polaris-5.dmm | 4 +- polaris.dme | 6 +- 23 files changed, 700 insertions(+), 425 deletions(-) create mode 100644 code/modules/reagents/reagent_containers/drinkingglass/drinkingglass.dm create mode 100644 code/modules/reagents/reagent_containers/drinkingglass/extras.dm create mode 100644 code/modules/reagents/reagent_containers/drinkingglass/glass_boxes.dm create mode 100644 code/modules/reagents/reagent_containers/drinkingglass/glass_types.dm create mode 100644 code/modules/reagents/reagent_containers/food/drinks/cup.dm create mode 100644 html/changelogs/GinjaNinja32-newdrinks.yml create mode 100644 icons/pdrink.dmi diff --git a/code/datums/supplypacks.dm b/code/datums/supplypacks.dm index 8c81c98db63..d6843d95ad0 100644 --- a/code/datums/supplypacks.dm +++ b/code/datums/supplypacks.dm @@ -109,7 +109,9 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee /datum/supply_packs/party name = "Party equipment" contains = list( - /obj/item/weapon/storage/box/drinkingglasses, + /obj/item/weapon/storage/box/mixedglasses, + /obj/item/weapon/storage/box/mixedglasses, + /obj/item/weapon/storage/box/glasses/square, /obj/item/weapon/reagent_containers/food/drinks/shaker, /obj/item/weapon/reagent_containers/food/drinks/flask/barflask, /obj/item/weapon/reagent_containers/food/drinks/bottle/patron, @@ -119,13 +121,32 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee /obj/item/weapon/lipstick/random, /obj/item/weapon/reagent_containers/food/drinks/bottle/small/ale = 2, /obj/item/weapon/reagent_containers/food/drinks/bottle/small/beer = 4, - /obj/item/weapon/reagent_containers/food/drinks/drinkingglass/shotglass = 4 ) cost = 20 containertype = /obj/structure/closet/crate containername = "Party equipment" group = "Hospitality" +/datum/supply_packs/barsupplies + name = "Bar supplies" + contains = list( + /obj/item/weapon/storage/box/glasses/cocktail, + /obj/item/weapon/storage/box/glasses/rocks, + /obj/item/weapon/storage/box/glasses/square, + /obj/item/weapon/storage/box/glasses/pint, + /obj/item/weapon/storage/box/glasses/wine, + /obj/item/weapon/storage/box/glasses/shake, + /obj/item/weapon/storage/box/glasses/shot, + /obj/item/weapon/storage/box/glasses/mug, + /obj/item/weapon/reagent_containers/food/drinks/shaker, + /obj/item/weapon/storage/box/glass_extras/straws, + /obj/item/weapon/storage/box/glass_extras/sticks + ) + cost = 10 + containertype = /obj/structure/closet/crate + containername = "crate of bar supplies" + group = "Hospitality" + /datum/supply_packs/lasertag name = "Lasertag equipment" contains = list( diff --git a/code/game/machinery/autolathe_datums.dm b/code/game/machinery/autolathe_datums.dm index eda9262351f..82decf4836e 100644 --- a/code/game/machinery/autolathe_datums.dm +++ b/code/game/machinery/autolathe_datums.dm @@ -38,13 +38,33 @@ /datum/autolathe/recipe/drinkingglass name = "drinking glass" - path = /obj/item/weapon/reagent_containers/food/drinks/drinkingglass + path = /obj/item/weapon/reagent_containers/food/drinks/glass2/square category = "General" + New() + ..() + var/obj/O = path + name = initial(O.name) // generic recipes yay -/datum/autolathe/recipe/shotglass/ - name = "shot glass" - path = /obj/item/weapon/reagent_containers/food/drinks/drinkingglass/shotglass - category = "General" +/datum/autolathe/recipe/drinkingglass/rocks + path = /obj/item/weapon/reagent_containers/food/drinks/glass2/rocks + +/datum/autolathe/recipe/drinkingglass/shake + path = /obj/item/weapon/reagent_containers/food/drinks/glass2/shake + +/datum/autolathe/recipe/drinkingglass/cocktail + path = /obj/item/weapon/reagent_containers/food/drinks/glass2/cocktail + +/datum/autolathe/recipe/drinkingglass/shot + path = /obj/item/weapon/reagent_containers/food/drinks/glass2/shot + +/datum/autolathe/recipe/drinkingglass/pint + path = /obj/item/weapon/reagent_containers/food/drinks/glass2/pint + +/datum/autolathe/recipe/drinkingglass/mug + path = /obj/item/weapon/reagent_containers/food/drinks/glass2/mug + +/datum/autolathe/recipe/drinkingglass/wine + path = /obj/item/weapon/reagent_containers/food/drinks/glass2/wine /datum/autolathe/recipe/flashlight name = "flashlight" diff --git a/code/game/machinery/vending.dm b/code/game/machinery/vending.dm index f086a3e1dd6..f3cfc9bcff0 100644 --- a/code/game/machinery/vending.dm +++ b/code/game/machinery/vending.dm @@ -719,8 +719,14 @@ /obj/item/weapon/reagent_containers/food/drinks/cans/sodawater = 15, /obj/item/weapon/reagent_containers/food/drinks/flask/barflask = 5, /obj/item/weapon/reagent_containers/food/drinks/flask/vacuumflask = 5, - /obj/item/weapon/reagent_containers/food/drinks/drinkingglass = 30, - /obj/item/weapon/reagent_containers/food/drinks/drinkingglass/shotglass = 30, + /obj/item/weapon/reagent_containers/food/drinks/glass2/square = 10, + /obj/item/weapon/reagent_containers/food/drinks/glass2/rocks = 10, + /obj/item/weapon/reagent_containers/food/drinks/glass2/shake = 10, + /obj/item/weapon/reagent_containers/food/drinks/glass2/cocktail = 10, + /obj/item/weapon/reagent_containers/food/drinks/glass2/shot = 10, + /obj/item/weapon/reagent_containers/food/drinks/glass2/pint = 10, + /obj/item/weapon/reagent_containers/food/drinks/glass2/mug = 10, + /obj/item/weapon/reagent_containers/food/drinks/glass2/wine = 10, /obj/item/weapon/reagent_containers/food/drinks/ice = 10, /obj/item/weapon/reagent_containers/food/drinks/bottle/melonliquor = 5, /obj/item/weapon/reagent_containers/food/drinks/bottle/bluecuracao = 5, @@ -959,7 +965,8 @@ /obj/item/weapon/material/kitchen/utensil/knife = 6, /obj/item/weapon/material/kitchen/utensil/spoon = 6, /obj/item/weapon/material/knife = 3, - /obj/item/weapon/reagent_containers/food/drinks/drinkingglass = 8, + /obj/item/weapon/material/kitchen/rollingpin = 2, + /obj/item/weapon/reagent_containers/food/drinks/glass2/square = 8, /obj/item/clothing/suit/chef/classic = 2, /obj/item/weapon/storage/toolbox/lunchbox = 3, /obj/item/weapon/storage/toolbox/lunchbox/heart = 3, @@ -971,16 +978,15 @@ /obj/item/weapon/storage/toolbox/lunchbox/syndicate = 3) - contraband = list(/obj/item/weapon/material/kitchen/rollingpin = 2, - /obj/item/weapon/material/knife/butch = 2) + contraband = list(/obj/item/weapon/material/knife/butch = 2) /obj/machinery/vending/sovietsoda name = "BODA" desc = "An old sweet water vending machine,how did this end up here?" icon_state = "sovietsoda" product_ads = "For Tsar and Country.;Have you fulfilled your nutrition quota today?;Very nice!;We are simple people, for this is all we eat.;If there is a person, there is a problem. If there is no person, then there is no problem." - products = list(/obj/item/weapon/reagent_containers/food/drinks/drinkingglass/soda = 30) - contraband = list(/obj/item/weapon/reagent_containers/food/drinks/drinkingglass/cola = 20) + products = list(/obj/item/weapon/reagent_containers/food/drinks/bottle/space_up = 30) // TODO Russian soda can + contraband = list(/obj/item/weapon/reagent_containers/food/drinks/bottle/cola = 20) // TODO Russian cola can idle_power_usage = 211 //refrigerator - believe it or not, this is actually the average power consumption of a refrigerated vending machine according to NRCan. /obj/machinery/vending/tool @@ -1053,16 +1059,16 @@ icon_state = "fitness" products = list(/obj/item/weapon/reagent_containers/food/drinks/milk/smallcarton = 8, /obj/item/weapon/reagent_containers/food/drinks/milk/smallcarton/chocolate = 8, - /obj/item/weapon/reagent_containers/food/drinks/drinkingglass/fitnessflask/proteinshake = 8, - /obj/item/weapon/reagent_containers/food/drinks/drinkingglass/fitnessflask = 8, + //obj/item/weapon/reagent_containers/food/drinks/drinkingglass/fitnessflask/proteinshake = 8, + //obj/item/weapon/reagent_containers/food/drinks/drinkingglass/fitnessflask = 8, /obj/item/weapon/reagent_containers/food/snacks/candy/proteinbar = 8, /obj/item/weapon/reagent_containers/food/snacks/liquidfood = 8, /obj/item/weapon/reagent_containers/pill/diet = 8) prices = list(/obj/item/weapon/reagent_containers/food/drinks/milk/smallcarton = 3, /obj/item/weapon/reagent_containers/food/drinks/milk/smallcarton/chocolate = 3, - /obj/item/weapon/reagent_containers/food/drinks/drinkingglass/fitnessflask/proteinshake = 20, - /obj/item/weapon/reagent_containers/food/drinks/drinkingglass/fitnessflask = 5, + //obj/item/weapon/reagent_containers/food/drinks/drinkingglass/fitnessflask/proteinshake = 20, + //obj/item/weapon/reagent_containers/food/drinks/drinkingglass/fitnessflask = 5, /obj/item/weapon/reagent_containers/food/snacks/candy/proteinbar = 5, /obj/item/weapon/reagent_containers/food/snacks/liquidfood = 5, /obj/item/weapon/reagent_containers/pill/diet = 25) diff --git a/code/game/objects/items/weapons/RSF.dm b/code/game/objects/items/weapons/RSF.dm index b96d53c2a87..6384508c044 100644 --- a/code/game/objects/items/weapons/RSF.dm +++ b/code/game/objects/items/weapons/RSF.dm @@ -82,7 +82,7 @@ RSF product = new /obj/item/clothing/mask/smokable/cigarette() used_energy = 10 if(2) - product = new /obj/item/weapon/reagent_containers/food/drinks/drinkingglass() + product = new /obj/item/weapon/reagent_containers/food/drinks/glass2() used_energy = 50 if(3) product = new /obj/item/weapon/paper() diff --git a/code/game/objects/items/weapons/storage/boxes.dm b/code/game/objects/items/weapons/storage/boxes.dm index 9f6992d4046..a1b6e17b5a8 100644 --- a/code/game/objects/items/weapons/storage/boxes.dm +++ b/code/game/objects/items/weapons/storage/boxes.dm @@ -312,15 +312,6 @@ for(var/i = 1 to 7) new /obj/item/clothing/glasses/regular(src) -/obj/item/weapon/storage/box/drinkingglasses - name = "box of drinking glasses" - desc = "It has a picture of drinking glasses on it." - -/obj/item/weapon/storage/box/drinkingglasses/New() - ..() - for(var/i = 1 to 7) - new /obj/item/weapon/reagent_containers/food/drinks/drinkingglass(src) - /obj/item/weapon/storage/box/cdeathalarm_kit name = "death alarm kit" desc = "Box of stuff used to implant death alarms." @@ -570,4 +561,4 @@ /obj/item/weapon/storage/box/ambrosiadeus/New() ..() for(var/i = 1 to 7) - new /obj/item/seeds/ambrosiadeusseed(src) \ No newline at end of file + new /obj/item/seeds/ambrosiadeusseed(src) diff --git a/code/modules/reagents/Chemistry-Machinery.dm b/code/modules/reagents/Chemistry-Machinery.dm index b58f1384da7..5c4dc8c169f 100644 --- a/code/modules/reagents/Chemistry-Machinery.dm +++ b/code/modules/reagents/Chemistry-Machinery.dm @@ -349,7 +349,7 @@ return if (istype(O,/obj/item/weapon/reagent_containers/glass) || \ - istype(O,/obj/item/weapon/reagent_containers/food/drinks/drinkingglass) || \ + istype(O,/obj/item/weapon/reagent_containers/food/drinks/glass2) || \ istype(O,/obj/item/weapon/reagent_containers/food/drinks/shaker)) if (beaker) diff --git a/code/modules/reagents/Chemistry-Reagents.dm b/code/modules/reagents/Chemistry-Reagents.dm index e7317b32e88..64cbd4a32c0 100644 --- a/code/modules/reagents/Chemistry-Reagents.dm +++ b/code/modules/reagents/Chemistry-Reagents.dm @@ -26,17 +26,19 @@ var/overdose = 0 var/scannable = 0 // Shows up on health analyzers. var/affects_dead = 0 - var/glass_icon_state = null - var/glass_name = null - var/glass_desc = null - var/glass_center_of_mass = null var/cup_icon_state = null var/cup_name = null var/cup_desc = null var/cup_center_of_mass = null + var/color = "#000000" var/color_weight = 1 + var/glass_icon = DRINK_ICON_DEFAULT + var/glass_name = "something" + var/glass_desc = "It's a glass of... what, exactly?" + var/list/glass_special = null // null equivalent to list() + /datum/reagent/proc/remove_self(var/amount) // Shortcut holder.remove_reagent(id, amount) diff --git a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Core.dm b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Core.dm index 20225508c65..842814bca26 100644 --- a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Core.dm +++ b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Core.dm @@ -6,8 +6,7 @@ metabolism = REM * 5 color = "#C80000" - glass_icon_state = "glass_red" - glass_name = "glass of tomato juice" + glass_name = "tomato juice" glass_desc = "Are you sure this is tomato juice?" /datum/reagent/blood/initialize_data(var/newdata) @@ -91,8 +90,7 @@ color = "#0064C877" metabolism = REM * 10 - glass_icon_state = "glass_clear" - glass_name = "glass of water" + glass_name = "water" glass_desc = "The father of all refreshments." /datum/reagent/water/touch_turf(var/turf/simulated/T) @@ -154,8 +152,7 @@ reagent_state = LIQUID color = "#660000" - glass_icon_state = "dr_gibb_glass" - glass_name = "glass of welder fuel" + glass_name = "welder fuel" glass_desc = "Unless you are an industrial tool, this is probably not safe for consumption." /datum/reagent/fuel/touch_turf(var/turf/T) diff --git a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Dispenser.dm b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Dispenser.dm index 4c3e461a270..89837746c38 100644 --- a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Dispenser.dm +++ b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Dispenser.dm @@ -66,8 +66,7 @@ var/targ_temp = 310 var/halluci = 0 - glass_icon_state = "glass_clear" - glass_name = "glass of ethanol" + glass_name = "ethanol" glass_desc = "A well-known alcohol with a variety of applications." /datum/reagent/ethanol/touch_mob(var/mob/living/L, var/amount) @@ -368,9 +367,10 @@ description = "The organic compound commonly known as table sugar and sometimes called saccharose. This white, odorless, crystalline powder has a pleasing, sweet taste." reagent_state = SOLID color = "#FFFFFF" - glass_icon_state = "iceglass" - glass_name = "glass of sugar" + + glass_name = "sugar" glass_desc = "The organic compound commonly known as table sugar and sometimes called saccharose. This white, odorless, crystalline powder has a pleasing, sweet taste." + glass_icon = DRINK_ICON_NOISY /datum/reagent/sugar/affect_blood(var/mob/living/carbon/M, var/alien, var/removed) M.nutrition += removed * 3 diff --git a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Food-Drinks.dm b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Food-Drinks.dm index 469c34a1c19..e0bca7f3f9c 100644 --- a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Food-Drinks.dm +++ b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Food-Drinks.dm @@ -383,8 +383,7 @@ description = "The raw essence of a banana." color = "#C3AF00" - glass_icon_state = "banana" - glass_name = "glass of banana juice" + glass_name = "banana juice" glass_desc = "The raw essence of a banana. HONK!" /datum/reagent/drink/juice/berry @@ -393,8 +392,7 @@ description = "A delicious blend of several different kinds of berries." color = "#990066" - glass_icon_state = "berryjuice" - glass_name = "glass of berry juice" + glass_name = "berry juice" glass_desc = "Berry juice. Or maybe it's jam. Who cares?" /datum/reagent/drink/juice/carrot @@ -403,8 +401,7 @@ description = "It is just like a carrot but without crunching." color = "#FF8C00" // rgb: 255, 140, 0 - glass_icon_state = "carrotjuice" - glass_name = "glass of carrot juice" + glass_name = "carrot juice" glass_desc = "It is just like a carrot but without crunching." /datum/reagent/drink/juice/carrot/affect_ingest(var/mob/living/carbon/M, var/alien, var/removed) @@ -417,8 +414,7 @@ description = "It's grrrrrape!" color = "#863333" - glass_icon_state = "grapejuice" - glass_name = "glass of grape juice" + glass_name = "grape juice" glass_desc = "It's grrrrrape!" /datum/reagent/juice/affect_ingest(var/mob/living/carbon/M, var/alien, var/removed) @@ -448,8 +444,7 @@ description = "This juice is VERY sour." color = "#AFAF00" - glass_icon_state = "lemonjuice" - glass_name = "glass of lemon juice" + glass_name = "lemon juice" glass_desc = "Sour..." /datum/reagent/drink/juice/lime @@ -458,8 +453,7 @@ description = "The sweet-sour juice of limes." color = "#365E30" - glass_icon_state = "glass_green" - glass_name = "glass of lime juice" + glass_name = "lime juice" glass_desc = "A glass of sweet-sour lime juice" /datum/reagent/drink/juice/lime/affect_ingest(var/mob/living/carbon/M, var/alien, var/removed) @@ -474,8 +468,7 @@ description = "Both delicious AND rich in Vitamin C, what more do you need?" color = "#E78108" - glass_icon_state = "glass_orange" - glass_name = "glass of orange juice" + glass_name = "orange juice" glass_desc = "Vitamins! Yay!" /datum/reagent/drink/orangejuice/affect_ingest(var/mob/living/carbon/M, var/alien, var/removed) @@ -491,8 +484,7 @@ color = "#863353" strength = 5 - glass_icon_state = "poisonberryjuice" - glass_name = "glass of poison berry juice" + glass_name = "poison berry juice" glass_desc = "A glass of deadly juice." /datum/reagent/drink/juice/potato @@ -502,8 +494,7 @@ nutrition = 2 color = "#302000" - glass_icon_state = "glass_brown" - glass_name = "glass of potato juice" + glass_name = "potato juice" glass_desc = "Juice from a potato. Bleh." /datum/reagent/drink/juice/tomato @@ -512,8 +503,7 @@ description = "Tomatoes made into juice. What a waste of big, juicy tomatoes, huh?" color = "#731008" - glass_icon_state = "glass_red" - glass_name = "glass of tomato juice" + glass_name = "tomato juice" glass_desc = "Are you sure this is tomato juice?" /datum/reagent/drink/juice/tomato/affect_ingest(var/mob/living/carbon/M, var/alien, var/removed) @@ -528,8 +518,7 @@ description = "Delicious juice made from watermelon." color = "#B83333" - glass_icon_state = "glass_red" - glass_name = "glass of watermelon juice" + glass_name = "watermelon juice" glass_desc = "Delicious juice made from watermelon." // Everything else @@ -540,8 +529,7 @@ description = "An opaque white liquid produced by the mammary glands of mammals." color = "#DFDFDF" - glass_icon_state = "glass_white" - glass_name = "glass of milk" + glass_name = "milk" glass_desc = "White and nutritious goodness!" cup_icon_state = "cup_cream" @@ -554,7 +542,6 @@ description = "A delicious mixture of perfectly healthy mix and terrible chocolate." color = "#74533b" - glass_icon_state = "glass_brown" glass_name = "glass of chocolate milk" glass_desc = "Delciously fattening!" @@ -575,8 +562,7 @@ description = "The fatty, still liquid part of milk. Why don't you mix this with sum scotch, eh?" color = "#DFD7AF" - glass_icon_state = "glass_white" - glass_name = "glass of cream" + glass_name = "cream" glass_desc = "Ewwww..." cup_icon_state = "cup_cream" @@ -589,8 +575,7 @@ description = "An opaque white liquid made from soybeans." color = "#DFDFC7" - glass_icon_state = "glass_white" - glass_name = "glass of soy milk" + glass_name = "soy milk" glass_desc = "White and nutritious soy goodness!" cup_icon_state = "cup_cream" @@ -607,7 +592,6 @@ adj_sleepy = -3 adj_temp = 20 - glass_icon_state = "bigteacup" glass_name = "cup of tea" glass_desc = "Tasty black tea, it has antioxidants, it's good for you!" @@ -624,10 +608,9 @@ color = "#104038" // rgb: 16, 64, 56 adj_temp = -5 - glass_icon_state = "icedteaglass" - glass_name = "glass of iced tea" + glass_name = "iced tea" glass_desc = "No relation to a certain rap artist/ actor." - glass_center_of_mass = list("x"=15, "y"=10) + glass_special = list(DRINK_ICE) /datum/reagent/drink/coffee name = "Coffee" @@ -640,14 +623,14 @@ adj_temp = 25 overdose = 45 - glass_icon_state = "hot_coffee" - glass_name = "mug of coffee" - glass_desc = "Don't drop it, or you'll send scalding liquid and porcelain shards everywhere." - cup_icon_state = "cup_coffee" cup_name = "cup of coffee" cup_desc = "Don't drop it, or you'll send scalding liquid and porcelain shards everywhere." + glass_name = "cup of coffee" + glass_desc = "Don't drop it, or you'll send scalding liquid and glass shards everywhere." + + /datum/reagent/drink/coffee/affect_ingest(var/mob/living/carbon/M, var/alien, var/removed) if(alien == IS_DIONA) return @@ -680,21 +663,20 @@ color = "#102838" adj_temp = -5 - glass_icon_state = "icedcoffeeglass" - glass_name = "glass of iced coffee" + glass_name = "iced coffee" glass_desc = "A drink to perk you up and refresh you!" + glass_special = list(DRINK_ICE) /datum/reagent/drink/coffee/soy_latte name = "Soy Latte" id = "soy_latte" description = "A nice and tasty beverage while you are reading your hippie books." - color = "#664300" + color = "#C65905" adj_temp = 5 - glass_icon_state = "soy_latte" - glass_name = "glass of soy latte" glass_desc = "A nice and refreshing beverage while you are reading." - glass_center_of_mass = list("x"=15, "y"=9) + glass_name = "soy latte" + glass_desc = "A nice and refrshing beverage while you are reading." cup_icon_state = "cup_latte" cup_name = "cup of soy latte" @@ -708,13 +690,11 @@ name = "Cafe Latte" id = "cafe_latte" description = "A nice, strong and tasty beverage while you are reading." - color = "#664300" // rgb: 102, 67, 0 + color = "#C65905" adj_temp = 5 - glass_icon_state = "cafe_latte" - glass_name = "glass of cafe latte" + glass_name = "cafe latte" glass_desc = "A nice, strong and refreshing beverage while you are reading." - glass_center_of_mass = list("x"=15, "y"=9) cup_icon_state = "cup_latte" cup_name = "cup of cafe latte" @@ -733,8 +713,7 @@ nutrition = 2 adj_temp = 5 - glass_icon_state = "chocolateglass" - glass_name = "glass of hot chocolate" + glass_name = "hot chocolate" glass_desc = "Made with love! And cocoa beans." cup_icon_state = "cup_coco" @@ -750,9 +729,9 @@ adj_drowsy = -3 adj_temp = -5 - glass_icon_state = "glass_clear" - glass_name = "glass of soda water" + glass_name = "soda water" glass_desc = "Soda water. Why not make a scotch and soda?" + glass_special = list(DRINK_FIZZ) /datum/reagent/drink/soda/grapesoda name = "Grape Soda" @@ -761,22 +740,22 @@ color = "#421C52" adj_drowsy = -3 - glass_icon_state = "gsodaglass" - glass_name = "glass of grape soda" + glass_name = "grape soda" glass_desc = "Looks like a delicious drink!" + glass_special = list(DRINK_FIZZ) /datum/reagent/drink/soda/tonic name = "Tonic Water" id = "tonic" description = "It tastes strange but at least the quinine keeps the Space Malaria at bay." - color = "#664300" + color = "#619494" + adj_dizzy = -5 adj_drowsy = -3 adj_sleepy = -2 adj_temp = -5 - glass_icon_state = "glass_clear" - glass_name = "glass of tonic water" + glass_name = "tonic water" glass_desc = "Quinine tastes funny, but at least it'll keep that Space Malaria away." /datum/reagent/drink/soda/lemonade @@ -786,9 +765,9 @@ color = "#FFFF00" adj_temp = -5 - glass_icon_state = "lemonadeglass" - glass_name = "glass of lemonade" + glass_name = "lemonade" glass_desc = "Oh the nostalgia..." + glass_special = list(DRINK_FIZZ) /datum/reagent/drink/soda/kiraspecial name = "Kira Special" @@ -797,10 +776,9 @@ color = "#CCCC99" adj_temp = -5 - glass_icon_state = "kiraspecial" - glass_name = "glass of Kira Special" + glass_name = "Kira Special" glass_desc = "Long live the guy who everyone had mistaken for a girl. Baka!" - glass_center_of_mass = list("x"=16, "y"=12) + glass_special = list(DRINK_FIZZ) /datum/reagent/drink/soda/brownstar name = "Brown Star" @@ -809,8 +787,7 @@ color = "#9F3400" adj_temp = -2 - glass_icon_state = "brownstar" - glass_name = "glass of Brown Star" + glass_name = "Brown Star" glass_desc = "It's not what it sounds like..." /datum/reagent/drink/milkshake @@ -820,10 +797,8 @@ color = "#AEE5E4" adj_temp = -9 - glass_icon_state = "milkshake" - glass_name = "glass of milkshake" + glass_name = "milkshake" glass_desc = "Glorious brainfreezing mixture." - glass_center_of_mass = list("x"=16, "y"=7) /datum/reagent/milkshake/affect_ingest(var/mob/living/carbon/M, var/alien, var/removed) ..() @@ -853,10 +828,8 @@ color = "#485000" adj_temp = -5 - glass_icon_state = "rewriter" - glass_name = "glass of Rewriter" + glass_name = "Rewriter" glass_desc = "The secret of the sanctuary of the Libarian..." - glass_center_of_mass = list("x"=16, "y"=9) /datum/reagent/drink/rewriter/affect_ingest(var/mob/living/carbon/M, var/alien, var/removed) ..() @@ -870,10 +843,9 @@ adj_temp = -5 adj_sleepy = -2 - glass_icon_state = "nuka_colaglass" - glass_name = "glass of Nuka-Cola" + glass_name = "Nuka-Cola" glass_desc = "Don't cry, Don't raise your eye, It's only nuclear wasteland" - glass_center_of_mass = list("x"=16, "y"=6) + glass_special = list(DRINK_FIZZ) /datum/reagent/drink/nuka_cola/affect_ingest(var/mob/living/carbon/M, var/alien, var/removed) ..() @@ -889,10 +861,8 @@ description = "Made in the modern day with proper pomegranate substitute. Who uses real fruit, anyways?" color = "#FF004F" - glass_icon_state = "grenadineglass" - glass_name = "glass of grenadine syrup" + glass_name = "grenadine syrup" glass_desc = "Sweet and tangy, a bar syrup used to add color or flavor to drinks." - glass_center_of_mass = list("x"=17, "y"=6) /datum/reagent/drink/soda/space_cola name = "Space Cola" @@ -903,9 +873,9 @@ adj_drowsy = -3 adj_temp = -5 - glass_icon_state = "glass_brown" - glass_name = "glass of Space Cola" + glass_name = "Space Cola" glass_desc = "A glass of refreshing Space Cola" + glass_special = list(DRINK_FIZZ) /datum/reagent/drink/soda/spacemountainwind name = "Mountain Wind" @@ -916,9 +886,9 @@ adj_sleepy = -1 adj_temp = -5 - glass_icon_state = "Space_mountain_wind_glass" - glass_name = "glass of Space Mountain Wind" + glass_name = "Space Mountain Wind" glass_desc = "Space Mountain Wind. As you know, there are no mountains in space, only wind." + glass_special = list(DRINK_FIZZ) /datum/reagent/drink/soda/dr_gibb name = "Dr. Gibb" @@ -928,8 +898,7 @@ adj_drowsy = -6 adj_temp = -5 - glass_icon_state = "dr_gibb_glass" - glass_name = "glass of Dr. Gibb" + glass_name = "Dr. Gibb" glass_desc = "Dr. Gibb. Not as dangerous as the name might imply." /datum/reagent/drink/soda/space_up @@ -939,9 +908,9 @@ color = "#202800" adj_temp = -8 - glass_icon_state = "space-up_glass" - glass_name = "glass of Space-up" + glass_name = "Space-up" glass_desc = "Space-up. It helps keep your cool." + glass_special = list(DRINK_FIZZ) /datum/reagent/drink/soda/lemon_lime name = "Lemon Lime" @@ -950,9 +919,9 @@ color = "#878F00" adj_temp = -8 - glass_icon_state = "lemonlime" - glass_name = "glass of lemon lime soda" + glass_name = "lemon lime soda" glass_desc = "A tangy substance made of 0.5% natural citrus!" + glass_special = list(DRINK_FIZZ) /datum/reagent/drink/doctor_delight name = "The Doctor's Delight" @@ -962,10 +931,8 @@ color = "#FF8CFF" nutrition = 1 - glass_icon_state = "doctorsdelightglass" - glass_name = "glass of The Doctor's Delight" + glass_name = "The Doctor's Delight" glass_desc = "A healthy mixture of juices, guaranteed to keep you healthy until the next toolboxing takes place." - glass_center_of_mass = list("x"=16, "y"=8) /datum/reagent/drink/doctor_delight/affect_ingest(var/mob/living/carbon/M, var/alien, var/removed) ..() @@ -1018,17 +985,16 @@ color = "#619494" adj_temp = -5 - glass_icon_state = "iceglass" - glass_name = "glass of ice" + glass_name = "ice" glass_desc = "Generally, you're supposed to put something else in there too..." + glass_icon = DRINK_ICON_NOISY /datum/reagent/drink/nothing name = "Nothing" id = "nothing" description = "Absolutely nothing." - glass_icon_state = "nothing" - glass_name = "glass of nothing" + glass_name = "nothing" glass_desc = "Absolutely nothing." /* Alcohol */ @@ -1042,35 +1008,29 @@ color = "#33EE00" strength = 12 - glass_icon_state = "absintheglass" - glass_name = "glass of absinthe" + glass_name = "absinthe" glass_desc = "Wormwood, anise, oh my." - glass_center_of_mass = list("x"=16, "y"=5) /datum/reagent/ethanol/ale name = "Ale" id = "ale" description = "A dark alchoholic beverage made by malted barley and yeast." - color = "#664300" + color = "#4C3100" strength = 50 - glass_icon_state = "aleglass" - glass_name = "glass of ale" + glass_name = "ale" glass_desc = "A freezing pint of delicious ale" - glass_center_of_mass = list("x"=16, "y"=8) /datum/reagent/ethanol/beer name = "Beer" id = "beer" description = "An alcoholic beverage made from malted grains, hops, yeast, and water." - color = "#664300" + color = "#FFD300" strength = 50 nutriment_factor = 1 - glass_icon_state = "beerglass" - glass_name = "glass of beer" + glass_name = "beer" glass_desc = "A freezing pint of beer" - glass_center_of_mass = list("x"=16, "y"=8) /datum/reagent/ethanol/beer/affect_ingest(var/mob/living/carbon/M, var/alien, var/removed) ..() @@ -1085,10 +1045,8 @@ color = "#0000CD" strength = 15 - glass_icon_state = "curacaoglass" - glass_name = "glass of blue curacao" + glass_name = "blue curacao" glass_desc = "Exotically blue, fruity drink, distilled from oranges." - glass_center_of_mass = list("x"=16, "y"=5) /datum/reagent/ethanol/cognac name = "Cognac" @@ -1097,22 +1055,18 @@ color = "#AB3C05" strength = 15 - glass_icon_state = "cognacglass" - glass_name = "glass of cognac" + glass_name = "cognac" glass_desc = "Damn, you feel like some kind of French aristocrat just by holding this." - glass_center_of_mass = list("x"=16, "y"=6) /datum/reagent/ethanol/deadrum name = "Deadrum" id = "deadrum" description = "Popular with the sailors. Not very popular with everyone else." - color = "#664300" + color = "#ECB633" strength = 50 - glass_icon_state = "rumglass" - glass_name = "glass of rum" + glass_name = "rum" glass_desc = "Now you want to Pray for a pirate suit, don't you?" - glass_center_of_mass = list("x"=16, "y"=12) /datum/reagent/ethanol/deadrum/affect_ingest(var/mob/living/carbon/M, var/alien, var/removed) ..() @@ -1124,13 +1078,11 @@ name = "Gin" id = "gin" description = "It's gin. In space. I say, good sir." - color = "#664300" + color = "#0064C6" strength = 50 - glass_icon_state = "ginvodkaglass" - glass_name = "glass of gin" + glass_name = "gin" glass_desc = "A crystal clear glass of Griffeater gin." - glass_center_of_mass = list("x"=16, "y"=12) //Base type for alchoholic drinks containing coffee /datum/reagent/ethanol/coffee @@ -1168,13 +1120,11 @@ name = "Kahlua" id = "kahlua" description = "A widely known, Mexican coffee-flavoured liqueur. In production since 1936!" - color = "#664300" + color = "#4C3100" strength = 15 - glass_icon_state = "kahluaglass" - glass_name = "glass of RR coffee liquor" + glass_name = "RR coffee liquor" glass_desc = "DAMN, THIS THING LOOKS ROBUST" - glass_center_of_mass = list("x"=15, "y"=7) /datum/reagent/ethanol/melonliquor name = "Melon Liquor" @@ -1183,34 +1133,28 @@ color = "#138808" // rgb: 19, 136, 8 strength = 50 - glass_icon_state = "emeraldglass" - glass_name = "glass of melon liquor" + glass_name = "melon liquor" glass_desc = "A relatively sweet and fruity 46 proof liquor." - glass_center_of_mass = list("x"=16, "y"=5) /datum/reagent/ethanol/rum name = "Rum" id = "rum" description = "Yohoho and all that." - color = "#664300" + color = "#ECB633" strength = 15 - glass_icon_state = "rumglass" - glass_name = "glass of rum" + glass_name = "rum" glass_desc = "Now you want to Pray for a pirate suit, don't you?" - glass_center_of_mass = list("x"=16, "y"=12) /datum/reagent/ethanol/sake name = "Sake" id = "sake" description = "Anime's favorite drink." - color = "#664300" + color = "#DDDDDD" strength = 25 - glass_icon_state = "ginvodkaglass" - glass_name = "glass of sake" + glass_name = "sake" glass_desc = "A glass of sake." - glass_center_of_mass = list("x"=16, "y"=12) /datum/reagent/ethanol/tequila name = "Tequila" @@ -1219,10 +1163,8 @@ color = "#FFFF91" strength = 25 - glass_icon_state = "tequillaglass" - glass_name = "glass of Tequila" + glass_name = "Tequilla" glass_desc = "Now all that's missing is the weird colored shades!" - glass_center_of_mass = list("x"=16, "y"=12) /datum/reagent/ethanol/thirteenloko name = "Thirteen Loko" @@ -1232,8 +1174,7 @@ strength = 25 nutriment_factor = 1 - glass_icon_state = "thirteen_loko_glass" - glass_name = "glass of Thirteen Loko" + glass_name = "Thirteen Loko" glass_desc = "This is a glass of Thirteen Loko, it appears to be of the highest quality. The drink, not the glass." /datum/reagent/ethanol/thirteenloko/affect_ingest(var/mob/living/carbon/M, var/alien, var/removed) @@ -1252,10 +1193,8 @@ color = "#91FF91" // rgb: 145, 255, 145 strength = 15 - glass_icon_state = "vermouthglass" - glass_name = "glass of vermouth" + glass_name = "vermouth" glass_desc = "You wonder why you're even drinking this straight." - glass_center_of_mass = list("x"=16, "y"=12) /datum/reagent/ethanol/vodka name = "Vodka" @@ -1264,10 +1203,8 @@ color = "#0064C8" // rgb: 0, 100, 200 strength = 15 - glass_icon_state = "ginvodkaglass" - glass_name = "glass of vodka" + glass_name = "vodka" glass_desc = "The glass contain wodka. Xynta." - glass_center_of_mass = list("x"=16, "y"=12) /datum/reagent/ethanol/vodka/affect_ingest(var/mob/living/carbon/M, var/alien, var/removed) ..() @@ -1277,13 +1214,11 @@ name = "Whiskey" id = "whiskey" description = "A superb and well-aged single-malt whiskey. Damn." - color = "#664300" + color = "#4C3100" strength = 25 - glass_icon_state = "whiskeyglass" - glass_name = "glass of whiskey" + glass_name = "whiskey" glass_desc = "The silky, smokey whiskey goodness inside the glass makes the drink look very classy." - glass_center_of_mass = list("x"=16, "y"=12) /datum/reagent/ethanol/wine name = "Wine" @@ -1292,10 +1227,8 @@ color = "#7E4043" // rgb: 126, 64, 67 strength = 15 - glass_icon_state = "wineglass" - glass_name = "glass of wine" + glass_name = "wine" glass_desc = "A very classy looking drink." - glass_center_of_mass = list("x"=15, "y"=7) // Cocktails @@ -1307,73 +1240,61 @@ color = "#365000" strength = 30 - glass_icon_state = "acidspitglass" - glass_name = "glass of Acid Spit" + glass_name = "Acid Spit" glass_desc = "A drink from the company archives. Made from live aliens." - glass_center_of_mass = list("x"=16, "y"=7) /datum/reagent/ethanol/alliescocktail name = "Allies Cocktail" id = "alliescocktail" description = "A drink made from your allies, not as sweet as when made from your enemies." - color = "#664300" + color = "#D8AC45" strength = 25 - glass_icon_state = "alliescocktail" - glass_name = "glass of Allies cocktail" + glass_name = "Allies cocktail" glass_desc = "A drink made from your allies." - glass_center_of_mass = list("x"=17, "y"=8) /datum/reagent/ethanol/aloe name = "Aloe" id = "aloe" description = "So very, very, very good." - color = "#664300" + color = "#B7EA75" strength = 15 - glass_icon_state = "aloe" - glass_name = "glass of Aloe" + glass_name = "Aloe" glass_desc = "Very, very, very good." - glass_center_of_mass = list("x"=17, "y"=8) /datum/reagent/ethanol/amasec name = "Amasec" id = "amasec" description = "Official drink of the Gun Club!" reagent_state = LIQUID - color = "#664300" + color = "#FF975D" strength = 25 - glass_icon_state = "amasecglass" - glass_name = "glass of Amasec" + glass_name = "Amasec" glass_desc = "Always handy before COMBAT!!!" - glass_center_of_mass = list("x"=16, "y"=9) /datum/reagent/ethanol/andalusia name = "Andalusia" id = "andalusia" description = "A nice, strangely named drink." - color = "#664300" + color = "#F4EA4A" strength = 15 - glass_icon_state = "andalusia" - glass_name = "glass of Andalusia" + glass_name = "Andalusia" glass_desc = "A nice, strange named drink." - glass_center_of_mass = list("x"=16, "y"=9) /datum/reagent/ethanol/antifreeze name = "Anti-freeze" id = "antifreeze" description = "Ultimate refreshment." - color = "#664300" + color = "#56DEEA" strength = 12 adj_temp = 20 targ_temp = 330 - glass_icon_state = "antifreeze" - glass_name = "glass of Anti-freeze" + glass_name = "Anti-freeze" glass_desc = "The ultimate refreshment." - glass_center_of_mass = list("x"=16, "y"=8) /datum/reagent/ethanol/atomicbomb name = "Atomic Bomb" @@ -1384,20 +1305,17 @@ strength = 10 druggy = 50 - glass_icon_state = "atomicbombglass" - glass_name = "glass of Atomic Bomb" + glass_name = "Atomic Bomb" glass_desc = "We cannot take legal responsibility for your actions after imbibing." - glass_center_of_mass = list("x"=15, "y"=7) /datum/reagent/ethanol/coffee/b52 name = "B-52" id = "b52" description = "Coffee, Irish Cream, and cognac. You will get bombed." - color = "#664300" + color = "#997650" strength = 12 - glass_icon_state = "b52glass" - glass_name = "glass of B-52" + glass_name = "B-52" glass_desc = "Kahlua, Irish cream, and congac. You will get bombed." /datum/reagent/ethanol/bahama_mama @@ -1407,10 +1325,8 @@ color = "#FF7F3B" strength = 25 - glass_icon_state = "bahama_mama" - glass_name = "glass of Bahama Mama" + glass_name = "Bahama Mama" glass_desc = "Tropical cocktail" - glass_center_of_mass = list("x"=16, "y"=5) /datum/reagent/ethanol/bananahonk name = "Banana Mama" @@ -1420,35 +1336,29 @@ color = "#FFFF91" strength = 12 - glass_icon_state = "bananahonkglass" - glass_name = "glass of Banana Honk" + glass_name = "Banana Honk" glass_desc = "A drink from Banana Heaven." - glass_center_of_mass = list("x"=16, "y"=8) /datum/reagent/ethanol/barefoot name = "Barefoot" id = "barefoot" description = "Barefoot and pregnant" - color = "#664300" + color = "#FFCDEA" strength = 30 - glass_icon_state = "b&p" - glass_name = "glass of Barefoot" + glass_name = "Barefoot" glass_desc = "Barefoot and pregnant" - glass_center_of_mass = list("x"=17, "y"=8) /datum/reagent/ethanol/beepsky_smash name = "Beepsky Smash" id = "beepskysmash" description = "Deny drinking this and prepare for THE LAW." reagent_state = LIQUID - color = "#664300" + color = "#404040" strength = 12 - glass_icon_state = "beepskysmashglass" glass_name = "Beepsky Smash" glass_desc = "Heavy, hot and strong. Just like the Iron fist of the LAW." - glass_center_of_mass = list("x"=18, "y"=10) /datum/reagent/ethanol/beepsky_smash/affect_ingest(var/mob/living/carbon/M, var/alien, var/removed) ..() @@ -1462,8 +1372,7 @@ strength = 50 nutriment_factor = 2 - glass_icon_state = "glass_brown" - glass_name = "glass of bilk" + glass_name = "bilk" glass_desc = "A brew of milk and beer. For those alcoholics who fear osteoporosis." /datum/reagent/ethanol/black_russian @@ -1473,20 +1382,17 @@ color = "#360000" strength = 15 - glass_icon_state = "blackrussianglass" - glass_name = "glass of Black Russian" + glass_name = "Black Russian" glass_desc = "For the lactose-intolerant. Still as classy as a White Russian." - glass_center_of_mass = list("x"=16, "y"=9) /datum/reagent/ethanol/bloody_mary name = "Bloody Mary" id = "bloodymary" description = "A strange yet pleasurable mixture made of vodka, tomato and lime juice. Or at least you THINK the red stuff is tomato juice." - color = "#664300" + color = "#B40000" strength = 15 - glass_icon_state = "bloodymaryglass" - glass_name = "glass of Bloody Mary" + glass_name = "Bloody Mary" glass_desc = "Tomato juice, mixed with Vodka and a lil' bit of lime. Tastes like liquid murder." /datum/reagent/ethanol/booger @@ -1496,21 +1402,18 @@ color = "#8CFF8C" strength = 30 - glass_icon_state = "booger" - glass_name = "glass of Booger" + glass_name = "Booger" glass_desc = "Ewww..." /datum/reagent/ethanol/coffee/brave_bull name = "Brave Bull" id = "bravebull" description = "It's just as effective as Dutch-Courage!" - color = "#664300" + color = "#4C3100" strength = 15 - glass_icon_state = "bravebullglass" - glass_name = "glass of Brave Bull" + glass_name = "Brave Bull" glass_desc = "Tequilla and coffee liquor, brought together in a mouthwatering mixture. Drink up." - glass_center_of_mass = list("x"=15, "y"=8) /datum/reagent/ethanol/changelingsting name = "Changeling Sting" @@ -1519,21 +1422,18 @@ color = "#2E6671" strength = 10 - glass_icon_state = "changelingsting" - glass_name = "glass of Changeling Sting" + glass_name = "Changeling Sting" glass_desc = "A stingy drink." /datum/reagent/ethanol/martini name = "Classic Martini" id = "martini" description = "Vermouth with Gin. Not quite how 007 enjoyed it, but still delicious." - color = "#664300" + color = "#0064C8" strength = 25 - glass_icon_state = "martiniglass" - glass_name = "glass of classic martini" + glass_name = "classic martini" glass_desc = "Damn, the bartender even stirred it, not shook it." - glass_center_of_mass = list("x"=17, "y"=8) /datum/reagent/ethanol/cuba_libre name = "Cuba Libre" @@ -1542,10 +1442,8 @@ color = "#3E1B00" strength = 30 - glass_icon_state = "cubalibreglass" - glass_name = "glass of Cuba Libre" + glass_name = "Cuba Libre" glass_desc = "A classic mix of rum and cola." - glass_center_of_mass = list("x"=16, "y"=8) /datum/reagent/ethanol/demonsblood name = "Demons Blood" @@ -1554,10 +1452,8 @@ color = "#820000" strength = 15 - glass_icon_state = "demonsblood" - glass_name = "glass of Demons' Blood" + glass_name = "Demons' Blood" glass_desc = "Just looking at this thing makes the hair at the back of your neck stand up." - glass_center_of_mass = list("x"=16, "y"=2) /datum/reagent/ethanol/devilskiss name = "Devils Kiss" @@ -1566,10 +1462,8 @@ color = "#A68310" strength = 15 - glass_icon_state = "devilskiss" - glass_name = "glass of Devil's Kiss" + glass_name = "Devil's Kiss" glass_desc = "Creepy time!" - glass_center_of_mass = list("x"=16, "y"=8) /datum/reagent/ethanol/driestmartini name = "Driest Martini" @@ -1579,33 +1473,29 @@ color = "#2E6671" strength = 12 - glass_icon_state = "driestmartiniglass" - glass_name = "glass of Driest Martini" + glass_name = "Driest Martini" glass_desc = "Only for the experienced. You think you see sand floating in the glass." - glass_center_of_mass = list("x"=17, "y"=8) /datum/reagent/ethanol/ginfizz name = "Gin Fizz" id = "ginfizz" description = "Refreshingly lemony, deliciously dry." - color = "#664300" + color = "#FFFFAE" strength = 30 - glass_icon_state = "ginfizzglass" - glass_name = "glass of gin fizz" + glass_name = "gin fizz" glass_desc = "Refreshingly lemony, deliciously dry." - glass_center_of_mass = list("x"=16, "y"=7) /datum/reagent/ethanol/grog name = "Grog" id = "grog" description = "Watered-down rum, pirate approved!" reagent_state = LIQUID - color = "#664300" + color = "#FFBB00" strength = 100 - glass_icon_state = "grogglass" - glass_name = "glass of grog" + + glass_name = "grog" glass_desc = "A fine and cepa drink for Space." /datum/reagent/ethanol/erikasurprise @@ -1615,87 +1505,76 @@ color = "#2E6671" strength = 15 - glass_icon_state = "erikasurprise" - glass_name = "glass of Erika Surprise" + glass_name = "Erika Surprise" glass_desc = "The surprise is, it's green!" - glass_center_of_mass = list("x"=16, "y"=9) /datum/reagent/ethanol/gargle_blaster name = "Pan-Galactic Gargle Blaster" id = "gargleblaster" description = "Whoah, this stuff looks volatile!" reagent_state = LIQUID - color = "#664300" + color = "#7F00FF" strength = 10 - glass_icon_state = "gargleblasterglass" - glass_name = "glass of Pan-Galactic Gargle Blaster" + glass_name = "Pan-Galactic Gargle Blaster" glass_desc = "Does... does this mean that Arthur and Ford are on the station? Oh joy." - glass_center_of_mass = list("x"=17, "y"=6) /datum/reagent/ethanol/gintonic name = "Gin and Tonic" id = "gintonic" description = "An all time classic, mild cocktail." - color = "#664300" + color = "#0064C8" strength = 50 - glass_icon_state = "gintonicglass" - glass_name = "glass of gin and tonic" + glass_name = "gin and tonic" glass_desc = "A mild but still great cocktail. Drink up, like a true Englishman." - glass_center_of_mass = list("x"=16, "y"=7) /datum/reagent/ethanol/goldschlager name = "Goldschlager" id = "goldschlager" description = "100 proof cinnamon schnapps, made for alcoholic teen girls on spring break." - color = "#664300" + color = "#F4E46D" strength = 15 - glass_icon_state = "ginvodkaglass" - glass_name = "glass of Goldschlager" + glass_name = "Goldschlager" glass_desc = "100 proof that teen girls will drink anything with gold in it." - glass_center_of_mass = list("x"=16, "y"=12) /datum/reagent/ethanol/hippies_delight name = "Hippies' Delight" id = "hippiesdelight" description = "You just don't get it maaaan." reagent_state = LIQUID - color = "#664300" + color = "#FF88FF" strength = 15 druggy = 50 - glass_icon_state = "hippiesdelightglass" - glass_name = "glass of Hippie's Delight" + glass_name = "Hippie's Delight" glass_desc = "A drink enjoyed by people during the 1960's." - glass_center_of_mass = list("x"=16, "y"=8) /datum/reagent/ethanol/hooch name = "Hooch" id = "hooch" description = "Either someone's failure at cocktail making or attempt in alchohol production. In any case, do you really want to drink that?" - color = "#664300" + color = "#4C3100" strength = 25 toxicity = 2 - glass_icon_state = "glass_brown2" - glass_name = "glass of Hooch" + glass_name = "Hooch" glass_desc = "You've really hit rock bottom now... your liver packed its bags and left last night." /datum/reagent/ethanol/iced_beer name = "Iced Beer" id = "iced_beer" description = "A beer which is so cold the air around it freezes." - color = "#664300" + + color = "#FFD300" strength = 50 adj_temp = -20 targ_temp = 270 - glass_icon_state = "iced_beerglass" - glass_name = "glass of iced beer" + glass_name = "iced beer" glass_desc = "A beer so frosty, the air around it freezes." - glass_center_of_mass = list("x"=16, "y"=7) + glass_special = list(DRINK_ICE) /datum/reagent/ethanol/irishcarbomb name = "Irish Car Bomb" @@ -1704,81 +1583,68 @@ color = "#2E6671" strength = 15 - glass_icon_state = "irishcarbomb" - glass_name = "glass of Irish Car Bomb" + glass_name = "Irish Car Bomb" glass_desc = "An irish car bomb." - glass_center_of_mass = list("x"=16, "y"=8) /datum/reagent/ethanol/coffee/irishcoffee name = "Irish Coffee" id = "irishcoffee" description = "Coffee, and alcohol. More fun than a Mimosa to drink in the morning." - color = "#664300" + color = "#4C3100" strength = 15 - glass_icon_state = "irishcoffeeglass" - glass_name = "glass of Irish coffee" + glass_name = "Irish coffee" glass_desc = "Coffee and alcohol. More fun than a Mimosa to drink in the morning." - glass_center_of_mass = list("x"=15, "y"=10) /datum/reagent/ethanol/irish_cream name = "Irish Cream" id = "irishcream" description = "Whiskey-imbued cream, what else would you expect from the Irish." - color = "#664300" + color = "#DDDD9A3" strength = 25 - glass_icon_state = "irishcreamglass" - glass_name = "glass of Irish cream" + glass_name = "Irish cream" glass_desc = "It's cream, mixed with whiskey. What else would you expect from the Irish?" - glass_center_of_mass = list("x"=16, "y"=9) /datum/reagent/ethanol/longislandicedtea name = "Long Island Iced Tea" id = "longislandicedtea" description = "The liquor cabinet, brought together in a delicious mix. Intended for middle-aged alcoholic women only." - color = "#664300" + color = "#895B1F" strength = 12 - glass_icon_state = "longislandicedteaglass" - glass_name = "glass of Long Island iced tea" + glass_name = "Long Island iced tea" glass_desc = "The liquor cabinet, brought together in a delicious mix. Intended for middle-aged alcoholic women only." - glass_center_of_mass = list("x"=16, "y"=8) /datum/reagent/ethanol/manhattan name = "Manhattan" id = "manhattan" description = "The Detective's undercover drink of choice. He never could stomach gin..." - color = "#664300" + color = "#C13600" strength = 15 - glass_icon_state = "manhattanglass" - glass_name = "glass of Manhattan" + glass_name = "Manhattan" glass_desc = "The Detective's undercover drink of choice. He never could stomach gin..." - glass_center_of_mass = list("x"=17, "y"=8) /datum/reagent/ethanol/manhattan_proj name = "Manhattan Project" id = "manhattan_proj" description = "A scientist's drink of choice, for pondering ways to blow up the station." - color = "#664300" + color = "#C15D00" strength = 10 druggy = 30 - glass_icon_state = "proj_manhattanglass" - glass_name = "glass of Manhattan Project" + glass_name = "Manhattan Project" glass_desc = "A scienitst drink of choice, for thinking how to blow up the station." - glass_center_of_mass = list("x"=17, "y"=8) /datum/reagent/ethanol/manly_dorf name = "The Manly Dorf" id = "manlydorf" description = "Beer and Ale, brought together in a delicious mix. Intended for true men only." - color = "#664300" + color = "#4C3100" strength = 25 - glass_icon_state = "manlydorfglass" - glass_name = "glass of The Manly Dorf" + glass_name = "The Manly Dorf" glass_desc = "A manly concotion made from Ale and Beer. Intended for true men only." /datum/reagent/ethanol/margarita @@ -1788,34 +1654,29 @@ color = "#8CFF8C" strength = 15 - glass_icon_state = "margaritaglass" - glass_name = "glass of margarita" + glass_name = "margarita" glass_desc = "On the rocks with salt on the rim. Arriba~!" - glass_center_of_mass = list("x"=16, "y"=8) /datum/reagent/ethanol/mead name = "Mead" id = "mead" description = "A Viking's drink, though a cheap one." reagent_state = LIQUID - color = "#664300" + color = "#FFBB00" strength = 30 nutriment_factor = 1 - glass_icon_state = "meadglass" - glass_name = "glass of mead" + glass_name = "mead" glass_desc = "A Viking's beverage, though a cheap one." - glass_center_of_mass = list("x"=17, "y"=10) /datum/reagent/ethanol/moonshine name = "Moonshine" id = "moonshine" description = "You've really hit rock bottom now... your liver packed its bags and left last night." - color = "#664300" + color = "#0064C8" strength = 12 - glass_icon_state = "glass_clear" - glass_name = "glass of moonshine" + glass_name = "moonshine" glass_desc = "You've really hit rock bottom now... your liver packed its bags and left last night." /datum/reagent/ethanol/neurotoxin @@ -1826,10 +1687,10 @@ color = "#2E2E61" strength = 10 - glass_icon_state = "neurotoxinglass" - glass_name = "glass of Neurotoxin" + glass_name = "Neurotoxin" glass_desc = "A drink that is guaranteed to knock you silly." - glass_center_of_mass = list("x"=16, "y"=8) + glass_icon = DRINK_ICON_NOISY + glass_special = list("neuroright") /datum/reagent/ethanol/neurotoxin/affect_ingest(var/mob/living/carbon/M, var/alien, var/removed) ..() @@ -1842,10 +1703,8 @@ color = "#585840" strength = 30 - glass_icon_state = "patronglass" - glass_name = "glass of Patron" + glass_name = "Patron" glass_desc = "Drinking patron in the bar, with all the subpar ladies." - glass_center_of_mass = list("x"=7, "y"=8) /datum/reagent/ethanol/pwine name = "Poison Wine" @@ -1856,10 +1715,8 @@ druggy = 50 halluci = 10 - glass_icon_state = "pwineglass" - glass_name = "glass of ???" + glass_name = "???" glass_desc = "A black ichor with an oily purple sheer on top. Are you sure you should drink this?" - glass_center_of_mass = list("x"=16, "y"=5) /datum/reagent/ethanol/pwine/affect_ingest(var/mob/living/carbon/M, var/alien, var/removed) ..() @@ -1881,24 +1738,20 @@ color = "#C73C00" strength = 30 - glass_icon_state = "red_meadglass" - glass_name = "glass of red mead" + glass_name = "red mead" glass_desc = "A true Viking's beverage, though its color is strange." - glass_center_of_mass = list("x"=17, "y"=10) /datum/reagent/ethanol/sbiten name = "Sbiten" id = "sbiten" description = "A spicy Vodka! Might be a little hot for the little guys!" - color = "#664300" + color = "#FFA371" strength = 15 adj_temp = 50 targ_temp = 360 - glass_icon_state = "sbitenglass" - glass_name = "glass of Sbiten" + glass_name = "Sbiten" glass_desc = "A spicy mix of Vodka and Spice. Very hot." - glass_center_of_mass = list("x"=17, "y"=8) /datum/reagent/ethanol/screwdrivercocktail name = "Screwdriver" @@ -1907,23 +1760,19 @@ color = "#A68310" strength = 15 - glass_icon_state = "screwdriverglass" - glass_name = "glass of Screwdriver" + glass_name = "Screwdriver" glass_desc = "A simple, yet superb mixture of Vodka and orange juice. Just the thing for the tired engineer." - glass_center_of_mass = list("x"=15, "y"=10) /datum/reagent/ethanol/silencer name = "Silencer" id = "silencer" description = "A drink from Mime Heaven." nutriment_factor = 1 - color = "#664300" + color = "#FFFFFF" strength = 12 - glass_icon_state = "silencerglass" - glass_name = "glass of Silencer" + glass_name = "Silencer" glass_desc = "A drink from mime Heaven." - glass_center_of_mass = list("x"=16, "y"=9) /datum/reagent/ethanol/singulo name = "Singulo" @@ -1932,10 +1781,8 @@ color = "#2E6671" strength = 10 - glass_icon_state = "singulo" - glass_name = "glass of Singulo" + glass_name = "Singulo" glass_desc = "A blue-space beverage." - glass_center_of_mass = list("x"=17, "y"=4) /datum/reagent/ethanol/snowwhite name = "Snow White" @@ -1944,10 +1791,8 @@ color = "#FFFFFF" strength = 30 - glass_icon_state = "snowwhite" - glass_name = "glass of Snow White" + glass_name = "Snow White" glass_desc = "A cold refreshment." - glass_center_of_mass = list("x"=16, "y"=8) /datum/reagent/ethanol/suidream name = "Sui Dream" @@ -1956,10 +1801,8 @@ color = "#00A86B" strength = 100 - glass_icon_state = "sdreamglass" - glass_name = "glass of Sui Dream" + glass_name = "Sui Dream" glass_desc = "A froofy, fruity, and sweet mixed drink. Understanding the name only brings shame." - glass_center_of_mass = list("x"=16, "y"=5) /datum/reagent/ethanol/syndicatebomb name = "Syndicate Bomb" @@ -1968,10 +1811,8 @@ color = "#2E6671" strength = 10 - glass_icon_state = "syndicatebomb" - glass_name = "glass of Syndicate Bomb" + glass_name = "Syndicate Bomb" glass_desc = "Tastes like terrorism!" - glass_center_of_mass = list("x"=16, "y"=4) /datum/reagent/ethanol/tequilla_sunrise name = "Tequila Sunrise" @@ -1980,8 +1821,7 @@ color = "#FFE48C" strength = 25 - glass_icon_state = "tequillasunriseglass" - glass_name = "glass of Tequila Sunrise" + glass_name = "Tequilla Sunrise" glass_desc = "Oh great, now you feel nostalgic about sunrises back on Terra..." /datum/reagent/ethanol/threemileisland @@ -1992,36 +1832,32 @@ strength = 10 druggy = 50 - glass_icon_state = "threemileislandglass" - glass_name = "glass of Three Mile Island iced tea" + glass_name = "Three Mile Island iced tea" glass_desc = "A glass of this is sure to prevent a meltdown." - glass_center_of_mass = list("x"=16, "y"=2) /datum/reagent/ethanol/toxins_special name = "Toxins Special" id = "phoronspecial" description = "This thing is ON FIRE! CALL THE DAMN SHUTTLE!" reagent_state = LIQUID - color = "#664300" + color = "#7F00FF" strength = 10 adj_temp = 15 targ_temp = 330 - glass_icon_state = "toxinsspecialglass" - glass_name = "glass of Toxins Special" + glass_name = "Toxins Special" glass_desc = "Whoah, this thing is on FIRE" /datum/reagent/ethanol/vodkamartini name = "Vodka Martini" id = "vodkamartini" description = "Vodka with Gin. Not quite how 007 enjoyed it, but still delicious." - color = "#664300" + color = "#0064C8" strength = 12 - glass_icon_state = "martiniglass" - glass_name = "glass of vodka martini" + glass_name = "vodka martini" glass_desc ="A bastardisation of the classic martini. Still great." - glass_center_of_mass = list("x"=17, "y"=8) + /datum/reagent/ethanol/vodkatonic name = "Vodka and Tonic" @@ -2030,10 +1866,9 @@ color = "#0064C8" // rgb: 0, 100, 200 strength = 15 - glass_icon_state = "vodkatonicglass" - glass_name = "glass of vodka and tonic" + glass_name = "vodka and tonic" glass_desc = "For when a gin and tonic isn't Russian enough." - glass_center_of_mass = list("x"=16, "y"=7) + /datum/reagent/ethanol/white_russian name = "White Russian" @@ -2042,10 +1877,9 @@ color = "#A68340" strength = 15 - glass_icon_state = "whiterussianglass" - glass_name = "glass of White Russian" + glass_name = "White Russian" glass_desc = "A very nice looking drink. But that's just, like, your opinion, man." - glass_center_of_mass = list("x"=16, "y"=9) + /datum/reagent/ethanol/whiskey_cola name = "Whiskey Cola" @@ -2054,22 +1888,19 @@ color = "#3E1B00" strength = 25 - glass_icon_state = "whiskeycolaglass" - glass_name = "glass of whiskey cola" + glass_name = "whiskey cola" glass_desc = "An innocent-looking mixture of cola and Whiskey. Delicious." - glass_center_of_mass = list("x"=16, "y"=9) + /datum/reagent/ethanol/whiskeysoda name = "Whiskey Soda" id = "whiskeysoda" description = "For the more refined griffon." - color = "#664300" + color = "#EAB300" strength = 15 - glass_icon_state = "whiskeysodaglass2" - glass_name = "glass of whiskey soda" + glass_name = "whiskey soda" glass_desc = "Ultimate refreshment." - glass_center_of_mass = list("x"=16, "y"=9) /datum/reagent/ethanol/specialwhiskey // I have no idea what this is and where it comes from name = "Special Blend Whiskey" @@ -2078,7 +1909,5 @@ color = "#523600" strength = 7 - glass_icon_state = "whiskeyglass" - glass_name = "glass of special blend whiskey" - glass_desc = "Just when you thought regular station whiskey was good... This silky, amber goodness has to come along and ruin everything. The smell of it singes your nostrils." - glass_center_of_mass = list("x"=16, "y"=12) + glass_name = "special blend whiskey" + glass_desc = "Just when you thought regular station whiskey was good... This silky, amber goodness has to come along and ruin everything." diff --git a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Other.dm b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Other.dm index c3cb7b4d2b4..92d09d1e183 100644 --- a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Other.dm +++ b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Other.dm @@ -112,8 +112,7 @@ color = "#C8A5DC" affects_dead = 1 //This can even heal dead people. - glass_icon_state = "golden_cup" - glass_name = "golden cup" + glass_name = "liquid gold" glass_desc = "It's magic. We don't have to explain it." /datum/reagent/adminordrazine/affect_touch(var/mob/living/carbon/M, var/alien, var/removed) @@ -197,8 +196,7 @@ description = "An ashen-obsidian-water mix, this solution will alter certain sections of the brain's rationality." color = "#E0E8EF" - glass_icon_state = "glass_clear" - glass_name = "glass of holy water" + glass_name = "holy water" glass_desc = "An ashen-obsidian-water mix, this solution will alter certain sections of the brain's rationality." /datum/reagent/water/holywater/affect_ingest(var/mob/living/carbon/M, var/alien, var/removed) diff --git a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Toxins.dm b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Toxins.dm index bc0072511a3..884ee830f0c 100644 --- a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Toxins.dm +++ b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Toxins.dm @@ -331,13 +331,10 @@ id = "beer2" description = "An alcoholic beverage made from malted grains, hops, yeast, and water. The fermentation appears to be incomplete." //If the players manage to analyze this, they deserve to know something is wrong. reagent_state = LIQUID - color = "#664300" + color = "#FFD300" - glass_icon_state = "beerglass" - glass_name = "glass of beer" + glass_name = "beer" glass_desc = "A freezing pint of beer" - glass_center_of_mass = list("x"=16, "y"=8) - /* Drugs */ /datum/reagent/space_drugs diff --git a/code/modules/reagents/reagent_containers/drinkingglass/drinkingglass.dm b/code/modules/reagents/reagent_containers/drinkingglass/drinkingglass.dm new file mode 100644 index 00000000000..8e042c2086c --- /dev/null +++ b/code/modules/reagents/reagent_containers/drinkingglass/drinkingglass.dm @@ -0,0 +1,145 @@ +#define DRINK_ICON_FILE 'icons/pdrink.dmi' + +/var/const/DRINK_FIZZ = "fizz" +/var/const/DRINK_ICE = "ice" +/var/const/DRINK_ICON_DEFAULT = "" +/var/const/DRINK_ICON_NOISY = "_noise" + +/obj/item/weapon/reagent_containers/food/drinks/glass2 + name = "glass" // Name when empty + var/base_name = "glass" // Name to put in front of drinks, i.e. "[base_name] of [contents]" + desc = "A generic drinking glass." // Description when empty + icon = DRINK_ICON_FILE + var/base_icon = "square" // Base icon name + volume = 30 + + var/list/filling_states // List of percentages full that have icons + + var/list/extras = list() // List of extras. Two extras maximum + + var/rim_pos + + center_of_mass = list("x"=16, "y"=10) + + amount_per_transfer_from_this = 5 + possible_transfer_amounts = list(5,10,15,30) + flags = OPENCONTAINER + +/obj/item/weapon/reagent_containers/food/drinks/glass2/examine(mob/M as mob) + ..() + + for(var/I in extras) + if(istype(I, /obj/item/weapon/glass_extra)) + M << "There is \a [I] in \the [src]." + else if(istype(I, /obj/item/weapon/reagent_containers/food/snacks/fruit_slice)) + M << "There is \a [I] on the rim." + else + M << "There is \a [I] somewhere on the glass. Somehow." + + if(has_ice()) + M << "There is some ice floating in the drink." + + if(has_fizz()) + M << "It is fizzing slightly." + +/obj/item/weapon/reagent_containers/food/drinks/glass2/proc/has_ice() + if(reagents.reagent_list.len > 0) + var/datum/reagent/R = reagents.get_master_reagent() + if(!((R.id == "ice") || ("ice" in R.glass_special))) // if it's not a cup of ice, and it's not already supposed to have ice in, see if the bartender's put ice in it + if(reagents.has_reagent("ice", reagents.total_volume / 10)) // 10% ice by volume + return 1 + + return 0 + +/obj/item/weapon/reagent_containers/food/drinks/glass2/proc/has_fizz() + if(reagents.reagent_list.len > 0) + var/datum/reagent/R = reagents.get_master_reagent() + if(!("fizz" in R.glass_special)) + var/totalfizzy = 0 + for(var/datum/reagent/re in reagents.reagent_list) + if("fizz" in re.glass_special) + totalfizzy += re.volume + if(totalfizzy >= reagents.total_volume / 5) // 20% fizzy by volume + return 1 + return 0 + +/obj/item/weapon/reagent_containers/food/drinks/glass2/New() + ..() + icon_state = base_icon + +/obj/item/weapon/reagent_containers/food/drinks/glass2/on_reagent_change() + update_icon() + +/obj/item/weapon/reagent_containers/food/drinks/glass2/proc/can_add_extra(obj/item/weapon/glass_extra/GE) + if(!("[base_icon]_[GE.glass_addition]left" in icon_states(DRINK_ICON_FILE))) + return 0 + if(!("[base_icon]_[GE.glass_addition]right" in icon_states(DRINK_ICON_FILE))) + return 0 + + return 1 + +/obj/item/weapon/reagent_containers/food/drinks/glass2/update_icon() + underlays.Cut() + + if (reagents.reagent_list.len > 0) + var/datum/reagent/R = reagents.get_master_reagent() + name = "[base_name] of [R.glass_name ? R.glass_name : "something"]" + desc = R.glass_desc ? R.glass_desc : initial(desc) + + var/list/under_liquid = list() + var/list/over_liquid = list() + + var/amnt = 100 + var/percent = round((reagents.total_volume / volume) * 100) + for(var/k in filling_states) + if(percent <= k) + amnt = k + break + + if(has_ice()) + over_liquid |= "[base_icon][amnt]_ice" + + if(has_fizz()) + over_liquid |= "[base_icon][amnt]_fizz" + + for(var/S in R.glass_special) + if("[base_icon]_[S]" in icon_states(DRINK_ICON_FILE)) + under_liquid |= "[base_icon]_[S]" + else if("[base_icon][amnt]_[S]" in icon_states(DRINK_ICON_FILE)) + over_liquid |= "[base_icon][amnt]_[S]" + + for(var/k in under_liquid) + underlays += image(DRINK_ICON_FILE, src, k, -3) + + var/image/filling = image(DRINK_ICON_FILE, src, "[base_icon][amnt][R.glass_icon]", -2) + filling.color = reagents.get_color() + underlays += filling + + for(var/k in over_liquid) + underlays += image(DRINK_ICON_FILE, src, k, -1) + else + name = initial(name) + desc = initial(desc) + + var/side = "left" + for(var/item in extras) + if(istype(item, /obj/item/weapon/glass_extra)) + var/obj/item/weapon/glass_extra/GE = item + var/image/I = image(DRINK_ICON_FILE, src, "[base_icon]_[GE.glass_addition][side]") + if(GE.glass_color) + I.color = GE.glass_color + underlays += I + else if(istype(item, /obj/item/weapon/reagent_containers/food/snacks/fruit_slice)) + var/obj/FS = item + var/image/I = image(FS) + + var/fsy = rim_pos[1] - 20 + var/fsx = rim_pos[side == "left" ? 2 : 3] - 16 + + var/matrix/M = matrix() + M.Scale(0.5) + M.Translate(fsx, fsy) + I.transform = M + underlays += I + else continue + side = "right" diff --git a/code/modules/reagents/reagent_containers/drinkingglass/extras.dm b/code/modules/reagents/reagent_containers/drinkingglass/extras.dm new file mode 100644 index 00000000000..513c1b87caa --- /dev/null +++ b/code/modules/reagents/reagent_containers/drinkingglass/extras.dm @@ -0,0 +1,69 @@ +/obj/item/weapon/reagent_containers/food/drinks/glass2/attackby(obj/item/I as obj, mob/user as mob) + if(extras.len >= 2) return ..() // max 2 extras, one on each side of the drink + + if(istype(I, /obj/item/weapon/glass_extra)) + var/obj/item/weapon/glass_extra/GE = I + if(can_add_extra(GE)) + extras += GE + user.remove_from_mob(GE) + GE.loc = src + user << "You add \the [GE] to \the [src]." + update_icon() + else + user << "There's no space to put \the [GE] on \the [src]!" + else if(istype(I, /obj/item/weapon/reagent_containers/food/snacks/fruit_slice)) + var/obj/item/weapon/reagent_containers/food/snacks/fruit_slice/FS = I + extras += FS + user.remove_from_mob(FS) + FS.pixel_x = 0 // Reset its pixel offsets so the icons work! + FS.pixel_y = 0 + FS.loc = src + user << "You add \the [FS] to \the [src]." + update_icon() + else + return ..() + +/obj/item/weapon/reagent_containers/food/drinks/glass2/attack_hand(mob/user as mob) + if(src != user.get_inactive_hand()) + return ..() + + if(!extras.len) + user << "There's nothing on the glass to remove!" + return + + var/choice = input(user, "What would you like to remove from the glass?") as null|anything in extras + if(!choice || !(choice in extras)) + return + + if(user.put_in_active_hand(choice)) + user << "You remove \the [choice] from \the [src]." + extras -= choice + else + user << "Something went wrong, please try again." + + update_icon() + +/obj/item/weapon/glass_extra + name = "generic glass addition" + desc = "This goes on a glass." + var/glass_addition + var/glass_desc + var/glass_color + w_class = 1 + icon = DRINK_ICON_FILE + +/obj/item/weapon/glass_extra/stick + name = "stick" + desc = "This goes in a glass." + glass_addition = "stick" + glass_desc = "There is a stick in the glass." + icon_state = "stick" + +/obj/item/weapon/glass_extra/straw + name = "straw" + desc = "This goes in a glass." + glass_addition = "straw" + glass_desc = "There is a straw in the glass." + icon_state = "straw" + +#undef DRINK_ICON_FILE diff --git a/code/modules/reagents/reagent_containers/drinkingglass/glass_boxes.dm b/code/modules/reagents/reagent_containers/drinkingglass/glass_boxes.dm new file mode 100644 index 00000000000..d9c19321ca4 --- /dev/null +++ b/code/modules/reagents/reagent_containers/drinkingglass/glass_boxes.dm @@ -0,0 +1,75 @@ +/obj/item/weapon/storage/box/mixedglasses + name = "glassware box" + desc = "A box of assorted glassware" + can_hold = list(/obj/item/weapon/reagent_containers/food/drinks/glass2) + New() + ..() + new /obj/item/weapon/reagent_containers/food/drinks/glass2/square(src) + new /obj/item/weapon/reagent_containers/food/drinks/glass2/rocks(src) + new /obj/item/weapon/reagent_containers/food/drinks/glass2/shake(src) + new /obj/item/weapon/reagent_containers/food/drinks/glass2/cocktail(src) + new /obj/item/weapon/reagent_containers/food/drinks/glass2/shot(src) + new /obj/item/weapon/reagent_containers/food/drinks/glass2/pint(src) + new /obj/item/weapon/reagent_containers/food/drinks/glass2/mug(src) + new /obj/item/weapon/reagent_containers/food/drinks/glass2/wine(src) + +/obj/item/weapon/storage/box/glasses + name = "box of glasses" + var/glass_type = /obj/item/weapon/reagent_containers/food/drinks/glass2 + can_hold = list(/obj/item/weapon/reagent_containers/food/drinks/glass2) + New() + ..() + + for(var/i = 1 to 7) + new glass_type(src) + +/obj/item/weapon/storage/box/glasses/square + name = "box of half-pint glasses" + glass_type = /obj/item/weapon/reagent_containers/food/drinks/glass2/square + +/obj/item/weapon/storage/box/glasses/rocks + name = "box of rocks glasses" + glass_type = /obj/item/weapon/reagent_containers/food/drinks/glass2/rocks + +/obj/item/weapon/storage/box/glasses/shake + name = "box of milkshake glasses" + glass_type = /obj/item/weapon/reagent_containers/food/drinks/glass2/shake + +/obj/item/weapon/storage/box/glasses/cocktail + name = "box of cocktail glasses" + glass_type = /obj/item/weapon/reagent_containers/food/drinks/glass2/cocktail + +/obj/item/weapon/storage/box/glasses/shot + name = "box of shot glasses" + glass_type = /obj/item/weapon/reagent_containers/food/drinks/glass2/shot + +/obj/item/weapon/storage/box/glasses/pint + name = "box of pint glasses" + glass_type = /obj/item/weapon/reagent_containers/food/drinks/glass2/pint + +/obj/item/weapon/storage/box/glasses/mug + name = "box of glass mugs" + glass_type = /obj/item/weapon/reagent_containers/food/drinks/glass2/mug + +/obj/item/weapon/storage/box/glasses/wine + name = "box of wine glasses" + glass_type = /obj/item/weapon/reagent_containers/food/drinks/glass2/wine + +/obj/item/weapon/storage/box/glass_extras + name = "box of cocktail garnishings" + var/extra_type = /obj/item/weapon/glass_extra + can_hold = list(/obj/item/weapon/glass_extra) + storage_slots = 14 + New() + ..() + + for(var/i = 1 to 14) + new extra_type(src) + +/obj/item/weapon/storage/box/glass_extras/straws + name = "box of straws" + extra_type = /obj/item/weapon/glass_extra/straw + +/obj/item/weapon/storage/box/glass_extras/sticks + name = "box of drink sticks" + extra_type = /obj/item/weapon/glass_extra/stick diff --git a/code/modules/reagents/reagent_containers/drinkingglass/glass_types.dm b/code/modules/reagents/reagent_containers/drinkingglass/glass_types.dm new file mode 100644 index 00000000000..feec8bf16e7 --- /dev/null +++ b/code/modules/reagents/reagent_containers/drinkingglass/glass_types.dm @@ -0,0 +1,72 @@ +/obj/item/weapon/reagent_containers/food/drinks/glass2/square + name = "half-pint glass" + base_name = "glass" + base_icon = "square" + desc = "Your standard drinking glass." + filling_states = list(20, 40, 60, 80, 100) + volume = 30 + possible_transfer_amounts = list(5,10,15,30) + rim_pos = list(23,13,20) // y, x0, x1 + +/obj/item/weapon/reagent_containers/food/drinks/glass2/rocks + name = "rocks glass" + base_name = "glass" + base_icon = "rocks" + filling_states = list(25, 50, 75, 100) + volume = 20 + possible_transfer_amounts = list(5,10,20) + rim_pos = list(21, 10, 23) + +/obj/item/weapon/reagent_containers/food/drinks/glass2/shake + name = "milkshake glass" + base_name = "glass" + base_icon = "shake" + filling_states = list(25, 50, 75, 100) + volume = 30 + possible_transfer_amounts = list(5,10,15,30) + rim_pos = list(25, 13, 21) + +/obj/item/weapon/reagent_containers/food/drinks/glass2/cocktail + name = "cocktail glass" + base_name = "glass" + base_icon = "cocktail" + filling_states = list(33, 66, 100) + volume = 15 + possible_transfer_amounts = list(5,10,15) + rim_pos = list(22, 13, 21) + +/obj/item/weapon/reagent_containers/food/drinks/glass2/shot + name = "shot glass" + base_name = "shot" + base_icon = "shot" + filling_states = list(33, 66, 100) + volume = 5 + possible_transfer_amounts = list(1,2,5) + rim_pos = list(17, 13, 21) + +/obj/item/weapon/reagent_containers/food/drinks/glass2/pint + name = "pint glass" + base_name = "pint" + base_icon = "pint" + filling_states = list(16, 33, 50, 66, 83, 100) + volume = 60 + possible_transfer_amounts = list(5,10,15,30,60) + rim_pos = list(25, 12, 21) + +/obj/item/weapon/reagent_containers/food/drinks/glass2/mug + name = "glass mug" + base_name = "mug" + base_icon = "mug" + filling_states = list(25, 50, 75, 100) + volume = 40 + possible_transfer_amounts = list(5,10,20,40) + rim_pos = list(22, 12, 20) + +/obj/item/weapon/reagent_containers/food/drinks/glass2/wine + name = "wine glass" + base_name = "glass" + base_icon = "wine" + filling_states = list(20, 40, 60, 80, 100) + volume = 25 + possible_transfer_amounts = list(5, 10, 15, 25) + rim_pos = list(25, 12, 21) diff --git a/code/modules/reagents/reagent_containers/food/drinks/cup.dm b/code/modules/reagents/reagent_containers/food/drinks/cup.dm new file mode 100644 index 00000000000..36a88cf7a9f --- /dev/null +++ b/code/modules/reagents/reagent_containers/food/drinks/cup.dm @@ -0,0 +1,43 @@ +/obj/item/weapon/reagent_containers/food/drinks/cup + name = "coffee cup" + desc = "The container of oriental luxuries." + icon_state = "cup_empty" + amount_per_transfer_from_this = 5 + volume = 30 + center_of_mass = list("x"=16, "y"=16) + + on_reagent_change() + if (reagents.reagent_list.len > 0) + var/datum/reagent/R = reagents.get_master_reagent() + + if(R.cup_icon_state) + icon_state = R.cup_icon_state + else + icon_state = "cup_brown" + + if(R.cup_name) + name = R.cup_name + else + name = "Cup of.. what?" + + if(R.cup_desc) + desc = R.cup_desc + else + desc = "You can't really tell what this is." + + if(R.cup_center_of_mass) + center_of_mass = R.cup_center_of_mass + else + center_of_mass = list("x"=16, "y"=16) + + if(R.price_tag) + price_tag = R.price_tag + else + price_tag = null + + else + icon_state = "cup_empty" + name = "coffee cup" + desc = "The container of oriental luxuries." + center_of_mass = list("x"=16, "y"=16) + return diff --git a/html/changelogs/GinjaNinja32-newdrinks.yml b/html/changelogs/GinjaNinja32-newdrinks.yml new file mode 100644 index 00000000000..3c685a553ab --- /dev/null +++ b/html/changelogs/GinjaNinja32-newdrinks.yml @@ -0,0 +1,6 @@ +author: GinjaNinja32 +delete-after: True +changes: + - rscadd: "Rewrote drinking glasses. There are now eight types of glass, and drink appearance is based on color and the type of glass you put it in." + - rscadd: "There are now 'glass extras' you can add to drinks. Straws, drink sticks, and fruit slices (yes, all of them) all work. You can add up to two extras per glass. Add extras by clicking the glass with the extra, remove by clicking the glass with an empty hand while it's in your other hand." + - rscadd: "Adding 'fizzy' things (soda water, cola, etc) or ice to a drink will make it be fizzy or have ice floating in it." diff --git a/icons/pdrink.dmi b/icons/pdrink.dmi new file mode 100644 index 0000000000000000000000000000000000000000..c1d49bc91cf6f6f67cd56144aea059068c2a81c1 GIT binary patch literal 68135 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

gYzJn-6rMTwj6 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