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
🆑 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
/🆑
This commit is contained in:
YakumoChen
2023-08-07 13:30:13 -07:00
committed by GitHub
parent 1d6b84e989
commit 3dc75f84f2
7 changed files with 104 additions and 12 deletions
+11
View File
@@ -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,
+7
View File
@@ -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"
+64 -10
View File
@@ -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
+9
View File
@@ -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."
@@ -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)
. = ..()
@@ -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
Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 13 KiB