From 3dc75f84f2eebc388c7f698284d77df4d8cf8fdf Mon Sep 17 00:00:00 2001 From: YakumoChen Date: Mon, 7 Aug 2023 20:30:13 +0000 Subject: [PATCH] Chen And Garry's Ice Cream: Ice Cream DLC (LIZARD APPROVED!) (#77174) ## About The Pull Request Authored with help and love from @Thalpy I scream for ice cream!! ![image](https://github.com/tgstation/tgstation/assets/10399117/db1e559b-7dab-499b-a076-8f12748ba2e8) Introduces many new flavours of ice cream: -Caramel -Banana -Lemon Sorbet -Orange Creamsicle -Peach (Limited Edition!) -Cherry chip -Korta Vanilla (made with lizard-friendly ingredients!) ![image](https://github.com/tgstation/tgstation/assets/10399117/99a87615-f55c-49be-8caf-2b1ac4c7f03f) Korta Cones! Now too can Nanotrasen's sanitation staff enjoy the wonders of ice cream! You can also substitute custom ice cream flavours with korta milk! Finally, the meaty ice cream lactose-intolerants asked for is in reach! ## Why It's Good For The Game I always thought the ice cream vat could use more flavours. The custom flavour besides, it isn't as intuitive to rename the cone and the added variety is good. The lack of a banana flavour already was questionable. All the ice cream flavours used a selection of five sprites, now it's just one sprite and better supporting more additions. Some of the flavours don't use milk! You can't do this with the custom flavour, making it slightly more interesting. ## Changelog :cl: YakumoChen, Thalpy add: Chen And Garry's Ice Cream is proud to debut a wide selection of cool new frozen treat flavours on a space station near you! add: Chen And Garry's Ice Cream revolutionary Korta Cones allow our ice cream vendors to profit off the lizard demographic like never before! code: Ice cream flavours now are all greyscaled similarly to GAGs /:cl: --- code/__DEFINES/colors.dm | 11 +++ code/__DEFINES/food.dm | 7 ++ .../components/food/ice_cream_holder.dm | 74 +++++++++++++++--- code/game/objects/items/food/pastries.dm | 9 +++ .../food_and_drinks/machinery/icecream_vat.dm | 12 ++- .../restaurant/custom_order.dm | 3 +- icons/obj/service/kitchen.dmi | Bin 14441 -> 13608 bytes 7 files changed, 104 insertions(+), 12 deletions(-) diff --git a/code/__DEFINES/colors.dm b/code/__DEFINES/colors.dm index 98d32719099..06752686102 100644 --- a/code/__DEFINES/colors.dm +++ b/code/__DEFINES/colors.dm @@ -346,6 +346,17 @@ #define SOFA_BROWN "#a75400" #define SOFA_MAROON "#830000" +#define COLOR_ICECREAM_VANILLA "#f2eede" +#define COLOR_ICECREAM_CHOCOLATE "#93683c" +#define COLOR_ICECREAM_STRAWBERRY "#f4cbcb" +#define COLOR_ICECREAM_BLUE "#cbd5f4" +#define COLOR_ICECREAM_LEMON "#ffff9f" +#define COLOR_ICECREAM_CARAMEL "#d98736" +#define COLOR_ICECREAM_ORANGESICLE "#ffa980" +#define COLOR_ICECREAM_PEACH "#ffcc66" +#define COLOR_ICECREAM_CUSTOM "#f3f3f3" +#define COLOR_ICECREAM_CHERRY_CHOCOLATE "#800000" + GLOBAL_LIST_INIT(cable_colors, list( CABLE_COLOR_BLUE = CABLE_HEX_COLOR_BLUE, CABLE_COLOR_CYAN = CABLE_HEX_COLOR_CYAN, diff --git a/code/__DEFINES/food.dm b/code/__DEFINES/food.dm index 9b3db73b5eb..d880bbc459d 100644 --- a/code/__DEFINES/food.dm +++ b/code/__DEFINES/food.dm @@ -172,6 +172,13 @@ DEFINE_BITFIELD(food_flags, list( #define ICE_CREAM_CHOCOLATE "chocolate" #define ICE_CREAM_STRAWBERRY "strawberry" #define ICE_CREAM_BLUE "blue" +#define ICE_CREAM_LEMON "lemon sorbet" +#define ICE_CREAM_CARAMEL "caramel" +#define ICE_CREAM_BANANA "banana" +#define ICE_CREAM_ORANGE_CREAM "orangesicle" +#define ICE_CREAM_PEACH "peach" +#define ICE_CREAM_CHERRY_CHOCOLATE "cherry chocolate chip" +#define ICE_CREAM_KORTA_VANILLA "korta vanilla" #define ICE_CREAM_MOB "mob" #define ICE_CREAM_CUSTOM "custom" #define ICE_CREAM_BLAND "bland" diff --git a/code/datums/components/food/ice_cream_holder.dm b/code/datums/components/food/ice_cream_holder.dm index 962fcebcc94..0cb15ece936 100644 --- a/code/datums/components/food/ice_cream_holder.dm +++ b/code/datums/components/food/ice_cream_holder.dm @@ -199,8 +199,8 @@ GLOBAL_LIST_INIT_TYPED(ice_cream_flavours, /datum/ice_cream_flavour, init_ice_cr /datum/ice_cream_flavour /// Make sure the same name is not found on other types; These are singletons keyed by their name after all. var/name = "Coderlicious Gourmet Double Deluxe Undefined" - /// The icon state of the flavour, overlay or not. - var/icon_state = "icecream_vanilla" + /// The colour of the ice cream for non-custom flavours. + var/color = COLOR_ICECREAM_VANILLA /* * The fluff text sent to the examiner when the snack has only one flavour of ice cream. * $CONE_NAME and $CUSTOM_NAME are both placeholders for the cone and the custom ice cream name respectively. @@ -230,8 +230,10 @@ GLOBAL_LIST_INIT_TYPED(ice_cream_flavours, /datum/ice_cream_flavour, init_ice_cr /datum/ice_cream_flavour/proc/add_flavour(datum/component/ice_cream_holder/target, datum/reagents/R, custom_name) var/atom/owner = target.parent LAZYADD(target.scoops, custom_name || name) - if(icon_state) - LAZYADD(target.scoop_overlays, icon_state) + if(color) + var/image/flavoring = image('icons/obj/service/kitchen.dmi', "icecream_custom") + flavoring.color = color + LAZYADD(target.scoop_overlays, flavoring) if(custom_name) LAZYSET(target.special_scoops, custom_name, name) @@ -258,28 +260,75 @@ GLOBAL_LIST_INIT_TYPED(ice_cream_flavours, /datum/ice_cream_flavour, init_ice_cr /datum/ice_cream_flavour/chocolate name = ICE_CREAM_CHOCOLATE - icon_state = "icecream_chocolate" + color = COLOR_ICECREAM_CHOCOLATE desc = "filled with chocolate ice cream. Surprisingly, made with real cocoa." ingredients = list(/datum/reagent/consumable/milk, /datum/reagent/consumable/ice, /datum/reagent/consumable/coco) reagent_type = /datum/reagent/consumable/coco /datum/ice_cream_flavour/strawberry name = ICE_CREAM_STRAWBERRY - icon_state = "icecream_strawberry" + color = COLOR_ICECREAM_STRAWBERRY desc = "filled with strawberry ice cream. Definitely not made with real strawberries." ingredients = list(/datum/reagent/consumable/milk, /datum/reagent/consumable/ice, /datum/reagent/consumable/berryjuice) reagent_type = /datum/reagent/consumable/berryjuice /datum/ice_cream_flavour/blue name = ICE_CREAM_BLUE - icon_state = "icecream_blue" + color = COLOR_ICECREAM_BLUE desc = "filled with blue ice cream. Made with real... blue?" ingredients = list(/datum/reagent/consumable/milk, /datum/reagent/consumable/ice, /datum/reagent/consumable/ethanol/singulo) reagent_type = /datum/reagent/consumable/ethanol/singulo +/datum/ice_cream_flavour/lemon + name = ICE_CREAM_LEMON + color = COLOR_ICECREAM_LEMON + desc = "filled with lemon sorbet. Like frozen lemonade in a cone." + ingredients = list(/datum/reagent/consumable/ice, /datum/reagent/consumable/lemonjuice) //contains no milk + reagent_type = /datum/reagent/consumable/lemonjuice + +/datum/ice_cream_flavour/caramel + name = ICE_CREAM_CARAMEL + color = COLOR_ICECREAM_CARAMEL + desc = "filled with caramel ice cream. It is deliciously sweet." + ingredients = list(/datum/reagent/consumable/milk, /datum/reagent/consumable/ice, /datum/reagent/consumable/caramel) + reagent_type = /datum/reagent/consumable/caramel + +/datum/ice_cream_flavour/banana + name = ICE_CREAM_BANANA + color = COLOR_YELLOW + desc = "filled with banana ice cream. Honk!" + ingredients = list(/datum/reagent/consumable/milk, /datum/reagent/consumable/ice, /datum/reagent/consumable/banana) + reagent_type = /datum/reagent/consumable/banana + +/datum/ice_cream_flavour/orange_cream + name = ICE_CREAM_ORANGE_CREAM + color = COLOR_ICECREAM_ORANGESICLE + desc = "filled with orange creamsicle. Not quite the same off the stick..." + ingredients = list(/datum/reagent/consumable/cream, /datum/reagent/consumable/ice, /datum/reagent/consumable/orangejuice) + reagent_type = /datum/reagent/consumable/orangejuice + +/datum/ice_cream_flavour/peach + name = ICE_CREAM_PEACH + color = COLOR_ICECREAM_PEACH + desc = "filled with limited edition peach flavour. Enjoy it while it lasts!" + ingredients = list(/datum/reagent/consumable/milk, /datum/reagent/consumable/ice, /datum/reagent/consumable/peachjuice) + reagent_type = /datum/reagent/consumable/peachjuice + +/datum/ice_cream_flavour/vanilla/korta + name = ICE_CREAM_KORTA_VANILLA + desc = "filled with vanilla ice cream made with korta milk. Lizards love it!" + ingredients = list(/datum/reagent/consumable/korta_milk, /datum/reagent/consumable/ice, /datum/reagent/consumable/vanilla) + +/datum/ice_cream_flavour/cherry_chocolate + name = ICE_CREAM_CHERRY_CHOCOLATE + color = COLOR_ICECREAM_CHERRY_CHOCOLATE + desc = "filled with cherry chocolate chip ice cream. It is wonderfully tangy and sweet." + ingredients = list(/datum/reagent/consumable/milk, /datum/reagent/consumable/ice, /datum/reagent/consumable/coco, /datum/reagent/consumable/cherryjelly) + reagent_type = /datum/reagent/consumable/cherryjelly + /datum/ice_cream_flavour/mob name = ICE_CREAM_MOB - icon_state = "icecream_mob" + color = COLOR_ICECREAM_STRAWBERRY desc = "filled with bright red ice cream. That's probably not strawberry..." desc_prefix = "A suspicious $CONE_NAME" reagent_type = /datum/reagent/consumable/liquidgibs @@ -287,11 +336,16 @@ GLOBAL_LIST_INIT_TYPED(ice_cream_flavours, /datum/ice_cream_flavour, init_ice_cr /datum/ice_cream_flavour/custom name = ICE_CREAM_CUSTOM - icon_state = "" //has its own mutable appearance overlay. + color = "" //has its own mutable appearance overlay desc = "filled with artisanal icecream. Made with real $CUSTOM_NAME. Ain't that something." ingredients = list(/datum/reagent/consumable/milk, /datum/reagent/consumable/ice) ingredients_text = "optional flavorings" +/datum/ice_cream_flavour/custom/korta + desc = "filled with artisanal lizard-friendly icecream. Made with real $CUSTOM_NAME. Ain't that something." + ingredients = list(/datum/reagent/consumable/korta_milk, /datum/reagent/consumable/ice) + ingredients_text = "optional flavorings" + /datum/ice_cream_flavour/custom/add_flavour(datum/component/ice_cream_holder/target, datum/reagents/R, custom_name) if(!R || R.total_volume < 4) //consumable reagents have stronger taste so higher volume are required to allow non-food flavourings to break through better. return GLOB.ice_cream_flavours[ICE_CREAM_BLAND].add_flavour(target) //Bland, sugary ice and milk. @@ -305,7 +359,7 @@ GLOBAL_LIST_INIT_TYPED(ice_cream_flavours, /datum/ice_cream_flavour, init_ice_cr /datum/ice_cream_flavour/bland name = ICE_CREAM_BLAND - icon_state = "icecream_custom" + color = COLOR_ICECREAM_CUSTOM desc = "filled with anemic, flavorless icecream. You wonder why this was ever scooped..." hidden = TRUE diff --git a/code/game/objects/items/food/pastries.dm b/code/game/objects/items/food/pastries.dm index e9d2a9189d9..235524a4d75 100644 --- a/code/game/objects/items/food/pastries.dm +++ b/code/game/objects/items/food/pastries.dm @@ -367,6 +367,15 @@ /datum/reagent/consumable/coco, ) +/obj/item/food/icecream/korta + name = "korta cone" + desc = "Delicious lizard-friendly cone, but no ice cream." + foodtypes = NUTS | SUGAR + ingredients = list( + /datum/reagent/consumable/korta_flour, + /datum/reagent/consumable/sugar, + ) + /obj/item/food/cookie/peanut_butter name = "peanut butter cookie" desc = "A tasty, chewy peanut butter cookie." diff --git a/code/modules/food_and_drinks/machinery/icecream_vat.dm b/code/modules/food_and_drinks/machinery/icecream_vat.dm index 30f0b6f5b00..607c54e6ff1 100644 --- a/code/modules/food_and_drinks/machinery/icecream_vat.dm +++ b/code/modules/food_and_drinks/machinery/icecream_vat.dm @@ -17,13 +17,23 @@ var/static/list/obj/item/food/icecream/cone_prototypes var/static/list/icecream_vat_reagents = list( /datum/reagent/consumable/milk = 6, + /datum/reagent/consumable/korta_milk = 6, /datum/reagent/consumable/flour = 6, + /datum/reagent/consumable/korta_flour = 6, /datum/reagent/consumable/sugar = 6, /datum/reagent/consumable/ice = 6, /datum/reagent/consumable/coco = 6, /datum/reagent/consumable/vanilla = 6, /datum/reagent/consumable/berryjuice = 6, - /datum/reagent/consumable/ethanol/singulo = 6) + /datum/reagent/consumable/ethanol/singulo = 6, + /datum/reagent/consumable/lemonjuice = 6, + /datum/reagent/consumable/caramel = 6, + /datum/reagent/consumable/banana = 6, + /datum/reagent/consumable/orangejuice = 6, + /datum/reagent/consumable/cream = 6, + /datum/reagent/consumable/peachjuice = 6, + /datum/reagent/consumable/cherryjelly = 6, + ) /obj/machinery/icecream_vat/Initialize(mapload) . = ..() diff --git a/code/modules/food_and_drinks/restaurant/custom_order.dm b/code/modules/food_and_drinks/restaurant/custom_order.dm index 06c61c7d3d7..c74b4883c19 100644 --- a/code/modules/food_and_drinks/restaurant/custom_order.dm +++ b/code/modules/food_and_drinks/restaurant/custom_order.dm @@ -119,7 +119,8 @@ var/added_offset = 0 for(var/flavor in wanted_flavors) - var/image/scoop = image('icons/obj/service/kitchen.dmi', GLOB.ice_cream_flavours[flavor].icon_state) + var/image/scoop = image('icons/obj/service/kitchen.dmi', "icecream_custom") + scoop.color = GLOB.ice_cream_flavours[flavor].color scoop.pixel_y = added_offset i_scream.overlays += scoop added_offset += ICE_CREAM_SCOOP_OFFSET diff --git a/icons/obj/service/kitchen.dmi b/icons/obj/service/kitchen.dmi index fda1ece4972e72a126941c53d432cd4fbd1a1c61..cb47ddf35a2a6bbe7e4ff7af3360423fa005d4e9 100644 GIT binary patch literal 13608 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 CU;MQI literal 14441 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