mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-01-28 18:11:16 +00:00
## About The Pull Request We have a `crafted_food_buff` in the code meant for specific food buffs (and perhaps one day, debuffs) that has gone unused ever since it was created during the 'Foodening' PR. Anyway, yeah, this PR takes the fire step to implement it with ice cream and other frozen treats. Frozen treats (all food found in the `food/frozen.dm` file) have it by default. Other ice cream holders such as waffles cones (and now regular waffles too!) can aquire it when filled with ice cream. Using the ice cream vat also adds the 'Chef Made' trait now, which is required for food effects to happen. Also very slight food effect refactor. There's no need to have five different alert screen objects when only have to switch icon states. This PR also adds an action speed modifier to the generic 'haste' food effect. I'm confident the original creator would have done that too, but action speed modifiers aren't as well-known. ## Why It's Good For The Game People tend to make one feature, call it a day and then move on to the next. Food effects are nice, however they're barely implemented, and I don't like food being all the same-ish in the end. ## Changelog 🆑 add: Ice cream and frozen treats now have a chilling effect. add: You can add a scoop of ice cream on waffles. balance: added an action speed modifier to the generic food haste effect (you do things, and not just run, an itsy bitsy faster) /🆑
457 lines
15 KiB
Plaintext
457 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 = 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 = 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 = 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 = 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/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()
|
|
. = ..()
|
|
AddComponent(/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 = "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 = 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
|