diff --git a/_maps/RandomZLevels/museum.dmm b/_maps/RandomZLevels/museum.dmm index 4e7656ee17c9..22cec897ac78 100644 --- a/_maps/RandomZLevels/museum.dmm +++ b/_maps/RandomZLevels/museum.dmm @@ -1765,7 +1765,7 @@ dir = 1 }, /obj/structure/table, -/obj/item/food/sandwich/cheese/grilled, +/obj/item/food/sandwich/grilled_cheese, /turf/open/floor/iron/dark, /area/awaymission/museum) "of" = ( diff --git a/_maps/map_files/Deltastation/DeltaStation2.dmm b/_maps/map_files/Deltastation/DeltaStation2.dmm index bb179077a958..6a77ae8388d7 100644 --- a/_maps/map_files/Deltastation/DeltaStation2.dmm +++ b/_maps/map_files/Deltastation/DeltaStation2.dmm @@ -55872,7 +55872,7 @@ normaldoorcontrol = 1; specialfunctions = 4 }, -/obj/item/food/sandwich/cheese/grilled, +/obj/item/food/sandwich/grilled_cheese, /turf/open/floor/iron/cafeteria, /area/station/medical/break_room) "mMH" = ( diff --git a/_maps/map_files/IceBoxStation/IceBoxStation.dmm b/_maps/map_files/IceBoxStation/IceBoxStation.dmm index 80d9aa3c8d72..3f2cd29fc509 100644 --- a/_maps/map_files/IceBoxStation/IceBoxStation.dmm +++ b/_maps/map_files/IceBoxStation/IceBoxStation.dmm @@ -64011,7 +64011,7 @@ /area/station/cargo/storage) "sQc" = ( /obj/structure/table, -/obj/item/food/sandwich/cheese/grilled{ +/obj/item/food/sandwich/grilled_cheese{ name = "idiot sandwich"; pixel_y = 8 }, diff --git a/_maps/map_files/tramstation/maintenance_modules/atmoscilower_2.dmm b/_maps/map_files/tramstation/maintenance_modules/atmoscilower_2.dmm index 6b7905953674..b3ceac8d3619 100644 --- a/_maps/map_files/tramstation/maintenance_modules/atmoscilower_2.dmm +++ b/_maps/map_files/tramstation/maintenance_modules/atmoscilower_2.dmm @@ -445,7 +445,7 @@ pixel_x = -7; pixel_y = -10 }, -/obj/item/food/sandwich/cheese/grilled{ +/obj/item/food/sandwich/grilled_cheese{ pixel_x = -5; pixel_y = -9 }, diff --git a/_maps/shuttles/emergency_luxury.dmm b/_maps/shuttles/emergency_luxury.dmm index bf2e159c6541..50667dd11d4d 100644 --- a/_maps/shuttles/emergency_luxury.dmm +++ b/_maps/shuttles/emergency_luxury.dmm @@ -324,7 +324,7 @@ /turf/open/floor/holofloor/beach/water, /area/shuttle/escape/luxury) "nC" = ( -/obj/item/food/sandwich/cheese/grilled{ +/obj/item/food/sandwich/grilled_cheese{ pixel_y = 11 }, /obj/structure/table/wood/fancy/black, diff --git a/code/__DEFINES/access.dm b/code/__DEFINES/access.dm index 2060827c9e22..bebeef0f542d 100644 --- a/code/__DEFINES/access.dm +++ b/code/__DEFINES/access.dm @@ -333,6 +333,7 @@ ACCESS_SERVICE, \ ACCESS_SHIPPING, \ ACCESS_SURGERY, \ + ACCESS_TECH_STORAGE, \ ACCESS_THEATRE, \ ACCESS_VIROLOGY, \ ACCESS_WEAPONS, \ @@ -351,7 +352,6 @@ ACCESS_MINISAT, \ ACCESS_RC_ANNOUNCE, \ ACCESS_TCOMMS, \ - ACCESS_TECH_STORAGE, \ ACCESS_TELEPORTER, \ ACCESS_VAULT, \ ) diff --git a/code/__DEFINES/crafting.dm b/code/__DEFINES/crafting.dm index 62658dde50b4..e700f7242358 100644 --- a/code/__DEFINES/crafting.dm +++ b/code/__DEFINES/crafting.dm @@ -35,27 +35,46 @@ #define CRAFT_CLEARS_REAGENTS (1<<8) //food/drink crafting defines -//When adding new defines, please make sure to also add them to the encompassing list #define CAT_FOOD "Foods" -#define CAT_BREAD "Breads" -#define CAT_BURGER "Burgers" -#define CAT_CAKE "Cakes" -#define CAT_EGG "Egg-Based Food" -#define CAT_LIZARD "Lizard Food" -#define CAT_MEAT "Meats" -#define CAT_SEAFOOD "Seafood" -#define CAT_MARTIAN "Martian Food" -#define CAT_MISCFOOD "Misc. Food" -#define CAT_MEXICAN "Mexican Food" -#define CAT_MOTH "Mothic Food" -#define CAT_PASTRY "Pastries" -#define CAT_PIE "Pies" -#define CAT_PIZZA "Pizzas" -#define CAT_SALAD "Salads" -#define CAT_SANDWICH "Sandwiches" -#define CAT_SOUP "Soups" -#define CAT_SPAGHETTI "Spaghettis" -#define CAT_ICE "Frozen" + // cuisine categories + #define CUISINE_ITALIAN "Italian" + #define CUISINE_JAPANESE "Japanese" + #define CUISINE_LIZARD "Lizard" + #define CUISINE_MARTIAN "Martian" + #define CUISINE_MEXICAN "Mexican" + #define CUISINE_MOTHIC "Mothic" + #define CUISINE_TERRAN "Terran" // catch-all for earth food that we don't have a more specific category for + #define CUISINE_STARFRUIT "Starfruit" // NON-MODULE CHANGE + // dish categories + #define DISH_BREAD "Bread" + #define DISH_BURGER "Burger" + #define DISH_BURRITO "Burrito" // also includes wraps/enchilada + #define DISH_CAKE "Cake" + #define DISH_CANDY "Candy" + #define DISH_CONDIMENT "Condiment" // catch-all for sauces, dressings, sides, etc + #define DISH_COOKIE "Cookie" + #define DISH_FROZEN "Frozen" // catch-all for ice cream, popsicles, etc + #define DISH_MEAT "Meat" // anything often served on its own as a "meat dish" (like steak), though it may include tofu + #define DISH_NOODLES "Noodles" + #define DISH_PASTRY "Pastry" + #define DISH_PIE "Pie" + #define DISH_PIZZA "Pizza" + #define DISH_RICE "Rice" // practically anything with rice in it + #define DISH_SALAD "Salad" // often includes salad adjacent (ie: coleslaw, stir fry) + #define DISH_SANDWICH "Sandwich" // divorced from burger for better filtering. also, yes, includes hotdogs. + #define DISH_SOUP "Soup" + #define DISH_SUSHI "Sushi" + #define DISH_TACO "Taco" + #define DISH_UNCATEGORIZED "Uncategorized" + // meal categories + #define MEAL_APPETIZER "Appetizer" + #define MEAL_BREAKFAST "Breakfast" + #define MEAL_COMPONENT "Component" // stuff you're not intended to eat + #define MEAL_DESSERT "Dessert" + #define MEAL_MAIN_COURSE "Main Course" + #define MEAL_SNACK "Snack" + #define MEAL_UNCATEGORIZED "Uncategorized" + #define CAT_DRINK "Drinks" //crafting defines diff --git a/code/__DEFINES/food.dm b/code/__DEFINES/food.dm index f4c9b9bafe4b..9ace27fd36a5 100644 --- a/code/__DEFINES/food.dm +++ b/code/__DEFINES/food.dm @@ -18,6 +18,7 @@ #define BUGS (1<<17) #define GORE (1<<18) #define STONE (1<<19) +#define EGG (1<<20) DEFINE_BITFIELD(foodtypes, list( "MEAT" = MEAT, @@ -40,6 +41,7 @@ DEFINE_BITFIELD(foodtypes, list( "BUGS" = BUGS, "GORE" = GORE, "STONE" = STONE, + "EGG" = EGG, )) /// A list of food type names, in order of their flags @@ -64,6 +66,7 @@ DEFINE_BITFIELD(foodtypes, list( "BUGS", \ "GORE", \ "STONE", \ + "EGG", \ ) /// IC meaning (more or less) for food flags @@ -88,6 +91,7 @@ DEFINE_BITFIELD(foodtypes, list( "Bugs", \ "Gore", \ "Rocks", \ + "Eggs", \ ) #define DRINK_REVOLTING 1 @@ -137,11 +141,9 @@ GLOBAL_ALIST_INIT(food_buffs, alist( ), FOOD_COMPLEXITY_4 = list( /datum/status_effect/food/haste = 1, - /datum/status_effect/food/trait/shockimmune = 1, ), FOOD_COMPLEXITY_5 = list( /datum/status_effect/food/haste = 1, - /datum/status_effect/food/trait/shockimmune = 2, ), )) diff --git a/code/__DEFINES/keybinding.dm b/code/__DEFINES/keybinding.dm index ac5d9fb3da72..9cd0e10f0da9 100644 --- a/code/__DEFINES/keybinding.dm +++ b/code/__DEFINES/keybinding.dm @@ -54,6 +54,7 @@ #define COMSIG_KB_LIVING_DISABLE_COMBAT_DOWN "keybinding_living_disable_combat_down" #define COMSIG_KB_LIVING_TOGGLEMOVEINTENT_DOWN "keybinding_mob_togglemoveintent_down" #define COMSIG_KB_LIVING_TOGGLEMOVEINTENTALT_DOWN "keybinding_mob_togglemoveintentalt_down" +#define COMSIG_KB_LIVING_STOP_INTERACTIONS_DOWN "keybinding_living_stop_interactions_down" //Mob #define COMSIG_KB_MOB_FACENORTH_DOWN "keybinding_mob_facenorth_down" diff --git a/code/__DEFINES/processing.dm b/code/__DEFINES/processing.dm index 905c03830d51..27f0d2126b11 100644 --- a/code/__DEFINES/processing.dm +++ b/code/__DEFINES/processing.dm @@ -1,3 +1,4 @@ #define TOOL_PROCESSING_RESULT "result" #define TOOL_PROCESSING_AMOUNT "amount" #define TOOL_PROCESSING_TIME "time" +#define TOOL_PROCESSING_SOUND "sound" diff --git a/code/__DEFINES/reagents.dm b/code/__DEFINES/reagents.dm index 47271cdaaac6..f7f7b8ea7716 100644 --- a/code/__DEFINES/reagents.dm +++ b/code/__DEFINES/reagents.dm @@ -227,7 +227,7 @@ /// Reaction tags for medication #define MEDICATION_REACTION_TAGS (REACTION_TAG_HEALING | REACTION_TAG_DAMAGING | REACTION_TAG_ORGAN | REACTION_TAG_DRUG | REACTION_TAG_PAIN) /// Reaction tags for things the chemist would make -#define CHEMIST_REACTION_TAGS (REACTION_TAG_EXPLOSIVE | REACTION_TAG_CHEMICAL | REACTION_TAG_COMPETITIVE | REACTION_TAG_EXPLOSIVE | REACTION_TAG_COMPONENT) +#define CHEMIST_REACTION_TAGS (REACTION_TAG_EXPLOSIVE | REACTION_TAG_CHEMICAL | REACTION_TAG_COMPETITIVE | REACTION_TAG_COMPONENT) /// Reaction tags for botanist stuff #define BOTANIST_REACTION_TAGS (REACTION_TAG_PLANT | REACTION_TAG_COMPONENT) /// Reaction tags for food and drink mainly diff --git a/code/__DEFINES/sound.dm b/code/__DEFINES/sound.dm index e4e986ec023f..1f674b83b539 100644 --- a/code/__DEFINES/sound.dm +++ b/code/__DEFINES/sound.dm @@ -187,7 +187,18 @@ GLOBAL_LIST_INIT(announcer_keys, list( ANNOUNCER_SPANOMALIES, )) -/// List of all of our sound keys. +/** +# assoc list of datum by key +* k = SFX_KEY (see below) +* v = singleton sound_effect datum ref +* initialized in SSsounds init +*/ +GLOBAL_LIST_EMPTY(sfx_datum_by_key) + +/* List of all of our sound keys. + used with /datum/sound_effect as the key + see code\game\sound_keys.dm +*/ #define SFX_BODYFALL "bodyfall" #define SFX_BULLET_MISS "bullet_miss" #define SFX_CAN_OPEN "can_open" @@ -201,7 +212,6 @@ GLOBAL_LIST_INIT(announcer_keys, list( #define SFX_HULL_CREAKING "hull_creaking" #define SFX_HYPERTORUS_CALM "hypertorus_calm" #define SFX_HYPERTORUS_MELTING "hypertorus_melting" -#define SFX_IM_HERE "im_here" #define SFX_LAW "law" #define SFX_PAGE_TURN "page_turn" #define SFX_PUNCH "punch" @@ -248,3 +258,45 @@ GLOBAL_LIST_INIT(announcer_keys, list( #define SFX_CLOTH_DROP "cloth_drop" #define SFX_BANDAGE_BEGIN "bandage_begin" #define SFX_BANDAGE_END "bandage_end" +#define SFX_POLAROID "polaroid" +#define SFX_KEYBOARD_CLICKS "keyboard_clicks" +// #define SFX_SUTURE_BEGIN "suture_begin" +// #define SFX_SUTURE_CONTINUOUS "suture_continuous" +// #define SFX_SUTURE_END "suture_end" +// #define SFX_SUTURE_PICKUP "suture_pickup" +// #define SFX_SUTURE_DROP "suture_drop" +// #define SFX_REGEN_MESH_BEGIN "regen_mesh_begin" +// #define SFX_REGEN_MESH_CONTINUOUS "regen_mesh_continuous" +// #define SFX_REGEN_MESH_END "regen_mesh_end" +// #define SFX_REGEN_MESH_PICKUP "regen_mesh_pickup" +// #define SFX_REGEN_MESH_DROP "regen_mesh_drop" +// #define SFX_CIG_PACK_DROP "cig_pack_drop" +// #define SFX_CIG_PACK_INSERT "cig_pack_insert" +// #define SFX_CIG_PACK_PICKUP "cig_pack_pickup" +// #define SFX_CIG_PACK_RUSTLE "cig_pack_rustle" +// #define SFX_CIG_PACK_THROW_DROP "cig_pack_throw_drop" +// #define SFX_RORO_WARBLE "roro_warble" +// #define SFX_POTTED_PLANT_PICKUP "potted_plant_pickup" +// #define SFX_POTTED_PLANT_DROP "potted_plant_drop" +// #define SFX_GOGGLES_PICKUP "goggles_pickup" +// #define SFX_GOGGLES_DROP "goggles_drop" +// #define SFX_GOGGLES_EQUIP "goggles_equip" +// #define SFX_GLASSES_PICKUP "glasses_pickup" +// #define SFX_GLASSES_DROP "glasses_drop" +// #define SFX_GLASSES_EQUIP "glasses_equip" +#define SFX_FOOD_PLATE_PICKUP "food_plate_pickup" +#define SFX_FOOD_PLATE_DROP "food_plate_drop" +#define SFX_TRAY_PICKUP "tray_pickup" +#define SFX_TRAY_DROP "tray_drop" +#define SFX_TRAY_INSERT "tray_insert" +#define SFX_CUTLERY_PICKUP "generic_cutlery_pickup" +#define SFX_CUTLERY_DROP "generic_cutlery_drop" +#define SFX_KNIFE_PICKUP "knife_pickup" +#define SFX_KNIFE_DROP "knife_drop" +#define SFX_KNIFE_SLICE "knife_slice" +#define SFX_POT_PICKUP "pot_pickup" +#define SFX_POT_DROP "pot_drop" +#define SFX_ROLLING_PIN_PICKUP "rolling_pin_pickup" +#define SFX_ROLLING_PIN_DROP "rolling_pin_drop" +#define SFX_ROLLING_PIN_ROLLING "rolling_pin_rolling" +#define SFX_FIRE_MODE_SWITCH "fire_mode_switch" diff --git a/code/_globalvars/lists/ambience.dm b/code/_globalvars/lists/ambience.dm index 155bf785d3c9..dce250e381f9 100644 --- a/code/_globalvars/lists/ambience.dm +++ b/code/_globalvars/lists/ambience.dm @@ -32,7 +32,7 @@ GLOBAL_LIST_INIT(ruins_ambience,list( 'sound/ambience/ambicave.ogg', 'sound/ambience/ambidanger.ogg', 'sound/ambience/ambidanger2.ogg', - 'sound/ambience/ambimaint1.ogg', + 'sound/ambience/maintenance/ambimaint1.ogg', 'sound/ambience/ambimine.ogg', 'sound/ambience/ambimystery.ogg', 'sound/ambience/ambiruin.ogg', @@ -68,7 +68,7 @@ GLOBAL_LIST_INIT(mining_ambience, list( 'sound/ambience/ambilava1.ogg', 'sound/ambience/ambilava2.ogg', 'sound/ambience/ambilava3.ogg', - 'sound/ambience/ambimaint1.ogg', + 'sound/ambience/maintenance/ambimaint1.ogg', 'sound/ambience/ambimine.ogg', 'sound/ambience/ambiruin.ogg', 'sound/ambience/ambiruin2.ogg', @@ -124,18 +124,18 @@ GLOBAL_LIST_INIT(space_ambience,list( )) GLOBAL_LIST_INIT(maint_ambience,list( - 'sound/ambience/ambimaint1.ogg', - 'sound/ambience/ambimaint2.ogg', - 'sound/ambience/ambimaint3.ogg', - 'sound/ambience/ambimaint4.ogg', - 'sound/ambience/ambimaint5.ogg', - 'sound/ambience/ambimaint6.ogg', - 'sound/ambience/ambimaint7.ogg', - 'sound/ambience/ambimaint8.ogg', - 'sound/ambience/ambimaint9.ogg', - 'sound/ambience/ambimaint10.ogg', - 'sound/ambience/ambimaint11.ogg', - 'sound/ambience/ambimaint12.ogg', + 'sound/ambience/maintenance/ambimaint1.ogg', + 'sound/ambience/maintenance/ambimaint2.ogg', + 'sound/ambience/maintenance/ambimaint3.ogg', + 'sound/ambience/maintenance/ambimaint4.ogg', + 'sound/ambience/maintenance/ambimaint5.ogg', + 'sound/ambience/maintenance/ambimaint6.ogg', + 'sound/ambience/maintenance/ambimaint7.ogg', + 'sound/ambience/maintenance/ambimaint8.ogg', + 'sound/ambience/maintenance/ambimaint9.ogg', + 'sound/ambience/maintenance/ambimaint10.ogg', + 'sound/ambience/maintenance/ambimaint11.ogg', + 'sound/ambience/maintenance/ambimaint12.ogg', 'sound/ambience/ambitech2.ogg', 'sound/voice/lowHiss1.ogg', 'sound/voice/lowHiss2.ogg', @@ -155,7 +155,7 @@ GLOBAL_LIST_INIT(away_ambience,list( 'sound/ambience/ambiatmos2.ogg', 'sound/ambience/ambidanger.ogg', 'sound/ambience/ambidanger2.ogg', - 'sound/ambience/ambimaint.ogg', + 'sound/ambience/maintenance/ambimaint.ogg', 'sound/ambience/ambiodd.ogg', 'sound/ambience/ambiruin.ogg', 'sound/ambience/ambiruin2.ogg', diff --git a/code/_globalvars/lists/crafting.dm b/code/_globalvars/lists/crafting.dm index 48b2b61a42bf..72a501bc6529 100644 --- a/code/_globalvars/lists/crafting.dm +++ b/code/_globalvars/lists/crafting.dm @@ -1,24 +1,5 @@ GLOBAL_LIST_INIT(crafting_category_food, list( CAT_FOOD, - CAT_BREAD, - CAT_BURGER, - CAT_CAKE, - CAT_EGG, - CAT_LIZARD, - CAT_MEAT, - CAT_SEAFOOD, - CAT_MARTIAN, - CAT_MISCFOOD, - CAT_MEXICAN, - CAT_MOTH, - CAT_PASTRY, - CAT_PIE, - CAT_PIZZA, - CAT_SALAD, - CAT_SANDWICH, - CAT_SOUP, - CAT_SPAGHETTI, - CAT_ICE, CAT_DRINK, )) diff --git a/code/controllers/subsystem/ambience.dm b/code/controllers/subsystem/ambience.dm index eccb20357c9f..bc987867114d 100644 --- a/code/controllers/subsystem/ambience.dm +++ b/code/controllers/subsystem/ambience.dm @@ -20,18 +20,22 @@ SUBSYSTEM_DEF(ambience) var/client/client_iterator = cached_clients[cached_clients.len] cached_clients.len-- - //Check to see if the client exists and isn't held by a new player - var/mob/client_mob = client_iterator?.mob - if(isnull(client_iterator) || !client_mob || isnewplayer(client_mob)) + //Check to see if the client exists + if(isnull(client_iterator)) ambience_listening_clients -= client_iterator client_old_areas -= client_iterator continue + // skip them this tick if they're on the lobby screen or somehow dont have a mob?? + var/mob/client_mob = client_iterator?.mob + if(!client_mob || isnewplayer(client_mob)) + continue + //Check to see if the client-mob is in a valid area var/area/current_area = get_area(client_mob) if(!current_area) //Something's gone horribly wrong stack_trace("[key_name(client_mob)] has somehow ended up in nullspace. WTF did you do") - ambience_listening_clients -= client_iterator + remove_ambience_client(client_iterator) continue if(ambience_listening_clients[client_iterator] > world.time) @@ -56,7 +60,8 @@ SUBSYSTEM_DEF(ambience) new_sound = sound(new_sound, repeat = 0, wait = 0, volume = volume*volume_modifier, channel = CHANNEL_AMBIENCE) SEND_SOUND(M, new_sound) - return rand(min_ambience_cooldown, max_ambience_cooldown) + var/sound_length = SSsounds.get_sound_length(new_sound.file) + return sound_length + rand(min_ambience_cooldown, max_ambience_cooldown) /datum/controller/subsystem/ambience/proc/remove_ambience_client(client/to_remove) ambience_listening_clients -= to_remove @@ -64,8 +69,6 @@ SUBSYSTEM_DEF(ambience) currentrun -= to_remove /area/station/maintenance - min_ambience_cooldown = 20 SECONDS - max_ambience_cooldown = 35 SECONDS ///A list of rare sound effects to fuck with players. No, it does not contain actual minecraft sounds anymore. var/static/list/minecraft_cave_noises = list( diff --git a/code/controllers/subsystem/sounds.dm b/code/controllers/subsystem/sounds.dm index 62fdbcbadc2f..f9d8c1233017 100644 --- a/code/controllers/subsystem/sounds.dm +++ b/code/controllers/subsystem/sounds.dm @@ -26,9 +26,29 @@ SUBSYSTEM_DEF(sounds) /// All valid sound files in the sound directory var/list/all_sounds + // || Sound caching || + /// k:v list of file_path : length + VAR_PRIVATE/list/sound_lengths + /// A list of sounds to cache upon initialize. + VAR_PRIVATE/list/sounds_to_precache = list() + /// Any errors from precaching. + VAR_PRIVATE/list/precache_errors = list() + /datum/controller/subsystem/sounds/Initialize() setup_available_channels() find_all_available_sounds() + init_sound_keys() + + if(!(RUST_G)) + to_chat(world, span_boldnotice("Sounds subsystem: No rust_g detected.")) + return ..() + + // Precache ambience sounds + for(var/key in GLOB.ambience_assoc) + sounds_to_precache |= GLOB.ambience_assoc[key] + + precache_sounds() + return SS_INIT_SUCCESS /datum/controller/subsystem/sounds/proc/setup_available_channels() @@ -156,4 +176,60 @@ SUBSYSTEM_DEF(sounds) /datum/controller/subsystem/sounds/proc/available_channels_left() return length(channel_list) - random_channels_min +/datum/controller/subsystem/sounds/proc/precache_sounds() + if(!length(sounds_to_precache)) + return + + var/list/lengths = rustg_sound_length_list(sounds_to_precache) + precache_errors = lengths[RUSTG_SOUNDLEN_ERRORS] + sound_lengths = lengths[RUSTG_SOUNDLEN_SUCCESSES] + for(var/sound_path in sound_lengths) + sound_lengths[sound_path] = text2num(sound_lengths[sound_path]) + + sounds_to_precache = null + +/// Cache a list of sound lengths. +/datum/controller/subsystem/sounds/proc/cache_sounds(list/paths) + var/list/reconstructed = list() + reconstructed.len = length(paths) + + for(var/i in 1 to length(paths)) + reconstructed[i] = "[paths[i]]" + + var/list/out = rustg_sound_length_list(paths) + var/list/successes = out[RUSTG_SOUNDLEN_SUCCESSES] + for(var/sound_path in successes) + sound_lengths[sound_path] = text2num(successes[sound_path]) + +/// Cache and return a single sound. +/datum/controller/subsystem/sounds/proc/get_sound_length(file_path) + . = 0 + if(!istext(file_path)) + if(!isfile(file_path)) + CRASH("rustg_sound_length error: Passed non-text object") + + if(length("[file_path]")) // Runtime generated RSC references stringify into 0-length strings. + file_path = "[file_path]" + else + CRASH("rustg_sound_length does not support non-static file refs.") + + var/cached_length = sound_lengths[file_path] + if(!isnull(cached_length)) + return cached_length + + var/ret = RUSTG_CALL(RUST_G, "sound_len")(file_path) + var/as_num = text2num(ret) + if(isnull(ret)) + . = 0 + CRASH("rustg_sound_length error: [ret]") + + sound_lengths[file_path] = as_num + return as_num + +/datum/controller/subsystem/sounds/proc/init_sound_keys() + for(var/datum/sound_effect/sfx as anything in subtypesof(/datum/sound_effect)) + // this is for the assoc subtype + if(!isnull(sfx.key)) + GLOB.sfx_datum_by_key[sfx.key] = new sfx() + #undef DATUMLESS diff --git a/code/datums/components/crafting/crafting.dm b/code/datums/components/crafting/crafting.dm index af7e4f1b1115..1b6d76635fbb 100644 --- a/code/datums/components/crafting/crafting.dm +++ b/code/datums/components/crafting/crafting.dm @@ -612,7 +612,6 @@ data["name"] = "[data["name"]] [recipe.result_amount]x" data["desc"] = recipe.desc || initial(atom.desc) - // Crafting if(recipe.non_craftable) data["non_craftable"] = recipe.non_craftable diff --git a/code/datums/elements/decals/_decal.dm b/code/datums/elements/decals/_decal.dm index fda646c03c9e..ed28565d6c78 100644 --- a/code/datums/elements/decals/_decal.dm +++ b/code/datums/elements/decals/_decal.dm @@ -113,7 +113,7 @@ return TRUE /datum/element/decal/Detach(atom/source) - UnregisterSignal(source, list(COMSIG_ATOM_DIR_CHANGE, COMSIG_COMPONENT_CLEAN_ACT, COMSIG_ATOM_EXAMINE, COMSIG_ATOM_UPDATE_OVERLAYS, COMSIG_TURF_ON_SHUTTLE_MOVE, COMSIG_ATOM_SMOOTHED_ICON)) + UnregisterSignal(source, list(COMSIG_ATOM_DIR_CHANGE, COMSIG_COMPONENT_CLEAN_ACT, COMSIG_ATOM_EXAMINE, COMSIG_ATOM_UPDATE_OVERLAYS, COMSIG_TURF_ON_SHUTTLE_MOVE, COMSIG_ATOM_SMOOTHED_ICON, COMSIG_ATOM_DECALS_ROTATING)) SSdcs.UnregisterSignal(source, COMSIG_ATOM_DIR_CHANGE) source.update_appearance(UPDATE_OVERLAYS) if(isitem(source)) diff --git a/code/datums/elements/food/processable.dm b/code/datums/elements/food/processable.dm index 625dba614949..810e47330ddd 100644 --- a/code/datums/elements/food/processable.dm +++ b/code/datums/elements/food/processable.dm @@ -14,8 +14,10 @@ var/table_required ///Verb used in processing food (such as slice, flatten), defaults to process var/screentip_verb + ///Sound to play when the do_after begins + var/sound_to_play -/datum/element/processable/Attach(datum/target, tool_behaviour, result_atom_type, amount_created = 3, time_to_process = 2 SECONDS, table_required = FALSE, screentip_verb = "Process") +/datum/element/processable/Attach(datum/target, tool_behaviour, result_atom_type, amount_created = 3, time_to_process = 2 SECONDS, table_required = FALSE, screentip_verb = "Process", sound_to_play = null) . = ..() if(!isatom(target)) return ELEMENT_INCOMPATIBLE @@ -26,6 +28,7 @@ src.result_atom_type = result_atom_type src.table_required = table_required src.screentip_verb = screentip_verb + src.sound_to_play = sound_to_play var/atom/atom_target = target atom_target.flags_1 |= HAS_CONTEXTUAL_SCREENTIPS_1 @@ -51,7 +54,7 @@ to_chat(user, span_notice("You cannot make [initial(result_atom_type.name)] here! You need a table or at least a tray.")) return - mutable_recipes += list(list(TOOL_PROCESSING_RESULT = result_atom_type, TOOL_PROCESSING_AMOUNT = amount_created, TOOL_PROCESSING_TIME = time_to_process)) + mutable_recipes += list(list(TOOL_PROCESSING_RESULT = result_atom_type, TOOL_PROCESSING_AMOUNT = amount_created, TOOL_PROCESSING_TIME = time_to_process, TOOL_PROCESSING_SOUND = sound_to_play)) ///So people know what the frick they're doing without reading from a wiki page (I mean they will inevitably but i'm trying to help, ok?) /datum/element/processable/proc/OnExamine(atom/source, mob/user, list/examine_list) diff --git a/code/datums/keybinding/living.dm b/code/datums/keybinding/living.dm index dd21fed21ed6..3a5dba82d0d9 100644 --- a/code/datums/keybinding/living.dm +++ b/code/datums/keybinding/living.dm @@ -162,3 +162,20 @@ var/mob/living/M = user.mob M.toggle_move_intent() return TRUE + +/datum/keybinding/living/cancel_interactions + name = "stop_interactions" + full_name = "Cancel Interactions" + description = "Cancels any ongoing interactions (such as using a tool, performing surgery, or climbing). \ + Note that some interactions cannot be interrupted, and you can't cancel other player's interaction with this hotkey." + keybind_signal = COMSIG_KB_LIVING_STOP_INTERACTIONS_DOWN + +/datum/keybinding/living/cancel_interactions/down(client/user, turf/target, mousepos_x, mousepos_y) + . = ..() + if(.) + return + var/mob/living/mob_user = user.mob + if(!LAZYLEN(mob_user.do_afters) || HAS_TRAIT(mob_user, TRAIT_INCAPACITATED)) + return + // this is currently the best way to stop all ongoing doafters + mob_user.incapacitate(0.1 SECONDS, ignore_canstun = TRUE) diff --git a/code/datums/looping_sounds/drip.dm b/code/datums/looping_sounds/drip.dm new file mode 100644 index 000000000000..224d7850fc29 --- /dev/null +++ b/code/datums/looping_sounds/drip.dm @@ -0,0 +1,9 @@ +/// sound of a lone droplet hitting the water every once in a while like a broken faucet. used by moisture traps +/datum/looping_sound/drip + mid_sounds = 'sound/effects/droplet.ogg' + mid_length = 30 SECONDS + mid_length_vary = 15 SECONDS + volume = 45 + vary = TRUE + ignore_walls = FALSE + falloff_distance = 5 diff --git a/code/datums/status_effects/buffs/food/_food_effect.dm b/code/datums/status_effects/buffs/food/_food_effect.dm new file mode 100644 index 000000000000..c4cbcc85d69c --- /dev/null +++ b/code/datums/status_effects/buffs/food/_food_effect.dm @@ -0,0 +1,24 @@ +/// Buffs given by eating hand-crafted food. The duration scales with consumable reagents purity. +/datum/status_effect/food + id = "food_effect" + duration = 5 MINUTES // Same as food mood buffs + status_type = STATUS_EFFECT_REPLACE // Only one food buff allowed + alert_type = /atom/movable/screen/alert/status_effect/food + show_duration = TRUE + /// Buff power equal to food complexity (1 to 5) + var/strength + +/datum/status_effect/food/on_creation(mob/living/new_owner, timeout_mod = 1, strength = 1) + if(isnum(timeout_mod)) + duration *= timeout_mod + if(istype(linked_alert, /atom/movable/screen/alert/status_effect/food)) + linked_alert.icon_state = "[linked_alert.base_icon_state]_[strength]" + + src.strength = strength + return ..() + +/atom/movable/screen/alert/status_effect/food + name = "Hand-crafted meal" + desc = "Eating it made me feel better." + icon_state = "food_buff_1" + base_icon_state = "food_buff" diff --git a/code/datums/status_effects/buffs/food/grant_trait.dm b/code/datums/status_effects/buffs/food/grant_trait.dm new file mode 100644 index 000000000000..f25be3b0b3bf --- /dev/null +++ b/code/datums/status_effects/buffs/food/grant_trait.dm @@ -0,0 +1,56 @@ +/// Makes you gain a trait +/datum/status_effect/food/trait + var/trait = TRAIT_DUMB // You need to override this + +/datum/status_effect/food/trait/on_apply() + if(!HAS_TRAIT_FROM(owner, trait, type)) // Check if trait was already applied + ADD_TRAIT(owner, trait, type) + return ..() + +/datum/status_effect/food/trait/be_replaced() + REMOVE_TRAIT(owner, trait, type) + return ..() + +/datum/status_effect/food/trait/on_remove() + REMOVE_TRAIT(owner, trait, type) + return ..() + +/datum/status_effect/food/trait/shockimmune + alert_type = /atom/movable/screen/alert/status_effect/shockimmune + trait = TRAIT_SHOCKIMMUNE + +/atom/movable/screen/alert/status_effect/shockimmune + name = "Grounded" + desc = "That meal made me feel like a superconductor..." + icon_state = "shock_immune" + +/datum/status_effect/food/trait/mute + alert_type = /atom/movable/screen/alert/status_effect/mute + trait = TRAIT_MUTE + +/atom/movable/screen/alert/status_effect/mute + name = "..." + desc = "..." + icon_state = "mute" + +/datum/status_effect/food/trait/ashstorm_immune + alert_type = /atom/movable/screen/alert/status_effect/ashstorm_immune + trait = TRAIT_ASHSTORM_IMMUNE + +/atom/movable/screen/alert/status_effect/ashstorm_immune + name = "Ashstorm-proof" + desc = "That meal makes me feel born on Lavaland." + icon_state = "ashstorm_immune" + +/datum/status_effect/food/trait/waddle + alert_type = /atom/movable/screen/alert/status_effect/waddle + trait = TRAIT_WADDLING + +/datum/status_effect/food/trait/waddle/on_apply() + owner.AddElementTrait(trait, type, /datum/element/waddling) + return ..() + +/atom/movable/screen/alert/status_effect/waddle + name = "Waddling" + desc = "That meal makes me want to joke around." + icon_state = "waddle" diff --git a/code/datums/status_effects/buffs/food_haste.dm b/code/datums/status_effects/buffs/food/haste.dm similarity index 100% rename from code/datums/status_effects/buffs/food_haste.dm rename to code/datums/status_effects/buffs/food/haste.dm diff --git a/code/datums/status_effects/buffs/food_traits.dm b/code/datums/status_effects/buffs/food_traits.dm deleted file mode 100644 index ebe22116dd0d..000000000000 --- a/code/datums/status_effects/buffs/food_traits.dm +++ /dev/null @@ -1,8 +0,0 @@ -/datum/status_effect/food/trait/shockimmune - alert_type = /atom/movable/screen/alert/status_effect/food_trait_shockimmune - trait = TRAIT_SHOCKIMMUNE - -/atom/movable/screen/alert/status_effect/food_trait_shockimmune - name = "Grounded" - desc = "That meal made me feel like a superconductor..." - icon_state = "food_buff_4" diff --git a/code/datums/status_effects/food_effects.dm b/code/datums/status_effects/food_effects.dm deleted file mode 100644 index 625a3fcc8762..000000000000 --- a/code/datums/status_effects/food_effects.dm +++ /dev/null @@ -1,54 +0,0 @@ -/// Buffs given by eating hand-crafted food. The duration scales with consumable reagents purity. -/datum/status_effect/food - id = "food_buff" - duration = 5 MINUTES // Same as food mood buffs - status_type = STATUS_EFFECT_REPLACE // Only one food buff allowed - alert_type = /atom/movable/screen/alert/status_effect/food - show_duration = TRUE - /// Buff power - var/strength - -/datum/status_effect/food/on_creation(mob/living/new_owner, timeout_mod = 1, strength = 1) - src.strength = strength - //Generate alert when not specified - if(alert_type == /atom/movable/screen/alert/status_effect) - alert_type = "/atom/movable/screen/alert/status_effect/food/buff_[strength]" - if(isnum(timeout_mod)) - duration *= timeout_mod - . = ..() - -/atom/movable/screen/alert/status_effect/food - name = "Hand-crafted meal" - desc = "Eating it made me feel better." - icon_state = "food_buff_1" - -/atom/movable/screen/alert/status_effect/food/buff_1 - icon_state = "food_buff_1" - -/atom/movable/screen/alert/status_effect/food/buff_2 - icon_state = "food_buff_2" - -/atom/movable/screen/alert/status_effect/food/buff_3 - icon_state = "food_buff_3" - -/atom/movable/screen/alert/status_effect/food/buff_4 - icon_state = "food_buff_4" - -/atom/movable/screen/alert/status_effect/food/buff_5 - icon_state = "food_buff_5" - -/// Makes you gain a trait -/datum/status_effect/food/trait - var/trait = TRAIT_DUMB // You need to override this - -/datum/status_effect/food/trait/on_apply() - ADD_TRAIT(owner, trait, type) - return ..() - -/datum/status_effect/food/trait/be_replaced() - REMOVE_TRAIT(owner, trait, type) - return ..() - -/datum/status_effect/food/trait/on_remove() - REMOVE_TRAIT(owner, trait, type) - return ..() diff --git a/code/game/area/areas.dm b/code/game/area/areas.dm index ee65c66cb029..c704bb187d35 100644 --- a/code/game/area/areas.dm +++ b/code/game/area/areas.dm @@ -95,9 +95,9 @@ ///The volume of the ambient buzz var/ambient_buzz_vol = 35 ///Used to decide what the minimum time between ambience is - var/min_ambience_cooldown = 30 SECONDS + var/min_ambience_cooldown = 4 SECONDS ///Used to decide what the maximum time between ambience is - var/max_ambience_cooldown = 60 SECONDS + var/max_ambience_cooldown = 10 SECONDS flags_1 = CAN_BE_DIRTY_1 diff --git a/code/game/area/areas/centcom.dm b/code/game/area/areas/centcom.dm index 28b3496c4e18..45abba7c1b2a 100644 --- a/code/game/area/areas/centcom.dm +++ b/code/game/area/areas/centcom.dm @@ -278,8 +278,6 @@ ambience_index = AMBIENCE_MINING flags_1 = CAN_BE_DIRTY_1 sound_environment = SOUND_AREA_ASTEROID - min_ambience_cooldown = 70 SECONDS - max_ambience_cooldown = 220 SECONDS /area/centcom/asteroid/nearstation static_lighting = TRUE diff --git a/code/game/area/areas/mining.dm b/code/game/area/areas/mining.dm index 35bee7c6e750..16b78dcd5a73 100644 --- a/code/game/area/areas/mining.dm +++ b/code/game/area/areas/mining.dm @@ -146,8 +146,6 @@ requires_power = TRUE ambience_index = AMBIENCE_MINING area_flags = VALID_TERRITORY | UNIQUE_AREA - min_ambience_cooldown = 70 SECONDS - max_ambience_cooldown = 220 SECONDS /area/lavaland/underground name = "Lavaland Caves" @@ -159,8 +157,6 @@ power_light = FALSE ambience_index = AMBIENCE_MINING area_flags = VALID_TERRITORY | UNIQUE_AREA | FLORA_ALLOWED - min_ambience_cooldown = 70 SECONDS - max_ambience_cooldown = 220 SECONDS /area/lavaland/surface/outdoors name = "Lavaland Wastes" @@ -206,8 +202,6 @@ power_light = FALSE requires_power = TRUE area_flags = UNIQUE_AREA | FLORA_ALLOWED - min_ambience_cooldown = 70 SECONDS - max_ambience_cooldown = 220 SECONDS /area/icemoon/surface/outdoors // parent that defines if something is on the exterior of the station. name = "Icemoon Wastes" @@ -259,8 +253,6 @@ power_equip = FALSE power_light = FALSE area_flags = UNIQUE_AREA | FLORA_ALLOWED - min_ambience_cooldown = 70 SECONDS - max_ambience_cooldown = 220 SECONDS /area/icemoon/underground/unexplored // mobs and megafauna and ruins spawn here name = "Icemoon Caves" diff --git a/code/game/area/areas/misc.dm b/code/game/area/areas/misc.dm index e6c4224c8209..75896f784618 100644 --- a/code/game/area/areas/misc.dm +++ b/code/game/area/areas/misc.dm @@ -17,8 +17,6 @@ flags_1 = CAN_BE_DIRTY_1 sound_environment = SOUND_AREA_SPACE ambient_buzz = null //Space is deafeningly quiet - min_ambience_cooldown = 195 SECONDS //length of ambispace.ogg - max_ambience_cooldown = 200 SECONDS /area/space/nearstation icon_state = "space_near" diff --git a/code/game/area/areas/station/maintenance.dm b/code/game/area/areas/station/maintenance.dm index 53e6da606d08..5e636719e7a0 100644 --- a/code/game/area/areas/station/maintenance.dm +++ b/code/game/area/areas/station/maintenance.dm @@ -5,7 +5,7 @@ airlock_wires = /datum/wires/airlock/maint sound_environment = SOUND_AREA_TUNNEL_ENCLOSED forced_ambience = TRUE - ambient_buzz = 'sound/ambience/source_corridor2.ogg' + ambient_buzz = 'sound/ambience/maintenance/source_corridor2.ogg' ambient_buzz_vol = 20 /* diff --git a/code/game/area/areas/station/medical.dm b/code/game/area/areas/station/medical.dm index ec5296a3c92f..a5f92ec08c3f 100644 --- a/code/game/area/areas/station/medical.dm +++ b/code/game/area/areas/station/medical.dm @@ -4,8 +4,6 @@ ambience_index = AMBIENCE_MEDICAL airlock_wires = /datum/wires/airlock/medbay sound_environment = SOUND_AREA_STANDARD_STATION - min_ambience_cooldown = 90 SECONDS - max_ambience_cooldown = 180 SECONDS /area/station/medical/abandoned name = "\improper Abandoned Medbay" diff --git a/code/game/atom/_atom.dm b/code/game/atom/_atom.dm index 97993c6af62b..b8faa06c2c55 100644 --- a/code/game/atom/_atom.dm +++ b/code/game/atom/_atom.dm @@ -662,26 +662,29 @@ /atom/proc/StartProcessingAtom(mob/living/user, obj/item/process_item, list/chosen_option) var/processing_time = chosen_option[TOOL_PROCESSING_TIME] - to_chat(user, span_notice("You start working on [src].")) - if(process_item.use_tool(src, user, processing_time, volume=50)) - var/atom/atom_to_create = chosen_option[TOOL_PROCESSING_RESULT] - var/list/atom/created_atoms = list() - var/amount_to_create = chosen_option[TOOL_PROCESSING_AMOUNT] - for(var/i = 1 to amount_to_create) - var/atom/created_atom = new atom_to_create(drop_location()) - if(custom_materials) - created_atom.set_custom_materials(custom_materials, 1 / amount_to_create) - created_atom.pixel_x = pixel_x - created_atom.pixel_y = pixel_y - if(i > 1) - created_atom.pixel_x += rand(-8,8) - created_atom.pixel_y += rand(-8,8) - created_atom.OnCreatedFromProcessing(user, process_item, chosen_option, src) - created_atoms.Add(created_atom) - to_chat(user, span_notice("You manage to create [amount_to_create] [initial(atom_to_create.gender) == PLURAL ? "[initial(atom_to_create.name)]" : "[initial(atom_to_create.name)][plural_s(initial(atom_to_create.name))]"] from [src].")) - SEND_SIGNAL(src, COMSIG_ATOM_PROCESSED, user, process_item, created_atoms) - UsedforProcessing(user, process_item, chosen_option, created_atoms) + var/sound_to_play = chosen_option[TOOL_PROCESSING_SOUND] + to_chat(user, span_notice("You start working on [src]...")) + if(sound_to_play) + playsound(src, sound_to_play, 50, TRUE) + if(!process_item.use_tool(src, user, processing_time, volume=50)) return + var/atom/atom_to_create = chosen_option[TOOL_PROCESSING_RESULT] + var/list/atom/created_atoms = list() + var/amount_to_create = chosen_option[TOOL_PROCESSING_AMOUNT] + for(var/i = 1 to amount_to_create) + var/atom/created_atom = new atom_to_create(drop_location()) + if(custom_materials) + created_atom.set_custom_materials(custom_materials, 1 / amount_to_create) + created_atom.pixel_x = pixel_x + created_atom.pixel_y = pixel_y + if(i > 1) + created_atom.pixel_x += rand(-8,8) + created_atom.pixel_y += rand(-8,8) + created_atom.OnCreatedFromProcessing(user, process_item, chosen_option, src) + created_atoms.Add(created_atom) + to_chat(user, span_notice("You manage to create [amount_to_create] [initial(atom_to_create.gender) == PLURAL ? "[initial(atom_to_create.name)]" : "[initial(atom_to_create.name)][plural_s(initial(atom_to_create.name))]"] from [src].")) + SEND_SIGNAL(src, COMSIG_ATOM_PROCESSED, user, process_item, created_atoms) + UsedforProcessing(user, process_item, chosen_option, created_atoms) /atom/proc/UsedforProcessing(mob/living/user, obj/item/used_item, list/chosen_option, list/created_atoms) qdel(src) diff --git a/code/game/machinery/computer/_computer.dm b/code/game/machinery/computer/_computer.dm index 1fb0e8a7078d..2df178adac82 100644 --- a/code/game/machinery/computer/_computer.dm +++ b/code/game/machinery/computer/_computer.dm @@ -126,6 +126,12 @@ . = ..() update_use_power(ACTIVE_POWER_USE) +/obj/machinery/computer/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state) + SHOULD_CALL_PARENT(TRUE) + . = ..() + if(!issilicon(ui.user)) + playsound(src, SFX_KEYBOARD_CLICKS, 10, TRUE, FALSE) + /obj/machinery/computer/ui_close(mob/user) SHOULD_CALL_PARENT(TRUE) . = ..() diff --git a/code/game/machinery/computer/camera.dm b/code/game/machinery/computer/camera.dm index bb30af0b5e9a..e47f35814225 100644 --- a/code/game/machinery/computer/camera.dm +++ b/code/game/machinery/computer/camera.dm @@ -110,7 +110,6 @@ if(action == "switch_camera") var/obj/machinery/camera/selected_camera = locate(params["camera"]) in GLOB.cameranet.cameras set_active_camera(selected_camera) - playsound(src, SFX_TERMINAL_TYPE, 25, FALSE) return TRUE diff --git a/code/game/machinery/computer/communications.dm b/code/game/machinery/computer/communications.dm index cd8c66d44a84..e8673cc8bf7b 100644 --- a/code/game/machinery/computer/communications.dm +++ b/code/game/machinery/computer/communications.dm @@ -381,7 +381,6 @@ if (state == STATE_BUYING_SHUTTLE && can_buy_shuttles(usr) != TRUE) return set_state(usr, params["state"]) - playsound(src, SFX_TERMINAL_TYPE, 50, FALSE) if ("setStatusMessage") if (!authenticated(usr)) return @@ -389,7 +388,6 @@ var/line_two = reject_bad_text(params["lowerText"] || "", MAX_STATUS_LINE_LENGTH) post_status("message", line_one, line_two) last_status_display = list(line_one, line_two) - playsound(src, SFX_TERMINAL_TYPE, 50, FALSE) if ("setStatusPicture") if (!authenticated(usr)) return @@ -404,7 +402,6 @@ else post_status("alert", picture) - playsound(src, SFX_TERMINAL_TYPE, 50, FALSE) if ("toggleAuthentication") // Log out if we're logged in if (authorize_name) diff --git a/code/game/machinery/computer/records/records.dm b/code/game/machinery/computer/records/records.dm index 4d2bc70c25fb..ca97ec3ac88f 100644 --- a/code/game/machinery/computer/records/records.dm +++ b/code/game/machinery/computer/records/records.dm @@ -100,7 +100,6 @@ if(!target) return FALSE - playsound(src, SFX_TERMINAL_TYPE, 50, TRUE) update_preview(user, params["assigned_view"], target, ui.window) return TRUE diff --git a/code/game/machinery/photobooth.dm b/code/game/machinery/photobooth.dm index 321ae7efd6e7..d29abd3d593c 100644 --- a/code/game/machinery/photobooth.dm +++ b/code/game/machinery/photobooth.dm @@ -130,7 +130,7 @@ if(obj_flags & EMAGGED) var/mob/living/carbon/carbon_occupant = occupant for(var/i in 1 to 5) //play a ton of sounds to mimic it blinding you - playsound(src, pick('sound/items/polaroid1.ogg', 'sound/items/polaroid2.ogg'), 75, TRUE) + playsound(src, SFX_POLAROID, 75, TRUE) if(carbon_occupant) carbon_occupant.flash_act(5) sleep(0.2 SECONDS) diff --git a/code/game/machinery/slotmachine.dm b/code/game/machinery/slotmachine.dm index 369ee58402a2..761688178c82 100644 --- a/code/game/machinery/slotmachine.dm +++ b/code/game/machinery/slotmachine.dm @@ -1,15 +1,21 @@ /*******************************\ -| Slot Machines | -| Original code by Glloyd | -| Tgstation port by Miauw | +| SLOT MACHINES | +| Original code by Glloyd | +| Tgstation port by Miauw | +| Tgui spin by stylemistake | \*******************************/ #define SPIN_PRICE 5 -#define SMALL_PRIZE 400 -#define BIG_PRIZE 1000 -#define JACKPOT 10000 -#define SPIN_TIME 65 //As always, deciseconds. -#define REEL_DEACTIVATE_DELAY 7 +#define WINNING_NOTHING 0 +#define WINNING_FREESPIN 1 +#define WINNING_SMALL 2 +#define WINNING_BIG 3 +#define WINNING_JACKPOT 4 +#define PRIZE_SMALL 400 +#define PRIZE_BIG 1000 +#define PRIZE_JACKPOT 10000 +#define SPIN_TIME 4 SECONDS +#define REEL_DEACTIVATE_DELAY 0.4 SECONDS #define JACKPOT_SEVENS FA_ICON_7 #define HOLOCHIP 1 #define COIN 2 @@ -25,26 +31,33 @@ circuit = /obj/item/circuitboard/computer/slot_machine light_color = LIGHT_COLOR_BROWN interaction_flags_machine = INTERACT_MACHINE_ALLOW_SILICON // don't need to be literate to play slots - var/money = 3000 //How much money it has CONSUMED + var/money = 3000 // How much money it has CONSUMED var/plays = 0 var/working = FALSE - var/balance = 0 //How much money is in the machine, ready to be CONSUMED. + var/winning = WINNING_NOTHING + var/balance = 0 // How much money is in the machine, ready to be CONSUMED. var/jackpots = 0 - var/paymode = HOLOCHIP //toggles between HOLOCHIP/COIN, defined above + var/paymode = HOLOCHIP // toggles between HOLOCHIP/COIN, defined above var/cointype = /obj/item/coin/iron //default cointype /// Icons that can be displayed by the slot machine. var/static/list/icons = list( - FA_ICON_LEMON = list("value" = 2, "colour" = "yellow"), - FA_ICON_STAR = list("value" = 2, "colour" = "yellow"), - FA_ICON_BOMB = list("value" = 2, "colour" = "red"), - FA_ICON_BIOHAZARD = list("value" = 2, "colour" = "green"), - FA_ICON_APPLE_WHOLE = list("value" = 2, "colour" = "red"), - FA_ICON_7 = list("value" = 1, "colour" = "yellow"), - FA_ICON_DOLLAR_SIGN = list("value" = 2, "colour" = "green"), + FA_ICON_LEMON, + FA_ICON_STAR, + FA_ICON_BOMB, + FA_ICON_BIOHAZARD, + FA_ICON_APPLE_WHOLE, + FA_ICON_7, + FA_ICON_DOLLAR_SIGN, ) var/static/list/coinvalues - var/list/reels = list(list("", "", "") = 0, list("", "", "") = 0, list("", "", "") = 0, list("", "", "") = 0, list("", "", "") = 0) + var/list/reels = list( + list("", "", ""), + list("", "", ""), + list("", "", ""), + list("", "", ""), + list("", "", ""), + ) var/static/list/ray_filter = list(type = "rays", y = 16, size = 40, density = 4, color = COLOR_RED_LIGHT, factor = 15, flags = FILTER_OVERLAY) /obj/machinery/computer/slot_machine/Initialize(mapload) @@ -52,13 +65,8 @@ jackpots = rand(1, 4) //false hope plays = rand(75, 200) - toggle_reel_spin_sync(1) //The reels won't spin unless we activate them - - var/list/reel = reels[1] - for(var/i in 1 to reel.len) //Populate the reels. - randomize_reels() - - toggle_reel_spin_sync(0) + // Populate the reels + randomize_reels() if (isnull(coinvalues)) coinvalues = list() @@ -135,7 +143,7 @@ /obj/machinery/computer/slot_machine/multitool_act(mob/living/user, obj/item/tool) if(balance > 0) - visible_message("[src] says, 'ERROR! Please empty the machine balance before altering paymode'") //Prevents converting coins into holocredits and vice versa + say("ERROR! Please empty the machine balance before altering paymode!") //Prevents converting coins into holocredits and vice versa return ITEM_INTERACT_BLOCKING if(paymode == HOLOCHIP) @@ -166,24 +174,22 @@ /obj/machinery/computer/slot_machine/ui_static_data(mob/user) var/list/data = list() - data["icons"] = list() - for(var/icon_name in icons) - var/list/icon = icons[icon_name] - icon += list("icon" = icon_name) - data["icons"] += list(icon) + data["icons"] = icons data["cost"] = SPIN_PRICE - data["jackpot"] = JACKPOT - + data["jackpot"] = PRIZE_JACKPOT return data /obj/machinery/computer/slot_machine/ui_data(mob/user) var/list/data = list() - var/list/reel_states = list() - for(var/reel_state in reels) - reel_states += list(reel_state) - data["state"] = reel_states + var/list/_reels = list() + for(var/reel in reels) + _reels += list(list( + "icons" = reel, + )) + data["reels"] = _reels data["balance"] = balance data["working"] = working + data["winning"] = winning data["money"] = money data["plays"] = plays data["jackpots"] = jackpots @@ -224,6 +230,10 @@ if(!can_spin(user)) return + if(!use_energy(active_power_usage, force = FALSE)) + say("Not enough energy!") + return + var/the_name if(user) the_name = user.real_name @@ -239,23 +249,22 @@ plays += 1 working = TRUE - toggle_reel_spin(1) update_appearance() - var/spin_loop = addtimer(CALLBACK(src, PROC_REF(do_spin)), 2, TIMER_LOOP|TIMER_STOPPABLE) - addtimer(CALLBACK(src, PROC_REF(finish_spinning), spin_loop, user, the_name), SPIN_TIME - (REEL_DEACTIVATE_DELAY * reels.len)) - //WARNING: no sanity checking for user since it's not needed and would complicate things (machine should still spin even if user is gone), be wary of this if you're changing this code. + // Play the lever pull sound and a reel spin sound after a short delay + playsound(src, 'sound/machines/lever/lever_start.ogg', 50) + addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(playsound), src, 'sound/machines/roulettewheel.ogg', 20), 0.3 SECONDS) -/obj/machinery/computer/slot_machine/proc/do_spin() - if(!use_energy(active_power_usage, force = FALSE)) - say("Not enough energy!") - return + // Randomize reels to get the new final state. randomize_reels() -/obj/machinery/computer/slot_machine/proc/finish_spinning(spin_loop, mob/user, the_name) - toggle_reel_spin(0, REEL_DEACTIVATE_DELAY) + // Now wait for a pre-determined delay to set machine to a non-spinning state. + // On the UI side, result is pre-determined: after the delay below, + // animation stops at the newly calculated state of the reels. + addtimer(CALLBACK(src, PROC_REF(finish_spinning), user, the_name), SPIN_TIME) + +/obj/machinery/computer/slot_machine/proc/finish_spinning(mob/user, the_name) working = FALSE - deltimer(spin_loop) give_prizes(the_name, user) update_appearance() @@ -275,29 +284,12 @@ return FALSE return TRUE -/// Sets the spinning states of all reels to value, with a delay between them -/obj/machinery/computer/slot_machine/proc/toggle_reel_spin(value, delay = 0) //value is 1 or 0 aka on or off - for(var/list/reel in reels) - if(!value) - playsound(src, 'sound/machines/ding_short.ogg', 50, TRUE, SHORT_RANGE_SOUND_EXTRARANGE) - reels[reel] = value - if(delay) - sleep(delay) - -/// Same as toggle_reel_spin, but without the delay and runs synchronously -/obj/machinery/computer/slot_machine/proc/toggle_reel_spin_sync(value) - for(var/list/reel in reels) - reels[reel] = value - /// Randomize the states of all reels /obj/machinery/computer/slot_machine/proc/randomize_reels() - for(var/reel in reels) - if(reels[reel]) - reel[3] = reel[2] - reel[2] = reel[1] - var/chosen = pick(icons) - reel[1] = icons[chosen] + list("icon_name" = chosen) + reel[1] = pick(icons) + reel[2] = pick(icons) + reel[3] = pick(icons) /// Checks if any prizes have been won, and pays them out /obj/machinery/computer/slot_machine/proc/give_prizes(usrname, mob/user) @@ -309,8 +301,9 @@ bang.arm_grenade(null, 1 SECONDS) else if(check_jackpot(JACKPOT_SEVENS)) - var/prize = money + JACKPOT - visible_message("[src] says, 'JACKPOT! You win [prize] credits!'") + winning = WINNING_JACKPOT + var/prize = money + PRIZE_JACKPOT + say("JACKPOT! You win [prize] credits!") priority_announce("Congratulations to [user ? user.real_name : usrname] for winning the jackpot at the slot machine in [get_area(src)]!") if(isliving(user) && (user in viewers(src))) var/mob/living/living_user = user @@ -328,48 +321,62 @@ sleep(REEL_DEACTIVATE_DELAY) else if(linelength == 5) - visible_message("[src] says, 'Big Winner! You win a thousand credits!'") - give_money(BIG_PRIZE) + winning = WINNING_BIG + say("Big Winner! You win a thousand credits!") + give_money(PRIZE_BIG) if(isliving(user) && (user in viewers(src))) var/mob/living/living_user = user living_user.add_mood_event("slots", /datum/mood_event/slots/win/big) else if(linelength == 4) - visible_message("[src] says, 'Winner! You win four hundred credits!'") - give_money(SMALL_PRIZE) + winning = WINNING_SMALL + say("Winner! You win four hundred credits!") + give_money(PRIZE_SMALL) if(isliving(user) && (user in viewers(src))) var/mob/living/living_user = user living_user.add_mood_event("slots", /datum/mood_event/slots/win) else if(linelength == 3) - to_chat(user, span_notice("You win three free games!")) + winning = WINNING_FREESPIN + say("Winner! You win three free spins!") balance += SPIN_PRICE * 4 money = max(money - SPIN_PRICE * 4, money) else + winning = WINNING_NOTHING balloon_alert(user, "no luck!") - playsound(src, 'sound/machines/buzz-sigh.ogg', 50) did_player_win = FALSE if(isliving(user) && (user in viewers(src))) var/mob/living/living_user = user living_user.add_mood_event("slots", /datum/mood_event/slots/loss) + playsound(src, 'sound/machines/lever/lever_stop.ogg', 50) + + SStgui.update_uis(src) + addtimer(CALLBACK(src, PROC_REF(clear_winning)), 3 SECONDS) + if(did_player_win) add_filter("jackpot_rays", 3, ray_filter) animate(get_filter("jackpot_rays"), offset = 10, time = 3 SECONDS, loop = -1) addtimer(CALLBACK(src, TYPE_PROC_REF(/datum, remove_filter), "jackpot_rays"), 3 SECONDS) playsound(src, 'sound/machines/roulettejackpot.ogg', 50, TRUE) +/obj/machinery/computer/slot_machine/proc/clear_winning() + winning = WINNING_NOTHING + /// Checks for a jackpot (5 matching icons in the middle row) with the given icon name /obj/machinery/computer/slot_machine/proc/check_jackpot(name) - return reels[1][2]["icon_name"] + reels[2][2]["icon_name"] + reels[3][2]["icon_name"] + reels[4][2]["icon_name"] + reels[5][2]["icon_name"] == "[name][name][name][name][name]" + for(var/reel in reels) + if(reel[2] != name) + return FALSE + return TRUE /// Finds the largest number of consecutive matching icons in a row /obj/machinery/computer/slot_machine/proc/get_lines() var/amountthesame for(var/i in 1 to 3) - var/inputtext = reels[1][i]["icon_name"] + reels[2][i]["icon_name"] + reels[3][i]["icon_name"] + reels[4][i]["icon_name"] + reels[5][i]["icon_name"] + var/inputtext = reels[1][i] + reels[2][i] + reels[3][i] + reels[4][i] + reels[5][i] for(var/icon in icons) var/j = 3 //The lowest value we have to check for. var/symboltext = icon + icon + icon @@ -431,12 +438,17 @@ playsound(src, pick(list('sound/machines/coindrop.ogg', 'sound/machines/coindrop2.ogg')), 50, TRUE) return amount -#undef BIG_PRIZE -#undef COIN -#undef HOLOCHIP -#undef JACKPOT -#undef REEL_DEACTIVATE_DELAY -#undef JACKPOT_SEVENS -#undef SMALL_PRIZE #undef SPIN_PRICE +#undef WINNING_NOTHING +#undef WINNING_FREESPIN +#undef WINNING_SMALL +#undef WINNING_BIG +#undef WINNING_JACKPOT +#undef PRIZE_SMALL +#undef PRIZE_BIG +#undef PRIZE_JACKPOT #undef SPIN_TIME +#undef REEL_DEACTIVATE_DELAY +#undef JACKPOT_SEVENS +#undef HOLOCHIP +#undef COIN diff --git a/code/game/objects/items/dice.dm b/code/game/objects/items/dice.dm index cdaa2564970e..ee85ae137fb8 100644 --- a/code/game/objects/items/dice.dm +++ b/code/game/objects/items/dice.dm @@ -229,6 +229,7 @@ result = rigged_value . = result + playsound(src, 'sound/items/dice_roll.ogg', 50, TRUE) var/fake_result = roll(sides)//Daredevil isn't as good as he used to be var/comment = "" diff --git a/code/game/objects/items/food/_food.dm b/code/game/objects/items/food/_food.dm index 4bde4fdb60f0..4275263dacc0 100644 --- a/code/game/objects/items/food/_food.dm +++ b/code/game/objects/items/food/_food.dm @@ -123,3 +123,19 @@ AddComponent(/datum/component/germ_sensitive, mapload) if(!preserved_food) AddComponent(/datum/component/decomposition, mapload, decomp_req_handle, decomp_flags = foodtypes, decomp_result = decomp_type, ant_attracting = ant_attracting, custom_time = decomposition_time, stink_particles = decomposition_particles) + +/obj/item/food/CheckParts(list/parts, datum/crafting_recipe/food/current_recipe) + . = ..() + if(!istype(current_recipe)) + return + + var/made_with_food = FALSE + var/final_foodtypes = current_recipe.added_foodtypes + for(var/obj/item/food/ingredient in parts) + made_with_food = TRUE + final_foodtypes |= ingredient.foodtypes + if(!made_with_food) + return + final_foodtypes &= ~current_recipe.removed_foodtypes + ///Update the foodtypes + AddComponent(/datum/component/edible, foodtypes = final_foodtypes) diff --git a/code/game/objects/items/food/bread.dm b/code/game/objects/items/food/bread.dm index c7fbcee5e72a..3ab1baeead9e 100644 --- a/code/game/objects/items/food/bread.dm +++ b/code/game/objects/items/food/bread.dm @@ -22,7 +22,7 @@ /obj/item/food/bread/make_processable() if (slice_type) - AddElement(/datum/element/processable, TOOL_KNIFE, slice_type, yield, 3 SECONDS, table_required = TRUE, screentip_verb = "Slice") + AddElement(/datum/element/processable, TOOL_KNIFE, slice_type, yield, 3 SECONDS, table_required = TRUE, screentip_verb = "Slice", sound_to_play = SFX_KNIFE_SLICE) AddElement(/datum/element/processable, TOOL_SAW, slice_type, yield, 4 SECONDS, table_required = TRUE, screentip_verb = "Slice") // Abstract parent object for sliced bread items. Should not be made obtainable in game. @@ -106,7 +106,7 @@ /datum/reagent/consumable/nutriment/protein = 12, ) tastes = list("bread" = 10, "meat" = 10) - foodtypes = GRAIN | MEAT + foodtypes = GRAIN | MEAT | DAIRY venue_value = FOOD_PRICE_CHEAP slice_type = /obj/item/food/breadslice/meat crafting_complexity = FOOD_COMPLEXITY_3 @@ -121,7 +121,7 @@ /datum/reagent/consumable/nutriment/protein = 2.4, ) tastes = list("bread" = 1, "meat" = 1) - foodtypes = GRAIN | MEAT + foodtypes = GRAIN | MEAT | DAIRY crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/bread/sausage @@ -161,7 +161,7 @@ /datum/reagent/consumable/nutriment/protein = 15, ) tastes = list("bread" = 10, "acid" = 10) - foodtypes = GRAIN | MEAT + foodtypes = GRAIN | MEAT | DAIRY slice_type = /obj/item/food/breadslice/xenomeat crafting_complexity = FOOD_COMPLEXITY_3 @@ -175,7 +175,7 @@ /datum/reagent/consumable/nutriment/protein = 3, ) tastes = list("bread" = 10, "acid" = 10) - foodtypes = GRAIN | MEAT + foodtypes = GRAIN | MEAT | DAIRY crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/bread/spidermeat @@ -189,7 +189,7 @@ /datum/reagent/consumable/nutriment/protein = 12, ) tastes = list("bread" = 10, "cobwebs" = 5) - foodtypes = GRAIN | MEAT | TOXIC + foodtypes = GRAIN|MEAT|DAIRY|TOXIC slice_type = /obj/item/food/breadslice/spidermeat crafting_complexity = FOOD_COMPLEXITY_3 @@ -204,7 +204,7 @@ /datum/reagent/consumable/nutriment/vitamin = 1, ) tastes = list("bread" = 10, "cobwebs" = 5) - foodtypes = GRAIN | MEAT | TOXIC + foodtypes = GRAIN|MEAT|DAIRY|TOXIC crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/bread/banana @@ -216,7 +216,7 @@ /datum/reagent/consumable/banana = 20, ) tastes = list("bread" = 10) // bananjuice will also flavour - foodtypes = GRAIN | FRUIT + foodtypes = GRAIN | FRUIT | MEAT slice_type = /obj/item/food/breadslice/banana crafting_complexity = FOOD_COMPLEXITY_3 @@ -229,11 +229,11 @@ /datum/reagent/consumable/banana = 4, ) tastes = list("bread" = 10) - foodtypes = GRAIN | FRUIT + foodtypes = GRAIN | FRUIT | MEAT crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/bread/tofu - name = "Tofubread" + name = "tofubread" desc = "Like meatbread but for vegetarians. Not guaranteed to give superpowers." icon_state = "tofubread" food_reagents = list( @@ -242,7 +242,7 @@ /datum/reagent/consumable/nutriment/protein = 10, ) tastes = list("bread" = 10, "tofu" = 10) - foodtypes = GRAIN | VEGETABLES + foodtypes = GRAIN | VEGETABLES | DAIRY venue_value = FOOD_PRICE_TRASH slice_type = /obj/item/food/breadslice/tofu crafting_complexity = FOOD_COMPLEXITY_3 @@ -257,7 +257,7 @@ /datum/reagent/consumable/nutriment/vitamin = 2, ) tastes = list("bread" = 10, "tofu" = 10) - foodtypes = GRAIN | VEGETABLES + foodtypes = GRAIN | VEGETABLES | DAIRY crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/bread/creamcheese @@ -296,7 +296,7 @@ /datum/reagent/consumable/nutriment/vitamin = 10, ) tastes = list("bread" = 10, "silence" = 10) - foodtypes = GRAIN | FRUIT + foodtypes = GRAIN | FRUIT | VEGETABLES slice_type = /obj/item/food/breadslice/mimana crafting_complexity = FOOD_COMPLEXITY_3 @@ -311,7 +311,7 @@ /datum/reagent/consumable/nutriment/vitamin = 2, ) tastes = list("bread" = 10, "silence" = 10) - foodtypes = GRAIN | FRUIT + foodtypes = GRAIN | FRUIT | VEGETABLES crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/bread/empty @@ -450,7 +450,7 @@ ) bite_consumption = 3 tastes = list("bread" = 1, "garlic" = 1, "butter" = 1) - foodtypes = GRAIN + foodtypes = VEGETABLES|GRAIN|DAIRY venue_value = FOOD_PRICE_NORMAL crafting_complexity = FOOD_COMPLEXITY_2 @@ -464,7 +464,7 @@ /datum/reagent/consumable/nutriment/vitamin = 1, ) tastes = list("butter" = 1, "biscuit" = 1) - foodtypes = GRAIN | BREAKFAST + foodtypes = GRAIN | BREAKFAST | DAIRY w_class = WEIGHT_CLASS_SMALL venue_value = FOOD_PRICE_CHEAP crafting_complexity = FOOD_COMPLEXITY_2 @@ -499,7 +499,7 @@ /datum/reagent/consumable/nutriment/vitamin = 6, ) tastes = list("raw egg" = 2, "soaked bread" = 1) - foodtypes = GRAIN | RAW | BREAKFAST + foodtypes = GRAIN | RAW | BREAKFAST | MEAT | EGG w_class = WEIGHT_CLASS_SMALL crafting_complexity = FOOD_COMPLEXITY_2 @@ -516,7 +516,7 @@ /datum/reagent/consumable/nutriment/vitamin = 6, ) tastes = list("french toast" = 1, "syrup" = 1, "golden deliciousness" = 1) - foodtypes = GRAIN | BREAKFAST + foodtypes = GRAIN | BREAKFAST | MEAT | EGG w_class = WEIGHT_CLASS_SMALL crafting_complexity = FOOD_COMPLEXITY_2 diff --git a/code/game/objects/items/food/burgers.dm b/code/game/objects/items/food/burgers.dm index b2d779ca3a54..95b40f03d32a 100644 --- a/code/game/objects/items/food/burgers.dm +++ b/code/game/objects/items/food/burgers.dm @@ -48,7 +48,7 @@ /datum/reagent/consumable/nutriment/vitamin = 5, ) tastes = list("bun" = 2, "long pig" = 4) - foodtypes = MEAT | GRAIN | GORE + foodtypes = MEAT | GRAIN venue_value = FOOD_PRICE_CHEAP crafting_complexity = FOOD_COMPLEXITY_2 @@ -70,7 +70,7 @@ /datum/reagent/consumable/nutriment/vitamin = 6, ) tastes = list("bun" = 4, "corgi meat" = 2) - foodtypes = GRAIN | MEAT | GORE + foodtypes = GRAIN | MEAT venue_value = FOOD_PRICE_EXOTIC crafting_complexity = FOOD_COMPLEXITY_2 @@ -98,7 +98,7 @@ /datum/reagent/consumable/nutriment/vitamin = 4, ) tastes = list("bun" = 4, "fish" = 4) - foodtypes = GRAIN | SEAFOOD + foodtypes = GRAIN | SEAFOOD | DAIRY venue_value = FOOD_PRICE_EXOTIC crafting_complexity = FOOD_COMPLEXITY_3 @@ -176,7 +176,7 @@ /datum/reagent/consumable/nutriment/vitamin = 6, ) tastes = list("bun" = 2, "a bad joke" = 4) - foodtypes = GRAIN | FRUIT + foodtypes = GRAIN venue_value = FOOD_PRICE_NORMAL crafting_complexity = FOOD_COMPLEXITY_2 @@ -395,7 +395,7 @@ /datum/reagent/consumable/nutriment/vitamin = 10, ) tastes = list("bun" = 4, "magic" = 2) - foodtypes = GRAIN | MEAT + foodtypes = GRAIN venue_value = FOOD_PRICE_NORMAL crafting_complexity = FOOD_COMPLEXITY_2 @@ -452,7 +452,7 @@ bite_consumption = 7 max_volume = 100 tastes = list("bun" = 4, "type two diabetes" = 10) - foodtypes = GRAIN | MEAT | DAIRY + foodtypes = GRAIN | MEAT | DAIRY | VEGETABLES | EGG venue_value = FOOD_PRICE_EXOTIC crafting_complexity = FOOD_COMPLEXITY_5 @@ -474,7 +474,7 @@ /datum/reagent/consumable/nutriment/vitamin = 6, ) tastes = list("extreme heat" = 4, "bun" = 2) - foodtypes = GRAIN | MEAT + foodtypes = GRAIN | MEAT | VEGETABLES venue_value = FOOD_PRICE_NORMAL crafting_complexity = FOOD_COMPLEXITY_3 @@ -488,7 +488,7 @@ /datum/reagent/consumable/nutriment/vitamin = 2, ) tastes = list("dead rat" = 4, "bun" = 2) - foodtypes = GRAIN | MEAT | GORE + foodtypes = GRAIN | MEAT | GORE | RAW venue_value = FOOD_PRICE_CHEAP crafting_complexity = FOOD_COMPLEXITY_2 @@ -589,7 +589,7 @@ /datum/reagent/consumable/bbqsauce = 1, ) tastes = list("bun" = 2, "pork patty" = 4) - foodtypes = GRAIN | MEAT + foodtypes = GRAIN | MEAT | SUGAR | VEGETABLES venue_value = FOOD_PRICE_NORMAL crafting_complexity = FOOD_COMPLEXITY_3 @@ -604,12 +604,14 @@ /datum/reagent/consumable/nutriment/vitamin = 1, ) tastes = list("muffin" = 2, "bacon" = 3) - foodtypes = GRAIN | MEAT | BREAKFAST + foodtypes = GRAIN | MEAT | BREAKFAST | FRIED | EGG venue_value = FOOD_PRICE_NORMAL crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/burger/chicken - name = "chicken sandwich" //Apparently the proud people of Americlapstan object to this thing being called a burger. Apparently McDonald's just calls it a burger in Europe as to not scare and confuse us. + name = "chicken sandwich" + //Apparently the proud people of Americlapstan object to this thing being called a burger. + //Apparently McDonald's just calls it a burger in Europe as to not scare and confuse us. desc = "A delicious chicken sandwich, it is said the proceeds from this treat helps criminalize disarming people on the space frontier." icon_state = "chickenburger" food_reagents = list( @@ -620,7 +622,7 @@ /datum/reagent/consumable/nutriment/fat/oil = 2, ) tastes = list("bun" = 2, "chicken" = 4, "God's covenant" = 1) - foodtypes = GRAIN | MEAT | FRIED + foodtypes = GRAIN | MEAT venue_value = FOOD_PRICE_NORMAL crafting_complexity = FOOD_COMPLEXITY_3 @@ -655,7 +657,7 @@ /datum/reagent/consumable/nutriment/vitamin = 6, ) tastes = list("bun" = 2, "beef patty" = 4, "cheese" = 2, "beef soaked in chili" = 3, "a smoking flare" = 2) - foodtypes = GRAIN | MEAT | DAIRY + foodtypes = GRAIN | MEAT | DAIRY | VEGETABLES crafting_complexity = FOOD_COMPLEXITY_4 /obj/item/food/burger/crazy/Initialize(mapload) @@ -686,6 +688,6 @@ /datum/reagent/consumable/nutriment/vitamin = 6, ) tastes = list("juicy meat" = 4, "BBQ sauce" = 3, "onions" = 2, "bun" = 2) - foodtypes = GRAIN | MEAT | VEGETABLES + foodtypes = MEAT|VEGETABLES|GRAIN venue_value = FOOD_PRICE_NORMAL crafting_complexity = FOOD_COMPLEXITY_3 diff --git a/code/game/objects/items/food/cake.dm b/code/game/objects/items/food/cake.dm index bf58dc7d5ac1..72c00b929570 100644 --- a/code/game/objects/items/food/cake.dm +++ b/code/game/objects/items/food/cake.dm @@ -21,7 +21,7 @@ /obj/item/food/cake/make_processable() if (slice_type) - AddElement(/datum/element/processable, TOOL_KNIFE, slice_type, yield, 3 SECONDS, table_required = TRUE, screentip_verb = "Slice") + AddElement(/datum/element/processable, TOOL_KNIFE, slice_type, yield, 3 SECONDS, table_required = TRUE, screentip_verb = "Slice", sound_to_play = SFX_KNIFE_SLICE) /obj/item/food/cakeslice icon = 'icons/obj/food/piecake.dmi' @@ -111,7 +111,7 @@ /datum/reagent/consumable/nutriment/protein = 5, ) tastes = list("cake" = 4, "cream cheese" = 3) - foodtypes = GRAIN | DAIRY + foodtypes = GRAIN | DAIRY | SUGAR venue_value = FOOD_PRICE_CHEAP slice_type = /obj/item/food/cakeslice/cheese crafting_complexity = FOOD_COMPLEXITY_3 @@ -324,7 +324,7 @@ crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/cake/slimecake - name = "Slime cake" + name = "slime cake" desc = "A cake made of slimes. Probably not electrified." icon_state = "slimecake" tastes = list("cake" = 5, "sweetness" = 1, "slime" = 1) @@ -345,7 +345,7 @@ desc = "A hollow cake with real pumpkin." icon_state = "pumpkinspicecake" tastes = list("cake" = 5, "sweetness" = 1, "pumpkin" = 1) - foodtypes = GRAIN | DAIRY | VEGETABLES | SUGAR + foodtypes = GRAIN|DAIRY|SUGAR|VEGETABLES venue_value = FOOD_PRICE_CHEAP slice_type = /obj/item/food/cakeslice/pumpkinspice crafting_complexity = FOOD_COMPLEXITY_3 @@ -355,7 +355,7 @@ desc = "A spicy slice of pumpkin goodness." icon_state = "pumpkinspicecakeslice" tastes = list("cake" = 5, "sweetness" = 1, "pumpkin" = 1) - foodtypes = GRAIN | DAIRY | VEGETABLES | SUGAR + foodtypes = GRAIN|DAIRY|SUGAR|VEGETABLES crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/cake/berry_vanilla_cake // blackberry strawberries vanilla cake @@ -456,7 +456,7 @@ /datum/reagent/fuel/oil = 15, ) tastes = list("acid" = 3, "metal" = 4, "glass" = 5) - foodtypes = GRAIN | GROSS + foodtypes = GRAIN|DAIRY|SUGAR|GROSS slice_type = /obj/item/food/cakeslice/hardware_cake_slice crafting_complexity = FOOD_COMPLEXITY_3 @@ -471,7 +471,7 @@ /datum/reagent/fuel/oil = 3, ) tastes = list("acid" = 3, "metal" = 4, "glass" = 5) - foodtypes = GRAIN | GROSS + foodtypes = GRAIN|DAIRY|SUGAR|GROSS crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/cake/vanilla_cake @@ -485,7 +485,7 @@ /datum/reagent/consumable/vanilla = 15, ) tastes = list("cake" = 1, "sugar" = 1, "vanilla" = 10) - foodtypes = GRAIN | SUGAR | DAIRY + foodtypes = GRAIN|FRUIT|DAIRY|SUGAR slice_type = /obj/item/food/cakeslice/vanilla_slice crafting_complexity = FOOD_COMPLEXITY_3 @@ -500,7 +500,7 @@ /datum/reagent/consumable/vanilla = 3, ) tastes = list("cake" = 1, "sugar" = 1, "vanilla" = 10) - foodtypes = GRAIN | SUGAR | DAIRY + foodtypes = GRAIN|FRUIT|DAIRY|SUGAR crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/cake/clown_cake @@ -513,9 +513,10 @@ /datum/reagent/consumable/banana = 15, ) tastes = list("cake" = 1, "sugar" = 1, "joy" = 10) - foodtypes = GRAIN | SUGAR | DAIRY + foodtypes = GRAIN|FRUIT|DAIRY|SUGAR slice_type = /obj/item/food/cakeslice/clown_slice crafting_complexity = FOOD_COMPLEXITY_5 + crafted_food_buff = /datum/status_effect/food/trait/waddle /obj/item/food/cakeslice/clown_slice name = "clown cake slice" @@ -527,8 +528,9 @@ /datum/reagent/consumable/banana = 3, ) tastes = list("cake" = 1, "sugar" = 1, "joy" = 10) - foodtypes = GRAIN | SUGAR | DAIRY + foodtypes = GRAIN|FRUIT|DAIRY|SUGAR crafting_complexity = FOOD_COMPLEXITY_5 + crafted_food_buff = /datum/status_effect/food/trait/waddle /obj/item/food/cake/trumpet name = "spaceman's cake" @@ -542,7 +544,7 @@ /datum/reagent/consumable/berryjuice = 5, ) tastes = list("cake" = 4, "violets" = 2, "jam" = 2) - foodtypes = GRAIN | DAIRY | FRUIT | SUGAR + foodtypes = GRAIN|DAIRY|FRUIT|SUGAR|VEGETABLES slice_type = /obj/item/food/cakeslice/trumpet crafting_complexity = FOOD_COMPLEXITY_4 @@ -558,7 +560,7 @@ /datum/reagent/consumable/berryjuice = 1, ) tastes = list("cake" = 4, "violets" = 2, "jam" = 2) - foodtypes = GRAIN | DAIRY | FRUIT | SUGAR + foodtypes = GRAIN|DAIRY|FRUIT|SUGAR|VEGETABLES crafting_complexity = FOOD_COMPLEXITY_4 /obj/item/food/cake/brioche diff --git a/code/game/objects/items/food/cheese.dm b/code/game/objects/items/food/cheese.dm index 614e8a80f167..46042ea87783 100644 --- a/code/game/objects/items/food/cheese.dm +++ b/code/game/objects/items/food/cheese.dm @@ -55,7 +55,7 @@ AddComponent(/datum/component/food_storage) /obj/item/food/cheese/wheel/make_processable() - AddElement(/datum/element/processable, TOOL_KNIFE, /obj/item/food/cheese/wedge, 5, 3 SECONDS, table_required = TRUE, screentip_verb = "Slice") + AddElement(/datum/element/processable, TOOL_KNIFE, /obj/item/food/cheese/wedge, 5, 3 SECONDS, table_required = TRUE, screentip_verb = "Slice", sound_to_play = SFX_KNIFE_SLICE) /obj/item/food/cheese/wheel/make_bakeable() AddComponent(/datum/component/bakeable, /obj/item/food/baked_cheese, rand(20 SECONDS, 25 SECONDS), TRUE, TRUE) @@ -95,7 +95,6 @@ /datum/reagent/consumable/cream = 1, ) tastes = list("cream" = 1, "cheese" = 1) - foodtypes = DAIRY w_class = WEIGHT_CLASS_SMALL rat_heal = 35 crafting_complexity = FOOD_COMPLEXITY_2 @@ -110,7 +109,6 @@ name = "cheese curds" desc = "Not to be mistaken for curd cheese. Tasty deep fried." icon_state = "cheese_curds" - foodtypes = DAIRY w_class = WEIGHT_CLASS_SMALL rat_heal = 35 crafting_complexity = FOOD_COMPLEXITY_2 @@ -124,20 +122,18 @@ desc = "Firm aged cheese, similar in texture to firm tofu. Due to its lack of moisture it's particularly useful for cooking with, as it doesn't melt easily." icon_state = "firm_cheese" tastes = list("aged cheese" = 1) - foodtypes = DAIRY | VEGETABLES w_class = WEIGHT_CLASS_SMALL rat_heal = 35 crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/cheese/firm_cheese/make_processable() - AddElement(/datum/element/processable, TOOL_KNIFE, /obj/item/food/cheese/firm_cheese_slice, 3, 3 SECONDS, screentip_verb = "Slice") + AddElement(/datum/element/processable, TOOL_KNIFE, /obj/item/food/cheese/firm_cheese_slice, 3, 3 SECONDS, screentip_verb = "Slice", sound_to_play = SFX_KNIFE_SLICE) /obj/item/food/cheese/firm_cheese_slice name = "firm cheese slice" desc = "A slice of firm cheese. Perfect for grilling or making into delicious pesto." icon_state = "firm_cheese_slice" tastes = list("aged cheese" = 1) - foodtypes = DAIRY | VEGETABLES w_class = WEIGHT_CLASS_SMALL rat_heal = 10 crafting_complexity = FOOD_COMPLEXITY_3 @@ -150,7 +146,6 @@ desc = "Delicious, creamy, and cheesy, all in one simple package." icon_state = "mozzarella" tastes = list("mozzarella" = 1) - foodtypes = DAIRY w_class = WEIGHT_CLASS_SMALL rat_heal = 10 crafting_complexity = FOOD_COMPLEXITY_2 diff --git a/code/game/objects/items/food/donkpocket.dm b/code/game/objects/items/food/donkpocket.dm index 1e3b1d037a1c..42506489088e 100644 --- a/code/game/objects/items/food/donkpocket.dm +++ b/code/game/objects/items/food/donkpocket.dm @@ -8,7 +8,7 @@ /datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/nutriment/protein = 2, ) - tastes = list("meat" = 2, "dough" = 2, "laziness" = 1) + tastes = list("umami" = 2, "dough" = 2, "laziness" = 1) foodtypes = GRAIN food_flags = FOOD_FINGER_FOOD w_class = WEIGHT_CLASS_SMALL @@ -44,7 +44,7 @@ /datum/reagent/consumable/nutriment/protein = 2, /datum/reagent/medicine/omnizine = 6, ) - tastes = list("meat" = 2, "dough" = 2, "laziness" = 1) + tastes = list("umami" = 2, "dough" = 2, "laziness" = 1) foodtypes = GRAIN // Warmed donk pockets will burn if you leave them in the oven or microwave. @@ -52,7 +52,16 @@ baking_time_short = 10 SECONDS baking_time_long = 15 SECONDS -/obj/item/food/dankpocket +/obj/item/food/donkpocket/homemade + foodtypes = MEAT|GRAIN + tastes = list("meat" = 2, "dough" = 2, "comfiness" = 1) + warm_type = /obj/item/food/donkpocket/warm/homemade + +/obj/item/food/donkpocket/warm/homemade + foodtypes = MEAT|GRAIN + tastes = list("meat" = 2, "dough" = 2, "comfiness" = 1) + +/obj/item/food/donkpocket/dank name = "\improper Dank-pocket" desc = "The food of choice for the seasoned botanist." icon_state = "dankpocket" @@ -61,8 +70,29 @@ /datum/reagent/drug/space_drugs = 3, /datum/reagent/consumable/nutriment = 4, ) - tastes = list("meat" = 2, "dough" = 2) - foodtypes = GRAIN | VEGETABLES + tastes = list("weed" = 2, "dough" = 2) + foodtypes = GRAIN|VEGETABLES + crafting_complexity = FOOD_COMPLEXITY_2 + warm_type = /obj/item/food/donkpocket/warm/dank + +/obj/item/food/donkpocket/dank/make_bakeable() + AddComponent(/datum/component/bakeable, warm_type, rand(baking_time_short, baking_time_long), TRUE, TRUE, child_added_reagents) + +/obj/item/food/donkpocket/dank/make_microwaveable() + AddElement(/datum/element/microwavable, warm_type, child_added_reagents) + +/obj/item/food/donkpocket/warm/dank + name = "warm Dank-pocket" + desc = "The food of choice for the seasoned botanist." + icon_state = "dankpocket" + food_reagents = list( + /datum/reagent/toxin/lipolicide = 3, + /datum/reagent/drug/space_drugs = 3, + /datum/reagent/consumable/nutriment = 4, + /datum/reagent/medicine/omnizine = 2, + ) + tastes = list("weed" = 2, "dough" = 2) + foodtypes = GRAIN|VEGETABLES crafting_complexity = FOOD_COMPLEXITY_2 /obj/item/food/donkpocket/spicy @@ -74,8 +104,8 @@ /datum/reagent/consumable/nutriment/protein = 2, /datum/reagent/consumable/capsaicin = 2, ) - tastes = list("meat" = 2, "dough" = 2, "spice" = 1) - foodtypes = GRAIN + tastes = list("umami" = 2, "dough" = 2, "spice" = 1) + foodtypes = VEGETABLES|GRAIN warm_type = /obj/item/food/donkpocket/warm/spicy /obj/item/food/donkpocket/spicy/make_bakeable() @@ -94,8 +124,17 @@ /datum/reagent/medicine/omnizine = 2, /datum/reagent/consumable/capsaicin = 5, ) - tastes = list("meat" = 2, "dough" = 2, "weird spices" = 2) - foodtypes = GRAIN + tastes = list("umami" = 2, "dough" = 2, "weird spices" = 2) + foodtypes = VEGETABLES|GRAIN + +/obj/item/food/donkpocket/spicy/homemade + tastes = list("meat" = 2, "dough" = 2, "spice" = 1) + foodtypes = MEAT|VEGETABLES|GRAIN + warm_type = /obj/item/food/donkpocket/warm/spicy/homemade + +/obj/item/food/donkpocket/warm/spicy/homemade + tastes = list("meat" = 2, "dough" = 2, "weird spices" = 1) + foodtypes = MEAT|VEGETABLES|GRAIN /obj/item/food/donkpocket/teriyaki name = "\improper Teriyaki-pocket" @@ -106,7 +145,7 @@ /datum/reagent/consumable/nutriment/protein = 2, /datum/reagent/consumable/soysauce = 2, ) - tastes = list("meat" = 2, "dough" = 2, "soy sauce" = 2) + tastes = list("umami" = 2, "dough" = 2, "soy sauce" = 2) foodtypes = GRAIN warm_type = /obj/item/food/donkpocket/warm/teriyaki @@ -126,9 +165,18 @@ /datum/reagent/medicine/omnizine = 2, /datum/reagent/consumable/soysauce = 2, ) - tastes = list("meat" = 2, "dough" = 2, "soy sauce" = 2) + tastes = list("umami" = 2, "dough" = 2, "soy sauce" = 2) foodtypes = GRAIN +/obj/item/food/donkpocket/teriyaki/homemade + tastes = list("meat" = 2, "dough" = 2, "soy sauce" = 2) + foodtypes = MEAT|GRAIN + warm_type = /obj/item/food/donkpocket/warm/teriyaki/homemade + +/obj/item/food/donkpocket/warm/teriyaki/homemade + tastes = list("meat" = 2, "dough" = 2, "soy sauce" = 2) + foodtypes = MEAT|GRAIN + /obj/item/food/donkpocket/pizza name = "\improper Pizza-pocket" desc = "Delicious, cheesy and surprisingly filling." @@ -138,8 +186,8 @@ /datum/reagent/consumable/nutriment/protein = 2, /datum/reagent/consumable/tomatojuice = 2, ) - tastes = list("meat" = 2, "dough" = 2, "cheese"= 2) - foodtypes = GRAIN + tastes = list("tomato" = 2, "dough" = 2, "cheese"= 2) + foodtypes = VEGETABLES|GRAIN|DAIRY warm_type = /obj/item/food/donkpocket/warm/pizza /obj/item/food/donkpocket/pizza/make_bakeable() @@ -158,8 +206,8 @@ /datum/reagent/medicine/omnizine = 2, /datum/reagent/consumable/tomatojuice = 2, ) - tastes = list("meat" = 2, "dough" = 2, "melty cheese"= 2) - foodtypes = GRAIN + tastes = list("tomato" = 2, "dough" = 2, "melty cheese"= 2) + foodtypes = VEGETABLES|GRAIN|DAIRY /obj/item/food/donkpocket/honk name = "\improper Honk-pocket" @@ -170,7 +218,7 @@ /datum/reagent/consumable/banana = 4, ) tastes = list("banana" = 2, "dough" = 2, "children's antibiotics" = 1) - foodtypes = GRAIN + foodtypes = GRAIN|FRUIT|SUGAR warm_type = /obj/item/food/donkpocket/warm/honk crafting_complexity = FOOD_COMPLEXITY_3 var/static/list/honk_added_reagents = list( @@ -195,7 +243,7 @@ /datum/reagent/consumable/laughter = 6, ) tastes = list("banana" = 2, "dough" = 2, "children's antibiotics" = 1) - foodtypes = GRAIN + foodtypes = GRAIN|FRUIT|SUGAR crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/donkpocket/berry @@ -207,7 +255,7 @@ /datum/reagent/consumable/berryjuice = 3, ) tastes = list("dough" = 2, "jam" = 2) - foodtypes = GRAIN + foodtypes = GRAIN|FRUIT|SUGAR warm_type = /obj/item/food/donkpocket/warm/berry /obj/item/food/donkpocket/berry/make_bakeable() @@ -226,7 +274,7 @@ /datum/reagent/consumable/berryjuice = 3, ) tastes = list("dough" = 2, "warm jam" = 2) - foodtypes = GRAIN + foodtypes = GRAIN|FRUIT|SUGAR /obj/item/food/donkpocket/gondola name = "\improper Gondola-pocket" @@ -238,7 +286,7 @@ /datum/reagent/gondola_mutation_toxin = 5, ) tastes = list("meat" = 2, "dough" = 2, "inner peace" = 1) - foodtypes = GRAIN + foodtypes = GRAIN|MEAT warm_type = /obj/item/food/donkpocket/warm/gondola var/static/list/gondola_added_reagents = list( @@ -263,4 +311,108 @@ /datum/reagent/gondola_mutation_toxin = 10, ) tastes = list("meat" = 2, "dough" = 2, "inner peace" = 1) - foodtypes = GRAIN + foodtypes = GRAIN|MEAT + +/* +/obj/item/food/donkpocket/deluxe + name = "\improper Donk-pocket Deluxe" + desc = "Donk Co's latest product. Its recipe is a closely guarded secret." + icon_state = "donkpocketdeluxe" + food_reagents = list( + /datum/reagent/consumable/nutriment = 4, + /datum/reagent/consumable/nutriment/protein = 2, + /datum/reagent/consumable/nutriment/vitamin = 1, + /datum/reagent/medicine/omnizine = 2, + ) + tastes = list("quality meat" = 2, "dough" = 2, "raw fanciness" = 1) + foodtypes = GRAIN|MEAT|VEGETABLES + crafting_complexity = FOOD_COMPLEXITY_4 + + warm_type = /obj/item/food/donkpocket/warm/deluxe + var/static/list/deluxe_added_reagents = list( + /datum/reagent/medicine/omnizine = 8, + ) + +/obj/item/food/donkpocket/deluxe/make_bakeable() + AddComponent(/datum/component/bakeable, warm_type, rand(baking_time_short, baking_time_long), TRUE, TRUE, deluxe_added_reagents) + +/obj/item/food/donkpocket/deluxe/make_microwaveable() + AddElement(/datum/element/microwavable, warm_type, deluxe_added_reagents) + +/obj/item/food/donkpocket/warm/deluxe + name = "warm Donk-pocket Deluxe" + desc = "Donk Co's latest product. It's crispy warm and oh-so perfectly toasted. Damn, that's a good looking Donk." + icon_state = "donkpocketdeluxe" + food_reagents = list( + /datum/reagent/consumable/nutriment = 4, + /datum/reagent/consumable/nutriment/protein = 2, + /datum/reagent/consumable/nutriment/vitamin = 1, + /datum/reagent/medicine/omnizine = 10, + ) + tastes = list("quality meat" = 2, "dough" = 2, "fanciness" = 1) + foodtypes = GRAIN|MEAT|VEGETABLES|FRIED + +/obj/item/food/donkpocket/deluxe/nocarb + name = "\improper Meat-pocket" + desc = "The food of choice for the carnivorous traitor." + icon_state = "donkpocketdeluxenocarb" + food_reagents = list( + /datum/reagent/consumable/nutriment = 4, + /datum/reagent/consumable/nutriment/protein = 3, + /datum/reagent/medicine/omnizine = 2, + ) + tastes = list("raw meat" = 2, "more meat" = 2, "no carbs" = 1) + foodtypes = MEAT|RAW + crafting_complexity = FOOD_COMPLEXITY_4 + warm_type = /obj/item/food/donkpocket/warm/deluxe/nocarb + +/obj/item/food/donkpocket/deluxe/meat/make_bakeable() + AddComponent(/datum/component/bakeable, warm_type, rand(baking_time_short, baking_time_long), TRUE, TRUE, deluxe_added_reagents) + +/obj/item/food/donkpocket/deluxe/meat/make_microwaveable() + AddElement(/datum/element/microwavable, warm_type, deluxe_added_reagents) + +/obj/item/food/donkpocket/warm/deluxe/nocarb + name = "warm Meat-pocket" + desc = "The warm food of choice for the carnivorous traitor." + icon_state = "donkpocketdeluxenocarb" + food_reagents = list( + /datum/reagent/consumable/nutriment = 4, + /datum/reagent/consumable/nutriment/protein = 3, + /datum/reagent/medicine/omnizine = 10, + ) + tastes = list("meat" = 2, "more meat" = 2, "no carbs" = 1) + foodtypes = MEAT + +/obj/item/food/donkpocket/deluxe/vegan + name = "\improper Donk-roll" + desc = "The classic station snack, now with rice! Certified vegan and cruelty free by the Animal Liberation Front." + icon_state = "donkpocketdeluxevegan" + food_reagents = list( + /datum/reagent/consumable/nutriment = 4, + /datum/reagent/consumable/nutriment/vitamin = 3, + /datum/reagent/medicine/omnizine = 2, + ) + tastes = list("rice patty" = 2, "dough" = 2, "peppery kick" = 1) + foodtypes = GRAIN | VEGETABLES + crafting_complexity = FOOD_COMPLEXITY_4 + warm_type = /obj/item/food/donkpocket/warm/deluxe/vegan + +/obj/item/food/donkpocket/deluxe/vegan/make_bakeable() + AddComponent(/datum/component/bakeable, warm_type, rand(baking_time_short, baking_time_long), TRUE, TRUE, deluxe_added_reagents) + +/obj/item/food/donkpocket/deluxe/vegan/make_microwaveable() + AddElement(/datum/element/microwavable, warm_type, deluxe_added_reagents) + +/obj/item/food/donkpocket/warm/deluxe/vegan + name = "warm Donk-roll" + desc = "The classic station snack, now with rice! It's been fried to perfection." + icon_state = "donkpocketdeluxevegan" + food_reagents = list( + /datum/reagent/consumable/nutriment = 4, + /datum/reagent/consumable/nutriment/vitamin = 3, + /datum/reagent/medicine/omnizine = 10, + ) + tastes = list("rice patty" = 2, "fried dough" = 2, "peppery kick" = 1) + foodtypes = GRAIN | VEGETABLES | FRIED +*/ diff --git a/code/game/objects/items/food/donuts.dm b/code/game/objects/items/food/donuts.dm index b44dfaa2407f..3a3e09373417 100644 --- a/code/game/objects/items/food/donuts.dm +++ b/code/game/objects/items/food/donuts.dm @@ -9,7 +9,7 @@ bite_consumption = 5 food_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/sugar = 3) tastes = list("donut" = 1) - foodtypes = JUNKFOOD | GRAIN | SUGAR | BREAKFAST + foodtypes = GRAIN|DAIRY|JUNKFOOD|SUGAR|FRIED|BREAKFAST food_flags = FOOD_FINGER_FOOD w_class = WEIGHT_CLASS_SMALL crafting_complexity = FOOD_COMPLEXITY_2 @@ -62,6 +62,7 @@ tastes = list("donut" = 3, "chaos" = 1) is_decorated = TRUE crafting_complexity = FOOD_COMPLEXITY_3 + foodtypes = GRAIN|DAIRY|JUNKFOOD|FRIED|BREAKFAST /obj/item/food/donut/chaos/Initialize(mapload) . = ..() @@ -89,7 +90,7 @@ /datum/reagent/consumable/ketchup = 3, ) tastes = list("meat" = 1) - foodtypes = JUNKFOOD | MEAT | GORE | FRIED | BREAKFAST + foodtypes = GRAIN|DAIRY|JUNKFOOD|FRIED|BREAKFAST|MEAT|GORE is_decorated = TRUE crafting_complexity = FOOD_COMPLEXITY_3 @@ -103,6 +104,7 @@ /datum/reagent/consumable/berryjuice = 3, /datum/reagent/consumable/sprinkles = 1, //Extra sprinkles to reward frosting ) + foodtypes = parent_type::foodtypes|FRUIT decorated_icon = "donut_homer" /obj/item/food/donut/trumpet @@ -128,6 +130,7 @@ /datum/reagent/consumable/applejuice = 3, /datum/reagent/consumable/sprinkles = 1, ) + foodtypes = parent_type::foodtypes|FRUIT tastes = list("donut" = 3, "green apples" = 1) is_decorated = TRUE @@ -168,6 +171,7 @@ /datum/reagent/consumable/blumpkinjuice = 3, /datum/reagent/consumable/sprinkles = 1, ) + foodtypes = parent_type::foodtypes|VEGETABLES tastes = list("donut" = 2, "blumpkin" = 1) is_decorated = TRUE crafting_complexity = FOOD_COMPLEXITY_3 @@ -225,7 +229,7 @@ ) extra_reagent = /datum/reagent/consumable/berryjuice tastes = list("jelly" = 1, "donut" = 3) - foodtypes = JUNKFOOD | GRAIN | FRIED | FRUIT | SUGAR | BREAKFAST + foodtypes = parent_type::foodtypes|FRUIT // Jelly donuts don't have holes, but look the same on the outside /obj/item/food/donut/jelly/in_box_sprite() @@ -314,6 +318,7 @@ /datum/reagent/consumable/sprinkles = 1, /datum/reagent/consumable/nutriment/vitamin = 1, ) + foodtypes = parent_type::foodtypes|VEGETABLES tastes = list("jelly" = 1, "donut" = 2, "blumpkin" = 1) is_decorated = TRUE crafting_complexity = FOOD_COMPLEXITY_3 @@ -366,7 +371,7 @@ desc = "You jelly?" abstract_type = /obj/item/food/donut/jelly/slimejelly extra_reagent = /datum/reagent/toxin/slimejelly - foodtypes = JUNKFOOD | GRAIN | FRIED | TOXIC | SUGAR | BREAKFAST + foodtypes = GRAIN|DAIRY|JUNKFOOD|SUGAR|FRIED|BREAKFAST|TOXIC /obj/item/food/donut/jelly/slimejelly/plain icon_state = "jelly" @@ -382,6 +387,7 @@ /datum/reagent/consumable/sprinkles = 1, /datum/reagent/consumable/nutriment/vitamin = 1, ) //Extra sprinkles to reward frosting + foodtypes = parent_type::foodtypes|FRUIT /obj/item/food/donut/jelly/slimejelly/trumpet name = "spaceman's jelly donut" @@ -410,6 +416,7 @@ ) tastes = list("jelly" = 1, "donut" = 3, "green apples" = 1) is_decorated = TRUE + foodtypes = parent_type::foodtypes|FRUIT /obj/item/food/donut/jelly/slimejelly/caramel name = "caramel jelly donut" @@ -454,6 +461,7 @@ tastes = list("jelly" = 1, "donut" = 2, "blumpkin" = 1) is_decorated = TRUE crafting_complexity = FOOD_COMPLEXITY_3 + foodtypes = parent_type::foodtypes|VEGETABLES /obj/item/food/donut/jelly/slimejelly/bungo name = "bungo jelly donut" diff --git a/code/game/objects/items/food/dough.dm b/code/game/objects/items/food/dough.dm index 6ca618bc6e0c..21d8e2538821 100644 --- a/code/game/objects/items/food/dough.dm +++ b/code/game/objects/items/food/dough.dm @@ -15,7 +15,7 @@ // Dough + rolling pin = flat dough /obj/item/food/dough/make_processable() - AddElement(/datum/element/processable, TOOL_ROLLINGPIN, /obj/item/food/flatdough, 1, 3 SECONDS, table_required = TRUE, screentip_verb = "Flatten") + AddElement(/datum/element/processable, TOOL_ROLLINGPIN, /obj/item/food/flatdough, 1, 3 SECONDS, table_required = TRUE, screentip_verb = "Flatten", sound_to_play = SFX_ROLLING_PIN_ROLLING) /obj/item/food/flatdough name = "flat dough" @@ -32,7 +32,7 @@ // sliceable into 3xdoughslices /obj/item/food/flatdough/make_processable() - AddElement(/datum/element/processable, TOOL_KNIFE, /obj/item/food/doughslice, 3, 3 SECONDS, table_required = TRUE, screentip_verb = "Slice") + AddElement(/datum/element/processable, TOOL_KNIFE, /obj/item/food/doughslice, 3, 3 SECONDS, table_required = TRUE, screentip_verb = "Slice", sound_to_play = SFX_KNIFE_SLICE) /obj/item/food/pizzabread name = "pizza bread" @@ -63,7 +63,7 @@ AddComponent(/datum/component/bakeable, /obj/item/food/bun, rand(20 SECONDS, 25 SECONDS), TRUE, TRUE) /obj/item/food/doughslice/make_processable() - AddElement(/datum/element/processable, TOOL_KNIFE, /obj/item/food/bait/doughball, 5, 3 SECONDS, screentip_verb = "Slice") + AddElement(/datum/element/processable, TOOL_KNIFE, /obj/item/food/bait/doughball, 5, 3 SECONDS, screentip_verb = "Slice", sound_to_play = SFX_KNIFE_SLICE) /obj/item/food/bun name = "bun" @@ -94,7 +94,7 @@ AddComponent(/datum/component/bakeable, /obj/item/food/cake/plain, rand(70 SECONDS, 90 SECONDS), TRUE, TRUE) /obj/item/food/cakebatter/make_processable() - AddElement(/datum/element/processable, TOOL_ROLLINGPIN, /obj/item/food/piedough, 1, 3 SECONDS, table_required = TRUE, screentip_verb = "Flatten") + AddElement(/datum/element/processable, TOOL_ROLLINGPIN, /obj/item/food/piedough, 1, 3 SECONDS, table_required = TRUE, screentip_verb = "Flatten", sound_to_play = SFX_ROLLING_PIN_ROLLING) /obj/item/food/piedough name = "pie dough" @@ -110,7 +110,7 @@ AddComponent(/datum/component/bakeable, /obj/item/food/pie/plain, rand(30 SECONDS, 45 SECONDS), TRUE, TRUE) /obj/item/food/piedough/make_processable() - AddElement(/datum/element/processable, TOOL_KNIFE, /obj/item/food/rawpastrybase, 6, 3 SECONDS, table_required = TRUE, screentip_verb = "Slice") + AddElement(/datum/element/processable, TOOL_KNIFE, /obj/item/food/rawpastrybase, 6, 3 SECONDS, table_required = TRUE, screentip_verb = "Slice", sound_to_play = SFX_KNIFE_SLICE) /obj/item/food/rawpastrybase name = "raw pastry base" diff --git a/code/game/objects/items/food/egg.dm b/code/game/objects/items/food/egg.dm index b669e16b103c..df92f79b57e5 100644 --- a/code/game/objects/items/food/egg.dm +++ b/code/game/objects/items/food/egg.dm @@ -8,7 +8,7 @@ icon_state = "chocolateegg" food_reagents = list(/datum/reagent/consumable/nutriment = 5, /datum/reagent/consumable/sugar = 2, /datum/reagent/consumable/coco = 2, /datum/reagent/consumable/nutriment/vitamin = 1) tastes = list("chocolate" = 4, "sweetness" = 1) - foodtypes = JUNKFOOD | SUGAR + foodtypes = JUNKFOOD | SUGAR | EGG food_flags = FOOD_FINGER_FOOD w_class = WEIGHT_CLASS_TINY crafting_complexity = FOOD_COMPLEXITY_2 @@ -23,7 +23,7 @@ GLOBAL_VAR_INIT(chicks_from_eggs, 0) icon_state = "egg" inhand_icon_state = "egg" food_reagents = list(/datum/reagent/consumable/eggyolk = 2, /datum/reagent/consumable/eggwhite = 4) - foodtypes = MEAT | RAW + foodtypes = MEAT | RAW | EGG w_class = WEIGHT_CLASS_TINY ant_attracting = FALSE decomp_type = /obj/item/food/egg/rotten @@ -208,7 +208,7 @@ GLOBAL_VAR_INIT(chicks_from_eggs, 0) ) bite_consumption = 1 tastes = list("egg" = 4) - foodtypes = MEAT | FRIED | BREAKFAST + foodtypes = MEAT | FRIED | BREAKFAST | EGG w_class = WEIGHT_CLASS_SMALL crafting_complexity = FOOD_COMPLEXITY_1 @@ -221,7 +221,7 @@ GLOBAL_VAR_INIT(chicks_from_eggs, 0) bite_consumption = 1 tastes = list("raw egg" = 6, "sliminess" = 1) eatverbs = list("gulp down") - foodtypes = MEAT | RAW + foodtypes = MEAT | RAW | EGG w_class = WEIGHT_CLASS_SMALL /obj/item/food/rawegg/make_grillable() @@ -238,7 +238,7 @@ GLOBAL_VAR_INIT(chicks_from_eggs, 0) /datum/reagent/consumable/nutriment/vitamin = 1, ) tastes = list("egg" = 1) - foodtypes = MEAT | BREAKFAST + foodtypes = MEAT | BREAKFAST | EGG food_flags = FOOD_FINGER_FOOD w_class = WEIGHT_CLASS_SMALL ant_attracting = FALSE @@ -251,7 +251,7 @@ GLOBAL_VAR_INIT(chicks_from_eggs, 0) icon = 'icons/obj/food/egg.dmi' icon_state = "eggsausage" food_reagents = list(/datum/reagent/consumable/nutriment/protein = 8, /datum/reagent/consumable/nutriment/vitamin = 2, /datum/reagent/consumable/nutriment = 4) - foodtypes = MEAT | FRIED | BREAKFAST + foodtypes = MEAT | FRIED | BREAKFAST | EGG tastes = list("egg" = 4, "meat" = 4) venue_value = FOOD_PRICE_NORMAL crafting_complexity = FOOD_COMPLEXITY_3 @@ -274,7 +274,7 @@ GLOBAL_VAR_INIT(chicks_from_eggs, 0) bite_consumption = 1 w_class = WEIGHT_CLASS_SMALL tastes = list("egg" = 1, "cheese" = 1) - foodtypes = MEAT | BREAKFAST | DAIRY + foodtypes = MEAT | BREAKFAST | DAIRY | EGG venue_value = FOOD_PRICE_CHEAP crafting_complexity = FOOD_COMPLEXITY_2 @@ -308,7 +308,7 @@ GLOBAL_VAR_INIT(chicks_from_eggs, 0) ) w_class = WEIGHT_CLASS_SMALL tastes = list("egg" = 1, "bacon" = 1, "bun" = 1) - foodtypes = MEAT | BREAKFAST | GRAIN + foodtypes = MEAT|BREAKFAST|GRAIN|FRIED|EGG venue_value = FOOD_PRICE_NORMAL crafting_complexity = FOOD_COMPLEXITY_3 @@ -323,7 +323,7 @@ GLOBAL_VAR_INIT(chicks_from_eggs, 0) /datum/reagent/consumable/nutriment/vitamin = 3, ) tastes = list("egg" = 1) - foodtypes = MEAT | VEGETABLES + foodtypes = MEAT|VEGETABLES|FRIED|EGG w_class = WEIGHT_CLASS_TINY crafting_complexity = FOOD_COMPLEXITY_3 @@ -338,5 +338,79 @@ GLOBAL_VAR_INIT(chicks_from_eggs, 0) /datum/reagent/consumable/nutriment/vitamin = 1, ) tastes = list("custard" = 1) - foodtypes = MEAT | VEGETABLES + foodtypes = MEAT | VEGETABLES | EGG + venue_value = FOOD_PRICE_NORMAL crafting_complexity = FOOD_COMPLEXITY_3 + +/* +/obj/item/food/spore_sack + name = "spore sack" + desc = "A spore sack. blobby and gooey!" + icon = 'icons/obj/food/egg.dmi' + icon_state = "spore_sack" + base_icon_state = "spore_sack" + inhand_icon_state = "egg" + food_reagents = list(/datum/reagent/consumable/eggyolk = 4, /datum/reagent/toxin/spore = 4, /datum/reagent/consumable/eggwhite = 1, /datum/reagent/consumable/nutriment/vitamin = 1) + tastes = list("sliminess" = 4, "blob" = 2) + foodtypes = MEAT | RAW | TOXIC | EGG + w_class = WEIGHT_CLASS_TINY + ant_attracting = FALSE + preserved_food = TRUE + +/obj/item/food/spore_sack/Initialize(mapload) + . = ..() + if(prob(50)) + icon_state = "[base_icon_state]2" + + AddElement(/datum/element/swabable, CELL_LINE_TABLE_BLOBSPORE, CELL_VIRUS_TABLE_GENERIC_MOB, 1, 5) + +/obj/item/food/spore_sack/interact_with_atom_secondary(atom/interacting_with, mob/living/user, list/modifiers) + if(!istype(interacting_with, /obj/machinery/griddle)) + return NONE + + var/obj/machinery/griddle/hit_griddle = interacting_with + if(length(hit_griddle.griddled_objects) >= hit_griddle.max_items) + interacting_with.balloon_alert(user, "no room!") + return ITEM_INTERACT_BLOCKING + var/atom/broken_egg = new /obj/item/food/rawegg/spore(interacting_with.loc) + if(LAZYACCESS(modifiers, ICON_X)) + broken_egg.pixel_x = clamp(text2num(LAZYACCESS(modifiers, ICON_X)) - 16, -(ICON_SIZE_X/2), ICON_SIZE_X/2) + if(LAZYACCESS(modifiers, ICON_Y)) + broken_egg.pixel_y = clamp(text2num(LAZYACCESS(modifiers, ICON_Y)) - 16, -(ICON_SIZE_Y/2), ICON_SIZE_Y/2) + playsound(user, 'sound/items/sheath.ogg', 40, TRUE) + reagents.trans_to(broken_egg, reagents.total_volume, copy_only = TRUE) + + hit_griddle.AddToGrill(broken_egg, user) + interacting_with.balloon_alert(user, "cracks [src] open") + + qdel(src) + return ITEM_INTERACT_BLOCKING + +/obj/item/food/spore_sack/independent + icon_state = "spore_sack_independent" + base_icon_state = "spore_sack_independent" + +/obj/item/food/friedegg/spore + name = "fried spore" + desc = "A fried blob spore. Would go well with a dab of cold sauce." + icon_state = "friedspore" + //superior healing and cyto reagents to compensate for rarity and mild poison effect. + food_reagents = list( + /datum/reagent/consumable/nutriment/peptides = 2, + /datum/reagent/consumable/nutriment/vitamin = 1, + ) + tastes = list("blob" = 4, "level 5 biohazard" = 2) + +/obj/item/food/rawegg/spore + name = "burst spore" + desc = "Is this the ant egg everyone is always talking about? Better fried." + icon_state = "burstspore" + tastes = list("sliminess" = 4, "blob" = 2) + +/obj/item/food/rawegg/spore/Initialize(mapload) + . = ..() + AddElement(/datum/element/swabable, CELL_LINE_TABLE_BLOBSPORE, CELL_VIRUS_TABLE_GENERIC_MOB, 1, 5) + +/obj/item/food/rawegg/spore/make_grillable() + AddComponent(/datum/component/grillable, /obj/item/food/friedegg/spore, rand(15 SECONDS, 25 SECONDS), TRUE, FALSE) +*/ diff --git a/code/game/objects/items/food/frozen.dm b/code/game/objects/items/food/frozen.dm index baa2a5d6e4d3..edd56509c1b4 100644 --- a/code/game/objects/items/food/frozen.dm +++ b/code/game/objects/items/food/frozen.dm @@ -24,7 +24,7 @@ /datum/reagent/consumable/ice = 4, ) tastes = list("ice cream" = 2, "berry" = 2) - foodtypes = FRUIT | DAIRY | SUGAR + foodtypes = GRAIN|FRUIT|DAIRY|SUGAR food_flags = FOOD_FINGER_FOOD crafting_complexity = FOOD_COMPLEXITY_3 @@ -41,7 +41,7 @@ /datum/reagent/consumable/nutriment/vitamin = 5, ) tastes = list("blue cherries" = 2, "ice cream" = 2) - foodtypes = FRUIT | DAIRY | SUGAR + foodtypes = GRAIN|FRUIT|DAIRY|SUGAR crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/spacefreezy/make_edible() @@ -60,7 +60,7 @@ /datum/reagent/consumable/nutriment/vitamin = 2, ) tastes = list("ice cream" = 1, "banana" = 1) - foodtypes = FRUIT | DAIRY | SUGAR + foodtypes = GRAIN|FRUIT|DAIRY|SUGAR crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/sundae/make_edible() @@ -79,7 +79,7 @@ /datum/reagent/consumable/nutriment/vitamin = 4, ) tastes = list("ice cream" = 1, "banana" = 1, "a bad joke" = 1) - foodtypes = FRUIT | DAIRY | SUGAR + foodtypes = GRAIN|FRUIT|DAIRY|SUGAR crafting_complexity = FOOD_COMPLEXITY_4 /obj/item/food/honkdae/make_edible() @@ -277,7 +277,7 @@ foodtypes = SUGAR /obj/item/food/snowcones/spacemountainwind - name = "Space Mountain Wind snowcone" + name = "space mountain wind snowcone" desc = "Space Mountain Wind drizzled over a snowball in a paper cup." icon_state = "mountainwind_sc" food_reagents = list( @@ -496,7 +496,7 @@ crafting_complexity = FOOD_COMPLEXITY_4 /obj/item/food/popsicle/licorice_creamsicle - name = "Void Bar™" + name = "\improper Void Bar™" desc = "A salty licorice ice cream. A salty frozen treat." food_reagents = list( /datum/reagent/consumable/nutriment = 4, @@ -523,12 +523,12 @@ /datum/reagent/consumable/sugar = 2, ) tastes = list("chopped hazelnuts", "waffle") - foodtypes = DAIRY | SUGAR + foodtypes = GRAIN|DAIRY|SUGAR venue_value = FOOD_PRICE_NORMAL crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/popsicle/meatsicle - name = "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, diff --git a/code/game/objects/items/food/lizard.dm b/code/game/objects/items/food/lizard.dm index 360c4a88e7ef..7b39c97fe2ef 100644 --- a/code/game/objects/items/food/lizard.dm +++ b/code/game/objects/items/food/lizard.dm @@ -13,7 +13,7 @@ /datum/reagent/blood = 3, ) tastes = list("meat" = 1, "black pudding" = 1) - foodtypes = MEAT + foodtypes = MEAT|RAW w_class = WEIGHT_CLASS_SMALL crafting_complexity = FOOD_COMPLEXITY_1 @@ -46,7 +46,7 @@ /datum/reagent/consumable/salt = 5, ) tastes = list("meat" = 1, "salt" = 1) - foodtypes = MEAT | GORE + foodtypes = MEAT|RAW|GORE w_class = WEIGHT_CLASS_SMALL crafting_complexity = FOOD_COMPLEXITY_1 @@ -69,7 +69,7 @@ crafting_complexity = FOOD_COMPLEXITY_2 /obj/item/food/headcheese/make_processable() - AddElement(/datum/element/processable, TOOL_KNIFE, /obj/item/food/headcheese_slice, 5, 3 SECONDS, table_required = TRUE, screentip_verb = "Slice") + AddElement(/datum/element/processable, TOOL_KNIFE, /obj/item/food/headcheese_slice, 5, 3 SECONDS, table_required = TRUE, screentip_verb = "Slice", sound_to_play = SFX_KNIFE_SLICE) /obj/item/food/headcheese_slice name = "headcheese slice" @@ -119,7 +119,7 @@ icon_state = "pate" food_reagents = list(/datum/reagent/consumable/nutriment/protein = 5) tastes = list("liver" = 1) - foodtypes = MEAT + foodtypes = MEAT|VEGETABLES w_class = WEIGHT_CLASS_SMALL crafting_complexity = FOOD_COMPLEXITY_2 @@ -162,7 +162,7 @@ /datum/reagent/consumable/garlic = 2, ) tastes = list("snails" = 1, "garlic" = 1, "oil" = 1) - foodtypes = MEAT | VEGETABLES + foodtypes = MEAT|VEGETABLES w_class = WEIGHT_CLASS_SMALL crafting_complexity = FOOD_COMPLEXITY_4 @@ -178,7 +178,7 @@ /datum/reagent/consumable/nutriment/fat/oil = 1, ) tastes = list("black pudding" = 1, "batter" = 1, "oil" = 1) - foodtypes = MEAT | FRIED + foodtypes = MEAT|NUTS|FRIED w_class = WEIGHT_CLASS_SMALL crafting_complexity = FOOD_COMPLEXITY_3 @@ -240,7 +240,7 @@ /datum/reagent/consumable/capsaicin = 1, ) tastes = list("fish" = 1, "acid" = 1, "onion" = 1, "heat" = 1) - foodtypes = SEAFOOD | VEGETABLES + foodtypes = VEGETABLES|SEAFOOD w_class = WEIGHT_CLASS_SMALL crafting_complexity = FOOD_COMPLEXITY_3 @@ -255,7 +255,7 @@ /datum/reagent/consumable/capsaicin = 1, ) tastes = list("meat" = 1, "sweet" = 1, "heat" = 1) - foodtypes = GORE | MEAT | BUGS + foodtypes = MEAT|VEGETABLES|BUGS|GORE w_class = WEIGHT_CLASS_SMALL crafting_complexity = FOOD_COMPLEXITY_3 @@ -299,7 +299,7 @@ /datum/reagent/consumable/nutriment = 2, ) tastes = list("fish" = 2, "potatoes" = 1, "carrots" = 1) - foodtypes = SEAFOOD + foodtypes = VEGETABLES|SEAFOOD w_class = WEIGHT_CLASS_SMALL crafting_complexity = FOOD_COMPLEXITY_4 @@ -333,6 +333,9 @@ foodtypes = VEGETABLES | NUTS crafting_complexity = FOOD_COMPLEXITY_2 +/obj/item/food/spaghetti/nizaya/egg + foodtypes = parent_type::foodtypes | MEAT + /obj/item/food/spaghetti/snail_nizaya name = "desert snail nizaya" desc = "A high class pasta dish from Tizira's vineyard region of Valyngia. Traditionally made with only the finest Tiziran wine... but the human swill will do, in a pinch." @@ -371,7 +374,7 @@ /datum/reagent/consumable/nutriment/vitamin = 2, ) tastes = list("peppery sweet" = 1, "veggies" = 1, "gnocchi" = 1) - foodtypes = VEGETABLES | SUGAR | NUTS + foodtypes = VEGETABLES|NUTS|SUGAR crafting_complexity = FOOD_COMPLEXITY_4 /obj/item/food/spaghetti/mushroom_nizaya @@ -384,7 +387,7 @@ /datum/reagent/consumable/nutriment/vitamin = 10, ) tastes = list("savouriness" = 1, "nuttiness" = 1, "gnocchi" = 1) - foodtypes = VEGETABLES + foodtypes = VEGETABLES|NUTS crafting_complexity = FOOD_COMPLEXITY_4 //Dough Dishes @@ -399,12 +402,20 @@ tastes = list("potato" = 1, "earthy heat" = 1) foodtypes = VEGETABLES | NUTS crafting_complexity = FOOD_COMPLEXITY_1 + var/bread_type = /obj/item/food/bread/root + var/flat_type = /obj/item/food/flatrootdough /obj/item/food/rootdough/make_bakeable() - AddComponent(/datum/component/bakeable, /obj/item/food/bread/root, rand(15 SECONDS, 25 SECONDS), TRUE, TRUE) + AddComponent(/datum/component/bakeable, bread_type, rand(15 SECONDS, 25 SECONDS), TRUE, TRUE) /obj/item/food/rootdough/make_processable() - AddElement(/datum/element/processable, TOOL_ROLLINGPIN, /obj/item/food/flatrootdough, 1, 3 SECONDS, table_required = TRUE, screentip_verb = "Flatten") + AddElement(/datum/element/processable, TOOL_ROLLINGPIN, flat_type, 1, 3 SECONDS, table_required = TRUE, screentip_verb = "Flatten", sound_to_play = SFX_ROLLING_PIN_ROLLING) + +/obj/item/food/rootdough/egg + desc = "A root based dough, made with nuts, tubers and eggs. Used in a wide range of Tiziran cooking." + foodtypes = parent_type::foodtypes | MEAT + bread_type = /obj/item/food/bread/root/egg + flat_type = /obj/item/food/flatrootdough/egg /obj/item/food/flatrootdough name = "flat rootdough" @@ -415,12 +426,19 @@ tastes = list("potato" = 1, "earthy heat" = 1) foodtypes = VEGETABLES | NUTS crafting_complexity = FOOD_COMPLEXITY_1 + var/process_type = /obj/item/food/rootdoughslice + var/grill_type = /obj/item/food/root_flatbread /obj/item/food/flatrootdough/make_processable() - AddElement(/datum/element/processable, TOOL_KNIFE, /obj/item/food/rootdoughslice, 3, 3 SECONDS, table_required = TRUE, screentip_verb = "Slice") + AddElement(/datum/element/processable, TOOL_KNIFE, process_type, 3, 3 SECONDS, table_required = TRUE, screentip_verb = "Slice", sound_to_play = SFX_KNIFE_SLICE) /obj/item/food/flatrootdough/make_grillable() - AddComponent(/datum/component/grillable, /obj/item/food/root_flatbread, rand(15 SECONDS, 25 SECONDS), TRUE, TRUE) + AddComponent(/datum/component/grillable, grill_type, rand(15 SECONDS, 25 SECONDS), TRUE, TRUE) + +/obj/item/food/flatrootdough/egg + foodtypes = parent_type::foodtypes | MEAT + process_type = /obj/item/food/rootdoughslice/egg + grill_type = /obj/item/food/root_flatbread/egg /obj/item/food/rootdoughslice name = "rootdough ball" @@ -432,13 +450,22 @@ tastes = list("potato" = 1, "earthy heat" = 1) foodtypes = VEGETABLES | NUTS crafting_complexity = FOOD_COMPLEXITY_1 + var/process_type = /obj/item/food/spaghetti/nizaya + var/bake_type = /obj/item/food/rootroll + +/obj/item/food/rootdoughslice/egg + foodtypes = parent_type::foodtypes | MEAT /obj/item/food/rootdoughslice/make_processable() - AddElement(/datum/element/processable, TOOL_KNIFE, /obj/item/food/spaghetti/nizaya, 1, 3 SECONDS, table_required = TRUE, screentip_verb = "Slice") + AddElement(/datum/element/processable, TOOL_KNIFE, /obj/item/food/spaghetti/nizaya, 1, 3 SECONDS, table_required = TRUE, screentip_verb = "Slice", sound_to_play = SFX_KNIFE_SLICE) /obj/item/food/rootdoughslice/make_bakeable() AddComponent(/datum/component/bakeable, /obj/item/food/rootroll, rand(15 SECONDS, 25 SECONDS), TRUE, TRUE) +/obj/item/food/rootdoughslice/egg + process_type = /obj/item/food/spaghetti/nizaya/egg + bake_type = /obj/item/food/rootroll/egg + /obj/item/food/root_flatbread name = "root flatbread" desc = "A plain grilled root flatbread. Can be topped with a variety of foods that lizards like to eat." @@ -449,6 +476,9 @@ foodtypes = VEGETABLES | NUTS crafting_complexity = FOOD_COMPLEXITY_2 +/obj/item/food/root_flatbread/egg + foodtypes = parent_type::foodtypes | MEAT + /obj/item/food/rootroll name = "rootroll" desc = "A dense, chewy roll, made from roots. A nice companion to a bowl of soup." @@ -460,6 +490,9 @@ foodtypes = VEGETABLES | NUTS crafting_complexity = FOOD_COMPLEXITY_2 +/obj/item/food/rootroll/egg + foodtypes = parent_type::foodtypes | MEAT + //Bread Dishes /obj/item/food/bread/root @@ -478,6 +511,10 @@ . = ..() AddComponent(/datum/component/customizable_reagent_holder, /obj/item/food/bread/empty, CUSTOM_INGREDIENT_ICON_FILL, max_ingredients = 8) +/obj/item/food/bread/root/egg + foodtypes = parent_type::foodtypes | MEAT + slice_type = /obj/item/food/breadslice/root/egg + /obj/item/food/breadslice/root name = "rootbread slice" desc = "A slice of dense, chewy rootbread." @@ -492,6 +529,9 @@ . = ..() AddComponent(/datum/component/customizable_reagent_holder, null, CUSTOM_INGREDIENT_ICON_STACK) +/obj/item/food/breadslice/root/egg + foodtypes = parent_type::foodtypes | MEAT + //Pizza Dishes /obj/item/food/pizza/flatbread icon = 'icons/obj/food/lizard.dmi' @@ -550,7 +590,7 @@ /datum/reagent/consumable/nutriment/protein = 10, ) tastes = list("bread" = 1, "meat" = 1) - foodtypes = MEAT | NUTS | RAW | GORE + foodtypes = MEAT | VEGETABLES | RAW | NUTS crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/pizza/flatbread/stinging @@ -563,7 +603,7 @@ /datum/reagent/consumable/honey = 2, ) tastes = list("bread" = 1, "sweetness" = 1, "stinging" = 1, "slime" = 1) - foodtypes = BUGS | NUTS | SEAFOOD | GORE + foodtypes = MEAT|VEGETABLES|NUTS|SEAFOOD|BUGS|GORE crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/pizza/flatbread/zmorgast // Name is based off of the Swedish dish Smörgåstårta @@ -576,7 +616,7 @@ /datum/reagent/consumable/nutriment/vitamin = 6, ) tastes = list("bread" = 1, "liver" = 1, "family" = 1) - foodtypes = VEGETABLES | NUTS | MEAT + foodtypes = VEGETABLES | NUTS | MEAT | EGG crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/pizza/flatbread/fish @@ -589,7 +629,7 @@ /datum/reagent/consumable/bbqsauce = 2, ) tastes = list("bread" = 1, "fish" = 1) - foodtypes = SEAFOOD | NUTS + foodtypes = VEGETABLES|NUTS|SEAFOOD crafting_complexity = FOOD_COMPLEXITY_4 /obj/item/food/pizza/flatbread/mushroom @@ -657,7 +697,7 @@ /datum/reagent/consumable/nutriment/vitamin = 6, ) tastes = list("eggs" = 1, "greens" = 1, "blood" = 1) - foodtypes = MEAT | BREAKFAST | GORE + foodtypes = MEAT | BREAKFAST | GORE | EGG w_class = WEIGHT_CLASS_SMALL crafting_complexity = FOOD_COMPLEXITY_2 @@ -673,7 +713,7 @@ /datum/reagent/consumable/capsaicin = 2, ) tastes = list("eggs" = 1, "tomato" = 1, "heat" = 1) - foodtypes = VEGETABLES | MEAT | BREAKFAST + foodtypes = VEGETABLES | MEAT | BREAKFAST | EGG w_class = WEIGHT_CLASS_SMALL crafting_complexity = FOOD_COMPLEXITY_3 @@ -825,7 +865,7 @@ /datum/reagent/consumable/nutriment/vitamin = 2, ) tastes = list("peanut butter" = 1, "jelly" = 1, "rootbread" = 2) - foodtypes = FRUIT | NUTS + foodtypes = FRUIT|VEGETABLES|NUTS crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/rootbread_peanut_butter_banana @@ -840,7 +880,7 @@ /datum/reagent/consumable/nutriment/vitamin = 2, ) tastes = list("peanut butter" = 1, "banana" = 1, "rootbread" = 2) - foodtypes = FRUIT | NUTS + foodtypes = FRUIT|VEGETABLES|NUTS crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/burger/plain/korta @@ -853,7 +893,7 @@ /datum/reagent/consumable/nutriment/protein = 6, /datum/reagent/consumable/nutriment/vitamin = 1, ) - foodtypes = NUTS | MEAT + foodtypes = MEAT|VEGETABLES|NUTS crafting_complexity = FOOD_COMPLEXITY_3 //Gotta make the dough, +1 /obj/item/food/burger/rat/korta @@ -867,7 +907,7 @@ /datum/reagent/consumable/nutriment/vitamin = 2, ) tastes = list("dead rat" = 4, "bun" = 2) - foodtypes = NUTS | MEAT | GORE + foodtypes = NUTS | MEAT | GORE | VEGETABLES | RAW crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/burger/rootguffin @@ -882,7 +922,7 @@ /datum/reagent/consumable/nutriment/vitamin = 1, ) tastes = list("muffin" = 2, "bacon" = 3) - foodtypes = NUTS | MEAT | BREAKFAST + foodtypes = NUTS | MEAT | BREAKFAST | VEGETABLES | FRIED | EGG venue_value = FOOD_PRICE_NORMAL crafting_complexity = FOOD_COMPLEXITY_4 @@ -898,7 +938,7 @@ /datum/reagent/consumable/bbqsauce = 1, ) tastes = list("bun" = 2, "pork patty" = 4) - foodtypes = NUTS | MEAT + foodtypes = NUTS | MEAT | VEGETABLES | SUGAR venue_value = FOOD_PRICE_NORMAL crafting_complexity = FOOD_COMPLEXITY_4 @@ -915,12 +955,12 @@ /datum/reagent/consumable/nutriment/fat/oil = 2, ) tastes = list("bun" = 2, "chicken" = 4, "God's covenant" = 1) - foodtypes = NUTS | MEAT | FRIED + foodtypes = NUTS | MEAT | VEGETABLES venue_value = FOOD_PRICE_NORMAL crafting_complexity = FOOD_COMPLEXITY_4 /obj/item/food/burger/rootfish - name = "Fish rootwich" + name = "fish rootwich" desc = "Lightly battered fish, sandwiched in a rootroll." icon_state = "rootfish" icon = 'icons/obj/food/lizard.dmi' @@ -930,7 +970,7 @@ /datum/reagent/consumable/nutriment/vitamin = 4, ) tastes = list("bun" = 4, "fish" = 4) - foodtypes = NUTS | SEAFOOD + foodtypes = VEGETABLES | NUTS | SEAFOOD venue_value = FOOD_PRICE_EXOTIC crafting_complexity = FOOD_COMPLEXITY_3 diff --git a/code/game/objects/items/food/martian.dm b/code/game/objects/items/food/martian.dm index 7ceaf1878176..6c3b5544e82f 100644 --- a/code/game/objects/items/food/martian.dm +++ b/code/game/objects/items/food/martian.dm @@ -107,7 +107,7 @@ /datum/reagent/consumable/capsaicin = 2 ) tastes = list("chilli heat" = 1, "umami" = 1) - foodtypes = SEAFOOD | VEGETABLES + foodtypes = VEGETABLES|SEAFOOD w_class = WEIGHT_CLASS_SMALL crafting_complexity = FOOD_COMPLEXITY_2 @@ -122,7 +122,7 @@ /datum/reagent/consumable/nutriment = 2 ) tastes = list("meat" = 1, "breadcrumbs" = 1) - foodtypes = MEAT | GRAIN + foodtypes = MEAT|FRIED|GRAIN w_class = WEIGHT_CLASS_SMALL crafting_complexity = FOOD_COMPLEXITY_2 @@ -193,7 +193,7 @@ food_reagents = list( /datum/reagent/consumable/nutriment = 3 ) - foodtypes = GRAIN | VEGETABLES + foodtypes = GRAIN crafting_complexity = FOOD_COMPLEXITY_3 // Fried Rice @@ -209,7 +209,7 @@ /datum/reagent/consumable/nutriment/vitamin = 10, ) tastes = list("rice" = 1, "meat" = 1, "pineapple" = 1, "veggies" = 1) - foodtypes = MEAT | GRAIN | PINEAPPLE | FRUIT | VEGETABLES + foodtypes = MEAT | GRAIN | PINEAPPLE | FRUIT | VEGETABLES | EGG w_class = WEIGHT_CLASS_SMALL crafting_complexity = FOOD_COMPLEXITY_3 @@ -271,7 +271,7 @@ /datum/reagent/consumable/nutriment/vitamin = 10, ) tastes = list("rice" = 1, "cheese" = 1, "meatball" = 1, "olives" = 1, "herbs" = 1) - foodtypes = MEAT | GRAIN | VEGETABLES | DAIRY + foodtypes = MEAT | GRAIN | VEGETABLES | DAIRY | FRUIT w_class = WEIGHT_CLASS_SMALL crafting_complexity = FOOD_COMPLEXITY_3 @@ -285,7 +285,7 @@ /datum/reagent/consumable/nutriment/protein = 2, ) tastes = list("rice" = 1, "egg" = 1, "soy sauce" = 1) - foodtypes = MEAT | GRAIN + foodtypes = MEAT | GRAIN | EGG w_class = WEIGHT_CLASS_SMALL crafting_complexity = FOOD_COMPLEXITY_2 @@ -305,7 +305,7 @@ /datum/reagent/consumable/capsaicin = 2, ) tastes = list("rice" = 1, "spicy cabbage" = 1, "chilli heat" = 1, "egg" = 1, "meat" = 1) - foodtypes = MEAT | VEGETABLES | GRAIN + foodtypes = MEAT | VEGETABLES | GRAIN | EGG w_class = WEIGHT_CLASS_SMALL crafting_complexity = FOOD_COMPLEXITY_3 @@ -340,7 +340,7 @@ /datum/reagent/consumable/nutriment = 8, ) tastes = list("fried noodles" = 1, "meat" = 1, "breadcrumbs" = 1, "veggies" = 1) - foodtypes = MEAT | VEGETABLES | GRAIN + foodtypes = MEAT|VEGETABLES|GRAIN|FRIED w_class = WEIGHT_CLASS_SMALL crafting_complexity = FOOD_COMPLEXITY_3 @@ -355,7 +355,7 @@ /datum/reagent/consumable/nutriment = 8, ) tastes = list("noodles" = 1, "meat" = 1, "nuts" = 1, "onion" = 1, "egg" = 1) - foodtypes = GRAIN | NUTS | MEAT | VEGETABLES + foodtypes = GRAIN | NUTS | MEAT | VEGETABLES | EGG w_class = WEIGHT_CLASS_SMALL crafting_complexity = FOOD_COMPLEXITY_3 @@ -391,7 +391,7 @@ /datum/reagent/medicine/omnizine = 5, ) tastes = list("masterful curry" = 1, "rice" = 1) - foodtypes = GRAIN | MEAT | VEGETABLES + foodtypes = MEAT|VEGETABLES|GRAIN|FRUIT|SUGAR w_class = WEIGHT_CLASS_SMALL crafting_complexity = FOOD_COMPLEXITY_5 //Extensive and secretly guarded. Was previously 2 and I thought it was pathetic. @@ -421,7 +421,7 @@ /datum/reagent/consumable/nutriment/protein = 6, ) tastes = list("bun" = 1, "fried pork" = 2, "egg" = 1, "cheese" = 1, "ketchup" = 1) - foodtypes = MEAT | GRAIN | DAIRY | VEGETABLES + foodtypes = MEAT|GRAIN|DAIRY|FRIED|EGG w_class = WEIGHT_CLASS_SMALL crafting_complexity = FOOD_COMPLEXITY_3 @@ -437,7 +437,7 @@ /datum/reagent/consumable/capsaicin = 1, ) tastes = list("meat" = 1, "bacon" = 1, "kimchi" = 1, "salad" = 1, "rice bread" = 1) - foodtypes = MEAT | GRAIN | VEGETABLES + foodtypes = MEAT|VEGETABLES|GRAIN|FRIED w_class = WEIGHT_CLASS_SMALL crafting_complexity = FOOD_COMPLEXITY_3 @@ -468,7 +468,7 @@ /datum/reagent/consumable/capsaicin = 1, ) tastes = list("egg" = 1, "meat" = 1, "kimchi" = 1, "mozzarella" = 1) - foodtypes = MEAT | DAIRY | VEGETABLES | GRAIN + foodtypes = MEAT|VEGETABLES|GRAIN|DAIRY|FRIED|EGG w_class = WEIGHT_CLASS_SMALL crafting_complexity = FOOD_COMPLEXITY_3 @@ -483,7 +483,7 @@ /datum/reagent/consumable/nutriment/vitamin = 4, ) tastes = list("egg" = 1, "toast" = 1, "pork" = 1, "pineapple" = 1, "cheese" = 1) - foodtypes = MEAT | DAIRY | VEGETABLES | GRAIN | PINEAPPLE | BREAKFAST + foodtypes = MEAT|GRAIN|FRUIT|DAIRY|FRIED|PINEAPPLE|BREAKFAST|EGG w_class = WEIGHT_CLASS_SMALL crafting_complexity = FOOD_COMPLEXITY_3 @@ -498,7 +498,7 @@ /datum/reagent/consumable/nutriment/vitamin = 3, ) tastes = list("egg" = 1, "toast" = 1, "bacon" = 1, "pickles" = 1, "cheese" = 1) - foodtypes = MEAT | DAIRY | VEGETABLES | GRAIN | BREAKFAST + foodtypes = MEAT | DAIRY | VEGETABLES | GRAIN | BREAKFAST | EGG w_class = WEIGHT_CLASS_SMALL crafting_complexity = FOOD_COMPLEXITY_3 @@ -544,7 +544,7 @@ /datum/reagent/consumable/nutriment/fat/oil = 2, ) tastes = list("taco meat" = 1, "batter" = 1, "corn" = 1, "cheese" = 1) - foodtypes = MEAT | GRAIN | FRIED | VEGETABLES | DAIRY + foodtypes = MEAT|GRAIN|FRIED|VEGETABLES|DAIRY|SEAFOOD w_class = WEIGHT_CLASS_SMALL crafting_complexity = FOOD_COMPLEXITY_4 //Batter AND Cargo ingredients. @@ -558,7 +558,7 @@ /datum/reagent/consumable/nutriment/vitamin = 6, ) tastes = list("batter" = 1, "cabbage" = 1, "onion" = 1, "worcestershire sauce" = 1) - foodtypes = SEAFOOD | GRAIN | FRIED | VEGETABLES + foodtypes = GRAIN|FRIED|VEGETABLES|SEAFOOD w_class = WEIGHT_CLASS_SMALL crafting_complexity = FOOD_COMPLEXITY_4 //Cargo stuff and batter. @@ -594,7 +594,7 @@ /datum/reagent/consumable/worcestershire = 2, ) tastes = list("sausage" = 1, "spicy sauce" = 1, "fries" = 1) - foodtypes = MEAT | VEGETABLES + foodtypes = MEAT|VEGETABLES|FRIED w_class = WEIGHT_CLASS_SMALL crafting_complexity = FOOD_COMPLEXITY_4 //Cargo ingredients and a few steps. @@ -609,7 +609,7 @@ /datum/reagent/consumable/peanut_butter = 1, ) tastes = list("blood" = 1, "nuts" = 1, "herbs" = 1) - foodtypes = MEAT | NUTS | GRAIN + foodtypes = MEAT|FRIED|NUTS|GRAIN w_class = WEIGHT_CLASS_SMALL crafting_complexity = FOOD_COMPLEXITY_3 @@ -638,7 +638,7 @@ /datum/reagent/consumable/nutriment/protein = 4, ) tastes = list("curry" = 1, "egg" = 1, "pastry" = 1) - foodtypes = GRAIN | MEAT | VEGETABLES | FRIED + foodtypes = GRAIN | MEAT | VEGETABLES | FRIED | EGG w_class = WEIGHT_CLASS_SMALL crafting_complexity = FOOD_COMPLEXITY_3 @@ -653,7 +653,7 @@ /datum/reagent/consumable/nutriment = 10, ) tastes = list("bread" = 1, "egg" = 1, "meat" = 1, "onion" = 1) - foodtypes = GRAIN | MEAT | VEGETABLES | FRIED | BREAKFAST + foodtypes = MEAT|VEGETABLES|GRAIN|BREAKFAST|EGG w_class = WEIGHT_CLASS_SMALL crafting_complexity = FOOD_COMPLEXITY_4 @@ -684,7 +684,7 @@ /datum/reagent/consumable/nutriment/vitamin = 8, ) tastes = list("bread" = 1, "spicy fries" = 1, "mayonnaise" = 1, "curry" = 1, "meat" = 1) - foodtypes = MEAT | GRAIN | VEGETABLES | FRIED + foodtypes = MEAT|VEGETABLES|GRAIN|FRIED w_class = WEIGHT_CLASS_SMALL crafting_complexity = FOOD_COMPLEXITY_4 @@ -698,7 +698,7 @@ /datum/reagent/consumable/nutriment/protein = 8, ) tastes = list("rice" = 1, "burger" = 1, "gravy" = 1, "egg" = 1) - foodtypes = MEAT | GRAIN | VEGETABLES + foodtypes = MEAT|VEGETABLES|GRAIN|FRIED|EGG w_class = WEIGHT_CLASS_SMALL crafting_complexity = FOOD_COMPLEXITY_2 @@ -729,7 +729,7 @@ /datum/reagent/consumable/nutriment/vitamin = 6, ) tastes = list("sausage" = 1, "pineapple" = 1, "onion" = 1, "teriyaki" = 1) - foodtypes = MEAT | VEGETABLES | FRUIT | PINEAPPLE + foodtypes = MEAT|VEGETABLES|GRAIN|FRUIT|PINEAPPLE w_class = WEIGHT_CLASS_SMALL crafting_complexity = FOOD_COMPLEXITY_4 custom_price = PAYCHECK_CREW * 1.2 @@ -760,7 +760,7 @@ /datum/reagent/consumable/nutriment/vitamin = 2, /datum/reagent/consumable/char = 2) tastes = list("octopus" = 1) - foodtypes = SEAFOOD | FRIED + foodtypes = SEAFOOD w_class = WEIGHT_CLASS_SMALL crafting_complexity = FOOD_COMPLEXITY_3 @@ -774,7 +774,7 @@ /datum/reagent/consumable/nutriment/protein = 6, ) tastes = list("steak" = 1, "potato" = 1) - foodtypes = MEAT | VEGETABLES | FRIED + foodtypes = MEAT|VEGETABLES|GRAIN|DAIRY|FRIED w_class = WEIGHT_CLASS_SMALL crafting_complexity = FOOD_COMPLEXITY_3 @@ -790,7 +790,7 @@ /datum/reagent/consumable/garlic = 1, ) tastes = list("ham" = 1, "garlic rice" = 1, "egg" = 1) - foodtypes = MEAT | GRAIN | VEGETABLES | BREAKFAST + foodtypes = MEAT|GRAIN|FRIED|BREAKFAST|VEGETABLES|EGG w_class = WEIGHT_CLASS_SMALL crafting_complexity = FOOD_COMPLEXITY_3 @@ -805,7 +805,7 @@ /datum/reagent/consumable/nutriment = 3, ) tastes = list("ham" = 1, "onion" = 1, "pepper" = 1, "potato" = 1) - foodtypes = MEAT | VEGETABLES | BREAKFAST + foodtypes = MEAT | VEGETABLES | BREAKFAST | EGG w_class = WEIGHT_CLASS_SMALL crafting_complexity = FOOD_COMPLEXITY_3 @@ -836,7 +836,7 @@ /datum/reagent/consumable/nutriment/vitamin = 2, ) tastes = list("chicken" = 1, "coconut" = 1, "curry" = 1) - foodtypes = MEAT | VEGETABLES | FRUIT + foodtypes = MEAT|GRAIN|FRUIT w_class = WEIGHT_CLASS_SMALL crafting_complexity = FOOD_COMPLEXITY_3 @@ -896,13 +896,13 @@ /datum/reagent/consumable/nutriment/protein = 8, ) tastes = list("curry" = 1, "meat" = 1, "breadcrumbs" = 1, "rice" = 1) - foodtypes = MEAT | VEGETABLES | GRAIN + foodtypes = MEAT|GRAIN|FRIED w_class = WEIGHT_CLASS_SMALL crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/salad/beef_bowl name = "beef bowl" - desc = "A tasty mix of stewed beef and onion, served over rice. Typical toppings include pickled ginger, chilli powder, and fried eggs." + desc = "A tasty mix of stewed beef, onion and dashi, served over rice. Typical toppings include pickled ginger, chilli powder, and fried eggs." icon = 'icons/obj/food/martian.dmi' icon_state = "beef_bowl" food_reagents = list( @@ -911,7 +911,7 @@ /datum/reagent/consumable/nutriment/vitamin = 2, ) tastes = list("beef" = 25, "onion" = 25, "chili heat" = 15, "rice" = 34, "soul" = 1) //I pour my soul into this bowl - foodtypes = MEAT | VEGETABLES | GRAIN + foodtypes = MEAT|VEGETABLES|GRAIN|SEAFOOD w_class = WEIGHT_CLASS_SMALL crafting_complexity = FOOD_COMPLEXITY_3 @@ -928,7 +928,7 @@ /datum/reagent/consumable/salt = 2, ) tastes = list("seafood" = 1, "rice" = 1, "garlic" = 1, "ginger" = 1, "numbing heat" = 1, "salt" = 1) - foodtypes = SEAFOOD | VEGETABLES | GRAIN + foodtypes = VEGETABLES|GRAIN|SEAFOOD w_class = WEIGHT_CLASS_SMALL crafting_complexity = FOOD_COMPLEXITY_4 //A few Cargo ingredients @@ -943,7 +943,7 @@ /datum/reagent/consumable/nutriment/vitamin = 2, ) tastes = list("seafood" = 1, "rice" = 1, "egg" = 1, "onion" = 1) - foodtypes = SEAFOOD | MEAT | VEGETABLES | GRAIN + foodtypes = MEAT|VEGETABLES|GRAIN|SEAFOOD|EGG w_class = WEIGHT_CLASS_SMALL crafting_complexity = FOOD_COMPLEXITY_3 @@ -958,7 +958,7 @@ /datum/reagent/toxin/slimejelly = 4, ) tastes = list("grit" = 1, "slime" = 1, "gristle" = 1, "rice" = 1, "Mystery Food X" = 1) - foodtypes = GROSS | GRAIN | TOXIC + foodtypes = VEGETABLES|GRAIN|FRUIT|SEAFOOD|GROSS|TOXIC w_class = WEIGHT_CLASS_SMALL crafting_complexity = FOOD_COMPLEXITY_3 @@ -976,7 +976,7 @@ /datum/reagent/consumable/garlic = 1, ) tastes = list("yoghurt" = 1, "garlic" = 1, "lemon" = 1, "egg" = 1, "chilli heat" = 1) - foodtypes = DAIRY | VEGETABLES | MEAT | BREAKFAST + foodtypes = MEAT|VEGETABLES|DAIRY|FRIED|BREAKFAST|EGG w_class = WEIGHT_CLASS_SMALL crafting_complexity = FOOD_COMPLEXITY_3 @@ -992,7 +992,7 @@ /datum/reagent/consumable/orangejuice = 4, ) tastes = list("meat" = 1, "crepes" = 1, "orange" = 1) - foodtypes = MEAT | DAIRY | VEGETABLES | FRUIT + foodtypes = MEAT | GRAIN | FRUIT | SUGAR w_class = WEIGHT_CLASS_SMALL crafting_complexity = FOOD_COMPLEXITY_3 @@ -1007,7 +1007,7 @@ /datum/reagent/consumable/nutriment/vitamin = 15 ) tastes = list("winter spices" = 2, "ambrosia vulgaris" = 2, "cake" = 5) - foodtypes = GRAIN | SUGAR | DAIRY + foodtypes = VEGETABLES|GRAIN|DAIRY|SUGAR crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/cake/spekkoek/make_processable() @@ -1019,7 +1019,7 @@ icon = 'icons/obj/food/martian.dmi' icon_state = "spekkoek_slice" tastes = list("winter spices" = 2, "ambrosia vulgaris" = 2, "cake" = 5) - foodtypes = GRAIN | SUGAR | DAIRY + foodtypes = VEGETABLES|GRAIN|DAIRY|SUGAR crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/salad/pineapple_foster @@ -1035,7 +1035,7 @@ /datum/reagent/consumable/milk = 4 ) tastes = list("pineapple" = 1, "vanilla" = 1, "caramel" = 1, "ice cream" = 1) - foodtypes = FRUIT | DAIRY | PINEAPPLE + foodtypes = GRAIN|FRUIT|DAIRY|SUGAR|PINEAPPLE w_class = WEIGHT_CLASS_SMALL crafting_complexity = FOOD_COMPLEXITY_3 @@ -1050,7 +1050,7 @@ /datum/reagent/consumable/sugar = 4, ) tastes = list("custard" = 1, "vanilla" = 1, "sweet pastry" = 1) - foodtypes = DAIRY | GRAIN + foodtypes = GRAIN|FRUIT|DAIRY|EGG w_class = WEIGHT_CLASS_SMALL crafting_complexity = FOOD_COMPLEXITY_3 @@ -1079,7 +1079,7 @@ /datum/reagent/consumable/sugar = 1, ) tastes = list("banana" = 1, "batter" = 1) - foodtypes = GRAIN | FRUIT | FRIED + foodtypes = GRAIN|FRUIT|FRIED|SEAFOOD w_class = WEIGHT_CLASS_SMALL crafting_complexity = FOOD_COMPLEXITY_3 //Fried goodness, oil scawy. @@ -1094,7 +1094,7 @@ /datum/reagent/consumable/sugar = 1, ) tastes = list("pineapple" = 1, "batter" = 1) - foodtypes = GRAIN | FRUIT | FRIED | PINEAPPLE + foodtypes = GRAIN|FRUIT|FRIED|PINEAPPLE|SEAFOOD w_class = WEIGHT_CLASS_SMALL crafting_complexity = FOOD_COMPLEXITY_3 @@ -1142,7 +1142,7 @@ /datum/reagent/consumable/nutriment/vitamin = 2, ) tastes = list("cold pineapple" = 1, "chocolate" = 1) - foodtypes = SUGAR | PINEAPPLE + foodtypes = SUGAR|FRUIT|PINEAPPLE crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/popsicle/sea_salt @@ -1171,7 +1171,7 @@ /datum/reagent/consumable/berryjuice = 4 ) tastes = list("berry" = 1, "tofu" = 1) - foodtypes = FRUIT | VEGETABLES + foodtypes = FRUIT|SUGAR|VEGETABLES crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/popsicle/topsicle/banana @@ -1194,6 +1194,7 @@ /datum/reagent/consumable/sugar = 6, /datum/reagent/consumable/pineapplejuice = 4 ) + foodtypes = FRUIT|SUGAR|VEGETABLES|PINEAPPLE tastes = list("pineapple" = 1, "tofu" = 1) // Ballpark Food @@ -1208,7 +1209,7 @@ /datum/reagent/consumable/nutriment = 6 ) tastes = list("sausage" = 1, "relish" = 1, "onion" = 1, "fruity salsa" = 1) - foodtypes = FRUIT | MEAT | PINEAPPLE | VEGETABLES | GRAIN + foodtypes = MEAT|VEGETABLES|GRAIN|FRUIT|PINEAPPLE|SEAFOOD w_class = WEIGHT_CLASS_SMALL crafting_complexity = FOOD_COMPLEXITY_4 //Uses Sambal custom_price = PAYCHECK_CREW * 2 @@ -1224,7 +1225,7 @@ /datum/reagent/consumable/capsaicin = 1, ) tastes = list("frickles" = 1) - foodtypes = VEGETABLES | GRAIN + foodtypes = VEGETABLES|GRAIN|FRIED|SEAFOOD w_class = WEIGHT_CLASS_SMALL crafting_complexity = FOOD_COMPLEXITY_3 //batter and cargo stuff. diff --git a/code/game/objects/items/food/meatdish.dm b/code/game/objects/items/food/meatdish.dm index b3d032d9b3ff..9773ebecb680 100644 --- a/code/game/objects/items/food/meatdish.dm +++ b/code/game/objects/items/food/meatdish.dm @@ -16,7 +16,7 @@ /datum/reagent/consumable/nutriment/vitamin = 4, ) tastes = list("fish" = 4, "batter" = 1, "hot peppers" = 1) - foodtypes = SEAFOOD | FRIED + foodtypes = VEGETABLES|GRAIN|SEAFOOD|FRIED w_class = WEIGHT_CLASS_SMALL crafting_complexity = FOOD_COMPLEXITY_2 @@ -170,7 +170,7 @@ ) bite_consumption = 1 tastes = list("fish" = 1, "breadcrumbs" = 1) - foodtypes = SEAFOOD | FRIED + foodtypes = GRAIN|SEAFOOD|FRIED w_class = WEIGHT_CLASS_SMALL venue_value = FOOD_PRICE_EXOTIC crafting_complexity = FOOD_COMPLEXITY_2 @@ -213,7 +213,7 @@ /datum/reagent/consumable/nutriment/vitamin = 4, ) tastes = list("boiled rice" = 4, "carrots" = 2, "potato" = 2) - foodtypes = VEGETABLES + foodtypes = VEGETABLES|GRAIN w_class = WEIGHT_CLASS_SMALL crafting_complexity = FOOD_COMPLEXITY_3 @@ -229,7 +229,7 @@ /datum/reagent/consumable/nutriment/vitamin = 1, ) tastes = list("boiled rice" = 4, "carrots" = 2, "potato" = 2) - foodtypes = VEGETABLES + foodtypes = VEGETABLES|GRAIN w_class = WEIGHT_CLASS_SMALL crafting_complexity = FOOD_COMPLEXITY_3 @@ -244,7 +244,7 @@ /datum/reagent/consumable/nutriment/vitamin = 4, ) tastes = list("boiled rice" = 4, "fish" = 2, "spicyness" = 2) - foodtypes = VEGETABLES | SEAFOOD + foodtypes = VEGETABLES|GRAIN|SEAFOOD w_class = WEIGHT_CLASS_SMALL crafting_complexity = FOOD_COMPLEXITY_3 @@ -262,14 +262,14 @@ /datum/reagent/consumable/nutriment/vitamin = 1, ) tastes = list("boiled rice" = 4, "fish" = 2, "spicyness" = 2) - foodtypes = VEGETABLES | SEAFOOD + foodtypes = VEGETABLES|GRAIN|SEAFOOD w_class = WEIGHT_CLASS_SMALL crafting_complexity = FOOD_COMPLEXITY_3 // empty sushi for custom sushi /obj/item/food/sushi/empty name = "sushi" - foodtypes = NONE + foodtypes = VEGETABLES tastes = list() icon_state = "vegetariansushiroll" desc = "A roll of customized sushi." @@ -280,7 +280,7 @@ /obj/item/food/sushislice/empty name = "sushi slice" - foodtypes = NONE + foodtypes = VEGETABLES tastes = list() icon_state = "vegetariansushislice" desc = "A slice of customized sushi." @@ -293,7 +293,7 @@ icon_state = "nigiri_sushi" food_reagents = list(/datum/reagent/consumable/nutriment = 10, /datum/reagent/consumable/nutriment/vitamin = 6, /datum/reagent/consumable/nutriment/protein = 2) tastes = list("boiled rice" = 4, "fish filet" = 2, "soy sauce" = 2) - foodtypes = SEAFOOD | VEGETABLES + foodtypes = VEGETABLES|GRAIN|SEAFOOD w_class = WEIGHT_CLASS_SMALL crafting_complexity = FOOD_COMPLEXITY_2 @@ -307,7 +307,7 @@ /datum/reagent/consumable/nutriment/vitamin = 5, /datum/reagent/consumable/nutriment/protein = 2, ) - foodtypes = SEAFOOD | MEAT | VEGETABLES + foodtypes = MEAT|VEGETABLES|GRAIN tastes = list("rice and meat" = 4, "lettuce" = 2, "soy sauce" = 2) trash_type = /obj/item/reagent_containers/cup/bowl w_class = WEIGHT_CLASS_SMALL @@ -323,7 +323,7 @@ /datum/reagent/consumable/nutriment/vitamin = 4, /datum/reagent/consumable/nutriment/protein = 2, ) - foodtypes = SEAFOOD | VEGETABLES + foodtypes = VEGETABLES|GRAIN|SEAFOOD tastes = list("rice and fish" = 4, "lettuce" = 2, "soy sauce" = 2) trash_type = /obj/item/reagent_containers/cup/bowl w_class = WEIGHT_CLASS_SMALL @@ -345,7 +345,7 @@ // sliceable into 4xtempehslices /obj/item/food/tempeh/make_processable() - AddElement(/datum/element/processable, TOOL_KNIFE, /obj/item/food/tempehslice, 4, 5 SECONDS, table_required = TRUE, screentip_verb = "Slice") + AddElement(/datum/element/processable, TOOL_KNIFE, /obj/item/food/tempehslice, 4, 5 SECONDS, table_required = TRUE, screentip_verb = "Slice", sound_to_play = SFX_KNIFE_SLICE) //add an icon for slices /obj/item/food/tempehslice @@ -418,7 +418,7 @@ crafting_complexity = FOOD_COMPLEXITY_2 /obj/item/food/bearsteak - name = "Filet migrawr" + name = "filet migrawr" desc = "Because eating bear wasn't manly enough." icon = 'icons/obj/food/meat.dmi' icon_state = "bearsteak" @@ -449,7 +449,7 @@ AddComponent(/datum/component/grillable, meatball_type, rand(30 SECONDS, 40 SECONDS), TRUE) /obj/item/food/raw_meatball/make_processable() - AddElement(/datum/element/processable, TOOL_ROLLINGPIN, patty_type, 1, table_required = TRUE, screentip_verb = "Flatten") + AddElement(/datum/element/processable, TOOL_ROLLINGPIN, patty_type, 1, table_required = TRUE, screentip_verb = "Flatten", sound_to_play = SFX_ROLLING_PIN_ROLLING) /obj/item/food/raw_meatball/human name = "strange raw meatball" @@ -616,8 +616,8 @@ custom_price = PAYCHECK_CREW * 0.6 /obj/item/food/sausage/make_processable() - AddElement(/datum/element/processable, TOOL_KNIFE, /obj/item/food/salami, 6, 3 SECONDS, table_required = TRUE, screentip_verb = "Slice") - AddElement(/datum/element/processable, TOOL_KNIFE, /obj/item/food/sausage/american, 1, 3 SECONDS, table_required = TRUE, screentip_verb = "Slice") + AddElement(/datum/element/processable, TOOL_KNIFE, /obj/item/food/salami, 6, 3 SECONDS, table_required = TRUE, screentip_verb = "Slice", sound_to_play = SFX_KNIFE_SLICE) + AddElement(/datum/element/processable, TOOL_KNIFE, /obj/item/food/sausage/american, 1, 3 SECONDS, table_required = TRUE, screentip_verb = "Slice", sound_to_play = SFX_KNIFE_SLICE) /obj/item/food/sausage/american name = "american sausage" @@ -651,7 +651,7 @@ /datum/reagent/consumable/garlic = 1, ) tastes = list("meat" = 1, "onions" = 1, "garlic" = 1) - foodtypes = MEAT + foodtypes = MEAT|GRAIN|VEGETABLES w_class = WEIGHT_CLASS_SMALL crafting_complexity = FOOD_COMPLEXITY_2 @@ -671,7 +671,7 @@ ) bite_consumption = 3 tastes = list("meat" = 1, "onions" = 1, "garlic" = 1) - foodtypes = MEAT + foodtypes = MEAT|GRAIN|VEGETABLES w_class = WEIGHT_CLASS_SMALL crafting_complexity = FOOD_COMPLEXITY_3 @@ -731,13 +731,13 @@ ) bite_consumption = 4 tastes = list("meat" = 1, "the colour green" = 1) - foodtypes = MEAT + foodtypes = MEAT|BUGS|EGG w_class = WEIGHT_CLASS_SMALL crafting_complexity = FOOD_COMPLEXITY_2 /obj/item/food/sashimi - name = "carp sashimi" - desc = "Celebrate surviving attack from hostile alien lifeforms by hospitalising yourself. You sure hope whoever made this is skilled." + name = "spider sashimi" + desc = "Celebrate surviving an attack from hostile alien lifeforms by hospitalising yourself. You sure hope whoever made this is skilled." icon = 'icons/obj/food/meat.dmi' icon_state = "sashimi" food_reagents = list( @@ -746,7 +746,7 @@ /datum/reagent/consumable/nutriment/vitamin = 4, ) tastes = list("fish" = 1, "hot peppers" = 1) - foodtypes = SEAFOOD + foodtypes = MEAT|SEAFOOD|BUGS|EGG w_class = WEIGHT_CLASS_TINY //total price of this dish is 20 and a small amount more for soy sauce, all of which are available at the orders console venue_value = FOOD_PRICE_CHEAP @@ -840,7 +840,7 @@ AddComponent(/datum/component/slippery, 3 SECONDS) /obj/item/food/lasagna - name = "Lasagna" + name = "lasagna" desc = "A slice of lasagna. Perfect for a Monday afternoon." icon_state = "lasagna" food_reagents = list( @@ -849,7 +849,7 @@ /datum/reagent/consumable/tomatojuice = 10, ) tastes = list("meat" = 3, "pasta" = 3, "tomato" = 2, "cheese" = 2) - foodtypes = MEAT | DAIRY | GRAIN + foodtypes = MEAT|VEGETABLES|GRAIN|DAIRY venue_value = FOOD_PRICE_NORMAL crafting_complexity = FOOD_COMPLEXITY_3 @@ -917,7 +917,7 @@ /datum/reagent/consumable/nutriment/vitamin = 2, ) tastes = list("rat meat" = 1, "metal" = 1) - foodtypes = MEAT | GORE + foodtypes = MEAT|RAW|GORE venue_value = FOOD_PRICE_CHEAP /obj/item/food/kebab/rat/double @@ -1011,7 +1011,7 @@ crafting_complexity = FOOD_COMPLEXITY_5 /obj/item/food/korta_wellington - name = "Kotra wellington" + name = "korta wellington" desc = "A luxurious log of beef, covered in a fine mushroom duxelle and pancetta ham, then bound in korta pastry." icon = 'icons/obj/food/meat.dmi' icon_state = "korta_wellington" @@ -1152,7 +1152,7 @@ /datum/reagent/consumable/nutriment/vitamin = 4, ) tastes = list("sausage" = 1, "bacon" = 1, "egg" = 1, "tomato" = 1, "mushrooms" = 1, "bread" = 1, "beans" = 1) - foodtypes = MEAT | VEGETABLES | GRAIN | BREAKFAST + foodtypes = MEAT|VEGETABLES|GRAIN|DAIRY|FRIED|BREAKFAST|EGG w_class = WEIGHT_CLASS_SMALL venue_value = FOOD_PRICE_EXOTIC crafting_complexity = FOOD_COMPLEXITY_5 @@ -1245,7 +1245,7 @@ /datum/reagent/consumable/nutriment/vitamin = 4, ) tastes = list("boiled rice" = 4, "fish" = 5, "egg" = 3, "dried seaweed" = 2, "cucumber" = 2) - foodtypes = VEGETABLES | SEAFOOD + foodtypes = MEAT|VEGETABLES|GRAIN|SEAFOOD|EGG w_class = WEIGHT_CLASS_SMALL crafting_complexity = FOOD_COMPLEXITY_3 @@ -1262,12 +1262,12 @@ /datum/reagent/consumable/nutriment/vitamin = 1, ) tastes = list("boiled rice" = 4, "fish" = 5, "egg" = 3, "dried seaweed" = 2, "cucumber" = 2) - foodtypes = VEGETABLES | SEAFOOD + foodtypes = VEGETABLES|GRAIN|DAIRY|SEAFOOD w_class = WEIGHT_CLASS_SMALL crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/philadelphia_sushi_roll - name = "Philadelphia sushi roll" + name = "philadelphia sushi roll" desc = "A roll of Philadelphia sushi, made of cheese, fish, and cucumber. Sliceable" icon_state = "philadelphia_sushi_roll" food_reagents = list( @@ -1276,7 +1276,7 @@ /datum/reagent/consumable/nutriment/vitamin = 8, ) tastes = list("boiled rice" = 4, "fish" = 5, "creamy cheese" = 3, "dried seaweed" = 2, "cucumber" = 2) - foodtypes = VEGETABLES | SEAFOOD | DAIRY + foodtypes = VEGETABLES|GRAIN|SEAFOOD|DAIRY w_class = WEIGHT_CLASS_SMALL crafting_complexity = FOOD_COMPLEXITY_3 @@ -1284,7 +1284,7 @@ AddElement(/datum/element/processable, TOOL_KNIFE, /obj/item/food/philadelphia_sushi_slice, 4, screentip_verb = "Chop") /obj/item/food/philadelphia_sushi_slice - name = "Philadelphia sushi slice" + name = "philadelphia sushi slice" desc = "A roll of Philadelphia sushi, made of cheese, fish, and cucumber." icon_state = "philadelphia_sushi_slice" food_reagents = list( @@ -1293,6 +1293,6 @@ /datum/reagent/consumable/nutriment/vitamin = 2, ) tastes = list("boiled rice" = 4, "fish" = 5, "creamy cheese" = 3, "dried seaweed" = 2, "cucumber" = 2) - foodtypes = VEGETABLES | SEAFOOD | DAIRY + foodtypes = VEGETABLES|GRAIN|SEAFOOD|DAIRY w_class = WEIGHT_CLASS_SMALL crafting_complexity = FOOD_COMPLEXITY_3 diff --git a/code/game/objects/items/food/meatslab.dm b/code/game/objects/items/food/meatslab.dm index d3f789f89dd2..c407cbe238ec 100644 --- a/code/game/objects/items/food/meatslab.dm +++ b/code/game/objects/items/food/meatslab.dm @@ -50,7 +50,7 @@ AddComponent(/datum/component/grillable, /obj/item/food/meat/steak/plain, rand(30 SECONDS, 90 SECONDS), TRUE, TRUE) //Add medium rare later maybe? /obj/item/food/meat/slab/make_processable() - AddElement(/datum/element/processable, TOOL_KNIFE, /obj/item/food/meat/rawcutlet/plain, 3, 3 SECONDS, table_required = TRUE, screentip_verb = "Cut") + AddElement(/datum/element/processable, TOOL_KNIFE, /obj/item/food/meat/rawcutlet/plain, 3, 3 SECONDS, table_required = TRUE, screentip_verb = "Cut", sound_to_play = SFX_KNIFE_SLICE) ///////////////////////////////////// HUMAN MEATS ////////////////////////////////////////////////////// @@ -64,7 +64,7 @@ AddComponent(/datum/component/grillable, /obj/item/food/meat/steak/plain/human, rand(30 SECONDS, 90 SECONDS), TRUE, TRUE) //Add medium rare later maybe? /obj/item/food/meat/slab/human/make_processable() - AddElement(/datum/element/processable, TOOL_KNIFE, /obj/item/food/meat/rawcutlet/plain/human, 3, 3 SECONDS, table_required = TRUE, screentip_verb = "Cut") + AddElement(/datum/element/processable, TOOL_KNIFE, /obj/item/food/meat/rawcutlet/plain/human, 3, 3 SECONDS, table_required = TRUE, screentip_verb = "Cut", sound_to_play = SFX_KNIFE_SLICE) /obj/item/food/meat/slab/human/mutant abstract_type = /obj/item/food/meat/slab/human/mutant @@ -256,7 +256,7 @@ AddComponent(/datum/component/grillable, /obj/item/food/meat/steak/killertomato, rand(70 SECONDS, 85 SECONDS), TRUE, TRUE) /obj/item/food/meat/slab/killertomato/make_processable() - AddElement(/datum/element/processable, TOOL_KNIFE, /obj/item/food/meat/rawcutlet/killertomato, 3, 3 SECONDS, table_required = TRUE, screentip_verb = "Cut") + AddElement(/datum/element/processable, TOOL_KNIFE, /obj/item/food/meat/rawcutlet/killertomato, 3, 3 SECONDS, table_required = TRUE, screentip_verb = "Cut", sound_to_play = SFX_KNIFE_SLICE) /obj/item/food/meat/slab/bear name = "bear meat" @@ -272,7 +272,7 @@ foodtypes = RAW | MEAT /obj/item/food/meat/slab/bear/make_processable() - AddElement(/datum/element/processable, TOOL_KNIFE, /obj/item/food/meat/rawcutlet/bear, 3, 3 SECONDS, table_required = TRUE, screentip_verb = "Cut") + AddElement(/datum/element/processable, TOOL_KNIFE, /obj/item/food/meat/rawcutlet/bear, 3, 3 SECONDS, table_required = TRUE, screentip_verb = "Cut", sound_to_play = SFX_KNIFE_SLICE) /obj/item/food/meat/slab/bear/make_grillable() AddComponent(/datum/component/grillable, /obj/item/food/meat/steak/bear, rand(40 SECONDS, 70 SECONDS), TRUE, TRUE) @@ -295,7 +295,7 @@ blood_decal_type = /obj/effect/decal/cleanable/xenoblood /obj/item/food/meat/slab/xeno/make_processable() - AddElement(/datum/element/processable, TOOL_KNIFE, /obj/item/food/meat/rawcutlet/xeno, 3, 3 SECONDS, table_required = TRUE, screentip_verb = "Cut") + AddElement(/datum/element/processable, TOOL_KNIFE, /obj/item/food/meat/rawcutlet/xeno, 3, 3 SECONDS, table_required = TRUE, screentip_verb = "Cut", sound_to_play = SFX_KNIFE_SLICE) /obj/item/food/meat/slab/xeno/make_grillable() AddComponent(/datum/component/grillable, /obj/item/food/meat/steak/xeno, rand(40 SECONDS, 70 SECONDS), TRUE, TRUE) @@ -314,7 +314,7 @@ blood_decal_type = /obj/effect/decal/cleanable/insectguts /obj/item/food/meat/slab/spider/make_processable() - AddElement(/datum/element/processable, TOOL_KNIFE, /obj/item/food/meat/rawcutlet/spider, 3, 3 SECONDS, table_required = TRUE, screentip_verb = "Cut") + AddElement(/datum/element/processable, TOOL_KNIFE, /obj/item/food/meat/rawcutlet/spider, 3, 3 SECONDS, table_required = TRUE, screentip_verb = "Cut", sound_to_play = SFX_KNIFE_SLICE) /obj/item/food/meat/slab/spider/make_grillable() AddComponent(/datum/component/grillable, /obj/item/food/meat/steak/spider, rand(40 SECONDS, 70 SECONDS), TRUE, TRUE) @@ -396,7 +396,7 @@ foodtypes = RAW | MEAT | GORE /obj/item/food/meat/slab/gondola/make_processable() - AddElement(/datum/element/processable, TOOL_KNIFE, /obj/item/food/meat/rawcutlet/gondola, 3, 3 SECONDS, table_required = TRUE, screentip_verb = "Cut") + AddElement(/datum/element/processable, TOOL_KNIFE, /obj/item/food/meat/rawcutlet/gondola, 3, 3 SECONDS, table_required = TRUE, screentip_verb = "Cut", sound_to_play = SFX_KNIFE_SLICE) /obj/item/food/meat/slab/gondola/make_grillable() AddComponent(/datum/component/grillable, /obj/item/food/meat/steak/gondola, rand(30 SECONDS, 90 SECONDS), TRUE, TRUE) //Add medium rare later maybe? @@ -413,7 +413,7 @@ /obj/item/food/meat/slab/penguin/make_processable() . = ..() - AddElement(/datum/element/processable, TOOL_KNIFE, /obj/item/food/meat/rawcutlet/penguin, 3, 3 SECONDS, table_required = TRUE, screentip_verb = "Cut") + AddElement(/datum/element/processable, TOOL_KNIFE, /obj/item/food/meat/rawcutlet/penguin, 3, 3 SECONDS, table_required = TRUE, screentip_verb = "Cut", sound_to_play = SFX_KNIFE_SLICE) /obj/item/food/meat/slab/penguin/make_grillable() AddComponent(/datum/component/grillable, /obj/item/food/meat/steak/penguin, rand(30 SECONDS, 90 SECONDS), TRUE, TRUE) //Add medium rare later maybe? @@ -456,7 +456,7 @@ starting_reagent_purity = 1 /obj/item/food/meat/slab/chicken/make_processable() - AddElement(/datum/element/processable, TOOL_KNIFE, /obj/item/food/meat/rawcutlet/chicken, 3, 3 SECONDS, table_required = TRUE, screentip_verb = "Cut") + AddElement(/datum/element/processable, TOOL_KNIFE, /obj/item/food/meat/rawcutlet/chicken, 3, 3 SECONDS, table_required = TRUE, screentip_verb = "Cut", sound_to_play = SFX_KNIFE_SLICE) /obj/item/food/meat/slab/chicken/make_grillable() AddComponent(/datum/component/grillable, /obj/item/food/meat/steak/chicken, rand(30 SECONDS, 90 SECONDS), TRUE, TRUE) //Add medium rare later maybe? (no this is chicken) @@ -516,7 +516,6 @@ name = "[source_item.name] steak" /obj/item/food/meat/steak/plain - foodtypes = MEAT /obj/item/food/meat/steak/plain/human tastes = list("tender meat" = 1) @@ -553,6 +552,7 @@ /obj/item/food/meat/steak/spider name = "spider steak" tastes = list("cobwebs" = 1) + foodtypes = parent_type::foodtypes | TOXIC /obj/item/food/meat/steak/goliath name = "goliath steak" @@ -561,7 +561,6 @@ icon_state = "goliathsteak" trash_type = null tastes = list("meat" = 1, "rock" = 1) - foodtypes = MEAT /obj/item/food/meat/steak/gondola name = "gondola steak" @@ -683,6 +682,7 @@ name = "raw spider cutlet" tastes = list("cobwebs" = 1) blood_decal_type = /obj/effect/decal/cleanable/insectguts + foodtypes = parent_type::foodtypes | TOXIC /obj/item/food/meat/rawcutlet/spider/make_grillable() AddComponent(/datum/component/grillable, /obj/item/food/meat/cutlet/spider, rand(35 SECONDS, 50 SECONDS), TRUE, TRUE) @@ -772,6 +772,7 @@ /obj/item/food/meat/cutlet/spider name = "spider cutlet" tastes = list("cobwebs" = 1) + foodtypes = parent_type::foodtypes | TOXIC /obj/item/food/meat/cutlet/gondola name = "gondola cutlet" diff --git a/code/game/objects/items/food/mexican.dm b/code/game/objects/items/food/mexican.dm index 396e351ff4bd..db3f1435346c 100644 --- a/code/game/objects/items/food/mexican.dm +++ b/code/game/objects/items/food/mexican.dm @@ -26,7 +26,7 @@ /datum/reagent/consumable/nutriment/vitamin = 1, ) tastes = list("torilla" = 2, "beans" = 3) - foodtypes = GRAIN + foodtypes = VEGETABLES|GRAIN w_class = WEIGHT_CLASS_SMALL venue_value = FOOD_PRICE_NORMAL crafting_complexity = FOOD_COMPLEXITY_2 @@ -42,7 +42,7 @@ /datum/reagent/consumable/nutriment/vitamin = 2, ) tastes = list("torilla" = 2, "beans" = 3, "cheese" = 1) - foodtypes = GRAIN | DAIRY + foodtypes = VEGETABLES|GRAIN|DAIRY w_class = WEIGHT_CLASS_SMALL venue_value = FOOD_PRICE_EXOTIC crafting_complexity = FOOD_COMPLEXITY_3 @@ -58,7 +58,7 @@ /datum/reagent/consumable/nutriment/vitamin = 1, ) tastes = list("torilla" = 2, "meat" = 4) - foodtypes = GRAIN | MEAT + foodtypes = VEGETABLES|GRAIN|MEAT w_class = WEIGHT_CLASS_SMALL venue_value = FOOD_PRICE_EXOTIC crafting_complexity = FOOD_COMPLEXITY_3 @@ -75,7 +75,7 @@ /datum/reagent/consumable/nutriment/vitamin = 3, ) tastes = list("torilla" = 2, "beans" = 3, "hot peppers" = 1) - foodtypes = GRAIN + foodtypes = VEGETABLES|GRAIN w_class = WEIGHT_CLASS_SMALL venue_value = FOOD_PRICE_LEGENDARY crafting_complexity = FOOD_COMPLEXITY_3 @@ -112,7 +112,7 @@ crafting_complexity = FOOD_COMPLEXITY_2 /obj/item/food/cubannachos - name = "Cuban nachos" + name = "cuban nachos" desc = "That's some dangerously spicy nachos." icon = 'icons/obj/food/mexican.dmi' icon_state = "cubannachos" @@ -122,7 +122,7 @@ /datum/reagent/consumable/nutriment/vitamin = 4, ) tastes = list("nachos" = 2, "hot pepper" = 1) - foodtypes = VEGETABLES | FRIED | DAIRY + foodtypes = VEGETABLES|FRIED|GRAIN w_class = WEIGHT_CLASS_SMALL crafting_complexity = FOOD_COMPLEXITY_2 @@ -177,7 +177,7 @@ /datum/reagent/consumable/nutriment/vitamin = 2, ) tastes = list("hot peppers" = 1, "meat" = 3, "cheese" = 1, "sour cream" = 1) - foodtypes = MEAT | GRAIN + foodtypes = MEAT|VEGETABLES|GRAIN w_class = WEIGHT_CLASS_SMALL crafting_complexity = FOOD_COMPLEXITY_3 @@ -196,6 +196,7 @@ w_class = WEIGHT_CLASS_SMALL venue_value = FOOD_PRICE_LEGENDARY crafting_complexity = FOOD_COMPLEXITY_5 + crafted_food_buff = /datum/status_effect/food/trait/ashstorm_immune /obj/item/food/chipsandsalsa name = "chips and salsa" @@ -208,7 +209,7 @@ /datum/reagent/consumable/nutriment/vitamin = 4, ) tastes = list("peppers" = 1, "salsa" = 3, "tortilla chips" = 1, "onion" = 1) - foodtypes = VEGETABLES + foodtypes = VEGETABLES|FRIED w_class = WEIGHT_CLASS_SMALL crafting_complexity = FOOD_COMPLEXITY_3 @@ -276,7 +277,7 @@ /datum/reagent/consumable/nutriment/protein = 6, ) tastes = list("crunchy taco shell" = 1, "cabbage" = 3, "tomatoes" = 1, "ground meat" = 1, "cheese" = 1) - foodtypes = GRAIN | VEGETABLES | MEAT | DAIRY + foodtypes = MEAT|VEGETABLES|GRAIN|DAIRY|FRIED w_class = WEIGHT_CLASS_SMALL crafting_complexity = FOOD_COMPLEXITY_4 @@ -291,7 +292,7 @@ /datum/reagent/consumable/nutriment/protein = 6, ) tastes = list("crunchy taco shell" = 1, "ground meat" = 1) - foodtypes = GRAIN | MEAT + foodtypes = MEAT|GRAIN|FRIED w_class = WEIGHT_CLASS_SMALL crafting_complexity = FOOD_COMPLEXITY_2 @@ -322,7 +323,7 @@ ) trash_type = /obj/item/reagent_containers/cup/bowl tastes = list("zesty rice" = 1, "tomato sauce" = 3,) - foodtypes = VEGETABLES + foodtypes = VEGETABLES|GRAIN w_class = WEIGHT_CLASS_SMALL crafting_complexity = FOOD_COMPLEXITY_2 diff --git a/code/game/objects/items/food/misc.dm b/code/game/objects/items/food/misc.dm index dcf463c93e7e..43b60634914f 100644 --- a/code/game/objects/items/food/misc.dm +++ b/code/game/objects/items/food/misc.dm @@ -168,7 +168,7 @@ /datum/reagent/toxin = 2, ) tastes = list("cobwebs" = 1) - foodtypes = MEAT | TOXIC | BUGS + foodtypes = MEAT | TOXIC | BUGS | EGG w_class = WEIGHT_CLASS_TINY /obj/item/food/spidereggs/processed @@ -204,7 +204,7 @@ ) w_class = WEIGHT_CLASS_NORMAL tastes = list("melon" = 1) - foodtypes = FRUIT + foodtypes = VEGETABLES | FRUIT w_class = WEIGHT_CLASS_SMALL crafting_complexity = FOOD_COMPLEXITY_4 @@ -246,7 +246,7 @@ crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/powercrepe - name = "Powercrepe" + name = "powercrepe" desc = "With great power, comes great crepes. It looks like a pancake filled with jelly but packs quite a punch." icon_state = "powercrepe" inhand_icon_state = "powercrepe" @@ -278,7 +278,7 @@ /datum/reagent/consumable/salt = 8, ) tastes = list("bran" = 4, "raisins" = 3, "salt" = 1) - foodtypes = GRAIN | FRUIT | BREAKFAST + foodtypes = SUGAR|GRAIN|FRUIT|BREAKFAST w_class = WEIGHT_CLASS_SMALL crafting_complexity = FOOD_COMPLEXITY_2 @@ -320,7 +320,7 @@ venue_value = FOOD_PRICE_CHEAP /obj/item/food/butter/make_processable() - AddElement(/datum/element/processable, TOOL_KNIFE, /obj/item/food/butterslice, 3, 3 SECONDS, table_required = TRUE, screentip_verb = "Slice") + AddElement(/datum/element/processable, TOOL_KNIFE, /obj/item/food/butterslice, 3, 3 SECONDS, table_required = TRUE, screentip_verb = "Slice", sound_to_play = SFX_KNIFE_SLICE) /obj/item/food/butterslice name = "butter slice" @@ -432,7 +432,7 @@ /datum/reagent/consumable/nutriment/vitamin = 5, ) tastes = list("juicy meat" = 1, "rice" = 1, "cabbage" = 1) - foodtypes = MEAT | VEGETABLES + foodtypes = MEAT|VEGETABLES|GRAIN w_class = WEIGHT_CLASS_SMALL crafting_complexity = FOOD_COMPLEXITY_3 @@ -475,7 +475,7 @@ /datum/reagent/consumable/nutriment/protein = 4, ) tastes = list("granola" = 1, "nuts" = 1, "chocolate" = 1, "raisin" = 1) - foodtypes = GRAIN | NUTS | FRUIT | SUGAR | DAIRY + foodtypes = GRAIN|NUTS|FRUIT|SUGAR w_class = WEIGHT_CLASS_SMALL crafting_complexity = FOOD_COMPLEXITY_4 @@ -489,7 +489,7 @@ /datum/reagent/consumable/nutriment/vitamin = 2, ) tastes = list("rice" = 1, "dried seaweed" = 1) - foodtypes = VEGETABLES + foodtypes = VEGETABLES|GRAIN w_class = WEIGHT_CLASS_SMALL crafting_complexity = FOOD_COMPLEXITY_2 @@ -502,7 +502,7 @@ name = "onigiri" desc = "A ball of cooked rice surrounding a filling formed into a triangular shape and wrapped in seaweed." icon_state = "onigiri" - foodtypes = VEGETABLES + foodtypes = VEGETABLES|GRAIN tastes = list() /obj/item/food/pacoca @@ -611,7 +611,7 @@ /datum/reagent/consumable/nutriment/protein = 20, ) tastes = list("cooked eggplant" = 5, "potato" = 1, "baked veggies" = 2, "meat" = 4, "bechamel sauce" = 3) - foodtypes = MEAT | DAIRY | VEGETABLES + foodtypes = MEAT|VEGETABLES|GRAIN|DAIRY crafting_complexity = FOOD_COMPLEXITY_4 /obj/item/food/moussaka/make_processable() @@ -627,7 +627,7 @@ /datum/reagent/consumable/nutriment/protein = 5, ) tastes = list("cooked eggplant" = 5, "potato" = 1, "baked veggies" = 2, "meat" = 4, "bechamel sauce" = 3) - foodtypes = MEAT | DAIRY | VEGETABLES + foodtypes = MEAT|VEGETABLES|GRAIN|DAIRY crafting_complexity = FOOD_COMPLEXITY_4 /obj/item/food/candied_pineapple @@ -640,7 +640,7 @@ icon_state = "candied_pineapple_1" base_icon_state = "candied_pineapple" tastes = list("sugar" = 2, "chewy pineapple" = 4) - foodtypes = FRUIT | SUGAR + foodtypes = SUGAR|FRUIT|PINEAPPLE food_flags = FOOD_FINGER_FOOD w_class = WEIGHT_CLASS_TINY crafting_complexity = FOOD_COMPLEXITY_1 diff --git a/code/game/objects/items/food/moth.dm b/code/game/objects/items/food/moth.dm index b2d9dfdb8fe3..51b3bfb163fd 100644 --- a/code/game/objects/items/food/moth.dm +++ b/code/game/objects/items/food/moth.dm @@ -66,7 +66,7 @@ /datum/reagent/consumable/salt = 2, ) tastes = list("seeds" = 1, "nuts" = 1, "chocolate" = 1, "salt" = 1, "popcorn" = 1, "potato" = 1) - foodtypes = GRAIN | NUTS | VEGETABLES | SUGAR + foodtypes = JUNKFOOD|GRAIN|FRIED|NUTS|VEGETABLES w_class = WEIGHT_CLASS_SMALL crafting_complexity = FOOD_COMPLEXITY_3 @@ -93,7 +93,7 @@ /datum/reagent/consumable/nutriment/vitamin = 6, ) tastes = list("cheese" = 1, "tofu" = 1, "veggies" = 1) - foodtypes = DAIRY | VEGETABLES + foodtypes = DAIRY|VEGETABLES|GRAIN w_class = WEIGHT_CLASS_SMALL crafting_complexity = FOOD_COMPLEXITY_4 @@ -125,7 +125,7 @@ /datum/reagent/consumable/capsaicin = 1, ) tastes = list("cheese" = 1, "oil" = 1, "chili" = 1, "fries" = 1) - foodtypes = DAIRY | VEGETABLES + foodtypes = VEGETABLES|DAIRY|FRIED w_class = WEIGHT_CLASS_SMALL crafting_complexity = FOOD_COMPLEXITY_5 @@ -171,7 +171,7 @@ /datum/reagent/consumable/nutriment/vitamin = 10, ) tastes = list("cheese" = 1, "pesto" = 1, "pasta" = 1) - foodtypes = VEGETABLES | GRAIN | NUTS | RAW + foodtypes = VEGETABLES|GRAIN|DAIRY|NUTS|RAW w_class = WEIGHT_CLASS_NORMAL crafting_complexity = FOOD_COMPLEXITY_5 @@ -188,12 +188,12 @@ /datum/reagent/consumable/nutriment/vitamin = 18, ) tastes = list("cheese" = 1, "pesto" = 1, "pasta" = 1) - foodtypes = VEGETABLES | GRAIN | NUTS + foodtypes = VEGETABLES|GRAIN|DAIRY|NUTS w_class = WEIGHT_CLASS_NORMAL crafting_complexity = FOOD_COMPLEXITY_5 /obj/item/food/green_lasagne/make_processable() - AddElement(/datum/element/processable, TOOL_KNIFE, /obj/item/food/green_lasagne_slice, 6, 3 SECONDS, table_required = TRUE, screentip_verb = "Slice") + AddElement(/datum/element/processable, TOOL_KNIFE, /obj/item/food/green_lasagne_slice, 6, 3 SECONDS, table_required = TRUE, screentip_verb = "Slice", sound_to_play = SFX_KNIFE_SLICE) /obj/item/food/green_lasagne_slice name = "green lasagne al forno slice" @@ -205,7 +205,7 @@ /datum/reagent/consumable/nutriment/vitamin = 3, ) tastes = list("cheese" = 1, "pesto" = 1, "pasta" = 1) - foodtypes = VEGETABLES | GRAIN | NUTS + foodtypes = VEGETABLES|GRAIN|DAIRY|NUTS w_class = WEIGHT_CLASS_SMALL crafting_complexity = FOOD_COMPLEXITY_5 @@ -299,7 +299,7 @@ /datum/reagent/consumable/char = 1, ) tastes = list("corn" = 1, "chili" = 1, "char" = 1) - foodtypes = VEGETABLES | DAIRY + foodtypes = VEGETABLES|JUNKFOOD|DAIRY|FRIED w_class = WEIGHT_CLASS_SMALL crafting_complexity = FOOD_COMPLEXITY_4 @@ -346,7 +346,7 @@ /datum/reagent/consumable/nutriment/protein = 6, ) tastes = list("creamy cheese" = 1, "breading" = 1, "oil" = 1) - foodtypes = DAIRY | GRAIN | FRIED + foodtypes = GRAIN|DAIRY|FRIED w_class = WEIGHT_CLASS_SMALL crafting_complexity = FOOD_COMPLEXITY_4 @@ -467,7 +467,7 @@ /datum/reagent/consumable/nutriment/protein = 6, ) tastes = list("bacon" = 1, "eggs" = 1) - foodtypes = MEAT | GRAIN + foodtypes = MEAT|GRAIN|FRIED|EGG w_class = WEIGHT_CLASS_SMALL crafting_complexity = FOOD_COMPLEXITY_4 @@ -482,7 +482,7 @@ /datum/reagent/consumable/nutriment = 10, ) tastes = list("cornmeal" = 1, "cheese" = 1, "eggplant" = 1, "tomato sauce" = 1) - foodtypes = DAIRY | GRAIN + foodtypes = VEGETABLES|GRAIN|DAIRY w_class = WEIGHT_CLASS_SMALL crafting_complexity = FOOD_COMPLEXITY_5 @@ -783,7 +783,7 @@ /datum/reagent/consumable/nutriment/vitamin = 3, ) tastes = list("dough" = 1, "garlic" = 1, "butter" = 1) - foodtypes = GRAIN | VEGETABLES | RAW + foodtypes = GRAIN|VEGETABLES|RAW|DAIRY crafting_complexity = FOOD_COMPLEXITY_4 /obj/item/food/raw_mothic_garlic/make_bakeable() @@ -801,7 +801,7 @@ /datum/reagent/consumable/nutriment/vitamin = 5, ) tastes = list("crust" = 1, "garlic" = 1, "butter" = 1) - foodtypes = GRAIN | VEGETABLES | DAIRY | NUTS + foodtypes = GRAIN|VEGETABLES|DAIRY slice_type = /obj/item/food/pizzaslice/mothic_garlic boxtag = "Garlic Bread alla Moffuchi" crafting_complexity = FOOD_COMPLEXITY_4 @@ -812,7 +812,7 @@ icon = 'icons/obj/food/moth.dmi' icon_state = "garlic_slice" tastes = list("dough" = 1, "garlic" = 1, "butter" = 1) - foodtypes = GRAIN | VEGETABLES + foodtypes = GRAIN|VEGETABLES|DAIRY crafting_complexity = FOOD_COMPLEXITY_4 //Bread diff --git a/code/game/objects/items/food/packaged.dm b/code/game/objects/items/food/packaged.dm index 304c4fa4cdce..8a700d55d93c 100644 --- a/code/game/objects/items/food/packaged.dm +++ b/code/game/objects/items/food/packaged.dm @@ -2,7 +2,7 @@ // Cans /obj/item/food/canned - name = "Canned Air" + name = "canned air" desc = "If you ever wondered where air came from..." food_reagents = list( /datum/reagent/oxygen = 6, @@ -65,7 +65,7 @@ foodtypes = FRUIT | SUGAR /obj/item/food/canned/peaches/maint - name = "Maintenance Peaches" + name = "maintenance peaches" desc = "I have a mouth and I must eat." icon_state = "peachcanmaint" trash_type = /obj/item/trash/can/food/peaches/maint diff --git a/code/game/objects/items/food/pastries.dm b/code/game/objects/items/food/pastries.dm index 7d6c837f52a6..0ba586c6fbb0 100644 --- a/code/game/objects/items/food/pastries.dm +++ b/code/game/objects/items/food/pastries.dm @@ -11,7 +11,7 @@ /datum/reagent/consumable/nutriment/vitamin = 1, ) tastes = list("muffin" = 1) - foodtypes = GRAIN | SUGAR | BREAKFAST + foodtypes = GRAIN|DAIRY|SUGAR|BREAKFAST food_flags = FOOD_FINGER_FOOD w_class = WEIGHT_CLASS_SMALL crafting_complexity = FOOD_COMPLEXITY_2 @@ -21,7 +21,7 @@ icon_state = "berrymuffin" desc = "A delicious and spongy little cake, with berries." tastes = list("muffin" = 3, "berry" = 1) - foodtypes = GRAIN | FRUIT | SUGAR | BREAKFAST + foodtypes = GRAIN|DAIRY|SUGAR|BREAKFAST|FRUIT venue_value = FOOD_PRICE_NORMAL crafting_complexity = FOOD_COMPLEXITY_3 @@ -31,7 +31,7 @@ alpha = 125 desc = "My stomach is a graveyard! No living being can quench my bloodthirst!" tastes = list("muffin" = 3, "spookiness" = 1) - foodtypes = GRAIN | FRUIT | SUGAR | BREAKFAST + foodtypes = GRAIN|DAIRY|SUGAR|BREAKFAST|FRUIT crafting_complexity = FOOD_COMPLEXITY_4 /obj/item/food/muffin/booberry/Initialize(mapload, starting_reagent_purity, no_base_reagents) @@ -44,7 +44,7 @@ base_icon_state = "moffin" desc = "A delicious and spongy little cake." tastes = list("muffin" = 3, "dust" = 1, "lint" = 1) - foodtypes = CLOTH | GRAIN | SUGAR | BREAKFAST + foodtypes = CLOTH|DAIRY|GRAIN|SUGAR|BREAKFAST crafting_complexity = FOOD_COMPLEXITY_2 /obj/item/food/muffin/moffin/Initialize(mapload) @@ -72,7 +72,7 @@ /datum/reagent/consumable/nutriment/vitamin = 2, ) tastes = list("waffles" = 1) - foodtypes = GRAIN | SUGAR | BREAKFAST + foodtypes = GRAIN|DAIRY|BREAKFAST w_class = WEIGHT_CLASS_SMALL crafting_complexity = FOOD_COMPLEXITY_2 @@ -86,7 +86,7 @@ /datum/reagent/consumable/nutriment/protein = 4, ) tastes = list("waffles" = 7, "people" = 1) - foodtypes = GRAIN | MEAT + foodtypes = MEAT|GRAIN|DAIRY w_class = WEIGHT_CLASS_SMALL crafting_complexity = FOOD_COMPLEXITY_3 @@ -100,7 +100,7 @@ /datum/reagent/consumable/nutriment/protein = 2, ) tastes = list("waffles" = 7, "the colour green" = 1) - foodtypes = GRAIN + foodtypes = VEGETABLES|GRAIN|DAIRY w_class = WEIGHT_CLASS_SMALL crafting_complexity = FOOD_COMPLEXITY_3 @@ -115,7 +115,7 @@ /datum/reagent/consumable/nutriment/vitamin = 4, ) tastes = list("waffles" = 1, "mushrooms" = 1) - foodtypes = GRAIN | VEGETABLES | SUGAR | BREAKFAST + foodtypes = GRAIN|DAIRY|VEGETABLES|BREAKFAST w_class = WEIGHT_CLASS_SMALL crafting_complexity = FOOD_COMPLEXITY_3 @@ -147,7 +147,7 @@ trash_type = /obj/item/paper/paperslip/fortune food_reagents = list(/datum/reagent/consumable/nutriment = 5) tastes = list("cookie" = 1) - foodtypes = GRAIN | SUGAR + foodtypes = GRAIN|SUGAR|DAIRY food_flags = FOOD_FINGER_FOOD w_class = WEIGHT_CLASS_SMALL crafting_complexity = FOOD_COMPLEXITY_2 @@ -179,7 +179,7 @@ /datum/reagent/consumable/sugar = 6, ) tastes = list("sweetness" = 1) - foodtypes = GRAIN | JUNKFOOD | SUGAR + foodtypes = GRAIN|DAIRY|JUNKFOOD|SUGAR crafting_complexity = FOOD_COMPLEXITY_2 /obj/item/food/cookie/sugar/Initialize(mapload, seasonal_changes = TRUE) @@ -198,7 +198,7 @@ /datum/reagent/consumable/nutriment/vitamin = 2, ) tastes = list("biscuit" = 3, "chocolate" = 1) - foodtypes = GRAIN | JUNKFOOD + foodtypes = JUNKFOOD|GRAIN|DAIRY|SUGAR w_class = WEIGHT_CLASS_SMALL crafting_complexity = FOOD_COMPLEXITY_3 @@ -211,7 +211,7 @@ /datum/reagent/consumable/nutriment/vitamin = 2, ) tastes = list("cookie" = 2, "oat" = 1) - foodtypes = GRAIN + foodtypes = GRAIN|DAIRY crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/cookie/raisin @@ -223,7 +223,7 @@ /datum/reagent/consumable/nutriment/vitamin = 2, ) tastes = list("cookie" = 1, "raisins" = 1) - foodtypes = GRAIN | FRUIT + foodtypes = GRAIN|FRUIT|DAIRY|SUGAR crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/poppypretzel @@ -235,7 +235,7 @@ /datum/reagent/consumable/nutriment/vitamin = 2, ) tastes = list("pretzel" = 1) - foodtypes = GRAIN | SUGAR + foodtypes = GRAIN|DAIRY|SUGAR food_flags = FOOD_FINGER_FOOD w_class = WEIGHT_CLASS_SMALL crafting_complexity = FOOD_COMPLEXITY_3 @@ -249,7 +249,7 @@ /datum/reagent/consumable/nutriment/vitamin = 1, ) tastes = list("mushroom" = 1, "biscuit" = 1) - foodtypes = GRAIN | VEGETABLES + foodtypes = VEGETABLES|GRAIN|DAIRY food_flags = FOOD_FINGER_FOOD w_class = WEIGHT_CLASS_SMALL crafting_complexity = FOOD_COMPLEXITY_3 @@ -303,7 +303,7 @@ /datum/reagent/consumable/nutriment/vitamin = 2, ) tastes = list("cake" = 3, "cherry" = 1) - foodtypes = GRAIN | FRUIT | SUGAR + foodtypes = GRAIN|DAIRY|FRUIT|SUGAR food_flags = FOOD_FINGER_FOOD w_class = WEIGHT_CLASS_SMALL crafting_complexity = FOOD_COMPLEXITY_3 @@ -315,6 +315,23 @@ tastes = list("cake" = 3, "blue cherry" = 1) crafting_complexity = FOOD_COMPLEXITY_3 +/obj/item/food/jupitercupcake + name = "jupiter-cup-cake" + desc = "A static dessert." + icon_state = "jupitercupcake" + food_reagents = list( + /datum/reagent/consumable/nutriment = 6, + /datum/reagent/consumable/nutriment/vitamin = 2, + /datum/reagent/consumable/caramel = 3, + /datum/reagent/consumable/liquidelectricity/enriched = 3, + ) + tastes = list("cake" = 3, "caramel" = 2, "zap" = 1) + foodtypes = GRAIN|DAIRY|VEGETABLES|SUGAR + food_flags = FOOD_FINGER_FOOD + w_class = WEIGHT_CLASS_SMALL + crafting_complexity = FOOD_COMPLEXITY_3 + crafted_food_buff = /datum/status_effect/food/trait/shockimmune + /obj/item/food/honeybun name = "honey bun" desc = "A sticky pastry bun glazed with honey." @@ -324,7 +341,7 @@ /datum/reagent/consumable/honey = 6, ) tastes = list("pastry" = 1, "sweetness" = 1) - foodtypes = GRAIN | SUGAR + foodtypes = GRAIN|DAIRY|SUGAR w_class = WEIGHT_CLASS_SMALL crafting_complexity = FOOD_COMPLEXITY_3 @@ -350,7 +367,7 @@ food_reagents = list(/datum/reagent/consumable/nutriment = 5) tastes = list("cream" = 2, "waffle" = 1) bite_consumption = 4 - foodtypes = DAIRY | SUGAR + foodtypes = DAIRY | SUGAR | GRAIN food_flags = FOOD_FINGER_FOOD crafting_complexity = FOOD_COMPLEXITY_3 max_volume = 10 //The max volumes scales up with the number of scoops of ice cream served. @@ -414,7 +431,7 @@ /datum/reagent/consumable/peanut_butter = 5, ) tastes = list("peanut butter" = 2, "cookie" = 1) - foodtypes = GRAIN | JUNKFOOD | NUTS + foodtypes = GRAIN|DAIRY|JUNKFOOD|NUTS crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/raw_brownie_batter @@ -427,7 +444,7 @@ /datum/reagent/consumable/nutriment/vitamin = 4, ) tastes = list("raw brownie batter" = 1) - foodtypes = GRAIN | JUNKFOOD | SUGAR | BREAKFAST + foodtypes = GRAIN|DAIRY|JUNKFOOD|SUGAR|BREAKFAST crafting_complexity = FOOD_COMPLEXITY_1 /obj/item/food/raw_brownie_batter/make_bakeable() @@ -443,12 +460,12 @@ /datum/reagent/consumable/sugar = 12, ) tastes = list("brownie" = 1, "chocolatey goodness" = 1) - foodtypes = GRAIN | JUNKFOOD | SUGAR + foodtypes = GRAIN|DAIRY|JUNKFOOD|SUGAR|BREAKFAST w_class = WEIGHT_CLASS_SMALL crafting_complexity = FOOD_COMPLEXITY_2 /obj/item/food/brownie_sheet/make_processable() - AddElement(/datum/element/processable, TOOL_KNIFE, /obj/item/food/brownie, 4, 3 SECONDS, table_required = TRUE, screentip_verb = "Slice") + AddElement(/datum/element/processable, TOOL_KNIFE, /obj/item/food/brownie, 4, 3 SECONDS, table_required = TRUE, screentip_verb = "Slice", sound_to_play = SFX_KNIFE_SLICE) /obj/item/food/brownie name = "brownie" @@ -460,7 +477,7 @@ /datum/reagent/consumable/sugar = 3, ) tastes = list("brownie" = 1, "chocolatey goodness" = 1) - foodtypes = GRAIN | JUNKFOOD | SUGAR + foodtypes = GRAIN|DAIRY|JUNKFOOD|SUGAR|BREAKFAST w_class = WEIGHT_CLASS_SMALL crafting_complexity = FOOD_COMPLEXITY_2 @@ -475,7 +492,7 @@ /datum/reagent/consumable/peanut_butter = 4, ) tastes = list("raw brownie batter" = 1) - foodtypes = GRAIN | JUNKFOOD | SUGAR | NUTS + foodtypes = GRAIN|DAIRY|JUNKFOOD|SUGAR|BREAKFAST|NUTS crafting_complexity = FOOD_COMPLEXITY_1 /obj/item/food/peanut_butter_brownie_batter/make_bakeable() @@ -492,12 +509,12 @@ /datum/reagent/consumable/peanut_butter = 20, ) tastes = list("brownie" = 1, "chocolatey goodness" = 1, "peanut butter" = 1) - foodtypes = GRAIN | JUNKFOOD | SUGAR | NUTS + foodtypes = GRAIN|DAIRY|JUNKFOOD|SUGAR|BREAKFAST|NUTS w_class = WEIGHT_CLASS_SMALL crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/peanut_butter_brownie_sheet/make_processable() - AddElement(/datum/element/processable, TOOL_KNIFE, /obj/item/food/peanut_butter_brownie, 4, 3 SECONDS, table_required = TRUE, screentip_verb = "Slice") + AddElement(/datum/element/processable, TOOL_KNIFE, /obj/item/food/peanut_butter_brownie, 4, 3 SECONDS, table_required = TRUE, screentip_verb = "Slice", sound_to_play = SFX_KNIFE_SLICE) /obj/item/food/peanut_butter_brownie name = "peanut butter brownie" @@ -510,7 +527,7 @@ /datum/reagent/consumable/peanut_butter = 5, ) tastes = list("brownie" = 1, "chocolatey goodness" = 1) - foodtypes = GRAIN | JUNKFOOD | SUGAR + foodtypes = GRAIN|DAIRY|JUNKFOOD|SUGAR|BREAKFAST|NUTS w_class = WEIGHT_CLASS_SMALL crafting_complexity = FOOD_COMPLEXITY_3 @@ -525,7 +542,7 @@ /datum/reagent/consumable/peanut_butter = 5, ) tastes = list("peanut butter" = 1, "peanuts" = 1, "cream" = 1) - foodtypes = GRAIN | JUNKFOOD | SUGAR | NUTS + foodtypes = GRAIN|DAIRY|JUNKFOOD|SUGAR|NUTS w_class = WEIGHT_CLASS_SMALL crafting_complexity = FOOD_COMPLEXITY_3 @@ -577,7 +594,7 @@ icon_state = "thumbprint_cookie" food_reagents = list(/datum/reagent/consumable/nutriment = 6) tastes = list("cookie" = 2, "cherry jelly" = 3) - foodtypes = GRAIN | SUGAR | FRUIT + foodtypes = GRAIN|DAIRY|SUGAR|FRUIT food_flags = FOOD_FINGER_FOOD w_class = WEIGHT_CLASS_SMALL crafting_complexity = FOOD_COMPLEXITY_3 diff --git a/code/game/objects/items/food/pie.dm b/code/game/objects/items/food/pie.dm index 7d6053b24a8a..9299ce90200b 100644 --- a/code/game/objects/items/food/pie.dm +++ b/code/game/objects/items/food/pie.dm @@ -6,7 +6,7 @@ max_volume = 80 food_reagents = list(/datum/reagent/consumable/nutriment = 10, /datum/reagent/consumable/nutriment/vitamin = 2) tastes = list("pie" = 1) - foodtypes = GRAIN + foodtypes = GRAIN | DAIRY venue_value = FOOD_PRICE_NORMAL crafting_complexity = FOOD_COMPLEXITY_2 /// type is spawned 5 at a time and replaces this pie when processed by cutting tool @@ -16,7 +16,7 @@ /obj/item/food/pie/make_processable() if (slice_type) - AddElement(/datum/element/processable, TOOL_KNIFE, slice_type, yield, table_required = TRUE, screentip_verb = "Slice") + AddElement(/datum/element/processable, TOOL_KNIFE, slice_type, yield, table_required = TRUE, screentip_verb = "Slice", sound_to_play = SFX_KNIFE_SLICE) /obj/item/food/pieslice name = "pie slice" @@ -24,7 +24,7 @@ w_class = WEIGHT_CLASS_TINY food_reagents = list(/datum/reagent/consumable/nutriment = 2) tastes = list("pie" = 1, "uncertainty" = 1) - foodtypes = GRAIN | VEGETABLES + foodtypes = GRAIN | DAIRY crafting_complexity = FOOD_COMPLEXITY_2 /obj/item/food/pie/plain @@ -36,9 +36,29 @@ /datum/reagent/consumable/nutriment/vitamin = 1, ) tastes = list("pie" = 1) - foodtypes = GRAIN crafting_complexity = FOOD_COMPLEXITY_2 +/* +/obj/item/food/pie/plain/Initialize(mapload) + . = ..() + AddComponent(/datum/component/customizable_reagent_holder, /obj/item/food/pie/empty, CUSTOM_INGREDIENT_ICON_FILL, max_ingredients = 8) + +/obj/item/food/pie/empty + name = "pie" + desc = "A custom pie made by a crazed chef." + icon_state = "pie_custom" + slice_type = /obj/item/food/pieslice/empty + +/obj/item/food/pieslice/empty + name = "pie slice" + desc = "A custom pie slice made by a crazed chef." + icon_state = "pie_custom_slice" + +/obj/item/food/pieslice/empty/Initialize(mapload) + . = ..() + AddComponent(/datum/component/customizable_reagent_holder, null, CUSTOM_INGREDIENT_ICON_FILL, max_ingredients = 8) +*/ + /obj/item/food/pie/cream name = "banana cream pie" desc = "Just like back home, on clown planet! HONK!" @@ -49,7 +69,7 @@ /datum/reagent/consumable/nutriment/vitamin = 4, ) tastes = list("pie" = 1) - foodtypes = GRAIN | DAIRY | SUGAR + foodtypes = GRAIN|DAIRY|SUGAR|FRUIT var/stunning = TRUE crafting_complexity = FOOD_COMPLEXITY_3 @@ -78,7 +98,7 @@ /datum/reagent/consumable/nutriment/vitamin = 4, ) tastes = list("pie" = 1, "blackberries" = 1) - foodtypes = GRAIN | FRUIT | SUGAR + foodtypes = GRAIN|FRUIT|DAIRY|SUGAR venue_value = FOOD_PRICE_NORMAL crafting_complexity = FOOD_COMPLEXITY_3 @@ -92,7 +112,7 @@ /datum/reagent/consumable/nutriment/vitamin = 5, ) tastes = list("pie" = 1, "meat" = 1, "salmon" = 1) - foodtypes = GRAIN | SUGAR | MEAT | FRUIT + foodtypes = GRAIN|DAIRY|SUGAR|MEAT|FRUIT crafting_complexity = FOOD_COMPLEXITY_4 /obj/item/food/pie/meatpie @@ -105,7 +125,7 @@ /datum/reagent/consumable/nutriment/protein = 2, ) tastes = list("pie" = 1, "meat" = 1) - foodtypes = GRAIN | MEAT + foodtypes = GRAIN|DAIRY|MEAT venue_value = FOOD_PRICE_NORMAL slice_type = /obj/item/food/pieslice/meatpie crafting_complexity = FOOD_COMPLEXITY_3 @@ -115,7 +135,7 @@ desc = "Oh nice, meat pie!" icon_state = "meatpie_slice" tastes = list("pie" = 1, "meat" = 1) - foodtypes = GRAIN | MEAT + foodtypes = GRAIN|DAIRY|MEAT crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/pie/tofupie @@ -128,7 +148,7 @@ /datum/reagent/consumable/nutriment/vitamin = 6, ) tastes = list("pie" = 1, "tofu" = 1) - foodtypes = GRAIN | VEGETABLES + foodtypes = GRAIN|DAIRY|VEGETABLES slice_type = /obj/item/food/pieslice/tofupie crafting_complexity = FOOD_COMPLEXITY_3 @@ -137,7 +157,7 @@ desc = "Oh nice, meat pie- WAIT A MINUTE!!" icon_state = "meatpie_slice" tastes = list("pie" = 1, "disappointment" = 1, "tofu" = 1) - foodtypes = GRAIN | VEGETABLES + foodtypes = GRAIN|DAIRY|VEGETABLES crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/pie/amanita_pie @@ -152,7 +172,7 @@ /datum/reagent/consumable/nutriment/vitamin = 4, ) tastes = list("pie" = 1, "mushroom" = 1) - foodtypes = GRAIN | VEGETABLES | TOXIC | GROSS + foodtypes = GRAIN|DAIRY|VEGETABLES|TOXIC|GROSS crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/pie/plump_pie @@ -164,7 +184,7 @@ /datum/reagent/consumable/nutriment/vitamin = 4, ) tastes = list("pie" = 1, "mushroom" = 1) - foodtypes = GRAIN | VEGETABLES + foodtypes = GRAIN|DAIRY|VEGETABLES crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/pie/plump_pie/Initialize(mapload) @@ -189,7 +209,7 @@ /datum/reagent/consumable/nutriment/vitamin = 6, ) tastes = list("pie" = 1, "meat" = 1, "acid" = 1) - foodtypes = GRAIN | MEAT + foodtypes = MEAT|GRAIN|DAIRY slice_type = /obj/item/food/pieslice/xemeatpie crafting_complexity = FOOD_COMPLEXITY_3 @@ -198,7 +218,7 @@ desc = "Oh god... Is that still moving?" icon_state = "xenopie_slice" tastes = list("pie" = 1, "acid" = 1, "meat" = 1) - foodtypes = GRAIN | MEAT + foodtypes = GRAIN|DAIRY|MEAT crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/pie/applepie @@ -210,7 +230,7 @@ /datum/reagent/consumable/nutriment/vitamin = 5, ) tastes = list("pie" = 1, "apple" = 1) - foodtypes = GRAIN | FRUIT | SUGAR + foodtypes = GRAIN|DAIRY|FRUIT|SUGAR slice_type = /obj/item/food/pieslice/apple crafting_complexity = FOOD_COMPLEXITY_3 @@ -219,7 +239,7 @@ desc = "A slice of comfy apple pie, warm autumn memories ahead." icon_state = "applepie_slice" tastes = list("pie" = 1, "apples" = 1) - foodtypes = GRAIN | FRUIT | SUGAR + foodtypes = GRAIN|DAIRY|FRUIT|SUGAR crafting_complexity = FOOD_COMPLEXITY_3 @@ -232,7 +252,7 @@ /datum/reagent/consumable/nutriment/vitamin = 5, ) tastes = list("pie" = 7, "Nicole Paige Brooks" = 2) - foodtypes = GRAIN | FRUIT | SUGAR + foodtypes = GRAIN|DAIRY|FRUIT|SUGAR slice_type = /obj/item/food/pieslice/cherry crafting_complexity = FOOD_COMPLEXITY_3 @@ -241,7 +261,7 @@ desc = "A slice of delicious cherry pie, I hope it's morellos!" icon_state = "cherrypie_slice" tastes = list("pie" = 1, "apples" = 1) - foodtypes = GRAIN | FRUIT | SUGAR + foodtypes = GRAIN|DAIRY|FRUIT|SUGAR crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/pie/pumpkinpie @@ -253,7 +273,7 @@ /datum/reagent/consumable/nutriment/vitamin = 5, ) tastes = list("pie" = 1, "pumpkin" = 1) - foodtypes = GRAIN | VEGETABLES | SUGAR + foodtypes = GRAIN|DAIRY|VEGETABLES|SUGAR slice_type = /obj/item/food/pieslice/pumpkin crafting_complexity = FOOD_COMPLEXITY_3 @@ -262,7 +282,7 @@ desc = "A slice of pumpkin pie, with whipped cream on top. Perfection." icon_state = "pumpkinpieslice" tastes = list("pie" = 1, "pumpkin" = 1) - foodtypes = GRAIN | VEGETABLES | SUGAR + foodtypes = GRAIN|DAIRY|VEGETABLES|SUGAR crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/pie/appletart @@ -275,7 +295,7 @@ /datum/reagent/consumable/nutriment/vitamin = 4, ) tastes = list("pie" = 1, "apple" = 1, "expensive metal" = 1) - foodtypes = GRAIN | FRUIT | SUGAR + foodtypes = GRAIN|DAIRY|FRUIT|SUGAR crafting_complexity = FOOD_COMPLEXITY_4 /obj/item/food/pie/grapetart @@ -287,7 +307,7 @@ /datum/reagent/consumable/nutriment/vitamin = 4, ) tastes = list("pie" = 1, "grape" = 1) - foodtypes = GRAIN | FRUIT | SUGAR + foodtypes = GRAIN|DAIRY|FRUIT|SUGAR crafting_complexity = FOOD_COMPLEXITY_4 /obj/item/food/pie/mimetart @@ -300,7 +320,8 @@ /datum/reagent/consumable/nothing = 10, ) tastes = list("nothing" = 3) - foodtypes = GRAIN + foodtypes = GRAIN | DAIRY | SUGAR + crafted_food_buff = /datum/status_effect/food/trait/mute /obj/item/food/pie/berrytart name = "berry tart" @@ -311,7 +332,7 @@ /datum/reagent/consumable/nutriment/vitamin = 5, ) tastes = list("pie" = 1, "berries" = 2) - foodtypes = GRAIN | FRUIT + foodtypes = GRAIN|DAIRY|FRUIT|SUGAR /obj/item/food/pie/cocolavatart name = "chocolate lava tart" @@ -322,7 +343,7 @@ /datum/reagent/consumable/nutriment/vitamin = 4, ) tastes = list("pie" = 1, "dark chocolate" = 3) - foodtypes = GRAIN | SUGAR + foodtypes = GRAIN|DAIRY|SUGAR /obj/item/food/pie/blumpkinpie name = "blumpkin pie" @@ -333,7 +354,7 @@ /datum/reagent/consumable/nutriment/vitamin = 6, ) tastes = list("pie" = 1, "a mouthful of pool water" = 1) - foodtypes = GRAIN | VEGETABLES + foodtypes = GRAIN|DAIRY|VEGETABLES|SUGAR slice_type = /obj/item/food/pieslice/blumpkin crafting_complexity = FOOD_COMPLEXITY_3 @@ -342,7 +363,7 @@ desc = "A slice of blumpkin pie, with whipped cream on top. Is this edible?" icon_state = "blumpkinpieslice" tastes = list("pie" = 1, "a mouthful of pool water" = 1) - foodtypes = GRAIN | VEGETABLES + foodtypes = GRAIN|DAIRY|VEGETABLES|SUGAR crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/pie/dulcedebatata @@ -376,7 +397,7 @@ /datum/reagent/consumable/nutriment/vitamin = 6, ) tastes = list("mint" = 1, "pie" = 1) - foodtypes = GRAIN | FRUIT | SUGAR + foodtypes = GRAIN|DAIRY|FRUIT|SUGAR slice_type = /obj/item/food/pieslice/frostypie crafting_complexity = FOOD_COMPLEXITY_3 @@ -397,7 +418,7 @@ /datum/reagent/consumable/nutriment/vitamin = 6, ) tastes = list("nuts" = 1, "pie" = 1) - foodtypes = NUTS | SUGAR + foodtypes = GRAIN | DAIRY | SUGAR slice_type = /obj/item/food/pieslice/baklava yield = 6 crafting_complexity = FOOD_COMPLEXITY_4 @@ -407,7 +428,8 @@ desc = "A portion of a delightful healthy snack made of nut layers with thin bread" icon_state = "baklavaslice" tastes = list("nuts" = 1, "pie" = 1) - foodtypes = NUTS | SUGAR + foodtypes = GRAIN | DAIRY | SUGAR + crafting_complexity = FOOD_COMPLEXITY_4 /obj/item/food/pie/frenchsilkpie name = "french silk pie" @@ -467,7 +489,7 @@ /datum/reagent/consumable/nutriment/vitamin = 2, ) tastes = list("pie" = 1, "the far off year of 2010" = 1) - foodtypes = GRAIN + foodtypes = GRAIN|DAIRY crafting_complexity = FOOD_COMPLEXITY_2 /obj/item/food/pie/bacid_pie @@ -479,7 +501,7 @@ /datum/reagent/consumable/liquidelectricity/enriched = 18 ) tastes = list("battery acid" = 2, "electricity" = 2, "a cyber world" = 2) - foodtypes = TOXIC + foodtypes = GRAIN|DAIRY|TOXIC slice_type = /obj/item/food/pieslice/bacid_pie yield = 4 crafting_complexity = FOOD_COMPLEXITY_3 diff --git a/code/game/objects/items/food/pizza.dm b/code/game/objects/items/food/pizza.dm index 9b467a6ea77e..3700bf09ee47 100644 --- a/code/game/objects/items/food/pizza.dm +++ b/code/game/objects/items/food/pizza.dm @@ -44,7 +44,7 @@ crafting_complexity = FOOD_COMPLEXITY_2 /obj/item/food/pizzaslice/make_processable() - AddElement(/datum/element/processable, TOOL_ROLLINGPIN, /obj/item/stack/sheet/pizza, 1, 1 SECONDS, table_required = TRUE, screentip_verb = "Flatten") + AddElement(/datum/element/processable, TOOL_ROLLINGPIN, /obj/item/stack/sheet/pizza, 1, 1 SECONDS, table_required = TRUE, screentip_verb = "Flatten", sound_to_play = SFX_ROLLING_PIN_ROLLING) /obj/item/food/pizza/margherita name = "pizza margherita" @@ -201,8 +201,8 @@ /datum/reagent/medicine/omnizine = 10, /datum/reagent/consumable/nutriment/vitamin = 5, ) - tastes = list("crust" = 1, "tomato" = 1, "cheese" = 1, "meat" = 1, "laziness" = 1) - foodtypes = GRAIN | VEGETABLES | DAIRY | MEAT | JUNKFOOD + tastes = list("crust" = 1, "tomato" = 1, "cheese" = 1, "umami" = 1, "laziness" = 1) + foodtypes = GRAIN|VEGETABLES|DAIRY|JUNKFOOD slice_type = /obj/item/food/pizzaslice/donkpocket boxtag = "Bangin' Donk" crafting_complexity = FOOD_COMPLEXITY_3 @@ -210,7 +210,7 @@ /obj/item/food/pizza/donkpocket/raw name = "raw donkpocket pizza" icon_state = "donkpocketpizza_raw" - foodtypes = GRAIN | VEGETABLES | DAIRY | MEAT | JUNKFOOD | RAW + foodtypes = GRAIN|VEGETABLES|DAIRY|JUNKFOOD|RAW slice_type = null /obj/item/food/pizza/donkpocket/raw/make_bakeable() @@ -220,8 +220,8 @@ name = "donkpocket pizza slice" desc = "Smells like donkpocket." icon_state = "donkpocketpizzaslice" - tastes = list("crust" = 1, "tomato" = 1, "cheese" = 1, "meat" = 1, "laziness" = 1) - foodtypes = GRAIN | VEGETABLES | DAIRY | MEAT | JUNKFOOD + tastes = list("crust" = 1, "tomato" = 1, "cheese" = 1, "umami" = 1, "laziness" = 1) + foodtypes = GRAIN|VEGETABLES|DAIRY|JUNKFOOD /obj/item/food/pizza/dank name = "dank pizza" @@ -363,12 +363,13 @@ tastes = list("crust" = 1, "tomato" = 1, "cheese" = 1, "pepperoni" = 2, "9 millimeter bullets" = 2) slice_type = /obj/item/food/pizzaslice/arnold boxtag = "9mm Pepperoni" + foodtypes = MEAT|GRAIN|DAIRY|VEGETABLES crafting_complexity = FOOD_COMPLEXITY_4 /obj/item/food/pizza/arnold/raw name = "raw Arnold pizza" icon_state = "arnoldpizza_raw" - foodtypes = GRAIN | DAIRY | VEGETABLES | RAW + foodtypes = MEAT|GRAIN|DAIRY|VEGETABLES|RAW slice_type = null /obj/item/food/pizza/arnold/raw/make_bakeable() @@ -444,14 +445,14 @@ ) tastes = list("pure electricity" = 4, "pizza" = 2) slice_type = /obj/item/food/pizzaslice/energy - foodtypes = TOXIC + foodtypes = GRAIN|TOXIC boxtag = "24 Hour Energy" crafting_complexity = FOOD_COMPLEXITY_2 /obj/item/food/pizza/energy/raw name = "raw energy pizza" icon_state = "energypizza_raw" - foodtypes = TOXIC + foodtypes = GRAIN|TOXIC|RAW slice_type = null /obj/item/food/pizza/energy/raw/make_bakeable() @@ -462,7 +463,7 @@ desc = "You're thinking about using this to power your modsuit. You should avoid eating this if you aren't an Ethereal." icon_state ="energypizzaslice" tastes = list("pure electricity" = 4, "pizza" = 2) - foodtypes = TOXIC + foodtypes = GRAIN|TOXIC crafting_complexity = FOOD_COMPLEXITY_2 /obj/item/food/raw_meat_calzone @@ -475,7 +476,7 @@ /datum/reagent/consumable/nutriment/protein = 2, ) tastes = list("raw dough" = 1, "raw meat" = 1, "cheese" = 1, "tomato sauce" = 1) - foodtypes = GRAIN | RAW | DAIRY | MEAT + foodtypes = GRAIN|VEGETABLES|DAIRY|MEAT|RAW w_class = WEIGHT_CLASS_SMALL crafting_complexity = FOOD_COMPLEXITY_3 @@ -492,7 +493,7 @@ /datum/reagent/consumable/nutriment/protein = 6, ) tastes = list("baked dough" = 1, "juicy meat" = 1, "melted cheese" = 1, "tomato sauce" = 1) - foodtypes = GRAIN | DAIRY | MEAT + foodtypes = GRAIN|VEGETABLES|DAIRY|MEAT w_class = WEIGHT_CLASS_SMALL crafting_complexity = FOOD_COMPLEXITY_3 @@ -505,7 +506,7 @@ /datum/reagent/consumable/nutriment/vitamin = 4, ) tastes = list("raw dough" = 1, "vegetables" = 1, "tomato sauce" = 1) - foodtypes = GRAIN | VEGETABLES + foodtypes = GRAIN|VEGETABLES|RAW w_class = WEIGHT_CLASS_SMALL crafting_complexity = FOOD_COMPLEXITY_3 diff --git a/code/game/objects/items/food/salad.dm b/code/game/objects/items/food/salad.dm index bfc3e12194f1..e838a6921d00 100644 --- a/code/game/objects/items/food/salad.dm +++ b/code/game/objects/items/food/salad.dm @@ -37,7 +37,7 @@ icon_state = "validsalad" food_reagents = list(/datum/reagent/consumable/nutriment = 5, /datum/reagent/consumable/nutriment/protein = 5, /datum/reagent/consumable/doctor_delight = 8, /datum/reagent/consumable/nutriment/vitamin = 6) tastes = list("leaves" = 1, "potato" = 1, "meat" = 1, "valids" = 1) - foodtypes = VEGETABLES | MEAT | FRIED | FRUIT + foodtypes = VEGETABLES | MEAT | FRIED /obj/item/food/salad/fruit name = "fruit salad" @@ -130,7 +130,7 @@ /datum/reagent/consumable/nutriment/vitamin = 6, ) tastes = list("rice" = 1, "cheese" = 1) - foodtypes = GRAIN | DAIRY + foodtypes = GRAIN|DAIRY|VEGETABLES venue_value = FOOD_PRICE_EXOTIC crafting_complexity = FOOD_COMPLEXITY_3 @@ -144,7 +144,7 @@ /datum/reagent/consumable/nutriment/vitamin = 4, ) tastes = list("rice" = 1, "egg" = 1) - foodtypes = GRAIN | MEAT //EGG = MEAT -NinjaNomNom 2017 + foodtypes = MEAT|VEGETABLES|GRAIN|EGG crafting_complexity = FOOD_COMPLEXITY_4 /obj/item/food/salad/edensalad @@ -261,7 +261,7 @@ crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/salad/greek_salad - name = "Greek salad" + name = "greek salad" desc = "A popular salad made of tomatoes, onions, feta cheese, and olives all drizzled in olive oil. Though it feels like it's missing something..." icon_state = "greek_salad" food_reagents = list( @@ -269,11 +269,11 @@ /datum/reagent/consumable/nutriment = 14, ) tastes = list("healthy greens" = 2, "olive dressing" = 1, "feta cheese" = 1) - foodtypes = VEGETABLES | DAIRY + foodtypes = VEGETABLES|FRUIT|DAIRY crafting_complexity = FOOD_COMPLEXITY_4 /obj/item/food/salad/caesar_salad - name = "Caesar salad" + name = "caesar salad" desc = "A simple yet flavorful salad of onions, lettuce, croutons, and shreds of cheese dressed in oil. Comes with a slice of pita bread!" icon_state = "caesar_salad" food_reagents = list( @@ -306,7 +306,7 @@ /datum/reagent/consumable/nutriment/protein = 4, ) tastes = list("creamy potatoes" = 2, "eggs" = 2, "mayonnaise" = 1, "onions" = 1) - foodtypes = VEGETABLES | BREAKFAST + foodtypes = MEAT|VEGETABLES|BREAKFAST|EGG crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/salad/spinach_fruit_salad @@ -318,7 +318,7 @@ /datum/reagent/consumable/nutriment = 12, ) tastes = list("spinach" = 2, "berries" = 2, "pineapple" = 2, "dressing" = 1) - foodtypes = VEGETABLES | FRUIT + foodtypes = VEGETABLES|FRUIT|PINEAPPLE crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/salad/antipasto_salad @@ -331,5 +331,5 @@ /datum/reagent/consumable/nutriment/protein = 6, ) tastes = list("lettuce" = 2, "salami" = 2, "mozzarella cheese" = 2, "tomatoes" = 2, "dressing" = 1) - foodtypes = VEGETABLES | DAIRY | MEAT + foodtypes = MEAT|VEGETABLES|FRUIT|DAIRY crafting_complexity = FOOD_COMPLEXITY_4 diff --git a/code/game/objects/items/food/sandwichtoast.dm b/code/game/objects/items/food/sandwichtoast.dm index e440a1039e6d..429c2b2618fb 100644 --- a/code/game/objects/items/food/sandwichtoast.dm +++ b/code/game/objects/items/food/sandwichtoast.dm @@ -9,7 +9,7 @@ /datum/reagent/consumable/nutriment/vitamin = 1, ) tastes = list("meat" = 2, "cheese" = 1, "bread" = 2, "lettuce" = 1) - foodtypes = GRAIN | VEGETABLES + foodtypes = GRAIN | VEGETABLES | DAIRY | MEAT food_flags = FOOD_FINGER_FOOD w_class = WEIGHT_CLASS_SMALL crafting_complexity = FOOD_COMPLEXITY_3 @@ -28,9 +28,9 @@ crafting_complexity = FOOD_COMPLEXITY_2 /obj/item/food/sandwich/cheese/make_grillable() - AddComponent(/datum/component/grillable, /obj/item/food/sandwich/cheese/grilled, rand(30 SECONDS, 60 SECONDS), TRUE) + AddComponent(/datum/component/grillable, /obj/item/food/sandwich/grilled_cheese, rand(30 SECONDS, 60 SECONDS), TRUE) -/obj/item/food/sandwich/cheese/grilled +/obj/item/food/sandwich/grilled_cheese name = "grilled cheese sandwich" desc = "A warm, melty sandwich that goes perfectly with tomato soup." icon_state = "toastedsandwich" @@ -95,7 +95,7 @@ /datum/reagent/consumable/nutriment/vitamin = 1, ) tastes = list("butter" = 1, "toast" = 1) - foodtypes = GRAIN | BREAKFAST + foodtypes = GRAIN | BREAKFAST | DAIRY food_flags = FOOD_FINGER_FOOD w_class = WEIGHT_CLASS_SMALL crafting_complexity = FOOD_COMPLEXITY_2 @@ -118,7 +118,7 @@ /obj/item/food/jelliedtoast/slime food_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/toxin/slimejelly = 8, /datum/reagent/consumable/nutriment/vitamin = 4) - foodtypes = GRAIN | TOXIC | SUGAR | BREAKFAST + foodtypes = GRAIN | TOXIC | BREAKFAST /obj/item/food/twobread name = "two bread" @@ -219,7 +219,7 @@ crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/sandwich/philly_cheesesteak - name = "Philly cheesesteak" + name = "philly cheesesteak" desc = "A popular sandwich made of sliced meat, onions, melted cheese in a long hoagie roll. Mouthwatering doesn't even begin to describe it." icon_state = "philly_cheesesteak" food_reagents = list( @@ -241,7 +241,7 @@ /datum/reagent/consumable/nutriment/vitamin = 1, ) tastes = list("bread" = 2, "Britain" = 1, "butter" = 1, "toast" = 1) - foodtypes = GRAIN + foodtypes = GRAIN|DAIRY crafting_complexity = FOOD_COMPLEXITY_2 /obj/item/food/sandwich/death @@ -254,7 +254,7 @@ /datum/reagent/consumable/nutriment/vitamin = 6, ) tastes = list("bread" = 1, "meat" = 1, "tomato sauce" = 1, "death" = 1) - foodtypes = GRAIN | MEAT + foodtypes = MEAT|VEGETABLES|GRAIN eat_time = 4 SECONDS // Makes it harder to force-feed this to people as a weapon, as funny as that is. /obj/item/food/sandwich/death/Initialize(mapload) diff --git a/code/game/objects/items/food/snacks.dm b/code/game/objects/items/food/snacks.dm index ce87f28b839a..c8c0cec3df88 100644 --- a/code/game/objects/items/food/snacks.dm +++ b/code/game/objects/items/food/snacks.dm @@ -94,7 +94,7 @@ ) junkiness = 20 tastes = list("salt" = 1, "crisps" = 1) - foodtypes = JUNKFOOD | FRIED + foodtypes = VEGETABLES|JUNKFOOD|FRIED w_class = WEIGHT_CLASS_SMALL /obj/item/food/chips/make_leave_trash() diff --git a/code/game/objects/items/food/soup.dm b/code/game/objects/items/food/soup.dm index 07817d546e94..6fe308b363f6 100644 --- a/code/game/objects/items/food/soup.dm +++ b/code/game/objects/items/food/soup.dm @@ -26,14 +26,14 @@ reagents.add_reagent(/datum/reagent/consumable/nutriment/vitamin, 1) /obj/item/food/bowled/mammi - name = "Mammi" + name = "mammi" desc = "A bowl of mushy bread and milk. It reminds you, not too fondly, of a bowel movement." icon_state = "mammi" food_reagents = list( /datum/reagent/consumable/nutriment = 11, /datum/reagent/consumable/nutriment/vitamin = 2, ) - foodtypes = SUGAR | DAIRY + foodtypes = SUGAR | DAIRY | JUNKFOOD | GRAIN crafting_complexity = FOOD_COMPLEXITY_2 /obj/item/food/bowled/spacylibertyduff diff --git a/code/game/objects/items/food/spaghetti.dm b/code/game/objects/items/food/spaghetti.dm index 0ca12fae3d32..4b1fbc54838b 100644 --- a/code/game/objects/items/food/spaghetti.dm +++ b/code/game/objects/items/food/spaghetti.dm @@ -178,7 +178,7 @@ /datum/reagent/consumable/nutriment/protein = 6, ) tastes = list("noodles" = 5, "meat" = 3, "egg" = 4, "dried seaweed" = 2) - foodtypes = GRAIN | MEAT | VEGETABLES + foodtypes = GRAIN | MEAT | VEGETABLES | EGG crafting_complexity = FOOD_COMPLEXITY_4 /obj/item/food/spaghetti/kitakata_ramen @@ -250,3 +250,16 @@ tastes = list("noodles" = 5, "fried tofu" = 4, "lime" = 2, "peanut" = 3, "onion" = 2) foodtypes = GRAIN | VEGETABLES | NUTS | FRUIT crafting_complexity = FOOD_COMPLEXITY_4 + +/obj/item/food/spaghetti/carbonara + name = "spaghetti carbonara" + desc = "Silky eggs, crispy pork, cheesy bliss. Mamma mia!" + icon_state = "carbonara" + food_reagents = list( + /datum/reagent/consumable/nutriment = 10, + /datum/reagent/consumable/nutriment/protein = 6, + /datum/reagent/consumable/nutriment/vitamin = 4, + ) + tastes = list("spaghetti" = 1, "parmigiano reggiano" = 1, "guanciale" = 1) + foodtypes = GRAIN | MEAT | DAIRY | EGG + crafting_complexity = FOOD_COMPLEXITY_4 diff --git a/code/game/objects/items/food/sweets.dm b/code/game/objects/items/food/sweets.dm index 2084778fd0f8..c3502e2430c6 100644 --- a/code/game/objects/items/food/sweets.dm +++ b/code/game/objects/items/food/sweets.dm @@ -128,7 +128,7 @@ /datum/reagent/consumable/sugar = 1, ) tastes = list("chocolate" = 3, "oranges" = 1) - foodtypes = JUNKFOOD | SUGAR + foodtypes = JUNKFOOD | FRUIT | SUGAR food_flags = FOOD_FINGER_FOOD w_class = WEIGHT_CLASS_SMALL crafting_complexity = FOOD_COMPLEXITY_2 @@ -143,7 +143,7 @@ /datum/reagent/consumable/coco = 1, ) tastes = list("chocolate" = 1) - foodtypes = DAIRY | JUNKFOOD | SUGAR + foodtypes = JUNKFOOD|SUGAR food_flags = FOOD_FINGER_FOOD w_class = WEIGHT_CLASS_TINY @@ -176,7 +176,7 @@ /datum/reagent/consumable/nutriment/vitamin = 3, ) tastes = list("chocolate" = 1, "peanuts" = 1) - foodtypes = DAIRY | SUGAR | JUNKFOOD | NUTS + foodtypes = SUGAR|JUNKFOOD|NUTS crafting_complexity = FOOD_COMPLEXITY_1 /obj/item/food/bonbon/peanut_butter_cup @@ -188,7 +188,7 @@ /datum/reagent/consumable/nutriment/vitamin = 3, ) tastes = list("chocolate" = 1, "peanut butter" = 1) - foodtypes = DAIRY | SUGAR | JUNKFOOD | NUTS + foodtypes = SUGAR|JUNKFOOD|NUTS crafting_complexity = FOOD_COMPLEXITY_1 // Gum @@ -226,7 +226,7 @@ color = "#60A584" /obj/item/food/bubblegum/happiness - name = "HP+ gum" + name = "\improper HP+ gum" desc = "A rubbery strip of gum. It smells funny." food_reagents = list(/datum/reagent/drug/happiness = 15) tastes = list("paint thinner" = 1) @@ -346,7 +346,7 @@ /datum/reagent/medicine/omnizine = 2, ) //lollipop, but vitamins = toxins tastes = list("cobwebs" = 1, "sugar" = 2) - foodtypes = JUNKFOOD | SUGAR | BUGS + foodtypes = JUNKFOOD|SUGAR|MEAT|BUGS food_flags = FOOD_FINGER_FOOD slot_flags = ITEM_SLOT_MASK crafting_complexity = FOOD_COMPLEXITY_1 diff --git a/code/game/objects/items/food/vegetables.dm b/code/game/objects/items/food/vegetables.dm index dd3ae8c450bd..0ec2e5fc8326 100644 --- a/code/game/objects/items/food/vegetables.dm +++ b/code/game/objects/items/food/vegetables.dm @@ -125,7 +125,7 @@ /datum/reagent/consumable/nutriment/vitamin = 2, ) tastes = list("fries" = 3, "cheese" = 1) - foodtypes = VEGETABLES | DAIRY + foodtypes = VEGETABLES|DAIRY|FRIED w_class = WEIGHT_CLASS_SMALL venue_value = FOOD_PRICE_CHEAP crafting_complexity = FOOD_COMPLEXITY_2 @@ -155,7 +155,7 @@ icon_state = "poutine" food_reagents = list(/datum/reagent/consumable/nutriment = 7) tastes = list("potato" = 3, "gravy" = 1, "squeaky cheese" = 1) - foodtypes = VEGETABLES | FRIED | MEAT + foodtypes = VEGETABLES|DAIRY|FRIED|MEAT w_class = WEIGHT_CLASS_SMALL venue_value = FOOD_PRICE_CHEAP crafting_complexity = FOOD_COMPLEXITY_3 diff --git a/code/game/objects/items/kitchen.dm b/code/game/objects/items/kitchen.dm index e26808ee4e10..0d7a53e2c357 100644 --- a/code/game/objects/items/kitchen.dm +++ b/code/game/objects/items/kitchen.dm @@ -38,6 +38,9 @@ sharpness = SHARP_POINTY var/datum/reagent/forkload //used to eat omelette custom_price = PAYCHECK_LOWER + sound_vary = TRUE + pickup_sound = SFX_CUTLERY_PICKUP + drop_sound = SFX_CUTLERY_DROP /datum/armor/kitchen_fork fire = 50 @@ -169,8 +172,11 @@ attack_verb_simple = list("bash", "batter", "bludgeon", "thrash", "whack") custom_price = PAYCHECK_CREW * 1.5 tool_behaviour = TOOL_ROLLINGPIN - drop_sound = 'maplestation_modules/sound/items/drop/wooden.ogg' - pickup_sound = 'maplestation_modules/sound/items/pickup/wooden.ogg' + // drop_sound = 'maplestation_modules/sound/items/drop/wooden.ogg' + // pickup_sound = 'maplestation_modules/sound/items/pickup/wooden.ogg' + // sound_vary = TRUE + pickup_sound = SFX_ROLLING_PIN_PICKUP + drop_sound = SFX_ROLLING_PIN_DROP /obj/item/kitchen/rollingpin/illegal name = "metal rolling pin" @@ -208,6 +214,9 @@ custom_price = PAYCHECK_LOWER * 2 tool_behaviour = TOOL_MINING toolspeed = 25 // Literally 25 times worse than the base pickaxe + sound_vary = TRUE + pickup_sound = SFX_CUTLERY_PICKUP + drop_sound = SFX_CUTLERY_DROP var/spoon_sip_size = 5 diff --git a/code/game/objects/items/knives.dm b/code/game/objects/items/knives.dm index d4e46eabe6e9..627602f44e22 100644 --- a/code/game/objects/items/knives.dm +++ b/code/game/objects/items/knives.dm @@ -27,6 +27,12 @@ tool_behaviour = TOOL_KNIFE drop_sound = 'maplestation_modules/sound/items/drop/knife2.ogg' pickup_sound = 'maplestation_modules/sound/items/pickup/knife2.ogg' + // var/list/alt_continuous = list("stabs", "pierces", "shanks") + // var/list/alt_simple = list("stab", "pierce", "shank") + // sound_vary = TRUE + operating_sound = SFX_KNIFE_SLICE + // pickup_sound = SFX_KNIFE_PICKUP + // drop_sound = SFX_KNIFE_DROP /datum/armor/item_knife fire = 50 diff --git a/code/game/objects/items/storage/bags.dm b/code/game/objects/items/storage/bags.dm index 0f821321d8bb..a74e37ad06a7 100644 --- a/code/game/objects/items/storage/bags.dm +++ b/code/game/objects/items/storage/bags.dm @@ -358,6 +358,9 @@ custom_price = PAYCHECK_CREW * 0.6 drop_sound = 'maplestation_modules/sound/items/drop/metal_pot.ogg' pickup_sound = 'maplestation_modules/sound/items/pickup/metal_pot.ogg' + // sound_vary = TRUE + // pickup_sound = SFX_TRAY_PICKUP + // drop_sound = SFX_TRAY_DROP /obj/item/storage/bag/tray/Initialize(mapload) . = ..() diff --git a/code/game/objects/structures/maintenance.dm b/code/game/objects/structures/maintenance.dm index b6d39e486cc8..0d4fc6782288 100644 --- a/code/game/objects/structures/maintenance.dm +++ b/code/game/objects/structures/maintenance.dm @@ -11,6 +11,8 @@ at the cost of risking a vicious bite.**/ var/obj/item/hidden_item ///This var determines if there is a chance to receive a bite when sticking your hand into the water. var/critter_infested = TRUE + ///A subtle loop which plays a drop of water sound every once in a while + var/datum/looping_sound/drip/drip_sfx ///weighted loot table for what loot you can find inside the moisture trap. ///the actual loot isn't that great and should probably be improved and expanded later. var/static/list/loot_table = list( @@ -45,11 +47,14 @@ at the cost of risking a vicious bite.**/ fish_source.fish_table[picked_item] = 5 fish_source.fish_counts[picked_item] = 1; AddComponent(/datum/component/fishing_spot, fish_source) + drip_sfx = new(src) + drip_sfx.start() /obj/structure/moisture_trap/Destroy() if(hidden_item) QDEL_NULL(hidden_item) + drip_sfx?.stop(TRUE) return ..() @@ -71,6 +76,7 @@ at the cost of risking a vicious bite.**/ to_chat(user, span_warning("You need to lie down to reach into [src].")) return to_chat(user, span_notice("You reach down into the cold water of the basin.")) + playsound(src,'sound/effects/submerge.ogg', 25, TRUE) if(!do_after(user, 2 SECONDS, target = src)) return if(hidden_item) @@ -108,6 +114,7 @@ at the cost of risking a vicious bite.**/ return hidden_item = I to_chat(user, span_notice("You hide [I] inside the basin.")) + playsound(src,'sound/effects/splash.ogg', 55, TRUE) #define ALTAR_INACTIVE 0 #define ALTAR_STAGEONE 1 diff --git a/code/game/objects/structures/water_structures/sink.dm b/code/game/objects/structures/water_structures/sink.dm index 837e61c7a048..1059f9fd5b0f 100644 --- a/code/game/objects/structures/water_structures/sink.dm +++ b/code/game/objects/structures/water_structures/sink.dm @@ -73,10 +73,11 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/structure/sink, (-14)) if(busy) to_chat(user, span_warning("Someone's already washing here!")) return - var/selected_area = parse_zone(user.zone_selected) // Non-module change : should be `user.parse_zone_with_bodypart()`, don't have that yet - var/washing_face = 0 - if(selected_area in list(BODY_ZONE_HEAD, BODY_ZONE_PRECISE_MOUTH, BODY_ZONE_PRECISE_EYES)) - washing_face = 1 + // NON-MODULE CHANGE + var/selected_area = deprecise_zone(user.zone_selected) + var/washing_face = selected_area == BODY_ZONE_HEAD + + playsound(src, 'sound/machines/sink-faucet.ogg', 50) user.visible_message(span_notice("[user] starts washing [user.p_their()] [washing_face ? "face" : "hands"]..."), \ span_notice("You start washing your [washing_face ? "face" : "hands"]...")) busy = TRUE @@ -192,6 +193,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/structure/sink, (-14)) if(!user.combat_mode || (O.item_flags & NOBLUDGEON)) to_chat(user, span_notice("You start washing [O]...")) + playsound(src, 'sound/machines/sink-faucet.ogg', 50) busy = TRUE if(!do_after(user, 4 SECONDS, target = src)) busy = FALSE diff --git a/code/game/sound.dm b/code/game/sound.dm index 749288455fdf..97b51660741b 100644 --- a/code/game/sound.dm +++ b/code/game/sound.dm @@ -291,420 +291,5 @@ /proc/get_sfx(soundin) if(!istext(soundin)) return soundin - switch(soundin) - if(SFX_SHATTER) - soundin = pick('sound/effects/glassbr1.ogg','sound/effects/glassbr2.ogg','sound/effects/glassbr3.ogg') - if(SFX_EXPLOSION) - soundin = pick('sound/effects/explosion1.ogg','sound/effects/explosion2.ogg') - if(SFX_EXPLOSION_CREAKING) - soundin = pick('sound/effects/explosioncreak1.ogg', 'sound/effects/explosioncreak2.ogg') - if(SFX_HULL_CREAKING) - soundin = pick('sound/effects/creak1.ogg', 'sound/effects/creak2.ogg', 'sound/effects/creak3.ogg') - if(SFX_SPARKS) - soundin = pick('sound/effects/sparks1.ogg','sound/effects/sparks2.ogg','sound/effects/sparks3.ogg','sound/effects/sparks4.ogg') - if(SFX_RUSTLE) - soundin = pick('sound/effects/rustle1.ogg','sound/effects/rustle2.ogg','sound/effects/rustle3.ogg','sound/effects/rustle4.ogg','sound/effects/rustle5.ogg') - if(SFX_BODYFALL) - soundin = pick('sound/effects/bodyfall1.ogg','sound/effects/bodyfall2.ogg','sound/effects/bodyfall3.ogg','sound/effects/bodyfall4.ogg') - if(SFX_PUNCH) - soundin = pick('sound/weapons/punch1.ogg','sound/weapons/punch2.ogg','sound/weapons/punch3.ogg','sound/weapons/punch4.ogg') - if(SFX_CLOWN_STEP) - soundin = pick('sound/effects/footstep/clownstep1.ogg','sound/effects/footstep/clownstep2.ogg') - if(SFX_SUIT_STEP) - soundin = pick( - 'sound/items/handling/armor_rustle/riot_armor/suitstep1.ogg', - 'sound/items/handling/armor_rustle/riot_armor/suitstep2.ogg', - ) - if(SFX_SWING_HIT) - soundin = pick('sound/weapons/genhit1.ogg', 'sound/weapons/genhit2.ogg', 'sound/weapons/genhit3.ogg') - if(SFX_HISS) - soundin = pick('sound/voice/hiss1.ogg','sound/voice/hiss2.ogg','sound/voice/hiss3.ogg','sound/voice/hiss4.ogg') - if(SFX_PAGE_TURN) - soundin = pick('sound/effects/pageturn1.ogg', 'sound/effects/pageturn2.ogg','sound/effects/pageturn3.ogg') - if(SFX_RICOCHET) - soundin = pick( 'sound/weapons/effects/ric1.ogg', 'sound/weapons/effects/ric2.ogg','sound/weapons/effects/ric3.ogg','sound/weapons/effects/ric4.ogg','sound/weapons/effects/ric5.ogg') - if(SFX_TERMINAL_TYPE) - soundin = pick(list( - 'sound/machines/terminal_button01.ogg', - 'sound/machines/terminal_button02.ogg', - 'sound/machines/terminal_button03.ogg', - 'sound/machines/terminal_button04.ogg', - 'sound/machines/terminal_button05.ogg', - 'sound/machines/terminal_button06.ogg', - 'sound/machines/terminal_button07.ogg', - 'sound/machines/terminal_button08.ogg', - )) - if(SFX_DESECRATION) - soundin = pick('sound/misc/desecration-01.ogg', 'sound/misc/desecration-02.ogg', 'sound/misc/desecration-03.ogg') - if(SFX_IM_HERE) - soundin = pick('sound/hallucinations/im_here1.ogg', 'sound/hallucinations/im_here2.ogg') - if(SFX_CAN_OPEN) - soundin = pick('sound/effects/can_open1.ogg', 'sound/effects/can_open2.ogg', 'sound/effects/can_open3.ogg') - if(SFX_BULLET_MISS) - soundin = pick('sound/weapons/bulletflyby.ogg', 'sound/weapons/bulletflyby2.ogg', 'sound/weapons/bulletflyby3.ogg') - if(SFX_REVOLVER_SPIN) - soundin = pick('sound/weapons/gun/revolver/spin1.ogg', 'sound/weapons/gun/revolver/spin2.ogg', 'sound/weapons/gun/revolver/spin3.ogg') - if(SFX_LAW) - soundin = pick(list( - 'sound/voice/beepsky/creep.ogg', - 'sound/voice/beepsky/god.ogg', - 'sound/voice/beepsky/iamthelaw.ogg', - 'sound/voice/beepsky/insult.ogg', - 'sound/voice/beepsky/radio.ogg', - 'sound/voice/beepsky/secureday.ogg', - )) - if(SFX_HONKBOT_E) - soundin = pick(list( - 'sound/effects/pray.ogg', - 'sound/effects/reee.ogg', - 'sound/items/AirHorn.ogg', - 'sound/items/AirHorn2.ogg', - 'sound/items/bikehorn.ogg', - 'sound/items/WEEOO1.ogg', - 'sound/machines/buzz-sigh.ogg', - 'sound/machines/ping.ogg', - 'sound/magic/Fireball.ogg', - 'sound/misc/sadtrombone.ogg', - 'sound/voice/beepsky/creep.ogg', - 'sound/voice/beepsky/iamthelaw.ogg', - 'sound/voice/hiss1.ogg', - 'sound/weapons/bladeslice.ogg', - 'sound/weapons/flashbang.ogg', - )) - if(SFX_GOOSE) - soundin = pick('sound/creatures/goose1.ogg', 'sound/creatures/goose2.ogg', 'sound/creatures/goose3.ogg', 'sound/creatures/goose4.ogg') - if(SFX_WARPSPEED) - soundin = 'sound/runtime/hyperspace/hyperspace_begin.ogg' - if(SFX_SM_CALM) - soundin = pick(list( - 'sound/machines/sm/accent/normal/1.ogg', - 'sound/machines/sm/accent/normal/2.ogg', - 'sound/machines/sm/accent/normal/3.ogg', - 'sound/machines/sm/accent/normal/4.ogg', - 'sound/machines/sm/accent/normal/5.ogg', - 'sound/machines/sm/accent/normal/6.ogg', - 'sound/machines/sm/accent/normal/7.ogg', - 'sound/machines/sm/accent/normal/8.ogg', - 'sound/machines/sm/accent/normal/9.ogg', - 'sound/machines/sm/accent/normal/10.ogg', - 'sound/machines/sm/accent/normal/11.ogg', - 'sound/machines/sm/accent/normal/12.ogg', - 'sound/machines/sm/accent/normal/13.ogg', - 'sound/machines/sm/accent/normal/14.ogg', - 'sound/machines/sm/accent/normal/15.ogg', - 'sound/machines/sm/accent/normal/16.ogg', - 'sound/machines/sm/accent/normal/17.ogg', - 'sound/machines/sm/accent/normal/18.ogg', - 'sound/machines/sm/accent/normal/19.ogg', - 'sound/machines/sm/accent/normal/20.ogg', - 'sound/machines/sm/accent/normal/21.ogg', - 'sound/machines/sm/accent/normal/22.ogg', - 'sound/machines/sm/accent/normal/23.ogg', - 'sound/machines/sm/accent/normal/24.ogg', - 'sound/machines/sm/accent/normal/25.ogg', - 'sound/machines/sm/accent/normal/26.ogg', - 'sound/machines/sm/accent/normal/27.ogg', - 'sound/machines/sm/accent/normal/28.ogg', - 'sound/machines/sm/accent/normal/29.ogg', - 'sound/machines/sm/accent/normal/30.ogg', - 'sound/machines/sm/accent/normal/31.ogg', - 'sound/machines/sm/accent/normal/32.ogg', - 'sound/machines/sm/accent/normal/33.ogg', - )) - if(SFX_SM_DELAM) - soundin = pick(list( - 'sound/machines/sm/accent/delam/1.ogg', - 'sound/machines/sm/accent/delam/2.ogg', - 'sound/machines/sm/accent/delam/3.ogg', - 'sound/machines/sm/accent/delam/4.ogg', - 'sound/machines/sm/accent/delam/5.ogg', - 'sound/machines/sm/accent/delam/6.ogg', - 'sound/machines/sm/accent/delam/7.ogg', - 'sound/machines/sm/accent/delam/8.ogg', - 'sound/machines/sm/accent/delam/9.ogg', - 'sound/machines/sm/accent/delam/10.ogg', - 'sound/machines/sm/accent/delam/11.ogg', - 'sound/machines/sm/accent/delam/12.ogg', - 'sound/machines/sm/accent/delam/13.ogg', - 'sound/machines/sm/accent/delam/14.ogg', - 'sound/machines/sm/accent/delam/15.ogg', - 'sound/machines/sm/accent/delam/16.ogg', - 'sound/machines/sm/accent/delam/17.ogg', - 'sound/machines/sm/accent/delam/18.ogg', - 'sound/machines/sm/accent/delam/19.ogg', - 'sound/machines/sm/accent/delam/20.ogg', - 'sound/machines/sm/accent/delam/21.ogg', - 'sound/machines/sm/accent/delam/22.ogg', - 'sound/machines/sm/accent/delam/23.ogg', - 'sound/machines/sm/accent/delam/24.ogg', - 'sound/machines/sm/accent/delam/25.ogg', - 'sound/machines/sm/accent/delam/26.ogg', - 'sound/machines/sm/accent/delam/27.ogg', - 'sound/machines/sm/accent/delam/28.ogg', - 'sound/machines/sm/accent/delam/29.ogg', - 'sound/machines/sm/accent/delam/30.ogg', - 'sound/machines/sm/accent/delam/31.ogg', - 'sound/machines/sm/accent/delam/32.ogg', - 'sound/machines/sm/accent/delam/33.ogg', - )) - if(SFX_HYPERTORUS_CALM) - soundin = pick(list( - 'sound/machines/sm/accent/normal/1.ogg', - 'sound/machines/sm/accent/normal/2.ogg', - 'sound/machines/sm/accent/normal/3.ogg', - 'sound/machines/sm/accent/normal/4.ogg', - 'sound/machines/sm/accent/normal/5.ogg', - 'sound/machines/sm/accent/normal/6.ogg', - 'sound/machines/sm/accent/normal/7.ogg', - 'sound/machines/sm/accent/normal/8.ogg', - 'sound/machines/sm/accent/normal/9.ogg', - 'sound/machines/sm/accent/normal/10.ogg', - 'sound/machines/sm/accent/normal/11.ogg', - 'sound/machines/sm/accent/normal/12.ogg', - 'sound/machines/sm/accent/normal/13.ogg', - 'sound/machines/sm/accent/normal/14.ogg', - 'sound/machines/sm/accent/normal/15.ogg', - 'sound/machines/sm/accent/normal/16.ogg', - 'sound/machines/sm/accent/normal/17.ogg', - 'sound/machines/sm/accent/normal/18.ogg', - 'sound/machines/sm/accent/normal/19.ogg', - 'sound/machines/sm/accent/normal/20.ogg', - 'sound/machines/sm/accent/normal/21.ogg', - 'sound/machines/sm/accent/normal/22.ogg', - 'sound/machines/sm/accent/normal/23.ogg', - 'sound/machines/sm/accent/normal/24.ogg', - 'sound/machines/sm/accent/normal/25.ogg', - 'sound/machines/sm/accent/normal/26.ogg', - 'sound/machines/sm/accent/normal/27.ogg', - 'sound/machines/sm/accent/normal/28.ogg', - 'sound/machines/sm/accent/normal/29.ogg', - 'sound/machines/sm/accent/normal/30.ogg', - 'sound/machines/sm/accent/normal/31.ogg', - 'sound/machines/sm/accent/normal/32.ogg', - 'sound/machines/sm/accent/normal/33.ogg', - )) - if(SFX_HYPERTORUS_MELTING) - soundin = pick(list( - 'sound/machines/sm/accent/delam/1.ogg', - 'sound/machines/sm/accent/delam/2.ogg', - 'sound/machines/sm/accent/delam/3.ogg', - 'sound/machines/sm/accent/delam/4.ogg', - 'sound/machines/sm/accent/delam/5.ogg', - 'sound/machines/sm/accent/delam/6.ogg', - 'sound/machines/sm/accent/delam/7.ogg', - 'sound/machines/sm/accent/delam/8.ogg', - 'sound/machines/sm/accent/delam/9.ogg', - 'sound/machines/sm/accent/delam/10.ogg', - 'sound/machines/sm/accent/delam/11.ogg', - 'sound/machines/sm/accent/delam/12.ogg', - 'sound/machines/sm/accent/delam/13.ogg', - 'sound/machines/sm/accent/delam/14.ogg', - 'sound/machines/sm/accent/delam/15.ogg', - 'sound/machines/sm/accent/delam/16.ogg', - 'sound/machines/sm/accent/delam/17.ogg', - 'sound/machines/sm/accent/delam/18.ogg', - 'sound/machines/sm/accent/delam/19.ogg', - 'sound/machines/sm/accent/delam/20.ogg', - 'sound/machines/sm/accent/delam/21.ogg', - 'sound/machines/sm/accent/delam/22.ogg', - 'sound/machines/sm/accent/delam/23.ogg', - 'sound/machines/sm/accent/delam/24.ogg', - 'sound/machines/sm/accent/delam/25.ogg', - 'sound/machines/sm/accent/delam/26.ogg', - 'sound/machines/sm/accent/delam/27.ogg', - 'sound/machines/sm/accent/delam/28.ogg', - 'sound/machines/sm/accent/delam/29.ogg', - 'sound/machines/sm/accent/delam/30.ogg', - 'sound/machines/sm/accent/delam/31.ogg', - 'sound/machines/sm/accent/delam/32.ogg', - 'sound/machines/sm/accent/delam/33.ogg', - )) - if(SFX_CRUNCHY_BUSH_WHACK) - soundin = pick('sound/effects/crunchybushwhack1.ogg', 'sound/effects/crunchybushwhack2.ogg', 'sound/effects/crunchybushwhack3.ogg') - if(SFX_TREE_CHOP) - soundin = pick('sound/effects/treechop1.ogg', 'sound/effects/treechop2.ogg', 'sound/effects/treechop3.ogg') - if(SFX_ROCK_TAP) - soundin = pick('sound/effects/rocktap1.ogg', 'sound/effects/rocktap2.ogg', 'sound/effects/rocktap3.ogg') - if(SFX_SEAR) - soundin = 'sound/weapons/sear.ogg' - if(SFX_REEL) - soundin = pick( - 'sound/items/reel1.ogg', - 'sound/items/reel2.ogg', - 'sound/items/reel3.ogg', - 'sound/items/reel4.ogg', - 'sound/items/reel5.ogg', - ) - if(SFX_RATTLE) - soundin = pick( - 'sound/items/rattle1.ogg', - 'sound/items/rattle2.ogg', - 'sound/items/rattle3.ogg', - ) - if(SFX_PORTAL_CLOSE) - soundin = 'sound/effects/portal_close.ogg' - if(SFX_PORTAL_ENTER) - soundin = 'sound/effects/portal_travel.ogg' - if(SFX_PORTAL_CREATED) - soundin = pick( - 'sound/effects/portal_open_1.ogg', - 'sound/effects/portal_open_2.ogg', - 'sound/effects/portal_open_3.ogg', - ) - if(SFX_SCREECH) - soundin = pick( - 'sound/creatures/monkey/monkey_screech_1.ogg', - 'sound/creatures/monkey/monkey_screech_2.ogg', - 'sound/creatures/monkey/monkey_screech_3.ogg', - 'sound/creatures/monkey/monkey_screech_4.ogg', - 'sound/creatures/monkey/monkey_screech_5.ogg', - 'sound/creatures/monkey/monkey_screech_6.ogg', - 'sound/creatures/monkey/monkey_screech_7.ogg', - ) - if(SFX_TOOL_SWITCH) - soundin = 'sound/items/handling/tool_switch.ogg' - if(SFX_MUFFLED_SPEECH) - soundin = pick( - 'sound/effects/muffspeech/muffspeech1.ogg', - 'sound/effects/muffspeech/muffspeech2.ogg', - 'sound/effects/muffspeech/muffspeech3.ogg', - 'sound/effects/muffspeech/muffspeech4.ogg', - 'sound/effects/muffspeech/muffspeech5.ogg', - 'sound/effects/muffspeech/muffspeech6.ogg', - 'sound/effects/muffspeech/muffspeech7.ogg', - 'sound/effects/muffspeech/muffspeech8.ogg', - 'sound/effects/muffspeech/muffspeech9.ogg', - ) - if(SFX_DEFAULT_FISH_SLAP) - soundin = 'sound/creatures/fish/fish_slap1.ogg' - if(SFX_ALT_FISH_SLAP) - soundin = 'sound/creatures/fish/fish_slap2.ogg' - if(SFX_FISH_PICKUP) - soundin = pick( - 'sound/creatures/fish/fish_pickup1.ogg', - 'sound/creatures/fish/fish_pickup2.ogg', - ) - if(SFX_LIQUID_POUR) - soundin = pick( - 'sound/effects/liquid_pour1.ogg', - 'sound/effects/liquid_pour2.ogg', - 'sound/effects/liquid_pour3.ogg', - ) - if(SFX_SNORE_FEMALE) - soundin = pick_weight(list( - 'sound/voice/human/snore/snore_female1.ogg' = 33, - 'sound/voice/human/snore/snore_female2.ogg' = 33, - 'sound/voice/human/snore/snore_female3.ogg' = 33, - 'sound/voice/human/snore/snore_mimimi1.ogg' = 1, - )) - if(SFX_SNORE_MALE) - soundin = pick_weight(list( - 'sound/voice/human/snore/snore_male1.ogg' = 20, - 'sound/voice/human/snore/snore_male2.ogg' = 20, - 'sound/voice/human/snore/snore_male3.ogg' = 20, - 'sound/voice/human/snore/snore_male3.ogg' = 20, - 'sound/voice/human/snore/snore_male5.ogg' = 20, - 'sound/voice/human/snore/snore_mimimi2.ogg' = 1, - )) - if(SFX_MALE_SIGH) - soundin = pick( - 'sound/voice/human/sigh/male_sigh1.ogg', - 'sound/voice/human/sigh/male_sigh2.ogg', - 'sound/voice/human/sigh/male_sigh3.ogg', - ) - if(SFX_FEMALE_SIGH) - soundin = pick( - 'sound/voice/human/sigh/female_sigh1.ogg', - 'sound/voice/human/sigh/female_sigh2.ogg', - 'sound/voice/human/sigh/female_sigh3.ogg', - ) - if(SFX_WRITING_PEN) - soundin = pick( - 'sound/effects/writing_pen/writing_pen1.ogg', - 'sound/effects/writing_pen/writing_pen2.ogg', - 'sound/effects/writing_pen/writing_pen3.ogg', - 'sound/effects/writing_pen/writing_pen4.ogg', - 'sound/effects/writing_pen/writing_pen5.ogg', - 'sound/effects/writing_pen/writing_pen6.ogg', - 'sound/effects/writing_pen/writing_pen7.ogg', - ) - if(SFX_CLOTH_RIP) - soundin = pick( - 'maplestation_modules/sound/items/rip1.ogg', - 'maplestation_modules/sound/items/rip2.ogg', - 'maplestation_modules/sound/items/rip3.ogg', - 'maplestation_modules/sound/items/rip4.ogg', - ) - if(SFX_SEATBELT_BUCKLE) - soundin = pick( - 'sound/machines/buckle/buckle1.ogg', - 'sound/machines/buckle/buckle2.ogg', - 'sound/machines/buckle/buckle3.ogg', - ) - if(SFX_SEATBELT_UNBUCKLE) - soundin = pick( - 'sound/machines/buckle/unbuckle1.ogg', - 'sound/machines/buckle/unbuckle2.ogg', - 'sound/machines/buckle/unbuckle3.ogg', - ) - if(SFX_PLATE_ARMOR_RUSTLE) - soundin = pick_weight(list( - 'sound/items/handling/armor_rustle/plate_armor/plate_armor_rustle1.ogg' = 8, //longest sound is rarer. - 'sound/items/handling/armor_rustle/plate_armor/plate_armor_rustle2.ogg' = 23, - 'sound/items/handling/armor_rustle/plate_armor/plate_armor_rustle3.ogg' = 23, - 'sound/items/handling/armor_rustle/plate_armor/plate_armor_rustle4.ogg' = 23, - 'sound/items/handling/armor_rustle/plate_armor/plate_armor_rustle5.ogg' = 23, - )) - if(SFX_VISOR_DOWN) - soundin = pick( - 'sound/items/handling/helmet/visor_down1.ogg', - 'sound/items/handling/helmet/visor_down2.ogg', - 'sound/items/handling/helmet/visor_down3.ogg', - ) - if(SFX_VISOR_UP) - soundin = pick( - 'sound/items/handling/helmet/visor_up1.ogg', - 'sound/items/handling/helmet/visor_up2.ogg', - ) - if(SFX_INDUSTRIAL_SCAN) - soundin = pick( - 'sound/effects/industrial_scan/industrial_scan1.ogg', - 'sound/effects/industrial_scan/industrial_scan2.ogg', - 'sound/effects/industrial_scan/industrial_scan3.ogg', - ) - if(SFX_CLOTH_PICKUP) - soundin = pick( - 'sound/items/handling/cloth/cloth_pickup2.ogg', - 'sound/items/handling/cloth/cloth_pickup3.ogg', - 'sound/items/handling/cloth/cloth_pickup4.ogg', - 'sound/items/handling/cloth/cloth_pickup5.ogg', - ) - if(SFX_CLOTH_DROP) - soundin = pick( - 'sound/items/handling/cloth/cloth_drop1.ogg', - 'sound/items/handling/cloth/cloth_drop2.ogg', - 'sound/items/handling/cloth/cloth_drop3.ogg', - 'sound/items/handling/cloth/cloth_drop4.ogg', - ) - if(SFX_BANDAGE_BEGIN) - soundin = pick( - 'sound/items/gauze/bandage_begin1.ogg', - 'sound/items/gauze/bandage_begin2.ogg', - 'sound/items/gauze/bandage_begin3.ogg', - 'sound/items/gauze/bandage_begin4.ogg', - ) - if(SFX_BANDAGE_END) - // soundin = pick( - // 'sound/items/gauze/bandage_end1.ogg', - // 'sound/items/gauze/bandage_end2.ogg', - // 'sound/items/gauze/bandage_end3.ogg', - // 'sound/items/gauze/bandage_end4.ogg', - // ) - soundin = pick( - 'maplestation_modules/sound/items/rip1.ogg', - 'maplestation_modules/sound/items/rip2.ogg', - 'maplestation_modules/sound/items/rip3.ogg', - 'maplestation_modules/sound/items/rip4.ogg', - ) - - return soundin + var/datum/sound_effect/sfx = GLOB.sfx_datum_by_key[soundin] + return sfx?.return_sfx() || soundin diff --git a/code/game/sound_keys.dm b/code/game/sound_keys.dm new file mode 100644 index 000000000000..84156128aee3 --- /dev/null +++ b/code/game/sound_keys.dm @@ -0,0 +1,1004 @@ +/* +# sound_effect datum +* use for when you need multiple sound files to play at random in a playsound +* see var documentation below +* initialized and added to sfx_datum_by_key in /datum/controller/subsystem/sounds/init_sound_keys() +*/ +/datum/sound_effect + /// sfx key define with which we are associated with, see code\__DEFINES\sound.dm + var/key + /// list of paths to our files, use the /assoc subtype if your paths are weighted + var/list/file_paths + +/datum/sound_effect/proc/return_sfx() + return pick(file_paths) + +/datum/sound_effect/assoc + +/datum/sound_effect/assoc/return_sfx() + return pick_weight(file_paths) + +/datum/sound_effect/shatter + key = SFX_SHATTER + file_paths = list( + 'sound/effects/glassbr1.ogg', + 'sound/effects/glassbr2.ogg', + 'sound/effects/glassbr3.ogg', + ) + +/datum/sound_effect/explosion + key = SFX_EXPLOSION + file_paths = list( + 'sound/effects/explosion1.ogg', + 'sound/effects/explosion2.ogg', + ) + +/datum/sound_effect/explosion_creaking + key = SFX_EXPLOSION_CREAKING + file_paths = list( + 'sound/effects/explosioncreak1.ogg', + 'sound/effects/explosioncreak2.ogg', + ) + +/datum/sound_effect/hull_creaking + key = SFX_HULL_CREAKING + file_paths = list( + 'sound/effects/creak1.ogg', + 'sound/effects/creak2.ogg', + 'sound/effects/creak3.ogg', + ) + +/datum/sound_effect/sparks + key = SFX_SPARKS + file_paths = list( + 'sound/effects/sparks1.ogg', + 'sound/effects/sparks2.ogg', + 'sound/effects/sparks3.ogg', + 'sound/effects/sparks4.ogg', + ) + +/datum/sound_effect/rustle + key = SFX_RUSTLE + file_paths = list( + 'sound/effects/rustle1.ogg', + 'sound/effects/rustle2.ogg', + 'sound/effects/rustle3.ogg', + 'sound/effects/rustle4.ogg', + 'sound/effects/rustle5.ogg', + ) + +/datum/sound_effect/bodyfall + key = SFX_BODYFALL + file_paths = list( + 'sound/effects/bodyfall1.ogg', + 'sound/effects/bodyfall2.ogg', + 'sound/effects/bodyfall3.ogg', + 'sound/effects/bodyfall4.ogg', + ) + +/datum/sound_effect/punch + key = SFX_PUNCH + file_paths = list( + 'sound/weapons/punch1.ogg', + 'sound/weapons/punch2.ogg', + 'sound/weapons/punch3.ogg', + 'sound/weapons/punch4.ogg', + ) + +/datum/sound_effect/clown_step + key = SFX_CLOWN_STEP + file_paths = list( + 'sound/effects/footstep/clownstep1.ogg', + 'sound/effects/footstep/clownstep2.ogg', + ) + +/datum/sound_effect/suit_step + key = SFX_SUIT_STEP + file_paths = list( + 'sound/items/handling/armor_rustle/riot_armor/suitstep1.ogg', + 'sound/items/handling/armor_rustle/riot_armor/suitstep2.ogg', + ) + +/datum/sound_effect/swing_hit + key = SFX_SWING_HIT + file_paths = list( + 'sound/weapons/genhit1.ogg', + 'sound/weapons/genhit2.ogg', + 'sound/weapons/genhit3.ogg', + ) + +/datum/sound_effect/hiss + key = SFX_HISS + file_paths = list( + 'sound/voice/hiss1.ogg', + 'sound/voice/hiss2.ogg', + 'sound/voice/hiss3.ogg', + 'sound/voice/hiss4.ogg', + ) + +/datum/sound_effect/page_turn + key = SFX_PAGE_TURN + file_paths = list( + 'sound/effects/pageturn1.ogg', + 'sound/effects/pageturn2.ogg', + 'sound/effects/pageturn3.ogg', + ) + +/datum/sound_effect/ricochet + key = SFX_RICOCHET + file_paths = list( + 'sound/weapons/effects/ric1.ogg', + 'sound/weapons/effects/ric2.ogg', + 'sound/weapons/effects/ric3.ogg', + 'sound/weapons/effects/ric4.ogg', + 'sound/weapons/effects/ric5.ogg', + ) + +/datum/sound_effect/terminal_type + key = SFX_TERMINAL_TYPE + file_paths = list( + 'sound/machines/terminal_button01.ogg', + 'sound/machines/terminal_button02.ogg', + 'sound/machines/terminal_button03.ogg', + 'sound/machines/terminal_button04.ogg', + 'sound/machines/terminal_button05.ogg', + 'sound/machines/terminal_button06.ogg', + 'sound/machines/terminal_button07.ogg', + 'sound/machines/terminal_button08.ogg', + ) + +/datum/sound_effect/desecration + key = SFX_DESECRATION + file_paths = list( + 'sound/misc/desecration-01.ogg', + 'sound/misc/desecration-02.ogg', + 'sound/misc/desecration-03.ogg', + ) + +// /datum/sound_effect/im_here +// key = SFX_IM_HERE +// file_paths = list( +// 'sound/effects/hallucinations/im_here1.ogg', +// 'sound/effects/hallucinations/im_here2.ogg', +// ) + +/datum/sound_effect/can_open + key = SFX_CAN_OPEN + file_paths = list( + 'sound/effects/can_open1.ogg', + 'sound/effects/can_open2.ogg', + 'sound/effects/can_open3.ogg', + ) + +/datum/sound_effect/bullet_miss + key = SFX_BULLET_MISS + file_paths = list( + 'sound/weapons/bulletflyby.ogg', + 'sound/weapons/bulletflyby2.ogg', + 'sound/weapons/bulletflyby3.ogg', + ) + +/datum/sound_effect/revolver_spin + key = SFX_REVOLVER_SPIN + file_paths = list( + 'sound/weapons/gun/revolver/spin1.ogg', + 'sound/weapons/gun/revolver/spin2.ogg', + 'sound/weapons/gun/revolver/spin3.ogg', + ) + +/datum/sound_effect/law + key = SFX_LAW + file_paths = list( + 'sound/voice/beepsky/creep.ogg', + 'sound/voice/beepsky/god.ogg', + 'sound/voice/beepsky/iamthelaw.ogg', + 'sound/voice/beepsky/insult.ogg', + 'sound/voice/beepsky/radio.ogg', + 'sound/voice/beepsky/secureday.ogg', + ) + +/datum/sound_effect/honkbot_e + key = SFX_HONKBOT_E + file_paths = list( + 'sound/effects/pray.ogg', + 'sound/effects/huuu.ogg', + 'sound/items/AirHorn.ogg', + 'sound/items/AirHorn2.ogg', + 'sound/items/bikehorn.ogg', + 'sound/items/WEEOO1.ogg', + 'sound/machines/buzz-sigh.ogg', + 'sound/machines/ping.ogg', + 'sound/magic/Fireball.ogg', + 'sound/misc/sadtrombone.ogg', + 'sound/voice/beepsky/creep.ogg', + 'sound/voice/beepsky/iamthelaw.ogg', + 'sound/voice/hiss1.ogg', + 'sound/weapons/bladeslice.ogg', + 'sound/weapons/flashbang.ogg', + ) + +/datum/sound_effect/goose + key = SFX_GOOSE + file_paths = list( + 'sound/creatures/goose1.ogg', + 'sound/creatures/goose2.ogg', + 'sound/creatures/goose3.ogg', + 'sound/creatures/goose4.ogg', + ) + +/datum/sound_effect/warpspeed + key = SFX_WARPSPEED + file_paths = list('sound/runtime/hyperspace/hyperspace_begin.ogg') + +/datum/sound_effect/sm_calm + key = SFX_SM_CALM + file_paths = list( + 'sound/machines/sm/accent/normal/1.ogg', + 'sound/machines/sm/accent/normal/2.ogg', + 'sound/machines/sm/accent/normal/3.ogg', + 'sound/machines/sm/accent/normal/4.ogg', + 'sound/machines/sm/accent/normal/5.ogg', + 'sound/machines/sm/accent/normal/6.ogg', + 'sound/machines/sm/accent/normal/7.ogg', + 'sound/machines/sm/accent/normal/8.ogg', + 'sound/machines/sm/accent/normal/9.ogg', + 'sound/machines/sm/accent/normal/10.ogg', + 'sound/machines/sm/accent/normal/11.ogg', + 'sound/machines/sm/accent/normal/12.ogg', + 'sound/machines/sm/accent/normal/13.ogg', + 'sound/machines/sm/accent/normal/14.ogg', + 'sound/machines/sm/accent/normal/15.ogg', + 'sound/machines/sm/accent/normal/16.ogg', + 'sound/machines/sm/accent/normal/17.ogg', + 'sound/machines/sm/accent/normal/18.ogg', + 'sound/machines/sm/accent/normal/19.ogg', + 'sound/machines/sm/accent/normal/20.ogg', + 'sound/machines/sm/accent/normal/21.ogg', + 'sound/machines/sm/accent/normal/22.ogg', + 'sound/machines/sm/accent/normal/23.ogg', + 'sound/machines/sm/accent/normal/24.ogg', + 'sound/machines/sm/accent/normal/25.ogg', + 'sound/machines/sm/accent/normal/26.ogg', + 'sound/machines/sm/accent/normal/27.ogg', + 'sound/machines/sm/accent/normal/28.ogg', + 'sound/machines/sm/accent/normal/29.ogg', + 'sound/machines/sm/accent/normal/30.ogg', + 'sound/machines/sm/accent/normal/31.ogg', + 'sound/machines/sm/accent/normal/32.ogg', + 'sound/machines/sm/accent/normal/33.ogg', + ) + +/datum/sound_effect/sm_delam + key = SFX_SM_DELAM + file_paths = list( + 'sound/machines/sm/accent/delam/1.ogg', + 'sound/machines/sm/accent/delam/2.ogg', + 'sound/machines/sm/accent/delam/3.ogg', + 'sound/machines/sm/accent/delam/4.ogg', + 'sound/machines/sm/accent/delam/5.ogg', + 'sound/machines/sm/accent/delam/6.ogg', + 'sound/machines/sm/accent/delam/7.ogg', + 'sound/machines/sm/accent/delam/8.ogg', + 'sound/machines/sm/accent/delam/9.ogg', + 'sound/machines/sm/accent/delam/10.ogg', + 'sound/machines/sm/accent/delam/11.ogg', + 'sound/machines/sm/accent/delam/12.ogg', + 'sound/machines/sm/accent/delam/13.ogg', + 'sound/machines/sm/accent/delam/14.ogg', + 'sound/machines/sm/accent/delam/15.ogg', + 'sound/machines/sm/accent/delam/16.ogg', + 'sound/machines/sm/accent/delam/17.ogg', + 'sound/machines/sm/accent/delam/18.ogg', + 'sound/machines/sm/accent/delam/19.ogg', + 'sound/machines/sm/accent/delam/20.ogg', + 'sound/machines/sm/accent/delam/21.ogg', + 'sound/machines/sm/accent/delam/22.ogg', + 'sound/machines/sm/accent/delam/23.ogg', + 'sound/machines/sm/accent/delam/24.ogg', + 'sound/machines/sm/accent/delam/25.ogg', + 'sound/machines/sm/accent/delam/26.ogg', + 'sound/machines/sm/accent/delam/27.ogg', + 'sound/machines/sm/accent/delam/28.ogg', + 'sound/machines/sm/accent/delam/29.ogg', + 'sound/machines/sm/accent/delam/30.ogg', + 'sound/machines/sm/accent/delam/31.ogg', + 'sound/machines/sm/accent/delam/32.ogg', + 'sound/machines/sm/accent/delam/33.ogg', + ) + +/datum/sound_effect/hypertorus_calm + key = SFX_HYPERTORUS_CALM + file_paths = list( + 'sound/machines/sm/accent/normal/1.ogg', + 'sound/machines/sm/accent/normal/2.ogg', + 'sound/machines/sm/accent/normal/3.ogg', + 'sound/machines/sm/accent/normal/4.ogg', + 'sound/machines/sm/accent/normal/5.ogg', + 'sound/machines/sm/accent/normal/6.ogg', + 'sound/machines/sm/accent/normal/7.ogg', + 'sound/machines/sm/accent/normal/8.ogg', + 'sound/machines/sm/accent/normal/9.ogg', + 'sound/machines/sm/accent/normal/10.ogg', + 'sound/machines/sm/accent/normal/11.ogg', + 'sound/machines/sm/accent/normal/12.ogg', + 'sound/machines/sm/accent/normal/13.ogg', + 'sound/machines/sm/accent/normal/14.ogg', + 'sound/machines/sm/accent/normal/15.ogg', + 'sound/machines/sm/accent/normal/16.ogg', + 'sound/machines/sm/accent/normal/17.ogg', + 'sound/machines/sm/accent/normal/18.ogg', + 'sound/machines/sm/accent/normal/19.ogg', + 'sound/machines/sm/accent/normal/20.ogg', + 'sound/machines/sm/accent/normal/21.ogg', + 'sound/machines/sm/accent/normal/22.ogg', + 'sound/machines/sm/accent/normal/23.ogg', + 'sound/machines/sm/accent/normal/24.ogg', + 'sound/machines/sm/accent/normal/25.ogg', + 'sound/machines/sm/accent/normal/26.ogg', + 'sound/machines/sm/accent/normal/27.ogg', + 'sound/machines/sm/accent/normal/28.ogg', + 'sound/machines/sm/accent/normal/29.ogg', + 'sound/machines/sm/accent/normal/30.ogg', + 'sound/machines/sm/accent/normal/31.ogg', + 'sound/machines/sm/accent/normal/32.ogg', + 'sound/machines/sm/accent/normal/33.ogg', + ) + +/datum/sound_effect/hypertorus_melting + key = SFX_HYPERTORUS_MELTING + file_paths = list( + 'sound/machines/sm/accent/delam/1.ogg', + 'sound/machines/sm/accent/delam/2.ogg', + 'sound/machines/sm/accent/delam/3.ogg', + 'sound/machines/sm/accent/delam/4.ogg', + 'sound/machines/sm/accent/delam/5.ogg', + 'sound/machines/sm/accent/delam/6.ogg', + 'sound/machines/sm/accent/delam/7.ogg', + 'sound/machines/sm/accent/delam/8.ogg', + 'sound/machines/sm/accent/delam/9.ogg', + 'sound/machines/sm/accent/delam/10.ogg', + 'sound/machines/sm/accent/delam/11.ogg', + 'sound/machines/sm/accent/delam/12.ogg', + 'sound/machines/sm/accent/delam/13.ogg', + 'sound/machines/sm/accent/delam/14.ogg', + 'sound/machines/sm/accent/delam/15.ogg', + 'sound/machines/sm/accent/delam/16.ogg', + 'sound/machines/sm/accent/delam/17.ogg', + 'sound/machines/sm/accent/delam/18.ogg', + 'sound/machines/sm/accent/delam/19.ogg', + 'sound/machines/sm/accent/delam/20.ogg', + 'sound/machines/sm/accent/delam/21.ogg', + 'sound/machines/sm/accent/delam/22.ogg', + 'sound/machines/sm/accent/delam/23.ogg', + 'sound/machines/sm/accent/delam/24.ogg', + 'sound/machines/sm/accent/delam/25.ogg', + 'sound/machines/sm/accent/delam/26.ogg', + 'sound/machines/sm/accent/delam/27.ogg', + 'sound/machines/sm/accent/delam/28.ogg', + 'sound/machines/sm/accent/delam/29.ogg', + 'sound/machines/sm/accent/delam/30.ogg', + 'sound/machines/sm/accent/delam/31.ogg', + 'sound/machines/sm/accent/delam/32.ogg', + 'sound/machines/sm/accent/delam/33.ogg', + ) + +/datum/sound_effect/crunchy_bush_whack + key = SFX_CRUNCHY_BUSH_WHACK + file_paths = list( + 'sound/effects/crunchybushwhack1.ogg', + 'sound/effects/crunchybushwhack2.ogg', + 'sound/effects/crunchybushwhack3.ogg', + ) + +/datum/sound_effect/tree_chop + key = SFX_TREE_CHOP + file_paths = list( + 'sound/effects/treechop1.ogg', + 'sound/effects/treechop2.ogg', + 'sound/effects/treechop3.ogg', + ) + +/datum/sound_effect/rock_tap + key = SFX_ROCK_TAP + file_paths = list( + 'sound/effects/rocktap1.ogg', + 'sound/effects/rocktap2.ogg', + 'sound/effects/rocktap3.ogg', + ) + +/datum/sound_effect/sear + key = SFX_SEAR + file_paths = list('sound/weapons/sear.ogg') + +/datum/sound_effect/reel + key = SFX_REEL + file_paths = list( + 'sound/items/reel1.ogg', + 'sound/items/reel2.ogg', + 'sound/items/reel3.ogg', + 'sound/items/reel4.ogg', + 'sound/items/reel5.ogg', + ) + +/datum/sound_effect/rattle + key = SFX_RATTLE + file_paths = list( + 'sound/items/rattle1.ogg', + 'sound/items/rattle2.ogg', + 'sound/items/rattle3.ogg', + ) + +/datum/sound_effect/portal_close + key = SFX_PORTAL_CLOSE + file_paths = list('sound/effects/portal_close.ogg') + +/datum/sound_effect/portal_enter + key = SFX_PORTAL_ENTER + file_paths = list('sound/effects/portal_travel.ogg') + +/datum/sound_effect/portal_created + key = SFX_PORTAL_CREATED + file_paths = list( + 'sound/effects/portal_open_1.ogg', + 'sound/effects/portal_open_2.ogg', + 'sound/effects/portal_open_3.ogg', + ) + +/datum/sound_effect/screech + key = SFX_SCREECH + file_paths = list( + 'sound/creatures/monkey/monkey_screech_1.ogg', + 'sound/creatures/monkey/monkey_screech_2.ogg', + 'sound/creatures/monkey/monkey_screech_3.ogg', + 'sound/creatures/monkey/monkey_screech_4.ogg', + 'sound/creatures/monkey/monkey_screech_5.ogg', + 'sound/creatures/monkey/monkey_screech_6.ogg', + 'sound/creatures/monkey/monkey_screech_7.ogg', + ) + +/datum/sound_effect/tool_switch + key = SFX_TOOL_SWITCH + file_paths = list('sound/items/handling/tool_switch.ogg') + +/datum/sound_effect/keyboard_clicks + key = SFX_KEYBOARD_CLICKS + file_paths = list( + 'sound/machines/computer/keyboard_clicks_1.ogg', + 'sound/machines/computer/keyboard_clicks_2.ogg', + 'sound/machines/computer/keyboard_clicks_3.ogg', + 'sound/machines/computer/keyboard_clicks_4.ogg', + 'sound/machines/computer/keyboard_clicks_5.ogg', + 'sound/machines/computer/keyboard_clicks_6.ogg', + 'sound/machines/computer/keyboard_clicks_7.ogg', + ) + +// /datum/sound_effect/stone_drop +// key = SFX_STONE_DROP +// file_paths = list( +// 'sound/items/stones/stone_drop1.ogg', +// 'sound/items/stones/stone_drop2.ogg', +// 'sound/items/stones/stone_drop3.ogg', +// ) + +// /datum/sound_effect/stone_pickup +// key = SFX_STONE_PICKUP +// file_paths = list( +// 'sound/items/stones/stone_pick_up1.ogg', +// 'sound/items/stones/stone_pick_up2.ogg', +// ) + +/datum/sound_effect/muffled_speech + key = SFX_MUFFLED_SPEECH + file_paths = list( + 'sound/effects/muffspeech/muffspeech1.ogg', + 'sound/effects/muffspeech/muffspeech2.ogg', + 'sound/effects/muffspeech/muffspeech3.ogg', + 'sound/effects/muffspeech/muffspeech4.ogg', + 'sound/effects/muffspeech/muffspeech5.ogg', + 'sound/effects/muffspeech/muffspeech6.ogg', + 'sound/effects/muffspeech/muffspeech7.ogg', + 'sound/effects/muffspeech/muffspeech8.ogg', + 'sound/effects/muffspeech/muffspeech9.ogg', + ) + +/datum/sound_effect/default_fish_slap + key = SFX_DEFAULT_FISH_SLAP + file_paths = list('sound/creatures/fish/fish_slap1.ogg') + +/datum/sound_effect/alt_fish_slap + key = SFX_ALT_FISH_SLAP + file_paths = list('sound/creatures/fish/fish_slap2.ogg') + +/datum/sound_effect/fish_pickup + key = SFX_FISH_PICKUP + file_paths = list( + 'sound/creatures/fish/fish_pickup1.ogg', + 'sound/creatures/fish/fish_pickup2.ogg', + ) + +/datum/sound_effect/liquid_pour + key = SFX_LIQUID_POUR + file_paths = list( + 'sound/effects/liquid_pour1.ogg', + 'sound/effects/liquid_pour2.ogg', + 'sound/effects/liquid_pour3.ogg', + ) + +// /datum/sound_effect/cat_purr +// key = SFX_CAT_PURR +// file_paths = list( +// 'sound/mobs/non-humanoids/cat/cat_purr1.ogg', +// 'sound/mobs/non-humanoids/cat/cat_purr2.ogg', +// 'sound/mobs/non-humanoids/cat/cat_purr3.ogg', +// 'sound/mobs/non-humanoids/cat/cat_purr4.ogg', +// ) + +// /datum/sound_effect/default_liquid_slosh +// key = SFX_DEFAULT_LIQUID_SLOSH +// file_paths = list( +// 'sound/items/handling/reagent_containers/default/default_liquid_slosh1.ogg', +// 'sound/items/handling/reagent_containers/default/default_liquid_slosh2.ogg', +// 'sound/items/handling/reagent_containers/default/default_liquid_slosh3.ogg', +// 'sound/items/handling/reagent_containers/default/default_liquid_slosh4.ogg', +// 'sound/items/handling/reagent_containers/default/default_liquid_slosh5.ogg', +// ) + +// /datum/sound_effect/plastic_bottle_liquid_slosh +// key = SFX_PLASTIC_BOTTLE_LIQUID_SLOSH +// file_paths = list( +// 'sound/items/handling/reagent_containers/plastic_bottle/plastic_bottle_liquid_slosh1.ogg', +// 'sound/items/handling/reagent_containers/plastic_bottle/plastic_bottle_liquid_slosh2.ogg', +// ) + +// /datum/sound_effect/pig_oink +// key = SFX_PIG_OINK +// file_paths = list( +// 'sound/mobs/non-humanoids/pig/pig1.ogg', +// 'sound/mobs/non-humanoids/pig/pig2.ogg', +// ) + +/datum/sound_effect/visor_down + key = SFX_VISOR_DOWN + file_paths = list( + 'sound/items/handling/helmet/visor_down1.ogg', + 'sound/items/handling/helmet/visor_down2.ogg', + 'sound/items/handling/helmet/visor_down3.ogg', + ) + +/datum/sound_effect/visor_up + key = SFX_VISOR_UP + file_paths = list( + 'sound/items/handling/helmet/visor_up1.ogg', + 'sound/items/handling/helmet/visor_up2.ogg', + ) + +// /datum/sound_effect/growl +// key = SFX_GROWL +// file_paths = list( +// 'sound/mobs/non-humanoids/dog/growl1.ogg', +// 'sound/mobs/non-humanoids/dog/growl2.ogg', +// ) + +// /datum/sound_effect/sizzle +// key = SFX_SIZZLE +// file_paths = list( +// 'sound/effects/wounds/sizzle1.ogg', +// 'sound/effects/wounds/sizzle2.ogg', +// ) + +/datum/sound_effect/polaroid + key = SFX_POLAROID + file_paths = list( + 'sound/items/polaroid1.ogg', + 'sound/items/polaroid2.ogg', + ) + +// /datum/sound_effect/hallucination_turn_around +// key = SFX_HALLUCINATION_TURN_AROUND +// file_paths = list( +// 'sound/effects/hallucinations/turn_around1.ogg', +// 'sound/effects/hallucinations/turn_around2.ogg', +// ) + +// /datum/sound_effect/hallucination_i_see_you +// key = SFX_HALLUCINATION_I_SEE_YOU +// file_paths = list( +// 'sound/effects/hallucinations/i_see_you1.ogg', +// 'sound/effects/hallucinations/i_see_you2.ogg', +// ) + +// /datum/sound_effect/low_hiss +// key = SFX_LOW_HISS +// file_paths = list( +// 'sound/mobs/non-humanoids/hiss/lowHiss2.ogg', +// 'sound/mobs/non-humanoids/hiss/lowHiss3.ogg', +// 'sound/mobs/non-humanoids/hiss/lowHiss4.ogg', +// ) + +// /datum/sound_effect/hallucination_i_m_here +// key = SFX_HALLUCINATION_I_M_HERE +// file_paths = list( +// 'sound/effects/hallucinations/im_here1.ogg', +// 'sound/effects/hallucinations/im_here2.ogg', +// ) + +// /datum/sound_effect/hallucination_over_here +// key = SFX_HALLUCINATION_OVER_HERE +// file_paths = list( +// 'sound/effects/hallucinations/over_here2.ogg', +// 'sound/effects/hallucinations/over_here3.ogg', +// ) + +/datum/sound_effect/industrial_scan + key = SFX_INDUSTRIAL_SCAN + file_paths = list( + 'sound/effects/industrial_scan/industrial_scan1.ogg', + 'sound/effects/industrial_scan/industrial_scan2.ogg', + 'sound/effects/industrial_scan/industrial_scan3.ogg', + ) + +/datum/sound_effect/male_sigh + key = SFX_MALE_SIGH + file_paths = list( + 'sound/voice/human/sigh/male_sigh1.ogg', + 'sound/voice/human/sigh/male_sigh2.ogg', + 'sound/voice/human/sigh/male_sigh3.ogg', + ) + +/datum/sound_effect/female_sigh + key = SFX_FEMALE_SIGH + file_paths = list( + 'sound/voice/human/sigh/female_sigh1.ogg', + 'sound/voice/human/sigh/female_sigh2.ogg', + 'sound/voice/human/sigh/female_sigh3.ogg', + ) + +/datum/sound_effect/writing_pen + key = SFX_WRITING_PEN + file_paths = list( + 'sound/effects/writing_pen/writing_pen1.ogg', + 'sound/effects/writing_pen/writing_pen2.ogg', + 'sound/effects/writing_pen/writing_pen3.ogg', + 'sound/effects/writing_pen/writing_pen4.ogg', + 'sound/effects/writing_pen/writing_pen5.ogg', + 'sound/effects/writing_pen/writing_pen6.ogg', + 'sound/effects/writing_pen/writing_pen7.ogg', + ) + +// /datum/sound_effect/clown_car_load +// key = SFX_CLOWN_CAR_LOAD +// file_paths = list( +// 'sound/vehicles/clown_car/clowncar_load1.ogg', +// 'sound/vehicles/clown_car/clowncar_load2.ogg', +// ) + +/datum/sound_effect/seatbelt_buckle + key = SFX_SEATBELT_BUCKLE + file_paths = list( + 'sound/machines/buckle/buckle1.ogg', + 'sound/machines/buckle/buckle2.ogg', + 'sound/machines/buckle/buckle3.ogg', + ) + +/datum/sound_effect/seatbelt_unbuckle + key = SFX_SEATBELT_UNBUCKLE + file_paths = list( + 'sound/machines/buckle/unbuckle1.ogg', + 'sound/machines/buckle/unbuckle2.ogg', + 'sound/machines/buckle/unbuckle3.ogg', + ) + +// /datum/sound_effect/headset_equip +// key = SFX_HEADSET_EQUIP +// file_paths = list( +// 'sound/items/equip/headset_equip1.ogg', +// 'sound/items/equip/headset_equip2.ogg', +// ) + +// /datum/sound_effect/headset_pickup +// key = SFX_HEADSET_PICKUP +// file_paths = list( +// 'sound/items/handling/headset/headset_pickup1.ogg', +// 'sound/items/handling/headset/headset_pickup2.ogg', +// 'sound/items/handling/headset/headset_pickup3.ogg', +// ) + +/datum/sound_effect/bandage_begin + key = SFX_BANDAGE_BEGIN + file_paths = list( + 'sound/items/gauze/bandage_begin1.ogg', + 'sound/items/gauze/bandage_begin2.ogg', + 'sound/items/gauze/bandage_begin3.ogg', + 'sound/items/gauze/bandage_begin4.ogg', + ) + +/datum/sound_effect/bandage_end + key = SFX_BANDAGE_END + // file_paths = list( + // 'sound/items/gauze/bandage_end1.ogg', + // 'sound/items/gauze/bandage_end2.ogg', + // 'sound/items/gauze/bandage_end3.ogg', + // 'sound/items/gauze/bandage_end4.ogg', + // ) + file_paths = list( + 'maplestation_modules/sound/items/rip1.ogg', + 'maplestation_modules/sound/items/rip2.ogg', + 'maplestation_modules/sound/items/rip3.ogg', + 'maplestation_modules/sound/items/rip4.ogg', + ) + +// Old cloth sounds are named cloth_...1.ogg, I wanted to keep them so these new ones go further down the line. +/datum/sound_effect/cloth_drop + key = SFX_CLOTH_DROP + file_paths = list( + 'sound/items/handling/cloth/cloth_drop2.ogg', + 'sound/items/handling/cloth/cloth_drop3.ogg', + 'sound/items/handling/cloth/cloth_drop4.ogg', + 'sound/items/handling/cloth/cloth_drop5.ogg', + ) + +/datum/sound_effect/cloth_pickup + key = SFX_CLOTH_PICKUP + file_paths = list( + 'sound/items/handling/cloth/cloth_pickup2.ogg', + 'sound/items/handling/cloth/cloth_pickup3.ogg', + 'sound/items/handling/cloth/cloth_pickup4.ogg', + 'sound/items/handling/cloth/cloth_pickup5.ogg', + ) + +// /datum/sound_effect/suture_begin +// key = SFX_SUTURE_BEGIN +// file_paths = list('sound/items/suture/suture_begin1.ogg') + +// /datum/sound_effect/suture_continuous +// key = SFX_SUTURE_CONTINUOUS +// file_paths = list( +// 'sound/items/suture/suture_continuous1.ogg', +// 'sound/items/suture/suture_continuous2.ogg', +// 'sound/items/suture/suture_continuous3.ogg', +// ) + +// /datum/sound_effect/suture_end +// key = SFX_SUTURE_END +// file_paths = list( +// 'sound/items/suture/suture_end1.ogg', +// 'sound/items/suture/suture_end2.ogg', +// 'sound/items/suture/suture_end3.ogg', +// ) + +// /datum/sound_effect/suture_pickup +// key = SFX_SUTURE_PICKUP +// file_paths = list( +// 'sound/items/handling/suture/needle_pickup1.ogg', +// 'sound/items/handling/suture/needle_pickup2.ogg', +// ) + +// /datum/sound_effect/suture_drop +// key = SFX_SUTURE_DROP +// file_paths = list( +// 'sound/items/handling/suture/needle_drop1.ogg', +// 'sound/items/handling/suture/needle_drop2.ogg', +// 'sound/items/handling/suture/needle_drop3.ogg', +// ) + +// /datum/sound_effect/regen_mesh_begin +// key = SFX_REGEN_MESH_BEGIN +// file_paths = list( +// 'sound/items/regenerative_mesh/regen_mesh_begin1.ogg', +// 'sound/items/regenerative_mesh/regen_mesh_begin2.ogg', +// 'sound/items/regenerative_mesh/regen_mesh_begin3.ogg', +// 'sound/items/regenerative_mesh/regen_mesh_begin4.ogg', +// ) + +// /datum/sound_effect/regen_mesh_continuous +// key = SFX_REGEN_MESH_CONTINUOUS +// file_paths = list( +// 'sound/items/regenerative_mesh/regen_mesh_continuous1.ogg', +// 'sound/items/regenerative_mesh/regen_mesh_continuous2.ogg', +// 'sound/items/regenerative_mesh/regen_mesh_continuous3.ogg', +// 'sound/items/regenerative_mesh/regen_mesh_continuous4.ogg', +// 'sound/items/regenerative_mesh/regen_mesh_continuous5.ogg', +// ) + +// /datum/sound_effect/regen_mesh_end +// key = SFX_REGEN_MESH_END +// file_paths = list( +// 'sound/items/regenerative_mesh/regen_mesh_end1.ogg', +// 'sound/items/regenerative_mesh/regen_mesh_end2.ogg', +// ) + +// /datum/sound_effect/regen_mesh_pickup +// key = SFX_REGEN_MESH_PICKUP +// file_paths = list( +// 'sound/items/handling/regenerative_mesh/regen_mesh_pickup1.ogg', +// 'sound/items/handling/regenerative_mesh/regen_mesh_pickup2.ogg', +// 'sound/items/handling/regenerative_mesh/regen_mesh_pickup3.ogg', +// ) + +// /datum/sound_effect/regen_mesh_drop +// key = SFX_REGEN_MESH_DROP +// file_paths = list('sound/items/regenerative_mesh/regen_mesh_drop1.ogg') + + +/* assoc lists go next */ + + +/datum/sound_effect/assoc/plate_armor_rustle + key = SFX_PLATE_ARMOR_RUSTLE + file_paths = list( + 'sound/items/handling/armor_rustle/plate_armor/plate_armor_rustle1.ogg' = 8, //longest sound is rarer. + 'sound/items/handling/armor_rustle/plate_armor/plate_armor_rustle2.ogg' = 23, + 'sound/items/handling/armor_rustle/plate_armor/plate_armor_rustle3.ogg' = 23, + 'sound/items/handling/armor_rustle/plate_armor/plate_armor_rustle4.ogg' = 23, + 'sound/items/handling/armor_rustle/plate_armor/plate_armor_rustle5.ogg' = 23, + ) + +/datum/sound_effect/assoc/snore_female + key = SFX_SNORE_FEMALE + file_paths = list( + 'sound/voice/human/snore/snore_female1.ogg' = 33, + 'sound/voice/human/snore/snore_female2.ogg' = 33, + 'sound/voice/human/snore/snore_female3.ogg' = 33, + 'sound/voice/human/snore/snore_mimimi1.ogg' = 1, + ) + +/datum/sound_effect/assoc/snore_male + key = SFX_SNORE_MALE + file_paths = list( + 'sound/voice/human/snore/snore_male1.ogg' = 20, + 'sound/voice/human/snore/snore_male2.ogg' = 20, + 'sound/voice/human/snore/snore_male3.ogg' = 20, + 'sound/voice/human/snore/snore_male4.ogg' = 20, + 'sound/voice/human/snore/snore_male5.ogg' = 20, + 'sound/voice/human/snore/snore_mimimi2.ogg' = 1, + ) + +// /datum/sound_effect/assoc/cat_meow +// key = SFX_CAT_MEOW +// file_paths = list( +// 'sound/mobs/non-humanoids/cat/cat_meow1.ogg' = 33, +// 'sound/mobs/non-humanoids/cat/cat_meow2.ogg' = 33, +// 'sound/mobs/non-humanoids/cat/cat_meow3.ogg' = 33, +// 'sound/mobs/non-humanoids/cat/oranges_meow1.ogg' = 1, +// ) + +/datum/sound_effect/cloth_rip + key = SFX_CLOTH_RIP + file_paths = list( + 'maplestation_modules/sound/items/rip1.ogg', + 'maplestation_modules/sound/items/rip2.ogg', + 'maplestation_modules/sound/items/rip3.ogg', + 'maplestation_modules/sound/items/rip4.ogg', + ) + +/datum/sound_effect/food_plate_pickup + key = SFX_FOOD_PLATE_PICKUP + file_paths = list( + 'sound/items/food_plate/food_plate_pickup1.ogg', + 'sound/items/food_plate/food_plate_pickup2.ogg', + 'sound/items/food_plate/food_plate_pickup3.ogg', + ) + +/datum/sound_effect/food_plate_drop + key = SFX_FOOD_PLATE_DROP + file_paths = list( + 'sound/items/food_plate/food_plate_drop1.ogg', + 'sound/items/food_plate/food_plate_drop2.ogg', + 'sound/items/food_plate/food_plate_drop3.ogg', + ) + +/datum/sound_effect/cutlery_pickup + key = SFX_CUTLERY_PICKUP + file_paths = list( + 'sound/items/cutlery/cutlery_pickup1.ogg', + 'sound/items/cutlery/cutlery_pickup2.ogg', + 'sound/items/cutlery/cutlery_pickup3.ogg', + ) + +/datum/sound_effect/cutlery_drop + key = SFX_CUTLERY_DROP + file_paths = list( + 'sound/items/cutlery/cutlery_drop1.ogg', + 'sound/items/cutlery/cutlery_drop2.ogg', + 'sound/items/cutlery/cutlery_drop3.ogg', + ) + +/datum/sound_effect/knife_pickup + key = SFX_KNIFE_PICKUP + file_paths = list( + 'sound/items/knife/knife_pickup1.ogg', + 'sound/items/knife/knife_pickup2.ogg', + 'sound/items/knife/knife_pickup3.ogg', + ) + +/datum/sound_effect/knife_drop + key = SFX_KNIFE_DROP + file_paths = list( + 'sound/items/knife/knife_drop1.ogg', + 'sound/items/knife/knife_drop2.ogg', + 'sound/items/knife/knife_drop3.ogg', + ) + +/datum/sound_effect/knife_slice + key = SFX_KNIFE_SLICE + file_paths = list( + 'sound/items/knife/knife_slice1.ogg', + 'sound/items/knife/knife_slice2.ogg', + 'sound/items/knife/knife_slice3.ogg', + 'sound/items/knife/knife_slice4.ogg', + 'sound/items/knife/knife_slice5.ogg', + 'sound/items/knife/knife_slice6.ogg', + ) + +/datum/sound_effect/pot_pickup + key = SFX_POT_PICKUP + file_paths = list( + 'sound/items/pot/pot_pickup1.ogg', + 'sound/items/pot/pot_pickup2.ogg', + 'sound/items/pot/pot_pickup3.ogg', + ) + +/datum/sound_effect/pot_drop + key = SFX_POT_DROP + file_paths = list( + 'sound/items/pot/pot_drop1.ogg', + 'sound/items/pot/pot_drop2.ogg', + 'sound/items/pot/pot_drop3.ogg', + ) + +/datum/sound_effect/tray_pickup + key = SFX_TRAY_PICKUP + file_paths = list( + 'sound/items/tray/tray_pickup1.ogg', + 'sound/items/tray/tray_pickup2.ogg', + 'sound/items/tray/tray_pickup3.ogg', + ) + +/datum/sound_effect/tray_drop + key = SFX_TRAY_DROP + file_paths = list( + 'sound/items/tray/tray_drop1.ogg', + 'sound/items/tray/tray_drop2.ogg', + 'sound/items/tray/tray_drop3.ogg', + ) + +/datum/sound_effect/tray_insert + key = SFX_TRAY_INSERT + file_paths = list( + 'sound/items/tray/tray_insert1.ogg', + 'sound/items/tray/tray_insert2.ogg', + 'sound/items/tray/tray_insert3.ogg', + ) + +/datum/sound_effect/rolling_pin_pickup + key = SFX_ROLLING_PIN_PICKUP + file_paths = list( + 'sound/items/rolling_pin/rolling_pin_pickup1.ogg', + 'sound/items/rolling_pin/rolling_pin_pickup2.ogg', + 'sound/items/rolling_pin/rolling_pin_pickup3.ogg', + ) + +/datum/sound_effect/rolling_pin_drop + key = SFX_ROLLING_PIN_DROP + file_paths = list( + 'sound/items/rolling_pin/rolling_pin_drop1.ogg', + 'sound/items/rolling_pin/rolling_pin_drop2.ogg', + 'sound/items/rolling_pin/rolling_pin_drop3.ogg', + ) + +/datum/sound_effect/rolling_pin_rolling + key = SFX_ROLLING_PIN_ROLLING + file_paths = list( + 'sound/items/rolling_pin/rolling_pin_rolling1.ogg', + 'sound/items/rolling_pin/rolling_pin_rolling2.ogg', + 'sound/items/rolling_pin/rolling_pin_rolling3.ogg', + 'sound/items/rolling_pin/rolling_pin_rolling4.ogg', + 'sound/items/rolling_pin/rolling_pin_rolling5.ogg', + 'sound/items/rolling_pin/rolling_pin_rolling6.ogg', + ) + +/datum/sound_effect/fire_mode_switch + key = SFX_FIRE_MODE_SWITCH + file_paths = list( + 'sound/items/weapons/gun_mode_switch1.ogg', + ) diff --git a/code/game/turfs/open/floor.dm b/code/game/turfs/open/floor.dm index 0b6c8159ed84..0e1863d14e17 100644 --- a/code/game/turfs/open/floor.dm +++ b/code/game/turfs/open/floor.dm @@ -51,7 +51,7 @@ if(target == src) ScrapeAway(flags = CHANGETURF_INHERIT_AIR) return TRUE - if(severity < EXPLODE_DEVASTATE && is_shielded()) + if(is_explosion_shielded(severity)) return FALSE if(target) @@ -86,9 +86,13 @@ return FALSE -/turf/open/floor/is_shielded() - for(var/obj/structure/A in contents) - return 1 +/turf/open/floor/is_explosion_shielded(severity) + if(severity >= EXPLODE_DEVASTATE) + return FALSE + for(var/obj/blocker in src) + if(blocker.density) + return TRUE + return FALSE /turf/open/floor/blob_act(obj/structure/blob/B) return diff --git a/code/game/turfs/open/floor/reinforced_floor.dm b/code/game/turfs/open/floor/reinforced_floor.dm index 72db8bdd0b70..f828f39c45bf 100644 --- a/code/game/turfs/open/floor/reinforced_floor.dm +++ b/code/game/turfs/open/floor/reinforced_floor.dm @@ -58,7 +58,7 @@ if(target == src) ScrapeAway(flags = CHANGETURF_INHERIT_AIR) return TRUE - if(severity < EXPLODE_DEVASTATE && is_shielded()) + if(is_explosion_shielded(severity)) return FALSE switch(severity) @@ -78,7 +78,11 @@ return TRUE -/turf/open/floor/engine/singularity_pull(S, current_size) +// Contents *under* the reinforced flooring is protected from explosions (unless it's devastate level) +/turf/open/floor/engine/can_propagate_explosion(atom/movable/some_thing, severity) + return severity == EXPLODE_DEVASTATE || !HAS_TRAIT(some_thing, TRAIT_UNDERFLOOR) + +/turf/open/floor/engine/singularity_pull(atom/singularity, current_size) ..() if(current_size >= STAGE_FIVE) if(floor_tile) diff --git a/code/game/turfs/open/misc.dm b/code/game/turfs/open/misc.dm index 02de7489786f..5f993cf70d51 100644 --- a/code/game/turfs/open/misc.dm +++ b/code/game/turfs/open/misc.dm @@ -42,7 +42,7 @@ if(target == src) ScrapeAway(flags = CHANGETURF_INHERIT_AIR) return TRUE - if(severity < EXPLODE_DEVASTATE && is_shielded()) + if(is_explosion_shielded(severity)) return FALSE if(target) @@ -68,9 +68,13 @@ return TRUE -/turf/open/misc/is_shielded() - for(var/obj/structure/A in contents) - return TRUE +/turf/open/misc/is_explosion_shielded(severity) + if(severity >= EXPLODE_DEVASTATE) + return FALSE + for(var/obj/blocker in src) + if(blocker.density) + return TRUE + return FALSE /turf/open/misc/blob_act(obj/structure/blob/B) return diff --git a/code/game/turfs/turf.dm b/code/game/turfs/turf.dm index 50d9dfd67c91..83b4ad3d0301 100644 --- a/code/game/turfs/turf.dm +++ b/code/game/turfs/turf.dm @@ -550,13 +550,14 @@ GLOBAL_LIST_EMPTY(station_turfs) /turf/proc/break_tile() return -/turf/proc/is_shielded() - return +/// Checks if this turf is protected from an explosion by something +/// Return TRUE to stop the explosion from affecting this turf +/turf/proc/is_explosion_shielded(severity) + return FALSE /turf/contents_explosion(severity, target) - for(var/thing in contents) - var/atom/movable/movable_thing = thing - if(QDELETED(movable_thing)) + for(var/atom/movable/movable_thing as anything in src) + if(QDELETED(movable_thing) || !can_propagate_explosion(movable_thing, severity)) continue switch(severity) if(EXPLODE_DEVASTATE) @@ -566,6 +567,11 @@ GLOBAL_LIST_EMPTY(station_turfs) if(EXPLODE_LIGHT) SSexplosions.low_mov_atom += movable_thing +/// Called when propagating an explosion through contents,. +/// Return FALSE to prevent the passed object from being exploded. +/turf/proc/can_propagate_explosion(atom/movable/some_thing, severity) + return TRUE + /turf/narsie_act(force, ignore_mobs, probability = 20) . = (prob(probability) || force) for(var/I in src) diff --git a/code/modules/antagonists/heretic/magic/mind_gate.dm b/code/modules/antagonists/heretic/magic/mind_gate.dm index 963e27f7b7c0..413aa0c0a8c7 100644 --- a/code/modules/antagonists/heretic/magic/mind_gate.dm +++ b/code/modules/antagonists/heretic/magic/mind_gate.dm @@ -7,7 +7,7 @@ button_icon = 'icons/mob/actions/actions_ecult.dmi' button_icon_state = "mind_gate" - sound = 'sound/magic/curse.ogg' + sound = 'sound/effects/magic/curse.ogg' school = SCHOOL_FORBIDDEN cooldown_time = 20 SECONDS diff --git a/code/modules/antagonists/heretic/structures/carving_knife.dm b/code/modules/antagonists/heretic/structures/carving_knife.dm index a1b0907ea9ba..51df4fb7de9a 100644 --- a/code/modules/antagonists/heretic/structures/carving_knife.dm +++ b/code/modules/antagonists/heretic/structures/carving_knife.dm @@ -199,7 +199,7 @@ var/mob/living/real_owner = owner?.resolve() if(real_owner) to_chat(real_owner, span_userdanger("[victim.real_name] has stepped foot on the alert rune in [get_area(src)]!")) - real_owner.playsound_local(get_turf(real_owner), 'sound/magic/curse.ogg', 50, TRUE) + real_owner.playsound_local(get_turf(real_owner), 'sound/effects/magic/curse.ogg', 50, TRUE) /obj/structure/trap/eldritch/tentacle name = "grasping carving" diff --git a/code/modules/events/holiday/easter.dm b/code/modules/events/holiday/easter.dm index ddade60e2879..876ef481cb22 100644 --- a/code/modules/events/holiday/easter.dm +++ b/code/modules/events/holiday/easter.dm @@ -149,8 +149,9 @@ /datum/reagent/consumable/sugar = 1 ) result = /obj/item/food/hotcrossbun - - category = CAT_BREAD + added_foodtypes = SUGAR | BREAKFAST + dish_category = DISH_BREAD + meal_category = MEAL_SNACK /datum/crafting_recipe/food/briochecake name = "Brioche cake" @@ -159,7 +160,8 @@ /datum/reagent/consumable/sugar = 2 ) result = /obj/item/food/cake/brioche - category = CAT_MISCFOOD + dish_category = DISH_PASTRY + meal_category = MEAL_DESSERT /obj/item/food/scotchegg name = "scotch egg" @@ -169,6 +171,7 @@ bite_consumption = 3 food_reagents = list(/datum/reagent/consumable/nutriment = 6, /datum/reagent/consumable/nutriment/vitamin = 2) crafting_complexity = FOOD_COMPLEXITY_2 + foodtypes = MEAT|EGG /datum/crafting_recipe/food/scotchegg name = "Scotch egg" @@ -179,7 +182,9 @@ /obj/item/food/meatball = 1 ) result = /obj/item/food/scotchegg - category = CAT_EGG + removed_foodtypes = BREAKFAST + dish_category = DISH_MEAT + meal_category = MEAL_APPETIZER /datum/crafting_recipe/food/mammi name = "Mammi" @@ -189,7 +194,9 @@ /datum/reagent/consumable/milk = 5 ) result = /obj/item/food/bowled/mammi - category = CAT_MISCFOOD + added_foodtypes = DAIRY + dish_category = DISH_CANDY + meal_category = MEAL_DESSERT /obj/item/food/chocolatebunny name = "chocolate bunny" @@ -197,6 +204,7 @@ icon_state = "chocolatebunny" food_reagents = list(/datum/reagent/consumable/nutriment = 4, /datum/reagent/consumable/sugar = 2, /datum/reagent/consumable/coco = 2, /datum/reagent/consumable/nutriment/vitamin = 1) crafting_complexity = FOOD_COMPLEXITY_1 + foodtypes = JUNKFOOD | SUGAR /datum/crafting_recipe/food/chocolatebunny name = "Chocolate bunny" @@ -205,4 +213,5 @@ /obj/item/food/chocolatebar = 1 ) result = /obj/item/food/chocolatebunny - category = CAT_MISCFOOD + dish_category = DISH_CANDY + meal_category = MEAL_DESSERT diff --git a/code/modules/food_and_drinks/machinery/oven.dm b/code/modules/food_and_drinks/machinery/oven.dm index 8b11d79c8610..16e0c9ab42e6 100644 --- a/code/modules/food_and_drinks/machinery/oven.dm +++ b/code/modules/food_and_drinks/machinery/oven.dm @@ -117,6 +117,7 @@ ///Adds a tray to the oven, making sure the shit can get baked. /obj/machinery/oven/proc/add_tray_to_oven(obj/item/plate/oven_tray, mob/baker) used_tray = oven_tray + playsound(src, SFX_TRAY_INSERT, 50, TRUE) if(!open) oven_tray.vis_flags |= VIS_HIDE @@ -248,6 +249,9 @@ icon_state = "oven_tray" max_items = 6 biggest_w_class = WEIGHT_CLASS_BULKY + sound_vary = TRUE + pickup_sound = SFX_TRAY_PICKUP + drop_sound = SFX_TRAY_DROP /obj/item/plate/oven_tray/item_interaction_secondary(mob/living/user, obj/item/item, list/modifiers) if(isnull(item.atom_storage)) diff --git a/code/modules/food_and_drinks/machinery/stove.dm b/code/modules/food_and_drinks/machinery/stove.dm index e113e73c4eee..0ecea3a1d6cf 100644 --- a/code/modules/food_and_drinks/machinery/stove.dm +++ b/code/modules/food_and_drinks/machinery/stove.dm @@ -41,6 +41,9 @@ fill_icon_thresholds = null drop_sound = 'maplestation_modules/sound/items/drop/metal_pot.ogg' pickup_sound = 'maplestation_modules/sound/items/pickup/metal_pot.ogg' + // sound_vary = TRUE + // pickup_sound = SFX_POT_PICKUP + // drop_sound = SFX_POT_DROP /// Max number of ingredients we can add var/max_ingredients = 24 diff --git a/code/modules/food_and_drinks/plate.dm b/code/modules/food_and_drinks/plate.dm index afb4c5331359..9e3d47abb181 100644 --- a/code/modules/food_and_drinks/plate.dm +++ b/code/modules/food_and_drinks/plate.dm @@ -3,6 +3,9 @@ desc = "Holds food, powerful. Good for morale when you're not eating your spaghetti off of a desk." icon = 'icons/obj/service/kitchen.dmi' icon_state = "plate" + sound_vary = TRUE + pickup_sound = SFX_FOOD_PLATE_PICKUP + drop_sound = SFX_FOOD_PLATE_DROP w_class = WEIGHT_CLASS_BULKY //No backpack. drop_sound = 'maplestation_modules/sound/items/drop/glass.ogg' pickup_sound = 'maplestation_modules/sound/items/pickup/glass.ogg' diff --git a/code/modules/food_and_drinks/recipes/food_mixtures.dm b/code/modules/food_and_drinks/recipes/food_mixtures.dm index bbea09b57d32..8bfcb23066b7 100644 --- a/code/modules/food_and_drinks/recipes/food_mixtures.dm +++ b/code/modules/food_and_drinks/recipes/food_mixtures.dm @@ -1,6 +1,19 @@ /datum/crafting_recipe/food mass_craftable = TRUE crafting_flags = parent_type::crafting_flags | CRAFT_TRANSFERS_REAGENT_COMPONENTS | CRAFT_CLEARS_REAGENTS + // avoid changing this, it is used to split the crafting menu between normal and food + category = CAT_FOOD + + ///The food types that are added to the result when the recipe is completed + var/added_foodtypes = NONE + ///The food types that are removed to the result when the recipe is completed + var/removed_foodtypes = NONE + /// Type of cuisine, like "Mexican", "Italian", "Martian", "Mothic", or "Lizard" + var/cuisine_category = CUISINE_TERRAN + /// Type of dish, like "Pizza", "Cake", "Burger" or "Soup" + var/dish_category = DISH_UNCATEGORIZED + /// Type of meal, like "Appetizer", "Main Course", "Dessert", or "Snack" + var/meal_category = MEAL_MAIN_COURSE /datum/crafting_recipe/food/on_craft_completion(mob/user, atom/result) SHOULD_CALL_PARENT(TRUE) @@ -18,16 +31,55 @@ . = ..() parts |= reqs + //rarely, but a few cooking recipes (cake cat & co) don't result food items. + if(/*!PERFORM_ALL_TESTS(focus_only/check_foodtypes) || */non_craftable || !ispath(result, /obj/item/food)) + return + + // Food made from these recipes should inherit the food types of the food ingredients used in it + // 'added_foodtypes' and 'added_foodtypes' exist to add and remove (un)desiderable types + // If the food types of the result don't match when spawned compared to when crafted (with base ingredients), throw a warning. + var/made_with_food = FALSE + var/actual_foodtypes = added_foodtypes + for(var/req_path in reqs) + if(!ispath(req_path, /obj/item/food)) + continue + var/obj/item/food/ingredient = req_path + made_with_food = TRUE + actual_foodtypes |= initial(ingredient.foodtypes) + if(!made_with_food) + return + actual_foodtypes &= ~removed_foodtypes + var/obj/item/food/result_path = result + var/result_foodtypes = initial(result_path.foodtypes) + if(result_foodtypes != actual_foodtypes) + var/text_flags = jointext(bitfield_to_list(result_foodtypes, FOOD_FLAGS),"|") + var/text_craft_flags = jointext(bitfield_to_list(actual_foodtypes, FOOD_FLAGS),"|") + stack_trace("the foodtypes of [result_path] are [text_flags] when spawned but [text_craft_flags] when crafted.") + /datum/crafting_recipe/food/crafting_ui_data() var/list/data = list() - if(ispath(result, /obj/item/food)) - var/obj/item/food/item = result - data["foodtypes"] = bitfield_to_list(initial(item.foodtypes), FOOD_FLAGS) - data["complexity"] = initial(item.crafting_complexity) + var/foodtypes = get_food_types() + data["foodtypes"] = bitfield_to_list(foodtypes, FOOD_FLAGS) + data["complexity"] = get_complexity() + data["cuisine_category"] = cuisine_category + data["dish_category"] = dish_category + data["meal_category"] = (meal_category != MEAL_COMPONENT && (foodtypes & BREAKFAST)) ? MEAL_BREAKFAST : meal_category return data +/datum/crafting_recipe/food/proc/get_food_types() + if(ispath(result, /obj/item/food)) + var/obj/item/food/food_result = result + return (initial(food_result.foodtypes) | added_foodtypes) & ~removed_foodtypes + return NONE + +/datum/crafting_recipe/food/proc/get_complexity() + if(ispath(result, /obj/item/food)) + var/obj/item/food/food_result = result + return initial(food_result.crafting_complexity) + return 0 + //////////////////////////////////////////FOOD MIXTURES//////////////////////////////////// /datum/chemical_reaction/food diff --git a/code/modules/food_and_drinks/recipes/soup_guide.dm b/code/modules/food_and_drinks/recipes/soup_guide.dm index 3a9ba05ff0c7..742dbbfb5cae 100644 --- a/code/modules/food_and_drinks/recipes/soup_guide.dm +++ b/code/modules/food_and_drinks/recipes/soup_guide.dm @@ -1,6 +1,7 @@ /datum/crafting_recipe/food/reaction/soup machinery = list(/obj/machinery/stove) - category = CAT_SOUP + dish_category = DISH_SOUP + meal_category = MEAL_MAIN_COURSE non_craftable = TRUE /// What contained is this reaction expected to be served in? /// Used to determine the icon to display in the crafting UI. @@ -19,17 +20,12 @@ return ..() -/datum/crafting_recipe/food/reaction/soup/crafting_ui_data() - if(ispath(result, /obj/item/food)) - return ..() - - var/list/data = list() - +/datum/crafting_recipe/food/reaction/soup/get_food_types() var/datum/glass_style/has_foodtype/soup_style = GLOB.glass_style_singletons[expected_container][result] if(istype(soup_style)) - data["foodtypes"] = bitfield_to_list(soup_style.drink_type, FOOD_FLAGS) + return soup_style.drink_type - return data + return ..() /datum/crafting_recipe/food/reaction/soup/setup_chemical_reaction_details(datum/chemical_reaction/food/soup/chemical_reaction) . = ..() @@ -149,4 +145,4 @@ /obj/item/reagent_containers/cup/bowl = 1 ) result= /obj/item/food/bowled/wish - category = CAT_SOUP + dish_category = DISH_SOUP diff --git a/code/modules/food_and_drinks/recipes/soup_mixtures.dm b/code/modules/food_and_drinks/recipes/soup_mixtures.dm index b0d1de09398f..03196ddb489c 100644 --- a/code/modules/food_and_drinks/recipes/soup_mixtures.dm +++ b/code/modules/food_and_drinks/recipes/soup_mixtures.dm @@ -1470,6 +1470,18 @@ /datum/reagent/consumable/nutriment/soup/jellyfish = 30, /datum/reagent/water = 5, ) +//Fresh Jellyfish fillet soup! +/datum/chemical_reaction/food/soup/jellyfish_stew_two + required_reagents = list(/datum/reagent/water = 50) + required_ingredients = list( + /obj/item/food/fishmeat/gunner_jellyfish = 1, + /obj/item/food/grown/soybeans = 1, + /obj/item/food/grown/redbeet = 1, + /obj/item/food/grown/potato = 1 + ) + results = list( + /datum/reagent/consumable/nutriment/soup/jellyfish = 50, + ) // Rootbread Soup /datum/reagent/consumable/nutriment/soup/rootbread diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_bread.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_bread.dm index d0517272d776..da987c9c5dc9 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_bread.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_bread.dm @@ -11,7 +11,7 @@ /obj/item/food/cheese/wedge = 3 ) result = /obj/item/food/bread/meat - category = CAT_BREAD + dish_category = DISH_BREAD /datum/crafting_recipe/food/xenomeatbread name = "Xenomeat bread" @@ -21,7 +21,7 @@ /obj/item/food/cheese/wedge = 3 ) result = /obj/item/food/bread/xenomeat - category = CAT_BREAD + dish_category = DISH_BREAD /datum/crafting_recipe/food/spidermeatbread name = "Spidermeat bread" @@ -31,7 +31,7 @@ /obj/item/food/cheese/wedge = 3 ) result = /obj/item/food/bread/spidermeat - category = CAT_BREAD + dish_category = DISH_BREAD /datum/crafting_recipe/food/sausagebread name = "Sausage bread" @@ -40,7 +40,8 @@ /obj/item/food/sausage = 2, ) result = /obj/item/food/bread/sausage - category = CAT_BREAD + removed_foodtypes = BREAKFAST + dish_category = DISH_BREAD /datum/crafting_recipe/food/banananutbread name = "Banana nut bread" @@ -51,7 +52,8 @@ /obj/item/food/grown/banana = 1 ) result = /obj/item/food/bread/banana - category = CAT_BREAD + removed_foodtypes = BREAKFAST|EGG + dish_category = DISH_BREAD /datum/crafting_recipe/food/tofubread name = "Tofu bread" @@ -61,7 +63,7 @@ /obj/item/food/cheese/wedge = 3 ) result = /obj/item/food/bread/tofu - category = CAT_BREAD + dish_category = DISH_BREAD /datum/crafting_recipe/food/creamcheesebread name = "Cream cheese bread" @@ -71,7 +73,7 @@ /obj/item/food/cheese/wedge = 2 ) result = /obj/item/food/bread/creamcheese - category = CAT_BREAD + dish_category = DISH_BREAD /datum/crafting_recipe/food/mimanabread name = "Mimana bread" @@ -82,7 +84,7 @@ /obj/item/food/grown/banana/mime = 1 ) result = /obj/item/food/bread/mimana - category = CAT_BREAD + dish_category = DISH_BREAD /datum/crafting_recipe/food/garlicbread name = "Garlic Bread" @@ -92,7 +94,8 @@ /obj/item/food/butterslice = 1 ) result = /obj/item/food/garlicbread - category = CAT_BREAD + dish_category = DISH_BREAD + meal_category = MEAL_APPETIZER /datum/crafting_recipe/food/butterbiscuit name = "Butter Biscuit" @@ -101,7 +104,8 @@ /obj/item/food/butterslice = 1 ) result = /obj/item/food/butterbiscuit - category = CAT_BREAD + added_foodtypes = BREAKFAST + dish_category = DISH_BREAD /datum/crafting_recipe/food/butterdog name = "Butterdog" @@ -110,17 +114,18 @@ /obj/item/food/butter = 1, ) result = /obj/item/food/butterdog - category = CAT_BREAD + dish_category = DISH_SANDWICH /datum/crafting_recipe/food/baguette name = "Baguette" time = 40 reqs = list(/datum/reagent/consumable/salt = 1, /datum/reagent/consumable/blackpepper = 1, - /obj/item/food/pastrybase = 2 + /obj/item/food/doughslice = 2, ) result = /obj/item/food/baguette - category = CAT_BREAD + dish_category = DISH_BREAD + meal_category = MEAL_SNACK /datum/crafting_recipe/food/raw_breadstick name = "Raw breadstick" @@ -130,7 +135,8 @@ /obj/item/food/butterslice = 1 ) result = /obj/item/food/raw_breadstick - category = CAT_BREAD + dish_category = DISH_BREAD + meal_category = MEAL_COMPONENT /datum/crafting_recipe/food/raw_croissant name = "Raw croissant" @@ -140,7 +146,8 @@ /obj/item/food/butterslice = 1 ) result = /obj/item/food/raw_croissant - category = CAT_BREAD + dish_category = DISH_BREAD + meal_category = MEAL_COMPONENT /datum/crafting_recipe/food/throwing_croissant name = "Throwing croissant" @@ -149,7 +156,7 @@ /obj/item/stack/rods = 1, ) result = /obj/item/food/croissant/throwing - category = CAT_BREAD + dish_category = DISH_BREAD crafting_flags = CRAFT_CHECK_DENSITY | CRAFT_MUST_BE_LEARNED /datum/crafting_recipe/food/breaddog @@ -163,7 +170,9 @@ /datum/reagent/teslium = 1 //To shock the whole thing into life ) result = /mob/living/basic/pet/dog/breaddog - category = CAT_BREAD + dish_category = DISH_BREAD + meal_category = MEAL_UNCATEGORIZED + ////////////////////////////////////////////////TOAST//////////////////////////////////////////////// @@ -174,7 +183,8 @@ /obj/item/food/breadslice/plain = 1 ) result = /obj/item/food/jelliedtoast/slime - category = CAT_BREAD + added_foodtypes = TOXIC | BREAKFAST + dish_category = DISH_BREAD /datum/crafting_recipe/food/jelliedyoast name = "Jellied toast" @@ -183,7 +193,8 @@ /obj/item/food/breadslice/plain = 1 ) result = /obj/item/food/jelliedtoast/cherry - category = CAT_BREAD + added_foodtypes = FRUIT | SUGAR | BREAKFAST + dish_category = DISH_BREAD /datum/crafting_recipe/food/butteredtoast name = "Buttered Toast" @@ -192,7 +203,8 @@ /obj/item/food/butterslice = 1 ) result = /obj/item/food/butteredtoast - category = CAT_BREAD + added_foodtypes = BREAKFAST + dish_category = DISH_BREAD /datum/crafting_recipe/food/twobread name = "Two bread" @@ -201,7 +213,7 @@ /obj/item/food/breadslice/plain = 2 ) result = /obj/item/food/twobread - category = CAT_BREAD + dish_category = DISH_BREAD /datum/crafting_recipe/food/moldybread // why would you make this? name = "Moldy Bread" @@ -210,7 +222,9 @@ /obj/item/food/grown/mushroom/amanita = 1 ) result = /obj/item/food/breadslice/moldy - category = CAT_BREAD + removed_foodtypes = VEGETABLES|GRAIN + added_foodtypes = GROSS + dish_category = DISH_BREAD /datum/crafting_recipe/food/breadcat name = "Bread cat/bread hybrid" @@ -223,7 +237,8 @@ /datum/reagent/medicine/strange_reagent = 5 ) result = /mob/living/basic/pet/cat/breadcat - category = CAT_BREAD + dish_category = DISH_BREAD + meal_category = MEAL_UNCATEGORIZED /datum/crafting_recipe/food/frenchtoast name = "Raw french toast" @@ -233,4 +248,6 @@ /datum/reagent/consumable/milk = 5 ) result = /obj/item/food/raw_frenchtoast - category = CAT_BREAD + added_foodtypes = BREAKFAST + dish_category = DISH_BREAD + meal_category = MEAL_COMPONENT diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_burger.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_burger.dm index 2953f8408ac9..87c242a4e5ec 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_burger.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_burger.dm @@ -14,7 +14,7 @@ /obj/item/food/patty = 1 ) result = /obj/item/food/burger/human - category = CAT_BURGER + dish_category = DISH_BURGER /datum/crafting_recipe/food/burger name = "Plain Burger" @@ -24,7 +24,7 @@ ) result = /obj/item/food/burger/plain - category = CAT_BURGER + dish_category = DISH_BURGER /datum/crafting_recipe/food/corgiburger name = "Corgi burger" @@ -34,7 +34,7 @@ ) result = /obj/item/food/burger/corgi - category = CAT_BURGER + dish_category = DISH_BURGER /datum/crafting_recipe/food/appendixburger name = "Appendix burger" @@ -43,7 +43,8 @@ /obj/item/food/bun = 1 ) result = /obj/item/food/burger/appendix - category = CAT_BURGER + added_foodtypes = MEAT | GORE + dish_category = DISH_BURGER /datum/crafting_recipe/food/brainburger name = "Brain burger" @@ -52,7 +53,8 @@ /obj/item/food/bun = 1 ) result = /obj/item/food/burger/brain - category = CAT_BURGER + added_foodtypes = MEAT | GORE + dish_category = DISH_BURGER /datum/crafting_recipe/food/xenoburger name = "Xeno burger" @@ -61,7 +63,7 @@ /obj/item/food/bun = 1 ) result = /obj/item/food/burger/xeno - category = CAT_BURGER + dish_category = DISH_BURGER /datum/crafting_recipe/food/bearger name = "Bearger" @@ -70,7 +72,7 @@ /obj/item/food/bun = 1 ) result = /obj/item/food/burger/bearger - category = CAT_BURGER + dish_category = DISH_BURGER /datum/crafting_recipe/food/fishburger name = "Fish burger" @@ -80,7 +82,7 @@ /obj/item/food/cheese/wedge = 1 ) result = /obj/item/food/burger/fish - category = CAT_BURGER + dish_category = DISH_BURGER /datum/crafting_recipe/food/tofuburger name = "Tofu burger" @@ -89,7 +91,7 @@ /obj/item/food/bun = 1 ) result = /obj/item/food/burger/tofu - category = CAT_BURGER + dish_category = DISH_BURGER /datum/crafting_recipe/food/ghostburger name = "Ghost burger" @@ -99,7 +101,7 @@ /obj/item/food/bun = 1 ) result = /obj/item/food/burger/ghost - category = CAT_BURGER + dish_category = DISH_BURGER /datum/crafting_recipe/food/clownburger name = "Clown burger" @@ -108,7 +110,7 @@ /obj/item/food/bun = 1 ) result = /obj/item/food/burger/clown - category = CAT_BURGER + dish_category = DISH_BURGER /datum/crafting_recipe/food/mimeburger name = "Mime burger" @@ -117,7 +119,7 @@ /obj/item/food/bun = 1 ) result = /obj/item/food/burger/mime - category = CAT_BURGER + dish_category = DISH_BURGER /datum/crafting_recipe/food/redburger name = "Red burger" @@ -127,7 +129,7 @@ /obj/item/food/bun = 1 ) result = /obj/item/food/burger/red - category = CAT_BURGER + dish_category = DISH_BURGER /datum/crafting_recipe/food/orangeburger name = "Orange burger" @@ -137,7 +139,7 @@ /obj/item/food/bun = 1 ) result = /obj/item/food/burger/orange - category = CAT_BURGER + dish_category = DISH_BURGER /datum/crafting_recipe/food/yellowburger name = "Yellow burger" @@ -147,7 +149,7 @@ /obj/item/food/bun = 1 ) result = /obj/item/food/burger/yellow - category = CAT_BURGER + dish_category = DISH_BURGER /datum/crafting_recipe/food/greenburger name = "Green burger" @@ -157,7 +159,7 @@ /obj/item/food/bun = 1 ) result = /obj/item/food/burger/green - category = CAT_BURGER + dish_category = DISH_BURGER /datum/crafting_recipe/food/blueburger name = "Blue burger" @@ -167,7 +169,7 @@ /obj/item/food/bun = 1 ) result = /obj/item/food/burger/blue - category = CAT_BURGER + dish_category = DISH_BURGER /datum/crafting_recipe/food/purpleburger name = "Purple burger" @@ -177,7 +179,7 @@ /obj/item/food/bun = 1 ) result = /obj/item/food/burger/purple - category = CAT_BURGER + dish_category = DISH_BURGER /datum/crafting_recipe/food/blackburger name = "Black burger" @@ -187,7 +189,7 @@ /obj/item/food/bun = 1 ) result = /obj/item/food/burger/black - category = CAT_BURGER + dish_category = DISH_BURGER /datum/crafting_recipe/food/whiteburger name = "White burger" @@ -197,7 +199,7 @@ /obj/item/food/bun = 1 ) result = /obj/item/food/burger/white - category = CAT_BURGER + dish_category = DISH_BURGER /datum/crafting_recipe/food/spellburger name = "Spell burger" @@ -206,7 +208,7 @@ /obj/item/food/bun = 1 ) result = /obj/item/food/burger/spell - category = CAT_BURGER + dish_category = DISH_BURGER /datum/crafting_recipe/food/bigbiteburger name = "Big bite burger" @@ -216,7 +218,7 @@ /obj/item/food/cheese/wedge = 2 ) result = /obj/item/food/burger/bigbite - category = CAT_BURGER + dish_category = DISH_BURGER /datum/crafting_recipe/food/superbiteburger name = "Super bite burger" @@ -233,7 +235,8 @@ ) result = /obj/item/food/burger/superbite - category = CAT_BURGER + removed_foodtypes = BREAKFAST + dish_category = DISH_BURGER /datum/crafting_recipe/food/slimeburger name = "Jelly burger" @@ -242,7 +245,8 @@ /obj/item/food/bun = 1 ) result = /obj/item/food/burger/jelly/slime - category = CAT_BURGER + added_foodtypes = TOXIC + dish_category = DISH_BURGER /datum/crafting_recipe/food/jellyburger name = "Jelly burger" @@ -251,7 +255,8 @@ /obj/item/food/bun = 1 ) result = /obj/item/food/burger/jelly/cherry - category = CAT_BURGER + added_foodtypes = FRUIT + dish_category = DISH_BURGER /datum/crafting_recipe/food/fivealarmburger name = "Five alarm burger" @@ -261,7 +266,7 @@ /obj/item/food/bun = 1 ) result = /obj/item/food/burger/fivealarm - category = CAT_BURGER + dish_category = DISH_BURGER /datum/crafting_recipe/food/ratburger name = "Rat burger" @@ -270,7 +275,7 @@ /obj/item/food/bun = 1 ) result = /obj/item/food/burger/rat - category = CAT_BURGER + dish_category = DISH_BURGER /datum/crafting_recipe/food/baseballburger name = "Home run baseball burger" @@ -279,7 +284,8 @@ /obj/item/food/bun = 1 ) result = /obj/item/food/burger/baseball - category = CAT_BURGER + added_foodtypes = GROSS + dish_category = DISH_BURGER /datum/crafting_recipe/food/baconburger name = "Bacon Burger" @@ -289,7 +295,8 @@ ) result = /obj/item/food/burger/baconburger - category = CAT_BURGER + removed_foodtypes = BREAKFAST + dish_category = DISH_BURGER /datum/crafting_recipe/food/empoweredburger name = "Empowered Burger" @@ -299,7 +306,8 @@ ) result = /obj/item/food/burger/empoweredburger - category = CAT_BURGER + added_foodtypes = TOXIC + dish_category = DISH_BURGER /datum/crafting_recipe/food/catburger name = "Cat burger" @@ -310,7 +318,8 @@ /obj/item/organ/tail/cat = 1, ) result = /obj/item/food/burger/catburger - category = CAT_BURGER + added_foodtypes = GORE + dish_category = DISH_BURGER /datum/crafting_recipe/food/crabburger name = "Crab Burger" @@ -320,7 +329,7 @@ ) result = /obj/item/food/burger/crab - category = CAT_BURGER + dish_category = DISH_BURGER /datum/crafting_recipe/food/cheeseburger name = "Cheese Burger" @@ -330,7 +339,7 @@ /obj/item/food/cheese/wedge = 1, ) result = /obj/item/food/burger/cheese - category = CAT_BURGER + dish_category = DISH_BURGER /datum/crafting_recipe/food/soylentburger name = "Soylent Burger" @@ -340,7 +349,7 @@ /obj/item/food/cheese/wedge = 2, ) result = /obj/item/food/burger/soylent - category = CAT_BURGER + dish_category = DISH_BURGER /datum/crafting_recipe/food/ribburger name = "McRib" @@ -350,7 +359,7 @@ /obj/item/food/bun = 1 ) result = /obj/item/food/burger/rib - category = CAT_BURGER + dish_category = DISH_BURGER /datum/crafting_recipe/food/mcguffin name = "McGuffin" @@ -360,7 +369,7 @@ /obj/item/food/bun = 1 ) result = /obj/item/food/burger/mcguffin - category = CAT_BURGER + dish_category = DISH_BURGER /datum/crafting_recipe/food/chickenburger name = "Chicken Sandwich" @@ -370,7 +379,7 @@ /obj/item/food/bun = 1 ) result = /obj/item/food/burger/chicken - category = CAT_BURGER + dish_category = DISH_BURGER /datum/crafting_recipe/food/crazyhamburger name = "Crazy hamburger" @@ -385,7 +394,7 @@ /datum/reagent/consumable/nutriment/fat/oil = 15 ) result = /obj/item/food/burger/crazy - category = CAT_BURGER + dish_category = DISH_BURGER /datum/crafting_recipe/food/sloppy_moe name = "Sloppy moe" @@ -396,7 +405,7 @@ /datum/reagent/consumable/bbqsauce = 5, ) result = /obj/item/food/burger/sloppy_moe - category = CAT_BURGER + dish_category = DISH_BURGER /datum/crafting_recipe/food/kortaburger name = "Plain Rootburger" @@ -405,7 +414,7 @@ /obj/item/food/rootroll = 1 ) result = /obj/item/food/burger/plain/korta - category = CAT_BURGER + dish_category = DISH_BURGER /datum/crafting_recipe/food/ratkorta name = "Rat Rootburger" @@ -414,7 +423,7 @@ /obj/item/food/rootroll = 1 ) result = /obj/item/food/burger/rat/korta - category = CAT_BURGER + dish_category = DISH_BURGER /datum/crafting_recipe/food/rootguffin name = "Root-Guffin" @@ -424,7 +433,7 @@ /obj/item/food/rootroll = 1 ) result = /obj/item/food/burger/rootguffin - category = CAT_BURGER + dish_category = DISH_BURGER /datum/crafting_recipe/food/rootrib name = "RootRib" @@ -434,7 +443,7 @@ /obj/item/food/rootroll = 1 ) result = /obj/item/food/burger/rootrib - category = CAT_BURGER + dish_category = DISH_BURGER /datum/crafting_recipe/food/rootchicken name = "Chicken Rootwich" @@ -444,7 +453,7 @@ /obj/item/food/rootroll = 1 ) result = /obj/item/food/burger/rootchicken - category = CAT_BURGER + dish_category = DISH_BURGER /datum/crafting_recipe/food/rootfish name = "Fish rootburger" @@ -453,7 +462,7 @@ /obj/item/food/rootroll = 1 ) result = /obj/item/food/burger/rootfish - category = CAT_BURGER + dish_category = DISH_BURGER /datum/crafting_recipe/food/sloppyroot name = "Sssloppy moe" @@ -464,4 +473,4 @@ /datum/reagent/consumable/bbqsauce = 5, ) result = /obj/item/food/burger/sloppyroot - category = CAT_BURGER + dish_category = DISH_BURGER diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_cake.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_cake.dm index 86956ba861ca..4e6fa368f007 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_cake.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_cake.dm @@ -10,7 +10,8 @@ /obj/item/food/grown/carrot = 2 ) result = /obj/item/food/cake/carrot - category = CAT_CAKE + dish_category = DISH_CAKE + meal_category = MEAL_DESSERT /datum/crafting_recipe/food/cheesecake name = "Cheese cake" @@ -19,7 +20,8 @@ /obj/item/food/cheese/wedge = 2 ) result = /obj/item/food/cake/cheese - category = CAT_CAKE + dish_category = DISH_CAKE + meal_category = MEAL_DESSERT /datum/crafting_recipe/food/applecake name = "Apple cake" @@ -28,7 +30,8 @@ /obj/item/food/grown/apple = 2 ) result = /obj/item/food/cake/apple - category = CAT_CAKE + dish_category = DISH_CAKE + meal_category = MEAL_DESSERT /datum/crafting_recipe/food/orangecake name = "Orange cake" @@ -37,7 +40,8 @@ /obj/item/food/grown/citrus/orange = 2 ) result = /obj/item/food/cake/orange - category = CAT_CAKE + dish_category = DISH_CAKE + meal_category = MEAL_DESSERT /datum/crafting_recipe/food/limecake name = "Lime cake" @@ -46,7 +50,8 @@ /obj/item/food/grown/citrus/lime = 2 ) result = /obj/item/food/cake/lime - category = CAT_CAKE + dish_category = DISH_CAKE + meal_category = MEAL_DESSERT /datum/crafting_recipe/food/lemoncake name = "Lemon cake" @@ -55,7 +60,8 @@ /obj/item/food/grown/citrus/lemon = 2 ) result = /obj/item/food/cake/lemon - category = CAT_CAKE + dish_category = DISH_CAKE + meal_category = MEAL_DESSERT /datum/crafting_recipe/food/chocolatecake name = "Chocolate cake" @@ -64,7 +70,8 @@ /obj/item/food/chocolatebar = 2 ) result = /obj/item/food/cake/chocolate - category = CAT_CAKE + dish_category = DISH_CAKE + meal_category = MEAL_DESSERT /datum/crafting_recipe/food/birthdaycake name = "Birthday cake" @@ -75,7 +82,9 @@ /datum/reagent/consumable/caramel = 2 ) result = /obj/item/food/cake/birthday - category = CAT_CAKE + added_foodtypes = JUNKFOOD + dish_category = DISH_CAKE + meal_category = MEAL_DESSERT /datum/crafting_recipe/food/energycake name = "Energy cake" @@ -85,7 +94,8 @@ ) blacklist = list(/obj/item/food/cake/birthday/energy) result = /obj/item/food/cake/birthday/energy - category = CAT_CAKE + dish_category = DISH_CAKE + meal_category = MEAL_DESSERT /datum/crafting_recipe/food/braincake name = "Brain cake" @@ -94,7 +104,9 @@ /obj/item/food/cake/plain = 1 ) result = /obj/item/food/cake/brain - category = CAT_CAKE + added_foodtypes = MEAT | GORE + dish_category = DISH_CAKE + meal_category = MEAL_DESSERT /datum/crafting_recipe/food/slimecake name = "Slime cake" @@ -103,7 +115,8 @@ /obj/item/food/cake/plain = 1 ) result = /obj/item/food/cake/slimecake - category = CAT_CAKE + dish_category = DISH_CAKE + meal_category = MEAL_DESSERT /datum/crafting_recipe/food/pumpkinspicecake name = "Pumpkin spice cake" @@ -112,7 +125,8 @@ /obj/item/food/grown/pumpkin = 2 ) result = /obj/item/food/cake/pumpkinspice - category = CAT_CAKE + dish_category = DISH_CAKE + meal_category = MEAL_DESSERT /datum/crafting_recipe/food/holycake name = "Angel food cake" @@ -121,7 +135,8 @@ /obj/item/food/cake/plain = 1 ) result = /obj/item/food/cake/holy_cake - category = CAT_CAKE + dish_category = DISH_CAKE + meal_category = MEAL_DESSERT /datum/crafting_recipe/food/poundcake name = "Pound cake" @@ -129,7 +144,9 @@ /obj/item/food/cake/plain = 4 ) result = /obj/item/food/cake/pound_cake - category = CAT_CAKE + added_foodtypes = JUNKFOOD + dish_category = DISH_CAKE + meal_category = MEAL_DESSERT /datum/crafting_recipe/food/hardwarecake name = "Hardware cake" @@ -139,7 +156,9 @@ /datum/reagent/toxin/acid = 5 ) result = /obj/item/food/cake/hardware_cake - category = CAT_CAKE + added_foodtypes = GROSS + dish_category = DISH_CAKE + meal_category = MEAL_DESSERT /datum/crafting_recipe/food/berry_chocolate_cake name = "strawberry chocolate cake" @@ -149,7 +168,9 @@ /obj/item/food/grown/berries = 5 ) result = /obj/item/food/cake/berry_chocolate_cake - category = CAT_CAKE + removed_foodtypes = JUNKFOOD + dish_category = DISH_CAKE + meal_category = MEAL_DESSERT /datum/crafting_recipe/food/pavlovacream name = "Pavlova with cream" @@ -160,7 +181,9 @@ /obj/item/food/grown/berries = 5 ) result = /obj/item/food/cake/pavlova - category = CAT_CAKE + added_foodtypes = SUGAR|DAIRY + dish_category = DISH_CAKE + meal_category = MEAL_DESSERT /datum/crafting_recipe/food/pavlovakorta name = "Pavlova with korta cream" @@ -171,7 +194,9 @@ /obj/item/food/grown/berries = 5 ) result = /obj/item/food/cake/pavlova/nuts - category = CAT_CAKE + added_foodtypes = SUGAR|NUTS + dish_category = DISH_CAKE + meal_category = MEAL_DESSERT /datum/crafting_recipe/food/berry_vanilla_cake name = "blackberry and strawberry vanilla cake" @@ -180,7 +205,8 @@ /obj/item/food/grown/berries = 5 ) result = /obj/item/food/cake/berry_vanilla_cake - category = CAT_CAKE + dish_category = DISH_CAKE + meal_category = MEAL_DESSERT /datum/crafting_recipe/food/clowncake name = "clown cake" @@ -190,7 +216,8 @@ /obj/item/food/grown/banana = 5 ) result = /obj/item/food/cake/clown_cake - category = CAT_CAKE + dish_category = DISH_CAKE + meal_category = MEAL_DESSERT crafting_flags = CRAFT_CHECK_DENSITY | CRAFT_MUST_BE_LEARNED /datum/crafting_recipe/food/vanillacake @@ -200,7 +227,8 @@ /obj/item/food/grown/vanillapod = 2 ) result = /obj/item/food/cake/vanilla_cake - category = CAT_CAKE + dish_category = DISH_CAKE + meal_category = MEAL_DESSERT crafting_flags = CRAFT_CHECK_DENSITY | CRAFT_MUST_BE_LEARNED /datum/crafting_recipe/food/trumpetcake @@ -212,7 +240,9 @@ /datum/reagent/consumable/berryjuice = 5 ) result = /obj/item/food/cake/trumpet - category = CAT_CAKE + added_foodtypes = FRUIT + dish_category = DISH_CAKE + meal_category = MEAL_DESSERT /datum/crafting_recipe/food/cak @@ -227,10 +257,12 @@ /datum/reagent/teslium = 1 //To shock the whole thing into life ) result = /mob/living/basic/pet/cat/cak - category = CAT_CAKE //Cat! Haha, get it? CAT? GET IT? We get it - Love Felines + dish_category = DISH_CAKE + meal_category = MEAL_UNCATEGORIZED + /datum/crafting_recipe/food/fruitcake - name = "english fruitcake" + name = "English Fruitcake" reqs = list( /obj/item/food/cake/plain = 1, /obj/item/food/no_raisin = 1, @@ -238,7 +270,9 @@ /datum/reagent/consumable/ethanol/rum = 5 ) result = /obj/item/food/cake/fruit - category = CAT_CAKE + removed_foodtypes = JUNKFOOD + dish_category = DISH_CAKE + meal_category = MEAL_DESSERT /datum/crafting_recipe/food/plumcake name = "Plum cake" @@ -247,7 +281,8 @@ /obj/item/food/grown/plum = 2 ) result = /obj/item/food/cake/plum - category = CAT_CAKE + dish_category = DISH_CAKE + meal_category = MEAL_DESSERT /datum/crafting_recipe/food/weddingcake name = "Wedding cake" @@ -256,7 +291,8 @@ /datum/reagent/consumable/sugar = 120, ) result = /obj/item/food/cake/wedding - category = CAT_CAKE + dish_category = DISH_CAKE + meal_category = MEAL_DESSERT /datum/crafting_recipe/food/pineapple_cream_cake name = "Pineapple cream cake" @@ -266,4 +302,5 @@ /datum/reagent/consumable/cream = 20, ) result = /obj/item/food/cake/pineapple_cream_cake - category = CAT_CAKE + dish_category = DISH_CAKE + meal_category = MEAL_DESSERT diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_egg.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_egg.dm index ec8eda8d3cff..2bb13fed0e85 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_egg.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_egg.dm @@ -10,16 +10,17 @@ /obj/item/food/friedegg = 1, ) result = /obj/item/food/eggsausage - category = CAT_EGG + dish_category = DISH_MEAT /datum/crafting_recipe/food/omelette - name = "Omelette" + name = "Omelette du fromage" reqs = list( /obj/item/food/egg = 2, /obj/item/food/cheese/wedge = 2 ) result = /obj/item/food/omelette - category = CAT_EGG + added_foodtypes = BREAKFAST + removed_foodtypes = RAW /datum/crafting_recipe/food/chocolateegg name = "Chocolate egg" @@ -28,7 +29,9 @@ /obj/item/food/chocolatebar = 1 ) result = /obj/item/food/chocolateegg - category = CAT_EGG + removed_foodtypes = MEAT|BREAKFAST //This recipe is very wrong, please change it ffs + dish_category = DISH_CANDY + meal_category = MEAL_DESSERT /datum/crafting_recipe/food/eggsbenedict name = "Eggs benedict" @@ -38,7 +41,7 @@ /obj/item/food/breadslice/plain = 1, ) result = /obj/item/food/benedict - category = CAT_EGG + dish_category = DISH_MEAT /datum/crafting_recipe/food/eggbowl name = "Egg bowl" @@ -50,7 +53,8 @@ /obj/item/food/grown/corn = 1 ) result = /obj/item/food/salad/eggbowl - category = CAT_EGG + removed_foodtypes = BREAKFAST + dish_category = DISH_RICE /datum/crafting_recipe/food/wrap name = "Egg Wrap" @@ -59,7 +63,9 @@ /obj/item/food/grown/cabbage = 1, ) result = /obj/item/food/eggwrap - category = CAT_EGG + removed_foodtypes = BREAKFAST + cuisine_category = CUISINE_MEXICAN + dish_category = DISH_BURRITO /datum/crafting_recipe/food/chawanmushi name = "Chawanmushi" @@ -70,5 +76,5 @@ /obj/item/food/grown/mushroom/chanterelle = 1 ) result = /obj/item/food/chawanmushi - category = CAT_EGG - + removed_foodtypes = BREAKFAST + cuisine_category = CUISINE_JAPANESE diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_frozen.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_frozen.dm index 0e71758b0630..4bb8b612c278 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_frozen.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_frozen.dm @@ -11,7 +11,8 @@ /obj/item/food/icecream = 1 ) result = /obj/item/food/icecreamsandwich - category = CAT_ICE + dish_category = DISH_FROZEN + meal_category = MEAL_DESSERT /datum/crafting_recipe/food/strawberryicecreamsandwich name = "Strawberry ice cream sandwich" @@ -22,7 +23,8 @@ /obj/item/food/icecream = 1 ) result = /obj/item/food/strawberryicecreamsandwich - category = CAT_ICE + dish_category = DISH_FROZEN + meal_category = MEAL_DESSERT /datum/crafting_recipe/food/spacefreezy name ="Space freezy" @@ -32,7 +34,9 @@ /obj/item/food/icecream = 1 ) result = /obj/item/food/spacefreezy - category = CAT_ICE + added_foodtypes = FRUIT + dish_category = DISH_FROZEN + meal_category = MEAL_DESSERT /datum/crafting_recipe/food/sundae name ="Sundae" @@ -43,7 +47,8 @@ /obj/item/food/icecream = 1 ) result = /obj/item/food/sundae - category = CAT_ICE + dish_category = DISH_FROZEN + meal_category = MEAL_DESSERT /datum/crafting_recipe/food/honkdae name ="Honkdae" @@ -55,7 +60,8 @@ /obj/item/food/icecream = 1 ) result = /obj/item/food/honkdae - category = CAT_ICE + dish_category = DISH_FROZEN + meal_category = MEAL_DESSERT /datum/crafting_recipe/food/cornuto name = "Cornuto" @@ -67,7 +73,9 @@ /obj/item/food/icecream = 1 ) result = /obj/item/food/cornuto - category = CAT_ICE + removed_foodtypes = JUNKFOOD + dish_category = DISH_FROZEN + meal_category = MEAL_DESSERT //////////////////////////SNOW CONES/////////////////////// @@ -78,7 +86,8 @@ /datum/reagent/consumable/ice = 15 ) result = /obj/item/food/snowcones - category = CAT_ICE + dish_category = DISH_FROZEN + meal_category = MEAL_DESSERT /datum/crafting_recipe/food/pineapple_sc name = "Pineapple snowcone" @@ -88,7 +97,8 @@ /datum/reagent/consumable/pineapplejuice = 5 ) result = /obj/item/food/snowcones/pineapple - category = CAT_ICE + dish_category = DISH_FROZEN + meal_category = MEAL_DESSERT /datum/crafting_recipe/food/lime_sc name = "Lime snowcone" @@ -98,7 +108,8 @@ /datum/reagent/consumable/limejuice = 5 ) result = /obj/item/food/snowcones/lime - category = CAT_ICE + dish_category = DISH_FROZEN + meal_category = MEAL_DESSERT /datum/crafting_recipe/food/lemon_sc name = "Lemon snowcone" @@ -108,7 +119,8 @@ /datum/reagent/consumable/lemonjuice = 5 ) result = /obj/item/food/snowcones/lemon - category = CAT_ICE + dish_category = DISH_FROZEN + meal_category = MEAL_DESSERT /datum/crafting_recipe/food/apple_sc name = "Apple snowcone" @@ -118,7 +130,8 @@ /datum/reagent/consumable/applejuice = 5 ) result = /obj/item/food/snowcones/apple - category = CAT_ICE + dish_category = DISH_FROZEN + meal_category = MEAL_DESSERT /datum/crafting_recipe/food/grape_sc name = "Grape snowcone" @@ -128,7 +141,8 @@ /datum/reagent/consumable/grapejuice = 5 ) result = /obj/item/food/snowcones/grape - category = CAT_ICE + dish_category = DISH_FROZEN + meal_category = MEAL_DESSERT /datum/crafting_recipe/food/orange_sc name = "Orange snowcone" @@ -138,7 +152,8 @@ /datum/reagent/consumable/orangejuice = 5 ) result = /obj/item/food/snowcones/orange - category = CAT_ICE + dish_category = DISH_FROZEN + meal_category = MEAL_DESSERT /datum/crafting_recipe/food/blue_sc name = "Bluecherry snowcone" @@ -148,7 +163,8 @@ /datum/reagent/consumable/bluecherryjelly= 5 ) result = /obj/item/food/snowcones/blue - category = CAT_ICE + dish_category = DISH_FROZEN + meal_category = MEAL_DESSERT /datum/crafting_recipe/food/red_sc name = "Cherry snowcone" @@ -158,7 +174,8 @@ /datum/reagent/consumable/cherryjelly= 5 ) result = /obj/item/food/snowcones/red - category = CAT_ICE + dish_category = DISH_FROZEN + meal_category = MEAL_DESSERT /datum/crafting_recipe/food/berry_sc name = "Berry snowcone" @@ -168,7 +185,8 @@ /datum/reagent/consumable/berryjuice = 5 ) result = /obj/item/food/snowcones/berry - category = CAT_ICE + dish_category = DISH_FROZEN + meal_category = MEAL_DESSERT /datum/crafting_recipe/food/fruitsalad_sc name = "Fruit Salad snowcone" @@ -181,7 +199,8 @@ /datum/reagent/consumable/lemonjuice = 5 ) result = /obj/item/food/snowcones/fruitsalad - category = CAT_ICE + dish_category = DISH_FROZEN + meal_category = MEAL_DESSERT /datum/crafting_recipe/food/mime_sc name = "Mime snowcone" @@ -191,7 +210,8 @@ /datum/reagent/consumable/nothing = 5 ) result = /obj/item/food/snowcones/mime - category = CAT_ICE + dish_category = DISH_FROZEN + meal_category = MEAL_DESSERT /datum/crafting_recipe/food/clown_sc name = "Clown snowcone" @@ -201,7 +221,8 @@ /datum/reagent/consumable/laughter = 5 ) result = /obj/item/food/snowcones/clown - category = CAT_ICE + dish_category = DISH_FROZEN + meal_category = MEAL_DESSERT /datum/crafting_recipe/food/soda_sc name = "Space Cola snowcone" @@ -211,7 +232,8 @@ /datum/reagent/consumable/space_cola = 5 ) result = /obj/item/food/snowcones/soda - category = CAT_ICE + dish_category = DISH_FROZEN + meal_category = MEAL_DESSERT /datum/crafting_recipe/food/spacemountainwind_sc name = "Space Mountain Wind snowcone" @@ -221,7 +243,8 @@ /datum/reagent/consumable/spacemountainwind = 5 ) result = /obj/item/food/snowcones/spacemountainwind - category = CAT_ICE + dish_category = DISH_FROZEN + meal_category = MEAL_DESSERT /datum/crafting_recipe/food/pwrgame_sc name = "Pwrgame snowcone" @@ -231,7 +254,8 @@ /datum/reagent/consumable/pwr_game = 15 ) result = /obj/item/food/snowcones/pwrgame - category = CAT_ICE + dish_category = DISH_FROZEN + meal_category = MEAL_DESSERT /datum/crafting_recipe/food/honey_sc name = "Honey snowcone" @@ -241,7 +265,8 @@ /datum/reagent/consumable/honey = 5 ) result = /obj/item/food/snowcones/honey - category = CAT_ICE + dish_category = DISH_FROZEN + meal_category = MEAL_DESSERT /datum/crafting_recipe/food/rainbow_sc name = "Rainbow snowcone" @@ -251,7 +276,8 @@ /datum/reagent/colorful_reagent = 1 //Harder to make ) result = /obj/item/food/snowcones/rainbow - category = CAT_ICE + dish_category = DISH_FROZEN + meal_category = MEAL_DESSERT //////////////////////////POPSICLES/////////////////////// @@ -269,7 +295,8 @@ /datum/reagent/consumable/sugar = 2 ) result = /obj/item/food/popsicle/creamsicle_orange - category = CAT_ICE + dish_category = DISH_FROZEN + meal_category = MEAL_DESSERT /datum/crafting_recipe/food/berry_popsicle name = "Berry popsicle" @@ -282,7 +309,8 @@ /datum/reagent/consumable/sugar = 2 ) result = /obj/item/food/popsicle/creamsicle_berry - category = CAT_ICE + dish_category = DISH_FROZEN + meal_category = MEAL_DESSERT /datum/crafting_recipe/food/jumbo name = "Jumbo icecream" @@ -295,7 +323,10 @@ /datum/reagent/consumable/sugar = 2 ) result = /obj/item/food/popsicle/jumbo - category = CAT_ICE + added_foodtypes = DAIRY + removed_foodtypes = JUNKFOOD + dish_category = DISH_FROZEN + meal_category = MEAL_DESSERT /datum/crafting_recipe/food/licorice_creamsicle name = "Licorice popsicle" @@ -309,7 +340,8 @@ /datum/reagent/consumable/sugar = 2 ) result = /obj/item/food/popsicle/licorice_creamsicle - category = CAT_ICE + dish_category = DISH_FROZEN + meal_category = MEAL_DESSERT /datum/crafting_recipe/food/meatsicle name = "Meatsicle" @@ -320,4 +352,6 @@ /datum/reagent/consumable/sugar = 2 ) result = /obj/item/food/popsicle/meatsicle - category = CAT_ICE + added_foodtypes = SUGAR + dish_category = DISH_FROZEN + meal_category = MEAL_DESSERT diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_guide.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_guide.dm index 4d028de06fb2..8f45b50cf9e1 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_guide.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_guide.dm @@ -33,7 +33,7 @@ // Food reactions /datum/crafting_recipe/food/reaction - category = CAT_MISCFOOD + meal_category = MEAL_COMPONENT non_craftable = TRUE /datum/crafting_recipe/food/reaction/New() @@ -63,30 +63,33 @@ /datum/crafting_recipe/food/reaction/candle reaction = /datum/chemical_reaction/candlefication result = /obj/item/flashlight/flare/candle - category = CAT_CAKE + category = CAT_ENTERTAINMENT /datum/crafting_recipe/food/reaction/tofu reaction = /datum/chemical_reaction/food/tofu result = /obj/item/food/tofu + dish_category = DISH_MEAT /datum/crafting_recipe/food/reaction/candycorn reaction = /datum/chemical_reaction/food/candycorn result = /obj/item/food/candy_corn - category = CAT_PASTRY + dish_category = DISH_CANDY + meal_category = MEAL_DESSERT /datum/crafting_recipe/food/reaction/chocolatepudding reaction = /datum/chemical_reaction/food/chocolatepudding - category = CAT_PASTRY + meal_category = MEAL_DESSERT /datum/crafting_recipe/food/reaction/vanillapudding reaction = /datum/chemical_reaction/food/vanillapudding - category = CAT_PASTRY + meal_category = MEAL_DESSERT /datum/crafting_recipe/food/reaction/chocolatebar name = "Chocolate bar" reaction = /datum/chemical_reaction/food/chocolate_bar3 result = /obj/item/food/chocolatebar - category = CAT_PASTRY + dish_category = DISH_CANDY + meal_category = MEAL_DESSERT /datum/crafting_recipe/food/reaction/chocolatebar/chocomilk name = "Chocolate bar (choco milk)" @@ -98,13 +101,16 @@ /datum/crafting_recipe/food/reaction/soysauce reaction = /datum/chemical_reaction/food/soysauce + dish_category = DISH_CONDIMENT /datum/crafting_recipe/food/reaction/corn_syrup reaction = /datum/chemical_reaction/food/corn_syrup + dish_category = DISH_CONDIMENT /datum/crafting_recipe/food/reaction/caramel reaction = /datum/chemical_reaction/food/caramel - category = CAT_PASTRY + dish_category = DISH_CANDY + meal_category = MEAL_DESSERT /datum/crafting_recipe/food/reaction/cheesewheel reaction = /datum/chemical_reaction/food/cheesewheel @@ -113,23 +119,23 @@ /datum/crafting_recipe/food/reaction/synthmeat reaction = /datum/chemical_reaction/food/synthmeat result = /obj/item/food/meat/slab/synthmeat - category = CAT_MEAT + dish_category = DISH_MEAT /datum/crafting_recipe/food/reaction/imitationcarpmeat reaction = /datum/chemical_reaction/food/imitationcarpmeat result = /obj/item/food/fishmeat/carp/imitation - category = CAT_SEAFOOD + dish_category = DISH_MEAT /datum/crafting_recipe/food/reaction/dough reaction = /datum/chemical_reaction/food/dough result = /obj/item/food/dough - category = CAT_BREAD + dish_category = DISH_BREAD /datum/crafting_recipe/food/reaction/cakebatter name = "Cake batter" reaction = /datum/chemical_reaction/food/cakebatter result = /obj/item/food/cakebatter - category = CAT_BREAD + dish_category = DISH_CAKE /datum/crafting_recipe/food/reaction/cakebatter/vegan name = "Cake batter (vegan)" @@ -138,25 +144,28 @@ /datum/crafting_recipe/food/reaction/pancakebatter result = /datum/reagent/consumable/pancakebatter reaction = /datum/chemical_reaction/food/pancakebatter - category = CAT_BREAD + dish_category = DISH_BREAD /datum/crafting_recipe/food/reaction/uncooked_rice result = /obj/item/food/uncooked_rice reaction = /datum/chemical_reaction/food/uncooked_rice - category = CAT_SALAD + dish_category = DISH_RICE /datum/crafting_recipe/food/reaction/bbqsauce result = /datum/reagent/consumable/bbqsauce reaction = /datum/chemical_reaction/food/bbqsauce + dish_category = DISH_CONDIMENT /datum/crafting_recipe/food/reaction/gravy result = /datum/reagent/consumable/gravy reaction = /datum/chemical_reaction/food/gravy + dish_category = DISH_CONDIMENT /datum/crafting_recipe/food/reaction/mothic_pizza_dough result = /obj/item/food/mothic_pizza_dough reaction = /datum/chemical_reaction/food/mothic_pizza_dough - category = CAT_BREAD + cuisine_category = CUISINE_MOTHIC + dish_category = DISH_PIZZA /datum/crafting_recipe/food/reaction/curd_cheese result = /obj/item/food/cheese/curd_cheese @@ -169,79 +178,85 @@ /datum/crafting_recipe/food/reaction/cornmeal_batter result = /datum/reagent/consumable/cornmeal_batter reaction = /datum/chemical_reaction/food/cornmeal_batter - category = CAT_BREAD + dish_category = DISH_BREAD /datum/crafting_recipe/food/reaction/cornbread result = /obj/item/food/bread/corn reaction = /datum/chemical_reaction/food/cornbread - category = CAT_BREAD + dish_category = DISH_BREAD /datum/crafting_recipe/food/reaction/yoghurt result = /datum/reagent/consumable/yoghurt reaction = /datum/chemical_reaction/food/yoghurt + meal_category = MEAL_DESSERT /datum/crafting_recipe/food/reaction/olive_oil result = /datum/reagent/consumable/nutriment/fat/oil/olive reaction = /datum/chemical_reaction/food/olive_oil + dish_category = DISH_CONDIMENT /datum/crafting_recipe/food/reaction/olive_oil/upconvert reaction = /datum/chemical_reaction/food/olive_oil_upconvert /datum/crafting_recipe/food/reaction/moonshine reaction = /datum/chemical_reaction/drink/moonshine + category = CAT_DRINK /datum/crafting_recipe/food/reaction/martian_batter reaction = /datum/chemical_reaction/food/martian_batter - category = CAT_MARTIAN + cuisine_category = CUISINE_MARTIAN /datum/crafting_recipe/food/reaction/grounding_neutralise reaction = /datum/chemical_reaction/food/grounding_neutralise + dish_category = DISH_CONDIMENT // Tools: Rolling pin /datum/crafting_recipe/food/rollingpin tool_behaviors = list(TOOL_ROLLINGPIN) steps = list("Flatten with a rolling pin") - category = CAT_MISCFOOD non_craftable = TRUE + meal_category = MEAL_COMPONENT /datum/crafting_recipe/food/rollingpin/flatdough reqs = list(/obj/item/food/dough = 1) result = /obj/item/food/flatdough - category = CAT_BREAD + dish_category = DISH_BREAD /datum/crafting_recipe/food/rollingpin/flatrootdough reqs = list(/obj/item/food/rootdough = 1) result = /obj/item/food/flatrootdough - category = CAT_BREAD + dish_category = DISH_BREAD + cuisine_category = CUISINE_LIZARD /datum/crafting_recipe/food/rollingpin/piedough reqs = list(/obj/item/food/cakebatter = 1) result = /obj/item/food/piedough - category = CAT_BREAD + dish_category = DISH_PIE /datum/crafting_recipe/food/rollingpin/raw_patty reqs = list(/obj/item/food/raw_meatball = 1) result = /obj/item/food/raw_patty - category = CAT_MEAT + dish_category = DISH_MEAT /datum/crafting_recipe/food/rollingpin/pizza_sheet reqs = list(/obj/item/food/pizzaslice/margherita = 1) result = /obj/item/stack/sheet/pizza - category = CAT_PIZZA + cuisine_category = CUISINE_ITALIAN + dish_category = DISH_PIZZA // Tools: Knife /datum/crafting_recipe/food/knife tool_behaviors = list(TOOL_KNIFE) steps = list("Slice with a knife") - category = CAT_MISCFOOD non_craftable = TRUE + meal_category = MEAL_SNACK /datum/crafting_recipe/food/knife/breadslice reqs = list(/obj/item/food/bread/plain = 1) result = /obj/item/food/breadslice/plain - category = CAT_BREAD + dish_category = DISH_BREAD /datum/crafting_recipe/food/knife/breadslice/root reqs = list(/obj/item/food/bread/root = 1) @@ -250,160 +265,199 @@ /datum/crafting_recipe/food/knife/cakeslice reqs = list(/obj/item/food/cake/plain = 1) result = /obj/item/food/cakeslice/plain - category = CAT_CAKE + dish_category = DISH_CAKE + meal_category = MEAL_DESSERT /datum/crafting_recipe/food/knife/pizzaslice reqs = list(/obj/item/food/pizza/margherita = 1) result = /obj/item/food/pizzaslice/margherita - category = CAT_PIZZA + cuisine_category = CUISINE_ITALIAN + dish_category = DISH_PIZZA + meal_category = MEAL_MAIN_COURSE /datum/crafting_recipe/food/knife/doughslice reqs = list(/obj/item/food/flatdough = 1) result = /obj/item/food/doughslice - category = CAT_BREAD + dish_category = DISH_BREAD + meal_category = MEAL_COMPONENT /datum/crafting_recipe/food/knife/rootdoughslice reqs = list(/obj/item/food/flatrootdough = 1) result = /obj/item/food/rootdoughslice - category = CAT_BREAD + dish_category = DISH_BREAD + cuisine_category = CUISINE_LIZARD + meal_category = MEAL_COMPONENT /datum/crafting_recipe/food/knife/rawpastrybase reqs = list(/obj/item/food/piedough = 1) result = /obj/item/food/rawpastrybase - category = CAT_BREAD + dish_category = DISH_BREAD + meal_category = MEAL_COMPONENT /datum/crafting_recipe/food/knife/butterslice reqs = list(/obj/item/food/butter = 1) result = /obj/item/food/butterslice + meal_category = MEAL_COMPONENT /datum/crafting_recipe/food/knife/doughball reqs = list(/obj/item/food/doughslice = 1) result = /obj/item/food/bait/doughball - category = CAT_BREAD + dish_category = DISH_BREAD + meal_category = MEAL_COMPONENT /datum/crafting_recipe/food/knife/nizaya reqs = list(/obj/item/food/rootdoughslice = 1) result = /obj/item/food/spaghetti/nizaya - category = CAT_SPAGHETTI + dish_category = DISH_NOODLES + cuisine_category = CUISINE_LIZARD + meal_category = MEAL_COMPONENT /datum/crafting_recipe/food/knife/rawcutlet reqs = list(/obj/item/food/meat/slab = 1) result = /obj/item/food/meat/rawcutlet - category = CAT_MEAT + dish_category = DISH_MEAT + meal_category = MEAL_COMPONENT /datum/crafting_recipe/food/knife/headcheese_slice reqs = list(/obj/item/food/headcheese = 1) result = /obj/item/food/headcheese_slice - category = CAT_MEAT + dish_category = DISH_MEAT + meal_category = MEAL_SNACK /datum/crafting_recipe/food/knife/potatowedge reqs = list(/obj/item/food/grown/potato = 1) result = /obj/item/food/grown/potato/wedges + dish_category = DISH_SALAD + meal_category = MEAL_SNACK /datum/crafting_recipe/food/knife/pineappleslice reqs = list(/obj/item/food/grown/pineapple = 1) result = /obj/item/food/pineappleslice + dish_category = DISH_SALAD + meal_category = MEAL_SNACK /datum/crafting_recipe/food/knife/onionslice reqs = list(/obj/item/food/grown/onion = 1) result = /obj/item/food/onion_slice + meal_category = MEAL_COMPONENT /datum/crafting_recipe/food/knife/cheesewedge reqs = list(/obj/item/food/cheese/wheel = 1) result = /obj/item/food/cheese/wedge + meal_category = MEAL_COMPONENT /datum/crafting_recipe/food/knife/firm_cheese_slice reqs = list(/obj/item/food/cheese/firm_cheese = 1) result = /obj/item/food/cheese/firm_cheese_slice + meal_category = MEAL_COMPONENT /datum/crafting_recipe/food/knife/salami reqs = list(/obj/item/food/sausage = 1) result = /obj/item/food/salami - category = CAT_MEAT + dish_category = DISH_MEAT + meal_category = MEAL_APPETIZER /datum/crafting_recipe/food/knife/american_sausage reqs = list(/obj/item/food/sausage = 1) result = /obj/item/food/sausage/american - category = CAT_MEAT + dish_category = DISH_MEAT + meal_category = MEAL_APPETIZER /datum/crafting_recipe/food/knife/tempehslice reqs = list(/obj/item/food/tempeh = 1) result = /obj/item/food/tempehslice + dish_category = DISH_MEAT + meal_category = MEAL_SNACK /datum/crafting_recipe/food/knife/brownie reqs = list(/obj/item/food/brownie_sheet = 1) result = /obj/item/food/brownie - category = CAT_PASTRY + meal_category = MEAL_DESSERT /datum/crafting_recipe/food/knife/spicyfiletsushislice reqs = list(/obj/item/food/spicyfiletsushiroll = 1) result = /obj/item/food/spicyfiletsushislice - category = CAT_SEAFOOD + dish_category = DISH_SUSHI + meal_category = MEAL_MAIN_COURSE /datum/crafting_recipe/food/knife/vegetariansushislice reqs = list(/obj/item/food/vegetariansushiroll = 1) result = /obj/item/food/vegetariansushislice - category = CAT_SEAFOOD + dish_category = DISH_SUSHI + meal_category = MEAL_MAIN_COURSE /datum/crafting_recipe/food/knife/beef_wellington_slice reqs = list(/obj/item/food/beef_wellington = 1) result = /obj/item/food/beef_wellington_slice - category = CAT_MEAT + dish_category = DISH_MEAT + meal_category = MEAL_MAIN_COURSE /datum/crafting_recipe/food/knife/green_lasagne_slice reqs = list(/obj/item/food/green_lasagne = 1) result = /obj/item/food/green_lasagne_slice - category = CAT_SPAGHETTI + dish_category = DISH_NOODLES + meal_category = MEAL_MAIN_COURSE /datum/crafting_recipe/food/knife/lil_baked_rice reqs = list(/obj/item/food/big_baked_rice = 1) result = /obj/item/food/lil_baked_rice - category = CAT_MOTH + cuisine_category = CUISINE_MOTHIC + dish_category = DISH_RICE + meal_category = MEAL_SNACK /datum/crafting_recipe/food/knife/watermelonslice reqs = list(/obj/item/food/grown/watermelon = 1) result = /obj/item/food/watermelonslice - category = CAT_SALAD + dish_category = DISH_SALAD + meal_category = MEAL_SNACK /datum/crafting_recipe/food/knife/appleslice reqs = list(/obj/item/food/grown/apple = 1) result = /obj/item/food/appleslice - category = CAT_SALAD + dish_category = DISH_SALAD + meal_category = MEAL_SNACK /datum/crafting_recipe/food/knife/kamaboko_slice reqs = list(/obj/item/food/kamaboko = 1) result = /obj/item/food/kamaboko_slice - category = CAT_MARTIAN + cuisine_category = CUISINE_MARTIAN + meal_category = MEAL_SNACK /datum/crafting_recipe/food/knife/raw_noodles reqs = list(/obj/item/food/rice_dough = 1) result = /obj/item/food/spaghetti/rawnoodles - category = CAT_MARTIAN + cuisine_category = CUISINE_MARTIAN + dish_category = DISH_NOODLES + meal_category = MEAL_COMPONENT /datum/crafting_recipe/food/knife/chapslice reqs = list(/obj/item/food/canned/chap = 1) result = /obj/item/food/chapslice - category = CAT_MEAT + dish_category = DISH_MEAT + meal_category = MEAL_COMPONENT // Machinery: Grill /datum/crafting_recipe/food/grill machinery = list(/obj/machinery/griddle) steps = list("Grill until ready") - category = CAT_MEAT + dish_category = DISH_MEAT non_craftable = TRUE /datum/crafting_recipe/food/grill/meatball reqs = list(/obj/item/food/raw_meatball = 1) result = /obj/item/food/meatball + meal_category = MEAL_APPETIZER /datum/crafting_recipe/food/grill/patty reqs = list(/obj/item/food/raw_patty = 1) result = /obj/item/food/patty + meal_category = MEAL_APPETIZER /datum/crafting_recipe/food/grill/cutlet reqs = list(/obj/item/food/meat/rawcutlet = 1) result = /obj/item/food/meat/cutlet + meal_category = MEAL_APPETIZER /datum/crafting_recipe/food/grill/steak reqs = list(/obj/item/food/meat/slab = 1) @@ -420,65 +474,74 @@ /datum/crafting_recipe/food/grill/bacon reqs = list(/obj/item/food/meat/rawbacon = 1) result = /obj/item/food/meat/bacon + meal_category = MEAL_APPETIZER /datum/crafting_recipe/food/grill/sausage reqs = list(/obj/item/food/raw_sausage = 1) result = /obj/item/food/sausage + meal_category = MEAL_APPETIZER /datum/crafting_recipe/food/grill/moonfish reqs = list(/obj/item/food/fishmeat/moonfish = 1) result = /obj/item/food/grilled_moonfish - category = CAT_SEAFOOD + cuisine_category = CUISINE_LIZARD + dish_category = DISH_MEAT /datum/crafting_recipe/food/grill/rootflatbread reqs = list(/obj/item/food/flatrootdough = 1) result = /obj/item/food/root_flatbread - category = CAT_BREAD + dish_category = DISH_BREAD + cuisine_category = CUISINE_LIZARD /datum/crafting_recipe/food/grill/griddle_toast reqs = list(/obj/item/food/breadslice/plain = 1) result = /obj/item/food/griddle_toast - category = CAT_BREAD + dish_category = DISH_BREAD + meal_category = MEAL_BREAKFAST /datum/crafting_recipe/food/grill/frenchtoast reqs = list(/obj/item/food/raw_frenchtoast = 1) result = /obj/item/food/frenchtoast - category = CAT_BREAD + dish_category = DISH_BREAD + meal_category = MEAL_BREAKFAST /datum/crafting_recipe/food/grill/khinkali reqs = list(/obj/item/food/rawkhinkali = 1) result = /obj/item/food/khinkali - category = CAT_BREAD + dish_category = DISH_BREAD /datum/crafting_recipe/food/grill/grilled_cheese_sandwich reqs = list(/obj/item/food/sandwich/cheese = 1) - result = /obj/item/food/sandwich/cheese/grilled - category = CAT_SANDWICH + result = /obj/item/food/sandwich/grilled_cheese + dish_category = DISH_SANDWICH /datum/crafting_recipe/food/grill/grilled_cheese reqs = list(/obj/item/food/cheese/firm_cheese_slice = 1) result = /obj/item/food/grilled_cheese - category = CAT_MISCFOOD + dish_category = DISH_UNCATEGORIZED // this is just cheese? /datum/crafting_recipe/food/grill/ballpark_pretzel reqs = list(/obj/item/food/raw_ballpark_pretzel = 1) result = /obj/item/food/ballpark_pretzel - category = CAT_MARTIAN + dish_category = DISH_PASTRY + cuisine_category = CUISINE_MARTIAN + meal_category = MEAL_APPETIZER /datum/crafting_recipe/food/grill/ballpark_tsukune reqs = list(/obj/item/food/kebab/raw_ballpark_tsukune = 1) result = /obj/item/food/kebab/ballpark_tsukune - category = CAT_MARTIAN + cuisine_category = CUISINE_MARTIAN + meal_category = MEAL_APPETIZER /datum/crafting_recipe/food/grill/chapslice reqs = list(/obj/item/food/chapslice = 1) result = /obj/item/food/grilled_chapslice - category = CAT_MEAT /datum/crafting_recipe/food/grill/friedegg reqs = list(/obj/item/food/egg = 1) result = /obj/item/food/friedegg - category = CAT_EGG + meal_category = MEAL_APPETIZER + dish_category = DISH_UNCATEGORIZED steps = list( "Break the egg onto a griddle", "Fry until ready" @@ -487,7 +550,7 @@ /datum/crafting_recipe/food/grill/pancake reqs = list(/datum/reagent/consumable/pancakebatter = 5) result = /obj/item/food/pancakes - category = CAT_BREAD + dish_category = DISH_BREAD steps = list( "Pour batter onto a griddle", "Bake until ready" @@ -520,26 +583,31 @@ /datum/crafting_recipe/food/grill/hard_taco_shell reqs = list(/obj/item/food/tortilla = 1) result = /obj/item/food/hard_taco_shell - category = CAT_MEXICAN + cuisine_category = CUISINE_MEXICAN + dish_category = DISH_TACO + meal_category = MEAL_COMPONENT // Machinery: Grinder /datum/crafting_recipe/food/grinder machinery = list(/obj/machinery/reagentgrinder) steps = list("Put into grinder and grind") - category = CAT_MISCFOOD non_craftable = TRUE + meal_category = MEAL_COMPONENT /datum/crafting_recipe/food/grinder/capsaicin reqs = list(/obj/item/food/grown/chili = 1) result = /datum/reagent/consumable/capsaicin + dish_category = DISH_CONDIMENT /datum/crafting_recipe/food/grinder/frostoil reqs = list(/obj/item/food/grown/icepepper = 1) result = /datum/reagent/consumable/frostoil + dish_category = DISH_CONDIMENT /datum/crafting_recipe/food/grinder/ketchup reqs = list(/obj/item/food/grown/tomato = 1) result = /datum/reagent/consumable/ketchup + dish_category = DISH_CONDIMENT /datum/crafting_recipe/food/grinder/kortaflour reqs = list(/obj/item/food/grown/korta_nut = 1) @@ -571,15 +639,18 @@ reqs = list(/datum/reagent/consumable/milk = MILK_TO_BUTTER_COEFF) result = /obj/item/food/butter steps = list("Put into grinder and mix") + dish_category = DISH_CONDIMENT /datum/crafting_recipe/food/grinder/mayonnaise reqs = list(/datum/reagent/consumable/eggyolk = 1) result = /datum/reagent/consumable/mayonnaise steps = list("Put into grinder and mix") + dish_category = DISH_CONDIMENT /datum/crafting_recipe/food/grinder/sugar reqs = list(/obj/item/food/grown/sugarcane = 1) result = /datum/reagent/consumable/sugar + dish_category = DISH_CONDIMENT /datum/crafting_recipe/food/grinder/sugar/beet reqs = list(/obj/item/food/grown/whitebeet = 1) @@ -593,55 +664,64 @@ /datum/crafting_recipe/food/grinder/sprinkles reqs = list(/obj/item/food/donut/plain = 1) result = /datum/reagent/consumable/sprinkles + dish_category = DISH_CONDIMENT /datum/crafting_recipe/food/grinder/cherryjelly reqs = list(/obj/item/food/grown/cherries = 1) result = /datum/reagent/consumable/cherryjelly + dish_category = DISH_CONDIMENT /datum/crafting_recipe/food/grinder/bluecherryjelly reqs = list(/obj/item/food/grown/bluecherries = 1) result = /datum/reagent/consumable/bluecherryjelly + dish_category = DISH_CONDIMENT /datum/crafting_recipe/food/grinder/olivepaste reqs = list(/obj/item/food/grown/olive = 1) result = /datum/reagent/consumable/olivepaste + dish_category = DISH_CONDIMENT /datum/crafting_recipe/food/grinder/peanutbutter reqs = list(/obj/item/food/grown/peanut = 1) result = /datum/reagent/consumable/peanut_butter + dish_category = DISH_CONDIMENT // Machinery: Processor /datum/crafting_recipe/food/processor machinery = list(/obj/machinery/processor) steps = list("Put into processor and activate") - category = CAT_MISCFOOD non_craftable = TRUE + meal_category = MEAL_COMPONENT /datum/crafting_recipe/food/processor/rawbacon reqs = list(/obj/item/food/meat/rawcutlet = 1) result = /obj/item/food/meat/rawbacon - category = CAT_MEAT + dish_category = DISH_MEAT /datum/crafting_recipe/food/processor/rawmeatball reqs = list(/obj/item/food/meat/slab = 1) result = /obj/item/food/raw_meatball - category = CAT_MEAT + dish_category = DISH_MEAT /datum/crafting_recipe/food/processor/tatortot reqs = list(/obj/item/food/grown/potato = 1) result = /obj/item/food/tatortot + meal_category = MEAL_APPETIZER /datum/crafting_recipe/food/processor/fries reqs = list(/obj/item/food/grown/potato/wedges = 1) result = /obj/item/food/fries + meal_category = MEAL_APPETIZER /datum/crafting_recipe/food/processor/carrotfries reqs = list(/obj/item/food/grown/carrot = 1) result = /obj/item/food/carrotfries + meal_category = MEAL_APPETIZER /datum/crafting_recipe/food/processor/roastparsnip reqs = list(/obj/item/food/grown/parsnip = 1) result = /obj/item/food/roastparsnip + meal_category = MEAL_SNACK /datum/crafting_recipe/food/processor/soydope reqs = list(/obj/item/food/grown/soybeans = 1) @@ -650,20 +730,23 @@ /datum/crafting_recipe/food/processor/spaghetti reqs = list(/obj/item/food/doughslice = 1) result = /obj/item/food/spaghetti/raw - category = CAT_SPAGHETTI + dish_category = DISH_NOODLES /datum/crafting_recipe/food/processor/tortilla reqs = list(/obj/item/food/grown/corn = 1) result = /obj/item/food/tortilla - category = CAT_MEXICAN + dish_category = DISH_BREAD + cuisine_category = CUISINE_MEXICAN /datum/crafting_recipe/food/processor/tempeh reqs = list(/obj/item/food/tempehstarter = 1) result = /obj/item/food/tempeh + dish_category = DISH_MEAT /datum/crafting_recipe/food/processor/popsicle_stick reqs = list(/obj/item/grown/log = 1) result = /obj/item/popsicle_stick + category = CAT_MISC /datum/crafting_recipe/food/processor/spidereggs reqs = list(/obj/item/food/spidereggs = 1) @@ -673,42 +756,42 @@ /datum/crafting_recipe/food/microwave machinery = list(/obj/machinery/microwave) steps = list("Microwave until ready") - category = CAT_MISCFOOD non_craftable = TRUE + meal_category = MEAL_COMPONENT /datum/crafting_recipe/food/microwave/boiledegg reqs = list(/obj/item/food/egg = 1) result = /obj/item/food/boiledegg - category = CAT_EGG /datum/crafting_recipe/food/microwave/boiledrice reqs = list(/obj/item/food/uncooked_rice = 1) result = /obj/item/food/boiledrice - category = CAT_SALAD + dish_category = DISH_RICE /datum/crafting_recipe/food/microwave/boiledspaghetti reqs = list(/obj/item/food/spaghetti/raw = 1) result = /obj/item/food/spaghetti/boiledspaghetti - category = CAT_SPAGHETTI + dish_category = DISH_NOODLES /datum/crafting_recipe/food/microwave/onionrings reqs = list(/obj/item/food/onion_slice = 1) result = /obj/item/food/onionrings - category = CAT_SALAD + meal_category = MEAL_APPETIZER /datum/crafting_recipe/food/microwave/popcorn reqs = list(/obj/item/food/grown/corn = 1) result = /obj/item/food/popcorn + meal_category = MEAL_SNACK /datum/crafting_recipe/food/microwave/cakehat reqs = list(/obj/item/food/cake/birthday = 1) result = /obj/item/clothing/head/utility/hardhat/cakehat - category = CAT_CAKE + dish_category = DISH_CAKE + meal_category = MEAL_UNCATEGORIZED /datum/crafting_recipe/food/microwave/cakehat/energycake reqs = list(/obj/item/food/cake/birthday/energy = 1) result = /obj/item/clothing/head/utility/hardhat/cakehat/energycake - category = CAT_CAKE /datum/crafting_recipe/food/microwave/cheese_curds reqs = list(/obj/item/food/cheese/curd_cheese = 1) @@ -718,7 +801,7 @@ /datum/crafting_recipe/food/oven machinery = list(/obj/machinery/oven) steps = list("Bake in the oven until ready") - category = CAT_BREAD + dish_category = DISH_BREAD non_craftable = TRUE /datum/crafting_recipe/food/oven/bread @@ -732,105 +815,119 @@ /datum/crafting_recipe/food/oven/bun reqs = list(/obj/item/food/doughslice = 1) result = /obj/item/food/bun + meal_category = MEAL_SNACK /datum/crafting_recipe/food/oven/rootroll reqs = list(/obj/item/food/rootdoughslice = 1) result = /obj/item/food/rootroll + cuisine_category = CUISINE_LIZARD + meal_category = MEAL_SNACK /datum/crafting_recipe/food/oven/pastrybase reqs = list(/obj/item/food/rawpastrybase = 1) result = /obj/item/food/pastrybase - category = CAT_PASTRY + dish_category = DISH_PASTRY + meal_category = MEAL_COMPONENT /datum/crafting_recipe/food/oven/pizzabread reqs = list(/obj/item/food/flatdough = 1) result = /obj/item/food/pizzabread - category = CAT_PIZZA + cuisine_category = CUISINE_ITALIAN + dish_category = DISH_PIZZA /datum/crafting_recipe/food/oven/pizza reqs = list(/obj/item/food/pizza/margherita/raw = 1) result = /obj/item/food/pizza/margherita - category = CAT_PIZZA + cuisine_category = CUISINE_ITALIAN + dish_category = DISH_PIZZA /datum/crafting_recipe/food/oven/rootflatbread reqs = list(/obj/item/food/flatrootdough = 1) result = /obj/item/food/root_flatbread + cuisine_category = CUISINE_LIZARD /datum/crafting_recipe/food/oven/pie reqs = list(/obj/item/food/piedough = 1) result = /obj/item/food/pie/plain - category = CAT_PIE + dish_category = DISH_PIE /datum/crafting_recipe/food/oven/cake reqs = list(/obj/item/food/cakebatter = 1) result = /obj/item/food/cake/plain - category = CAT_CAKE + dish_category = DISH_CAKE + meal_category = MEAL_DESSERT /datum/crafting_recipe/food/oven/breadstick reqs = list(/obj/item/food/raw_breadstick = 1) result = /obj/item/food/breadstick + meal_category = MEAL_APPETIZER /datum/crafting_recipe/food/oven/baked_cheese reqs = list(/obj/item/food/cheese/wheel = 1) result = /obj/item/food/baked_cheese - category = CAT_MISCFOOD + dish_category = DISH_UNCATEGORIZED /datum/crafting_recipe/food/oven/browniesheet reqs = list(/obj/item/food/raw_brownie_batter = 1) result = /obj/item/food/brownie_sheet - category = CAT_PASTRY + meal_category = MEAL_DESSERT /datum/crafting_recipe/food/oven/green_lasagne reqs = list(/obj/item/food/raw_green_lasagne = 1) result = /obj/item/food/green_lasagne - category = CAT_SPAGHETTI + dish_category = DISH_NOODLES /datum/crafting_recipe/food/oven/big_baked_rice reqs = list(/obj/item/food/raw_baked_rice = 1) result = /obj/item/food/big_baked_rice - category = CAT_MOTH + cuisine_category = CUISINE_MOTHIC + dish_category = DISH_RICE /datum/crafting_recipe/food/oven/ratatouille reqs = list(/obj/item/food/raw_ratatouille = 1) result = /obj/item/food/ratatouille - category = CAT_SALAD + dish_category = DISH_SALAD + // cuisine_category = CUISINE_FRENCH /datum/crafting_recipe/food/oven/stuffed_peppers + name = "Voltölpapriken (Stuffed peppers)" reqs = list(/obj/item/food/raw_stuffed_peppers = 1) result = /obj/item/food/stuffed_peppers - category = CAT_MOTH + cuisine_category = CUISINE_MOTHIC /datum/crafting_recipe/food/oven/roasted_bell_pepper reqs = list(/obj/item/food/grown/bell_pepper = 1) result = /obj/item/food/roasted_bell_pepper - category = CAT_SALAD + dish_category = DISH_SALAD /datum/crafting_recipe/food/oven/oven_baked_corn reqs = list(/obj/item/food/grown/corn = 1) result = /obj/item/food/oven_baked_corn - category = CAT_SALAD + dish_category = DISH_SALAD /datum/crafting_recipe/food/oven/yakiimo reqs = list(/obj/item/food/grown/potato/sweet = 1) result = /obj/item/food/yakiimo - category = CAT_MISCFOOD + dish_category = DISH_UNCATEGORIZED + cuisine_category = CUISINE_JAPANESE /datum/crafting_recipe/food/oven/reispan reqs = list(/obj/item/food/rice_dough = 1) result = /obj/item/food/bread/reispan - category = CAT_MARTIAN + cuisine_category = CUISINE_MARTIAN /datum/crafting_recipe/food/oven/ballpark_pretzel reqs = list(/obj/item/food/raw_ballpark_pretzel = 1) result = /obj/item/food/ballpark_pretzel - category = CAT_MARTIAN + cuisine_category = CUISINE_MARTIAN + meal_category = MEAL_APPETIZER // Machinery: Drying rack /datum/crafting_recipe/food/drying machinery = list(/obj/machinery/smartfridge/drying) steps = list("Put into the rack and dry") - category = CAT_MISCFOOD non_craftable = TRUE + meal_category = MEAL_COMPONENT /datum/crafting_recipe/food/drying/firm_cheese reqs = list(/obj/item/food/cheese/cheese_curds = 1) @@ -839,27 +936,33 @@ /datum/crafting_recipe/food/drying/headcheese reqs = list(/obj/item/food/raw_headcheese = 1) result = /obj/item/food/headcheese - category = CAT_MEAT + dish_category = DISH_MEAT + meal_category = MEAL_APPETIZER /datum/crafting_recipe/food/drying/tiziran_sausage reqs = list(/obj/item/food/raw_tiziran_sausage = 1) result = /obj/item/food/tiziran_sausage - category = CAT_MEAT + dish_category = DISH_MEAT + meal_category = MEAL_APPETIZER /datum/crafting_recipe/food/drying/sosjerky reqs = list(/obj/item/food/meat/slab = 1) result = /obj/item/food/sosjerky/healthy - category = CAT_MEAT + dish_category = DISH_MEAT + meal_category = MEAL_SNACK /datum/crafting_recipe/food/drying/no_raisin/healthy reqs = list(/obj/item/food/grown/grapes = 1) result = /obj/item/food/no_raisin/healthy + meal_category = MEAL_SNACK /datum/crafting_recipe/food/drying/semki reqs = list(/obj/item/food/grown/sunflower = 1) result = /obj/item/food/semki/healthy + meal_category = MEAL_SNACK /datum/crafting_recipe/food/drying/kamaboko reqs = list(/obj/item/food/surimi = 1) result = /obj/item/food/kamaboko - category = CAT_MARTIAN + cuisine_category = CUISINE_MARTIAN + meal_category = MEAL_SNACK diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_lizard.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_lizard.dm index a3e827ffd5ef..42fe79e4fed7 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_lizard.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_lizard.dm @@ -7,7 +7,8 @@ /datum/reagent/consumable/salt = 2 ) result = /obj/item/food/raw_tiziran_sausage - category = CAT_LIZARD + cuisine_category = CUISINE_LIZARD + dish_category = DISH_MEAT /datum/crafting_recipe/food/headcheese name = "Raw headcheese" @@ -17,7 +18,9 @@ /datum/reagent/consumable/blackpepper = 5 ) result = /obj/item/food/raw_headcheese - category = CAT_LIZARD + added_foodtypes = GORE + cuisine_category = CUISINE_LIZARD + dish_category = DISH_MEAT /datum/crafting_recipe/food/shredded_lungs name = "Crispy shredded lung stirfry" @@ -33,7 +36,9 @@ ) result = /obj/item/food/shredded_lungs - category = CAT_LIZARD + added_foodtypes = MEAT|GORE + cuisine_category = CUISINE_LIZARD + dish_category = DISH_SALAD /datum/crafting_recipe/food/tsatsikh name = "Tsatsikh" @@ -46,7 +51,8 @@ /datum/reagent/consumable/blackpepper = 2 ) result = /obj/item/food/tsatsikh - category = CAT_LIZARD + cuisine_category = CUISINE_LIZARD + dish_category = DISH_MEAT /datum/crafting_recipe/food/liver_pate name = "Liver pate" @@ -56,7 +62,9 @@ /obj/item/food/grown/onion = 1 ) result = /obj/item/food/liver_pate - category = CAT_LIZARD + removed_foodtypes = RAW + cuisine_category = CUISINE_LIZARD + dish_category = DISH_MEAT /datum/crafting_recipe/food/moonfish_caviar name = "Moonfish caviar paste" @@ -65,7 +73,8 @@ /datum/reagent/consumable/salt = 2 ) result = /obj/item/food/moonfish_caviar - category = CAT_LIZARD + cuisine_category = CUISINE_LIZARD + meal_category = MEAL_APPETIZER /datum/crafting_recipe/food/lizard_escargot name = "Desert snail cocleas" @@ -77,7 +86,9 @@ /datum/reagent/consumable/nutriment/fat/oil/olive = 3 ) result = /obj/item/food/lizard_escargot - category = CAT_LIZARD + removed_foodtypes = GORE + cuisine_category = CUISINE_LIZARD + meal_category = MEAL_APPETIZER /datum/crafting_recipe/food/fried_blood_sausage name = "Fried blood sausage" @@ -87,7 +98,10 @@ /datum/reagent/water = 5 ) result = /obj/item/food/fried_blood_sausage - category = CAT_LIZARD + added_foodtypes = FRIED|NUTS + removed_foodtypes = RAW + cuisine_category = CUISINE_LIZARD + dish_category = DISH_MEAT /datum/crafting_recipe/food/lizard_fries name = "Loaded poms-franzisks" @@ -97,7 +111,8 @@ /datum/reagent/consumable/bbqsauce = 5 ) result = /obj/item/food/lizard_fries - category = CAT_LIZARD + cuisine_category = CUISINE_LIZARD + meal_category = MEAL_APPETIZER /datum/crafting_recipe/food/brain_pate name = "Eyeball-and-brain pate" @@ -108,7 +123,9 @@ /datum/reagent/consumable/salt = 3 ) result = /obj/item/food/brain_pate - category = CAT_LIZARD + added_foodtypes = MEAT|GORE + cuisine_category = CUISINE_LIZARD + dish_category = DISH_MEAT /datum/crafting_recipe/food/crispy_headcheese name = "Crispy breaded headcheese" @@ -117,7 +134,8 @@ /obj/item/food/breadslice/root = 1 ) result = /obj/item/food/crispy_headcheese - category = CAT_LIZARD + cuisine_category = CUISINE_LIZARD + meal_category = MEAL_APPETIZER /datum/crafting_recipe/food/picoss_skewers name = "Picoss skewers" @@ -129,7 +147,8 @@ /datum/reagent/consumable/vinegar = 5 ) result = /obj/item/food/kebab/picoss_skewers - category = CAT_LIZARD + cuisine_category = CUISINE_LIZARD + dish_category = DISH_MEAT /datum/crafting_recipe/food/nectar_larvae name = "Nectar larvae" @@ -140,7 +159,8 @@ /datum/reagent/consumable/korta_nectar = 5 ) result = /obj/item/food/nectar_larvae - category = CAT_LIZARD + cuisine_category = CUISINE_LIZARD + meal_category = MEAL_APPETIZER /datum/crafting_recipe/food/mushroomy_stirfry name = "Mushroomy Stirfry" @@ -151,7 +171,8 @@ /datum/reagent/consumable/nutriment/fat/oil/olive = 5 ) result = /obj/item/food/mushroomy_stirfry - category = CAT_LIZARD + cuisine_category = CUISINE_LIZARD + dish_category = DISH_SALAD /datum/crafting_recipe/food/moonfish_demiglace name = "Moonfish demiglace" @@ -163,7 +184,8 @@ /datum/reagent/consumable/ethanol/wine = 5 ) result = /obj/item/food/moonfish_demiglace - category = CAT_LIZARD + cuisine_category = CUISINE_LIZARD + dish_category = DISH_MEAT /datum/crafting_recipe/food/lizard_surf_n_turf name = "Zagosk surf n turf smorgasbord" @@ -173,31 +195,49 @@ /obj/item/food/meat/steak = 1, /obj/item/food/bbqribs = 1 ) + removed_foodtypes = SUGAR result = /obj/item/food/lizard_surf_n_turf - category = CAT_LIZARD + cuisine_category = CUISINE_LIZARD + dish_category = DISH_MEAT /datum/crafting_recipe/food/rootdough - name = "Rootdough" + name = "Rootdough (Without Eggs)" reqs = list( /obj/item/food/grown/potato = 2, - /obj/item/food/egg = 1, + /datum/reagent/consumable/soymilk = 15, /datum/reagent/consumable/korta_flour = 5, /datum/reagent/water = 10 ) result = /obj/item/food/rootdough - category = CAT_LIZARD + added_foodtypes = NUTS + cuisine_category = CUISINE_LIZARD + dish_category = DISH_BREAD crafting_flags = parent_type::crafting_flags & ~CRAFT_TRANSFERS_REAGENT_COMPONENTS // prevents water from reacting immediately, clearing the dish -/datum/crafting_recipe/food/rootdough2 - name = "Rootdough" +/datum/crafting_recipe/food/rootdough/with_eggs + name = "Rootdough (With Eggs)" reqs = list( /obj/item/food/grown/potato = 2, - /datum/reagent/consumable/soymilk = 15, + /obj/item/food/egg = 1, /datum/reagent/consumable/korta_flour = 5, /datum/reagent/water = 10 ) - result = /obj/item/food/rootdough - category = CAT_LIZARD + result = /obj/item/food/rootdough/egg + removed_foodtypes = RAW|EGG + /** + * So, at some point, we've had some mean issues with crafting with empty containers. + * Bugs happen and we fix them all the time, so let's make sure stuff like this won't happen again. + * Let's make his recipe spawn a bunch of unneeded containers and something else as well. + * If this breaks the CI, then something is wrong with crafting. + */ + // unit_test_spawn_extras = list( + // /obj/item/food/rootdough/egg = 1, + // /obj/item/food/grown/potato = 1, + // /obj/item/reagent_containers/condiment = 1, + // /obj/item/reagent_containers/cup/bottle = 2, + // /obj/item/reagent_containers/cup/beaker/slime = 1, + // /obj/item/reagent_containers/applicator/patch/synthflesh = 1, + // ) crafting_flags = parent_type::crafting_flags & ~CRAFT_TRANSFERS_REAGENT_COMPONENTS // prevents water from reacting immediately, clearing the dish /datum/crafting_recipe/food/snail_nizaya @@ -209,7 +249,9 @@ /datum/reagent/consumable/ethanol/wine = 5 ) result = /obj/item/food/spaghetti/snail_nizaya - category = CAT_LIZARD + removed_foodtypes = GORE + cuisine_category = CUISINE_LIZARD + dish_category = DISH_NOODLES /datum/crafting_recipe/food/garlic_nizaya name = "Garlic nizaya" @@ -220,7 +262,8 @@ /datum/reagent/consumable/nutriment/fat/oil/olive = 5 ) result = /obj/item/food/spaghetti/garlic_nizaya - category = CAT_LIZARD + cuisine_category = CUISINE_LIZARD + dish_category = DISH_NOODLES /datum/crafting_recipe/food/demit_nizaya name = "Demit nizaya" @@ -233,7 +276,9 @@ /datum/reagent/consumable/korta_nectar = 5 ) result = /obj/item/food/spaghetti/demit_nizaya - category = CAT_LIZARD + added_foodtypes = SUGAR + cuisine_category = CUISINE_LIZARD + dish_category = DISH_NOODLES /datum/crafting_recipe/food/mushroom_nizaya name = "Mushroom nizaya" @@ -244,7 +289,8 @@ /datum/reagent/consumable/nutriment/fat/oil/olive = 5 ) result = /obj/item/food/spaghetti/mushroom_nizaya - category = CAT_LIZARD + cuisine_category = CUISINE_LIZARD + dish_category = DISH_NOODLES /datum/crafting_recipe/food/rustic_flatbread name = "Rustic flatbread" @@ -255,7 +301,8 @@ /datum/reagent/consumable/nutriment/fat/oil/olive = 3 ) result = /obj/item/food/pizza/flatbread/rustic - category = CAT_LIZARD + cuisine_category = CUISINE_LIZARD + dish_category = DISH_BREAD /datum/crafting_recipe/food/italic_flatbread name = "Italic flatbread" @@ -267,7 +314,8 @@ /datum/reagent/consumable/nutriment/fat/oil/olive = 3 ) result = /obj/item/food/pizza/flatbread/italic - category = CAT_LIZARD + cuisine_category = CUISINE_LIZARD + dish_category = DISH_BREAD /datum/crafting_recipe/food/imperial_flatbread name = "Imperial flatbread" @@ -278,7 +326,8 @@ /obj/item/food/headcheese = 1 ) result = /obj/item/food/pizza/flatbread/imperial - category = CAT_LIZARD + cuisine_category = CUISINE_LIZARD + dish_category = DISH_BREAD /datum/crafting_recipe/food/rawmeat_flatbread name = "Meatlovers flatbread" @@ -287,7 +336,8 @@ /obj/item/food/meat/slab = 1 ) result = /obj/item/food/pizza/flatbread/rawmeat - category = CAT_LIZARD + cuisine_category = CUISINE_LIZARD + dish_category = DISH_BREAD /datum/crafting_recipe/food/stinging_flatbread name = "Stinging flatbread" @@ -297,7 +347,8 @@ /obj/item/food/canned/jellyfish = 1 ) result = /obj/item/food/pizza/flatbread/stinging - category = CAT_LIZARD + cuisine_category = CUISINE_LIZARD + dish_category = DISH_BREAD /datum/crafting_recipe/food/zmorgast_flatbread name = "Zmorgast flatbread" @@ -308,7 +359,9 @@ /obj/item/organ/liver = 1 ) result = /obj/item/food/pizza/flatbread/zmorgast - category = CAT_LIZARD + removed_foodtypes = RAW + cuisine_category = CUISINE_LIZARD + dish_category = DISH_BREAD /datum/crafting_recipe/food/fish_flatbread name = "BBQ fish flatbread" @@ -318,7 +371,8 @@ /datum/reagent/consumable/bbqsauce = 5 ) result = /obj/item/food/pizza/flatbread/fish - category = CAT_LIZARD + cuisine_category = CUISINE_LIZARD + dish_category = DISH_BREAD /datum/crafting_recipe/food/mushroom_flatbread name = "Mushroom and tomato flatbread" @@ -329,7 +383,8 @@ /datum/reagent/consumable/nutriment/fat/oil/olive = 3 ) result = /obj/item/food/pizza/flatbread/mushroom - category = CAT_LIZARD + cuisine_category = CUISINE_LIZARD + dish_category = DISH_BREAD /datum/crafting_recipe/food/nutty_flatbread name = "Nut paste flatbread" @@ -339,7 +394,9 @@ /datum/reagent/consumable/korta_milk = 5 ) result = /obj/item/food/pizza/flatbread/nutty - category = CAT_LIZARD + removed_foodtypes = VEGETABLES //This is so nuts + cuisine_category = CUISINE_LIZARD + dish_category = DISH_BREAD /datum/crafting_recipe/food/emperor_roll name = "Emperor roll" @@ -350,7 +407,8 @@ /obj/item/food/moonfish_caviar = 1 ) result = /obj/item/food/emperor_roll - category = CAT_LIZARD + cuisine_category = CUISINE_LIZARD + dish_category = DISH_PASTRY /datum/crafting_recipe/food/honey_sweetroll name = "Honey sweetroll" @@ -361,7 +419,8 @@ /datum/reagent/consumable/honey = 5 ) result = /obj/item/food/honey_roll - category = CAT_LIZARD + cuisine_category = CUISINE_LIZARD + dish_category = DISH_PASTRY /datum/crafting_recipe/food/black_eggs name = "Black scrambled eggs" @@ -371,7 +430,10 @@ /datum/reagent/consumable/vinegar = 2 ) result = /obj/item/food/black_eggs - category = CAT_LIZARD + added_foodtypes = GORE|BREAKFAST + removed_foodtypes = RAW + cuisine_category = CUISINE_LIZARD + meal_category = MEAL_APPETIZER /datum/crafting_recipe/food/patzikula name = "Patzikula" @@ -382,19 +444,24 @@ /obj/item/food/egg = 2 ) result = /obj/item/food/patzikula - category = CAT_LIZARD + removed_foodtypes = RAW + added_foodtypes = BREAKFAST + cuisine_category = CUISINE_LIZARD + meal_category = MEAL_APPETIZER /datum/crafting_recipe/food/korta_brittle name = "Korta brittle slab" reqs = list( /obj/item/food/grown/korta_nut = 2, - /obj/item/food/butterslice = 1, /datum/reagent/consumable/korta_nectar = 5, /datum/reagent/consumable/sugar = 5, + /datum/reagent/consumable/nutriment/fat/oil = 3, /datum/reagent/consumable/salt = 2 ) result = /obj/item/food/cake/korta_brittle - category = CAT_LIZARD + added_foodtypes = SUGAR + cuisine_category = CUISINE_LIZARD + meal_category = MEAL_DESSERT /datum/crafting_recipe/food/korta_ice name = "Korta ice" @@ -405,7 +472,9 @@ /obj/item/food/grown/berries = 1 ) result = /obj/item/food/snowcones/korta_ice - category = CAT_LIZARD + added_foodtypes = SUGAR|NUTS + cuisine_category = CUISINE_LIZARD + dish_category = DISH_FROZEN /datum/crafting_recipe/food/candied_mushrooms name = "Candied mushrooms" @@ -416,7 +485,10 @@ /datum/reagent/consumable/salt = 1 ) result = /obj/item/food/kebab/candied_mushrooms - category = CAT_LIZARD + added_foodtypes = SUGAR + cuisine_category = CUISINE_LIZARD + dish_category = DISH_CANDY + meal_category = MEAL_DESSERT /datum/crafting_recipe/food/sauerkraut name = "Sauerkraut" @@ -425,7 +497,9 @@ /datum/reagent/consumable/salt = 10 ) result = /obj/item/food/sauerkraut - category = CAT_LIZARD + cuisine_category = CUISINE_LIZARD + dish_category = DISH_CONDIMENT + meal_category = MEAL_COMPONENT /datum/crafting_recipe/food/lizard_dumplings name = "Tiziran dumplings" @@ -434,7 +508,9 @@ /datum/reagent/consumable/korta_flour = 5 ) result = /obj/item/food/lizard_dumplings - category = CAT_LIZARD + added_foodtypes = NUTS + cuisine_category = CUISINE_LIZARD + meal_category = MEAL_COMPONENT /datum/crafting_recipe/food/steeped_mushrooms name = "Steeped mushrooms" @@ -443,7 +519,8 @@ /datum/reagent/lye = 5 ) result = /obj/item/food/steeped_mushrooms - category = CAT_LIZARD + cuisine_category = CUISINE_LIZARD + meal_category = MEAL_COMPONENT /datum/crafting_recipe/food/rootbreadpbj name = "Peanut butter and jelly rootwich" @@ -453,7 +530,9 @@ /datum/reagent/consumable/cherryjelly = 5 ) result = /obj/item/food/rootbread_peanut_butter_jelly - category = CAT_LIZARD + added_foodtypes = FRUIT + cuisine_category = CUISINE_LIZARD + dish_category = DISH_SANDWICH /datum/crafting_recipe/food/rootbreadpbb name = "Peanut butter and banana rootwich" @@ -463,25 +542,31 @@ /obj/item/food/grown/banana = 1 ) result = /obj/item/food/rootbread_peanut_butter_banana - category = CAT_LIZARD + added_foodtypes = FRUIT + cuisine_category = CUISINE_LIZARD + dish_category = DISH_SANDWICH // Soups /datum/crafting_recipe/food/reaction/soup/atrakor_dumplings reaction = /datum/chemical_reaction/food/soup/atrakor_dumplings - category = CAT_LIZARD + cuisine_category = CUISINE_LIZARD /datum/crafting_recipe/food/reaction/soup/meatball_noodles reaction = /datum/chemical_reaction/food/soup/meatball_noodles - category = CAT_LIZARD + cuisine_category = CUISINE_LIZARD /datum/crafting_recipe/food/reaction/soup/black_broth reaction = /datum/chemical_reaction/food/soup/black_broth - category = CAT_LIZARD + cuisine_category = CUISINE_LIZARD /datum/crafting_recipe/food/reaction/soup/jellyfish_stew reaction = /datum/chemical_reaction/food/soup/jellyfish_stew - category = CAT_LIZARD + cuisine_category = CUISINE_LIZARD + +/datum/crafting_recipe/food/reaction/soup/jellyfish_stew_two + reaction = /datum/chemical_reaction/food/soup/jellyfish_stew_two + cuisine_category = CUISINE_LIZARD /datum/crafting_recipe/food/reaction/soup/rootbread_soup reaction = /datum/chemical_reaction/food/soup/rootbread_soup - category = CAT_LIZARD + cuisine_category = CUISINE_LIZARD diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_martian.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_martian.dm index fb4f29284b87..3f28da80e9a5 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_martian.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_martian.dm @@ -6,7 +6,8 @@ /datum/reagent/consumable/salt = 5 ) result = /obj/item/food/kimchi - category = CAT_MARTIAN + cuisine_category = CUISINE_MARTIAN + meal_category = MEAL_APPETIZER /datum/crafting_recipe/food/inferno_kimchi name = "Inferno kimchi" @@ -16,7 +17,8 @@ /datum/reagent/consumable/salt = 5 ) result = /obj/item/food/inferno_kimchi - category = CAT_MARTIAN + cuisine_category = CUISINE_MARTIAN + meal_category = MEAL_APPETIZER /datum/crafting_recipe/food/garlic_kimchi name = "Garlic kimchi" @@ -27,7 +29,8 @@ /datum/reagent/consumable/salt = 5 ) result = /obj/item/food/garlic_kimchi - category = CAT_MARTIAN + cuisine_category = CUISINE_MARTIAN + meal_category = MEAL_APPETIZER /datum/crafting_recipe/food/surimi name = "Surimi" @@ -35,7 +38,8 @@ /obj/item/food/fishmeat = 1, ) result = /obj/item/food/surimi - category = CAT_MARTIAN + cuisine_category = CUISINE_MARTIAN + meal_category = MEAL_COMPONENT /datum/crafting_recipe/food/sambal name = "Sambal" @@ -47,7 +51,9 @@ /datum/reagent/consumable/limejuice = 3, ) result = /obj/item/food/sambal - category = CAT_MARTIAN + added_foodtypes = SEAFOOD //Until we have easy to get shrimp to add to the recipe + cuisine_category = CUISINE_MARTIAN + meal_category = MEAL_COMPONENT /datum/crafting_recipe/food/katsu_fillet name = "Katsu fillet" @@ -56,7 +62,10 @@ /obj/item/food/breadslice/reispan = 1, ) result = /obj/item/food/katsu_fillet - category = CAT_MARTIAN + removed_foodtypes = RAW + added_foodtypes = FRIED + cuisine_category = CUISINE_MARTIAN + dish_category = DISH_FROZEN /datum/crafting_recipe/food/rice_dough name = "Rice dough" @@ -66,7 +75,9 @@ /datum/reagent/water = 10, ) result = /obj/item/food/rice_dough - category = CAT_MARTIAN + crafting_flags = parent_type::crafting_flags & ~(CRAFT_TRANSFERS_REAGENT_COMPONENTS|CRAFT_CLEARS_REAGENTS) + cuisine_category = CUISINE_MARTIAN + dish_category = DISH_RICE /datum/crafting_recipe/food/hurricane_rice name = "Hurricane fried rice" @@ -80,7 +91,9 @@ /datum/reagent/consumable/soysauce = 3, ) result = /obj/item/food/salad/hurricane_rice - category = CAT_MARTIAN + removed_foodtypes = RAW|BREAKFAST + cuisine_category = CUISINE_MARTIAN + dish_category = DISH_RICE /datum/crafting_recipe/food/ikareis name = "Ikareis" @@ -93,7 +106,9 @@ /obj/item/food/grown/chili = 1, ) result = /obj/item/food/salad/ikareis - category = CAT_MARTIAN + removed_foodtypes = BREAKFAST + cuisine_category = CUISINE_MARTIAN + dish_category = DISH_RICE /datum/crafting_recipe/food/hawaiian_fried_rice name = "Hawaiian fried rice" @@ -106,7 +121,9 @@ /datum/reagent/consumable/soysauce = 5 ) result = /obj/item/food/salad/hawaiian_fried_rice - category = CAT_MARTIAN + removed_foodtypes = BREAKFAST + cuisine_category = CUISINE_MARTIAN + dish_category = DISH_RICE /datum/crafting_recipe/food/ketchup_fried_rice name = "Ketchup fried rice" @@ -120,7 +137,9 @@ /datum/reagent/consumable/worcestershire = 2, ) result = /obj/item/food/salad/ketchup_fried_rice - category = CAT_MARTIAN + removed_foodtypes = BREAKFAST + cuisine_category = CUISINE_MARTIAN + dish_category = DISH_RICE /datum/crafting_recipe/food/mediterranean_fried_rice name = "Mediterranean fried rice" @@ -133,7 +152,9 @@ /obj/item/food/meatball = 1, ) result = /obj/item/food/salad/mediterranean_fried_rice - category = CAT_MARTIAN + removed_foodtypes = BREAKFAST + cuisine_category = CUISINE_MARTIAN + dish_category = DISH_RICE /datum/crafting_recipe/food/egg_fried_rice name = "Egg fried rice" @@ -143,7 +164,9 @@ /datum/reagent/consumable/soysauce = 3, ) result = /obj/item/food/salad/egg_fried_rice - category = CAT_MARTIAN + removed_foodtypes = BREAKFAST|RAW + cuisine_category = CUISINE_MARTIAN + dish_category = DISH_RICE /datum/crafting_recipe/food/bibimbap name = "Bibimbap" @@ -156,7 +179,9 @@ /obj/item/food/egg = 1, ) result = /obj/item/food/salad/bibimbap - category = CAT_MARTIAN + removed_foodtypes = RAW|BREAKFAST + cuisine_category = CUISINE_MARTIAN + dish_category = DISH_RICE /datum/crafting_recipe/food/bulgogi_noodles name = "Bulgogi noodles" @@ -168,8 +193,9 @@ /obj/item/food/onion_slice = 1, /datum/reagent/consumable/nutriment/soup/teriyaki = 4, ) - result = /obj/item/food/salad/bibimbap - category = CAT_MARTIAN + result = /obj/item/food/salad/bulgogi_noodles + cuisine_category = CUISINE_MARTIAN + dish_category = DISH_NOODLES /datum/crafting_recipe/food/yakisoba_katsu name = "Yakisoba katsu" @@ -182,7 +208,8 @@ /datum/reagent/consumable/worcestershire = 3, ) result = /obj/item/food/salad/yakisoba_katsu - category = CAT_MARTIAN + cuisine_category = CUISINE_MARTIAN + dish_category = DISH_NOODLES /datum/crafting_recipe/food/martian_fried_noodles name = "Martian fried noodles" @@ -196,7 +223,9 @@ /datum/reagent/consumable/red_bay = 3, ) result = /obj/item/food/salad/martian_fried_noodles - category = CAT_MARTIAN + removed_foodtypes = RAW + cuisine_category = CUISINE_MARTIAN + dish_category = DISH_NOODLES /datum/crafting_recipe/food/simple_fried_noodles name = "Simple fried noodles" @@ -205,7 +234,8 @@ /datum/reagent/consumable/soysauce = 3, ) result = /obj/item/food/salad/simple_fried_noodles - category = CAT_MARTIAN + cuisine_category = CUISINE_MARTIAN + dish_category = DISH_NOODLES /datum/crafting_recipe/food/setagaya_curry name = "Setagaya curry" @@ -224,7 +254,9 @@ /obj/item/food/grown/potato = 1, ) result = /obj/item/food/salad/setagaya_curry - category = CAT_MARTIAN + removed_foodtypes = RAW|JUNKFOOD|BREAKFAST + cuisine_category = CUISINE_MARTIAN + dish_category = DISH_RICE /datum/crafting_recipe/food/big_blue_burger name = "Big Blue Burger" @@ -238,7 +270,9 @@ /datum/reagent/consumable/nutriment/soup/teriyaki = 4, ) result = /obj/item/food/burger/big_blue - category = CAT_MARTIAN + removed_foodtypes = BREAKFAST + cuisine_category = CUISINE_MARTIAN + dish_category = DISH_BURGER /datum/crafting_recipe/food/chappy_patty name = "Chappy Patty" @@ -250,7 +284,9 @@ /datum/reagent/consumable/ketchup = 3, ) result = /obj/item/food/burger/chappy - category = CAT_MARTIAN + removed_foodtypes = BREAKFAST + cuisine_category = CUISINE_MARTIAN + dish_category = DISH_BURGER /datum/crafting_recipe/food/king_katsu_sandwich name = "King Katsu sandwich" @@ -263,7 +299,9 @@ /obj/item/food/grown/tomato = 1, ) result = /obj/item/food/king_katsu_sandwich - category = CAT_MARTIAN + removed_foodtypes = BREAKFAST + cuisine_category = CUISINE_MARTIAN + dish_category = DISH_SANDWICH /datum/crafting_recipe/food/marte_cubano_sandwich name = "Marte Cubano sandwich" @@ -274,7 +312,9 @@ /obj/item/food/cheese/wedge = 1, ) result = /obj/item/food/marte_cubano_sandwich - category = CAT_MARTIAN + removed_foodtypes = BREAKFAST + cuisine_category = CUISINE_MARTIAN + dish_category = DISH_SANDWICH /datum/crafting_recipe/food/little_shiro_sandwich name = "Little Shiro sandwich" @@ -287,7 +327,9 @@ /obj/item/food/grown/herbs = 1, ) result = /obj/item/food/little_shiro_sandwich - category = CAT_MARTIAN + removed_foodtypes = BREAKFAST + cuisine_category = CUISINE_MARTIAN + dish_category = DISH_SANDWICH /datum/crafting_recipe/food/croque_martienne name = "Croque-Martienne sandwich" @@ -299,7 +341,8 @@ /obj/item/food/friedegg = 1, ) result = /obj/item/food/croque_martienne - category = CAT_MARTIAN + cuisine_category = CUISINE_MARTIAN + dish_category = DISH_SANDWICH /datum/crafting_recipe/food/prospect_sunrise name = "Prospect Sunrise sandwich" @@ -311,7 +354,8 @@ /obj/item/food/pickle = 1, ) result = /obj/item/food/prospect_sunrise - category = CAT_MARTIAN + cuisine_category = CUISINE_MARTIAN + dish_category = DISH_SANDWICH /datum/crafting_recipe/food/takoyaki name = "Takoyaki" @@ -322,7 +366,10 @@ /datum/reagent/consumable/worcestershire = 3, ) result = /obj/item/food/takoyaki - category = CAT_MARTIAN + added_foodtypes = GRAIN|FRIED + cuisine_category = CUISINE_MARTIAN + dish_category = DISH_MEAT + meal_category = MEAL_APPETIZER /datum/crafting_recipe/food/russian_takoyaki name = "Russian takoyaki" @@ -333,7 +380,10 @@ /datum/reagent/consumable/capsaicin = 3, ) result = /obj/item/food/takoyaki/russian - category = CAT_MARTIAN + added_foodtypes = GRAIN|FRIED + cuisine_category = CUISINE_MARTIAN + dish_category = DISH_MEAT + meal_category = MEAL_APPETIZER /datum/crafting_recipe/food/tacoyaki name = "Tacoyaki" @@ -345,7 +395,10 @@ /obj/item/food/cheese/wedge = 1, ) result = /obj/item/food/takoyaki/taco - category = CAT_MARTIAN + added_foodtypes = GRAIN|FRIED|SEAFOOD + cuisine_category = CUISINE_MARTIAN + dish_category = DISH_MEAT + meal_category = MEAL_APPETIZER /datum/crafting_recipe/food/okonomiyaki name = "Okonomiyaki" @@ -357,7 +410,10 @@ /obj/item/food/grown/potato/sweet = 1, ) result = /obj/item/food/okonomiyaki - category = CAT_MARTIAN + added_foodtypes = GRAIN|FRIED|SEAFOOD + cuisine_category = CUISINE_MARTIAN + dish_category = DISH_PASTRY // ?? + meal_category = MEAL_APPETIZER /datum/crafting_recipe/food/brat_kimchi name = "Brat-kimchi" @@ -367,7 +423,9 @@ /datum/reagent/consumable/sugar = 3, ) result = /obj/item/food/brat_kimchi - category = CAT_MARTIAN + removed_foodtypes = BREAKFAST + cuisine_category = CUISINE_MARTIAN + meal_category = MEAL_APPETIZER /datum/crafting_recipe/food/tonkatsuwurst name = "Tonkatsuwurst" @@ -378,7 +436,10 @@ /datum/reagent/consumable/red_bay = 2, ) result = /obj/item/food/tonkatsuwurst - category = CAT_MARTIAN + removed_foodtypes = BREAKFAST + cuisine_category = CUISINE_MARTIAN + dish_category = DISH_MEAT + meal_category = MEAL_APPETIZER /datum/crafting_recipe/food/ti_hoeh_koe name = "Ti hoeh koe" @@ -389,7 +450,9 @@ /datum/reagent/blood = 5, ) result = /obj/item/food/kebab/ti_hoeh_koe - category = CAT_MARTIAN + removed_foodtypes = JUNKFOOD|VEGETABLES|BREAKFAST + added_foodtypes = MEAT|FRIED + cuisine_category = CUISINE_MARTIAN /datum/crafting_recipe/food/kitzushi name = "Kitzushi" @@ -400,7 +463,10 @@ /obj/item/food/grown/chili = 1, ) result = /obj/item/food/kitzushi - category = CAT_MARTIAN + removed_foodtypes = BREAKFAST + added_foodtypes = FRIED + cuisine_category = CUISINE_MARTIAN + dish_category = DISH_SUSHI /datum/crafting_recipe/food/epok_epok name = "Epok-epok" @@ -412,7 +478,10 @@ /datum/reagent/consumable/curry_powder = 3, ) result = /obj/item/food/epok_epok - category = CAT_MARTIAN + removed_foodtypes = BREAKFAST + added_foodtypes = FRIED + cuisine_category = CUISINE_MARTIAN + dish_category = DISH_PASTRY /datum/crafting_recipe/food/roti_john name = "Roti John" @@ -425,7 +494,10 @@ /datum/reagent/consumable/mayonnaise = 3, ) result = /obj/item/food/roti_john - category = CAT_MARTIAN + added_foodtypes = BREAKFAST + removed_foodtypes = RAW + cuisine_category = CUISINE_MARTIAN + dish_category = DISH_SANDWICH /datum/crafting_recipe/food/izakaya_fries name = "Izakaya fries" @@ -436,7 +508,8 @@ /datum/reagent/consumable/mayonnaise = 3, ) result = /obj/item/food/izakaya_fries - category = CAT_MARTIAN + cuisine_category = CUISINE_MARTIAN + meal_category = MEAL_APPETIZER /datum/crafting_recipe/food/kurry_ok_subsando name = "Kurry-OK subsando" @@ -447,7 +520,8 @@ /datum/reagent/consumable/nutriment/soup/curry_sauce = 5, ) result = /obj/item/food/kurry_ok_subsando - category = CAT_MARTIAN + cuisine_category = CUISINE_MARTIAN + dish_category = DISH_SANDWICH /datum/crafting_recipe/food/loco_moco name = "Loco moco" @@ -459,7 +533,9 @@ /datum/reagent/consumable/gravy = 5, ) result = /obj/item/food/loco_moco - category = CAT_MARTIAN + removed_foodtypes = BREAKFAST + cuisine_category = CUISINE_MARTIAN + dish_category = DISH_RICE /datum/crafting_recipe/food/wild_duck_fries name = "Wild duck fries" @@ -469,7 +545,8 @@ /datum/reagent/consumable/ketchup = 3, ) result = /obj/item/food/wild_duck_fries - category = CAT_MARTIAN + cuisine_category = CUISINE_MARTIAN + meal_category = MEAL_APPETIZER /datum/crafting_recipe/food/little_hawaii_hotdog name = "Little Hawaii hotdog" @@ -480,7 +557,8 @@ /datum/reagent/consumable/nutriment/soup/teriyaki = 3, ) result = /obj/item/food/little_hawaii_hotdog - category = CAT_MARTIAN + cuisine_category = CUISINE_MARTIAN + dish_category = DISH_SANDWICH /datum/crafting_recipe/food/salt_chilli_fries name = "Salt n' chilli fries" @@ -492,7 +570,8 @@ /datum/reagent/consumable/salt = 3, ) result = /obj/item/food/salt_chilli_fries - category = CAT_MARTIAN + cuisine_category = CUISINE_MARTIAN + meal_category = MEAL_APPETIZER /datum/crafting_recipe/food/steak_croquette name = "Steak croquette" @@ -502,7 +581,9 @@ /obj/item/food/breadslice/reispan = 1, ) result = /obj/item/food/steak_croquette - category = CAT_MARTIAN + added_foodtypes = FRIED + cuisine_category = CUISINE_MARTIAN + dish_category = DISH_PASTRY /datum/crafting_recipe/food/chapsilog name = "Chapsilog" @@ -513,7 +594,7 @@ /obj/item/food/grown/garlic = 1, ) result = /obj/item/food/chapsilog - category = CAT_MARTIAN + cuisine_category = CUISINE_MARTIAN /datum/crafting_recipe/food/chap_hash name = "Chap hash" @@ -525,7 +606,9 @@ /obj/item/food/onion_slice = 1, ) result = /obj/item/food/chap_hash - category = CAT_MARTIAN + removed_foodtypes = RAW + added_foodtypes = BREAKFAST + cuisine_category = CUISINE_MARTIAN /datum/crafting_recipe/food/agedashi_tofu name = "Agedashi tofu" @@ -536,7 +619,9 @@ /obj/item/reagent_containers/cup/bowl = 1, ) result = /obj/item/food/salad/agedashi_tofu - category = CAT_MARTIAN + added_foodtypes = SEAFOOD + cuisine_category = CUISINE_MARTIAN + dish_category = DISH_SOUP /datum/crafting_recipe/food/po_kok_gai name = "Po kok gai" @@ -547,7 +632,10 @@ /datum/reagent/consumable/curry_powder = 3, ) result = /obj/item/food/salad/po_kok_gai - category = CAT_MARTIAN + added_foodtypes = FRUIT + removed_foodtypes = RAW|BREAKFAST + cuisine_category = CUISINE_MARTIAN + dish_category = DISH_RICE /datum/crafting_recipe/food/huoxing_tofu name = "Huoxing tofu" @@ -559,7 +647,9 @@ /obj/item/reagent_containers/cup/bowl = 1, ) result = /obj/item/food/salad/huoxing_tofu - category = CAT_MARTIAN + removed_foodtypes = RAW + cuisine_category = CUISINE_MARTIAN + dish_category = DISH_MEAT /datum/crafting_recipe/food/feizhou_ji name = "Fēizhōu jī" @@ -570,7 +660,9 @@ /datum/reagent/consumable/vinegar = 5, ) result = /obj/item/food/feizhou_ji - category = CAT_MARTIAN + removed_foodtypes = RAW + cuisine_category = CUISINE_MARTIAN + dish_category = DISH_MEAT /datum/crafting_recipe/food/galinha_de_cabidela name = "Galinha de cabidela" @@ -581,7 +673,9 @@ /datum/reagent/blood = 5, ) result = /obj/item/food/salad/galinha_de_cabidela - category = CAT_MARTIAN + removed_foodtypes = RAW + cuisine_category = CUISINE_MARTIAN + dish_category = DISH_RICE /datum/crafting_recipe/food/katsu_curry name = "Katsu curry" @@ -591,7 +685,9 @@ /datum/reagent/consumable/nutriment/soup/curry_sauce = 5, ) result = /obj/item/food/salad/katsu_curry - category = CAT_MARTIAN + removed_foodtypes = BREAKFAST + cuisine_category = CUISINE_MARTIAN + dish_category = DISH_RICE /datum/crafting_recipe/food/beef_bowl name = "Beef bowl" @@ -602,7 +698,10 @@ /datum/reagent/consumable/nutriment/soup/dashi = 5, ) result = /obj/item/food/salad/beef_bowl - category = CAT_MARTIAN + removed_foodtypes = BREAKFAST + added_foodtypes = SEAFOOD + cuisine_category = CUISINE_MARTIAN + dish_category = DISH_RICE /datum/crafting_recipe/food/salt_chilli_bowl name = "Salt n' chilli octopus bowl" @@ -615,7 +714,9 @@ /datum/reagent/consumable/nutriment/soup/curry_sauce = 5, ) result = /obj/item/food/salad/salt_chilli_bowl - category = CAT_MARTIAN + removed_foodtypes = BREAKFAST + cuisine_category = CUISINE_MARTIAN + dish_category = DISH_RICE /datum/crafting_recipe/food/kansai_bowl name = "Kansai bowl" @@ -627,7 +728,9 @@ /datum/reagent/consumable/nutriment/soup/dashi = 5, ) result = /obj/item/food/salad/kansai_bowl - category = CAT_MARTIAN + removed_foodtypes = BREAKFAST + cuisine_category = CUISINE_MARTIAN + dish_category = DISH_RICE /datum/crafting_recipe/food/eigamudo_curry name = "Eigamudo curry" @@ -639,7 +742,10 @@ /datum/reagent/consumable/cafe_latte = 5, ) result = /obj/item/food/salad/eigamudo_curry - category = CAT_MARTIAN + removed_foodtypes = BREAKFAST + added_foodtypes = GROSS|TOXIC + cuisine_category = CUISINE_MARTIAN + dish_category = DISH_RICE /datum/crafting_recipe/food/cilbir name = "Çilbir" @@ -651,7 +757,9 @@ /datum/reagent/consumable/nutriment/fat/oil/olive = 2, ) result = /obj/item/food/cilbir - category = CAT_MARTIAN + added_foodtypes = DAIRY + cuisine_category = CUISINE_MARTIAN + meal_category = MEAL_APPETIZER /datum/crafting_recipe/food/peking_duck_crepes name = "Peking duck crepes a l'orange" @@ -662,7 +770,10 @@ /datum/reagent/consumable/ethanol/cognac = 2, ) result = /obj/item/food/peking_duck_crepes - category = CAT_MARTIAN + removed_foodtypes = BREAKFAST + cuisine_category = CUISINE_MARTIAN + dish_category = DISH_MEAT + meal_category = MEAL_DESSERT /datum/crafting_recipe/food/vulgaris_spekkoek name = "Vulgaris spekkoek" @@ -672,7 +783,9 @@ /obj/item/food/butterslice = 2, ) result = /obj/item/food/cake/spekkoek - category = CAT_MARTIAN + cuisine_category = CUISINE_MARTIAN + dish_category = DISH_CAKE + meal_category = MEAL_DESSERT /datum/crafting_recipe/food/pineapple_foster name = "Pineapple foster" @@ -683,7 +796,9 @@ /datum/reagent/consumable/ethanol/rum = 2, ) result = /obj/item/food/salad/pineapple_foster - category = CAT_MARTIAN + cuisine_category = CUISINE_MARTIAN + dish_category = DISH_FROZEN + meal_category = MEAL_DESSERT /datum/crafting_recipe/food/pastel_de_nata name = "Pastel de nata" @@ -694,7 +809,10 @@ /datum/reagent/consumable/sugar = 2, ) result = /obj/item/food/pastel_de_nata - category = CAT_MARTIAN + removed_foodtypes = MEAT|RAW + cuisine_category = CUISINE_MARTIAN + dish_category = DISH_PASTRY + meal_category = MEAL_DESSERT /datum/crafting_recipe/food/boh_loh_yah name = "Boh loh yah" @@ -704,7 +822,10 @@ /datum/reagent/consumable/sugar = 5, ) result = /obj/item/food/boh_loh_yah - category = CAT_MARTIAN + added_foodtypes = PINEAPPLE // someone thought it's funny to give it this foodtype smh + cuisine_category = CUISINE_MARTIAN + dish_category = DISH_COOKIE + meal_category = MEAL_DESSERT /datum/crafting_recipe/food/banana_fritter name = "Banana fritter" @@ -713,7 +834,10 @@ /datum/reagent/consumable/martian_batter = 2 ) result = /obj/item/food/banana_fritter - category = CAT_MARTIAN + added_foodtypes = GRAIN|FRIED|SEAFOOD + cuisine_category = CUISINE_MARTIAN + dish_category = DISH_PASTRY + meal_category = MEAL_DESSERT /datum/crafting_recipe/food/pineapple_fritter name = "Pineapple fritter" @@ -722,7 +846,10 @@ /datum/reagent/consumable/martian_batter = 2 ) result = /obj/item/food/pineapple_fritter - category = CAT_MARTIAN + added_foodtypes = GRAIN|FRIED|SEAFOOD + cuisine_category = CUISINE_MARTIAN + dish_category = DISH_PASTRY + meal_category = MEAL_DESSERT /datum/crafting_recipe/food/kasei_dango name = "Kasei dango" @@ -734,7 +861,10 @@ /datum/reagent/consumable/grenadine = 2, ) result = /obj/item/food/kebab/kasei_dango - category = CAT_MARTIAN + added_foodtypes = GRAIN + cuisine_category = CUISINE_MARTIAN + dish_category = DISH_PASTRY + meal_category = MEAL_DESSERT /datum/crafting_recipe/food/pb_ice_cream_mochi name = "Peanut-butter ice cream mochi" @@ -745,7 +875,10 @@ /obj/item/food/icecream = 1, ) result = /obj/item/food/pb_ice_cream_mochi - category = CAT_MARTIAN + added_foodtypes = NUTS + cuisine_category = CUISINE_MARTIAN + dish_category = DISH_FROZEN + meal_category = MEAL_DESSERT /datum/crafting_recipe/food/frozen_pineapple_pop name = "Frozen pineapple pop" @@ -755,7 +888,10 @@ /obj/item/popsicle_stick = 1, ) result = /obj/item/food/popsicle/pineapple_pop - category = CAT_MARTIAN + removed_foodtypes = JUNKFOOD + cuisine_category = CUISINE_MARTIAN + dish_category = DISH_FROZEN + meal_category = MEAL_DESSERT /datum/crafting_recipe/food/sea_salt_pop name = "Sea-salt ice cream bar" @@ -766,7 +902,9 @@ /obj/item/popsicle_stick = 1, ) result = /obj/item/food/popsicle/sea_salt - category = CAT_MARTIAN + cuisine_category = CUISINE_MARTIAN + dish_category = DISH_FROZEN + meal_category = MEAL_DESSERT /datum/crafting_recipe/food/berry_topsicle name = "Berry topsicle" @@ -777,7 +915,10 @@ /obj/item/popsicle_stick = 1, ) result = /obj/item/food/popsicle/topsicle - category = CAT_MARTIAN + added_foodtypes = SUGAR|FRUIT + cuisine_category = CUISINE_MARTIAN + dish_category = DISH_FROZEN + meal_category = MEAL_DESSERT /datum/crafting_recipe/food/banana_topsicle name = "Banana topsicle" @@ -788,9 +929,12 @@ /obj/item/popsicle_stick = 1, ) result = /obj/item/food/popsicle/topsicle/banana - category = CAT_MARTIAN + added_foodtypes = SUGAR|FRUIT + cuisine_category = CUISINE_MARTIAN + dish_category = DISH_FROZEN + meal_category = MEAL_DESSERT -/datum/crafting_recipe/food/berry_topsicle +/datum/crafting_recipe/food/pineapple_topsicle name = "Pineapple topsicle" reqs = list( /obj/item/food/tofu = 1, @@ -799,7 +943,10 @@ /obj/item/popsicle_stick = 1, ) result = /obj/item/food/popsicle/topsicle/pineapple - category = CAT_MARTIAN + added_foodtypes = SUGAR|FRUIT|PINEAPPLE + cuisine_category = CUISINE_MARTIAN + dish_category = DISH_FROZEN + meal_category = MEAL_DESSERT /datum/crafting_recipe/food/plasma_dog_supreme name = "Plasma Dog Supreme" @@ -810,7 +957,8 @@ /obj/item/food/onion_slice = 1, ) result = /obj/item/food/plasma_dog_supreme - category = CAT_MARTIAN + cuisine_category = CUISINE_MARTIAN + dish_category = DISH_SANDWICH /datum/crafting_recipe/food/frickles name = "Frickles" @@ -820,7 +968,9 @@ /datum/reagent/consumable/red_bay = 1, ) result = /obj/item/food/frickles - category = CAT_MARTIAN + added_foodtypes = GRAIN|FRIED|SEAFOOD + cuisine_category = CUISINE_MARTIAN + meal_category = MEAL_APPETIZER /datum/crafting_recipe/food/raw_ballpark_pretzel name = "Raw ballpark pretzel" @@ -829,7 +979,10 @@ /datum/reagent/consumable/salt = 2, ) result = /obj/item/food/raw_ballpark_pretzel - category = CAT_MARTIAN + added_foodtypes = RAW + cuisine_category = CUISINE_MARTIAN + dish_category = DISH_PASTRY + meal_category = MEAL_COMPONENT /datum/crafting_recipe/food/raw_ballpark_tsukune name = "Raw ballpark tsukune" @@ -839,7 +992,8 @@ /obj/item/stack/rods = 1, ) result = /obj/item/food/kebab/raw_ballpark_tsukune - category = CAT_MARTIAN + cuisine_category = CUISINE_MARTIAN + dish_category = DISH_MEAT /datum/crafting_recipe/food/sprout_bowl name = "Sprout bowl" @@ -850,66 +1004,69 @@ /datum/reagent/consumable/nutriment/soup/dashi = 5, ) result = /obj/item/food/salad/sprout_bowl - category = CAT_MARTIAN + removed_foodtypes = BREAKFAST + cuisine_category = CUISINE_MARTIAN + dish_category = DISH_RICE // Soups /datum/crafting_recipe/food/reaction/soup/boilednoodles reaction = /datum/chemical_reaction/food/soup/boilednoodles - category = CAT_MARTIAN + cuisine_category = CUISINE_MARTIAN /datum/crafting_recipe/food/reaction/soup/dashi reaction = /datum/chemical_reaction/food/soup/dashi - category = CAT_MARTIAN + cuisine_category = CUISINE_MARTIAN /datum/crafting_recipe/food/reaction/soup/teriyaki reaction = /datum/chemical_reaction/food/soup/teriyaki - category = CAT_MARTIAN + cuisine_category = CUISINE_MARTIAN /datum/crafting_recipe/food/reaction/soup/curry_sauce reaction = /datum/chemical_reaction/food/soup/curry_sauce - category = CAT_MARTIAN + cuisine_category = CUISINE_MARTIAN /datum/crafting_recipe/food/reaction/soup/shoyu_ramen reaction = /datum/chemical_reaction/food/soup/shoyu_ramen - category = CAT_MARTIAN + cuisine_category = CUISINE_MARTIAN /datum/crafting_recipe/food/reaction/soup/gyuramen reaction = /datum/chemical_reaction/food/soup/gyuramen - category = CAT_MARTIAN + cuisine_category = CUISINE_MARTIAN /datum/crafting_recipe/food/reaction/soup/new_osaka_sunrise reaction = /datum/chemical_reaction/food/soup/new_osaka_sunrise - category = CAT_MARTIAN + cuisine_category = CUISINE_MARTIAN /datum/crafting_recipe/food/reaction/soup/satsuma_black reaction = /datum/chemical_reaction/food/soup/satsuma_black - category = CAT_MARTIAN + cuisine_category = CUISINE_MARTIAN /datum/crafting_recipe/food/reaction/soup/dragon_ramen reaction = /datum/chemical_reaction/food/soup/dragon_ramen - category = CAT_MARTIAN + cuisine_category = CUISINE_MARTIAN /datum/crafting_recipe/food/reaction/soup/hong_kong_borscht reaction = /datum/chemical_reaction/food/soup/hong_kong_borscht - category = CAT_MARTIAN + cuisine_category = CUISINE_MARTIAN /datum/crafting_recipe/food/reaction/soup/hong_kong_macaroni reaction = /datum/chemical_reaction/food/soup/hong_kong_macaroni - category = CAT_MARTIAN + cuisine_category = CUISINE_MARTIAN /datum/crafting_recipe/food/reaction/soup/foxs_prize_soup reaction = /datum/chemical_reaction/food/soup/foxs_prize_soup - category = CAT_MARTIAN + cuisine_category = CUISINE_MARTIAN /datum/crafting_recipe/food/reaction/soup/secret_noodle_soup reaction = /datum/chemical_reaction/food/soup/secret_noodle_soup - category = CAT_MARTIAN + cuisine_category = CUISINE_MARTIAN /datum/crafting_recipe/food/reaction/soup/budae_jjigae reaction = /datum/chemical_reaction/food/soup/budae_jjigae - category = CAT_MARTIAN + cuisine_category = CUISINE_MARTIAN /datum/crafting_recipe/food/reaction/soup/volt_fish reaction = /datum/chemical_reaction/food/soup/volt_fish - category = CAT_MARTIAN + cuisine_category = CUISINE_MARTIAN + dish_category = DISH_MEAT diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_meat.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_meat.dm index 06fd58e0a102..cc2e12dd036f 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_meat.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_meat.dm @@ -9,7 +9,7 @@ /obj/item/food/meat/steak/plain/human = 2 ) result = /obj/item/food/kebab/human - category = CAT_MEAT + dish_category = DISH_MEAT /datum/crafting_recipe/food/kebab name = "Kebab" @@ -18,7 +18,7 @@ /obj/item/food/meat/steak = 2 ) result = /obj/item/food/kebab/monkey - category = CAT_MEAT + dish_category = DISH_MEAT /datum/crafting_recipe/food/tofukebab name = "Tofu kebab" @@ -27,7 +27,7 @@ /obj/item/food/tofu = 2 ) result = /obj/item/food/kebab/tofu - category = CAT_MEAT + dish_category = DISH_MEAT /datum/crafting_recipe/food/tailkebab name = "Lizard tail kebab" @@ -36,7 +36,7 @@ /obj/item/organ/tail/lizard = 1 ) result = /obj/item/food/kebab/tail - category = CAT_MEAT + dish_category = DISH_MEAT /datum/crafting_recipe/food/fiestaskewer name = "Fiesta Skewer" @@ -48,7 +48,7 @@ /obj/item/food/grown/tomato = 1 ) result = /obj/item/food/kebab/fiesta - category = CAT_MEAT + dish_category = DISH_MEAT ////////////////////////////////////////////////MR SPIDER//////////////////////////////////////////////// @@ -60,7 +60,8 @@ /obj/item/food/meat/cutlet/spider = 2 ) result = /obj/item/food/spidereggsham - category = CAT_MEAT + removed_foodtypes = TOXIC + dish_category = DISH_MEAT ////////////////////////////////////////////////MISC RECIPE's//////////////////////////////////////////////// @@ -71,7 +72,8 @@ /obj/item/seeds/plump = 1 ) result = /obj/item/food/tempehstarter - category = CAT_MEAT + added_foodtypes = GROSS + dish_category = DISH_MEAT /datum/crafting_recipe/food/cornedbeef name = "Corned beef" @@ -81,7 +83,7 @@ /obj/item/food/grown/cabbage = 2 ) result = /obj/item/food/cornedbeef - category = CAT_MEAT + dish_category = DISH_MEAT /datum/crafting_recipe/food/bearsteak name = "Filet migrawr" @@ -91,7 +93,8 @@ ) tool_paths = list(/obj/item/lighter) result = /obj/item/food/bearsteak - category = CAT_MEAT + added_foodtypes = ALCOHOL + dish_category = DISH_MEAT /datum/crafting_recipe/food/stewedsoymeat name = "Stewed soymeat" @@ -101,7 +104,7 @@ /obj/item/food/grown/tomato = 1 ) result = /obj/item/food/stewedsoymeat - category = CAT_MEAT + dish_category = DISH_MEAT /datum/crafting_recipe/food/sausage name = "Raw sausage" @@ -110,7 +113,7 @@ /obj/item/food/meat/rawcutlet = 2 ) result = /obj/item/food/raw_sausage - category = CAT_MEAT + dish_category = DISH_MEAT /datum/crafting_recipe/food/nugget name = "Chicken nugget" @@ -118,7 +121,7 @@ /obj/item/food/meat/cutlet = 1 ) result = /obj/item/food/nugget - category = CAT_MEAT + dish_category = DISH_MEAT /datum/crafting_recipe/food/rawkhinkali name = "Raw Khinkali" @@ -128,7 +131,7 @@ /obj/item/food/meatball = 1 ) result = /obj/item/food/rawkhinkali - category = CAT_MEAT + dish_category = DISH_MEAT /datum/crafting_recipe/food/meatbun name = "Meat bun" @@ -139,7 +142,7 @@ /obj/item/food/grown/cabbage = 1 ) result = /obj/item/food/meatbun - category = CAT_MEAT + dish_category = DISH_MEAT /datum/crafting_recipe/food/pigblanket name = "Pig in a Blanket" @@ -149,7 +152,7 @@ /obj/item/food/meat/cutlet = 1 ) result = /obj/item/food/pigblanket - category = CAT_MEAT + dish_category = DISH_MEAT /datum/crafting_recipe/food/ratkebab name = "Rat Kebab" @@ -158,7 +161,7 @@ /obj/item/food/deadmouse = 1 ) result = /obj/item/food/kebab/rat - category = CAT_MEAT + dish_category = DISH_MEAT /datum/crafting_recipe/food/doubleratkebab name = "Double Rat Kebab" @@ -167,7 +170,7 @@ /obj/item/food/deadmouse = 2 ) result = /obj/item/food/kebab/rat/double - category = CAT_MEAT + dish_category = DISH_MEAT /datum/crafting_recipe/food/ricepork name = "Rice and Pork" @@ -177,7 +180,8 @@ /obj/item/food/meat/cutlet = 2 ) result = /obj/item/food/salad/ricepork - category = CAT_MEAT + removed_foodtypes = BREAKFAST + dish_category = DISH_MEAT /datum/crafting_recipe/food/ribs name = "BBQ Ribs" @@ -187,7 +191,8 @@ /obj/item/stack/rods = 2 ) result = /obj/item/food/bbqribs - category = CAT_MEAT + added_foodtypes = SUGAR + dish_category = DISH_MEAT /datum/crafting_recipe/food/meatclown name = "Meat Clown" @@ -196,7 +201,7 @@ /obj/item/food/grown/banana = 1 ) result = /obj/item/food/meatclown - category = CAT_MEAT + dish_category = DISH_MEAT /datum/crafting_recipe/food/lasagna name = "Lasagna" @@ -207,7 +212,7 @@ /obj/item/food/spaghetti/raw = 1 ) result = /obj/item/food/lasagna - category = CAT_MEAT + dish_category = DISH_MEAT /datum/crafting_recipe/food/gumbo name = "Black eyed gumbo" @@ -219,7 +224,8 @@ /obj/item/food/meat/cutlet = 1 ) result = /obj/item/food/salad/gumbo - category = CAT_MEAT + removed_foodtypes = BREAKFAST + dish_category = DISH_MEAT /datum/crafting_recipe/food/fried_chicken @@ -230,7 +236,9 @@ /datum/reagent/consumable/corn_starch = 5, ) result = /obj/item/food/fried_chicken - category = CAT_MEAT + removed_foodtypes = RAW + added_foodtypes = FRIED + dish_category = DISH_MEAT /datum/crafting_recipe/food/beef_stroganoff name = "Beef Stroganoff" @@ -245,7 +253,8 @@ /obj/item/food/meat/steak = 1, ) result = /obj/item/food/beef_stroganoff - category = CAT_MEAT + added_foodtypes = DAIRY + dish_category = DISH_MEAT /datum/crafting_recipe/food/beef_wellington name = "Beef Wellington" @@ -260,7 +269,8 @@ /datum/reagent/consumable/blackpepper = 2 ) result = /obj/item/food/beef_wellington - category = CAT_MEAT + removed_foodtypes = BREAKFAST + dish_category = DISH_MEAT /datum/crafting_recipe/food/korta_wellington name = "Korta Wellington" @@ -275,7 +285,8 @@ /datum/reagent/consumable/blackpepper = 2 ) result = /obj/item/food/korta_wellington - category = CAT_MEAT + removed_foodtypes = BREAKFAST + dish_category = DISH_MEAT /datum/crafting_recipe/food/full_roast name = "Roast Chicken Dinner" @@ -293,7 +304,8 @@ /datum/reagent/consumable/blackpepper = 2 ) result = /obj/item/food/roast_dinner - category = CAT_MEAT + added_foodtypes = GRAIN + dish_category = DISH_MEAT /datum/crafting_recipe/food/full_roast_lizzy name = "Grain-Free Roast Chicken Dinner" @@ -312,7 +324,8 @@ /datum/reagent/consumable/blackpepper = 2 ) result = /obj/item/food/roast_dinner_lizzy - category = CAT_MEAT + added_foodtypes = NUTS + dish_category = DISH_MEAT /datum/crafting_recipe/food/full_roast_tofu name = "Meat-Free Roast Dinner" @@ -330,7 +343,8 @@ /datum/reagent/consumable/blackpepper = 2 ) result = /obj/item/food/roast_dinner_tofu - category = CAT_MEAT + added_foodtypes = GRAIN + dish_category = DISH_MEAT /datum/crafting_recipe/food/full_english name = "Full English Breakfast" @@ -344,7 +358,7 @@ /obj/item/food/butteredtoast = 1 ) result = /obj/item/food/full_english - category = CAT_MEAT + dish_category = DISH_MEAT /datum/crafting_recipe/food/envirochow name = "Envirochow" @@ -353,7 +367,9 @@ /datum/reagent/consumable/nutriment/vitamin = 5, ) result = /obj/item/food/canned/envirochow - category = CAT_MEAT + removed_foodtypes = RAW|GORE + added_foodtypes = GROSS + dish_category = DISH_MEAT /datum/crafting_recipe/food/meatloaf name = "Meatloaf" @@ -364,7 +380,7 @@ /datum/reagent/consumable/ketchup = 10, ) result = /obj/item/food/raw_meatloaf - category = CAT_MEAT + dish_category = DISH_MEAT /datum/crafting_recipe/food/sweet_and_sour_meatballs name = "Sweet and sour meatballs" @@ -375,7 +391,7 @@ /datum/reagent/consumable/sugar = 5, ) result = /obj/item/food/sweet_and_sour_meatballs - category = CAT_MEAT + dish_category = DISH_MEAT /datum/crafting_recipe/food/pineapple_skewer name = "Pineapple skewer" @@ -385,4 +401,5 @@ /obj/item/food/meat/cutlet = 2, ) result = /obj/item/food/kebab/pineapple_skewer - category = CAT_MEAT + dish_category = DISH_MEAT + meal_category = MEAL_APPETIZER diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_mexican.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_mexican.dm index 3c115d4a3962..666ab90616ef 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_mexican.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_mexican.dm @@ -10,7 +10,8 @@ /obj/item/food/grown/soybeans = 2 ) result = /obj/item/food/burrito - category = CAT_MEXICAN + cuisine_category = CUISINE_MEXICAN + dish_category = DISH_BURRITO /datum/crafting_recipe/food/cheesyburrito name ="Cheesy burrito" @@ -20,56 +21,65 @@ /obj/item/food/grown/soybeans = 1 ) result = /obj/item/food/cheesyburrito - category = CAT_MEXICAN + cuisine_category = CUISINE_MEXICAN + dish_category = DISH_BURRITO /datum/crafting_recipe/food/carneburrito - name ="Carne de asada burrito" + name = "Carne de asada burrito" reqs = list( /obj/item/food/tortilla = 1, /obj/item/food/meat/cutlet = 2, /obj/item/food/grown/soybeans = 1 ) result = /obj/item/food/carneburrito - category = CAT_MEXICAN + cuisine_category = CUISINE_MEXICAN + dish_category = DISH_BURRITO /datum/crafting_recipe/food/fuegoburrito - name ="Fuego plasma burrito" + name = "Fuego plasma burrito" reqs = list( /obj/item/food/tortilla = 1, /obj/item/food/grown/ghost_chili = 2, /obj/item/food/grown/soybeans = 1 ) result = /obj/item/food/fuegoburrito - category = CAT_MEXICAN + cuisine_category = CUISINE_MEXICAN + dish_category = DISH_BURRITO /datum/crafting_recipe/food/nachos - name ="Nachos" + name = "Nachos" reqs = list( /datum/reagent/consumable/salt = 1, /obj/item/food/tortilla = 1 ) result = /obj/item/food/nachos - category = CAT_MEXICAN + added_foodtypes = FRIED + cuisine_category = CUISINE_MEXICAN + meal_category = MEAL_APPETIZER /datum/crafting_recipe/food/cheesynachos - name ="Cheesy nachos" + name = "Cheesy nachos" reqs = list( /datum/reagent/consumable/salt = 1, /obj/item/food/cheese/wedge = 1, /obj/item/food/tortilla = 1 ) result = /obj/item/food/cheesynachos - category = CAT_MEXICAN + added_foodtypes = FRIED + cuisine_category = CUISINE_MEXICAN + meal_category = MEAL_APPETIZER /datum/crafting_recipe/food/cubannachos - name ="Cuban nachos" + name = "Cuban nachos" reqs = list( /datum/reagent/consumable/ketchup = 5, /obj/item/food/grown/chili = 2, /obj/item/food/tortilla = 1 ) result = /obj/item/food/cubannachos - category = CAT_MEXICAN + added_foodtypes = FRIED + cuisine_category = CUISINE_MEXICAN + meal_category = MEAL_APPETIZER /datum/crafting_recipe/food/taco name ="Classic Taco" @@ -80,7 +90,8 @@ /obj/item/food/grown/cabbage = 1, ) result = /obj/item/food/taco - category = CAT_MEXICAN + cuisine_category = CUISINE_MEXICAN + dish_category = DISH_TACO /datum/crafting_recipe/food/tacoplain name ="Plain Taco" @@ -90,7 +101,8 @@ /obj/item/food/meat/cutlet = 1, ) result = /obj/item/food/taco/plain - category = CAT_MEXICAN + cuisine_category = CUISINE_MEXICAN + dish_category = DISH_TACO /datum/crafting_recipe/food/enchiladas name = "Enchiladas" @@ -100,7 +112,8 @@ /obj/item/food/tortilla = 2 ) result = /obj/item/food/enchiladas - category = CAT_MEXICAN + cuisine_category = CUISINE_MEXICAN + dish_category = DISH_BURRITO /datum/crafting_recipe/food/stuffedlegion name = "Stuffed legion" @@ -112,7 +125,7 @@ /datum/reagent/consumable/capsaicin = 2 ) result = /obj/item/food/stuffedlegion - category = CAT_MEXICAN + cuisine_category = CUISINE_MEXICAN /datum/crafting_recipe/food/chipsandsalsa name = "Chips and salsa" @@ -123,7 +136,10 @@ /obj/item/food/grown/tomato = 1 ) result = /obj/item/food/chipsandsalsa - category = CAT_MEXICAN + removed_foodtypes = JUNKFOOD + cuisine_category = CUISINE_MEXICAN + dish_category = DISH_CONDIMENT + meal_category = MEAL_APPETIZER /datum/crafting_recipe/food/classic_chimichanga name = "Classic Chimichanga" @@ -134,7 +150,9 @@ /obj/item/food/grown/onion = 1, ) result = /obj/item/food/classic_chimichanga - category = CAT_MEXICAN + added_foodtypes = FRIED + cuisine_category = CUISINE_MEXICAN + dish_category = DISH_BURRITO /datum/crafting_recipe/food/vegetarian_chimichanga name = "Vegetarian Chimichanga" @@ -145,7 +163,9 @@ /obj/item/food/grown/chili = 1, ) result = /obj/item/food/vegetarian_chimichanga - category = CAT_MEXICAN + added_foodtypes = FRIED + cuisine_category = CUISINE_MEXICAN + dish_category = DISH_BURRITO /datum/crafting_recipe/food/classic_hard_shell_taco name = "Classic Hard-Shell Taco" @@ -157,7 +177,8 @@ /obj/item/food/grown/cabbage = 1, ) result = /obj/item/food/classic_hard_shell_taco - category = CAT_MEXICAN + cuisine_category = CUISINE_MEXICAN + dish_category = DISH_TACO /datum/crafting_recipe/food/plain_hard_shell_taco name = "Plain Hard-Shell Taco" @@ -166,7 +187,8 @@ /obj/item/food/meat/cutlet = 1, ) result = /obj/item/food/plain_hard_shell_taco - category = CAT_MEXICAN + cuisine_category = CUISINE_MEXICAN + dish_category = DISH_TACO /datum/crafting_recipe/food/refried_beans name = "Refried Beans" @@ -177,7 +199,8 @@ /obj/item/food/grown/onion = 1, ) result = /obj/item/food/refried_beans - category = CAT_MEXICAN + added_foodtypes = FRIED + cuisine_category = CUISINE_MEXICAN /datum/crafting_recipe/food/spanish_rice name = "Spanish Rice" @@ -189,7 +212,9 @@ /datum/reagent/consumable/blackpepper = 1, ) result = /obj/item/food/spanish_rice - category = CAT_MEXICAN + removed_foodtypes = BREAKFAST + cuisine_category = CUISINE_MEXICAN + dish_category = DISH_RICE /datum/crafting_recipe/food/pineapple_salsa name = "Pineapple salsa" @@ -200,4 +225,6 @@ /obj/item/food/grown/chili = 1, ) result = /obj/item/food/pineapple_salsa - category = CAT_MEXICAN + cuisine_category = CUISINE_MEXICAN + meal_category = MEAL_APPETIZER + dish_category = DISH_CONDIMENT diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_misc.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_misc.dm index 9e145500a17c..2bbda2a29f1b 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_misc.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_misc.dm @@ -10,7 +10,9 @@ /obj/item/food/grown/apple = 1 ) result = /obj/item/food/candiedapple - category = CAT_MISCFOOD + added_foodtypes = JUNKFOOD|SUGAR + dish_category = DISH_CANDY + meal_category = MEAL_DESSERT /datum/crafting_recipe/food/spiderlollipop name = "Spider Lollipop" @@ -20,7 +22,10 @@ /obj/item/food/spiderling = 1 ) result = /obj/item/food/spiderlollipop - category = CAT_MISCFOOD + added_foodtypes = JUNKFOOD|SUGAR + removed_foodtypes = TOXIC + dish_category = DISH_CANDY + meal_category = MEAL_DESSERT /datum/crafting_recipe/food/chococoin name = "Choco coin" @@ -29,7 +34,8 @@ /obj/item/food/chocolatebar = 1, ) result = /obj/item/food/chococoin - category = CAT_MISCFOOD + dish_category = DISH_CANDY + meal_category = MEAL_DESSERT /datum/crafting_recipe/food/fudgedice name = "Fudge dice" @@ -38,7 +44,8 @@ /obj/item/food/chocolatebar = 1, ) result = /obj/item/food/fudgedice - category = CAT_MISCFOOD + dish_category = DISH_CANDY + meal_category = MEAL_DESSERT /datum/crafting_recipe/food/chocoorange name = "Choco orange" @@ -47,7 +54,8 @@ /obj/item/food/chocolatebar = 1, ) result = /obj/item/food/chocoorange - category = CAT_MISCFOOD + dish_category = DISH_CANDY + meal_category = MEAL_DESSERT /datum/crafting_recipe/food/cheesyfries name = "Cheesy fries" @@ -56,7 +64,7 @@ /obj/item/food/cheese/wedge = 1 ) result = /obj/item/food/cheesyfries - category = CAT_MISCFOOD + meal_category = MEAL_APPETIZER /datum/crafting_recipe/food/poutine name = "Poutine" @@ -66,7 +74,8 @@ /datum/reagent/consumable/gravy = 3 ) result = /obj/item/food/poutine - category = CAT_MISCFOOD + added_foodtypes = MEAT + meal_category = MEAL_APPETIZER /datum/crafting_recipe/food/beans name = "Beans" @@ -75,7 +84,7 @@ /obj/item/food/grown/soybeans = 2 ) result = /obj/item/food/canned/beans - category = CAT_MISCFOOD + dish_category = DISH_UNCATEGORIZED /datum/crafting_recipe/food/eggplantparm name ="Eggplant parmigiana" @@ -84,7 +93,8 @@ /obj/item/food/grown/eggplant = 1 ) result = /obj/item/food/eggplantparm - category = CAT_MISCFOOD + dish_category = DISH_SALAD // ?? + cuisine_category = CUISINE_ITALIAN /datum/crafting_recipe/food/melonkeg name ="Melon keg" @@ -95,7 +105,8 @@ ) parts = list(/obj/item/reagent_containers/cup/glass/bottle/vodka = 1) result = /obj/item/food/melonkeg - category = CAT_MISCFOOD + added_foodtypes = ALCOHOL + dish_category = DISH_UNCATEGORIZED /datum/crafting_recipe/food/honeybar name = "Honey nut bar" @@ -104,7 +115,8 @@ /datum/reagent/consumable/honey = 5 ) result = /obj/item/food/honeybar - category = CAT_MISCFOOD + added_foodtypes = SUGAR + dish_category = DISH_UNCATEGORIZED /datum/crafting_recipe/food/powercrepe name = "Powercrepe" @@ -117,7 +129,8 @@ /obj/item/melee/sabre = 1 ) result = /obj/item/food/powercrepe - category = CAT_MISCFOOD + added_foodtypes = FRUIT|SUGAR + dish_category = DISH_PASTRY /datum/crafting_recipe/food/branrequests name = "Bran Requests Cereal" @@ -126,7 +139,8 @@ /obj/item/food/no_raisin = 1, ) result = /obj/item/food/branrequests - category = CAT_MISCFOOD + removed_foodtypes = JUNKFOOD + added_foodtypes = BREAKFAST /datum/crafting_recipe/food/ricepudding name = "Rice pudding" @@ -137,7 +151,9 @@ /obj/item/food/boiledrice = 1 ) result = /obj/item/food/salad/ricepudding - category = CAT_MISCFOOD + added_foodtypes = DAIRY|SUGAR + removed_foodtypes = BREAKFAST + meal_category = MEAL_DESSERT /datum/crafting_recipe/food/risotto name = "Risotto" @@ -149,7 +165,8 @@ /obj/item/food/grown/mushroom/chanterelle = 1 ) result = /obj/item/food/salad/risotto - category = CAT_MISCFOOD + removed_foodtypes = BREAKFAST + dish_category = DISH_SALAD /datum/crafting_recipe/food/butterbear //ITS ALIVEEEEEE! name = "Living bear/butter hybrid" @@ -162,7 +179,8 @@ /datum/reagent/teslium = 1 //To shock the whole thing into life ) result = /mob/living/basic/bear/butter - category = CAT_MISCFOOD + dish_category = DISH_UNCATEGORIZED + meal_category = MEAL_UNCATEGORIZED /datum/crafting_recipe/food/crab_rangoon name = "Crab Rangoon" @@ -173,7 +191,8 @@ /obj/item/food/meat/slab/rawcrab = 1 ) result = /obj/item/food/crab_rangoon - category = CAT_SEAFOOD + removed_foodtypes = RAW + meal_category = MEAL_APPETIZER /datum/crafting_recipe/food/royalcheese name = "Royal Cheese" @@ -184,7 +203,7 @@ /datum/reagent/toxin/mutagen = 5 ) result = /obj/item/food/cheese/royal - category = CAT_MISCFOOD + dish_category = DISH_UNCATEGORIZED /datum/crafting_recipe/food/ant_candy name = "Ant Candy" @@ -194,7 +213,8 @@ /datum/reagent/ants = 10 ) result = /obj/item/food/ant_candy - category = CAT_MISCFOOD + dish_category = DISH_CANDY + meal_category = MEAL_DESSERT /datum/crafting_recipe/food/pesto name = "Pesto" @@ -207,7 +227,8 @@ /obj/item/food/canned/pine_nuts = 1 ) result = /obj/item/food/pesto - category = CAT_MISCFOOD + dish_category = DISH_CONDIMENT + meal_category = MEAL_COMPONENT /datum/crafting_recipe/food/tomato_sauce name = "Tomato sauce" @@ -218,7 +239,8 @@ /datum/reagent/consumable/nutriment/fat/oil/olive = 5 ) result = /obj/item/food/tomato_sauce - category = CAT_MISCFOOD + dish_category = DISH_CONDIMENT + meal_category = MEAL_COMPONENT /datum/crafting_recipe/food/bechamel_sauce name = "Bechamel sauce" @@ -228,7 +250,9 @@ /obj/item/food/butterslice = 1 ) result = /obj/item/food/bechamel_sauce - category = CAT_MISCFOOD + added_foodtypes = GRAIN + dish_category = DISH_CONDIMENT + meal_category = MEAL_COMPONENT /datum/crafting_recipe/food/pierogi name = "Pierogi" @@ -238,7 +262,7 @@ /obj/item/food/grown/onion = 1, ) result = /obj/item/food/pierogi - category = CAT_MISCFOOD + meal_category = MEAL_APPETIZER /datum/crafting_recipe/food/stuffed_cabbage name = "Stuffed cabbage" @@ -249,7 +273,8 @@ /obj/item/food/grown/tomato = 1, ) result = /obj/item/food/stuffed_cabbage - category = CAT_MISCFOOD + removed_foodtypes = BREAKFAST + dish_category = DISH_SALAD /datum/crafting_recipe/food/granola_bar name = "Granola bar" @@ -260,7 +285,8 @@ /obj/item/food/no_raisin = 1, ) result = /obj/item/food/granola_bar - category = CAT_MISCFOOD + removed_foodtypes = JUNKFOOD + dish_category = DISH_UNCATEGORIZED /datum/crafting_recipe/food/onigiri name = "Onigiri" @@ -269,7 +295,8 @@ /obj/item/food/seaweedsheet = 1, ) result = /obj/item/food/onigiri - category = CAT_MISCFOOD + removed_foodtypes = BREAKFAST + meal_category = MEAL_APPETIZER /datum/crafting_recipe/food/mashed_potatoes name = "Mashed potatoes" @@ -279,7 +306,7 @@ /obj/item/food/butterslice = 1, ) result = /obj/item/food/mashed_potatoes - category = CAT_MISCFOOD + dish_category = DISH_UNCATEGORIZED /datum/crafting_recipe/food/pacoca name = "Paçoca" @@ -289,7 +316,8 @@ /datum/reagent/consumable/salt = 2, ) result = /obj/item/food/pacoca - category = CAT_MISCFOOD + added_foodtypes = SUGAR + dish_category = DISH_CANDY /datum/crafting_recipe/food/springroll name = "Spring roll" @@ -301,7 +329,9 @@ /datum/reagent/water = 10, ) result = /obj/item/food/springroll - category = CAT_MISCFOOD + added_foodtypes = GRAIN + meal_category = MEAL_APPETIZER + // cuisine_category = CUISINE_CHINESE /datum/crafting_recipe/food/caramel_popcorn name = "Caramel popcorn" @@ -310,7 +340,9 @@ /datum/reagent/consumable/caramel = 3, ) result = /obj/item/food/popcorn/caramel - category = CAT_MISCFOOD + added_foodtypes = SUGAR + dish_category = DISH_CANDY + meal_category = MEAL_SNACK /datum/crafting_recipe/food/salty_popcorn name = "Salty popcorn" @@ -319,7 +351,7 @@ /datum/reagent/consumable/salt = 3, ) result = /obj/item/food/popcorn/salty - category = CAT_MISCFOOD + meal_category = MEAL_SNACK /datum/crafting_recipe/food/spacylibertyduff name = "Spacy liberty duff" @@ -329,7 +361,7 @@ /obj/item/food/grown/mushroom/libertycap = 3 ) result = /obj/item/food/bowled/spacylibertyduff - category = CAT_MISCFOOD + meal_category = MEAL_DESSERT // jello /datum/crafting_recipe/food/amanitajelly name = "Amanita jelly" @@ -339,7 +371,8 @@ /obj/item/food/grown/mushroom/amanita = 3 ) result = /obj/item/food/bowled/amanitajelly - category = CAT_MISCFOOD + added_foodtypes = TOXIC + meal_category = MEAL_DESSERT // jello /datum/crafting_recipe/food/buttered_baked_potato name = "Buttered baked potato" @@ -348,7 +381,7 @@ /obj/item/food/butterslice = 1, ) result = /obj/item/food/buttered_baked_potato - category = CAT_MISCFOOD + dish_category = DISH_UNCATEGORIZED /datum/crafting_recipe/food/loaded_baked_potato name = "Loaded baked potato" @@ -359,7 +392,8 @@ /obj/item/food/grown/cabbage = 1, ) result = /obj/item/food/loaded_baked_potato - category = CAT_MISCFOOD + removed_foodtypes = BREAKFAST + dish_category = DISH_UNCATEGORIZED /datum/crafting_recipe/food/cheese_pierogi name = "Cheese pierogi" @@ -369,7 +403,7 @@ /obj/item/food/cheese/wedge = 1, ) result = /obj/item/food/cheese_pierogi - category = CAT_MISCFOOD + meal_category = MEAL_APPETIZER /datum/crafting_recipe/food/meat_pierogi name = "Meat pierogi" @@ -379,7 +413,7 @@ /obj/item/food/meat/cutlet = 1, ) result = /obj/item/food/meat_pierogi - category = CAT_MISCFOOD + meal_category = MEAL_APPETIZER /datum/crafting_recipe/food/bonbon/caramel_truffle name = "Caramel truffle" @@ -388,7 +422,7 @@ /datum/reagent/consumable/caramel = 2, ) result = /obj/item/food/bonbon/caramel_truffle - category = CAT_MISCFOOD + meal_category = MEAL_DESSERT /datum/crafting_recipe/food/bonbon/chocolate_truffle name = "Chocolate truffle" @@ -397,7 +431,7 @@ /datum/reagent/consumable/sugar = 2, ) result = /obj/item/food/bonbon/chocolate_truffle - category = CAT_MISCFOOD + meal_category = MEAL_DESSERT /datum/crafting_recipe/food/bonbon/peanut_truffle name = "Peanut truffle" @@ -406,7 +440,7 @@ /obj/item/food/grown/peanut = 1, ) result = /obj/item/food/bonbon/peanut_truffle - category = CAT_MISCFOOD + meal_category = MEAL_DESSERT /datum/crafting_recipe/food/bonbon/peanut_butter_cup name = "Peanut butter cup" @@ -415,7 +449,8 @@ /datum/reagent/consumable/peanut_butter = 2, ) result = /obj/item/food/bonbon/peanut_butter_cup - category = CAT_MISCFOOD + added_foodtypes = NUTS + dish_category = DISH_CANDY /datum/crafting_recipe/pickles_jar name = "Jar of pickles" @@ -425,7 +460,7 @@ /datum/reagent/water/salt = 20, ) result = /obj/item/storage/fancy/pickles_jar - category = CAT_MISCFOOD + category = CAT_FOOD delete_contents = FALSE /datum/crafting_recipe/food/sauteed_eggplant @@ -436,7 +471,7 @@ /datum/reagent/consumable/nutriment/fat/oil/olive = 3, ) result = /obj/item/food/sauteed_eggplant - category = CAT_MISCFOOD + meal_category = MEAL_APPETIZER /datum/crafting_recipe/food/stuffed_eggplant name = "Stuffed eggplant" @@ -448,7 +483,7 @@ /obj/item/food/meat/cutlet = 1, ) result = /obj/item/food/stuffed_eggplant - category = CAT_MISCFOOD + dish_category = DISH_SALAD /datum/crafting_recipe/food/baba_ghanoush name = "Baba ghanoush" @@ -461,7 +496,7 @@ /datum/reagent/consumable/lemonjuice = 3, ) result = /obj/item/food/baba_ghanoush - category = CAT_MISCFOOD + dish_category = DISH_CONDIMENT /datum/crafting_recipe/food/moussaka name = "Moussaka" @@ -473,7 +508,7 @@ /obj/item/food/bechamel_sauce = 1, ) result = /obj/item/food/moussaka - category = CAT_MISCFOOD + dish_category = DISH_UNCATEGORIZED /datum/crafting_recipe/food/falafel name = "Falafel" @@ -484,7 +519,7 @@ /obj/item/food/grown/herbs = 1, ) result = /obj/item/food/falafel - category = CAT_MISCFOOD + dish_category = DISH_UNCATEGORIZED /datum/crafting_recipe/food/candied_pineapple name = "Candied pineapple" @@ -494,7 +529,8 @@ /datum/reagent/water = 2, ) result = /obj/item/food/candied_pineapple - category = CAT_MISCFOOD + added_foodtypes = SUGAR + meal_category = MEAL_DESSERT /datum/crafting_recipe/food/tzatziki_sauce name = "Tzatziki sauce" @@ -505,7 +541,7 @@ /datum/reagent/consumable/salt = 1, ) result = /obj/item/food/tzatziki_sauce - category = CAT_MISCFOOD + meal_category = MEAL_COMPONENT /datum/crafting_recipe/food/tzatziki_and_pita_bread name = "Tzatziki and pita bread" @@ -514,7 +550,7 @@ /obj/item/food/pita_bread = 1, ) result = /obj/item/food/tzatziki_and_pita_bread - category = CAT_MISCFOOD + dish_category = DISH_BREAD /datum/crafting_recipe/food/grilled_beef_gyro name = "Grilled beef gyro" @@ -527,7 +563,7 @@ /obj/item/food/grown/onion = 1, ) result = /obj/item/food/grilled_beef_gyro - category = CAT_MISCFOOD + dish_category = DISH_BURRITO /datum/crafting_recipe/food/vegetarian_gyro name = "Vegetarian gyro" @@ -540,7 +576,7 @@ /obj/item/food/grown/onion = 1, ) result = /obj/item/food/vegetarian_gyro - category = CAT_MISCFOOD + dish_category = DISH_BURRITO /datum/crafting_recipe/food/raw_pita_bread name = "Raw pita bread" @@ -551,4 +587,4 @@ /datum/reagent/consumable/sugar = 2, ) result = /obj/item/food/raw_pita_bread - category = CAT_MISCFOOD + dish_category = DISH_BREAD diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_moth.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_moth.dm index 30b4eff80666..a973da2976e0 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_moth.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_moth.dm @@ -5,7 +5,8 @@ /obj/item/food/grown/herbs = 4 ) result = /obj/item/food/herby_cheese - category = CAT_MOTH + cuisine_category = CUISINE_MOTHIC + meal_category = MEAL_COMPONENT /datum/crafting_recipe/food/mothic_salad name = "Mothic salad" @@ -15,7 +16,8 @@ /obj/item/food/grown/tomato = 1 ) result = /obj/item/food/mothic_salad - category = CAT_MOTH + cuisine_category = CUISINE_MOTHIC + dish_category = DISH_SALAD /datum/crafting_recipe/food/toasted_seeds name = "Toasted seeds" @@ -26,7 +28,8 @@ /datum/reagent/consumable/nutriment/fat/oil/olive = 2 ) result = /obj/item/food/toasted_seeds - category = CAT_MOTH + cuisine_category = CUISINE_MOTHIC + meal_category = MEAL_SNACK crafting_flags = parent_type::crafting_flags & ~CRAFT_CLEARS_REAGENTS // seeds don't have nutriment /datum/crafting_recipe/food/engine_fodder @@ -39,7 +42,8 @@ /obj/item/food/chips = 1 ) result = /obj/item/food/engine_fodder - category = CAT_MOTH + cuisine_category = CUISINE_MOTHIC + meal_category = MEAL_SNACK /datum/crafting_recipe/food/squeaking_stir_fry name = "Skeklitmischtpoppl (Squeaking stir fry)" @@ -53,7 +57,9 @@ /obj/item/food/onion_slice = 1 ) result = /obj/item/food/squeaking_stir_fry - category = CAT_MOTH + removed_foodtypes = BREAKFAST + cuisine_category = CUISINE_MOTHIC + dish_category = DISH_SALAD /datum/crafting_recipe/food/sweet_chili_cabbage_wrap name = "Sweet chili cabbage wrap" @@ -65,7 +71,8 @@ /datum/reagent/consumable/honey = 5 ) result = /obj/item/food/sweet_chili_cabbage_wrap - category = CAT_MOTH + cuisine_category = CUISINE_MOTHIC + dish_category = DISH_BURRITO /datum/crafting_recipe/food/loaded_curds name = "Ozlsettitæloskekllön ede pommes (Loaded curds and fries)" @@ -77,7 +84,8 @@ /obj/item/food/fries = 1 ) result = /obj/item/food/loaded_curds - category = CAT_MOTH + cuisine_category = CUISINE_MOTHIC + meal_category = MEAL_APPETIZER /datum/crafting_recipe/food/baked_cheese_platter name = "Stanntkraktælo (Baked cheese platter)" @@ -86,7 +94,7 @@ /obj/item/food/griddle_toast = 3 ) result = /obj/item/food/baked_cheese_platter - category = CAT_MOTH + cuisine_category = CUISINE_MOTHIC /datum/crafting_recipe/food/raw_green_lasagne reqs = list( @@ -96,7 +104,9 @@ /obj/item/food/cheese/firm_cheese_slice = 1 ) result = /obj/item/food/raw_green_lasagne - category = CAT_MOTH + added_foodtypes = RAW + cuisine_category = CUISINE_MOTHIC + dish_category = DISH_NOODLES /datum/crafting_recipe/food/raw_baked_rice reqs = list( @@ -107,7 +117,10 @@ /obj/item/food/grown/potato = 2, ) result = /obj/item/food/raw_baked_rice - category = CAT_MOTH + removed_foodtypes = BREAKFAST + added_foodtypes = RAW + cuisine_category = CUISINE_MOTHIC + dish_category = DISH_RICE /datum/crafting_recipe/food/buttered_baked_corn name = "Buttered baked corn" @@ -116,7 +129,7 @@ /obj/item/food/butterslice = 1 ) result = /obj/item/food/buttered_baked_corn - category = CAT_MOTH + cuisine_category = CUISINE_MOTHIC /datum/crafting_recipe/food/fiesta_corn_skillet name = "Fiesta corn skillet" @@ -129,7 +142,8 @@ /obj/item/food/cheese/wedge = 1 ) result = /obj/item/food/fiesta_corn_skillet - category = CAT_MOTH + cuisine_category = CUISINE_MOTHIC + dish_category = DISH_SALAD /datum/crafting_recipe/food/ratatouille reqs = list( @@ -139,27 +153,29 @@ /obj/item/food/roasted_bell_pepper = 1 ) result = /obj/item/food/raw_ratatouille - category = CAT_MOTH + cuisine_category = CUISINE_MOTHIC + dish_category = DISH_SALAD /datum/crafting_recipe/food/mozzarella_sticks name = "Mozzarella sticks" reqs = list( /obj/item/food/cheese/mozzarella = 1, /obj/item/food/breadslice/plain = 2, - /obj/item/food/tomato_sauce = 1 ) result = /obj/item/food/mozzarella_sticks - category = CAT_MOTH + added_foodtypes = FRIED + meal_category = MEAL_APPETIZER /datum/crafting_recipe/food/raw_stuffed_peppers - name = "Voltölpapriken (Stuffed peppers)" + name = "Raw Voltölpapriken (Stuffed peppers)" reqs = list( /obj/item/food/grown/bell_pepper = 1, /obj/item/food/herby_cheese = 1, /obj/item/food/onion_slice = 2 ) result = /obj/item/food/raw_stuffed_peppers - category = CAT_MOTH + cuisine_category = CUISINE_MOTHIC + meal_category = MEAL_COMPONENT /datum/crafting_recipe/food/fueljacks_lunch name = "Fueljack's lunch" @@ -171,7 +187,7 @@ /obj/item/food/cheese/firm_cheese_slice = 1 ) result = /obj/item/food/fueljacks_lunch - category = CAT_MOTH + cuisine_category = CUISINE_MOTHIC /datum/crafting_recipe/food/mac_balls name = "Macheronirölen (Mac balls)" @@ -181,7 +197,10 @@ /datum/reagent/consumable/cornmeal_batter = 5 ) result = /obj/item/food/mac_balls - category = CAT_MOTH + removed_foodtypes = JUNKFOOD + added_foodtypes = FRIED + cuisine_category = CUISINE_MOTHIC + meal_category = MEAL_APPETIZER /datum/crafting_recipe/food/hua_mulan_congee name = "Hua Mulan congee" @@ -191,7 +210,10 @@ /obj/item/food/friedegg = 2 ) result = /obj/item/food/bowled/hua_mulan_congee - category = CAT_MOTH + removed_foodtypes = BREAKFAST + added_foodtypes = GRAIN + cuisine_category = CUISINE_MOTHIC + dish_category = DISH_RICE /datum/crafting_recipe/food/fried_eggplant_polenta name = "Fried eggplant and polenta" @@ -203,7 +225,8 @@ /obj/item/food/cheese/mozzarella = 1 ) result = /obj/item/food/bowled/fried_eggplant_polenta - category = CAT_MOTH + cuisine_category = CUISINE_MOTHIC + dish_category = DISH_SALAD /datum/crafting_recipe/food/caprese_salad name = "Caprese salad" @@ -215,7 +238,8 @@ /datum/reagent/consumable/vinegar = 2 ) result = /obj/item/food/caprese_salad - category = CAT_MOTH + cuisine_category = CUISINE_MOTHIC + dish_category = DISH_SALAD /datum/crafting_recipe/food/fleet_salad name = "Lörtonknusksolt (Fleet salad)" @@ -229,7 +253,8 @@ /obj/item/reagent_containers/cup/bowl = 1, ) result = /obj/item/food/salad/fleet_salad - category = CAT_MOTH + cuisine_category = CUISINE_MOTHIC + dish_category = DISH_SALAD /datum/crafting_recipe/food/cotton_salad name = "Flöfrölenknusksolt (Cotton salad)" @@ -242,7 +267,9 @@ /obj/item/reagent_containers/cup/bowl = 1, ) result = /obj/item/food/salad/cotton_salad - category = CAT_MOTH + added_foodtypes = CLOTH + cuisine_category = CUISINE_MOTHIC + dish_category = DISH_SALAD /datum/crafting_recipe/food/moth_kachumbari name = "Kæniatknusksolt (Kenyan salad)" @@ -256,7 +283,8 @@ /obj/item/reagent_containers/cup/bowl = 1, ) result = /obj/item/food/salad/moth_kachumbari - category = CAT_MOTH + cuisine_category = CUISINE_MOTHIC + dish_category = DISH_SALAD /datum/crafting_recipe/food/raw_mothic_margherita reqs = list( @@ -267,7 +295,9 @@ /obj/item/food/grown/herbs = 1 ) result = /obj/item/food/raw_mothic_margherita - category = CAT_PIZZA + added_foodtypes = RAW + cuisine_category = CUISINE_MOTHIC + dish_category = DISH_PIZZA /datum/crafting_recipe/food/raw_mothic_firecracker reqs = list( @@ -278,7 +308,9 @@ /obj/item/food/grown/ghost_chili = 1 ) result = /obj/item/food/raw_mothic_firecracker - category = CAT_PIZZA + added_foodtypes = RAW + cuisine_category = CUISINE_MOTHIC + dish_category = DISH_PIZZA /datum/crafting_recipe/food/raw_mothic_five_cheese reqs = list( @@ -291,7 +323,9 @@ /obj/item/food/cheese/cheese_curds = 1 ) result = /obj/item/food/raw_mothic_five_cheese - category = CAT_PIZZA + added_foodtypes = RAW + cuisine_category = CUISINE_MOTHIC + dish_category = DISH_PIZZA /datum/crafting_recipe/food/raw_mothic_white_pie reqs = list( @@ -303,7 +337,9 @@ /obj/item/food/grown/herbs = 1 ) result = /obj/item/food/raw_mothic_white_pie - category = CAT_PIZZA + added_foodtypes = RAW + cuisine_category = CUISINE_MOTHIC + dish_category = DISH_PIZZA /datum/crafting_recipe/food/raw_mothic_pesto reqs = list( @@ -313,7 +349,9 @@ /obj/item/food/cheese/mozzarella = 1 ) result = /obj/item/food/raw_mothic_pesto - category = CAT_PIZZA + added_foodtypes = RAW + cuisine_category = CUISINE_MOTHIC + dish_category = DISH_PIZZA /datum/crafting_recipe/food/raw_mothic_garlic reqs = list( @@ -323,7 +361,9 @@ /obj/item/food/grown/herbs = 1 ) result = /obj/item/food/raw_mothic_garlic - category = CAT_PIZZA + added_foodtypes = RAW + cuisine_category = CUISINE_MOTHIC + dish_category = DISH_PIZZA /datum/crafting_recipe/food/moth_cheese_cakes name = "Ælorölen (Cheesecake balls)" @@ -335,7 +375,10 @@ /datum/reagent/consumable/honey = 5 ) result = /obj/item/food/moth_cheese_cakes - category = CAT_MOTH + added_foodtypes = GRAIN|FRIED + removed_foodtypes = JUNKFOOD + cuisine_category = CUISINE_MOTHIC + meal_category = MEAL_DESSERT /datum/crafting_recipe/food/mothmallow name = "Mothmallows" @@ -346,7 +389,9 @@ /datum/reagent/consumable/ethanol/rum = 5 ) result = /obj/item/food/cake/mothmallow - category = CAT_MOTH + added_foodtypes = SUGAR + cuisine_category = CUISINE_MOTHIC + meal_category = MEAL_DESSERT /datum/crafting_recipe/food/moffin name = "Moffin" @@ -356,62 +401,65 @@ /obj/item/stack/sheet/cloth = 1, ) result = /obj/item/food/muffin/moffin - category = CAT_MOTH + added_foodtypes = CLOTH|SUGAR|BREAKFAST + cuisine_category = CUISINE_MOTHIC + dish_category = DISH_PASTRY // Soups /datum/crafting_recipe/food/reaction/soup/cottonball name = "Flöfrölenmæsch (cottonball soup)" reaction = /datum/chemical_reaction/food/soup/cottonball - category = CAT_MOTH + cuisine_category = CUISINE_MOTHIC /datum/crafting_recipe/food/reaction/soup/cheese name = "Ælosterrmæsch (cheese soup)" reaction = /datum/chemical_reaction/food/soup/cheese - category = CAT_MOTH + cuisine_category = CUISINE_MOTHIC /datum/crafting_recipe/food/reaction/soup/seed name = "Misklmæsch (seed soup)" reaction = /datum/chemical_reaction/food/soup/seed - category = CAT_MOTH + cuisine_category = CUISINE_MOTHIC /datum/crafting_recipe/food/reaction/soup/beans name = "Prickeldröndolhaskl (spicy bean stew)" reaction = /datum/chemical_reaction/food/soup/beans - category = CAT_MOTH + cuisine_category = CUISINE_MOTHIC /datum/crafting_recipe/food/reaction/soup/moth_oats name = "Häfmisklhaskl (oat stew)" reaction = /datum/chemical_reaction/food/soup/moth_oats - category = CAT_MOTH + cuisine_category = CUISINE_MOTHIC /datum/crafting_recipe/food/reaction/soup/fire_soup name = "Tömpröttkrakklmæsch (heartburn soup)" reaction = /datum/chemical_reaction/food/soup/fire_soup - category = CAT_MOTH + cuisine_category = CUISINE_MOTHIC /datum/crafting_recipe/food/reaction/soup/rice_porridge reaction = /datum/chemical_reaction/food/soup/rice_porridge - category = CAT_MOTH + cuisine_category = CUISINE_MOTHIC /datum/crafting_recipe/food/reaction/soup/toechtauese_rice_porridge reaction = /datum/chemical_reaction/food/soup/toechtauese_rice_porridge - category = CAT_MOTH + cuisine_category = CUISINE_MOTHIC + dish_category = DISH_RICE /datum/crafting_recipe/food/reaction/soup/red_porridge name = "Eltsløsk ül a priktæolk (red porridge and yoghurt)" reaction = /datum/chemical_reaction/food/soup/red_porridge - category = CAT_MOTH + cuisine_category = CUISINE_MOTHIC /datum/crafting_recipe/food/reaction/soup/cornmeal_porridge reaction = /datum/chemical_reaction/food/soup/cornmeal_porridge - category = CAT_MOTH + cuisine_category = CUISINE_MOTHIC /datum/crafting_recipe/food/reaction/soup/cheese_porridge reaction = /datum/chemical_reaction/food/soup/cheese_porridge - category = CAT_MOTH + cuisine_category = CUISINE_MOTHIC /datum/crafting_recipe/food/reaction/soup/chili_sin_carne name = "Chili Sin Carne (Vegetarian Chili)" reaction = /datum/chemical_reaction/food/soup/chili_sin_carne - category = CAT_MOTH + cuisine_category = CUISINE_MOTHIC diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_pastry.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_pastry.dm index 3ce319b1985a..ed6271242c7f 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_pastry.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_pastry.dm @@ -11,7 +11,9 @@ /obj/item/food/pastrybase = 1 ) result = /obj/item/food/donut/plain - category = CAT_PASTRY + added_foodtypes = JUNKFOOD|SUGAR|BREAKFAST|FRIED + removed_foodtypes = RAW + dish_category = DISH_PASTRY /datum/crafting_recipe/food/donut/chaos @@ -21,6 +23,7 @@ /datum/reagent/consumable/capsaicin = 5, /obj/item/food/pastrybase = 1 ) + added_foodtypes = JUNKFOOD|BREAKFAST|FRIED result = /obj/item/food/donut/chaos /datum/crafting_recipe/food/donut/meat @@ -30,6 +33,7 @@ /obj/item/food/meat/rawcutlet = 1, /obj/item/food/pastrybase = 1 ) + added_foodtypes = JUNKFOOD|BREAKFAST|FRIED|GORE result = /obj/item/food/donut/meat /datum/crafting_recipe/food/donut/jelly @@ -38,6 +42,7 @@ /datum/reagent/consumable/berryjuice = 5, /obj/item/food/pastrybase = 1 ) + added_foodtypes = parent_type::added_foodtypes|FRUIT result = /obj/item/food/donut/jelly/plain /datum/crafting_recipe/food/donut/slimejelly @@ -46,6 +51,7 @@ /datum/reagent/toxin/slimejelly = 5, /obj/item/food/pastrybase = 1 ) + added_foodtypes = parent_type::added_foodtypes|TOXIC result = /obj/item/food/donut/jelly/slimejelly/plain @@ -55,6 +61,7 @@ /datum/reagent/consumable/berryjuice = 3, /obj/item/food/donut/plain = 1 ) + added_foodtypes = parent_type::added_foodtypes|FRUIT result = /obj/item/food/donut/berry /datum/crafting_recipe/food/donut/trumpet @@ -72,6 +79,7 @@ /datum/reagent/consumable/applejuice = 3, /obj/item/food/donut/plain = 1 ) + added_foodtypes = parent_type::added_foodtypes|FRUIT result = /obj/item/food/donut/apple /datum/crafting_recipe/food/donut/caramel @@ -96,6 +104,7 @@ /datum/reagent/consumable/blumpkinjuice = 3, /obj/item/food/donut/plain = 1 ) + added_foodtypes = VEGETABLES result = /obj/item/food/donut/blumpkin /datum/crafting_recipe/food/donut/bungo @@ -171,6 +180,7 @@ /datum/reagent/consumable/blumpkinjuice = 3, /obj/item/food/donut/jelly/plain = 1 ) + added_foodtypes = parent_type::added_foodtypes|VEGETABLES result = /obj/item/food/donut/jelly/blumpkin /datum/crafting_recipe/food/donut/jelly/bungo @@ -205,6 +215,7 @@ /datum/reagent/consumable/berryjuice = 3, /obj/item/food/donut/jelly/slimejelly/plain = 1 ) + added_foodtypes = parent_type::added_foodtypes|FRUIT result = /obj/item/food/donut/jelly/slimejelly/berry /datum/crafting_recipe/food/donut/slimejelly/trumpet @@ -222,6 +233,7 @@ /datum/reagent/consumable/applejuice = 3, /obj/item/food/donut/jelly/slimejelly/plain = 1 ) + added_foodtypes = parent_type::added_foodtypes|FRUIT result = /obj/item/food/donut/jelly/slimejelly/apple /datum/crafting_recipe/food/donut/slimejelly/caramel @@ -246,6 +258,7 @@ /datum/reagent/consumable/blumpkinjuice = 3, /obj/item/food/donut/jelly/slimejelly/plain = 1 ) + added_foodtypes = parent_type::added_foodtypes|VEGETABLES result = /obj/item/food/donut/jelly/slimejelly/blumpkin /datum/crafting_recipe/food/donut/slimejelly/bungo @@ -281,7 +294,8 @@ /obj/item/food/pastrybase = 2 ) result = /obj/item/food/waffles - category = CAT_PASTRY + added_foodtypes = BREAKFAST + dish_category = DISH_BREAD /datum/crafting_recipe/food/soylenviridians @@ -290,8 +304,8 @@ /obj/item/food/pastrybase = 2, /obj/item/food/grown/soybeans = 1 ) - result = /obj/item/food/soylenviridians - category = CAT_PASTRY + result = /obj/item/food/soylenviridians // they look like waffles + dish_category = DISH_PASTRY /datum/crafting_recipe/food/soylentgreen name = "Soylent green" @@ -300,7 +314,8 @@ /obj/item/food/meat/slab/human = 2 ) result = /obj/item/food/soylentgreen - category = CAT_PASTRY + removed_foodtypes = GORE|RAW + dish_category = DISH_PASTRY // they look like waffles /datum/crafting_recipe/food/rofflewaffles @@ -310,7 +325,8 @@ /obj/item/food/pastrybase = 2 ) result = /obj/item/food/rofflewaffles - category = CAT_PASTRY + added_foodtypes = VEGETABLES|BREAKFAST + dish_category = DISH_BREAD ////////////////////////////////////////////////DONKPOCCKETS//////////////////////////////////////////////// @@ -318,86 +334,131 @@ time = 15 name = "Donk-pocket" reqs = list( - /obj/item/food/pastrybase = 1, + /obj/item/food/doughslice = 1, /obj/item/food/meatball = 1 ) - result = /obj/item/food/donkpocket - category = CAT_PASTRY + result = /obj/item/food/donkpocket/homemade + dish_category = DISH_PASTRY + meal_category = MEAL_APPETIZER /datum/crafting_recipe/food/dankpocket time = 15 name = "Dank-pocket" reqs = list( - /obj/item/food/pastrybase = 1, + /obj/item/food/doughslice = 1, /obj/item/food/grown/cannabis = 1 ) - result = /obj/item/food/dankpocket - category = CAT_PASTRY + result = /obj/item/food/donkpocket/dank + dish_category = DISH_PASTRY /datum/crafting_recipe/food/donkpocket/spicy time = 15 name = "Spicy-pocket" reqs = list( - /obj/item/food/pastrybase = 1, + /obj/item/food/doughslice = 1, /obj/item/food/meatball = 1, /obj/item/food/grown/chili = 1 ) - result = /obj/item/food/donkpocket/spicy - category = CAT_PASTRY + result = /obj/item/food/donkpocket/spicy/homemade + dish_category = DISH_PASTRY /datum/crafting_recipe/food/donkpocket/teriyaki time = 15 name = "Teriyaki-pocket" reqs = list( - /obj/item/food/pastrybase = 1, + /obj/item/food/doughslice = 1, /obj/item/food/meatball = 1, /datum/reagent/consumable/soysauce = 3 ) - result = /obj/item/food/donkpocket/teriyaki - category = CAT_PASTRY + result = /obj/item/food/donkpocket/teriyaki/homemade + dish_category = DISH_PASTRY /datum/crafting_recipe/food/donkpocket/pizza time = 15 name = "Pizza-pocket" reqs = list( - /obj/item/food/pastrybase = 1, - /obj/item/food/meatball = 1, + /obj/item/food/doughslice = 1, + /obj/item/food/cheese/wedge = 1, /obj/item/food/grown/tomato = 1 ) result = /obj/item/food/donkpocket/pizza - category = CAT_PASTRY + dish_category = DISH_PASTRY /datum/crafting_recipe/food/donkpocket/honk time = 15 name = "Honk-Pocket" reqs = list( - /obj/item/food/pastrybase = 1, + /obj/item/food/doughslice = 1, /obj/item/food/grown/banana = 1, /datum/reagent/consumable/sugar = 3 ) result = /obj/item/food/donkpocket/honk - category = CAT_PASTRY + added_foodtypes = FRUIT|SUGAR + dish_category = DISH_PASTRY /datum/crafting_recipe/food/donkpocket/berry time = 15 name = "Berry-pocket" reqs = list( - /obj/item/food/pastrybase = 1, + /obj/item/food/doughslice = 1, /obj/item/food/grown/berries = 1 ) result = /obj/item/food/donkpocket/berry - category = CAT_PASTRY + added_foodtypes = FRUIT|SUGAR + dish_category = DISH_PASTRY /datum/crafting_recipe/food/donkpocket/gondola time = 15 name = "Gondola-pocket" reqs = list( - /obj/item/food/pastrybase = 1, + /obj/item/food/doughslice = 1, /obj/item/food/meatball = 1, /datum/reagent/gondola_mutation_toxin = 5 ) result = /obj/item/food/donkpocket/gondola - category = CAT_PASTRY + dish_category = DISH_PASTRY + +/* +/datum/crafting_recipe/food/donkpocket/deluxe + time = 15 + name = "Deluxe Donk-pocket" + reqs = list( + /obj/item/food/doughslice = 1, + /obj/item/food/meatball = 1, + /obj/item/food/meat/bacon = 1, + /obj/item/food/onion_slice/red = 1 + ) + result = /obj/item/food/donkpocket/deluxe + dish_category = DISH_PASTRY + removed_foodtypes = BREAKFAST + crafting_flags = parent_type::crafting_flags | CRAFT_MUST_BE_LEARNED + +/datum/crafting_recipe/food/donkpocket/deluxe/nocarb + time = 15 + name = "Deluxe Meat-pocket" + reqs = list( + /obj/item/organ/heart = 1, + /obj/item/food/meatball = 1, + /obj/item/food/meat/slab = 1, + /obj/item/food/grown/herbs = 1 + ) + result = /obj/item/food/donkpocket/deluxe/nocarb + removed_foodtypes = VEGETABLES //The herbs are only to enhance the flavor + dish_category = DISH_PASTRY + +/datum/crafting_recipe/food/donkpocket/deluxe/vegan + time = 15 + name = "Deluxe Donk-roll" + reqs = list( + /obj/item/food/doughslice = 1, + /obj/item/food/boiledrice = 1, + /obj/item/food/grown/bell_pepper = 1, + /obj/item/food/tofu = 2, + ) + result = /obj/item/food/donkpocket/deluxe/vegan + removed_foodtypes = BREAKFAST + dish_category = DISH_PASTRY +*/ ////////////////////////////////////////////////MUFFINS//////////////////////////////////////////////// @@ -408,8 +469,10 @@ /datum/reagent/consumable/milk = 5, /obj/item/food/pastrybase = 1 ) + added_foodtypes = BREAKFAST|SUGAR|DAIRY result = /obj/item/food/muffin - category = CAT_PASTRY + dish_category = DISH_PASTRY + meal_category = MEAL_BREAKFAST /datum/crafting_recipe/food/berrymuffin name = "Berry muffin" @@ -419,7 +482,9 @@ /obj/item/food/grown/berries = 1 ) result = /obj/item/food/muffin/berry - category = CAT_PASTRY + added_foodtypes = BREAKFAST|SUGAR|FRUIT|DAIRY + dish_category = DISH_PASTRY + meal_category = MEAL_BREAKFAST /datum/crafting_recipe/food/booberrymuffin name = "Booberry muffin" @@ -430,7 +495,9 @@ /obj/item/ectoplasm = 1 ) result = /obj/item/food/muffin/booberry - category = CAT_PASTRY + added_foodtypes = BREAKFAST|SUGAR|DAIRY + dish_category = DISH_PASTRY + meal_category = MEAL_BREAKFAST ////////////////////////////////////////////OTHER//////////////////////////////////////////// @@ -444,7 +511,8 @@ /obj/item/food/bread/plain = 1 ) result = /obj/item/food/khachapuri - category = CAT_PASTRY + added_foodtypes = MEAT + dish_category = DISH_BREAD /datum/crafting_recipe/food/sugarcookie time = 15 @@ -454,7 +522,9 @@ /obj/item/food/pastrybase = 1 ) result = /obj/item/food/cookie/sugar - category = CAT_PASTRY + added_foodtypes = JUNKFOOD|SUGAR + dish_category = DISH_COOKIE + meal_category = MEAL_SNACK /datum/crafting_recipe/food/spookyskull time = 15 @@ -465,7 +535,9 @@ /datum/reagent/consumable/milk = 5 ) result = /obj/item/food/cookie/sugar/spookyskull - category = CAT_PASTRY + added_foodtypes = JUNKFOOD|SUGAR + dish_category = DISH_COOKIE + meal_category = MEAL_SNACK /datum/crafting_recipe/food/spookycoffin time = 15 @@ -476,7 +548,9 @@ /datum/reagent/consumable/coffee = 5 ) result = /obj/item/food/cookie/sugar/spookycoffin - category = CAT_PASTRY + added_foodtypes = JUNKFOOD|SUGAR + dish_category = DISH_COOKIE + meal_category = MEAL_SNACK /datum/crafting_recipe/food/fortunecookie time = 15 @@ -489,7 +563,10 @@ /obj/item/paper = 1 ) result = /obj/item/food/fortunecookie - category = CAT_PASTRY + added_foodtypes = SUGAR + dish_category = DISH_COOKIE + // requirements_mats_blacklist = list(/obj/item/paper) + meal_category = MEAL_SNACK /datum/crafting_recipe/food/poppypretzel time = 15 @@ -499,7 +576,8 @@ /obj/item/food/pastrybase = 1 ) result = /obj/item/food/poppypretzel - category = CAT_PASTRY + added_foodtypes = SUGAR + dish_category = DISH_PASTRY /datum/crafting_recipe/food/plumphelmetbiscuit time = 15 @@ -509,17 +587,18 @@ /obj/item/food/grown/mushroom/plumphelmet = 1 ) result = /obj/item/food/plumphelmetbiscuit - category = CAT_PASTRY + dish_category = DISH_PASTRY /datum/crafting_recipe/food/cracker time = 15 name = "Cracker" reqs = list( /datum/reagent/consumable/salt = 1, - /obj/item/food/pastrybase = 1, + /obj/item/food/doughslice = 1, ) result = /obj/item/food/cracker - category = CAT_PASTRY + dish_category = DISH_PASTRY + meal_category = MEAL_SNACK /datum/crafting_recipe/food/chococornet name = "Choco cornet" @@ -529,7 +608,8 @@ /obj/item/food/chocolatebar = 1 ) result = /obj/item/food/chococornet - category = CAT_PASTRY + dish_category = DISH_PASTRY + meal_category = MEAL_SNACK /datum/crafting_recipe/food/oatmealcookie name = "Oatmeal cookie" @@ -538,7 +618,8 @@ /obj/item/food/grown/oat = 1 ) result = /obj/item/food/cookie/oatmeal - category = CAT_PASTRY + dish_category = DISH_COOKIE + meal_category = MEAL_SNACK /datum/crafting_recipe/food/raisincookie name = "Raisin cookie" @@ -548,7 +629,9 @@ /obj/item/food/grown/oat = 1 ) result = /obj/item/food/cookie/raisin - category = CAT_PASTRY + removed_foodtypes = JUNKFOOD + dish_category = DISH_COOKIE + meal_category = MEAL_SNACK /datum/crafting_recipe/food/cherrycupcake name = "Cherry cupcake" @@ -557,7 +640,9 @@ /obj/item/food/grown/cherries = 1 ) result = /obj/item/food/cherrycupcake - category = CAT_PASTRY + added_foodtypes = SUGAR + dish_category = DISH_PASTRY + meal_category = MEAL_DESSERT /datum/crafting_recipe/food/bluecherrycupcake name = "Blue cherry cupcake" @@ -566,7 +651,21 @@ /obj/item/food/grown/bluecherries = 1 ) result = /obj/item/food/cherrycupcake/blue - category = CAT_PASTRY + added_foodtypes = SUGAR + dish_category = DISH_PASTRY + meal_category = MEAL_DESSERT + +/datum/crafting_recipe/food/jupitercupcake + name = "Jupiter-cup-cake" + reqs = list( + /obj/item/food/pastrybase = 1, + /obj/item/food/grown/mushroom/jupitercup = 1, + /datum/reagent/consumable/caramel = 3, + ) + result = /obj/item/food/jupitercupcake + added_foodtypes = SUGAR + dish_category = DISH_PASTRY + meal_category = MEAL_DESSERT /datum/crafting_recipe/food/honeybun name = "Honey bun" @@ -575,7 +674,9 @@ /datum/reagent/consumable/honey = 5 ) result = /obj/item/food/honeybun - category = CAT_PASTRY + added_foodtypes = SUGAR + dish_category = DISH_PASTRY + meal_category = MEAL_DESSERT /datum/crafting_recipe/food/cannoli name = "Cannoli" @@ -585,7 +686,8 @@ /datum/reagent/consumable/sugar = 3 ) result = /obj/item/food/cannoli - category = CAT_PASTRY + added_foodtypes = SUGAR + dish_category = DISH_PASTRY /datum/crafting_recipe/food/peanut_butter_cookie name = "Peanut butter cookie" @@ -594,7 +696,9 @@ /obj/item/food/pastrybase = 1 ) result = /obj/item/food/cookie/peanut_butter - category = CAT_PASTRY + added_foodtypes = JUNKFOOD|NUTS + dish_category = DISH_COOKIE + meal_category = MEAL_SNACK /datum/crafting_recipe/food/raw_brownie_batter name = "Raw brownie batter" @@ -606,7 +710,9 @@ /obj/item/food/butterslice = 1 ) result = /obj/item/food/raw_brownie_batter - category = CAT_PASTRY + added_foodtypes = GRAIN|JUNKFOOD|BREAKFAST|SUGAR + removed_foodtypes = MEAT|RAW|EGG + meal_category = MEAL_COMPONENT /datum/crafting_recipe/food/peanut_butter_brownie_batter name = "Raw peanut butter brownie batter" @@ -619,7 +725,9 @@ /obj/item/food/butterslice = 1 ) result = /obj/item/food/peanut_butter_brownie_batter - category = CAT_PASTRY + added_foodtypes = GRAIN|JUNKFOOD|BREAKFAST|SUGAR|NUTS + removed_foodtypes = MEAT|RAW|EGG + meal_category = MEAL_COMPONENT /datum/crafting_recipe/food/crunchy_peanut_butter_tart name = "Crunchy peanut butter tart" @@ -630,7 +738,8 @@ /datum/reagent/consumable/cream = 5, ) result = /obj/item/food/crunchy_peanut_butter_tart - category = CAT_PASTRY + added_foodtypes = JUNKFOOD|SUGAR + dish_category = DISH_PASTRY /datum/crafting_recipe/food/chocolate_chip_cookie name = "Chocolate chip cookie" @@ -639,7 +748,9 @@ /obj/item/food/chocolatebar = 1, ) result = /obj/item/food/cookie/chocolate_chip_cookie - category = CAT_PASTRY + removed_foodtypes = JUNKFOOD + dish_category = DISH_COOKIE + meal_category = MEAL_SNACK /datum/crafting_recipe/food/snickerdoodle name = "Snickerdoodle" @@ -648,7 +759,9 @@ /datum/reagent/consumable/vanilla = 5, ) result = /obj/item/food/cookie/snickerdoodle - category = CAT_PASTRY + added_foodtypes = SUGAR + dish_category = DISH_COOKIE + meal_category = MEAL_SNACK /datum/crafting_recipe/food/thumbprint_cookie name = "Thumbprint cookie" @@ -657,7 +770,9 @@ /datum/reagent/consumable/cherryjelly = 5, ) result = /obj/item/food/cookie/thumbprint_cookie - category = CAT_PASTRY + added_foodtypes = FRUIT|SUGAR + dish_category = DISH_COOKIE + meal_category = MEAL_SNACK /datum/crafting_recipe/food/macaron name = "Macaron" @@ -667,4 +782,5 @@ /datum/reagent/consumable/flour = 5, ) result = /obj/item/food/cookie/macaron - category = CAT_PASTRY + dish_category = DISH_COOKIE + meal_category = MEAL_SNACK diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_pie.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_pie.dm index a215ecdd750d..f18e35484ecd 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_pie.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_pie.dm @@ -11,7 +11,9 @@ /obj/item/food/grown/banana = 1 ) result = /obj/item/food/pie/cream - category = CAT_PIE + added_foodtypes = SUGAR + dish_category = DISH_PIE + meal_category = MEAL_DESSERT /datum/crafting_recipe/food/meatpie name = "Meat pie" @@ -22,7 +24,8 @@ /obj/item/food/meat/steak/plain = 1 ) result = /obj/item/food/pie/meatpie - category = CAT_PIE + dish_category = DISH_PIE + meal_category = MEAL_DESSERT /datum/crafting_recipe/food/tofupie name = "Tofu pie" @@ -31,7 +34,8 @@ /obj/item/food/tofu = 1 ) result = /obj/item/food/pie/tofupie - category = CAT_PIE + dish_category = DISH_PIE + meal_category = MEAL_DESSERT /datum/crafting_recipe/food/xenopie name = "Xeno pie" @@ -40,7 +44,8 @@ /obj/item/food/meat/cutlet/xeno = 1 ) result = /obj/item/food/pie/xemeatpie - category = CAT_PIE + dish_category = DISH_PIE + meal_category = MEAL_DESSERT /datum/crafting_recipe/food/cherrypie name = "Cherry pie" @@ -49,7 +54,9 @@ /obj/item/food/grown/cherries = 1 ) result = /obj/item/food/pie/cherrypie - category = CAT_PIE + added_foodtypes = SUGAR + dish_category = DISH_PIE + meal_category = MEAL_DESSERT /datum/crafting_recipe/food/berryclafoutis name = "Berry clafoutis" @@ -58,7 +65,9 @@ /obj/item/food/grown/berries = 1 ) result = /obj/item/food/pie/berryclafoutis - category = CAT_PIE + added_foodtypes = SUGAR + dish_category = DISH_PIE + meal_category = MEAL_DESSERT /datum/crafting_recipe/food/bearypie name = "Beary Pie" @@ -68,7 +77,9 @@ /obj/item/food/meat/steak/bear = 1 ) result = /obj/item/food/pie/bearypie - category = CAT_PIE + added_foodtypes = SUGAR + dish_category = DISH_PIE + meal_category = MEAL_DESSERT /datum/crafting_recipe/food/amanitapie name = "Amanita pie" @@ -77,7 +88,9 @@ /obj/item/food/grown/mushroom/amanita = 1 ) result = /obj/item/food/pie/amanita_pie - category = CAT_PIE + added_foodtypes = TOXIC|GROSS + dish_category = DISH_PIE + meal_category = MEAL_DESSERT /datum/crafting_recipe/food/plumppie name = "Plump pie" @@ -86,7 +99,8 @@ /obj/item/food/grown/mushroom/plumphelmet = 1 ) result = /obj/item/food/pie/plump_pie - category = CAT_PIE + dish_category = DISH_PIE + meal_category = MEAL_DESSERT /datum/crafting_recipe/food/applepie name = "Apple pie" @@ -95,7 +109,9 @@ /obj/item/food/grown/apple = 1 ) result = /obj/item/food/pie/applepie - category = CAT_PIE + added_foodtypes = SUGAR + dish_category = DISH_PIE + meal_category = MEAL_DESSERT /datum/crafting_recipe/food/pumpkinpie name = "Pumpkin pie" @@ -106,7 +122,9 @@ /obj/item/food/grown/pumpkin = 1 ) result = /obj/item/food/pie/pumpkinpie - category = CAT_PIE + added_foodtypes = SUGAR + dish_category = DISH_PIE + meal_category = MEAL_DESSERT /datum/crafting_recipe/food/goldenappletart name = "Golden apple tart" @@ -117,7 +135,9 @@ /obj/item/food/grown/apple/gold = 1 ) result = /obj/item/food/pie/appletart - category = CAT_PIE + added_foodtypes = SUGAR + dish_category = DISH_PIE + meal_category = MEAL_DESSERT /datum/crafting_recipe/food/grapetart name = "Grape tart" @@ -128,7 +148,9 @@ /obj/item/food/grown/grapes = 3 ) result = /obj/item/food/pie/grapetart - category = CAT_PIE + added_foodtypes = SUGAR + dish_category = DISH_PIE + meal_category = MEAL_DESSERT /datum/crafting_recipe/food/mimetart name = "Mime tart" @@ -139,7 +161,9 @@ /datum/reagent/consumable/nothing = 5 ) result = /obj/item/food/pie/mimetart - category = CAT_PIE + dish_category = DISH_PIE + meal_category = MEAL_DESSERT + added_foodtypes = SUGAR crafting_flags = CRAFT_CHECK_DENSITY | CRAFT_MUST_BE_LEARNED /datum/crafting_recipe/food/berrytart @@ -151,7 +175,9 @@ /obj/item/food/grown/berries = 3 ) result = /obj/item/food/pie/berrytart - category = CAT_PIE + dish_category = DISH_PIE + meal_category = MEAL_DESSERT + added_foodtypes = SUGAR crafting_flags = CRAFT_CHECK_DENSITY | CRAFT_MUST_BE_LEARNED /datum/crafting_recipe/food/cocolavatart @@ -164,7 +190,10 @@ /obj/item/slime_extract = 1 //The reason you dont know how to make it! ) result = /obj/item/food/pie/cocolavatart - category = CAT_PIE + dish_category = DISH_PIE + meal_category = MEAL_DESSERT + added_foodtypes = SUGAR + removed_foodtypes = JUNKFOOD crafting_flags = CRAFT_CHECK_DENSITY | CRAFT_MUST_BE_LEARNED /datum/crafting_recipe/food/blumpkinpie @@ -176,7 +205,9 @@ /obj/item/food/grown/pumpkin/blumpkin = 1 ) result = /obj/item/food/pie/blumpkinpie - category = CAT_PIE + added_foodtypes = SUGAR + dish_category = DISH_PIE + meal_category = MEAL_DESSERT /datum/crafting_recipe/food/dulcedebatata name = "Dulce de batata" @@ -186,7 +217,9 @@ /obj/item/food/grown/potato/sweet = 2 ) result = /obj/item/food/pie/dulcedebatata - category = CAT_PIE + added_foodtypes = SUGAR + dish_category = DISH_PIE + meal_category = MEAL_DESSERT /datum/crafting_recipe/food/frostypie name = "Frosty pie" @@ -195,7 +228,9 @@ /obj/item/food/grown/bluecherries = 1 ) result = /obj/item/food/pie/frostypie - category = CAT_PIE + added_foodtypes = FRUIT|SUGAR + dish_category = DISH_PIE + meal_category = MEAL_DESSERT /datum/crafting_recipe/food/baklava name = "Baklava pie" @@ -205,7 +240,9 @@ /obj/item/seeds/wheat/oat = 4 ) result = /obj/item/food/pie/baklava - category = CAT_PIE + added_foodtypes = SUGAR + dish_category = DISH_PIE + meal_category = MEAL_DESSERT /datum/crafting_recipe/food/frenchsilkpie name = "French silk pie" @@ -215,7 +252,10 @@ /obj/item/food/chocolatebar = 2, ) result = /obj/item/food/pie/frenchsilkpie - category = CAT_PIE + removed_foodtypes = JUNKFOOD + added_foodtypes = SUGAR + dish_category = DISH_PIE + meal_category = MEAL_DESSERT /datum/crafting_recipe/food/shepherds_pie name = "Shepherds pie" @@ -228,7 +268,8 @@ /obj/item/food/grown/garlic = 1, ) result = /obj/item/food/pie/shepherds_pie - category = CAT_PIE + dish_category = DISH_PIE + meal_category = MEAL_DESSERT /datum/crafting_recipe/food/asdfpie name = "Pie-flavored pie" @@ -236,7 +277,8 @@ /obj/item/food/pie/plain = 2, ) result = /obj/item/food/pie/asdfpie - category = CAT_PIE + dish_category = DISH_PIE + meal_category = MEAL_DESSERT /datum/crafting_recipe/food/bacid_pie reqs = list( @@ -244,4 +286,6 @@ /obj/item/stock_parts/power_store/cell = 2, ) result = /obj/item/food/pie/bacid_pie - category = CAT_PIE + added_foodtypes = TOXIC + dish_category = DISH_PIE + meal_category = MEAL_DESSERT diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_pizza.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_pizza.dm index f67071a86f51..9e7f54a160b8 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_pizza.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_pizza.dm @@ -3,14 +3,18 @@ ////////////////////////////////////////////////PIZZA!!!//////////////////////////////////////////////// -/datum/crafting_recipe/food/margheritapizza +/datum/crafting_recipe/food/pizza + added_foodtypes = RAW + cuisine_category = CUISINE_ITALIAN + dish_category = DISH_PIZZA + +/datum/crafting_recipe/food/pizza/margherita reqs = list( /obj/item/food/flatdough = 1, /obj/item/food/cheese/wedge = 4, /obj/item/food/grown/tomato = 1 ) result = /obj/item/food/pizza/margherita/raw - category = CAT_PIZZA /datum/crafting_recipe/food/meatpizza reqs = list( @@ -20,9 +24,8 @@ /obj/item/food/grown/tomato = 1 ) result = /obj/item/food/pizza/meat/raw - category = CAT_PIZZA -/datum/crafting_recipe/food/arnold +/datum/crafting_recipe/food/pizza/arnold reqs = list( /obj/item/food/flatdough = 1, /obj/item/food/meat/rawcutlet = 3, @@ -31,38 +34,37 @@ /obj/item/food/grown/tomato = 1 ) result = /obj/item/food/pizza/arnold/raw - category = CAT_PIZZA -/datum/crafting_recipe/food/mushroompizza +/datum/crafting_recipe/food/pizza/mushroom reqs = list( /obj/item/food/flatdough = 1, - /obj/item/food/grown/mushroom = 5 + /obj/item/food/grown/mushroom = 5, + /obj/item/food/cheese/wedge = 1, ) result = /obj/item/food/pizza/mushroom/raw - category = CAT_PIZZA -/datum/crafting_recipe/food/vegetablepizza +/datum/crafting_recipe/food/pizza/vegetable reqs = list( /obj/item/food/flatdough = 1, /obj/item/food/grown/eggplant = 1, /obj/item/food/grown/carrot = 1, /obj/item/food/grown/corn = 1, - /obj/item/food/grown/tomato = 1 + /obj/item/food/grown/tomato = 1, + /obj/item/food/cheese/wedge = 1, ) result = /obj/item/food/pizza/vegetable/raw - category = CAT_PIZZA -/datum/crafting_recipe/food/donkpocketpizza +/datum/crafting_recipe/food/pizza/donkpocket reqs = list( /obj/item/food/flatdough = 1, /obj/item/food/donkpocket = 3, /obj/item/food/cheese/wedge = 1, /obj/item/food/grown/tomato = 1 ) + added_foodtypes = parent_type::added_foodtypes|JUNKFOOD result = /obj/item/food/pizza/donkpocket/raw - category = CAT_PIZZA -/datum/crafting_recipe/food/dankpizza +/datum/crafting_recipe/food/pizza/dank reqs = list( /obj/item/food/flatdough = 1, /obj/item/food/grown/ambrosia/vulgaris = 3, @@ -70,9 +72,8 @@ /obj/item/food/grown/tomato = 1 ) result = /obj/item/food/pizza/dank/raw - category = CAT_PIZZA -/datum/crafting_recipe/food/sassysagepizza +/datum/crafting_recipe/food/pizza/sassysage reqs = list( /obj/item/food/flatdough = 1, /obj/item/food/raw_meatball = 3, @@ -80,9 +81,8 @@ /obj/item/food/grown/tomato = 1 ) result = /obj/item/food/pizza/sassysage/raw - category = CAT_PIZZA -/datum/crafting_recipe/food/pineapplepizza +/datum/crafting_recipe/food/pizza/pineapple reqs = list( /obj/item/food/flatdough = 1, /obj/item/food/meat/rawcutlet = 2, @@ -91,25 +91,24 @@ /obj/item/food/grown/tomato = 1 ) result = /obj/item/food/pizza/pineapple/raw - category = CAT_PIZZA -/datum/crafting_recipe/food/antspizza +/datum/crafting_recipe/food/pizza/ants reqs = list( /obj/item/food/pizzaslice/margherita = 1, /datum/reagent/ants = 4 ) result = /obj/item/food/pizzaslice/ants - category = CAT_PIZZA + added_foodtypes = BUGS -/datum/crafting_recipe/food/energypizza +/datum/crafting_recipe/food/pizza/energy reqs = list( /obj/item/food/flatdough = 1, /obj/item/stock_parts/power_store/cell = 2, ) result = /obj/item/food/pizza/energy/raw - category = CAT_PIZZA + added_foodtypes = parent_type::added_foodtypes|TOXIC -/datum/crafting_recipe/food/raw_meat_calzone +/datum/crafting_recipe/food/pizza/raw_meat_calzone name = "Meat calzone" reqs = list( /obj/item/food/flatdough = 1, @@ -118,9 +117,8 @@ /obj/item/food/grown/tomato = 1, ) result = /obj/item/food/raw_meat_calzone - category = CAT_PIZZA -/datum/crafting_recipe/food/raw_vegetarian_calzone +/datum/crafting_recipe/food/pizza/raw_vegetarian_calzone name = "Vegetarian calzone" reqs = list( /obj/item/food/flatdough = 1, @@ -129,4 +127,3 @@ /obj/item/food/grown/onion = 1, ) result = /obj/item/food/raw_vegetarian_calzone - category = CAT_PIZZA diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_salad.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_salad.dm index 0bd29c51054d..ffbe196d5c3d 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_salad.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_salad.dm @@ -11,7 +11,7 @@ /obj/item/food/grown/apple = 1 ) result = /obj/item/food/salad/herbsalad - category = CAT_SALAD + dish_category = DISH_SALAD /datum/crafting_recipe/food/aesirsalad name = "Aesir salad" @@ -21,7 +21,7 @@ /obj/item/food/grown/apple/gold = 1 ) result = /obj/item/food/salad/aesirsalad - category = CAT_SALAD + dish_category = DISH_SALAD /datum/crafting_recipe/food/validsalad name = "Valid salad" @@ -32,7 +32,8 @@ /obj/item/food/meatball = 1 ) result = /obj/item/food/salad/validsalad - category = CAT_SALAD + added_foodtypes = FRIED + dish_category = DISH_SALAD /datum/crafting_recipe/food/melonfruitbowl name ="Melon fruit bowl" @@ -45,7 +46,7 @@ /obj/item/food/grown/ambrosia = 1 ) result = /obj/item/food/melonfruitbowl - category = CAT_SALAD + dish_category = DISH_SALAD /datum/crafting_recipe/food/fruitsalad name = "Fruit salad" @@ -58,7 +59,7 @@ ) result = /obj/item/food/salad/fruit - category = CAT_SALAD + dish_category = DISH_SALAD /datum/crafting_recipe/food/junglesalad name = "Jungle salad" @@ -70,7 +71,7 @@ ) result = /obj/item/food/salad/jungle - category = CAT_SALAD + dish_category = DISH_SALAD /datum/crafting_recipe/food/citrusdelight name = "Citrus delight" @@ -82,7 +83,7 @@ ) result = /obj/item/food/salad/citrusdelight - category = CAT_SALAD + dish_category = DISH_SALAD /datum/crafting_recipe/food/edensalad name = "Salad of Eden" @@ -94,7 +95,7 @@ /obj/item/food/grown/peace = 1 ) result = /obj/item/food/salad/edensalad - category = CAT_SALAD + dish_category = DISH_SALAD /datum/crafting_recipe/food/kale_salad name = "Kale salad" @@ -106,7 +107,7 @@ /datum/reagent/consumable/nutriment/fat/oil/olive = 2, ) result = /obj/item/food/salad/kale_salad - category = CAT_SALAD + dish_category = DISH_SALAD /datum/crafting_recipe/food/greek_salad name = "Greek salad" @@ -120,7 +121,7 @@ /obj/item/food/grown/cucumber = 1, ) result = /obj/item/food/salad/greek_salad - category = CAT_SALAD + dish_category = DISH_SALAD /datum/crafting_recipe/food/caesar_salad name = "Caesar salad" @@ -133,7 +134,7 @@ /obj/item/food/breadslice/plain = 1, ) result = /obj/item/food/salad/caesar_salad - category = CAT_SALAD + dish_category = DISH_SALAD /datum/crafting_recipe/food/spring_salad name = "Spring salad" @@ -145,7 +146,7 @@ /datum/reagent/consumable/nutriment/fat/oil/olive = 5, ) result = /obj/item/food/salad/spring_salad - category = CAT_SALAD + dish_category = DISH_SALAD /datum/crafting_recipe/food/potato_salad name = "Potato salad" @@ -157,7 +158,7 @@ /datum/reagent/consumable/mayonnaise = 5, ) result = /obj/item/food/salad/potato_salad - category = CAT_SALAD + dish_category = DISH_SALAD /datum/crafting_recipe/food/spinach_fruit_salad name = "Spinach fruit salad" @@ -169,7 +170,7 @@ /datum/reagent/consumable/nutriment/fat/oil/olive = 2, ) result = /obj/item/food/salad/spinach_fruit_salad - category = CAT_SALAD + dish_category = DISH_SALAD /datum/crafting_recipe/food/antipasto_salad name = "Antipasto salad" @@ -182,4 +183,5 @@ /obj/item/food/cheese/mozzarella = 1, ) result = /obj/item/food/salad/antipasto_salad - category = CAT_SALAD + dish_category = DISH_SALAD + cuisine_category = CUISINE_ITALIAN diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_sandwich.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_sandwich.dm index 7761a57fcfdb..683cc8ddfc32 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_sandwich.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_sandwich.dm @@ -10,11 +10,12 @@ name = "Sandwich" reqs = list( /obj/item/food/breadslice/plain = 2, + /obj/item/food/grown/cabbage = 1, /obj/item/food/meat/steak = 1, /obj/item/food/cheese/wedge = 1 ) result = /obj/item/food/sandwich - category = CAT_SANDWICH + dish_category = DISH_SANDWICH /datum/crafting_recipe/food/cheese_sandwich name = "Cheese sandwich" @@ -23,7 +24,7 @@ /obj/item/food/cheese/wedge = 2 ) result = /obj/item/food/sandwich/cheese - category = CAT_SANDWICH + dish_category = DISH_SANDWICH /datum/crafting_recipe/food/slimesandwich name = "Jelly sandwich" @@ -31,8 +32,9 @@ /datum/reagent/toxin/slimejelly = 5, /obj/item/food/breadslice/plain = 2, ) + added_foodtypes = TOXIC result = /obj/item/food/sandwich/jelly/slime - category = CAT_SANDWICH + dish_category = DISH_SANDWICH /datum/crafting_recipe/food/cherrysandwich name = "Jelly sandwich" @@ -40,8 +42,9 @@ /datum/reagent/consumable/cherryjelly = 5, /obj/item/food/breadslice/plain = 2, ) + added_foodtypes = FRUIT|SUGAR result = /obj/item/food/sandwich/jelly/cherry - category = CAT_SANDWICH + dish_category = DISH_SANDWICH /datum/crafting_recipe/food/notasandwich name = "Not a sandwich" @@ -49,8 +52,9 @@ /obj/item/food/breadslice/plain = 2, /obj/item/clothing/mask/fakemoustache = 1 ) + added_foodtypes = GROSS result = /obj/item/food/sandwich/notasandwich - category = CAT_SANDWICH + dish_category = DISH_SANDWICH /datum/crafting_recipe/food/hotdog name = "Hot dog" @@ -60,7 +64,8 @@ /obj/item/food/sausage = 1 ) result = /obj/item/food/hotdog - category = CAT_SANDWICH + removed_foodtypes = BREAKFAST + dish_category = DISH_SANDWICH /datum/crafting_recipe/food/danish_hotdog name = "Danish hot dog" @@ -72,7 +77,8 @@ /obj/item/food/grown/onion = 1, ) result = /obj/item/food/danish_hotdog - category = CAT_SANDWICH + removed_foodtypes = BREAKFAST + dish_category = DISH_SANDWICH /datum/crafting_recipe/food/blt name = "BLT" @@ -83,7 +89,7 @@ /obj/item/food/grown/tomato = 1 ) result = /obj/item/food/sandwich/blt - category = CAT_SANDWICH + dish_category = DISH_SANDWICH /datum/crafting_recipe/food/peanut_butter_jelly_sandwich name = "Peanut butter and jelly sandwich" @@ -93,7 +99,8 @@ /datum/reagent/consumable/cherryjelly = 5 ) result = /obj/item/food/sandwich/peanut_butter_jelly - category = CAT_SANDWICH + added_foodtypes = FRUIT|NUTS + dish_category = DISH_SANDWICH /datum/crafting_recipe/food/peanut_butter_banana_sandwich name = "Peanut butter and banana sandwich" @@ -103,7 +110,8 @@ /obj/item/food/grown/banana = 1 ) result = /obj/item/food/sandwich/peanut_butter_banana - category = CAT_SANDWICH + added_foodtypes = NUTS + dish_category = DISH_SANDWICH /datum/crafting_recipe/food/philly_cheesesteak name = "Philly Cheesesteak" @@ -114,7 +122,7 @@ /obj/item/food/grown/onion = 1, ) result = /obj/item/food/sandwich/philly_cheesesteak - category = CAT_SANDWICH + dish_category = DISH_SANDWICH /datum/crafting_recipe/food/death_sandwich name = "Death Sandwich" @@ -125,7 +133,7 @@ /obj/item/food/grown/tomato = 1, ) result = /obj/item/food/sandwich/death - category = CAT_SANDWICH + dish_category = DISH_SANDWICH crafting_flags = CRAFT_CHECK_DENSITY | CRAFT_MUST_BE_LEARNED /datum/crafting_recipe/food/toast_sandwich @@ -135,4 +143,5 @@ /obj/item/food/butteredtoast = 1, ) result = /obj/item/food/sandwich/toast_sandwich - category = CAT_SANDWICH + removed_foodtypes = BREAKFAST + dish_category = DISH_SANDWICH diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_seafood.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_seafood.dm index 60c7de2e3333..fbc72e245980 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_seafood.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_seafood.dm @@ -6,7 +6,8 @@ /obj/item/food/fishmeat/carp = 1 ) result = /obj/item/food/cubancarp - category = CAT_SEAFOOD + added_foodtypes = GRAIN|FRIED + dish_category = DISH_SANDWICH /datum/crafting_recipe/food/fishandchips name = "Fish and chips" @@ -15,7 +16,7 @@ /obj/item/food/fishmeat = 1 ) result = /obj/item/food/fishandchips - category = CAT_SEAFOOD + meal_category = MEAL_APPETIZER /datum/crafting_recipe/food/fishfingers name = "Fish fingers" @@ -25,7 +26,8 @@ /obj/item/food/fishmeat = 1 ) result = /obj/item/food/fishfingers - category = CAT_SEAFOOD + added_foodtypes = FRIED + meal_category = MEAL_APPETIZER /datum/crafting_recipe/food/fishfry name = "Fish fry" @@ -35,20 +37,21 @@ /obj/item/food/fishmeat = 1 ) result = /obj/item/food/fishfry - category = CAT_SEAFOOD + added_foodtypes = FRIED /datum/crafting_recipe/food/sashimi - name = "Sashimi" + name = "Spider Sashimi" reqs = list( /datum/reagent/consumable/soysauce = 5, /obj/item/food/spidereggs = 1, /obj/item/food/fishmeat = 1 ) result = /obj/item/food/sashimi - category = CAT_SEAFOOD + removed_foodtypes = TOXIC + cuisine_category = CUISINE_JAPANESE /datum/crafting_recipe/food/fishtaco - name ="Fish taco" + name = "Fish taco" reqs = list( /obj/item/food/tortilla = 1, /obj/item/food/cheese/wedge = 1, @@ -56,10 +59,11 @@ /obj/item/food/grown/cabbage = 1 ) result = /obj/item/food/taco/fish - category = CAT_SEAFOOD + cuisine_category = CUISINE_MEXICAN + dish_category = DISH_TACO /datum/crafting_recipe/food/vegetariansushiroll - name ="Vegetarian sushi roll" + name = "Vegetarian sushi roll" reqs = list( /obj/item/food/seaweedsheet = 1, /obj/item/food/boiledrice = 1, @@ -67,10 +71,12 @@ /obj/item/food/grown/potato = 1 ) result = /obj/item/food/vegetariansushiroll - category = CAT_SEAFOOD + removed_foodtypes = BREAKFAST + dish_category = DISH_SUSHI + cuisine_category = CUISINE_JAPANESE /datum/crafting_recipe/food/spicyfiletroll - name ="Spicy filet sushi roll" + name = "Spicy filet sushi roll" reqs = list( /obj/item/food/seaweedsheet = 1, /obj/item/food/boiledrice = 1, @@ -79,10 +85,12 @@ /obj/item/food/grown/onion = 1 ) result = /obj/item/food/spicyfiletsushiroll - category = CAT_SEAFOOD + removed_foodtypes = BREAKFAST + dish_category = DISH_SUSHI + cuisine_category = CUISINE_JAPANESE /datum/crafting_recipe/food/nigiri_sushi - name ="Nigiri sushi" + name = "Nigiri sushi" reqs = list( /obj/item/food/seaweedsheet = 1, /obj/item/food/boiledrice = 1, @@ -90,7 +98,9 @@ /datum/reagent/consumable/soysauce = 2 ) result = /obj/item/food/nigiri_sushi - category = CAT_SEAFOOD + removed_foodtypes = BREAKFAST + dish_category = DISH_SUSHI + cuisine_category = CUISINE_JAPANESE /datum/crafting_recipe/food/meat_poke name ="Meat poke" @@ -105,7 +115,8 @@ /obj/item/food/grown/cucumber = 1, ) result = /obj/item/food/meat_poke - category = CAT_SEAFOOD + removed_foodtypes = BREAKFAST + dish_category = DISH_SALAD /datum/crafting_recipe/food/fish_poke name ="Fish poke" @@ -120,7 +131,8 @@ /obj/item/food/grown/cucumber = 1, ) result = /obj/item/food/fish_poke - category = CAT_SEAFOOD + removed_foodtypes = BREAKFAST + dish_category = DISH_SALAD /datum/crafting_recipe/food/futomaki_sushi_roll name ="Futomaki sushi roll" @@ -132,7 +144,9 @@ /obj/item/food/grown/cucumber = 1, ) result = /obj/item/food/futomaki_sushi_roll - category = CAT_SEAFOOD + removed_foodtypes = BREAKFAST + dish_category = DISH_SUSHI + cuisine_category = CUISINE_JAPANESE /datum/crafting_recipe/food/philadelphia_sushi_roll name ="Philadelphia sushi roll" @@ -144,4 +158,6 @@ /obj/item/food/grown/cucumber = 1, ) result = /obj/item/food/philadelphia_sushi_roll - category = CAT_SEAFOOD + removed_foodtypes = BREAKFAST + dish_category = DISH_SUSHI + cuisine_category = CUISINE_JAPANESE diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_spaghetti.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_spaghetti.dm index 589235eacb70..aa17a7e0b3f0 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_spaghetti.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_spaghetti.dm @@ -10,7 +10,8 @@ /obj/item/food/grown/tomato = 2 ) result = /obj/item/food/spaghetti/pastatomato - category = CAT_SPAGHETTI + dish_category = DISH_NOODLES + cuisine_category = CUISINE_ITALIAN /datum/crafting_recipe/food/copypasta name = "Copypasta" @@ -18,7 +19,8 @@ /obj/item/food/spaghetti/pastatomato = 2 ) result = /obj/item/food/spaghetti/copypasta - category = CAT_SPAGHETTI + dish_category = DISH_NOODLES + cuisine_category = CUISINE_ITALIAN /datum/crafting_recipe/food/spaghettimeatball name = "Spaghetti meatball" @@ -27,7 +29,8 @@ /obj/item/food/meatball = 2 ) result = /obj/item/food/spaghetti/meatballspaghetti - category = CAT_SPAGHETTI + dish_category = DISH_NOODLES + cuisine_category = CUISINE_ITALIAN /datum/crafting_recipe/food/spesslaw name = "Spesslaw" @@ -36,7 +39,8 @@ /obj/item/food/meatball = 4 ) result = /obj/item/food/spaghetti/spesslaw - category = CAT_SPAGHETTI + dish_category = DISH_NOODLES + cuisine_category = CUISINE_ITALIAN /datum/crafting_recipe/food/beefnoodle name = "Beef noodle" @@ -47,7 +51,8 @@ /obj/item/food/grown/cabbage = 1 ) result = /obj/item/food/spaghetti/beefnoodle - category = CAT_SPAGHETTI + dish_category = DISH_NOODLES + cuisine_category = CUISINE_ITALIAN /datum/crafting_recipe/food/chowmein name = "Chowmein" @@ -58,7 +63,8 @@ /obj/item/food/grown/carrot = 1 ) result = /obj/item/food/spaghetti/chowmein - category = CAT_SPAGHETTI + dish_category = DISH_NOODLES + // cuisine_category = CUISINE_CHINESE /datum/crafting_recipe/food/butternoodles name = "Butter Noodles" @@ -67,7 +73,8 @@ /obj/item/food/butterslice = 1 ) result = /obj/item/food/spaghetti/butternoodles - category = CAT_SPAGHETTI + dish_category = DISH_NOODLES + cuisine_category = CUISINE_ITALIAN /datum/crafting_recipe/food/mac_n_cheese name = "Mac n' cheese" @@ -79,7 +86,7 @@ /datum/reagent/consumable/blackpepper = 2 ) result = /obj/item/food/spaghetti/mac_n_cheese - category = CAT_SPAGHETTI + dish_category = DISH_NOODLES /datum/crafting_recipe/food/shoyu_tonkotsu_ramen name = "Shoyu Tonkotsu ramen" @@ -92,7 +99,9 @@ /obj/item/food/grown/onion = 1, ) result = /obj/item/food/spaghetti/shoyu_tonkotsu_ramen - category = CAT_SPAGHETTI + removed_foodtypes = BREAKFAST + dish_category = DISH_NOODLES + cuisine_category = CUISINE_JAPANESE /datum/crafting_recipe/food/kitakata_ramen name = "Kitakata ramen" @@ -105,7 +114,8 @@ /obj/item/food/grown/garlic = 1, ) result = /obj/item/food/spaghetti/kitakata_ramen - category = CAT_SPAGHETTI + dish_category = DISH_NOODLES + cuisine_category = CUISINE_JAPANESE /datum/crafting_recipe/food/kitsune_udon name = "Kitsune udon" @@ -118,7 +128,8 @@ /datum/reagent/consumable/sugar = 5, ) result = /obj/item/food/spaghetti/kitsune_udon - category = CAT_SPAGHETTI + dish_category = DISH_NOODLES + cuisine_category = CUISINE_JAPANESE /datum/crafting_recipe/food/nikujaga name = "Nikujaga" @@ -131,7 +142,8 @@ /obj/item/food/grown/peas = 1, ) result = /obj/item/food/spaghetti/nikujaga - category = CAT_SPAGHETTI + dish_category = DISH_NOODLES + cuisine_category = CUISINE_JAPANESE /datum/crafting_recipe/food/pho name = "Pho" @@ -143,7 +155,8 @@ /obj/item/food/grown/cabbage = 1, ) result = /obj/item/food/spaghetti/pho - category = CAT_SPAGHETTI + dish_category = DISH_NOODLES + // cuisine_category = CUISINE_VIETNAMESE /datum/crafting_recipe/food/pad_thai name = "Pad thai" @@ -156,4 +169,19 @@ /obj/item/food/grown/citrus/lime = 1, ) result = /obj/item/food/spaghetti/pad_thai - category = CAT_SPAGHETTI + dish_category = DISH_NOODLES + // cuisine_category = CUISINE_THAI + +/datum/crafting_recipe/food/carbonara + name = "Spaghetti Carbonara" + reqs = list( + /obj/item/food/spaghetti/boiledspaghetti = 1, + /obj/item/food/cheese/firm_cheese_slice = 1, + /obj/item/food/meat/bacon = 1, + /obj/item/food/egg = 1, + /datum/reagent/consumable/blackpepper = 2, + ) + result = /obj/item/food/spaghetti/carbonara + removed_foodtypes = BREAKFAST|RAW + dish_category = DISH_NOODLES + cuisine_category = CUISINE_ITALIAN diff --git a/code/modules/food_and_drinks/restaurant/customers/_customer.dm b/code/modules/food_and_drinks/restaurant/customers/_customer.dm index ca75eb0ac289..f18ed9fa66bd 100644 --- a/code/modules/food_and_drinks/restaurant/customers/_customer.dm +++ b/code/modules/food_and_drinks/restaurant/customers/_customer.dm @@ -382,7 +382,7 @@ /obj/item/food/benedict = 5, /obj/item/food/fishandchips = 10, /obj/item/food/full_english = 2, - /obj/item/food/sandwich/cheese/grilled = 5, + /obj/item/food/sandwich/grilled_cheese = 5, /obj/item/food/pie/meatpie = 5, /obj/item/food/salad/ricepudding = 5, ), diff --git a/code/modules/hallucination/fake_sound.dm b/code/modules/hallucination/fake_sound.dm index 0d4ea1ae67bc..955a9f73cb61 100644 --- a/code/modules/hallucination/fake_sound.dm +++ b/code/modules/hallucination/fake_sound.dm @@ -223,7 +223,7 @@ volume = 40 sound_vary = FALSE no_source = TRUE - sound_type = 'sound/magic/curse.ogg' + sound_type = 'sound/effects/magic/curse.ogg' /datum/hallucination/fake_sound/weird/game_over sound_vary = FALSE diff --git a/code/modules/hydroponics/grown/apple.dm b/code/modules/hydroponics/grown/apple.dm index c1739cc7dea8..a44d04e9f1ae 100644 --- a/code/modules/hydroponics/grown/apple.dm +++ b/code/modules/hydroponics/grown/apple.dm @@ -27,7 +27,7 @@ distill_reagent = /datum/reagent/consumable/ethanol/hcider /obj/item/food/grown/apple/make_processable() - AddElement(/datum/element/processable, TOOL_KNIFE, /obj/item/food/appleslice, 5, 20, screentip_verb = "Slice") + AddElement(/datum/element/processable, TOOL_KNIFE, /obj/item/food/appleslice, 5, 20, screentip_verb = "Slice", sound_to_play = SFX_KNIFE_SLICE) // Gold Apple /obj/item/seeds/apple/gold diff --git a/code/modules/hydroponics/grown/chili.dm b/code/modules/hydroponics/grown/chili.dm index 1d9aaa8468eb..c6c5f0d97246 100644 --- a/code/modules/hydroponics/grown/chili.dm +++ b/code/modules/hydroponics/grown/chili.dm @@ -25,7 +25,7 @@ desc = "It's spicy! Wait... IT'S BURNING ME!!" icon_state = "chilipepper" bite_consumption_mod = 2 - foodtypes = FRUIT + foodtypes = VEGETABLES wine_power = 20 // Ice Chili @@ -51,7 +51,7 @@ desc = "It's a mutant strain of chili." icon_state = "icepepper" bite_consumption_mod = 5 - foodtypes = FRUIT + foodtypes = VEGETABLES wine_power = 30 // Ghost Chili @@ -78,7 +78,7 @@ desc = "It seems to be vibrating gently." icon_state = "ghostchilipepper" bite_consumption_mod = 5 - foodtypes = FRUIT + foodtypes = VEGETABLES wine_power = 50 // Bell Pepper @@ -103,7 +103,7 @@ name = "bell pepper" desc = "A big mild pepper that's good for many things." icon_state = "bell_pepper" - foodtypes = FRUIT + foodtypes = VEGETABLES /obj/item/food/grown/bell_pepper/make_bakeable() AddComponent(/datum/component/bakeable, /obj/item/food/roasted_bell_pepper, rand(15 SECONDS, 25 SECONDS), TRUE, TRUE) diff --git a/code/modules/hydroponics/grown/eggplant.dm b/code/modules/hydroponics/grown/eggplant.dm index 47cbc6d934cd..956b2d4c0c72 100644 --- a/code/modules/hydroponics/grown/eggplant.dm +++ b/code/modules/hydroponics/grown/eggplant.dm @@ -20,7 +20,7 @@ name = "eggplant" desc = "Maybe there's a chicken inside?" icon_state = "eggplant" - foodtypes = FRUIT + foodtypes = VEGETABLES wine_power = 20 // Egg-Plant diff --git a/code/modules/hydroponics/grown/garlic.dm b/code/modules/hydroponics/grown/garlic.dm index 755d0c2920a3..96a32c37a454 100644 --- a/code/modules/hydroponics/grown/garlic.dm +++ b/code/modules/hydroponics/grown/garlic.dm @@ -18,3 +18,4 @@ icon_state = "garlic" tastes = list("garlic" = 1) wine_power = 10 + foodtypes = VEGETABLES diff --git a/code/modules/hydroponics/grown/melon.dm b/code/modules/hydroponics/grown/melon.dm index 9270f79c7571..9251dc0887fb 100644 --- a/code/modules/hydroponics/grown/melon.dm +++ b/code/modules/hydroponics/grown/melon.dm @@ -34,7 +34,7 @@ wine_power = 40 /obj/item/food/grown/watermelon/make_processable() - AddElement(/datum/element/processable, TOOL_KNIFE, /obj/item/food/watermelonslice, 5, 20, screentip_verb = "Slice") + AddElement(/datum/element/processable, TOOL_KNIFE, /obj/item/food/watermelonslice, 5, 20, screentip_verb = "Slice", sound_to_play = SFX_KNIFE_SLICE) /obj/item/food/grown/watermelon/make_dryable() return //No drying diff --git a/code/modules/hydroponics/grown/onion.dm b/code/modules/hydroponics/grown/onion.dm index a2fd125ad887..182eb582eeba 100644 --- a/code/modules/hydroponics/grown/onion.dm +++ b/code/modules/hydroponics/grown/onion.dm @@ -26,6 +26,7 @@ wine_power = 30 drop_sound = 'maplestation_modules/sound/items/drop/herb.ogg' pickup_sound = 'maplestation_modules/sound/items/pickup/herb.ogg' + foodtypes = VEGETABLES /obj/item/food/grown/onion/make_processable() AddElement(/datum/element/processable, TOOL_KNIFE, /obj/item/food/onion_slice, 2, 15, screentip_verb = "Cut") @@ -65,6 +66,7 @@ icon_state = "onionslice" food_reagents = list(/datum/reagent/consumable/nutriment = 5, /datum/reagent/consumable/nutriment/vitamin = 2) w_class = WEIGHT_CLASS_TINY + foodtypes = VEGETABLES /obj/item/food/onion_slice/make_bakeable() AddComponent(/datum/component/bakeable, /obj/item/food/onionrings, rand(15 SECONDS, 20 SECONDS), TRUE, TRUE) diff --git a/code/modules/hydroponics/grown/pumpkin.dm b/code/modules/hydroponics/grown/pumpkin.dm index dce207302c30..edfa985b4b1d 100644 --- a/code/modules/hydroponics/grown/pumpkin.dm +++ b/code/modules/hydroponics/grown/pumpkin.dm @@ -23,7 +23,7 @@ desc = "It's large and scary." icon_state = "pumpkin" bite_consumption_mod = 2 - foodtypes = FRUIT + foodtypes = VEGETABLES juice_typepath = /datum/reagent/consumable/pumpkinjuice wine_power = 20 ///Which type of lantern this gourd produces when carved. @@ -56,7 +56,6 @@ desc = "The pumpkin's toxic sibling." icon_state = "blumpkin" bite_consumption_mod = 3 - foodtypes = FRUIT juice_typepath = /datum/reagent/consumable/blumpkinjuice wine_power = 50 carved_type = /obj/item/clothing/head/utility/hardhat/pumpkinhead/blumpkin diff --git a/code/modules/hydroponics/grown/tomato.dm b/code/modules/hydroponics/grown/tomato.dm index 1459887d6fac..65a40fd14e67 100644 --- a/code/modules/hydroponics/grown/tomato.dm +++ b/code/modules/hydroponics/grown/tomato.dm @@ -22,7 +22,7 @@ desc = "I say to-mah-to, you say tom-mae-to." icon_state = "tomato" splat_type = /obj/effect/decal/cleanable/food/tomato_smudge - foodtypes = FRUIT + foodtypes = VEGETABLES grind_results = list(/datum/reagent/consumable/ketchup = 0) juice_typepath = /datum/reagent/consumable/tomatojuice distill_reagent = /datum/reagent/consumable/enzyme @@ -46,7 +46,7 @@ icon_state = "bloodtomato" bite_consumption_mod = 3 splat_type = /obj/effect/gibspawner/generic - foodtypes = FRUIT | GORE + foodtypes = VEGETABLES | GORE grind_results = list(/datum/reagent/consumable/ketchup = 0, /datum/reagent/blood = 0) distill_reagent = /datum/reagent/consumable/ethanol/bloody_mary diff --git a/code/modules/hydroponics/hydroponics.dm b/code/modules/hydroponics/hydroponics.dm index 8325a0fe389d..866201894060 100644 --- a/code/modules/hydroponics/hydroponics.dm +++ b/code/modules/hydroponics/hydroponics.dm @@ -413,18 +413,16 @@ //This is where stability mutations exist now. if(myseed.instability >= 80) - var/mutation_chance = myseed.instability - 75 - mutate(0, 0, 0, 0, 0, 0, 0, mutation_chance, 0) //Scaling odds of a random trait or chemical + traitmutate(myseed.instability - 75) //Scaling odds of a random trait or chemical if(myseed.instability >= 60) if(prob((myseed.instability)/2) && !self_sustaining && LAZYLEN(myseed.mutatelist) && !myseed.get_gene(/datum/plant_gene/trait/never_mutate)) //Minimum 30%, Maximum 50% chance of mutating every age tick when not on autogrow or having Prosophobic Inclination trait. mutatespecie() myseed.set_instability(myseed.instability/2) - if(myseed.instability >= 40) - if(prob(myseed.instability) && !myseed.get_gene(/datum/plant_gene/trait/stable_stats)) //No hardmutation if Symbiotic Resilience trait is present. - hardmutate() - if(myseed.instability >= 20 ) - if(prob(myseed.instability) && !myseed.get_gene(/datum/plant_gene/trait/stable_stats)) //No mutation if Symbiotic Resilience trait is present. - mutate() + if(myseed.instability >= 20 && prob(myseed.instability) && !myseed.get_gene(/datum/plant_gene/trait/stable_stats)) //No hardmutation if Symbiotic Resilience trait is present. + if(myseed.instability >= 40) + hardmutate(stabmut = myseed.instability >= 80 ? 5 : 0) + else + mutate(stabmut = 0) //Health & Age/////////////////////////////////////////////////////////// @@ -690,15 +688,50 @@ set_pestlevel(0) // Reset visible_message(span_warning("The [oldPlantName] is overtaken by some [myseed.plantname]!")) +/// Mutates the stats of the current seed /obj/machinery/hydroponics/proc/mutate(lifemut = 2, endmut = 5, productmut = 1, yieldmut = 2, potmut = 25, wrmut = 2, wcmut = 5, traitmut = 0, stabmut = 3) // Mutates the current seed - if(!myseed) - return - myseed.mutate(lifemut, endmut, productmut, yieldmut, potmut, wrmut, wcmut, traitmut, stabmut) + myseed?.mutate( + lifemut = lifemut, + endmut = endmut, + productmut = productmut, + yieldmut = yieldmut, + potmut = potmut, + wrmut = wrmut, + wcmut = wcmut, + traitmut = traitmut, + stabmut = stabmut, + ) +/// Mutate but with higher default values /obj/machinery/hydroponics/proc/hardmutate(lifemut = 4, endmut = 10, productmut = 2, yieldmut = 4, potmut = 50, wrmut = 4, wcmut = 10, traitmut = 0, stabmut = 4) - mutate(lifemut, endmut, productmut, yieldmut, potmut, wrmut, wcmut, traitmut, stabmut) + myseed?.mutate( + lifemut = lifemut, + endmut = endmut, + productmut = productmut, + yieldmut = yieldmut, + potmut = potmut, + wrmut = wrmut, + wcmut = wcmut, + traitmut = traitmut, + stabmut = stabmut, + ) -/obj/machinery/hydroponics/proc/mutatespecie() // Mutagent produced a new plant! +/// Mutate but only introduce a random trait +/obj/machinery/hydroponics/proc/traitmutate(traitmut = 1) + myseed?.mutate( + lifemut = 0, + endmut = 0, + productmut = 0, + yieldmut = 0, + potmut = 0, + wrmut = 0, + wcmut = 0, + traitmut = traitmut, + stabmut = 0, + ) + +/// Mutate the species of the plant into one of its mutations +/obj/machinery/hydroponics/proc/mutatespecie() if(!myseed || plant_status == HYDROTRAY_PLANT_DEAD || !LAZYLEN(myseed.mutatelist)) return @@ -715,7 +748,8 @@ var/message = span_warning("[oldPlantName] suddenly mutates into [myseed.plantname]!") addtimer(CALLBACK(src, PROC_REF(after_mutation), message), 0.5 SECONDS) -/obj/machinery/hydroponics/proc/polymorph() // Polymorph a plant into another plant +/// Transform the plant into a completely random species +/obj/machinery/hydroponics/proc/polymorph() if(!myseed || plant_status == HYDROTRAY_PLANT_DEAD) return @@ -732,21 +766,23 @@ var/message = span_warning("[oldPlantName] suddenly polymorphs into [myseed.plantname]!") addtimer(CALLBACK(src, PROC_REF(after_mutation), message), 0.5 SECONDS) -/obj/machinery/hydroponics/proc/mutateweed() // If the weeds gets the mutagent instead. Mind you, this pretty much destroys the old plant - if( weedlevel > 5 ) - set_seed(null) - var/newWeed = pick(/obj/item/seeds/liberty, /obj/item/seeds/angel, /obj/item/seeds/nettle/death, /obj/item/seeds/kudzu) - set_seed(new newWeed(src)) - hardmutate() - age = 0 - set_plant_health(myseed.endurance, update_icon = FALSE) - lastcycle = world.time - set_weedlevel(0, update_icon = FALSE) // Reset +/// Mutates the weeds in the tray into a random weed plant (which can overtake existing plants) +/obj/machinery/hydroponics/proc/mutateweed() + if(weedlevel <= 5) + visible_message(span_warning("The few weeds in [src] seem to react, but only for a moment...")) + return + + set_seed(null) + var/newWeed = pick(/obj/item/seeds/liberty, /obj/item/seeds/angel, /obj/item/seeds/nettle/death, /obj/item/seeds/kudzu) + set_seed(new newWeed(src)) + hardmutate() + set_plant_health(myseed.endurance, update_icon = FALSE) + lastcycle = world.time + set_weedlevel(0, update_icon = FALSE) // Reset + + var/message = span_warning("The mutated weeds in [src] spawn some [myseed.plantname]!") + addtimer(CALLBACK(src, PROC_REF(after_mutation), message), 0.5 SECONDS) - var/message = span_warning("The mutated weeds in [src] spawn some [myseed.plantname]!") - addtimer(CALLBACK(src, PROC_REF(after_mutation), message), 0.5 SECONDS) - else - to_chat(usr, span_warning("The few weeds in [src] seem to react, but only for a moment...")) /** * Called after plant mutation, update the appearance of the tray content and send a visible_message() */ diff --git a/code/modules/mining/lavaland/ash_flora.dm b/code/modules/mining/lavaland/ash_flora.dm index 79310c3548b1..ba44d58f4507 100644 --- a/code/modules/mining/lavaland/ash_flora.dm +++ b/code/modules/mining/lavaland/ash_flora.dm @@ -191,6 +191,7 @@ max_integrity = 100 seed = /obj/item/seeds/lavaland/polypore wine_power = 20 + foodtypes = VEGETABLES /obj/item/food/grown/ash_flora/Initialize(mapload) . = ..() @@ -235,6 +236,7 @@ icon_state = "cactus_fruit" seed = /obj/item/seeds/lavaland/cactus wine_power = 50 + foodtypes = FRUIT /obj/item/food/grown/ash_flora/seraka name = "seraka cap" diff --git a/code/modules/mob/living/living_defense.dm b/code/modules/mob/living/living_defense.dm index 1c445c3f4ff4..51c21009a66e 100644 --- a/code/modules/mob/living/living_defense.dm +++ b/code/modules/mob/living/living_defense.dm @@ -166,6 +166,10 @@ if(damage_done > 5 && !hitting_projectile.grazing && hitting_projectile.is_hostile_projectile()) set_headset_block_if_lower(hitting_projectile.damage_type == STAMINA ? 3 SECONDS : 5 SECONDS) + if(hitting_projectile.damage_type == BRUTE && damage_done >= 10 && hitting_projectile.speed >= 1 && prob(0.1)) + var/obj/item/organ/brain/a_brain = locate() in get_bodypart(def_zone) + a_brain?.cure_trauma_type(resilience = TRAUMA_RESILIENCE_LOBOTOMY) + apply_effects( stun = hitting_projectile.stun, knockdown = hitting_projectile.knockdown + extra_knockdown, diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/legionnaire.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/legionnaire.dm index 45db7c80f565..59f3fd837142 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/legionnaire.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/legionnaire.dm @@ -39,7 +39,7 @@ speed = 1 move_to_delay = 3 mouse_opacity = MOUSE_OPACITY_ICON - death_sound = 'sound/magic/curse.ogg' + death_sound = 'sound/effects/magic/curse.ogg' death_message = "'s arms reach out before it falls apart onto the floor, lifeless." loot_drop = /obj/item/crusher_trophy/legionnaire_spine initial_blood_type = null diff --git a/code/modules/modular_computers/computers/item/computer.dm b/code/modules/modular_computers/computers/item/computer.dm index 3ef8abc19a60..d530795b5d63 100644 --- a/code/modules/modular_computers/computers/item/computer.dm +++ b/code/modules/modular_computers/computers/item/computer.dm @@ -712,6 +712,8 @@ UpdateDisplay() /obj/item/modular_computer/ui_action_click(mob/user, actiontype) + if(!issilicon(user)) + playsound(src, SFX_KEYBOARD_CLICKS, 10, TRUE, FALSE) if(istype(actiontype, /datum/action/item_action/toggle_computer_light)) toggle_flashlight(user) return diff --git a/code/modules/pai/camera.dm b/code/modules/pai/camera.dm index 319f20e36999..1341288991fc 100644 --- a/code/modules/pai/camera.dm +++ b/code/modules/pai/camera.dm @@ -6,7 +6,7 @@ var/number = length(stored) picture.picture_name = "Image [number] (taken by [loc.name])" stored[picture] = TRUE - playsound(src, pick('sound/items/polaroid1.ogg', 'sound/items/polaroid2.ogg'), 75, TRUE, -3) + playsound(src, SFX_POLAROID, 75, TRUE, -3) balloon_alert(user, "image recorded") /** diff --git a/code/modules/photography/camera/camera_image_capturing.dm b/code/modules/photography/camera/camera_image_capturing.dm index d928164ff014..56e01de159c8 100644 --- a/code/modules/photography/camera/camera_image_capturing.dm +++ b/code/modules/photography/camera/camera_image_capturing.dm @@ -109,10 +109,7 @@ CHECK_TICK if(!silent) - if(istype(custom_sound)) //This is where the camera actually finishes its exposure. - playsound(loc, custom_sound, 75, TRUE, -3) - else - playsound(loc, pick('sound/items/polaroid1.ogg', 'sound/items/polaroid2.ogg'), 75, TRUE, -3) + playsound(src, custom_sound || SFX_POLAROID, 75, TRUE, -3) if(wipe_atoms) QDEL_LIST(atoms) diff --git a/code/modules/photography/camera/silicon_camera.dm b/code/modules/photography/camera/silicon_camera.dm index 9cdbee1bc2b7..c9514089526e 100644 --- a/code/modules/photography/camera/silicon_camera.dm +++ b/code/modules/photography/camera/silicon_camera.dm @@ -80,7 +80,7 @@ picture.picture_name = "Image [number] (taken by [loc.name])" stored[picture] = TRUE balloon_alert(user, "image recorded") - user.playsound_local(get_turf(user), pick('sound/items/polaroid1.ogg', 'sound/items/polaroid2.ogg'), 50, TRUE, -3) + user.playsound_local(user, SFX_POLAROID, 50, TRUE, -3) /obj/item/camera/siliconcam/robot_camera name = "Cyborg photo camera" @@ -102,7 +102,7 @@ picture.picture_name = "Image [number] (taken by [loc.name])" stored[picture] = TRUE balloon_alert(user, "image recorded and saved locally") - playsound(src, pick('sound/items/polaroid1.ogg', 'sound/items/polaroid2.ogg'), 75, TRUE, -3) + playsound(src, SFX_POLAROID, 75, TRUE, -3) /obj/item/camera/siliconcam/robot_camera/selectpicture(mob/living/silicon/robot/user) if(istype(user) && user.connected_ai) diff --git a/code/modules/projectiles/guns/ballistic.dm b/code/modules/projectiles/guns/ballistic.dm index 9c86f01f8a41..22a481571a7c 100644 --- a/code/modules/projectiles/guns/ballistic.dm +++ b/code/modules/projectiles/guns/ballistic.dm @@ -137,6 +137,16 @@ ///What is the cap on our misfire probability? Do not set this to 100. var/misfire_probability_cap = 25 + /// Fire Selector Variables /// + // /// Tracks the firemode of burst weapons. TRUE means it is in burst mode. + // var/burst_fire_selection = FALSE + // /// If it has an icon for a selector switch indicating current firemode. + // var/selector_switch_icon = FALSE + // /// Suppressor attached to the gun, if any + // var/obj/item/suppressor/suppressor = null + /// Sound played when the burst mode is changed + var/burst_select_sound = SFX_FIRE_MODE_SWITCH + /obj/item/gun/ballistic/Initialize(mapload) . = ..() if(!spawn_magazine_type) diff --git a/code/modules/projectiles/guns/ballistic/automatic.dm b/code/modules/projectiles/guns/ballistic/automatic.dm index be0a88788695..e2b4612d6413 100644 --- a/code/modules/projectiles/guns/ballistic/automatic.dm +++ b/code/modules/projectiles/guns/ballistic/automatic.dm @@ -42,7 +42,7 @@ fire_delay = initial(fire_delay) balloon_alert(user, "switched to [burst_size]-round burst") - playsound(user, 'sound/weapons/empty.ogg', 100, TRUE) + playsound(user, burst_select_sound || 'sound/weapons/empty.ogg', burst_select_sound ? 50 : 100, TRUE) update_appearance() update_item_action_buttons() diff --git a/code/modules/projectiles/guns/energy.dm b/code/modules/projectiles/guns/energy.dm index e8a623014270..17adc508b4e8 100644 --- a/code/modules/projectiles/guns/energy.dm +++ b/code/modules/projectiles/guns/energy.dm @@ -45,7 +45,7 @@ /// The amount restored by the gun to the cell per self charge tick // var/self_charge_amount = STANDARD_ENERGY_GUN_SELF_CHARGE_RATE /// sound played when fire mode select is done - // var/fire_mode_switch_sound = SFX_FIRE_MODE_SWITCH + var/fire_mode_switch_sound = SFX_FIRE_MODE_SWITCH // EMP related vars @@ -213,6 +213,8 @@ chambered = null recharge_newshot(TRUE) update_appearance() + if(fire_mode_switch_sound) + playsound(src, fire_mode_switch_sound, 50, TRUE) /obj/item/gun/energy/update_icon_state() var/skip_inhand = initial(inhand_icon_state) //only build if we aren't using a preset inhand icon diff --git a/code/modules/reagents/chemistry/recipes/pyrotechnics.dm b/code/modules/reagents/chemistry/recipes/pyrotechnics.dm index e6e22ee085f7..10dbfaa663a0 100644 --- a/code/modules/reagents/chemistry/recipes/pyrotechnics.dm +++ b/code/modules/reagents/chemistry/recipes/pyrotechnics.dm @@ -162,7 +162,7 @@ /datum/chemical_reaction/thermite results = list(/datum/reagent/thermite = 3) required_reagents = list(/datum/reagent/aluminium = 1, /datum/reagent/iron = 1, /datum/reagent/oxygen = 1) - reaction_tags = REACTION_TAG_EASY | REACTION_TAG_UNIQUE | REACTION_TAG_OTHER + reaction_tags = REACTION_TAG_EASY | REACTION_TAG_UNIQUE | REACTION_TAG_OTHER | REACTION_TAG_DAMAGING /datum/chemical_reaction/emp_pulse required_reagents = list(/datum/reagent/uranium = 1, /datum/reagent/iron = 1, /datum/reagent/aluminium = 1) diff --git a/code/modules/spells/spell_types/madness_curse.dm b/code/modules/spells/spell_types/madness_curse.dm index 91122b387bba..d186756b1c10 100644 --- a/code/modules/spells/spell_types/madness_curse.dm +++ b/code/modules/spells/spell_types/madness_curse.dm @@ -22,7 +22,7 @@ GLOBAL_VAR_INIT(curse_of_madness_triggered, FALSE) give_madness(to_curse, message) /proc/give_madness(mob/living/carbon/human/to_curse, message) - to_curse.playsound_local(get_turf(to_curse), 'sound/magic/curse.ogg', 40, 1) + to_curse.playsound_local(get_turf(to_curse), 'sound/effects/magic/curse.ogg', 40, 1) to_chat(to_curse, span_reallybig(span_hypnophrase(message))) to_chat(to_curse, span_warning("Your mind shatters!")) switch(rand(1, 10)) diff --git a/code/modules/surgery/operations/_operation.dm b/code/modules/surgery/operations/_operation.dm index e9cdf9f930c4..065c0e9e7831 100644 --- a/code/modules/surgery/operations/_operation.dm +++ b/code/modules/surgery/operations/_operation.dm @@ -133,7 +133,7 @@ visible_message( span_notice("[src] attempts to close [p_their()] own [limb.plaintext_zone] with [tool]..."), span_notice("You attempt to close your own [limb.plaintext_zone] with [tool]..."), - span_hear("You hear singing."), + span_hear("You hear [tool?.get_temperature() ? "singeing" : "stitching"] sounds."), vision_distance = 5, visible_message_flags = ALWAYS_SHOW_SELF_MESSAGE, ) @@ -149,7 +149,7 @@ visible_message( span_notice("[src] closes [p_their()] own [limb.plaintext_zone] with [tool]."), span_notice("You close your own [limb.plaintext_zone] with [tool]."), - span_hear("You hear singing."), + span_hear("You hear [tool?.get_temperature() ? "singeing" : "stitching"] sounds."), vision_distance = 5, visible_message_flags = ALWAYS_SHOW_SELF_MESSAGE, ) diff --git a/code/modules/surgery/operations/operation_amputation.dm b/code/modules/surgery/operations/operation_amputation.dm index c8b8b8ed7d66..349f90d7f913 100644 --- a/code/modules/surgery/operations/operation_amputation.dm +++ b/code/modules/surgery/operations/operation_amputation.dm @@ -26,7 +26,7 @@ return TOOL_SAW /datum/surgery_operation/limb/amputate/get_default_radial_image() - return image(/obj/item/shears) + return image('icons/hud/surgery_radial.dmi', "amputate") /datum/surgery_operation/limb/amputate/state_check(obj/item/bodypart/limb) if(limb.body_zone == BODY_ZONE_CHEST) diff --git a/code/modules/surgery/operations/operation_generic.dm b/code/modules/surgery/operations/operation_generic.dm index b3134250caea..e6e21bf57c28 100644 --- a/code/modules/surgery/operations/operation_generic.dm +++ b/code/modules/surgery/operations/operation_generic.dm @@ -29,7 +29,7 @@ return "Any sharp edged item" /datum/surgery_operation/limb/incise_skin/get_default_radial_image() - return image(/obj/item/scalpel) + return image('icons/hud/surgery_radial.dmi', "make_incision") /datum/surgery_operation/limb/incise_skin/tool_check(obj/item/tool) // Require edged sharpness OR a tool behavior match @@ -117,7 +117,7 @@ allow_stumps = TRUE /datum/surgery_operation/limb/retract_skin/get_default_radial_image() - return image(/obj/item/retractor) + return image('icons/hud/surgery_radial.dmi', "retract_skin") /datum/surgery_operation/limb/retract_skin/on_preop(obj/item/bodypart/limb, mob/living/surgeon, obj/item/tool, list/operation_args) display_results( @@ -173,7 +173,7 @@ return "Any heat source" /datum/surgery_operation/limb/close_skin/get_default_radial_image() - return image(/obj/item/cautery) + return image('icons/hud/surgery_radial.dmi', "mend_incision") /datum/surgery_operation/limb/close_skin/all_required_strings() return ..() + list("the limb must have skin") @@ -237,7 +237,7 @@ allow_stumps = TRUE /datum/surgery_operation/limb/clamp_bleeders/get_default_radial_image() - return image(/obj/item/hemostat) + return image('icons/hud/surgery_radial.dmi', "clamp_bleeders") /datum/surgery_operation/limb/clamp_bleeders/on_preop(obj/item/bodypart/limb, mob/living/surgeon, obj/item/tool, list/operation_args) display_results( @@ -285,7 +285,7 @@ allow_stumps = TRUE /datum/surgery_operation/limb/unclamp_bleeders/get_default_radial_image() - return image(/obj/item/hemostat) + return image('icons/hud/surgery_radial.dmi', "unclamp_bleeders") /datum/surgery_operation/limb/unclamp_bleeders/all_required_strings() return ..() + list("the limb must have blood vessels") @@ -351,7 +351,7 @@ return "Any sharp edged item with decent force" /datum/surgery_operation/limb/saw_bones/get_default_radial_image() - return image(/obj/item/circular_saw) + return image('icons/hud/surgery_radial.dmi', "saw_bones") /datum/surgery_operation/limb/saw_bones/tool_check(obj/item/tool) // Require edged sharpness and sufficient force OR a tool behavior match @@ -414,7 +414,7 @@ allow_stumps = TRUE /datum/surgery_operation/limb/fix_bones/get_default_radial_image() - return image(/obj/item/stack/medical/bone_gel) + return image('icons/hud/surgery_radial.dmi', "fix_bones") /datum/surgery_operation/limb/fix_bones/all_required_strings() return ..() + list("the limb must have bones") @@ -466,7 +466,7 @@ return "Any sharp pointed item with decent force" /datum/surgery_operation/limb/drill_bones/get_default_radial_image() - return image(/obj/item/surgicaldrill) + return image('icons/hud/surgery_radial.dmi', "drill_bones") /datum/surgery_operation/limb/drill_bones/tool_check(obj/item/tool) // Require pointy sharpness and sufficient force OR a tool behavior match @@ -500,7 +500,7 @@ /datum/surgery_operation/limb/incise_organs name = "incise organs" - desc = "Make an incision in patient's internal organ tissue to allow for manipulation or repair. \ + desc = "Make an incision in the patient's internal organ tissue to allow for manipulation or repair. \ Causes \"organs cut\" surgical state." required_bodytype = ~BODYTYPE_ROBOTIC replaced_by = /datum/surgery_operation/limb/incise_organs/abductor @@ -523,7 +523,7 @@ return "Any sharp edged item" /datum/surgery_operation/limb/incise_organs/get_default_radial_image() - return image(/obj/item/scalpel) + return image('icons/hud/surgery_radial.dmi', "incise_organs") /datum/surgery_operation/limb/incise_organs/tool_check(obj/item/tool) // Require edged sharpness OR a tool behavior match. Also saws are a no-go, you'll rip up the organs! diff --git a/code/modules/surgery/operations/operation_generic_basic.dm b/code/modules/surgery/operations/operation_generic_basic.dm index 3ab0b6bb57fc..d3cd0e2f8aed 100644 --- a/code/modules/surgery/operations/operation_generic_basic.dm +++ b/code/modules/surgery/operations/operation_generic_basic.dm @@ -28,7 +28,7 @@ return ..() + list("The patient must not have complex anatomy") /datum/surgery_operation/basic/incise_skin/get_default_radial_image() - return image(/obj/item/scalpel) + return image('icons/hud/surgery_radial.dmi', "make_incision") /datum/surgery_operation/basic/incise_skin/state_check(mob/living/patient) return !patient.has_limbs // Only for limbless mobs @@ -91,7 +91,7 @@ return ..() + list("The patient must not have complex anatomy") /datum/surgery_operation/basic/saw_bone/get_default_radial_image() - return image(/obj/item/circular_saw) + return image('icons/hud/surgery_radial.dmi', "mend_incision") /datum/surgery_operation/basic/saw_bone/state_check(mob/living/patient) return !patient.has_limbs // Only for limbless mobs diff --git a/code/modules/surgery/operations/operation_generic_mechanic.dm b/code/modules/surgery/operations/operation_generic_mechanic.dm index 868fafcac7c7..e7e0a0b1a155 100644 --- a/code/modules/surgery/operations/operation_generic_mechanic.dm +++ b/code/modules/surgery/operations/operation_generic_mechanic.dm @@ -22,7 +22,7 @@ return "Any sharp item" /datum/surgery_operation/limb/mechanical_incision/get_default_radial_image() - return image(/obj/item/screwdriver) + return image('icons/hud/surgery_radial.dmi', "unscrew_shell") /datum/surgery_operation/limb/mechanical_incision/tool_check(obj/item/tool) // Require any sharpness OR a tool behavior match @@ -64,7 +64,7 @@ allow_stumps = TRUE /datum/surgery_operation/limb/mechanical_open/get_default_radial_image() - return image('icons/hud/screen_gen.dmi', "arrow_large_still") + return image('icons/hud/surgery_radial.dmi', "open_hatch") /datum/surgery_operation/limb/mechanical_open/on_preop(obj/item/bodypart/limb, mob/living/surgeon, obj/item/tool, list/operation_args) display_results( @@ -109,7 +109,7 @@ return "Any sharp item" /datum/surgery_operation/limb/mechanical_close/get_default_radial_image() - return image(/obj/item/screwdriver) + return image('icons/hud/surgery_radial.dmi', "screw_shell") /datum/surgery_operation/limb/mechanical_close/tool_check(obj/item/tool) // Require any sharpness OR a tool behavior match @@ -155,7 +155,7 @@ allow_stumps = TRUE /datum/surgery_operation/limb/prepare_electronics/get_default_radial_image() - return image(/obj/item/multitool) + return image('icons/hud/surgery_radial.dmi', "prepare_electronics") /datum/surgery_operation/limb/prepare_electronics/on_preop(obj/item/bodypart/limb, mob/living/surgeon, obj/item/tool, list/operation_args) display_results( @@ -193,7 +193,7 @@ allow_stumps = TRUE /datum/surgery_operation/limb/mechanic_unwrench/get_default_radial_image() - return image(/obj/item/wrench) + return image('icons/hud/surgery_radial.dmi', "unwrench_endoskeleton") /datum/surgery_operation/limb/mechanic_unwrench/on_preop(obj/item/bodypart/limb, mob/living/surgeon, obj/item/tool, list/operation_args) display_results( @@ -236,7 +236,7 @@ return ..() + list("the limb must have bones") /datum/surgery_operation/limb/mechanic_wrench/get_default_radial_image() - return image(/obj/item/wrench) + return image('icons/hud/surgery_radial.dmi', "wrench_endoskeleton") /datum/surgery_operation/limb/mechanic_wrench/on_preop(obj/item/bodypart/limb, mob/living/surgeon, obj/item/tool, list/operation_args) display_results( diff --git a/code/modules/surgery/operations/operation_organ_manip.dm b/code/modules/surgery/operations/operation_organ_manip.dm index 3cff276ebfc4..063b1387de0c 100644 --- a/code/modules/surgery/operations/operation_organ_manip.dm +++ b/code/modules/surgery/operations/operation_organ_manip.dm @@ -106,7 +106,7 @@ var/datum/radial_menu_choice/option = LAZYACCESS(cached_organ_manipulation_options, "[organ.type]_remove") if(!option) option = new() - option.image = get_generic_limb_radial_image(limb.body_zone) + option.image = image('icons/hud/surgery_radial.dmi', "base") option.image.overlays += add_radial_overlays(organ.type) option.name = "remove [initial(organ.name)]" option.info = "Remove [initial(organ.name)] from the patient." @@ -120,7 +120,7 @@ var/datum/radial_menu_choice/option = LAZYACCESS(cached_organ_manipulation_options, "[organ.type]_insert") if(!option) option = new() - option.image = get_generic_limb_radial_image(limb.body_zone) + option.image = image('icons/hud/surgery_radial.dmi', "base") option.image.overlays += add_radial_overlays(list(image('icons/hud/screen_gen.dmi', "arrow_large_still"), organ.type)) option.name = "insert [initial(organ.name)]" option.info = "insert [initial(organ.name)] into the patient." diff --git a/code/modules/transport/tram/tram_floors.dm b/code/modules/transport/tram/tram_floors.dm index 9f0b6907fe9c..adf37e6a87f2 100644 --- a/code/modules/transport/tram/tram_floors.dm +++ b/code/modules/transport/tram/tram_floors.dm @@ -55,7 +55,7 @@ if(target == src) ScrapeAway(flags = CHANGETURF_INHERIT_AIR) return TRUE - if(severity < EXPLODE_DEVASTATE && is_shielded()) + if(is_explosion_shielded(severity)) return FALSE switch(severity) diff --git a/code/modules/unit_tests/focus_only_tests.dm b/code/modules/unit_tests/focus_only_tests.dm index ed27f6f1e08e..c69dad23a9a9 100644 --- a/code/modules/unit_tests/focus_only_tests.dm +++ b/code/modules/unit_tests/focus_only_tests.dm @@ -47,3 +47,6 @@ /// Checks icon states generated at runtime are valid /datum/unit_test/focus_only/runtime_icon_states + +/// Checks that foodtypes are the same for food whether it's spawned or crafted (with the exact required types) +/datum/unit_test/focus_only/check_foodtypes diff --git a/code/modules/wiremod/shell/controller.dm b/code/modules/wiremod/shell/controller.dm index 7dedd62d0ccd..b4498d7d8386 100644 --- a/code/modules/wiremod/shell/controller.dm +++ b/code/modules/wiremod/shell/controller.dm @@ -55,7 +55,7 @@ /obj/item/circuit_component/controller/proc/handle_trigger(atom/source, user, port_name, datum/port/output/port_signal) source.balloon_alert(user, "clicked [port_name] button") - playsound(source, SFX_TERMINAL_TYPE, 25, FALSE) + playsound(source, SFX_KEYBOARD_CLICKS, 25, FALSE) entity.set_output(user) port_signal.set_output(COMPONENT_SIGNAL) diff --git a/goon/icons/obj/attribution.txt b/goon/icons/obj/attribution.txt index 33b7a193859b..7bf1370c9a22 100644 --- a/goon/icons/obj/attribution.txt +++ b/goon/icons/obj/attribution.txt @@ -1 +1 @@ -itemdispenser.dmi sourced from https://github.com/goonstation/goonstation/blob/master/icons/obj/stationobjs.dmi licensed under CC-BY-NC-SA \ No newline at end of file +itemdispenser.dmi sourced from https://github.com/goonstation/goonstation/blob/master/icons/obj/stationobjs.dmi licensed under CC-BY-NC-SA diff --git a/icons/hud/screen_alert.dmi b/icons/hud/screen_alert.dmi index a7ea0dd9dbf9..833ea1dba72f 100644 Binary files a/icons/hud/screen_alert.dmi and b/icons/hud/screen_alert.dmi differ diff --git a/icons/hud/surgery_radial.dmi b/icons/hud/surgery_radial.dmi new file mode 100644 index 000000000000..8aa49694e065 Binary files /dev/null and b/icons/hud/surgery_radial.dmi differ diff --git a/icons/obj/food/food.dmi b/icons/obj/food/food.dmi index 8d8b9d6bfaf8..7bf4d0297357 100644 Binary files a/icons/obj/food/food.dmi and b/icons/obj/food/food.dmi differ diff --git a/icons/obj/food/spaghetti.dmi b/icons/obj/food/spaghetti.dmi index 1c97a45e7b78..0d5e473e9b4b 100644 Binary files a/icons/obj/food/spaghetti.dmi and b/icons/obj/food/spaghetti.dmi differ diff --git a/maplestation.dme b/maplestation.dme index 7448fadbcaaf..37e4499c977c 100644 --- a/maplestation.dme +++ b/maplestation.dme @@ -1613,6 +1613,7 @@ #include "code\datums\looping_sounds\burning.dm" #include "code\datums\looping_sounds\choking.dm" #include "code\datums\looping_sounds\cyborg.dm" +#include "code\datums\looping_sounds\drip.dm" #include "code\datums\looping_sounds\item_sounds.dm" #include "code\datums\looping_sounds\machinery_sounds.dm" #include "code\datums\looping_sounds\music.dm" @@ -1847,7 +1848,6 @@ #include "code\datums\status_effects\agent_pinpointer.dm" #include "code\datums\status_effects\buffs.dm" #include "code\datums\status_effects\drug_effects.dm" -#include "code\datums\status_effects\food_effects.dm" #include "code\datums\status_effects\gas.dm" #include "code\datums\status_effects\grouped_effect.dm" #include "code\datums\status_effects\limited_effect.dm" @@ -1855,8 +1855,6 @@ #include "code\datums\status_effects\song_effects.dm" #include "code\datums\status_effects\stacking_effect.dm" #include "code\datums\status_effects\wound_effects.dm" -#include "code\datums\status_effects\buffs\food_haste.dm" -#include "code\datums\status_effects\buffs\food_traits.dm" #include "code\datums\status_effects\buffs\stop_drop_roll.dm" #include "code\datums\status_effects\buffs\stun_absorption.dm" #include "code\datums\status_effects\buffs\bioware\_bioware.dm" @@ -1864,6 +1862,9 @@ #include "code\datums\status_effects\buffs\bioware\cortex.dm" #include "code\datums\status_effects\buffs\bioware\ligaments.dm" #include "code\datums\status_effects\buffs\bioware\nerves.dm" +#include "code\datums\status_effects\buffs\food\_food_effect.dm" +#include "code\datums\status_effects\buffs\food\grant_trait.dm" +#include "code\datums\status_effects\buffs\food\haste.dm" #include "code\datums\status_effects\debuffs\blindness.dm" #include "code\datums\status_effects\debuffs\block_radio.dm" #include "code\datums\status_effects\debuffs\choke.dm" @@ -1972,6 +1973,7 @@ #include "code\game\say.dm" #include "code\game\shuttle_engines.dm" #include "code\game\sound.dm" +#include "code\game\sound_keys.dm" #include "code\game\world.dm" #include "code\game\area\ai_monitored.dm" #include "code\game\area\areas.dm" diff --git a/maplestation_modules/code/modules/food_and_drinks/food/eggs.dm b/maplestation_modules/code/modules/food_and_drinks/food/eggs.dm index 50c33163bc33..275563ece0f3 100644 --- a/maplestation_modules/code/modules/food_and_drinks/food/eggs.dm +++ b/maplestation_modules/code/modules/food_and_drinks/food/eggs.dm @@ -21,7 +21,7 @@ bite_consumption = EGGS_TRUE_HERO w_class = WEIGHT_CLASS_NORMAL tastes = list("egg" = 1, "cheese" = 1, "biscuit" = 2, "obesity" = 10) - foodtypes = MEAT | BREAKFAST | DAIRY | GRAIN + foodtypes = MEAT | BREAKFAST | DAIRY | GRAIN | EGG /// Our challenger var/datum/weakref/current_challenger_weak = null /// The time given to finish diff --git a/maplestation_modules/code/modules/food_and_drinks/food/pizza.dm b/maplestation_modules/code/modules/food_and_drinks/food/pizza.dm index 9d866f163aef..40d2322fd06a 100644 --- a/maplestation_modules/code/modules/food_and_drinks/food/pizza.dm +++ b/maplestation_modules/code/modules/food_and_drinks/food/pizza.dm @@ -19,7 +19,7 @@ /obj/item/food/pizza/spaghetti/raw name = "raw pizzaghetti" icon_state = "pizzaghetti_raw" - foodtypes = GRAIN | VEGETABLES | DAIRY | BREAKFAST | RAW + foodtypes = GRAIN | VEGETABLES | DAIRY | RAW slice_type = null /obj/item/food/pizza/spaghetti/raw/make_bakeable() @@ -32,6 +32,5 @@ icon = 'maplestation_modules/icons/obj/food/pizza.dmi' icon_state = "pizzaghettislice" tastes = list("crust" = 1, "tomato" = 1, "cheese" = 1, "meat" = 1, "spaghetti" = 2) - foodtypes = GRAIN | VEGETABLES | DAIRY | BREAKFAST + foodtypes = GRAIN | VEGETABLES | DAIRY crafting_complexity = FOOD_COMPLEXITY_3 - diff --git a/maplestation_modules/code/modules/food_and_drinks/food/starfruit.dm b/maplestation_modules/code/modules/food_and_drinks/food/starfruit.dm index 111c069015b2..d30473bb37b2 100644 --- a/maplestation_modules/code/modules/food_and_drinks/food/starfruit.dm +++ b/maplestation_modules/code/modules/food_and_drinks/food/starfruit.dm @@ -11,7 +11,7 @@ /datum/reagent/consumable/starfruit_juice = 5, ) tastes = list("tender meat" = 2, "sweet sauce" = 1, "sugary glaze" = 1) - foodtypes = MEAT + foodtypes = MEAT | FRUIT | SUGAR crafting_complexity = FOOD_COMPLEXITY_4 /obj/item/food/meat_platter @@ -27,7 +27,7 @@ /datum/reagent/consumable/starfruit_juice = 10, ) tastes = list("tender meat" = 2, "sweet sauce" = 1, "smokey BBQ" = 1, "sugary glaze" = 1) - foodtypes = MEAT + foodtypes = MEAT | VEGETABLES | FRUIT | SUGAR crafting_complexity = FOOD_COMPLEXITY_5 /obj/item/food/starfruit_chicken_alfredo @@ -42,7 +42,7 @@ /datum/reagent/consumable/starfruit_juice = 10, ) tastes = list("sweet chicken" = 2, "creamy sauce" = 1, "cursed knowledge" = 1, "tasty noodles" = 1) - foodtypes = MEAT | GRAIN + foodtypes = MEAT | GRAIN | FRUIT | SUGAR crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/starfruit_sushi_roll @@ -55,7 +55,7 @@ /datum/reagent/consumable/nutriment/vitamin = 4, ) tastes = list("boiled rice" = 2, "starfruit" = 2, "fish" = 2) - foodtypes = SEAFOOD + foodtypes = VEGETABLES | GRAIN | FRUIT | SUGAR | SEAFOOD w_class = WEIGHT_CLASS_SMALL crafting_complexity = FOOD_COMPLEXITY_3 @@ -88,7 +88,7 @@ /datum/reagent/consumable/starfruit_juice = 10, ) tastes = list("raw fish" = 2, "sweet fish" = 1, "soy sauce" = 1) - foodtypes = SEAFOOD + foodtypes = SEAFOOD | FRUIT | SUGAR crafting_complexity = FOOD_COMPLEXITY_2 /obj/item/food/eggplant_fry @@ -103,7 +103,7 @@ /datum/reagent/consumable/starfruit_juice = 10, ) tastes = list("eggplant" = 2, "simmered starfruit" = 1, "sauteed vegetables" = 1) - foodtypes = VEGETABLES + foodtypes = VEGETABLES | FRUIT | SUGAR crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/starfruit_tofu_beef @@ -133,7 +133,7 @@ /datum/reagent/consumable/starfruit_juice = 10, ) tastes = list("eggplant" = 2, "simmered starfruit" = 1, "sautaed vegetables" = 1) - foodtypes = GRAIN | MEAT + foodtypes = MEAT | VEGETABLES | GRAIN | FRUIT | SUGAR crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/cake/starfruit @@ -186,7 +186,7 @@ /datum/reagent/consumable/nutriment/vitamin = 5, ) tastes = list("pie" = 1, "sugar" = 2, "starfruit" = 1, "cosmic longing" = 1) - foodtypes = GRAIN | FRUIT + foodtypes = GRAIN | FRUIT | DAIRY | SUGAR /obj/item/food/starfruit_toast name = "starfruit jellied toast" @@ -214,7 +214,7 @@ /datum/reagent/consumable/nutriment/vitamin = 6, ) tastes = list("starfruit" = 1, "pie" = 1, "cosmic longing" = 1) - foodtypes = GRAIN | FRUIT | SUGAR + foodtypes = GRAIN | FRUIT | DAIRY | SUGAR slice_type = /obj/item/food/pieslice/starfruit_pie crafting_complexity = FOOD_COMPLEXITY_3 @@ -224,7 +224,7 @@ icon = 'maplestation_modules/icons/obj/food/starfruit.dmi' icon_state = "starfruitpie_slice" tastes = list("pie" = 1, "starfruit" = 1, "cosmic longing" = 1) - foodtypes = GRAIN | FRUIT | SUGAR + foodtypes = GRAIN | FRUIT | DAIRY | SUGAR crafting_complexity = FOOD_COMPLEXITY_3 /obj/item/food/starfruit_compote @@ -266,7 +266,7 @@ /datum/reagent/consumable/nutriment/vitamin = 2, ) tastes = list("cake" = 3, "starfruit" = 1) - foodtypes = GRAIN | FRUIT | SUGAR + foodtypes = GRAIN | FRUIT | DAIRY | SUGAR food_flags = FOOD_FINGER_FOOD w_class = WEIGHT_CLASS_SMALL crafting_complexity = FOOD_COMPLEXITY_3 diff --git a/maplestation_modules/code/modules/food_and_drinks/recipes/food/egg_recipes.dm b/maplestation_modules/code/modules/food_and_drinks/recipes/food/egg_recipes.dm index a749d70db31e..9b7d500d410c 100644 --- a/maplestation_modules/code/modules/food_and_drinks/recipes/food/egg_recipes.dm +++ b/maplestation_modules/code/modules/food_and_drinks/recipes/food/egg_recipes.dm @@ -7,4 +7,5 @@ /obj/item/food/meatball = 3, ) result = /obj/item/food/omelette/eggcellent_plate - category = CAT_EGG + cuisine_category = CUISINE_TERRAN + dish_category = DISH_UNCATEGORIZED diff --git a/maplestation_modules/code/modules/food_and_drinks/recipes/food/pizza_recipes.dm b/maplestation_modules/code/modules/food_and_drinks/recipes/food/pizza_recipes.dm index 35bce0206882..885b5ddbe958 100644 --- a/maplestation_modules/code/modules/food_and_drinks/recipes/food/pizza_recipes.dm +++ b/maplestation_modules/code/modules/food_and_drinks/recipes/food/pizza_recipes.dm @@ -6,4 +6,6 @@ /obj/item/food/spaghetti/boiledspaghetti = 2, ) result = /obj/item/food/pizza/spaghetti/raw - category = CAT_PIZZA + cuisine_category = CUISINE_ITALIAN + dish_category = DISH_PIZZA // or DISH_NOODLES ? + added_foodtypes = RAW diff --git a/maplestation_modules/code/modules/food_and_drinks/recipes/food/starfruit_recipes.dm b/maplestation_modules/code/modules/food_and_drinks/recipes/food/starfruit_recipes.dm index 5849fd817078..dcae7cd3645a 100644 --- a/maplestation_modules/code/modules/food_and_drinks/recipes/food/starfruit_recipes.dm +++ b/maplestation_modules/code/modules/food_and_drinks/recipes/food/starfruit_recipes.dm @@ -6,7 +6,8 @@ /datum/reagent/consumable/starfruit_juice = 5, ) result = /obj/item/food/starfruit_ribs - category = CAT_MEAT + cuisine_category = CUISINE_STARFRUIT + dish_category = DISH_MEAT /datum/crafting_recipe/food/meat_platter name = "BBQ Meat Platter" @@ -16,7 +17,8 @@ /obj/item/food/roasted_bell_pepper = 2, ) result = /obj/item/food/meat_platter - category = CAT_MEAT + cuisine_category = CUISINE_STARFRUIT + dish_category = DISH_MEAT /datum/crafting_recipe/food/starfruit_chicken_alfredo name = "Starfruit Chicken Alfredo" @@ -27,7 +29,9 @@ /obj/item/food/spaghetti/boiledspaghetti = 1 ) result = /obj/item/food/starfruit_chicken_alfredo - category = CAT_MISCFOOD + cuisine_category = CUISINE_STARFRUIT + dish_category = DISH_NOODLES + removed_foodtypes = RAW /datum/crafting_recipe/food/starfruit_sushi_roll name = "Starfruit Sushi Roll" @@ -37,7 +41,9 @@ /obj/item/food/starfruit_sashimi = 1, ) result = /obj/item/food/starfruit_sushi_roll - category = CAT_SEAFOOD + cuisine_category = CUISINE_STARFRUIT + dish_category = DISH_SUSHI + removed_foodtypes = BREAKFAST /datum/crafting_recipe/food/starfruit_sashimi name = "Starfruit Sashimi" @@ -47,7 +53,8 @@ /obj/item/food/grown/starfruit = 1, ) result = /obj/item/food/starfruit_sashimi - category = CAT_SEAFOOD + cuisine_category = CUISINE_STARFRUIT + dish_category = DISH_SUSHI /datum/crafting_recipe/food/eggplant_fry name = "Starfruit Eggplant Stir Fry" @@ -59,7 +66,8 @@ /obj/item/food/grown/carrot = 1, ) result = /obj/item/food/eggplant_fry - category = CAT_MISCFOOD + cuisine_category = CUISINE_STARFRUIT + dish_category = DISH_SALAD /datum/crafting_recipe/food/starfruit_tofu_beef name = "Starfruit Tofu Beef Teriyaki" @@ -71,7 +79,8 @@ /datum/reagent/consumable/nutriment/soup/teriyaki = 5, ) result = /obj/item/food/starfruit_tofu_beef - category = CAT_MISCFOOD + cuisine_category = CUISINE_STARFRUIT + dish_category = DISH_NOODLES /datum/crafting_recipe/food/starfruit_noodles name = "Starfruit Noodles" @@ -82,7 +91,8 @@ /obj/item/food/spaghetti/pastatomato = 1, ) result = /obj/item/food/starfruit_noodles - category = CAT_MISCFOOD + cuisine_category = CUISINE_STARFRUIT + dish_category = DISH_NOODLES /datum/crafting_recipe/food/starfruit_cake name = "Starfruit Cake" @@ -91,7 +101,9 @@ /obj/item/food/grown/starfruit = 5 ) result = /obj/item/food/cake/starfruit - category = CAT_CAKE + cuisine_category = CUISINE_STARFRUIT + dish_category = DISH_CAKE + meal_category = MEAL_DESSERT /datum/crafting_recipe/bottled/starfruit_jelly name = "Starfruit Jelly" @@ -100,7 +112,7 @@ /datum/reagent/water = 25, ) result = /obj/item/reagent_containers/condiment/starfruit_jelly - category = CAT_MISCFOOD + category = CAT_DRINK /datum/crafting_recipe/food/macaron/starfruit name = "Starfruit Macaron" @@ -111,7 +123,9 @@ /datum/reagent/consumable/starfruit_jelly = 5, ) result = /obj/item/food/cookie/macaron/starfruit - category = CAT_PASTRY + cuisine_category = CUISINE_STARFRUIT + dish_category = DISH_COOKIE + meal_category = MEAL_SNACK /datum/crafting_recipe/food/starfruit_cobbler name = "Starfruit Cobbler" @@ -121,7 +135,9 @@ /datum/reagent/consumable/starfruit_jelly = 10, ) result = /obj/item/food/pie/starfruit_cobbler - category = CAT_PASTRY + cuisine_category = CUISINE_STARFRUIT + dish_category = DISH_PASTRY + meal_category = MEAL_DESSERT /datum/crafting_recipe/food/starfruit_toast name = "Starfruit Jelly Toast" @@ -130,7 +146,10 @@ /datum/reagent/consumable/starfruit_jelly = 5, ) result = /obj/item/food/starfruit_toast - category = CAT_BREAD + cuisine_category = CUISINE_STARFRUIT + dish_category = DISH_BREAD + meal_category = MEAL_BREAKFAST + added_foodtypes = BREAKFAST /datum/crafting_recipe/food/starfruit_pie name = "Starfruit Pie" @@ -139,7 +158,9 @@ /obj/item/food/grown/starfruit = 2, ) result = /obj/item/food/pie/starfruit_pie - category = CAT_PASTRY + cuisine_category = CUISINE_STARFRUIT + dish_category = DISH_PIE + meal_category = MEAL_DESSERT /datum/crafting_recipe/food/starfruit_compote name = "Starfruit Compote" @@ -149,7 +170,9 @@ /datum/reagent/consumable/ethanol/cognac = 10, ) result = /obj/item/food/starfruit_compote - category = CAT_MISCFOOD + cuisine_category = CUISINE_STARFRUIT + dish_category = DISH_SALAD + meal_category = MEAL_DESSERT /datum/crafting_recipe/food/starfruit_brulee name = "Starfruit Creme Brulee" @@ -161,7 +184,9 @@ /datum/reagent/consumable/eggwhite = 4, ) result = /obj/item/food/starfruit_brulee - category = CAT_MISCFOOD + cuisine_category = CUISINE_STARFRUIT + dish_category = DISH_UNCATEGORIZED + meal_category = MEAL_DESSERT /datum/crafting_recipe/food/starfruit_cupcake name = "Starfruit Cupcake" @@ -170,4 +195,7 @@ /obj/item/food/grown/starfruit = 2 ) result = /obj/item/food/starfruit_cupcake - category = CAT_PASTRY + added_foodtypes = SUGAR + cuisine_category = CUISINE_STARFRUIT + dish_category = DISH_PASTRY + meal_category = MEAL_DESSERT diff --git a/sound/ambience/maintenance/ambimaint.ogg b/sound/ambience/maintenance/ambimaint.ogg new file mode 100644 index 000000000000..d1c832e31d60 Binary files /dev/null and b/sound/ambience/maintenance/ambimaint.ogg differ diff --git a/sound/ambience/maintenance/ambimaint1.ogg b/sound/ambience/maintenance/ambimaint1.ogg new file mode 100644 index 000000000000..2bdc0c3e9d09 Binary files /dev/null and b/sound/ambience/maintenance/ambimaint1.ogg differ diff --git a/sound/ambience/maintenance/ambimaint10.ogg b/sound/ambience/maintenance/ambimaint10.ogg new file mode 100644 index 000000000000..c51df1d55307 Binary files /dev/null and b/sound/ambience/maintenance/ambimaint10.ogg differ diff --git a/sound/ambience/ambimaint11.ogg b/sound/ambience/maintenance/ambimaint11.ogg similarity index 100% rename from sound/ambience/ambimaint11.ogg rename to sound/ambience/maintenance/ambimaint11.ogg diff --git a/sound/ambience/maintenance/ambimaint12.ogg b/sound/ambience/maintenance/ambimaint12.ogg new file mode 100644 index 000000000000..3b7886dd8de2 Binary files /dev/null and b/sound/ambience/maintenance/ambimaint12.ogg differ diff --git a/sound/ambience/maintenance/ambimaint2.ogg b/sound/ambience/maintenance/ambimaint2.ogg new file mode 100644 index 000000000000..458707e77288 Binary files /dev/null and b/sound/ambience/maintenance/ambimaint2.ogg differ diff --git a/sound/ambience/maintenance/ambimaint3.ogg b/sound/ambience/maintenance/ambimaint3.ogg new file mode 100644 index 000000000000..f99df8bd2b79 Binary files /dev/null and b/sound/ambience/maintenance/ambimaint3.ogg differ diff --git a/sound/ambience/maintenance/ambimaint4.ogg b/sound/ambience/maintenance/ambimaint4.ogg new file mode 100644 index 000000000000..71b2b6b18538 Binary files /dev/null and b/sound/ambience/maintenance/ambimaint4.ogg differ diff --git a/sound/ambience/maintenance/ambimaint5.ogg b/sound/ambience/maintenance/ambimaint5.ogg new file mode 100644 index 000000000000..acd2d7d40150 Binary files /dev/null and b/sound/ambience/maintenance/ambimaint5.ogg differ diff --git a/sound/ambience/ambimaint6.ogg b/sound/ambience/maintenance/ambimaint6.ogg similarity index 100% rename from sound/ambience/ambimaint6.ogg rename to sound/ambience/maintenance/ambimaint6.ogg diff --git a/sound/ambience/ambimaint7.ogg b/sound/ambience/maintenance/ambimaint7.ogg similarity index 100% rename from sound/ambience/ambimaint7.ogg rename to sound/ambience/maintenance/ambimaint7.ogg diff --git a/sound/ambience/ambimaint8.ogg b/sound/ambience/maintenance/ambimaint8.ogg similarity index 100% rename from sound/ambience/ambimaint8.ogg rename to sound/ambience/maintenance/ambimaint8.ogg diff --git a/sound/ambience/ambimaint9.ogg b/sound/ambience/maintenance/ambimaint9.ogg similarity index 100% rename from sound/ambience/ambimaint9.ogg rename to sound/ambience/maintenance/ambimaint9.ogg diff --git a/sound/ambience/maintenance/source_corridor2.ogg b/sound/ambience/maintenance/source_corridor2.ogg new file mode 100644 index 000000000000..fbf77382d62a Binary files /dev/null and b/sound/ambience/maintenance/source_corridor2.ogg differ diff --git a/sound/attributions.txt b/sound/attributions.txt index 3ffff9d6ae05..a0c1663faf5d 100644 --- a/sound/attributions.txt +++ b/sound/attributions.txt @@ -23,7 +23,6 @@ champagne_pop.ogg is credited to ultradust on freesound https://freesound.org/pe can_open.ogg adapted from https://freesound.org/people/MaxDemianAGL/sounds/130031/ can_shake.ogg adapted from https://freesound.org/people/mcmast/sounds/456703/ - splatter.ogg adapted from https://freesound.org/people/Rocktopus/sounds/233418/ hohoho.ogg and hehe.ogg are cut from a recording by Nanakisan on freesound: https://freesound.org/people/Nanakisan/sounds/253534/ mbox_full.ogg and mbox_end.ogg make use of The Ragtime Drummer by James Lent, in the public domain @@ -182,7 +181,6 @@ liquid_pour2.ogg and liquid_pour3.ogg were cut from https://freesound.org/people/MattRuthSound/sounds/561896/ https://freesound.org/people/MattRuthSound/sounds/561895/ - roaring_fire.ogg made from: 10835 big fire loop.wav by Robinhood76 -- https://freesound.org/s/612277/ -- License: Attribution NonCommercial 4.0 fire_puff made from: Bonfire Being Lit by samararaine -- https://freesound.org/s/186374/ -- License: Creative Commons 0 @@ -199,3 +197,11 @@ https://freesound.org/people/Nightflame/sounds/368615/ cryo_1.ogg, cryo_2.ogg, cryo_3.ogg, cryo_4.ogg, cryo_5.ogg, cryo_6.ogg, cryo_7.ogg, cryo_8.ogg, cryo_9.ogg, cryo_10.ogg: converted to OGG / split apart (but is otherwise unchanged) -- original from https://freesound.org/people/DudeAwesome/sounds/386023/ by DudeAwesome -- License: CC BY 4.0 + +sound/machines/sink-faucet.ogg -- https://freesound.org/people/FOSSarts/sounds/740086/ -- by FOSSarts (CC0) + +sound/items/dice_roll.ogg -- https://freesound.org/people/Crovic/sounds/661935/ -- by Crovic (CC0) + +sound/effect/droplet.ogg -- "Drop - Water" By mattfinarelli -- https://freesound.org/people/mattfinarelli/sounds/533146/ -- License: Creative Commons 0 + +gun_mode_switch1.ogg made by grungussuss, license: CC-BY-SA diff --git a/sound/effects/droplet.ogg b/sound/effects/droplet.ogg new file mode 100644 index 000000000000..b747fa5b7934 Binary files /dev/null and b/sound/effects/droplet.ogg differ diff --git a/sound/effects/magic/attribution.txt b/sound/effects/magic/attribution.txt new file mode 100644 index 000000000000..448707cd70c7 --- /dev/null +++ b/sound/effects/magic/attribution.txt @@ -0,0 +1,2 @@ +curse.ogg made by sadboysuss +license: CC-BY-SA \ No newline at end of file diff --git a/sound/effects/magic/curse.ogg b/sound/effects/magic/curse.ogg new file mode 100644 index 000000000000..b9134da2c5a9 Binary files /dev/null and b/sound/effects/magic/curse.ogg differ diff --git a/sound/items/cutlery/attribution.txt b/sound/items/cutlery/attribution.txt new file mode 100644 index 000000000000..9ee0e20ae82c --- /dev/null +++ b/sound/items/cutlery/attribution.txt @@ -0,0 +1 @@ +cutlery sounds made by grungussuss, license: CC-BY-SA \ No newline at end of file diff --git a/sound/items/cutlery/cutlery_drop1.ogg b/sound/items/cutlery/cutlery_drop1.ogg new file mode 100644 index 000000000000..1da05305b453 Binary files /dev/null and b/sound/items/cutlery/cutlery_drop1.ogg differ diff --git a/sound/items/cutlery/cutlery_drop2.ogg b/sound/items/cutlery/cutlery_drop2.ogg new file mode 100644 index 000000000000..04d580c9cac0 Binary files /dev/null and b/sound/items/cutlery/cutlery_drop2.ogg differ diff --git a/sound/items/cutlery/cutlery_drop3.ogg b/sound/items/cutlery/cutlery_drop3.ogg new file mode 100644 index 000000000000..cff9c5036373 Binary files /dev/null and b/sound/items/cutlery/cutlery_drop3.ogg differ diff --git a/sound/items/cutlery/cutlery_pickup1.ogg b/sound/items/cutlery/cutlery_pickup1.ogg new file mode 100644 index 000000000000..81954f866bdc Binary files /dev/null and b/sound/items/cutlery/cutlery_pickup1.ogg differ diff --git a/sound/items/cutlery/cutlery_pickup2.ogg b/sound/items/cutlery/cutlery_pickup2.ogg new file mode 100644 index 000000000000..a57f0ac38712 Binary files /dev/null and b/sound/items/cutlery/cutlery_pickup2.ogg differ diff --git a/sound/items/cutlery/cutlery_pickup3.ogg b/sound/items/cutlery/cutlery_pickup3.ogg new file mode 100644 index 000000000000..c005647b334d Binary files /dev/null and b/sound/items/cutlery/cutlery_pickup3.ogg differ diff --git a/sound/items/dice_roll.ogg b/sound/items/dice_roll.ogg new file mode 100644 index 000000000000..71048df839b4 Binary files /dev/null and b/sound/items/dice_roll.ogg differ diff --git a/sound/items/food_plate/attribution.txt b/sound/items/food_plate/attribution.txt new file mode 100644 index 000000000000..d0f798f240ce --- /dev/null +++ b/sound/items/food_plate/attribution.txt @@ -0,0 +1 @@ +food plate sounds made by grungussuss, license: CC-BY-SA \ No newline at end of file diff --git a/sound/items/food_plate/food_plate_drop1.ogg b/sound/items/food_plate/food_plate_drop1.ogg new file mode 100644 index 000000000000..99245b3daf29 Binary files /dev/null and b/sound/items/food_plate/food_plate_drop1.ogg differ diff --git a/sound/items/food_plate/food_plate_drop2.ogg b/sound/items/food_plate/food_plate_drop2.ogg new file mode 100644 index 000000000000..fa977ec069bb Binary files /dev/null and b/sound/items/food_plate/food_plate_drop2.ogg differ diff --git a/sound/items/food_plate/food_plate_drop3.ogg b/sound/items/food_plate/food_plate_drop3.ogg new file mode 100644 index 000000000000..13a299bdb4de Binary files /dev/null and b/sound/items/food_plate/food_plate_drop3.ogg differ diff --git a/sound/items/food_plate/food_plate_pickup1.ogg b/sound/items/food_plate/food_plate_pickup1.ogg new file mode 100644 index 000000000000..ab29c1775ff0 Binary files /dev/null and b/sound/items/food_plate/food_plate_pickup1.ogg differ diff --git a/sound/items/food_plate/food_plate_pickup2.ogg b/sound/items/food_plate/food_plate_pickup2.ogg new file mode 100644 index 000000000000..9ee5f31e0602 Binary files /dev/null and b/sound/items/food_plate/food_plate_pickup2.ogg differ diff --git a/sound/items/food_plate/food_plate_pickup3.ogg b/sound/items/food_plate/food_plate_pickup3.ogg new file mode 100644 index 000000000000..d4442ee05a11 Binary files /dev/null and b/sound/items/food_plate/food_plate_pickup3.ogg differ diff --git a/sound/items/knife/attribution.txt b/sound/items/knife/attribution.txt new file mode 100644 index 000000000000..670d04e5209a --- /dev/null +++ b/sound/items/knife/attribution.txt @@ -0,0 +1 @@ +knife sounds made by grungussuss, license: CC-BY-SA \ No newline at end of file diff --git a/sound/items/knife/knife_drop1.ogg b/sound/items/knife/knife_drop1.ogg new file mode 100644 index 000000000000..c42c96ff42f4 Binary files /dev/null and b/sound/items/knife/knife_drop1.ogg differ diff --git a/sound/items/knife/knife_drop2.ogg b/sound/items/knife/knife_drop2.ogg new file mode 100644 index 000000000000..41a7bb28894b Binary files /dev/null and b/sound/items/knife/knife_drop2.ogg differ diff --git a/sound/items/knife/knife_drop3.ogg b/sound/items/knife/knife_drop3.ogg new file mode 100644 index 000000000000..edd938845de1 Binary files /dev/null and b/sound/items/knife/knife_drop3.ogg differ diff --git a/sound/items/knife/knife_pickup1.ogg b/sound/items/knife/knife_pickup1.ogg new file mode 100644 index 000000000000..b61b25b5745b Binary files /dev/null and b/sound/items/knife/knife_pickup1.ogg differ diff --git a/sound/items/knife/knife_pickup2.ogg b/sound/items/knife/knife_pickup2.ogg new file mode 100644 index 000000000000..afa278ade874 Binary files /dev/null and b/sound/items/knife/knife_pickup2.ogg differ diff --git a/sound/items/knife/knife_pickup3.ogg b/sound/items/knife/knife_pickup3.ogg new file mode 100644 index 000000000000..c3b0bbc3c31b Binary files /dev/null and b/sound/items/knife/knife_pickup3.ogg differ diff --git a/sound/items/knife/knife_slice1.ogg b/sound/items/knife/knife_slice1.ogg new file mode 100644 index 000000000000..505b37b48387 Binary files /dev/null and b/sound/items/knife/knife_slice1.ogg differ diff --git a/sound/items/knife/knife_slice2.ogg b/sound/items/knife/knife_slice2.ogg new file mode 100644 index 000000000000..12ebc62f6edb Binary files /dev/null and b/sound/items/knife/knife_slice2.ogg differ diff --git a/sound/items/knife/knife_slice3.ogg b/sound/items/knife/knife_slice3.ogg new file mode 100644 index 000000000000..70a6986515dc Binary files /dev/null and b/sound/items/knife/knife_slice3.ogg differ diff --git a/sound/items/knife/knife_slice4.ogg b/sound/items/knife/knife_slice4.ogg new file mode 100644 index 000000000000..24ae9cc2ac78 Binary files /dev/null and b/sound/items/knife/knife_slice4.ogg differ diff --git a/sound/items/knife/knife_slice5.ogg b/sound/items/knife/knife_slice5.ogg new file mode 100644 index 000000000000..f6e804a8f949 Binary files /dev/null and b/sound/items/knife/knife_slice5.ogg differ diff --git a/sound/items/knife/knife_slice6.ogg b/sound/items/knife/knife_slice6.ogg new file mode 100644 index 000000000000..17a0cf294acc Binary files /dev/null and b/sound/items/knife/knife_slice6.ogg differ diff --git a/sound/items/pot/attribution.txt b/sound/items/pot/attribution.txt new file mode 100644 index 000000000000..313416398a25 --- /dev/null +++ b/sound/items/pot/attribution.txt @@ -0,0 +1 @@ +pot sounds made by grungussuss, license: CC-BY-SA \ No newline at end of file diff --git a/sound/items/pot/pot_drop1.ogg b/sound/items/pot/pot_drop1.ogg new file mode 100644 index 000000000000..593fe43e04f8 Binary files /dev/null and b/sound/items/pot/pot_drop1.ogg differ diff --git a/sound/items/pot/pot_drop2.ogg b/sound/items/pot/pot_drop2.ogg new file mode 100644 index 000000000000..8dbdc48ce533 Binary files /dev/null and b/sound/items/pot/pot_drop2.ogg differ diff --git a/sound/items/pot/pot_drop3.ogg b/sound/items/pot/pot_drop3.ogg new file mode 100644 index 000000000000..57df371c7834 Binary files /dev/null and b/sound/items/pot/pot_drop3.ogg differ diff --git a/sound/items/pot/pot_pickup1.ogg b/sound/items/pot/pot_pickup1.ogg new file mode 100644 index 000000000000..c4e380a62564 Binary files /dev/null and b/sound/items/pot/pot_pickup1.ogg differ diff --git a/sound/items/pot/pot_pickup2.ogg b/sound/items/pot/pot_pickup2.ogg new file mode 100644 index 000000000000..29101a555ec6 Binary files /dev/null and b/sound/items/pot/pot_pickup2.ogg differ diff --git a/sound/items/pot/pot_pickup3.ogg b/sound/items/pot/pot_pickup3.ogg new file mode 100644 index 000000000000..3ac3c22a85b0 Binary files /dev/null and b/sound/items/pot/pot_pickup3.ogg differ diff --git a/sound/items/rolling_pin/attribution.txt b/sound/items/rolling_pin/attribution.txt new file mode 100644 index 000000000000..093952818827 --- /dev/null +++ b/sound/items/rolling_pin/attribution.txt @@ -0,0 +1 @@ +rolling pin sounds made by grungussuss, license: CC-BY-SA \ No newline at end of file diff --git a/sound/items/rolling_pin/rolling_pin_drop1.ogg b/sound/items/rolling_pin/rolling_pin_drop1.ogg new file mode 100644 index 000000000000..28005a5961c9 Binary files /dev/null and b/sound/items/rolling_pin/rolling_pin_drop1.ogg differ diff --git a/sound/items/rolling_pin/rolling_pin_drop2.ogg b/sound/items/rolling_pin/rolling_pin_drop2.ogg new file mode 100644 index 000000000000..6e874df0fe3b Binary files /dev/null and b/sound/items/rolling_pin/rolling_pin_drop2.ogg differ diff --git a/sound/items/rolling_pin/rolling_pin_drop3.ogg b/sound/items/rolling_pin/rolling_pin_drop3.ogg new file mode 100644 index 000000000000..5cb2abe4f0de Binary files /dev/null and b/sound/items/rolling_pin/rolling_pin_drop3.ogg differ diff --git a/sound/items/rolling_pin/rolling_pin_pickup1.ogg b/sound/items/rolling_pin/rolling_pin_pickup1.ogg new file mode 100644 index 000000000000..18982d3df6ef Binary files /dev/null and b/sound/items/rolling_pin/rolling_pin_pickup1.ogg differ diff --git a/sound/items/rolling_pin/rolling_pin_pickup2.ogg b/sound/items/rolling_pin/rolling_pin_pickup2.ogg new file mode 100644 index 000000000000..67a6b1015f62 Binary files /dev/null and b/sound/items/rolling_pin/rolling_pin_pickup2.ogg differ diff --git a/sound/items/rolling_pin/rolling_pin_pickup3.ogg b/sound/items/rolling_pin/rolling_pin_pickup3.ogg new file mode 100644 index 000000000000..78ef5fb196d0 Binary files /dev/null and b/sound/items/rolling_pin/rolling_pin_pickup3.ogg differ diff --git a/sound/items/rolling_pin/rolling_pin_rolling1.ogg b/sound/items/rolling_pin/rolling_pin_rolling1.ogg new file mode 100644 index 000000000000..67c7a1e7039b Binary files /dev/null and b/sound/items/rolling_pin/rolling_pin_rolling1.ogg differ diff --git a/sound/items/rolling_pin/rolling_pin_rolling2.ogg b/sound/items/rolling_pin/rolling_pin_rolling2.ogg new file mode 100644 index 000000000000..d7dc5efb126f Binary files /dev/null and b/sound/items/rolling_pin/rolling_pin_rolling2.ogg differ diff --git a/sound/items/rolling_pin/rolling_pin_rolling3.ogg b/sound/items/rolling_pin/rolling_pin_rolling3.ogg new file mode 100644 index 000000000000..e04bfb1935bd Binary files /dev/null and b/sound/items/rolling_pin/rolling_pin_rolling3.ogg differ diff --git a/sound/items/rolling_pin/rolling_pin_rolling4.ogg b/sound/items/rolling_pin/rolling_pin_rolling4.ogg new file mode 100644 index 000000000000..5d2a07911288 Binary files /dev/null and b/sound/items/rolling_pin/rolling_pin_rolling4.ogg differ diff --git a/sound/items/rolling_pin/rolling_pin_rolling5.ogg b/sound/items/rolling_pin/rolling_pin_rolling5.ogg new file mode 100644 index 000000000000..49fde6b9f895 Binary files /dev/null and b/sound/items/rolling_pin/rolling_pin_rolling5.ogg differ diff --git a/sound/items/rolling_pin/rolling_pin_rolling6.ogg b/sound/items/rolling_pin/rolling_pin_rolling6.ogg new file mode 100644 index 000000000000..836dc44f5721 Binary files /dev/null and b/sound/items/rolling_pin/rolling_pin_rolling6.ogg differ diff --git a/sound/items/tray/attribution.txt b/sound/items/tray/attribution.txt new file mode 100644 index 000000000000..7a9a0df19ae7 --- /dev/null +++ b/sound/items/tray/attribution.txt @@ -0,0 +1 @@ +tray sounds made by grungussuss, license: CC-BY-SA \ No newline at end of file diff --git a/sound/items/tray/tray_drop1.ogg b/sound/items/tray/tray_drop1.ogg new file mode 100644 index 000000000000..bb3651c42992 Binary files /dev/null and b/sound/items/tray/tray_drop1.ogg differ diff --git a/sound/items/tray/tray_drop2.ogg b/sound/items/tray/tray_drop2.ogg new file mode 100644 index 000000000000..aa435e0b1bc6 Binary files /dev/null and b/sound/items/tray/tray_drop2.ogg differ diff --git a/sound/items/tray/tray_drop3.ogg b/sound/items/tray/tray_drop3.ogg new file mode 100644 index 000000000000..861a9eaa5886 Binary files /dev/null and b/sound/items/tray/tray_drop3.ogg differ diff --git a/sound/items/tray/tray_insert1.ogg b/sound/items/tray/tray_insert1.ogg new file mode 100644 index 000000000000..29199ad8ed7c Binary files /dev/null and b/sound/items/tray/tray_insert1.ogg differ diff --git a/sound/items/tray/tray_insert2.ogg b/sound/items/tray/tray_insert2.ogg new file mode 100644 index 000000000000..7e1d4c132b03 Binary files /dev/null and b/sound/items/tray/tray_insert2.ogg differ diff --git a/sound/items/tray/tray_insert3.ogg b/sound/items/tray/tray_insert3.ogg new file mode 100644 index 000000000000..5cc881a97318 Binary files /dev/null and b/sound/items/tray/tray_insert3.ogg differ diff --git a/sound/items/tray/tray_pickup1.ogg b/sound/items/tray/tray_pickup1.ogg new file mode 100644 index 000000000000..5669f7e4f7ea Binary files /dev/null and b/sound/items/tray/tray_pickup1.ogg differ diff --git a/sound/items/tray/tray_pickup2.ogg b/sound/items/tray/tray_pickup2.ogg new file mode 100644 index 000000000000..cd5f501f06e5 Binary files /dev/null and b/sound/items/tray/tray_pickup2.ogg differ diff --git a/sound/items/tray/tray_pickup3.ogg b/sound/items/tray/tray_pickup3.ogg new file mode 100644 index 000000000000..29e1ffff0787 Binary files /dev/null and b/sound/items/tray/tray_pickup3.ogg differ diff --git a/sound/items/weapons/gun_mode_switch1.ogg b/sound/items/weapons/gun_mode_switch1.ogg new file mode 100644 index 000000000000..77724052482b Binary files /dev/null and b/sound/items/weapons/gun_mode_switch1.ogg differ diff --git a/sound/machines/computer/attribution.txt b/sound/machines/computer/attribution.txt new file mode 100644 index 000000000000..ab10c922afb6 --- /dev/null +++ b/sound/machines/computer/attribution.txt @@ -0,0 +1,7 @@ +computer_clicks_1.ogg - made by sadboysuss, license: CC-by-SA +computer_clicks_2.ogg - made by sadboysuss, license: CC-by-SA +computer_clicks_3.ogg - made by sadboysuss, license: CC-by-SA +computer_clicks_4.ogg - made by sadboysuss, license: CC-by-SA +computer_clicks_5.ogg - made by sadboysuss, license: CC-by-SA +computer_clicks_6.ogg - made by sadboysuss, license: CC-by-SA +computer_clicks_7.ogg - made by sadboysuss, license: CC-by-SA \ No newline at end of file diff --git a/sound/machines/computer/keyboard_clicks_1.ogg b/sound/machines/computer/keyboard_clicks_1.ogg new file mode 100644 index 000000000000..b33c6fd56a33 Binary files /dev/null and b/sound/machines/computer/keyboard_clicks_1.ogg differ diff --git a/sound/machines/computer/keyboard_clicks_2.ogg b/sound/machines/computer/keyboard_clicks_2.ogg new file mode 100644 index 000000000000..64d810753c3c Binary files /dev/null and b/sound/machines/computer/keyboard_clicks_2.ogg differ diff --git a/sound/machines/computer/keyboard_clicks_3.ogg b/sound/machines/computer/keyboard_clicks_3.ogg new file mode 100644 index 000000000000..0e1bb3696f10 Binary files /dev/null and b/sound/machines/computer/keyboard_clicks_3.ogg differ diff --git a/sound/machines/computer/keyboard_clicks_4.ogg b/sound/machines/computer/keyboard_clicks_4.ogg new file mode 100644 index 000000000000..b700393a9c38 Binary files /dev/null and b/sound/machines/computer/keyboard_clicks_4.ogg differ diff --git a/sound/machines/computer/keyboard_clicks_5.ogg b/sound/machines/computer/keyboard_clicks_5.ogg new file mode 100644 index 000000000000..d54b211da021 Binary files /dev/null and b/sound/machines/computer/keyboard_clicks_5.ogg differ diff --git a/sound/machines/computer/keyboard_clicks_6.ogg b/sound/machines/computer/keyboard_clicks_6.ogg new file mode 100644 index 000000000000..84ff3bb7f800 Binary files /dev/null and b/sound/machines/computer/keyboard_clicks_6.ogg differ diff --git a/sound/machines/computer/keyboard_clicks_7.ogg b/sound/machines/computer/keyboard_clicks_7.ogg new file mode 100644 index 000000000000..39204e360c9f Binary files /dev/null and b/sound/machines/computer/keyboard_clicks_7.ogg differ diff --git a/sound/machines/lever/attribution.txt b/sound/machines/lever/attribution.txt new file mode 100644 index 000000000000..ef86e6ca5c5a --- /dev/null +++ b/sound/machines/lever/attribution.txt @@ -0,0 +1,3 @@ +lever_start.ogg and lever_stop.ogg are made by A_Kuha on FreeSound +https://freesound.org/people/A_Kuha/sounds/676412 +This is licensed under CC-0, found at https://creativecommons.org/publicdomain/zero/1.0/ diff --git a/sound/machines/lever/lever_start.ogg b/sound/machines/lever/lever_start.ogg new file mode 100644 index 000000000000..347562d438d5 Binary files /dev/null and b/sound/machines/lever/lever_start.ogg differ diff --git a/sound/machines/lever/lever_stop.ogg b/sound/machines/lever/lever_stop.ogg new file mode 100644 index 000000000000..9f50ca2a6fd0 Binary files /dev/null and b/sound/machines/lever/lever_stop.ogg differ diff --git a/sound/machines/sink-faucet.ogg b/sound/machines/sink-faucet.ogg new file mode 100644 index 000000000000..7102a3940308 Binary files /dev/null and b/sound/machines/sink-faucet.ogg differ diff --git a/sound/magic/curse.ogg b/sound/magic/curse.ogg deleted file mode 100644 index bda610416dea..000000000000 Binary files a/sound/magic/curse.ogg and /dev/null differ diff --git a/tgstation.dme b/tgstation.dme index ab6d62e1cf97..9e265b2977b8 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -1615,6 +1615,7 @@ #include "code\datums\looping_sounds\burning.dm" #include "code\datums\looping_sounds\choking.dm" #include "code\datums\looping_sounds\cyborg.dm" +#include "code\datums\looping_sounds\drip.dm" #include "code\datums\looping_sounds\item_sounds.dm" #include "code\datums\looping_sounds\machinery_sounds.dm" #include "code\datums\looping_sounds\music.dm" @@ -1852,7 +1853,6 @@ #include "code\datums\status_effects\agent_pinpointer.dm" #include "code\datums\status_effects\buffs.dm" #include "code\datums\status_effects\drug_effects.dm" -#include "code\datums\status_effects\food_effects.dm" #include "code\datums\status_effects\gas.dm" #include "code\datums\status_effects\grouped_effect.dm" #include "code\datums\status_effects\limited_effect.dm" @@ -1869,6 +1869,11 @@ #include "code\datums\status_effects\buffs\bioware\cortex.dm" #include "code\datums\status_effects\buffs\bioware\ligaments.dm" #include "code\datums\status_effects\buffs\bioware\nerves.dm" +#include "code\datums\status_effects\buffs\food\_food_effect.dm" +#include "code\datums\status_effects\buffs\food\chilling.dm" +#include "code\datums\status_effects\buffs\food\grant_trait.dm" +#include "code\datums\status_effects\buffs\food\haste.dm" +#include "code\datums\status_effects\buffs\food\speech.dm" #include "code\datums\status_effects\debuffs\blindness.dm" #include "code\datums\status_effects\debuffs\block_radio.dm" #include "code\datums\status_effects\debuffs\choke.dm" @@ -1977,6 +1982,7 @@ #include "code\game\say.dm" #include "code\game\shuttle_engines.dm" #include "code\game\sound.dm" +#include "code\game\sound_keys.dm" #include "code\game\world.dm" #include "code\game\area\ai_monitored.dm" #include "code\game\area\areas.dm" diff --git a/tgui/packages/tgui/interfaces/DnaConsole/DnaConsoleSequencer.jsx b/tgui/packages/tgui/interfaces/DnaConsole/DnaConsoleSequencer.jsx index 9b14a93a1af4..6846b21363cb 100644 --- a/tgui/packages/tgui/interfaces/DnaConsole/DnaConsoleSequencer.jsx +++ b/tgui/packages/tgui/interfaces/DnaConsole/DnaConsoleSequencer.jsx @@ -76,6 +76,17 @@ const GeneCycler = (props) => { ); }; +function isPairMatched(sequence, index) { + const gene1 = sequence.charAt(index); + const gene2 = sequence.charAt(index + 1); + return ( + (gene1 === 'A' && gene2 === 'T') || + (gene1 === 'T' && gene2 === 'A') || + (gene1 === 'G' && gene2 === 'C') || + (gene1 === 'C' && gene2 === 'G') + ); +} + const GenomeSequencer = (props) => { const { mutation } = props; if (!mutation) { @@ -120,9 +131,9 @@ const GenomeSequencer = (props) => { {buttons[i + 1]} diff --git a/tgui/packages/tgui/interfaces/PersonalCrafting/GroupTitle.tsx b/tgui/packages/tgui/interfaces/PersonalCrafting/GroupTitle.tsx index 3263dfdab74d..f20506e9030b 100644 --- a/tgui/packages/tgui/interfaces/PersonalCrafting/GroupTitle.tsx +++ b/tgui/packages/tgui/interfaces/PersonalCrafting/GroupTitle.tsx @@ -19,3 +19,39 @@ export function GroupTitle(props: Props) { ); } + +export function SubGroupTitle(props: Props) { + const { title } = props; + + return ( + + + + {title} + + + + ); +} diff --git a/tgui/packages/tgui/interfaces/PersonalCrafting/constants.ts b/tgui/packages/tgui/interfaces/PersonalCrafting/constants.ts index 06272ee6cc5b..e33e97f2884b 100644 --- a/tgui/packages/tgui/interfaces/PersonalCrafting/constants.ts +++ b/tgui/packages/tgui/interfaces/PersonalCrafting/constants.ts @@ -7,6 +7,7 @@ export const TYPE_ICONS = { [Food.Bugs]: 'bug', [Food.Cloth]: 'tshirt', [Food.Dairy]: 'cheese', + [Food.Egg]: 'egg', [Food.Fried]: 'fire', [Food.Fruit]: 'apple-alt', [Food.Gore]: 'skull', @@ -50,22 +51,38 @@ export const CATEGORY_ICONS_CRAFTING = { export const CATEGORY_ICONS_COOKING = { 'Can Make': 'utensils', - Breads: 'bread-slice', - Burgers: 'burger', - Cakes: 'cake-candles', - 'Egg-Based Food': 'egg', + Appetizer: 'bread-slice', + Bread: 'bread-slice', + Burger: 'burger', + Burrito: 'circle-o', + Cake: 'cake-candles', + Candy: 'candy-cane', + Component: 'cubes', + Cookie: 'cookie', + Dessert: 'face-grin-beam-sweat', Frozen: 'ice-cream', - 'Lizard Food': 'dragon', - Meats: 'bacon', - 'Mexican Food': 'pepper-hot', - 'Misc. Food': 'shapes', - 'Mothic Food': 'shirt', - Pastries: 'cookie', - Pies: 'chart-pie', - Pizzas: 'pizza-slice', - Salads: 'leaf', - Sandwiches: 'hotdog', - Seafood: 'fish', - Soups: 'mug-hot', - Spaghettis: 'wheat-awn', + Italian: 'pizza-slice', + Japanese: 'earth-asia', + Lizard: 'dragon', + Martian: 'globe', + Meat: 'bacon', + Mexican: 'earth-americas', + Mothic: 'shirt', + Noodles: 'wheat-awn', + Pastry: 'cookie', + Pie: 'chart-pie', + Pizza: 'pizza-slice', + Rice: 'bowl-rice', + Salad: 'leaf', + Sandwich: 'hotdog', + Soup: 'mug-hot', + Sushi: 'fish', + Taco: 'circle-o', + Terran: 'earth-europe', + Uncategorized: 'shapes', + 'Main Course': 'drumstick-bite', + Breakfast: 'sun', + Snack: 'compress', + Condiment: 'bottle-water', + Starfruit: 'star', // NON-MODULE CHANGE } as const; diff --git a/tgui/packages/tgui/interfaces/PersonalCrafting/content/RecipeContent.tsx b/tgui/packages/tgui/interfaces/PersonalCrafting/content/RecipeContent.tsx index 6759d8333948..c49c32876afd 100644 --- a/tgui/packages/tgui/interfaces/PersonalCrafting/content/RecipeContent.tsx +++ b/tgui/packages/tgui/interfaces/PersonalCrafting/content/RecipeContent.tsx @@ -174,7 +174,7 @@ export function RecipeContent(props: FullProps) {
- + )} - {item.foodtypes?.length > 0 && ( + {!!item.foodtypes && item.foodtypes.length > 0 && ( {item.foodtypes.map((foodtype) => ( diff --git a/tgui/packages/tgui/interfaces/PersonalCrafting/helpers.ts b/tgui/packages/tgui/interfaces/PersonalCrafting/helpers.ts index 573f009b31bd..b662224c20c7 100644 --- a/tgui/packages/tgui/interfaces/PersonalCrafting/helpers.ts +++ b/tgui/packages/tgui/interfaces/PersonalCrafting/helpers.ts @@ -1,3 +1,5 @@ +import type { BooleanLike } from 'tgui-core/react'; +import { CATEGORY_ICONS_COOKING, CATEGORY_ICONS_CRAFTING } from './constants'; import type { CraftingData } from './types'; export function findIcon(atom_id: number, data: CraftingData): string { @@ -8,3 +10,15 @@ export function findIcon(atom_id: number, data: CraftingData): string { return icon; } + +export function getFAIcon(category: string, mode: BooleanLike): string { + const icons = mode ? CATEGORY_ICONS_COOKING : CATEGORY_ICONS_CRAFTING; + return icons[category] || 'circle'; +} + +export function toggleArrayItem(array: T[] | undefined, item: T): T[] { + if (!array) return [item]; + return array.includes(item) + ? array.filter((i) => i !== item) + : [...array, item]; +} diff --git a/tgui/packages/tgui/interfaces/PersonalCrafting/index.tsx b/tgui/packages/tgui/interfaces/PersonalCrafting/index.tsx index c01fdae0a3d0..3358d49dd8e2 100644 --- a/tgui/packages/tgui/interfaces/PersonalCrafting/index.tsx +++ b/tgui/packages/tgui/interfaces/PersonalCrafting/index.tsx @@ -21,9 +21,17 @@ import { CATEGORY_ICONS_COOKING, CATEGORY_ICONS_CRAFTING } from './constants'; import { FoodtypeContent } from './content/FoodtypeContent'; import { MaterialContent } from './content/MaterialContent'; import { RecipeContent, RecipeContentCompact } from './content/RecipeContent'; -import { type CraftingData, MODE, type Recipe, TABS } from './types'; +import { SubGroupTitle } from './GroupTitle'; +import { getFAIcon, toggleArrayItem } from './helpers'; +import { + type CraftingData, + type Material, + MODE, + type Recipe, + TABS, +} from './types'; -export function PersonalCrafting(props) { +export function PersonalCrafting(props: any) { const { act, data } = useBackend(); const { mode, @@ -33,6 +41,7 @@ export function PersonalCrafting(props) { display_craftable_only, craftability, diet, + atom_data, } = data; const [searchText, setSearchText] = useState(''); @@ -48,6 +57,38 @@ export function PersonalCrafting(props) { ? DEFAULT_CAT_COOKING : DEFAULT_CAT_CRAFTING, ); + + const allFoodCuisines = data.recipes + .reduce((acc: string[], recipe) => { + if (recipe.cuisine_category && !acc.includes(recipe.cuisine_category)) { + acc.push(recipe.cuisine_category); + } + return acc; + }, []) + .sort((a, b) => (a > b ? 1 : -1)); + + const allDishCategories = data.recipes + .reduce((acc: string[], recipe) => { + if (recipe.dish_category && !acc.includes(recipe.dish_category)) { + acc.push(recipe.dish_category); + } + return acc; + }, []) + .sort((a, b) => (a > b ? 1 : -1)); + + const allMealCategories = data.recipes + .reduce((acc: string[], recipe) => { + if (recipe.meal_category && !acc.includes(recipe.meal_category)) { + acc.push(recipe.meal_category); + } + return acc; + }, []) + .sort((a, b) => (a > b ? 1 : -1)); + + const [activeFoodCuisine, setFoodCuisine] = useState(); + const [activeDishCategory, setDishCategory] = useState(); + const [activeMealCategory, setMealCategory] = useState(); + const [activeType, setFoodType] = useState( Object.keys(craftability).length ? 'Can Make' : data.foodtypes[0], ); @@ -61,26 +102,68 @@ export function PersonalCrafting(props) { const searchName = createSearch(searchText, (item: Recipe) => item.name); + const getMaterialName = (atomId: string): string => { + const idNum = Number(atomId); + const atom = atom_data[idNum - 1]; + return atom?.name || atomId; + }; + + const searchMaterial = createSearch(searchText, (material: Material) => { + return getMaterialName(material.atom_id); + }); + + const filteredMaterials = + searchText.length > 0 && tabMode === TABS.material + ? filter(material_occurences, searchMaterial) + : material_occurences; + + function categoryMatch(recipe: Recipe): boolean { + if (tabMode === TABS.material) { + return Object.keys(recipe.reqs).includes(activeMaterial); + } else if (tabMode === TABS.category) { + if (activeCategory === 'Can Make') { + return Boolean(craftability[recipe.ref]); + } + if (activeCategory === 'Foods') { + if ( + activeFoodCuisine?.length && + !activeFoodCuisine.includes(recipe.cuisine_category || '') + ) { + return false; + } + if ( + activeDishCategory?.length && + !activeDishCategory.includes(recipe.dish_category || '') + ) { + return false; + } + if ( + activeMealCategory?.length && + !activeMealCategory.includes(recipe.meal_category || '') + ) { + return false; + } + } + return recipe.category === activeCategory; + } else if (tabMode === TABS.foodtype && mode === MODE.cooking) { + if (activeType === 'Can Make') { + return Boolean(craftability[recipe.ref]); + } + if (recipe.foodtypes) { + return recipe.foodtypes.includes(activeType); + } + return false; + } + return true; + } + let recipes = filter( data.recipes, (recipe) => // If craftable only is selected, then filter by craftability (!display_craftable_only || Boolean(craftability[recipe.ref])) && // Ignore categories and types when searching - (searchText.length > 0 || - // Is foodtype mode and the active type matches - (tabMode === TABS.foodtype && - mode === MODE.cooking && - ((activeType === 'Can Make' && Boolean(craftability[recipe.ref])) || - recipe.foodtypes?.includes(activeType))) || - // Is material mode and the active material or catalysts match - (tabMode === TABS.material && - Object.keys(recipe.reqs).includes(activeMaterial)) || - // Is category mode and the active categroy matches - (tabMode === TABS.category && - ((activeCategory === 'Can Make' && - Boolean(craftability[recipe.ref])) || - recipe.category === activeCategory))), + (searchText.length > 0 || categoryMatch(recipe)), ); recipes = sortBy(recipes, [ (recipe) => [ @@ -110,8 +193,6 @@ export function PersonalCrafting(props) { : 30; const displayLimit = pageSize * pages; const content = document.getElementById('content'); - const CATEGORY_ICONS = - mode === MODE.cooking ? CATEGORY_ICONS_COOKING : CATEGORY_ICONS_CRAFTING; return ( @@ -220,7 +301,7 @@ export function PersonalCrafting(props) { ))} {tabMode === TABS.material && - material_occurences.map((material) => ( + filteredMaterials.map((material) => ( ))} @@ -263,30 +344,142 @@ export function PersonalCrafting(props) { } }} > - - - + + - - - {category} + > + + + + + {category} + + {category === 'Can Make' && ( + + {Object.keys(craftability).length} + + )} + - {category === 'Can Make' && ( - - {Object.keys(craftability).length} - - )} + {/* Foods are further categorized by cuisine and dish type */} + {category === 'Foods' && + activeCategory === category && ( + + + + + + {allFoodCuisines.map((cuisine) => ( + + { + setFoodCuisine( + toggleArrayItem( + activeFoodCuisine, + cuisine, + ), + ); + setPages(1); + }} + > + + {cuisine} + + + ))} + + + + {allDishCategories.map((dish) => ( + + { + setDishCategory( + toggleArrayItem( + activeDishCategory, + dish, + ), + ); + setPages(1); + }} + > + + {dish} + + + ))} + + + + {allMealCategories.map((meal) => ( + + { + setMealCategory( + toggleArrayItem( + activeMealCategory, + meal, + ), + ); + setPages(1); + }} + > + + {meal} + + + ))} + + + )} ))} diff --git a/tgui/packages/tgui/interfaces/PersonalCrafting/types.ts b/tgui/packages/tgui/interfaces/PersonalCrafting/types.ts index 093e4192d3d8..6feef5e35b25 100644 --- a/tgui/packages/tgui/interfaces/PersonalCrafting/types.ts +++ b/tgui/packages/tgui/interfaces/PersonalCrafting/types.ts @@ -17,7 +17,7 @@ export type AtomData = { icon: string; }; -type Material = { +export type Material = { atom_id: string; occurences: number; }; @@ -25,9 +25,7 @@ type Material = { export type Recipe = { category: string; chem_catalysts: Record; - complexity: number; desc: string; - foodtypes: string[]; has_food_effect: BooleanLike; id: number; is_reaction: BooleanLike; @@ -41,6 +39,12 @@ export type Recipe = { structures: string[]; tool_behaviors: string[]; tool_paths: string[]; + // only used for food recipes + foodtypes?: string[]; + complexity?: number; + cuisine_category?: string; + dish_category?: string; + meal_category?: string; }; export type Diet = { diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/types.ts b/tgui/packages/tgui/interfaces/PreferencesMenu/types.ts index e91ceefb3862..8e4d6c401347 100644 --- a/tgui/packages/tgui/interfaces/PreferencesMenu/types.ts +++ b/tgui/packages/tgui/interfaces/PreferencesMenu/types.ts @@ -31,6 +31,7 @@ export enum Food { Sugar = 'SUGAR', Toxic = 'TOXIC', Vegetables = 'VEGETABLES', + Egg = 'EGG', } export enum JobPriority { diff --git a/tgui/packages/tgui/interfaces/SlotMachine.tsx b/tgui/packages/tgui/interfaces/SlotMachine.tsx index 26543379fe25..54045ecfac1f 100644 --- a/tgui/packages/tgui/interfaces/SlotMachine.tsx +++ b/tgui/packages/tgui/interfaces/SlotMachine.tsx @@ -1,19 +1,16 @@ -import { Button, Icon, Section } from 'tgui-core/components'; - +import { useEffect, useRef, useState } from 'react'; +import { Blink, Box, Button, Icon, Section, Stack } from 'tgui-core/components'; +import { formatMoney } from 'tgui-core/format'; +import { classes } from 'tgui-core/react'; import { useBackend } from '../backend'; import { Window } from '../layouts'; -type IconInfo = { - value: number; - colour: string; - icon_name: string; -}; - -type BackendData = { - icons: IconInfo[]; - state: any[]; +type Data = { + icons: string[]; + reels: Reel[]; balance: number; - working: boolean; + working: number; + winning: number; money: number; cost: number; plays: number; @@ -22,131 +19,335 @@ type BackendData = { paymode: number; }; -type SlotsTileProps = { - icon: string; - color?: string; - background?: string; +type Reel = { + icons: string[]; + spinning: number; +}; + +type IconMeta = { + color: string; }; -type SlotsReelProps = { - reel: IconInfo[]; +const iconMetaByName: Record = { + 'fa-7': { color: '#b22' }, + 'fa-star': { color: '#fd6' }, + 'fa-lemon': { color: '#ce0' }, + 'fa-apple-whole': { color: '#d64' }, + 'fa-biohazard': { color: '#2c0' }, + 'fa-dollar-sign': { color: '#08b' }, + 'fa-bomb': { color: '#876' }, }; const pluralS = (amount: number) => { return amount === 1 ? '' : 's'; }; -const SlotsReel = (props: SlotsReelProps) => { - const { reel } = props; +const slotIconToColor = (iconName: string): string => { + return iconMetaByName[iconName]?.color || '#f0f'; +}; + +const pickRandomMany = (items: T[], n: number) => { + const result: T[] = []; + for (let i = 0; i < n; i += 1) { + result.push(pickRandom(items)); + } + return result; +}; + +const pickRandom = (items: T[]) => { + return items[Math.floor(Math.random() * items.length)]; +}; + +export const SlotMachine = () => { + const { act, data } = useBackend(); + const { icons, cost, reels, balance } = data; + const spinning = data.working === 1; + return ( -
- {reel.map((slot, i) => ( - + + + +
+
+ {reels.map((reel, i) => ( +
+ +
+ ))} +
+
+ + +
act('payout')} disabled={balance <= 0}> + Refund + + } + > + + {formatMoney(balance)} cr + +
+
+ +
+ +
+
+
+
+
+ ); +}; + +const getBannerPages = () => [ + BannerTitle, + BannerOnlyFewCreds, + BannerPrizeMoney, + BannerTitle, + BannerJackpot, + BannerStats, +]; + +const BANNER_TEXTS = [ + 'SPIN! SPIN!', + 'WARMED UP!', + 'HOT SLOTS', + 'SPIN & WIN!', + 'BELIEVE IT!', + 'ZERO 2 HERO!', + 'JUST ONE MORE', + 'SPIN OF FATE', + 'BONUS TIME!', + 'BORN TO SPIN!', + 'NICE SPIN!', + 'NO SPIN NO WIN', + 'BET & FORGET', + 'HONK 4 LUCK', + 'DEBT 4 LIFE', + 'SPINGULARITY', + 'SPIN CITY', + 'BURN & EARN', + 'JACKPOT SOON!', + 'WIN THE DAY!', + 'FORTUNE CALLS', + 'INSTANT GOLD!', + 'DREAM BIGGER!', + 'WINNERS ONLY!', + 'SPIN IS LIFE', + 'BIG ONE SOON!', + 'LUCKY SPIN!', + 'CASH OUT? NO!', +]; + +const WINNING_TEXTS = [ + null, + 'FREE SPINS!', + 'PRIZE!', + 'BIG PRIZE!', + 'JACKPOT!!!', +]; + +const Banner = () => { + const { data } = useBackend(); + const [page, setPage] = useState(0); + + useEffect(() => { + const interval = setInterval(() => { + setPage((page) => (page + 1) % getBannerPages().length); + }, 5000); + return () => clearInterval(interval); + }, []); + + const winningText = WINNING_TEXTS[data.winning]; + if (winningText) { + return ( +
+ +
+ ); + } + + const Component = getBannerPages()[page]; + + return ( +
+ +
+ ); +}; + +type BannerTitleProps = { + text?: string; +}; + +const BannerTitle = (props: BannerTitleProps) => { + const { data } = useBackend(); + const defaultText = useRef(pickRandom(BANNER_TEXTS)); + let text = props.text; + if (!text) { + if (data.balance <= 0) { + text = 'INSERT COIN'; + } else if (data.balance <= 5) { + text = 'ONE LAST SPIN'; + } else { + text = defaultText.current; + } + } + const letters = text.split(''); + return ( +
+ {letters.map((letter, i) => ( + {letter} ))}
); }; -const SlotsTile = (props: SlotsTileProps) => { +const BannerOnlyFewCreds = () => { + const { data } = useBackend(); + const variant = useRef(pickRandom([0, 1])); + + if (variant.current === 1) { + return ( +
+ For only{' '} + + {data.cost} + {' '} + credit{pluralS(data.cost)}! +
+ + You can fix all your problems! + +
+ ); + } + return ( -
- +
+ Only{' '} + + {data.cost} + {' '} + credit{pluralS(data.cost)} for a chance +
+ to win big!
); }; -export const SlotMachine = (props) => { - const { act, data } = useBackend(); - // icons: The list of possible icons, including colour and name - // backendState: the current state of the slots according to the backend - const { - plays, - jackpots, - money, - cost, - state, - balance, - jackpot, - working: rolling, - paymode, - } = data; +const BannerPrizeMoney = () => { + const { data } = useBackend(); + return ( +
+ Available prize money: +
+ + {data.money} credit{pluralS(data.money)} + +
+ ); +}; +const BannerJackpot = () => { + const { data } = useBackend(); return ( - -
-
-

- Only {cost} credit{pluralS(cost)} for a chance to win big! -

-

- Available prize money:{' '} - - {money} credit{pluralS(money)} - {' '} -

- {paymode === 1 && ( -

- Current jackpot:{' '} - - {money + jackpot} credit{pluralS(money + jackpot)}! - -

- )} -

- So far people have spun{' '} - - {plays} time{pluralS(plays)}, - {' '} - and won{' '} - - {jackpots} jackpot{pluralS(jackpots)}! - -

-
-
-
+ Current jackpot: +
+ + {data.money + data.jackpot} credit{pluralS(data.money + data.jackpot)}! + +
+ ); +}; + +const BannerStats = () => { + const { data } = useBackend(); + return ( +
+ + So far people have spun{' '} + + {data.plays} time{pluralS(data.plays)} + + +
+ and won{' '} + + {data.jackpots} jackpot{pluralS(data.jackpots)}! + +
+ ); +}; + +const ICON_STRIP_LENGTH = 30; + +type IconStripProps = { + icons: string[]; + iconsNeeded: string[]; + spinning?: boolean; +}; + +const IconStrip = (props: IconStripProps) => { + const { icons, iconsNeeded, spinning } = props; + + const [drawnIcons, setDrawnIcons] = useState([ + ...pickRandomMany(icons, ICON_STRIP_LENGTH - 3), + ...iconsNeeded, + ]); + + useEffect(() => { + if (spinning) { + setDrawnIcons((drawnIcons) => [ + ...drawnIcons.slice(-3), + ...pickRandomMany(icons, ICON_STRIP_LENGTH - 6), + ...iconsNeeded, + ]); + } else { + setDrawnIcons([ + ...pickRandomMany(icons, ICON_STRIP_LENGTH - 3), + ...iconsNeeded, + ]); + } + }, [spinning]); + + return ( +
+ {drawnIcons.map((icon, i) => ( + - {state.map((reel, i) => { - return ; - })} -
-
- -
- Balance: {balance} -
- -
- - + /> + ))} + ); }; diff --git a/tgui/packages/tgui/styles/interfaces/SlotMachine.scss b/tgui/packages/tgui/styles/interfaces/SlotMachine.scss new file mode 100644 index 000000000000..82599f53d22c --- /dev/null +++ b/tgui/packages/tgui/styles/interfaces/SlotMachine.scss @@ -0,0 +1,181 @@ +.SlotMachine__Banner { + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + height: 60px; + font-size: 18px; + text-align: center; + text-shadow: + 2px 2px 6px #000, + 0 2px #000, + 0 -2px #000, + 2px 0 #000, + -2px 0 #000; + + background: linear-gradient(-45deg, #d16949, #ce3771, #229dca, #189175); + background-size: 400% 400%; + animation: SlotMachine__GradientMove 10s ease infinite; +} + +@keyframes SlotMachine__GradientMove { + 0% { + background-position: 0% 50%; + } + 50% { + background-position: 100% 50%; + } + 100% { + background-position: 0% 50%; + } +} + +.SlotMachine__Banner--winning { + animation: SlotMachine__Winning 0.4s step-end infinite !important; +} + +@keyframes SlotMachine__Winning { + 0% { + color: #ff0; + background: #f00; + } + 50% { + color: #f00; + background: #ff0; + } + 100% { + color: #f00; + background: #ff0; + } +} + +.SlotMachine__BannerTitle { + font-size: 26px; + font-weight: bold; + font-family: 'Courier New', Courier, monospace; + white-space: pre; +} + +.SlotMachine__BannerTitle span { + animation: + SlotMachine__Depth1 1.2s ease-in-out alternate infinite, + SlotMachine__Depth2 0.8s ease-in-out alternate infinite; + animation-composition: replace, add; + position: relative; + display: inline-block; + padding: 0 0.075em; + @for $i from 1 through 14 { + &:nth-child(#{$i}) { + animation-delay: $i * -0.2s; + } + } +} + +@keyframes SlotMachine__Depth1 { + 0% { + transform: translatex(-0.2em) translatey(-0.1em); + } + 100% { + transform: translatex(0.2em) translatey(0.1em); + } +} + +@keyframes SlotMachine__Depth2 { + 0% { + transform: translatex(0.1em) translatey(-0.1em); + } + 100% { + transform: translatex(-0.1em) translatey(0.1em); + } +} + +.SlotMachine__Reels { + display: flex; + margin: 0 -3px; +} + +.SlotMachine__Reel { + position: relative; + flex: 1; + margin: 0 3px; + overflow: hidden; + height: 180px; + background: linear-gradient( + to bottom, + #888 0%, + #ccc 15%, + #eee 40%, + #ddd 60%, + #aaa 85%, + #666 100% + ); +} + +.SlotMachine__Reel::after { + position: absolute; + top: 58px; + left: 0; + bottom: 58px; + right: 0; + display: block; + content: ''; + border-top: 2px solid black; + border-bottom: 2px solid black; +} + +.SlotMachine__Reel:nth-child(1) .SlotMachine__IconStrip { + animation-delay: 0s; + animation-duration: 2.8s; +} + +.SlotMachine__Reel:nth-child(2) .SlotMachine__IconStrip { + animation-delay: 0.1s; + animation-duration: 3s; +} + +.SlotMachine__Reel:nth-child(3) .SlotMachine__IconStrip { + animation-delay: 0.2s; + animation-duration: 3.2s; +} + +.SlotMachine__Reel:nth-child(4) .SlotMachine__IconStrip { + animation-delay: 0.3s; + animation-duration: 3.4s; +} + +.SlotMachine__Reel:nth-child(5) .SlotMachine__IconStrip { + animation-delay: 0.4s; + animation-duration: 3.6s; +} + +.SlotMachine__IconStrip { + transform: translateY(calc(-60px * 27)); + // animation-duration: 3.5s; + text-align: center; + // animation: scroll-up 2s linear infinite; + // animation-play-state: paused; + // transform: translateY(0px); + text-shadow: + 2px 2px 6px #000, + 0 2px #000, + 0 -2px #000, + 2px 0 #000, + -2px 0 #000; +} + +.SlotMachine__IconStrip--spinning { + transform: translateY(0); + animation-name: SlotMachine__Spin; + animation-iteration-count: 1; + animation-fill-mode: forwards; + animation-timing-function: cubic-bezier(1, 1.26, 0.88, 0.96); +} + +@keyframes SlotMachine__Spin { + 0% { + transform: translateY(0); + } + 100% { + transform: translateY(calc(-60px * 27)); + } +} diff --git a/tgui/packages/tgui/styles/main.scss b/tgui/packages/tgui/styles/main.scss index 67289ecb7476..63381f34492e 100644 --- a/tgui/packages/tgui/styles/main.scss +++ b/tgui/packages/tgui/styles/main.scss @@ -40,6 +40,7 @@ @include meta.load-css('./interfaces/RequestManager.scss'); @include meta.load-css('./interfaces/Roulette.scss'); @include meta.load-css('./interfaces/Safe.scss'); +@include meta.load-css('./interfaces/SlotMachine.scss'); @include meta.load-css('./interfaces/Techweb.scss'); @include meta.load-css('./interfaces/Trophycase.scss'); @include meta.load-css('./interfaces/Uplink.scss'); diff --git a/tools/UpdatePaths/Scripts/89706_dankpocket.txt b/tools/UpdatePaths/Scripts/89706_dankpocket.txt new file mode 100644 index 000000000000..8f663909e727 --- /dev/null +++ b/tools/UpdatePaths/Scripts/89706_dankpocket.txt @@ -0,0 +1,2 @@ +# dankpockets are now a subtype of donkpockets +/obj/item/food/dankpocket : /obj/item/food/donkpocket/dank{@OLD}