Adds the National Ice Cream Day. (#84791)

This PR adds the National Ice Cream Day (yeah, it's one of those
'murrican holidays) to the game, bringing a few niche ice-cream-related
effects to the game

During the Ice Cream Day:
- Crematoriums replaced with cre**a**matoriums.
- All cyborgs that don't already come with the treat dispenser are given
(a slightly weaker) one stuck in ice cream mode.
- Robot customers order ice cream thrice as often.
- The ice cream vat starts with two times and a half more ingredients.
- Ice cream cones can hold up to four times as many scoops as normal.
This commit is contained in:
Ghom
2024-07-12 01:19:05 +02:00
committed by GitHub
parent 4b97e9b04a
commit 515ca7ea2f
8 changed files with 42 additions and 4 deletions

View File

@@ -40,6 +40,7 @@
#define MOTH_WEEK "Moth Week" #define MOTH_WEEK "Moth Week"
#define IAN_HOLIDAY "Ian's Birthday" #define IAN_HOLIDAY "Ian's Birthday"
#define HOTDOG_DAY "National Hot Dog Day" #define HOTDOG_DAY "National Hot Dog Day"
#define ICE_CREAM_DAY "National Ice Cream Day"
/* /*
Days of the week to make it easier to reference them. Days of the week to make it easier to reference them.

View File

@@ -387,7 +387,8 @@
/obj/item/food/icecream/make_edible() /obj/item/food/icecream/make_edible()
. = ..() . = ..()
AddComponent(/datum/component/ice_cream_holder, filled_name = "ice cream", change_desc = TRUE, prefill_flavours = prefill_flavours) var/max_scoops = check_holidays(ICE_CREAM_DAY) ? DEFAULT_MAX_ICE_CREAM_SCOOPS * 4 : DEFAULT_MAX_ICE_CREAM_SCOOPS
AddComponent(/datum/component/ice_cream_holder, max_scoops, filled_name = "ice cream", change_desc = TRUE, prefill_flavours = prefill_flavours)
/obj/item/food/icecream/chocolate /obj/item/food/icecream/chocolate
name = "chocolate cone" name = "chocolate cone"

View File

@@ -152,6 +152,10 @@
return NONE return NONE
/obj/item/borg/lollipop/attack_self(mob/living/user) /obj/item/borg/lollipop/attack_self(mob/living/user)
switch_mode(user)
return ..()
/obj/item/borg/lollipop/proc/switch_mode(mob/living/user)
switch(mode) switch(mode)
if(DISPENSE_LOLLIPOP_MODE) if(DISPENSE_LOLLIPOP_MODE)
mode = THROW_LOLLIPOP_MODE mode = THROW_LOLLIPOP_MODE
@@ -165,7 +169,17 @@
if(DISPENSE_ICECREAM_MODE) if(DISPENSE_ICECREAM_MODE)
mode = DISPENSE_LOLLIPOP_MODE mode = DISPENSE_LOLLIPOP_MODE
to_chat(user, span_notice("Module is now dispensing lollipops.")) to_chat(user, span_notice("Module is now dispensing lollipops."))
..()
/obj/item/borg/lollipop/ice_cream
name = "ice cream fabricator"
desc = "Reward humans with vanilla ice cream. Can't go wrong with it."
candy = 4
candymax = 4
charge_delay = 15 SECONDS
mode = DISPENSE_ICECREAM_MODE
/obj/item/borg/lollipop/ice_cream/switch_mode(mob/living/user)
return
/obj/item/ammo_casing/gumball /obj/item/ammo_casing/gumball
name = "Gumball" name = "Gumball"

View File

@@ -425,6 +425,10 @@ GLOBAL_LIST_EMPTY(crematoriums)
/obj/structure/bodycontainer/crematorium/Initialize(mapload) /obj/structure/bodycontainer/crematorium/Initialize(mapload)
. = ..() . = ..()
if(mapload && check_holidays(ICE_CREAM_DAY) && !istype(src, /obj/structure/bodycontainer/crematorium/creamatorium))
var/obj/structure/bodycontainer/crematorium/creamatorium/creamy = new(loc)
creamy.id = id
return INITIALIZE_HINT_QDEL
GLOB.crematoriums += src GLOB.crematoriums += src
/obj/structure/bodycontainer/crematorium/Destroy() /obj/structure/bodycontainer/crematorium/Destroy()

View File

@@ -75,13 +75,15 @@
RegisterSignal(src, COMSIG_ATOM_REAGENT_EXAMINE, PROC_REF(allow_reagent_scan)) RegisterSignal(src, COMSIG_ATOM_REAGENT_EXAMINE, PROC_REF(allow_reagent_scan))
create_reagents(300, NO_REACT|TRANSPARENT) var/ice_cream_day = check_holidays(ICE_CREAM_DAY) //ice cream vats are more "robust" on this holiday
create_reagents(ice_cream_day ? 400 : 300, NO_REACT|TRANSPARENT)
reagents.chem_temp = T0C //So ice doesn't melt reagents.chem_temp = T0C //So ice doesn't melt
register_context() register_context()
if(preinstall_reagents) if(preinstall_reagents)
for(var/reagent in icecream_vat_reagents) for(var/reagent in icecream_vat_reagents)
reagents.add_reagent(reagent, icecream_vat_reagents[reagent], reagtemp = T0C) reagents.add_reagent(reagent, icecream_vat_reagents[reagent] * (ice_cream_day ? 2.5 : 1), reagtemp = T0C)
/obj/machinery/icecream_vat/Exited(atom/movable/gone, direction) /obj/machinery/icecream_vat/Exited(atom/movable/gone, direction)
. = ..() . = ..()

View File

@@ -47,6 +47,10 @@
/datum/customer_data/New() /datum/customer_data/New()
. = ..() . = ..()
name_prefixes = world.file2list(prefix_file) name_prefixes = world.file2list(prefix_file)
if(check_holidays(ICE_CREAM_DAY)) ///customers are more likely to order ice cream on this holiday
var/list/orderable_restaurant = orderable_objects[VENUE_RESTAURANT]
if(orderable_restaurant?[/datum/custom_order/icecream])
orderable_restaurant[/datum/custom_order/icecream] *= 3
/// Can this customer be chosen for this venue? /// Can this customer be chosen for this venue?
/datum/customer_data/proc/can_use(datum/venue/venue) /datum/customer_data/proc/can_use(datum/venue/venue)

View File

@@ -84,3 +84,12 @@
/datum/holiday/nth_week/moth/getStationPrefix() /datum/holiday/nth_week/moth/getStationPrefix()
return pick("Mothball","Lepidopteran","Lightbulb","Moth","Giant Atlas","Twin-spotted Sphynx","Madagascan Sunset","Luna","Death's Head","Emperor Gum","Polyphenus","Oleander Hawk","Io","Rosy Maple","Cecropia","Noctuidae","Giant Leopard","Dysphania Militaris","Garden Tiger") return pick("Mothball","Lepidopteran","Lightbulb","Moth","Giant Atlas","Twin-spotted Sphynx","Madagascan Sunset","Luna","Death's Head","Emperor Gum","Polyphenus","Oleander Hawk","Io","Rosy Maple","Cecropia","Noctuidae","Giant Leopard","Dysphania Militaris","Garden Tiger")
/datum/holiday/nth_week/ice_cream
name = ICE_CREAM_DAY
begin_week = 3
begin_month = JULY
begin_weekday = SUNDAY
/datum/holiday/nth_week/ice_cream/getStationPrefix()
return pick("Ice Cream", "Gelato", "Semifreddo", "Cornuto", "Soft Serve", "Cone", "Ice", "Cream", "I Scream", "Parfait", "Straccciatella", "Sherbet", "Snow", "Affogato", "Mochi", "Tartufo", "Sundae", "Neapolitan")

View File

@@ -65,6 +65,9 @@
emag_modules += new_module emag_modules += new_module
emag_modules -= path emag_modules -= path
if(check_holidays(ICE_CREAM_DAY) && !(locate(/obj/item/borg/lollipop) in basic_modules))
basic_modules += new /obj/item/borg/lollipop/ice_cream(src)
/obj/item/robot_model/Destroy() /obj/item/robot_model/Destroy()
basic_modules.Cut() basic_modules.Cut()
emag_modules.Cut() emag_modules.Cut()