Epic MRE Time (Let's get this on a tray) (#14387)

This commit is contained in:
Wowzewow (Wezzy)
2022-08-09 17:04:06 +02:00
committed by GitHub
parent 168424cf87
commit 380a971eb3
22 changed files with 850 additions and 58 deletions
+4
View File
@@ -242,3 +242,7 @@
/obj/item/trash/phoroncandy
name = "\improper phoron rock candy stick"
icon_state = "rock_candy"
/obj/item/trash/proteinbar
name = "protein bar wrapper"
icon_state = "proteinbar"
@@ -98,6 +98,14 @@
/obj/item/material/kitchen/utensil/fork/plastic
default_material = MATERIAL_PLASTIC
/obj/item/material/kitchen/utensil/spork
name = "spork"
desc = "It's a spork. It's much like a fork, but much blunter."
icon_state = "spork"
/obj/item/material/kitchen/utensil/spork/plastic
default_material = MATERIAL_PLASTIC
/obj/item/material/kitchen/utensil/fork/chopsticks
name = "chopsticks"
desc = "A pair of chopsticks. The most challenging utensil in the Spur."
@@ -20,11 +20,18 @@
var/opened = FALSE // handles open/closing icons. also a failsafe.
var/closable = TRUE // if you can close the icon after opening.
var/icon_overlays = TRUE // whether the icon uses the update_icon() or a unique one.
var/open_sound = null // if you want to play a special sound if you open it for the first time
var/open_message = null // same as above, but a message
foldable = null // most of this stuff isn't foldable by default, e.g. cig packets and vial boxes
/obj/item/storage/box/fancy/open(mob/user)
. = ..()
if(!opened)
if(!closable)
if(open_sound)
playsound(src, open_sound, 50, 1, -5)
if(open_message)
to_chat(user, SPAN_NOTICE(open_message))
opened = TRUE
update_icon() // the reason why this isn't a clean catch-all update_icon() for fancy boxes is because of cigarette packets and donut boxes being different.
@@ -65,11 +72,12 @@
/obj/item/storage/box/fancy/examine(mob/user)
..()
if(!icon_type || !storage_type)
return
if(contents.len <= 0)
to_chat(user, "There are no [src.icon_type]s left in the [src.storage_type].")
else
to_chat(user, "There [src.contents.len == 1 ? "is" : "are"] <b>[src.contents.len]</b> [src.icon_type]\s left in \the [src.storage_type].")
return
/*
* Donut Box
@@ -121,6 +129,26 @@
starts_with = list(/obj/item/reagent_containers/food/snacks/egg = 12)
foldable = /obj/item/stack/material/cardboard
/*
* Cracker Packet
*/
/obj/item/storage/box/fancy/crackers
name = "\improper Getmore Crackers"
desc = "Salted crackers, not much for conversation; they're awfully dry."
icon = 'icons/obj/food.dmi'
icon_state = "crackerbag"
icon_type = "cracker"
storage_type = "bag"
use_sound = 'sound/items/storage/wrapper.ogg'
drop_sound = 'sound/items/drop/wrapper.ogg'
pickup_sound = 'sound/items/pickup/wrapper.ogg'
closable = FALSE
storage_slots = 6
w_class = ITEMSIZE_SMALL
can_hold = list(/obj/item/reagent_containers/food/snacks/cracker)
starts_with = list(/obj/item/reagent_containers/food/snacks/cracker = 6)
/*
* Candle Box
*/
@@ -0,0 +1,234 @@
/*
MRE Stuff
*/
/obj/item/storage/box/fancy/mre
name = "\improper MRE, menu 1"
desc = "A vacuum-sealed bag containing a day's worth of nutrients for an adult in strenuous situations. There is no visible expiration date on the package."
icon = 'icons/obj/food.dmi'
icon_state = "mre"
storage_slots = 7
opened = FALSE
closable = FALSE
icon_overlays = FALSE
drop_sound = 'sound/items/drop/gloves.ogg'
pickup_sound = 'sound/items/pickup/gloves.ogg'
use_sound = 'sound/items/storage/wrapper.ogg'
open_sound = 'sound/items/rip1.ogg'
open_message = "You tear open the bag, breaking the vacuum seal."
var/main_meal = /obj/item/storage/box/fancy/mrebag
var/meal_desc = "This one is menu 1, meat pizza."
starts_with = list(
/obj/item/storage/box/fancy/mrebag/dessert = 1,
/obj/item/storage/box/fancy/crackers = 1,
/obj/random/mre/spread = 1,
/obj/random/mre/drink = 1,
/obj/item/reagent_containers/food/condiment/small/packet/capsaicin = 1,
/obj/item/material/kitchen/utensil/fork/plastic = 1
)
/obj/item/storage/box/fancy/mre/fill()
new main_meal(src)
. = ..()
make_exact_fit()
/obj/item/storage/mre/attack_self(mob/user)
open(user)
/obj/item/storage/box/fancy/mre/examine(mob/user)
. = ..()
to_chat(user, meal_desc)
/obj/item/storage/box/fancy/mre/menu2
name = "\improper MRE, menu 2"
meal_desc = "This one is menu 2, margherita."
main_meal = /obj/item/storage/box/fancy/mrebag/menu2
starts_with = list(
/obj/item/storage/box/fancy/mrebag/dessert = 1,
/obj/item/storage/box/fancy/crackers = 1,
/obj/random/mre/spread = 1,
/obj/random/mre/drink = 1,
/obj/item/reagent_containers/food/condiment/small/packet/salt = 1,
/obj/item/material/kitchen/utensil/fork/plastic = 1
)
/obj/item/storage/box/fancy/mre/menu3
name = "\improper MRE, menu 3"
meal_desc = "This one is menu 3, vegetable pizza."
main_meal = /obj/item/storage/box/fancy/mrebag/menu3
starts_with = list(
/obj/item/storage/box/fancy/mrebag/dessert = 1,
/obj/item/storage/box/fancy/crackers = 1,
/obj/random/mre/spread = 1,
/obj/random/mre/drink = 1,
/obj/item/reagent_containers/food/condiment/small/packet/pepper = 1,
/obj/item/material/kitchen/utensil/fork/plastic = 1
)
/obj/item/storage/box/fancy/mre/menu4
name = "\improper MRE, menu 4"
meal_desc = "This one is menu 4, hamburger."
main_meal = /obj/item/storage/box/fancy/mrebag/menu4
starts_with = list(
/obj/item/storage/box/fancy/mrebag/dessert = 1,
/obj/item/storage/box/fancy/crackers = 1,
/obj/random/mre/spread = 1,
/obj/random/mre/drink = 1,
/obj/item/reagent_containers/food/condiment/small/packet/mayo = 1,
/obj/item/material/kitchen/utensil/spork/plastic = 1
)
/obj/item/storage/box/fancy/mre/menu5
name = "\improper MRE, menu 5"
meal_desc = "This one is menu 5, taco."
main_meal = /obj/item/storage/box/fancy/mrebag/menu5
starts_with = list(
/obj/item/storage/box/fancy/mrebag/dessert = 1,
/obj/item/storage/box/fancy/crackers = 1,
/obj/random/mre/spread = 1,
/obj/random/mre/drink = 1,
/obj/item/reagent_containers/food/condiment/small/packet/ketchup = 1,
/obj/item/material/kitchen/utensil/spork/plastic = 1
)
/obj/item/storage/box/fancy/mre/menu6
name = "\improper MRE, menu 6"
meal_desc = "This one is menu 6, meatbread."
main_meal = /obj/item/storage/box/fancy/mrebag/menu6
starts_with = list(
/obj/item/storage/box/fancy/mrebag/dessert = 1,
/obj/item/storage/box/fancy/crackers = 1,
/obj/random/mre/spread = 1,
/obj/random/mre/drink = 1,
/obj/random/mre/sauce/sugarfree = 1,
/obj/item/material/kitchen/utensil/fork/plastic = 1
)
/obj/item/storage/box/fancy/mre/menu7
name = "\improper MRE, menu 7"
meal_desc = "This one is menu 7, salad."
main_meal = /obj/item/storage/box/fancy/mrebag/menu7
starts_with = list(
/obj/item/storage/box/fancy/mrebag/dessert = 1,
/obj/item/storage/box/fancy/crackers = 1,
/obj/random/mre/spread = 1,
/obj/random/mre/drink = 1,
/obj/item/reagent_containers/food/condiment/small/packet/soy = 1,
/obj/item/material/kitchen/utensil/spoon/plastic = 1
)
/obj/item/storage/box/fancy/mre/menu8
name = "\improper MRE, menu 8"
meal_desc = "This one is menu 8, hot chili."
main_meal = /obj/item/storage/box/fancy/mrebag/menu8
starts_with = list(
/obj/item/storage/box/fancy/mrebag/dessert = 1,
/obj/item/storage/box/fancy/crackers = 1,
/obj/random/mre/spread = 1,
/obj/random/mre/drink = 1,
/obj/item/reagent_containers/food/condiment/small/packet/capsaicin = 1,
/obj/item/material/kitchen/utensil/spoon/plastic = 1
)
/obj/item/storage/box/fancy/mre/menu9
name = "vegan MRE"
meal_desc = "This one is menu 9, boiled rice (skrell-safe)."
icon_state = "vegmre"
main_meal = /obj/item/storage/box/fancy/mrebag/menu9
starts_with = list(
/obj/item/storage/box/fancy/mrebag/dessert/menu9 = 1,
/obj/item/storage/box/fancy/crackers = 1,
/obj/random/mre/spread/vegan = 1,
/obj/random/mre/drink = 1,
/obj/item/reagent_containers/food/condiment/small/packet/soy = 1,
/obj/item/material/kitchen/utensil/spoon/plastic = 1
)
/obj/item/storage/box/fancy/mre/menu10
name = "protein MRE"
meal_desc = "This one is menu 10, protein."
icon_state = "meatmre"
main_meal = /obj/item/storage/box/fancy/mrebag/menu10
starts_with = list(
/obj/item/reagent_containers/food/snacks/proteinbar = 1,
/obj/item/reagent_containers/food/condiment/small/packet/protein = 1,
/obj/random/mre/sauce/sugarfree = 1,
/obj/item/material/kitchen/utensil/fork/plastic = 1
)
/obj/item/storage/box/fancy/mre/menu11 // This is contraband, so normal players usually won't see it unless they actively seek it out
name = "crayon MRE"
meal_desc = "This one doesn't have a menu listing. How very odd."
icon_state = "crayonmre"
main_meal = /obj/item/storage/box/fancy/crayons
starts_with = list(
/obj/item/storage/box/fancy/mrebag/dessert/menu11 = 1,
/obj/random/mre/sauce/crayon = 1,
/obj/random/mre/sauce/crayon = 1,
/obj/random/mre/sauce/crayon = 1
)
/obj/item/storage/box/fancy/mre/menu11/special // antag item
meal_desc = "This one doesn't have a menu listing. How odd. It has the initials \"A.B.\" written on the back."
/obj/item/storage/box/fancy/mre/random
meal_desc = "The menu label is faded out."
main_meal = /obj/random/mre/main
/obj/item/storage/box/fancy/mrebag
name = "main course"
desc = "A vacuum-sealed bag containing a MRE's main course. Self-heats when opened."
icon = 'icons/obj/food.dmi'
icon_state = "pouch_medium"
drop_sound = 'sound/items/drop/gloves.ogg'
pickup_sound = 'sound/items/pickup/gloves.ogg'
use_sound = 'sound/items/storage/wrapper.ogg'
storage_slots = 1
opened = FALSE
closable = FALSE
icon_overlays = FALSE
w_class = ITEMSIZE_SMALL
open_sound = 'sound/effects/bubbles.ogg'
open_message = "The pouch heats up as you break the vacuum seal."
starts_with = list(/obj/item/reagent_containers/food/snacks/meatpizzaslice/filled = 1)
/obj/item/storage/box/fancy/mrebag/menu2
starts_with = list(/obj/item/reagent_containers/food/snacks/margheritaslice/filled = 1)
/obj/item/storage/box/fancy/mrebag/menu3
starts_with = list(/obj/item/reagent_containers/food/snacks/vegetablepizzaslice/filled = 1)
/obj/item/storage/box/fancy/mrebag/menu4
starts_with = list(/obj/item/reagent_containers/food/snacks/burger = 1)
/obj/item/storage/box/fancy/mrebag/menu5
starts_with = list(/obj/item/reagent_containers/food/snacks/taco = 1)
/obj/item/storage/box/fancy/mrebag/menu6
starts_with = list(/obj/item/reagent_containers/food/snacks/meatbreadslice/filled = 1)
/obj/item/storage/box/fancy/mrebag/menu7
starts_with = list(/obj/item/reagent_containers/food/snacks/salad/tossedsalad = 1)
/obj/item/storage/box/fancy/mrebag/menu8
starts_with = list(/obj/item/reagent_containers/food/snacks/hotchili = 1)
/obj/item/storage/box/fancy/mrebag/menu9
starts_with = list(/obj/item/reagent_containers/food/snacks/boiledrice = 1)
/obj/item/storage/box/fancy/mrebag/menu10
starts_with = list(/obj/item/reagent_containers/food/snacks/meatcube = 1)
/obj/item/storage/box/fancy/mrebag/dessert
name = "dessert"
desc = "A vacuum-sealed bag containing a MRE's dessert."
icon_state = "pouch_small"
open_sound = 'sound/items/rip1.ogg'
open_message = "You tear open the bag, breaking the vacuum seal."
starts_with = list(/obj/random/mre/dessert = 1)
/obj/item/storage/box/fancy/mrebag/dessert/menu9
starts_with = list(/obj/item/reagent_containers/food/snacks/plumphelmetbiscuit = 1)
/obj/item/storage/box/fancy/mrebag/dessert/menu11
starts_with = list(/obj/item/pen/crayon/rainbow = 1)
+134
View File
@@ -552,6 +552,140 @@
if (damaged && prob(60))
suit.create_breaches(pick(BRUTE, BURN), rand(1, 5))
//Random MRE stuff
/obj/random/mre
name = "random MRE"
desc = "This is a random single MRE."
icon = 'icons/obj/food.dmi'
icon_state = "mre"
spawnlist = list(/obj/item/storage/box/fancy/mre,
/obj/item/storage/box/fancy/mre/menu2,
/obj/item/storage/box/fancy/mre/menu3,
/obj/item/storage/box/fancy/mre/menu4,
/obj/item/storage/box/fancy/mre/menu5,
/obj/item/storage/box/fancy/mre/menu6,
/obj/item/storage/box/fancy/mre/menu7,
/obj/item/storage/box/fancy/mre/menu8,
/obj/item/storage/box/fancy/mre/menu9,
/obj/item/storage/box/fancy/mre/menu10)
/obj/random/mre/main
name = "random MRE main course"
desc = "This is a random main course for MREs."
icon_state = "pouch_medium"
spawnlist = list(/obj/item/storage/box/fancy/mrebag,
/obj/item/storage/box/fancy/mrebag/menu2,
/obj/item/storage/box/fancy/mrebag/menu3,
/obj/item/storage/box/fancy/mrebag/menu4,
/obj/item/storage/box/fancy/mrebag/menu5,
/obj/item/storage/box/fancy/mrebag/menu6,
/obj/item/storage/box/fancy/mrebag/menu7,
/obj/item/storage/box/fancy/mrebag/menu8)
/obj/random/mre/dessert
name = "random MRE dessert"
desc = "This is a random dessert for MREs."
icon_state = "pouch_medium"
spawnlist = list(/obj/item/reagent_containers/food/snacks/candy,
/obj/item/reagent_containers/food/snacks/cb01, //finally, a use of these outside hallowe'en
/obj/item/reagent_containers/food/snacks/cb02,
/obj/item/reagent_containers/food/snacks/cb03,
/obj/item/reagent_containers/food/snacks/cb04,
/obj/item/reagent_containers/food/snacks/cb05,
/obj/item/reagent_containers/food/snacks/cb06,
/obj/item/reagent_containers/food/snacks/cb07,
/obj/item/reagent_containers/food/snacks/cb08,
/obj/item/reagent_containers/food/snacks/cb09,
/obj/item/reagent_containers/food/snacks/cb10,
/obj/item/reagent_containers/food/snacks/proteinbar,
/obj/item/reagent_containers/food/snacks/donut/normal,
/obj/item/reagent_containers/food/snacks/donut/cherryjelly,
/obj/item/reagent_containers/food/snacks/chocolatebar,
/obj/item/reagent_containers/food/snacks/cookie,
/obj/item/reagent_containers/food/snacks/poppypretzel,
/obj/item/storage/box/fancy/gum)
/obj/random/mre/dessert/vegan
name = "random vegan MRE dessert"
desc = "This is a random vegan dessert for MREs."
spawnlist = list(/obj/item/reagent_containers/food/snacks/candy,
/obj/item/reagent_containers/food/snacks/cb01,
/obj/item/reagent_containers/food/snacks/cb02,
/obj/item/reagent_containers/food/snacks/cb03,
/obj/item/reagent_containers/food/snacks/cb04,
/obj/item/reagent_containers/food/snacks/cb05,
/obj/item/reagent_containers/food/snacks/cb06,
/obj/item/reagent_containers/food/snacks/cb07,
/obj/item/reagent_containers/food/snacks/cb08,
/obj/item/reagent_containers/food/snacks/cb09,
/obj/item/reagent_containers/food/snacks/cb10,
/obj/item/reagent_containers/food/snacks/chocolatebar,
/obj/item/reagent_containers/food/snacks/donut/cherryjelly,
/obj/item/reagent_containers/food/snacks/plumphelmetbiscuit)
/obj/random/mre/drink
name = "random MRE drink"
desc = "This is a random drink for MREs."
icon_state = "packet_small"
spawnlist = list(/obj/item/reagent_containers/food/condiment/small/packet/coffee,
/obj/item/reagent_containers/food/condiment/small/packet/tea,
/obj/item/reagent_containers/food/condiment/small/packet/cocoa,
/obj/item/reagent_containers/food/condiment/small/packet/grape,
/obj/item/reagent_containers/food/condiment/small/packet/orange,
/obj/item/reagent_containers/food/condiment/small/packet/watermelon,
/obj/item/reagent_containers/food/condiment/small/packet/apple)
/obj/random/mre/spread
name = "random MRE spread"
desc = "This is a random spread packet for MREs."
icon_state = "packet_small"
spawnlist = list(/obj/item/reagent_containers/food/condiment/small/packet/jelly,
/obj/item/reagent_containers/food/condiment/small/packet/honey)
/obj/random/mre/spread/vegan
name = "random vegan MRE spread"
desc = "This is a random vegan spread packet for MREs."
spawnlist = list(/obj/item/reagent_containers/food/condiment/small/packet/jelly)
/obj/random/mre/sauce
name = "random MRE sauce"
desc = "This is a random sauce packet for MREs."
icon_state = "packet_small"
spawnlist = list(/obj/item/reagent_containers/food/condiment/small/packet/salt,
/obj/item/reagent_containers/food/condiment/small/packet/pepper,
/obj/item/reagent_containers/food/condiment/small/packet/sugar,
/obj/item/reagent_containers/food/condiment/small/packet/capsaicin,
/obj/item/reagent_containers/food/condiment/small/packet/ketchup,
/obj/item/reagent_containers/food/condiment/small/packet/mayo,
/obj/item/reagent_containers/food/condiment/small/packet/soy)
/obj/random/mre/sauce/vegan
spawnlist = list(/obj/item/reagent_containers/food/condiment/small/packet/salt,
/obj/item/reagent_containers/food/condiment/small/packet/pepper,
/obj/item/reagent_containers/food/condiment/small/packet/sugar,
/obj/item/reagent_containers/food/condiment/small/packet/soy)
/obj/random/mre/sauce/sugarfree
spawnlist = list(/obj/item/reagent_containers/food/condiment/small/packet/salt,
/obj/item/reagent_containers/food/condiment/small/packet/pepper,
/obj/item/reagent_containers/food/condiment/small/packet/capsaicin,
/obj/item/reagent_containers/food/condiment/small/packet/ketchup,
/obj/item/reagent_containers/food/condiment/small/packet/mayo,
/obj/item/reagent_containers/food/condiment/small/packet/soy)
/obj/random/mre/sauce/crayon
spawnlist = list(/obj/item/reagent_containers/food/condiment/small/packet/crayon,
/obj/item/reagent_containers/food/condiment/small/packet/crayon/red,
/obj/item/reagent_containers/food/condiment/small/packet/crayon/orange,
/obj/item/reagent_containers/food/condiment/small/packet/crayon/yellow,
/obj/item/reagent_containers/food/condiment/small/packet/crayon/green,
/obj/item/reagent_containers/food/condiment/small/packet/crayon/blue,
/obj/item/reagent_containers/food/condiment/small/packet/crayon/purple,
/obj/item/reagent_containers/food/condiment/small/packet/crayon/grey,
/obj/item/reagent_containers/food/condiment/small/packet/crayon/brown)
/obj/random/vendor
name = "random vendor"
var/depleted = FALSE
@@ -326,11 +326,11 @@
/obj/structure/closet/crate/freezer/rations //For use in the escape shuttle
name = "emergency rations"
desc = "A crate of emergency rations containing liquid food and some bottles of water."
desc = "A crate of emergency rations and some bottles of water."
/obj/structure/closet/crate/freezer/rations/fill()
for(var/i=1,i<=6,i++)
new /obj/item/reagent_containers/food/snacks/liquidfood(src)
new /obj/random/mre
new /obj/item/reagent_containers/food/drinks/waterbottle(src)
/obj/structure/closet/crate/bin
@@ -542,7 +542,7 @@
var/list/crates_to_use = typesof(/obj/structure/closet/crate) - typesof(/obj/structure/closet/crate/secure/gear_loadout)
crates_to_use -= /obj/structure/closet/crate/loot
var/icontype = pick(crates_to_use)
var/obj/structure/closet/crate/C = new icontype(get_turf(src), TRUE) //TRUE as we do not want the crate to fill(), we will fill it ourselves.
var/obj/structure/closet/crate/C = new icontype(get_turf(src), TRUE) //TRUE as we do not want the crate to fill(), we will fill it ourselves.
C.name = "unusual container"
C.desc = "A mysterious container of unknown origins. What mysteries lie within?"