Files
Alexis 21b4095dfd [MDB IGNORE] [IDB IGNORE] Upstream Sync - 04/17/2026 (#5453)
Upstream 04/17/2026

fixes https://github.com/Bubberstation/Bubberstation/issues/5549

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: tgstation-ci[bot] <179393467+tgstation-ci[bot]@users.noreply.github.com>
Co-authored-by: ArcaneMusic <41715314+ArcaneMusic@users.noreply.github.com>
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: Rhials <28870487+Rhials@users.noreply.github.com>
Co-authored-by: rageguy505 <54517726+rageguy505@users.noreply.github.com>
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
Co-authored-by: Aliceee2ch <160794176+Aliceee2ch@users.noreply.github.com>
Co-authored-by: Time-Green <7501474+Time-Green@users.noreply.github.com>
Co-authored-by: Tsar-Salat <62388554+Tsar-Salat@users.noreply.github.com>
Co-authored-by: SmArtKar <44720187+SmArtKar@users.noreply.github.com>
Co-authored-by: Maxipat <108554989+Maxipat112@users.noreply.github.com>
Co-authored-by: SyncIt21 <110812394+SyncIt21@users.noreply.github.com>
Co-authored-by: deltanedas <39013340+deltanedas@users.noreply.github.com>
Co-authored-by: SimplyLogan <47579821+loganuk@users.noreply.github.com>
Co-authored-by: loganuk <fakeemail123@aol.com>
Co-authored-by: Leland Kemble <70413276+lelandkemble@users.noreply.github.com>
Co-authored-by: FalloutFalcon <86381784+FalloutFalcon@users.noreply.github.com>
Co-authored-by: Roxy <75404941+TealSeer@users.noreply.github.com>
Co-authored-by: Lucy <lucy@absolucy.moe>
Co-authored-by: siliconOpossum <138069572+siliconOpossum@users.noreply.github.com>
Co-authored-by: Isratosh <Isratosh@hotmail.com>
Co-authored-by: TheRyeGuyWhoWillNowDie <70169560+TheRyeGuyWhoWillNowDie@users.noreply.github.com>
Co-authored-by: Neocloudy <88008002+Neocloudy@users.noreply.github.com>
Co-authored-by: Alexander V. <volas@ya.ru>
Co-authored-by: ElGitificador <168473461+ElGitificador@users.noreply.github.com>
Co-authored-by: Twaticus <46540570+Twaticus@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com>
Co-authored-by: Cameron Lennox <killer65311@gmail.com>
Co-authored-by: Tim <timothymtorres@gmail.com>
Co-authored-by: Iamgoofball <iamgoofball@gmail.com>
Co-authored-by: Layzu666 <121319428+Layzu666@users.noreply.github.com>
Co-authored-by: Arturlang <24881678+Arturlang@users.noreply.github.com>
Co-authored-by: _0Steven <42909981+00-Steven@users.noreply.github.com>
Co-authored-by: mrmanlikesbt <99309552+mrmanlikesbt@users.noreply.github.com>
Co-authored-by: Ben10Omintrix <138636438+Ben10Omintrix@users.noreply.github.com>
Co-authored-by: John F. Kennedy <54908920+MacaroniCritter@users.noreply.github.com>
Co-authored-by: Cursor <102828457+theselfish@users.noreply.github.com>
Co-authored-by: Josh <josh.adam.powell@gmail.com>
Co-authored-by: Josh Powell <josh.powell@softwire.com>
Co-authored-by: Yobrocharlie <Charliemiller5617@gmail.com>
Co-authored-by: Hardly3D <66234359+Hardly3D@users.noreply.github.com>
Co-authored-by: shayoki <96078776+shayoki@users.noreply.github.com>
Co-authored-by: LT3 <83487515+lessthnthree@users.noreply.github.com>
2026-05-16 00:56:00 +02:00

467 lines
15 KiB
Plaintext

/obj/item/food/icecreamsandwich
name = "ice cream sandwich"
desc = "Portable ice cream in its own packaging."
icon = 'icons/obj/food/frozen_treats.dmi'
icon_state = "icecreamsandwich"
w_class = WEIGHT_CLASS_TINY
food_reagents = list(
/datum/reagent/consumable/nutriment = 3,
/datum/reagent/consumable/ice = 4,
)
tastes = list("ice cream" = 1)
foodtypes = GRAIN | DAIRY | SUGAR
food_flags = FOOD_FINGER_FOOD
crafting_complexity = FOOD_COMPLEXITY_2
crafted_food_buff = /datum/status_effect/food/chilling
/obj/item/food/strawberryicecreamsandwich
name = "strawberry ice cream sandwich"
desc = "Portable ice cream in its own packaging of the strawberry variety."
icon = 'icons/obj/food/frozen_treats.dmi'
icon_state = "strawberryicecreamsandwich"
w_class = WEIGHT_CLASS_TINY
food_reagents = list(
/datum/reagent/consumable/nutriment = 4,
/datum/reagent/consumable/ice = 4,
)
tastes = list("ice cream" = 2, "berry" = 2)
foodtypes = GRAIN|FRUIT|DAIRY|SUGAR
food_flags = FOOD_FINGER_FOOD
crafting_complexity = FOOD_COMPLEXITY_3
crafted_food_buff = /datum/status_effect/food/chilling
/obj/item/food/spacefreezy
name = "space freezy"
desc = "The best ice cream in space."
icon = 'icons/obj/food/frozen_treats.dmi'
icon_state = "spacefreezy"
w_class = WEIGHT_CLASS_TINY
food_reagents = list(
/datum/reagent/consumable/nutriment = 8,
/datum/reagent/consumable/bluecherryjelly = 5,
/datum/reagent/consumable/nutriment/vitamin = 5,
)
tastes = list("blue cherries" = 2, "ice cream" = 2)
foodtypes = GRAIN|FRUIT|DAIRY|SUGAR
crafting_complexity = FOOD_COMPLEXITY_3
crafted_food_buff = /datum/status_effect/food/chilling
/obj/item/food/spacefreezy/make_edible()
. = ..()
AddComponent(/datum/component/ice_cream_holder)
/obj/item/food/sundae
name = "sundae"
desc = "A classic dessert."
icon = 'icons/obj/food/frozen_treats.dmi'
icon_state = "sundae"
w_class = WEIGHT_CLASS_SMALL
food_reagents = list(
/datum/reagent/consumable/nutriment = 6,
/datum/reagent/consumable/banana = 5,
/datum/reagent/consumable/nutriment/vitamin = 2,
)
tastes = list("ice cream" = 1, "banana" = 1)
foodtypes = GRAIN|FRUIT|DAIRY|SUGAR
crafting_complexity = FOOD_COMPLEXITY_3
crafted_food_buff = /datum/status_effect/food/chilling
/obj/item/food/sundae/make_edible()
. = ..()
AddComponent(/datum/component/ice_cream_holder, y_offset = -2, sweetener = /datum/reagent/consumable/caramel)
/obj/item/food/honkdae
name = "honkdae"
desc = "The clown's favorite dessert."
icon = 'icons/obj/food/frozen_treats.dmi'
icon_state = "honkdae"
w_class = WEIGHT_CLASS_SMALL
food_reagents = list(
/datum/reagent/consumable/nutriment = 6,
/datum/reagent/consumable/banana = 10,
/datum/reagent/consumable/nutriment/vitamin = 4,
)
tastes = list("ice cream" = 1, "banana" = 1, "a bad joke" = 1)
foodtypes = GRAIN|FRUIT|DAIRY|SUGAR
crafting_complexity = FOOD_COMPLEXITY_4
crafted_food_buff = /datum/status_effect/food/chilling
/obj/item/food/honkdae/make_edible()
. = ..()
AddComponent(/datum/component/ice_cream_holder, y_offset = -2) //The sugar will react with the banana forming laughter. Honk!
/////////////
//SNOWCONES//
/////////////
/obj/item/food/snowcones //We use this as a base for all other snowcones
name = "flavorless snowcone"
desc = "It's just shaved ice. Still fun to chew on."
icon = 'icons/obj/food/frozen_treats.dmi'
icon_state = "flavorless_sc"
w_class = WEIGHT_CLASS_SMALL
trash_type = /obj/item/reagent_containers/cup/glass/sillycup //We dont eat paper cups
food_reagents = list(
/datum/reagent/water = 11,
) // We dont get food for water/juices
tastes = list("ice" = 1, "water" = 1)
foodtypes = SUGAR //We use SUGAR as a base line to act in as junkfood, other wise we use fruit
food_flags = FOOD_FINGER_FOOD
crafting_complexity = FOOD_COMPLEXITY_2
crafted_food_buff = /datum/status_effect/food/chilling
/obj/item/food/snowcones/on_craft_completion(list/components, datum/crafting_recipe/food/current_recipe, atom/crafter)
. = ..()
// replaces the ice from the input with water
reagents.remove_reagent(/datum/reagent/consumable/ice, 15)
reagents.add_reagent(/datum/reagent/water, 11)
// then add 1u nutriment for free
reagents.add_reagent(/datum/reagent/consumable/nutriment, 1)
// the juice component will be transferred in from crafting
/obj/item/food/snowcones/lime
name = "lime snowcone"
desc = "Lime syrup drizzled over a snowball in a paper cup."
icon_state = "lime_sc"
food_reagents = list(
/datum/reagent/consumable/nutriment = 1,
/datum/reagent/consumable/limejuice = 5,
/datum/reagent/water = 11,
)
tastes = list("ice" = 1, "water" = 1, "limes" = 5)
foodtypes = FRUIT
/obj/item/food/snowcones/lemon
name = "lemon snowcone"
desc = "Lemon syrup drizzled over a snowball in a paper cup."
icon_state = "lemon_sc"
food_reagents = list(
/datum/reagent/consumable/nutriment = 1,
/datum/reagent/consumable/lemonjuice = 5,
/datum/reagent/water = 11,
)
tastes = list("ice" = 1, "water" = 1, "lemons" = 5)
foodtypes = FRUIT
/obj/item/food/snowcones/apple
name = "apple snowcone"
desc = "Apple syrup drizzled over a snowball in a paper cup."
icon_state = "amber_sc"
food_reagents = list(
/datum/reagent/consumable/nutriment = 1,
/datum/reagent/consumable/applejuice = 5,
/datum/reagent/water = 11,
)
tastes = list("ice" = 1, "water" = 1, "apples" = 5)
foodtypes = FRUIT
/obj/item/food/snowcones/grape
name = "grape snowcone"
desc = "Grape syrup drizzled over a snowball in a paper cup."
icon_state = "grape_sc"
food_reagents = list(
/datum/reagent/consumable/nutriment = 1,
/datum/reagent/consumable/grapejuice = 5,
/datum/reagent/water = 11,
)
tastes = list("ice" = 1, "water" = 1, "grape" = 5)
foodtypes = FRUIT
/obj/item/food/snowcones/orange
name = "orange snowcone"
desc = "Orange syrup drizzled over a snowball in a paper cup."
icon_state = "orange_sc"
food_reagents = list(
/datum/reagent/consumable/nutriment = 1,
/datum/reagent/consumable/orangejuice = 5,
/datum/reagent/water = 11,
)
tastes = list("ice" = 1, "water" = 1, "orange" = 5)
foodtypes = FRUIT | ORANGES
/obj/item/food/snowcones/blue
name = "bluecherry snowcone"
desc = "Bluecherry syrup drizzled over a snowball in a paper cup, how rare!"
icon_state = "blue_sc"
food_reagents = list(
/datum/reagent/consumable/nutriment = 1,
/datum/reagent/consumable/bluecherryjelly = 5,
/datum/reagent/water = 11,
)
tastes = list("ice" = 1, "water" = 1, "blue" = 5, "cherries" = 5)
foodtypes = FRUIT
/obj/item/food/snowcones/red
name = "cherry snowcone"
desc = "Cherry syrup drizzled over a snowball in a paper cup."
icon_state = "red_sc"
food_reagents = list(
/datum/reagent/consumable/nutriment = 1,
/datum/reagent/consumable/cherryjelly = 5,
/datum/reagent/water = 11,
)
tastes = list("ice" = 1, "water" = 1, "red" = 5, "cherries" = 5)
foodtypes = FRUIT
/obj/item/food/snowcones/berry
name = "berry snowcone"
desc = "Berry syrup drizzled over a snowball in a paper cup."
icon_state = "berry_sc"
food_reagents = list(
/datum/reagent/consumable/nutriment = 1,
/datum/reagent/consumable/berryjuice = 5,
/datum/reagent/water = 11,
)
tastes = list("ice" = 1, "water" = 1, "berries" = 5)
foodtypes = FRUIT
/obj/item/food/snowcones/fruitsalad
name = "fruit salad snowcone"
desc = "A delightful mix of citrus syrups drizzled over a snowball in a paper cup."
icon_state = "fruitsalad_sc"
food_reagents = list(
/datum/reagent/consumable/nutriment = 1,
/datum/reagent/consumable/lemonjuice = 5,
/datum/reagent/consumable/limejuice = 5,
/datum/reagent/consumable/orangejuice = 5,
/datum/reagent/water = 11,
)
tastes = list("ice" = 1, "water" = 1, "oranges" = 5, "limes" = 5, "lemons" = 5, "citrus" = 5, "salad" = 5)
foodtypes = FRUIT | ORANGES
/obj/item/food/snowcones/pineapple
name = "pineapple snowcone"
desc = "Pineapple syrup drizzled over a snowball in a paper cup."
icon_state = "pineapple_sc"
food_reagents = list(
/datum/reagent/consumable/nutriment = 1,
/datum/reagent/consumable/pineapplejuice = 5,
/datum/reagent/water = 11,
)
tastes = list("ice" = 1, "water" = 1, "pineapples" = 5)
foodtypes = PINEAPPLE //Pineapple to allow all that like pineapple to enjoy
/obj/item/food/snowcones/mime
name = "mime snowcone"
desc = "..."
icon_state = "mime_sc"
food_reagents = list(
/datum/reagent/consumable/nutriment = 1,
/datum/reagent/consumable/nothing = 5,
/datum/reagent/water = 11,
)
tastes = list("ice" = 1, "water" = 1, "nothing" = 5)
foodtypes = SUGAR
/obj/item/food/snowcones/clown
name = "clown snowcone"
desc = "Laughter drizzled over a snowball in a paper cup."
icon_state = "clown_sc"
food_reagents = list(
/datum/reagent/consumable/nutriment = 1,
/datum/reagent/consumable/laughter = 5,
/datum/reagent/water = 11,
)
tastes = list("ice" = 1, "water" = 1, "jokes" = 5, "brainfreeze" = 5, "joy" = 5)
foodtypes = SUGAR | FRUIT
/obj/item/food/snowcones/soda
name = "space cola snowcone"
desc = "Space Cola drizzled over a snowball in a paper cup."
icon_state = "soda_sc"
food_reagents = list(
/datum/reagent/consumable/nutriment = 1,
/datum/reagent/consumable/space_cola = 5,
/datum/reagent/water = 11,
)
tastes = list("ice" = 1, "water" = 1, "cola" = 5)
foodtypes = SUGAR
/obj/item/food/snowcones/spacemountainwind
name = "space mountain wind snowcone"
desc = "Space Mountain Wind drizzled over a snowball in a paper cup."
icon_state = "mountainwind_sc"
food_reagents = list(
/datum/reagent/consumable/nutriment = 1,
/datum/reagent/consumable/spacemountainwind = 5,
/datum/reagent/water = 11,
)
tastes = list("ice" = 1, "water" = 1, "mountain wind" = 5)
foodtypes = SUGAR
/obj/item/food/snowcones/pwrgame
name = "pwrgame snowcone"
desc = "Pwrgame soda drizzled over a snowball in a paper cup."
icon_state = "pwrgame_sc"
food_reagents = list(
/datum/reagent/consumable/nutriment = 1,
/datum/reagent/consumable/pwr_game = 5,
/datum/reagent/water = 11,
)
tastes = list("ice" = 1, "water" = 1, "valid" = 5, "salt" = 5, "wats" = 5)
foodtypes = SUGAR
/obj/item/food/snowcones/honey
name = "honey snowcone"
desc = "Honey drizzled over a snowball in a paper cup."
icon_state = "amber_sc"
food_reagents = list(
/datum/reagent/consumable/nutriment = 1,
/datum/reagent/consumable/honey = 5,
/datum/reagent/water = 11,
)
tastes = list("ice" = 1, "water" = 1, "flowers" = 5, "sweetness" = 5, "wax" = 1)
foodtypes = SUGAR
crafting_complexity = FOOD_COMPLEXITY_3
/obj/item/food/snowcones/rainbow
name = "rainbow snowcone"
desc = "A very colorful snowball in a paper cup."
icon_state = "rainbow_sc"
food_reagents = list(
/datum/reagent/consumable/nutriment = 5,
/datum/reagent/consumable/laughter = 25,
/datum/reagent/water = 11,
)
tastes = list("ice" = 1, "water" = 1, "sunlight" = 5, "light" = 5, "slime" = 5, "paint" = 3, "clouds" = 3)
foodtypes = SUGAR
/obj/item/food/popsicle
name = "bug popsicle"
desc = "Mmmm, this should not exist."
icon = 'icons/obj/food/frozen_treats.dmi'
icon_state = "popsicle_stick_s"
food_reagents = list(
/datum/reagent/consumable/nutriment = 4,
/datum/reagent/consumable/cream = 2,
/datum/reagent/consumable/vanilla = 2,
/datum/reagent/consumable/sugar = 4,
)
tastes = list("beetle juice")
trash_type = /obj/item/popsicle_stick
w_class = WEIGHT_CLASS_SMALL
foodtypes = DAIRY | SUGAR
food_flags = FOOD_FINGER_FOOD
crafting_complexity = FOOD_COMPLEXITY_3
crafted_food_buff = /datum/status_effect/food/chilling
var/overlay_state = "creamsicle_o" //This is the edible part of the popsicle.
var/bite_states = 4 //This value value is used for correctly setting the bite_consumption to ensure every bite changes the sprite. Do not set to zero.
var/bitecount = 0
/obj/item/food/popsicle/Initialize(mapload)
. = ..()
bite_consumption = reagents.total_volume / bite_states
update_icon() // make sure the popsicle overlay is primed so it's not just a stick until you start eating it
/obj/item/food/popsicle/make_edible()
. = ..()
AddComponentFrom(SOURCE_EDIBLE_INNATE, /datum/component/edible, after_eat = CALLBACK(src, PROC_REF(after_bite)))
/obj/item/food/popsicle/update_overlays()
. = ..()
if(!bitecount)
. += initial(overlay_state)
return
. += "[initial(overlay_state)]_[min(bitecount, 3)]"
/obj/item/food/popsicle/proc/after_bite(mob/living/eater, mob/living/feeder, bitecount)
src.bitecount = bitecount
update_appearance()
/obj/item/popsicle_stick
name = "popsicle stick"
icon = 'icons/obj/food/frozen_treats.dmi'
icon_state = "popsicle_stick"
desc = "This humble little stick usually carries a frozen treat, at the moment it seems freed from this Atlassian burden."
custom_materials = list(/datum/material/wood = SMALL_MATERIAL_AMOUNT * 0.20)
resistance_flags = FLAMMABLE
w_class = WEIGHT_CLASS_TINY
force = 0
/obj/item/food/popsicle/creamsicle_orange
name = "orange creamsicle"
desc = "A classic orange creamsicle. A sunny frozen treat."
food_reagents = list(
/datum/reagent/consumable/orangejuice = 4,
/datum/reagent/consumable/cream = 2,
/datum/reagent/consumable/vanilla = 2,
/datum/reagent/consumable/sugar = 4,
)
foodtypes = FRUIT | DAIRY | SUGAR | ORANGES
crafting_complexity = FOOD_COMPLEXITY_4
/obj/item/food/popsicle/creamsicle_berry
name = "berry creamsicle"
desc = "A vibrant berry creamsicle. A berry good frozen treat."
food_reagents = list(
/datum/reagent/consumable/berryjuice = 4,
/datum/reagent/consumable/cream = 2,
/datum/reagent/consumable/vanilla = 2,
/datum/reagent/consumable/sugar = 4,
)
overlay_state = "creamsicle_m"
foodtypes = FRUIT | DAIRY | SUGAR
crafting_complexity = FOOD_COMPLEXITY_4
/obj/item/food/popsicle/jumbo
name = "jumbo ice cream"
desc = "A luxurious ice cream covered in rich chocolate. It seems smaller than you remember it being."
food_reagents = list(
/datum/reagent/consumable/hot_coco = 4,
/datum/reagent/consumable/cream = 2,
/datum/reagent/consumable/vanilla = 3,
/datum/reagent/consumable/sugar = 2,
)
overlay_state = "jumbo"
crafting_complexity = FOOD_COMPLEXITY_4
/obj/item/food/popsicle/licorice_creamsicle
name = "\improper Void Bar™"
desc = "A salty licorice ice cream. A salty frozen treat."
food_reagents = list(
/datum/reagent/consumable/nutriment = 4,
/datum/reagent/consumable/salt = 1,
/datum/reagent/consumable/cream = 2,
/datum/reagent/consumable/vanilla = 1,
/datum/reagent/consumable/sugar = 4,
)
tastes = list("salty liquorice")
overlay_state = "licorice_creamsicle"
crafting_complexity = FOOD_COMPLEXITY_4
/obj/item/food/cornuto
name = "cornuto"
w_class = WEIGHT_CLASS_SMALL
icon = 'icons/obj/food/frozen_treats.dmi'
icon_state = "cornuto"
desc = "A neapolitan vanilla and chocolate ice cream cone. It menaces with a sprinkling of caramelized nuts."
food_reagents = list(
/datum/reagent/consumable/nutriment = 6,
/datum/reagent/consumable/hot_coco = 4,
/datum/reagent/consumable/cream = 2,
/datum/reagent/consumable/vanilla = 4,
/datum/reagent/consumable/sugar = 2,
)
tastes = list("chopped hazelnuts", "waffle")
foodtypes = GRAIN|DAIRY|SUGAR
venue_value = FOOD_PRICE_NORMAL
crafting_complexity = FOOD_COMPLEXITY_3
crafted_food_buff = /datum/status_effect/food/chilling
/obj/item/food/popsicle/meatsicle
name = "meatsicle"
desc = "A horrific abomination of raw meat, glazed with sugar on a stick, then frozen."
food_reagents = list(
/datum/reagent/consumable/nutriment = 4,
/datum/reagent/consumable/nutriment/fat = 2,
/datum/reagent/consumable/nutriment/protein = 2,
/datum/reagent/consumable/sugar = 4,
)
overlay_state = "meatsicle"
foodtypes = RAW | MEAT | SUGAR
crafting_complexity = FOOD_COMPLEXITY_4
custom_materials = list(/datum/material/meat = MEATSLAB_MATERIAL_AMOUNT)