diff --git a/.vscode/launch.json b/.vscode/launch.json
index dc67e472b5de..349a859281d2 100644
--- a/.vscode/launch.json
+++ b/.vscode/launch.json
@@ -1,18 +1,26 @@
{
"version": "0.2.0",
"configurations": [
- {
+ {
"type": "byond",
"request": "launch",
"name": "Build & DS Debug",
"preLaunchTask": "dm: build - ${command:CurrentDME}",
"dmb": "${workspaceFolder}/${command:CurrentDMB}"
- },
- {
+ },
+ {
+ "type": "byond",
+ "request": "launch",
+ "name": "Build & DD Debug",
+ "preLaunchTask": "dm: build - ${command:CurrentDME}",
+ "dmb": "${workspaceFolder}/${command:CurrentDMB}",
+ "dreamDaemon": true
+ },
+ {
"type": "byond",
"request": "launch",
"name": "DS Debug",
"dmb": "${workspaceFolder}/${command:CurrentDMB}"
- }
+ }
]
- }
+}
diff --git a/README.md b/README.md
index 46aa88371a4f..d363f6803984 100644
--- a/README.md
+++ b/README.md
@@ -1,5 +1,5 @@
> [!IMPORTANT]
-> July is a month of focus on "Quality releases", this means no new balance or feature PRs are permitted without prior approval.
+> We are currently in a period of focus on "Quality releases", this means no new balance or feature PRs are permitted without prior approval.
> [For more info, see the following discord post on our public discord](https://discord.com/channels/145533722026967040/499000353312735233/1256632472196878337)
diff --git a/_maps/map_files/RandomRuins/LavaRuins/lavaland_biodome_winter.dmm b/_maps/map_files/RandomRuins/LavaRuins/lavaland_biodome_winter.dmm
index f4083f3b563e..3ff7e1339bef 100644
--- a/_maps/map_files/RandomRuins/LavaRuins/lavaland_biodome_winter.dmm
+++ b/_maps/map_files/RandomRuins/LavaRuins/lavaland_biodome_winter.dmm
@@ -102,7 +102,7 @@
/area/ruin/powered/snow_cabin)
"ax" = (
/obj/structure/table/wood,
-/obj/item/food/snacks/beans,
+/obj/item/food/beans,
/turf/simulated/floor/wood,
/area/ruin/powered/snow_cabin)
"ay" = (
diff --git a/_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_althland_excavation.dmm b/_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_althland_excavation.dmm
index 03a9616e965b..18a3ce53eba2 100644
--- a/_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_althland_excavation.dmm
+++ b/_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_althland_excavation.dmm
@@ -665,7 +665,7 @@
/area/lavaland/surface/outdoors)
"ie" = (
/obj/structure/table,
-/obj/item/food/snacks/badrecipe,
+/obj/item/food/badrecipe,
/turf/simulated/floor/plating/lavaland_air,
/area/ruin/unpowered/althland_excavation)
"iv" = (
@@ -1088,8 +1088,8 @@
"Cs" = (
/obj/effect/decal/cleanable/dirt,
/obj/structure/table_frame,
-/obj/item/food/snacks/badrecipe,
-/obj/item/food/snacks/badrecipe{
+/obj/item/food/badrecipe,
+/obj/item/food/badrecipe{
pixel_y = 14;
pixel_x = 14
},
@@ -1313,7 +1313,7 @@
/area/lavaland/surface/outdoors)
"OX" = (
/obj/structure/table_frame,
-/obj/item/food/snacks/badrecipe,
+/obj/item/food/badrecipe,
/turf/simulated/floor/plating/lavaland_air,
/area/ruin/unpowered/althland_excavation)
"Pe" = (
diff --git a/_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_pizzaparty.dmm b/_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_pizzaparty.dmm
index 4c90cc58e4a0..e21f413c620f 100644
--- a/_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_pizzaparty.dmm
+++ b/_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_pizzaparty.dmm
@@ -36,7 +36,7 @@
/turf/simulated/floor/wood/lavaland_air,
/area/ruin/powered/pizza_party)
"j" = (
-/obj/item/food/snacks/mushroompizzaslice,
+/obj/item/food/mushroompizzaslice,
/obj/effect/decal/cleanable/dirt,
/turf/simulated/floor/plating/lavaland_air,
/area/ruin/powered/pizza_party)
@@ -147,18 +147,18 @@
/area/ruin/powered/pizza_party)
"D" = (
/obj/structure/table/wood,
-/obj/item/food/snacks/margheritapizzaslice,
+/obj/item/food/margheritapizzaslice,
/obj/item/trash/plate,
/turf/simulated/floor/wood/lavaland_air,
/area/ruin/powered/pizza_party)
"E" = (
/obj/structure/table/wood,
-/obj/item/food/snacks/meatpizzaslice,
+/obj/item/food/meatpizzaslice,
/turf/simulated/floor/wood/lavaland_air,
/area/ruin/powered/pizza_party)
"F" = (
/obj/structure/table/wood,
-/obj/item/food/snacks/sliceable/birthdaycake,
+/obj/item/food/sliceable/birthdaycake,
/turf/simulated/floor/wood/lavaland_air,
/area/ruin/powered/pizza_party)
"G" = (
diff --git a/_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_seed_vault.dmm b/_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_seed_vault.dmm
index 91177bcb4eb4..1840bd959f46 100644
--- a/_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_seed_vault.dmm
+++ b/_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_seed_vault.dmm
@@ -119,7 +119,7 @@
/obj/effect/mapping_helpers/no_lava,
/obj/effect/mob_spawn/human/corpse/seed_vault_diona,
/obj/item/pickaxe/mini,
-/obj/item/food/snacks/grown/mushroom/glowshroom{
+/obj/item/food/grown/mushroom/glowshroom{
pixel_x = 8;
pixel_y = -8
},
diff --git a/_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_sloth.dmm b/_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_sloth.dmm
index a4db3607d6e4..4c3449a8e7f4 100644
--- a/_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_sloth.dmm
+++ b/_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_sloth.dmm
@@ -25,7 +25,7 @@
/area/ruin/powered/sloth)
"f" = (
/obj/structure/table/wood,
-/obj/item/food/snacks/grown/citrus/orange,
+/obj/item/food/grown/citrus/orange,
/turf/simulated/floor/sepia{
slowdown = 10
},
diff --git a/_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_watcher_grave.dmm b/_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_watcher_grave.dmm
index d87396e356f8..cd48da8567cc 100644
--- a/_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_watcher_grave.dmm
+++ b/_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_watcher_grave.dmm
@@ -34,7 +34,7 @@
/obj/structure/stone_tile{
dir = 1
},
-/obj/item/food/snacks/egg/watcher,
+/obj/item/food/egg/watcher,
/obj/effect/mapping_helpers/no_lava,
/obj/effect/mapping_helpers/no_lava,
/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface,
diff --git a/_maps/map_files/RandomRuins/SpaceRuins/abandonedzoo.dmm b/_maps/map_files/RandomRuins/SpaceRuins/abandonedzoo.dmm
index a6166b2c411f..2db26731792d 100644
--- a/_maps/map_files/RandomRuins/SpaceRuins/abandonedzoo.dmm
+++ b/_maps/map_files/RandomRuins/SpaceRuins/abandonedzoo.dmm
@@ -539,7 +539,7 @@
/area/ruin/space/unpowered)
"bn" = (
/obj/structure/table/reinforced,
-/obj/item/food/snacks/carrotfries,
+/obj/item/food/carrotfries,
/turf/simulated/floor/plasteel{
icon_state = "dark"
},
diff --git a/_maps/map_files/RandomRuins/SpaceRuins/blowntcommsat.dmm b/_maps/map_files/RandomRuins/SpaceRuins/blowntcommsat.dmm
index a24f340b2aec..98f108eed431 100644
--- a/_maps/map_files/RandomRuins/SpaceRuins/blowntcommsat.dmm
+++ b/_maps/map_files/RandomRuins/SpaceRuins/blowntcommsat.dmm
@@ -587,7 +587,7 @@
/turf/simulated/wall/r_wall,
/area/space/nearstation)
"Nw" = (
-/obj/item/food/snacks/xenomeatbreadslice{
+/obj/item/food/xenomeatbreadslice{
name = "green mold bread slice"
},
/turf/simulated/floor/plating/airless,
diff --git a/_maps/map_files/RandomRuins/SpaceRuins/casino.dmm b/_maps/map_files/RandomRuins/SpaceRuins/casino.dmm
index 881da9054559..c12b99680ace 100644
--- a/_maps/map_files/RandomRuins/SpaceRuins/casino.dmm
+++ b/_maps/map_files/RandomRuins/SpaceRuins/casino.dmm
@@ -200,6 +200,15 @@
},
/turf/space,
/area/space)
+"ft" = (
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 2;
+ icon_state = "1-2"
+ },
+/obj/effect/mapping_helpers/airlock/access/all/engineering/equipment,
+/turf/simulated/floor/plating,
+/area/ruin/space/powered/casino/engine)
"fG" = (
/obj/machinery/atmospherics/pipe/simple/hidden{
dir = 10
@@ -389,9 +398,7 @@
/turf/simulated/floor/mineral/titanium/blue/airless,
/area/ruin/space/powered/casino/docked_ships)
"jh" = (
-/obj/machinery/light/small{
- dir = 2
- },
+/obj/machinery/light/small,
/obj/structure/cable{
d1 = 4;
d2 = 8;
@@ -595,7 +602,7 @@
/turf/simulated/floor/mineral/silver,
/area/ruin/space/powered/casino/hall)
"od" = (
-/obj/item/food/snacks/grown/lily,
+/obj/item/food/grown/lily,
/turf/simulated/floor/beach/away/water/deep,
/area/ruin/space/powered/casino/hall)
"oi" = (
@@ -1035,7 +1042,7 @@
/turf/simulated/floor/plating,
/area/ruin/space/powered/casino/maints)
"Aw" = (
-/obj/effect/spawner/airlock/engineer,
+/obj/effect/spawner/airlock,
/turf/simulated/wall,
/area/ruin/space/powered/casino/floor)
"AF" = (
@@ -1166,7 +1173,6 @@
/area/ruin/space/powered/casino/maints)
"DL" = (
/obj/machinery/light{
- dir = 2;
brightness_color = "#FF0000";
color = "#FF0000"
},
@@ -3465,7 +3471,7 @@ mp
Eq
fG
jS
-jS
+ft
jS
wo
Xe
diff --git a/_maps/map_files/RandomRuins/SpaceRuins/deepstorage.dmm b/_maps/map_files/RandomRuins/SpaceRuins/deepstorage.dmm
index 0d2e9575100d..125dd2c1d928 100644
--- a/_maps/map_files/RandomRuins/SpaceRuins/deepstorage.dmm
+++ b/_maps/map_files/RandomRuins/SpaceRuins/deepstorage.dmm
@@ -318,11 +318,11 @@
/area/ruin/space/unpowered)
"aF" = (
/obj/structure/closet/cardboard,
-/obj/item/food/snacks/beans,
-/obj/item/food/snacks/beans,
-/obj/item/food/snacks/beans,
-/obj/item/food/snacks/beans,
-/obj/item/food/snacks/beans,
+/obj/item/food/beans,
+/obj/item/food/beans,
+/obj/item/food/beans,
+/obj/item/food/beans,
+/obj/item/food/beans,
/turf/simulated/floor/plasteel,
/area/ruin/space/unpowered)
"aG" = (
@@ -649,7 +649,7 @@
/area/ruin/space/unpowered)
"bD" = (
/obj/structure/table,
-/obj/item/food/snacks/beans,
+/obj/item/food/beans,
/turf/simulated/floor/plasteel{
icon_state = "bar"
},
diff --git a/_maps/map_files/RandomRuins/SpaceRuins/derelict2.dmm b/_maps/map_files/RandomRuins/SpaceRuins/derelict2.dmm
index d3c8d514d032..16aeab2b24ee 100644
--- a/_maps/map_files/RandomRuins/SpaceRuins/derelict2.dmm
+++ b/_maps/map_files/RandomRuins/SpaceRuins/derelict2.dmm
@@ -67,7 +67,7 @@
/obj/item/trash/plate{
pixel_x = -10
},
-/obj/item/food/snacks/burger/ghost,
+/obj/item/food/burger/ghost,
/turf/simulated/floor/plasteel,
/area/ruin/space/powered)
"o" = (
diff --git a/_maps/map_files/RandomRuins/SpaceRuins/derelict5.dmm b/_maps/map_files/RandomRuins/SpaceRuins/derelict5.dmm
index a5e6e2a6520c..bd9a9b981788 100644
--- a/_maps/map_files/RandomRuins/SpaceRuins/derelict5.dmm
+++ b/_maps/map_files/RandomRuins/SpaceRuins/derelict5.dmm
@@ -279,10 +279,10 @@
/area/ruin/space/unpowered)
"SX" = (
/obj/structure/table,
-/obj/item/food/snacks/beans{
+/obj/item/food/beans{
pixel_x = 10
},
-/obj/item/food/snacks/beans{
+/obj/item/food/beans{
pixel_x = -5
},
/turf/simulated/floor/plasteel,
diff --git a/_maps/map_files/RandomRuins/SpaceRuins/druglab.dmm b/_maps/map_files/RandomRuins/SpaceRuins/druglab.dmm
index afceaf98c253..778dd363d6c1 100644
--- a/_maps/map_files/RandomRuins/SpaceRuins/druglab.dmm
+++ b/_maps/map_files/RandomRuins/SpaceRuins/druglab.dmm
@@ -51,7 +51,7 @@
/area/ruin/space/methlab)
"l" = (
/obj/structure/table,
-/obj/item/food/snacks/chips,
+/obj/item/food/chips,
/turf/simulated/floor/plating,
/area/ruin/space/methlab)
"m" = (
diff --git a/_maps/map_files/RandomRuins/SpaceRuins/meatpackers.dmm b/_maps/map_files/RandomRuins/SpaceRuins/meatpackers.dmm
index 0fe586a3dcce..90f335a1ffe1 100644
--- a/_maps/map_files/RandomRuins/SpaceRuins/meatpackers.dmm
+++ b/_maps/map_files/RandomRuins/SpaceRuins/meatpackers.dmm
@@ -95,8 +95,8 @@
/area/ruin/unpowered/BMPship/Delta)
"ax" = (
/obj/structure/closet/crate/freezer,
-/obj/item/food/snacks/meat,
-/obj/item/food/snacks/meat,
+/obj/item/food/meat,
+/obj/item/food/meat,
/obj/effect/turf_decal/stripes/line{
dir = 1
},
@@ -104,7 +104,7 @@
/area/ruin/unpowered/BMPship/Delta)
"ay" = (
/obj/structure/closet/crate/freezer,
-/obj/item/food/snacks/meat,
+/obj/item/food/meat,
/obj/effect/turf_decal/stripes/line{
dir = 1
},
@@ -517,7 +517,7 @@
"cb" = (
/obj/structure/table,
/obj/item/kitchen/knife/butcher,
-/obj/item/food/snacks/meat,
+/obj/item/food/meat,
/turf/simulated/floor/plasteel{
icon_state = "barber"
},
@@ -600,7 +600,7 @@
/turf/simulated/wall/mineral/titanium,
/area/ruin/unpowered/BMPship/Aft)
"cp" = (
-/obj/item/food/snacks/hugemushroomslice,
+/obj/item/food/hugemushroomslice,
/turf/simulated/floor/plasteel{
icon_state = "bar"
},
@@ -699,7 +699,7 @@
/turf/simulated/floor/carpet,
/area/ruin/unpowered/BMPship/Fore)
"cH" = (
-/obj/item/food/snacks/hugemushroomslice,
+/obj/item/food/hugemushroomslice,
/turf/simulated/floor/plasteel,
/area/ruin/unpowered/BMPship/Midship)
"cI" = (
@@ -739,8 +739,8 @@
/area/ruin/unpowered/BMPship/Aft)
"cP" = (
/obj/structure/closet/crate/freezer,
-/obj/item/food/snacks/meat,
-/obj/item/food/snacks/meat,
+/obj/item/food/meat,
+/obj/item/food/meat,
/turf/simulated/floor/plasteel{
icon_state = "white"
},
@@ -835,7 +835,7 @@
},
/area/ruin/unpowered/BMPship/Midship)
"di" = (
-/obj/item/food/snacks/meat,
+/obj/item/food/meat,
/turf/simulated/floor/plasteel{
icon_state = "showroomfloor"
},
@@ -1819,7 +1819,7 @@
/area/ruin/unpowered/BMPship/Fore)
"fS" = (
/obj/structure/closet/crate/freezer,
-/obj/item/food/snacks/meat,
+/obj/item/food/meat,
/turf/simulated/floor/plasteel{
icon_state = "showroomfloor"
},
@@ -2252,7 +2252,7 @@
/turf/simulated/floor/plating/airless,
/area/ruin/powered)
"hn" = (
-/obj/item/food/snacks/chips,
+/obj/item/food/chips,
/turf/simulated/floor/plating/airless,
/area/ruin/powered)
"ho" = (
@@ -2354,8 +2354,8 @@
/area/ruin/unpowered/BMPship/Midship)
"IM" = (
/obj/structure/closet/crate/freezer,
-/obj/item/food/snacks/meat,
-/obj/item/food/snacks/hugemushroomslice,
+/obj/item/food/meat,
+/obj/item/food/hugemushroomslice,
/obj/effect/turf_decal/stripes/line{
dir = 2
},
diff --git a/_maps/map_files/RandomRuins/SpaceRuins/mechtransport.dmm b/_maps/map_files/RandomRuins/SpaceRuins/mechtransport.dmm
index d90c6ba615b9..18e946365699 100644
--- a/_maps/map_files/RandomRuins/SpaceRuins/mechtransport.dmm
+++ b/_maps/map_files/RandomRuins/SpaceRuins/mechtransport.dmm
@@ -299,7 +299,7 @@
/area/ruin/space/mech_transport)
"uU" = (
/obj/structure/table,
-/obj/item/food/snacks/cornchips{
+/obj/item/food/cornchips{
pixel_y = 4
},
/turf/simulated/floor/mineral/plastitanium/red/airless,
diff --git a/_maps/map_files/RandomRuins/SpaceRuins/moonoutpost19.dmm b/_maps/map_files/RandomRuins/SpaceRuins/moonoutpost19.dmm
index 97f7ceff1727..1e380195b61d 100644
--- a/_maps/map_files/RandomRuins/SpaceRuins/moonoutpost19.dmm
+++ b/_maps/map_files/RandomRuins/SpaceRuins/moonoutpost19.dmm
@@ -2020,7 +2020,7 @@
},
/area/ruin/space/moonbase19)
"gy" = (
-/obj/item/food/snacks/xenomeatbreadslice{
+/obj/item/food/xenomeatbreadslice{
pixel_y = 5
},
/obj/item/reagent_containers/drinks/coffee{
@@ -3653,16 +3653,16 @@
},
/area/ruin/space/moonbase19)
"lC" = (
-/obj/item/food/snacks/beans,
-/obj/item/food/snacks/beans{
+/obj/item/food/beans,
+/obj/item/food/beans{
pixel_y = 6;
pixel_x = 9
},
-/obj/item/food/snacks/beans{
+/obj/item/food/beans{
pixel_y = 3;
pixel_x = 3
},
-/obj/item/food/snacks/beans{
+/obj/item/food/beans{
pixel_y = 1;
pixel_x = -5
},
@@ -4833,7 +4833,7 @@
/area/ruin/space/moonbase19)
"pZ" = (
/obj/effect/decal/cleanable/dirt,
-/obj/item/food/snacks/badrecipe,
+/obj/item/food/badrecipe,
/turf/simulated/floor/plasteel,
/area/ruin/space/moonbase19)
"qa" = (
@@ -6825,12 +6825,12 @@
},
/area/ruin/space/moonbase19)
"yR" = (
-/obj/item/food/snacks/xenomeatbreadslice,
-/obj/item/food/snacks/xenomeatbreadslice{
+/obj/item/food/xenomeatbreadslice,
+/obj/item/food/xenomeatbreadslice{
pixel_y = 7;
pixel_x = 6
},
-/obj/item/food/snacks/xenomeatbreadslice{
+/obj/item/food/xenomeatbreadslice{
pixel_y = 9;
pixel_x = -5
},
@@ -6844,7 +6844,7 @@
},
/area/ruin/space/moonbase19)
"yU" = (
-/obj/item/food/snacks/candy,
+/obj/item/food/candy,
/obj/structure/table,
/turf/simulated/floor/plasteel,
/area/ruin/space/moonbase19)
@@ -6868,7 +6868,7 @@
/turf/simulated/floor/carpet,
/area/ruin/space/moonbase19)
"zh" = (
-/obj/item/food/snacks/badrecipe,
+/obj/item/food/badrecipe,
/turf/simulated/floor/plasteel{
icon_state = "showroomfloor";
temperature = 273.15
@@ -6941,7 +6941,7 @@
/area/ruin/space/moonbase19)
"zv" = (
/obj/structure/rack,
-/obj/item/food/snacks/cornchips,
+/obj/item/food/cornchips,
/turf/simulated/floor/plasteel{
dir = 8;
icon_state = "escape"
@@ -7806,8 +7806,8 @@
/obj/structure/closet/crate,
/obj/item/reagent_containers/glass/beaker/waterbottle,
/obj/item/reagent_containers/glass/beaker/waterbottle,
-/obj/item/food/snacks/syndicake,
-/obj/item/food/snacks/syndicake,
+/obj/item/food/syndicake,
+/obj/item/food/syndicake,
/turf/simulated/floor/plating{
icon_state = "asteroidplating"
},
@@ -7995,7 +7995,7 @@
/area/ruin/space/moonbase19)
"DV" = (
/obj/structure/closet/crate,
-/obj/item/food/snacks/beans,
+/obj/item/food/beans,
/turf/simulated/floor/plasteel,
/area/ruin/space/moonbase19)
"Ef" = (
@@ -8123,7 +8123,7 @@
/area/ruin/space/moonbase19)
"Ex" = (
/obj/structure/table/reinforced,
-/obj/item/food/snacks/sliceable/xenomeatbread{
+/obj/item/food/sliceable/xenomeatbread{
pixel_y = 5
},
/obj/effect/turf_decal/delivery,
@@ -10571,7 +10571,7 @@
/area/ruin/space/moonbase19)
"PE" = (
/obj/effect/decal/cleanable/dirt,
-/obj/item/food/snacks/badrecipe,
+/obj/item/food/badrecipe,
/turf/simulated/floor/plasteel{
icon_state = "showroomfloor";
temperature = 273.15
diff --git a/_maps/map_files/RandomRuins/SpaceRuins/rocky_motel.dmm b/_maps/map_files/RandomRuins/SpaceRuins/rocky_motel.dmm
index ef39c92c0314..2bfe250428f8 100644
--- a/_maps/map_files/RandomRuins/SpaceRuins/rocky_motel.dmm
+++ b/_maps/map_files/RandomRuins/SpaceRuins/rocky_motel.dmm
@@ -210,7 +210,7 @@
/area/ruin/space/powered)
"ur" = (
/obj/structure/table/glass/reinforced,
-/obj/item/food/snacks/grilledcheese{
+/obj/item/food/grilledcheese{
pixel_y = 9
},
/turf/simulated/floor/plasteel{
@@ -283,9 +283,7 @@
/turf/simulated/floor/wood,
/area/ruin/space/powered)
"Ed" = (
-/obj/effect/spawner/airlock/w_to_e{
- req_access_txt = 0
- },
+/obj/effect/spawner/airlock/w_to_e,
/turf/simulated/wall,
/area/ruin/space/powered)
"EQ" = (
diff --git a/_maps/map_files/RandomRuins/SpaceRuins/syndiecakesfactory.dmm b/_maps/map_files/RandomRuins/SpaceRuins/syndiecakesfactory.dmm
index 20f47726645d..167491448153 100644
--- a/_maps/map_files/RandomRuins/SpaceRuins/syndiecakesfactory.dmm
+++ b/_maps/map_files/RandomRuins/SpaceRuins/syndiecakesfactory.dmm
@@ -16,7 +16,7 @@
/area/ruin/space/unpowered)
"bk" = (
/obj/structure/table/glass/reinforced/plastitanium,
-/obj/item/food/snacks/syndicake{
+/obj/item/food/syndicake{
pixel_y = 7
},
/obj/effect/decal/cleanable/dirt,
@@ -111,11 +111,11 @@
/obj/machinery/computer/security/telescreen/entertainment{
pixel_y = -32
},
-/obj/item/food/snacks/donut/sprinkles{
+/obj/item/food/donut/sprinkles{
pixel_y = 8;
pixel_x = -9
},
-/obj/item/food/snacks/donut/sprinkles{
+/obj/item/food/donut/sprinkles{
pixel_y = -1;
pixel_x = 5
},
@@ -123,8 +123,8 @@
/area/ruin/space/unpowered)
"fq" = (
/obj/structure/table/glass/reinforced/plastitanium,
-/obj/item/food/snacks/meat/corgi,
-/obj/item/food/snacks/meat/corgi{
+/obj/item/food/meat/corgi,
+/obj/item/food/meat/corgi{
pixel_y = 6
},
/turf/simulated/floor/plasteel{
@@ -133,14 +133,14 @@
/area/ruin/space/unpowered)
"fs" = (
/obj/structure/table/glass/reinforced/plastitanium,
-/obj/item/food/snacks/syndicake{
+/obj/item/food/syndicake{
pixel_y = 7
},
-/obj/item/food/snacks/syndicake{
+/obj/item/food/syndicake{
pixel_x = 15;
pixel_y = 7
},
-/obj/item/food/snacks/syndicake{
+/obj/item/food/syndicake{
pixel_y = -10
},
/obj/machinery/light/small{
@@ -152,7 +152,7 @@
/area/ruin/space/unpowered)
"fE" = (
/obj/structure/table/glass/reinforced/plastitanium,
-/obj/item/food/snacks/syndicake,
+/obj/item/food/syndicake,
/turf/simulated/floor/plasteel{
icon_state = "dark"
},
@@ -275,11 +275,11 @@
/area/ruin/space/unpowered)
"ke" = (
/obj/structure/table/glass/reinforced/plastitanium,
-/obj/item/food/snacks/syndicake{
+/obj/item/food/syndicake{
pixel_x = 15;
pixel_y = 7
},
-/obj/item/food/snacks/syndicake,
+/obj/item/food/syndicake,
/turf/simulated/floor/plasteel{
icon_state = "dark"
},
@@ -369,11 +369,11 @@
/area/ruin/space/unpowered)
"qd" = (
/obj/structure/table/glass/reinforced/plastitanium,
-/obj/item/food/snacks/breadslice,
-/obj/item/food/snacks/breadslice{
+/obj/item/food/breadslice,
+/obj/item/food/breadslice{
pixel_y = 4
},
-/obj/item/food/snacks/breadslice{
+/obj/item/food/breadslice{
pixel_y = 8
},
/obj/machinery/light/small{
@@ -480,12 +480,12 @@
/area/ruin/space/unpowered)
"tf" = (
/obj/structure/table/glass/reinforced/plastitanium,
-/obj/item/food/snacks/syndicake,
-/obj/item/food/snacks/syndicake{
+/obj/item/food/syndicake,
+/obj/item/food/syndicake{
pixel_x = 15;
pixel_y = 7
},
-/obj/item/food/snacks/syndicake{
+/obj/item/food/syndicake{
pixel_x = 15
},
/turf/simulated/floor/plasteel{
@@ -693,10 +693,10 @@
/area/ruin/space/unpowered)
"Bh" = (
/obj/structure/table/glass/reinforced/plastitanium,
-/obj/item/food/snacks/syndicake{
+/obj/item/food/syndicake{
pixel_y = 7
},
-/obj/item/food/snacks/syndicake{
+/obj/item/food/syndicake{
pixel_y = -10
},
/turf/simulated/floor/plasteel{
@@ -748,7 +748,7 @@
/area/ruin/space/unpowered)
"Do" = (
/obj/structure/table/glass/reinforced/plastitanium,
-/obj/item/food/snacks/meat/corgi,
+/obj/item/food/meat/corgi,
/turf/simulated/floor/plasteel{
icon_state = "cafeteria"
},
@@ -832,8 +832,8 @@
/area/ruin/space/unpowered)
"Gn" = (
/obj/structure/table/reinforced,
-/obj/item/food/snacks/syndicake,
-/obj/item/food/snacks/syndicake{
+/obj/item/food/syndicake,
+/obj/item/food/syndicake{
pixel_y = 7
},
/turf/simulated/floor/engine,
@@ -877,7 +877,7 @@
/turf/simulated/floor/engine,
/area/ruin/space/unpowered)
"Iz" = (
-/obj/item/food/snacks/meat/corgi{
+/obj/item/food/meat/corgi{
pixel_y = 6
},
/obj/effect/decal/cleanable/dirt,
@@ -947,10 +947,10 @@
/area/ruin/space/unpowered)
"Lt" = (
/obj/structure/table/glass/reinforced/plastitanium,
-/obj/item/food/snacks/syndicake{
+/obj/item/food/syndicake{
pixel_y = 7
},
-/obj/item/food/snacks/syndicake{
+/obj/item/food/syndicake{
pixel_x = 15
},
/turf/simulated/floor/plasteel{
@@ -977,8 +977,8 @@
/area/ruin/space/unpowered)
"Mw" = (
/obj/structure/table/glass/reinforced/plastitanium,
-/obj/item/food/snacks/syndicake,
-/obj/item/food/snacks/syndicake{
+/obj/item/food/syndicake,
+/obj/item/food/syndicake{
pixel_x = 15;
pixel_y = 7
},
@@ -1003,10 +1003,10 @@
/area/ruin/space/unpowered)
"MY" = (
/obj/structure/table/glass/reinforced/plastitanium,
-/obj/item/food/snacks/syndicake{
+/obj/item/food/syndicake{
pixel_y = 7
},
-/obj/item/food/snacks/syndicake{
+/obj/item/food/syndicake{
pixel_x = 15
},
/turf/simulated/floor/plasteel{
@@ -1035,21 +1035,21 @@
/area/template_noop)
"Ov" = (
/obj/structure/table/glass/reinforced/plastitanium,
-/obj/item/food/snacks/donkpocket{
+/obj/item/food/donkpocket{
pixel_x = 8
},
-/obj/item/food/snacks/donkpocket{
+/obj/item/food/donkpocket{
pixel_x = -8
},
-/obj/item/food/snacks/donkpocket{
+/obj/item/food/donkpocket{
pixel_x = -8;
pixel_y = 8
},
-/obj/item/food/snacks/donkpocket{
+/obj/item/food/donkpocket{
pixel_x = 8;
pixel_y = 8
},
-/obj/item/food/snacks/birthdaycakeslice,
+/obj/item/food/birthdaycakeslice,
/turf/simulated/floor/plasteel{
icon_state = "floorgrime"
},
@@ -1116,12 +1116,12 @@
/area/ruin/space/unpowered)
"QF" = (
/obj/structure/table/glass/reinforced/plastitanium,
-/obj/item/food/snacks/syndicake,
-/obj/item/food/snacks/syndicake{
+/obj/item/food/syndicake,
+/obj/item/food/syndicake{
pixel_x = 15;
pixel_y = 7
},
-/obj/item/food/snacks/syndicake{
+/obj/item/food/syndicake{
pixel_x = 15
},
/obj/machinery/light/small{
@@ -1162,7 +1162,7 @@
},
/area/ruin/space/unpowered)
"SS" = (
-/obj/item/food/snacks/meat/corgi,
+/obj/item/food/meat/corgi,
/turf/simulated/floor/grass,
/area/ruin/space/unpowered)
"TG" = (
@@ -1203,7 +1203,7 @@
},
/area/ruin/space/unpowered)
"VI" = (
-/obj/item/food/snacks/meat/corgi{
+/obj/item/food/meat/corgi{
pixel_y = 6
},
/turf/simulated/floor/plasteel{
@@ -1296,7 +1296,7 @@
/area/ruin/space/unpowered)
"Zw" = (
/obj/structure/table/glass/reinforced/plastitanium,
-/obj/item/food/snacks/syndicake{
+/obj/item/food/syndicake{
pixel_y = 7
},
/turf/simulated/floor/plasteel{
diff --git a/_maps/map_files/RandomRuins/SpaceRuins/syndiedepot.dmm b/_maps/map_files/RandomRuins/SpaceRuins/syndiedepot.dmm
index 71c4bb2a8c71..7a14126f0743 100644
--- a/_maps/map_files/RandomRuins/SpaceRuins/syndiedepot.dmm
+++ b/_maps/map_files/RandomRuins/SpaceRuins/syndiedepot.dmm
@@ -53,7 +53,7 @@
},
/area/syndicate_depot/outer)
"al" = (
-/obj/item/food/snacks/monstermeat/spiderleg,
+/obj/item/food/monstermeat/spiderleg,
/obj/structure/spider,
/turf/simulated/floor/plasteel{
icon_state = "dark"
@@ -614,7 +614,7 @@
/area/syndicate_depot/core)
"bO" = (
/obj/structure/table,
-/obj/item/food/snacks/syndicake,
+/obj/item/food/syndicake,
/turf/simulated/floor/plasteel{
icon_state = "dark"
},
diff --git a/_maps/map_files/RandomRuins/SpaceRuins/telecomns_returns.dmm b/_maps/map_files/RandomRuins/SpaceRuins/telecomns_returns.dmm
new file mode 100644
index 000000000000..3feac9757b90
--- /dev/null
+++ b/_maps/map_files/RandomRuins/SpaceRuins/telecomns_returns.dmm
@@ -0,0 +1,11670 @@
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"aa" = (
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 2;
+ icon_state = "1-2"
+ },
+/turf/simulated/floor/bluegrid{
+ name = "Mainframe Base";
+ nitrogen = 400;
+ oxygen = 0;
+ temperature = 80
+ },
+/area/ruin/space/telecomms/chamber)
+"an" = (
+/mob/living/simple_animal/hostile/malf_drone,
+/turf/space,
+/area/space)
+"ao" = (
+/obj/structure/sign/securearea{
+ desc = "A warning sign which reads 'LETHAL TURRETS'. Enter at your own risk!";
+ name = "LETHAL TURRETS";
+ pixel_x = 32;
+ pixel_y = 0
+ },
+/obj/machinery/porta_turret/ai_turret{
+ check_synth = 1;
+ lethal = 1;
+ faction = "malf_drone";
+ ailock = 1;
+ check_borgs = 1
+ },
+/obj/effect/turf_decal/box/white,
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/foyer)
+"ax" = (
+/obj/structure/lattice,
+/obj/structure/grille/broken,
+/turf/space,
+/area/space/nearstation)
+"aN" = (
+/obj/machinery/light/small{
+ dir = 8
+ },
+/obj/structure/sign/vacuum{
+ pixel_x = 0;
+ pixel_y = 32
+ },
+/obj/structure/cable{
+ d1 = 2;
+ d2 = 4;
+ icon_state = "2-4"
+ },
+/mob/living/simple_animal/hostile/malf_drone,
+/obj/effect/spawner/random_spawners/cobweb_left_frequent,
+/turf/simulated/floor/catwalk,
+/area/ruin/space/telecomms/powercontrol)
+"bb" = (
+/obj/machinery/teleport/hub,
+/obj/effect/turf_decal/delivery,
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/tele)
+"bE" = (
+/obj/machinery/light,
+/turf/space,
+/area/ruin/space/telecomms)
+"bI" = (
+/obj/structure/window/plasmareinforced{
+ dir = 8
+ },
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/tele)
+"bJ" = (
+/obj/effect/abstract/loot_trap,
+/turf/simulated/floor/bluegrid{
+ icon_state = "dark";
+ name = "Mainframe Floor";
+ nitrogen = 400;
+ oxygen = 0;
+ temperature = 80
+ },
+/area/ruin/space/telecomms/chamber)
+"bO" = (
+/obj/machinery/mech_bay_recharge_port{
+ dir = 1
+ },
+/turf/simulated/floor/bluegrid{
+ icon_state = "dark";
+ name = "Mainframe Floor";
+ nitrogen = 400;
+ oxygen = 0;
+ temperature = 80
+ },
+/area/ruin/space/telecomms/chamber)
+"bP" = (
+/obj/effect/spawner/lootdrop/telecomms_core_table,
+/obj/machinery/ai_slipper,
+/obj/structure/table/glass/reinforced/plastitanium,
+/turf/simulated/floor/plasteel{
+ dir = 1;
+ icon_state = "vault";
+ name = "Mainframe floor";
+ nitrogen = 400;
+ oxygen = 0;
+ temperature = 80
+ },
+/area/ruin/space/telecomms/chamber)
+"bR" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/grille,
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 2;
+ icon_state = "1-2"
+ },
+/turf/simulated/floor/plating/airless,
+/area/space/nearstation)
+"ca" = (
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 2;
+ icon_state = "1-2"
+ },
+/turf/simulated/floor/catwalk,
+/area/ruin/space/telecomms)
+"cj" = (
+/obj/machinery/light/small,
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/foyer)
+"cz" = (
+/obj/machinery/floodlight,
+/turf/simulated/floor/plasteel{
+ dir = 1;
+ icon_state = "vault";
+ name = "Mainframe floor";
+ nitrogen = 400;
+ oxygen = 0;
+ temperature = 80
+ },
+/area/ruin/space/telecomms/chamber)
+"cH" = (
+/obj/structure/cable{
+ d1 = 2;
+ d2 = 8;
+ icon_state = "2-8"
+ },
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 2;
+ icon_state = "1-2"
+ },
+/obj/structure/cable{
+ d1 = 2;
+ d2 = 4;
+ icon_state = "2-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ req_access_txt = "0"
+ },
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/tele)
+"cJ" = (
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 4;
+ icon_state = "1-4"
+ },
+/obj/structure/cable{
+ d1 = 2;
+ d2 = 4;
+ icon_state = "2-4"
+ },
+/turf/simulated/floor/catwalk/airless,
+/area/space/nearstation)
+"dn" = (
+/obj/machinery/computer/nonfunctional{
+ dir = 4
+ },
+/turf/simulated/floor/plasteel{
+ dir = 4;
+ icon_state = "vault";
+ name = "Mainframe floor";
+ nitrogen = 400;
+ oxygen = 0;
+ temperature = 80
+ },
+/area/ruin/space/telecomms/chamber)
+"du" = (
+/obj/structure/cable{
+ d1 = 2;
+ d2 = 8;
+ icon_state = "2-8"
+ },
+/turf/simulated/floor/catwalk/airless,
+/area/space/nearstation)
+"dv" = (
+/obj/machinery/atmospherics/unary/vent_pump{
+ dir = 8;
+ on = 1
+ },
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/computer)
+"dB" = (
+/obj/machinery/power/smes{
+ charge = 2.5e+006;
+ input_attempt = 1;
+ input_level = 200000;
+ inputting = 1
+ },
+/obj/structure/cable{
+ d2 = 4;
+ icon_state = "0-4"
+ },
+/turf/simulated/floor/catwalk,
+/area/ruin/space/telecomms/powercontrol)
+"dD" = (
+/obj/structure/closet/crate,
+/obj/item/multitool,
+/obj/machinery/camera{
+ c_tag = "Telecomms Entrance South";
+ dir = 1;
+ network = list("Telecomms")
+ },
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/tele)
+"dR" = (
+/obj/structure/cable{
+ d2 = 8;
+ icon_state = "0-8"
+ },
+/obj/machinery/power/apc/directional/east{
+ malfhack = 1;
+ emp_proof = 1;
+ hacked_by_ruin_AI = 1
+ },
+/obj/structure/environmental_storytelling_holopad/control_room,
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/computer)
+"eb" = (
+/obj/structure/cable{
+ icon_state = "0-4";
+ d2 = 4
+ },
+/obj/machinery/power/apc/directional/north{
+ malfhack = 1;
+ hacked_by_ruin_AI = 1
+ },
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/foyer)
+"ei" = (
+/obj/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 5
+ },
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/turf/simulated/floor/catwalk,
+/area/ruin/space/telecomms)
+"es" = (
+/obj/structure/bed,
+/obj/item/bedsheet/brown,
+/obj/machinery/status_display{
+ pixel_x = 0;
+ pixel_y = 32
+ },
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/computer)
+"eE" = (
+/obj/machinery/mecha_part_fabricator,
+/turf/simulated/floor/plasteel{
+ dir = 1;
+ icon_state = "vault";
+ name = "Mainframe floor";
+ nitrogen = 400;
+ oxygen = 0;
+ temperature = 80
+ },
+/area/ruin/space/telecomms/chamber)
+"eH" = (
+/obj/structure/sign/securearea,
+/turf/simulated/wall/r_wall,
+/area/ruin/space/telecomms/computer)
+"eJ" = (
+/obj/structure/sign/securearea{
+ desc = "A warning sign which reads 'LETHAL TURRETS'. Enter at your own risk!";
+ name = "LETHAL TURRETS";
+ pixel_x = -32;
+ pixel_y = 0
+ },
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/foyer)
+"eR" = (
+/obj/structure/filingcabinet,
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/computer)
+"fa" = (
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 5
+ },
+/obj/structure/lattice,
+/turf/space,
+/area/space/nearstation)
+"fc" = (
+/obj/machinery/constructable_frame/machine_frame,
+/turf/simulated/floor/bluegrid{
+ icon_state = "dark";
+ name = "Mainframe Floor";
+ nitrogen = 400;
+ oxygen = 0;
+ temperature = 80
+ },
+/area/ruin/space/telecomms/chamber)
+"fq" = (
+/obj/machinery/light_switch{
+ pixel_y = 28
+ },
+/turf/simulated/floor/bluegrid{
+ name = "Mainframe Base";
+ nitrogen = 400;
+ oxygen = 0;
+ temperature = 80
+ },
+/area/ruin/space/telecomms/chamber)
+"fs" = (
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/structure/window/reinforced,
+/turf/space,
+/area/space/nearstation)
+"fv" = (
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/obj/machinery/atmospherics/unary/tank/air{
+ dir = 8
+ },
+/turf/simulated/floor/catwalk,
+/area/ruin/space/telecomms)
+"gg" = (
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/manifold/hidden/supply{
+ dir = 4;
+ initialize_directions = 11;
+ level = 1
+ },
+/obj/structure/lattice,
+/turf/space,
+/area/space/nearstation)
+"gi" = (
+/obj/item/radio/intercom{
+ pixel_y = 25
+ },
+/turf/simulated/floor/bluegrid{
+ name = "Mainframe Base";
+ nitrogen = 400;
+ oxygen = 0;
+ temperature = 80
+ },
+/area/ruin/space/telecomms/chamber)
+"gm" = (
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 4;
+ level = 1
+ },
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/tele)
+"gr" = (
+/obj/structure/grille,
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 8;
+ icon_state = "1-8"
+ },
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 4;
+ icon_state = "1-4"
+ },
+/obj/structure/cable{
+ d1 = 4;
+ d2 = 8;
+ icon_state = "4-8";
+ pixel_x = 0
+ },
+/turf/simulated/floor/catwalk/airless,
+/area/space/nearstation)
+"gv" = (
+/obj/effect/spawner/random_spawners/fungus_maybe,
+/turf/simulated/wall/r_wall,
+/area/ruin/space/telecomms/computer)
+"gG" = (
+/obj/structure/cable{
+ d2 = 8;
+ icon_state = "0-8"
+ },
+/obj/machinery/shieldwallgen/telecomms,
+/turf/simulated/floor/plasteel{
+ dir = 4;
+ icon_state = "vault";
+ name = "Mainframe floor";
+ nitrogen = 400;
+ oxygen = 0;
+ temperature = 80
+ },
+/area/ruin/space/telecomms/chamber)
+"gJ" = (
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 2;
+ icon_state = "1-2"
+ },
+/obj/machinery/door/airlock/hatch{
+ name = "Telecoms Satellite";
+ req_access_txt = "61"
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ req_access_txt = "0"
+ },
+/obj/machinery/door/firedoor,
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/tele)
+"gR" = (
+/obj/structure/table,
+/obj/machinery/light/small{
+ dir = 4
+ },
+/obj/item/radio/intercom{
+ name = "station intercom (General)";
+ pixel_x = 29;
+ pixel_y = 0
+ },
+/obj/effect/spawner/lootdrop/maintenance/three,
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms)
+"hq" = (
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/obj/structure/window/reinforced,
+/turf/space,
+/area/space/nearstation)
+"hU" = (
+/obj/machinery/computer/teleporter,
+/obj/effect/turf_decal/delivery,
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/tele)
+"ia" = (
+/obj/effect/spawner/random_spawners/telecomms_emp_loot,
+/turf/simulated/floor/engine,
+/area/ruin/space/telecomms/computer)
+"ik" = (
+/turf/simulated/wall/r_wall,
+/area/space/nearstation)
+"il" = (
+/turf/simulated/floor/bluegrid{
+ icon_state = "dark";
+ name = "Mainframe Floor";
+ nitrogen = 400;
+ oxygen = 0;
+ temperature = 80
+ },
+/area/ruin/space/telecomms/chamber)
+"iy" = (
+/obj/machinery/firealarm/directional/east,
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/computer)
+"iD" = (
+/turf/simulated/wall/indestructible/riveted,
+/area/space/nearstation)
+"iE" = (
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/tele)
+"iR" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/simulated/wall/indestructible/riveted,
+/area/ruin/space/telecomms/computer)
+"jo" = (
+/obj/structure/cable{
+ d1 = 4;
+ d2 = 8;
+ icon_state = "4-8"
+ },
+/turf/simulated/floor/catwalk,
+/area/ruin/space/telecomms/powercontrol)
+"kl" = (
+/obj/machinery/computer/nonfunctional{
+ dir = 1
+ },
+/turf/simulated/floor/engine,
+/area/ruin/space/telecomms/computer)
+"kr" = (
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 8;
+ icon_state = "1-8"
+ },
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 2;
+ icon_state = "1-2"
+ },
+/turf/simulated/floor/catwalk/airless,
+/area/ruin/space/telecomms/powercontrol)
+"ky" = (
+/obj/machinery/door/airlock/hatch{
+ name = "Telecoms Power Control";
+ req_access_txt = "61"
+ },
+/obj/structure/cable{
+ d1 = 4;
+ d2 = 8;
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 4;
+ level = 1
+ },
+/obj/machinery/door/firedoor,
+/turf/simulated/floor/catwalk,
+/area/ruin/space/telecomms/tele)
+"kA" = (
+/obj/machinery/porta_turret/ai_turret/disable{
+ check_synth = 1;
+ lethal = 1;
+ scan_range = 9;
+ faction = "malf_drone";
+ ailock = 1;
+ check_borgs = 1
+ },
+/obj/effect/turf_decal/box/white,
+/obj/effect/abstract/cheese_trap,
+/turf/simulated/floor/plating/airless,
+/area/ruin/space/telecomms)
+"kT" = (
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 8;
+ icon_state = "1-8"
+ },
+/turf/simulated/floor/bluegrid{
+ name = "Mainframe Base";
+ nitrogen = 400;
+ oxygen = 0;
+ temperature = 80
+ },
+/area/ruin/space/telecomms/chamber)
+"kU" = (
+/obj/structure/closet/malf/suits,
+/obj/effect/spawner/random_spawners/cobweb_left_frequent,
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/tele)
+"kV" = (
+/obj/structure/cable{
+ d1 = 2;
+ d2 = 8;
+ icon_state = "2-8"
+ },
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 8;
+ icon_state = "1-8"
+ },
+/obj/structure/cable{
+ d1 = 4;
+ d2 = 8;
+ icon_state = "4-8";
+ pixel_x = 0
+ },
+/turf/simulated/floor/catwalk/airless,
+/area/space/nearstation)
+"li" = (
+/obj/machinery/power/solar,
+/obj/structure/cable{
+ d2 = 8;
+ icon_state = "0-8"
+ },
+/turf/simulated/floor/plasteel/airless{
+ icon_state = "solarpanel"
+ },
+/area/space/nearstation)
+"lo" = (
+/obj/structure/window/reinforced{
+ dir = 1
+ },
+/obj/structure/lattice,
+/obj/machinery/light,
+/turf/space,
+/area/ruin/space/telecomms)
+"lp" = (
+/obj/structure/cable{
+ d1 = 2;
+ d2 = 4;
+ icon_state = "2-4"
+ },
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 2;
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 4;
+ level = 1
+ },
+/turf/simulated/floor/catwalk,
+/area/ruin/space/telecomms/powercontrol)
+"lr" = (
+/obj/structure/cable{
+ d1 = 4;
+ d2 = 8;
+ icon_state = "4-8"
+ },
+/obj/effect/spawner/random_spawners/oil_often,
+/turf/simulated/floor/catwalk,
+/area/ruin/space/telecomms/powercontrol)
+"lB" = (
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 4
+ },
+/obj/structure/window/reinforced,
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 4;
+ icon_state = "1-4"
+ },
+/turf/simulated/floor/catwalk,
+/area/ruin/space/telecomms)
+"lH" = (
+/obj/machinery/atmospherics/pipe/simple/visible{
+ dir = 5
+ },
+/turf/simulated/floor/catwalk,
+/area/ruin/space/telecomms)
+"lW" = (
+/obj/structure/lattice,
+/obj/structure/grille,
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 2;
+ icon_state = "1-2"
+ },
+/turf/simulated/floor/plating/airless,
+/area/space/nearstation)
+"mb" = (
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 2;
+ icon_state = "1-2"
+ },
+/obj/structure/closet/crate,
+/obj/item/stack/sheet/glass{
+ amount = 50
+ },
+/obj/item/stack/cable_coil/random,
+/obj/item/stack/cable_coil/random,
+/turf/simulated/floor/catwalk,
+/area/ruin/space/telecomms/powercontrol)
+"mc" = (
+/obj/machinery/porta_turret/ai_turret/disable{
+ check_synth = 1;
+ lethal = 1;
+ scan_range = 12;
+ faction = "malf_drone";
+ initial_eprojectile = /obj/item/projectile/beam/laser/ai_turret/heavylaser;
+ ailock = 1;
+ check_borgs = 1
+ },
+/obj/effect/turf_decal/box/white,
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/tele)
+"mh" = (
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 4;
+ icon_state = "1-4"
+ },
+/turf/simulated/floor/catwalk/airless,
+/area/space/nearstation)
+"mD" = (
+/obj/structure/table,
+/obj/effect/spawner/lootdrop/bluespace_tap/organic,
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms)
+"mH" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/simulated/floor/plating/airless,
+/area/space/nearstation)
+"mN" = (
+/obj/structure/table,
+/obj/effect/spawner/lootdrop/maintenance/three,
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms)
+"mO" = (
+/obj/structure/cable{
+ d1 = 4;
+ d2 = 8;
+ icon_state = "4-8";
+ pixel_x = 0
+ },
+/obj/structure/grille,
+/turf/simulated/floor/plating/airless,
+/area/space/nearstation)
+"mZ" = (
+/obj/machinery/door/airlock/maintenance_hatch{
+ name = "Core Access";
+ locked = 1
+ },
+/obj/machinery/door/firedoor,
+/turf/simulated/floor/plasteel{
+ icon_state = "vault";
+ dir = 5
+ },
+/area/ruin/space/telecomms/chamber)
+"nh" = (
+/obj/structure/cable{
+ d2 = 4;
+ icon_state = "0-4"
+ },
+/obj/machinery/shieldwallgen/telecomms,
+/turf/simulated/floor/plasteel{
+ dir = 1;
+ icon_state = "vault";
+ name = "Mainframe floor";
+ nitrogen = 400;
+ oxygen = 0;
+ temperature = 80
+ },
+/area/ruin/space/telecomms/chamber)
+"np" = (
+/obj/structure/cable{
+ d1 = 4;
+ d2 = 8;
+ icon_state = "4-8";
+ pixel_x = 0
+ },
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/computer)
+"nB" = (
+/obj/machinery/light{
+ dir = 1
+ },
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/computer)
+"nD" = (
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 4
+ },
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/foyer)
+"nI" = (
+/obj/machinery/computer/security{
+ dir = 4;
+ network = list("SS13","Research Outpost","Mining Outpost")
+ },
+/turf/simulated/floor/bluegrid{
+ icon_state = "dark";
+ name = "Mainframe Floor";
+ nitrogen = 400;
+ oxygen = 0;
+ temperature = 80
+ },
+/area/ruin/space/telecomms/chamber)
+"nL" = (
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/supply,
+/turf/simulated/floor/catwalk,
+/area/ruin/space/telecomms)
+"nQ" = (
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 2;
+ icon_state = "1-2"
+ },
+/obj/machinery/light,
+/obj/structure/cable{
+ d1 = 2;
+ d2 = 4;
+ icon_state = "2-4"
+ },
+/turf/simulated/floor/bluegrid{
+ name = "Mainframe Base";
+ nitrogen = 400;
+ oxygen = 0;
+ temperature = 80
+ },
+/area/ruin/space/telecomms/chamber)
+"nS" = (
+/obj/structure/table,
+/obj/machinery/status_display{
+ pixel_x = 32;
+ pixel_y = 0
+ },
+/obj/effect/spawner/lootdrop/bluespace_tap/cultural,
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms)
+"ob" = (
+/obj/effect/spawner/random_spawners/fungus_maybe,
+/turf/simulated/wall/indestructible/riveted,
+/area/ruin/space/telecomms/computer)
+"oe" = (
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 4;
+ icon_state = "1-4"
+ },
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 8;
+ icon_state = "1-8"
+ },
+/turf/simulated/floor/catwalk/airless,
+/area/space/nearstation)
+"ou" = (
+/obj/structure/cable{
+ d1 = 2;
+ d2 = 8;
+ icon_state = "2-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/visible{
+ dir = 4
+ },
+/obj/machinery/firealarm/directional/north,
+/turf/simulated/floor/catwalk,
+/area/ruin/space/telecomms)
+"oz" = (
+/obj/machinery/atmospherics/unary/vent_pump{
+ dir = 1;
+ external_pressure_bound = 101.325;
+ on = 1;
+ pressure_checks = 1
+ },
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/foyer)
+"oB" = (
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 5;
+ level = 1
+ },
+/turf/simulated/floor/catwalk,
+/area/ruin/space/telecomms)
+"oE" = (
+/obj/structure/window/reinforced,
+/obj/structure/window/reinforced{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 5
+ },
+/obj/structure/lattice,
+/turf/space,
+/area/space/nearstation)
+"oG" = (
+/obj/structure/cable{
+ icon_state = "0-4";
+ d2 = 4
+ },
+/obj/effect/spawner/window/reinforced/grilled,
+/obj/machinery/door/firedoor/heavy,
+/turf/simulated/floor/plating,
+/area/ruin/space/telecomms/tele)
+"oW" = (
+/obj/structure/cable{
+ d2 = 8;
+ icon_state = "0-8"
+ },
+/obj/effect/spawner/window/reinforced/grilled,
+/obj/machinery/door/firedoor/heavy,
+/turf/simulated/floor/plating,
+/area/ruin/space/telecomms/tele)
+"oY" = (
+/obj/machinery/power/solar,
+/obj/structure/cable{
+ icon_state = "0-2";
+ pixel_y = 1;
+ d2 = 2
+ },
+/turf/simulated/floor/plasteel/airless{
+ icon_state = "solarpanel"
+ },
+/area/space/nearstation)
+"pa" = (
+/obj/machinery/computer/borgupload,
+/turf/simulated/floor/bluegrid{
+ icon_state = "dark";
+ name = "Mainframe Floor";
+ nitrogen = 400;
+ oxygen = 0;
+ temperature = 80
+ },
+/area/ruin/space/telecomms/chamber)
+"ph" = (
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 2;
+ icon_state = "1-2"
+ },
+/obj/structure/environmental_storytelling_holopad/first_turret_room,
+/obj/machinery/atmospherics/pipe/manifold/hidden/supply{
+ dir = 4;
+ initialize_directions = 11;
+ level = 1
+ },
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/foyer)
+"pE" = (
+/obj/effect/spawner/random_spawners/cobweb_left_frequent,
+/obj/effect/spawner/random_spawners/cobweb_right_frequent,
+/turf/simulated/floor/engine,
+/area/ruin/space/telecomms/computer)
+"pS" = (
+/obj/structure/lattice,
+/obj/structure/grille/broken,
+/mob/living/simple_animal/hostile/malf_drone,
+/turf/space,
+/area/space/nearstation)
+"pU" = (
+/obj/structure/lattice,
+/obj/structure/grille,
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 4;
+ icon_state = "1-4"
+ },
+/turf/simulated/floor/plating/airless,
+/area/space/nearstation)
+"pV" = (
+/obj/item/paper/monitorkey,
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/computer)
+"qe" = (
+/obj/structure/cable{
+ d1 = 4;
+ d2 = 8;
+ icon_state = "4-8";
+ pixel_x = 0
+ },
+/turf/simulated/floor/bluegrid{
+ name = "Mainframe Base";
+ nitrogen = 400;
+ oxygen = 0;
+ temperature = 80
+ },
+/area/ruin/space/telecomms/chamber)
+"qn" = (
+/obj/machinery/porta_turret/ai_turret/disable{
+ check_synth = 1;
+ lethal = 1;
+ scan_range = 9;
+ faction = "malf_drone";
+ ailock = 1;
+ check_borgs = 1
+ },
+/obj/effect/turf_decal/box/white,
+/turf/simulated/floor/plating/airless,
+/area/ruin/space/telecomms)
+"qo" = (
+/obj/machinery/atmospherics/unary/vent_pump{
+ dir = 4;
+ layer = 2.4;
+ on = 1
+ },
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/computer)
+"qD" = (
+/obj/effect/spawner/random_spawners/fungus_maybe,
+/turf/simulated/wall/r_wall,
+/area/ruin/space/telecomms/powercontrol)
+"qE" = (
+/obj/structure/environmental_storytelling_holopad/junk_room,
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 10
+ },
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms)
+"qF" = (
+/obj/item/storage/toolbox/mechanical,
+/obj/machinery/atmospherics/unary/vent_pump{
+ dir = 1;
+ external_pressure_bound = 101.325;
+ on = 1;
+ pressure_checks = 1
+ },
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms)
+"qM" = (
+/obj/structure/table,
+/obj/machinery/light_switch{
+ pixel_y = -28
+ },
+/obj/effect/spawner/lootdrop/maintenance/three,
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms)
+"qO" = (
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 2;
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/supply,
+/obj/structure/environmental_storytelling_holopad/teleporter_room,
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/tele)
+"qP" = (
+/obj/structure/cable{
+ d1 = 2;
+ d2 = 4;
+ icon_state = "2-4"
+ },
+/obj/structure/cable{
+ d1 = 2;
+ d2 = 8;
+ icon_state = "2-8"
+ },
+/turf/simulated/floor/catwalk/airless,
+/area/space/nearstation)
+"rd" = (
+/obj/item/pen/gray,
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/computer)
+"rD" = (
+/obj/structure/cable{
+ d1 = 2;
+ d2 = 4;
+ icon_state = "2-4"
+ },
+/turf/simulated/floor/catwalk/airless,
+/area/space/nearstation)
+"rL" = (
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 4
+ },
+/obj/structure/window/reinforced,
+/obj/structure/window/reinforced{
+ dir = 1
+ },
+/turf/simulated/floor/catwalk,
+/area/ruin/space/telecomms)
+"rT" = (
+/obj/machinery/power/terminal{
+ dir = 4
+ },
+/turf/simulated/floor/bluegrid{
+ name = "Mainframe Base";
+ nitrogen = 400;
+ oxygen = 0;
+ temperature = 80
+ },
+/area/ruin/space/telecomms/chamber)
+"sn" = (
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 8;
+ icon_state = "1-8"
+ },
+/turf/simulated/floor/catwalk/airless,
+/area/space/nearstation)
+"sq" = (
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/machinery/atmospherics/unary/vent_pump{
+ on = 1
+ },
+/turf/simulated/floor/catwalk,
+/area/ruin/space/telecomms)
+"sv" = (
+/obj/effect/mob_spawn/human/corpse/scientist,
+/turf/simulated/floor/engine,
+/area/ruin/space/telecomms/computer)
+"sH" = (
+/obj/structure/sign/nosmoking_2{
+ pixel_x = -32;
+ pixel_y = 0
+ },
+/turf/simulated/floor/bluegrid{
+ name = "Mainframe Base";
+ nitrogen = 400;
+ oxygen = 0;
+ temperature = 80
+ },
+/area/ruin/space/telecomms/chamber)
+"sM" = (
+/obj/machinery/light{
+ dir = 8
+ },
+/obj/machinery/atmospherics/unary/vent_pump{
+ dir = 4;
+ layer = 2.4;
+ on = 1
+ },
+/obj/machinery/status_display{
+ pixel_x = 0;
+ pixel_y = 32
+ },
+/obj/structure/table,
+/obj/machinery/autolathe/trapped,
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/tele)
+"sO" = (
+/obj/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/simple/visible/universal,
+/turf/simulated/floor/catwalk,
+/area/ruin/space/telecomms)
+"sT" = (
+/obj/machinery/atmospherics/pipe/simple/visible{
+ dir = 4
+ },
+/obj/machinery/status_display{
+ pixel_x = 0;
+ pixel_y = 32
+ },
+/turf/simulated/floor/catwalk,
+/area/ruin/space/telecomms/powercontrol)
+"tm" = (
+/obj/structure/window/reinforced,
+/obj/structure/window/reinforced{
+ dir = 1
+ },
+/turf/space,
+/area/space/nearstation)
+"to" = (
+/obj/machinery/porta_turret/ai_turret/disable{
+ check_synth = 1;
+ lethal = 1;
+ scan_range = 12;
+ faction = "malf_drone";
+ ailock = 1;
+ check_borgs = 1
+ },
+/obj/effect/turf_decal/box/white,
+/obj/effect/abstract/cheese_trap,
+/turf/simulated/floor/plating/airless,
+/area/ruin/space/telecomms)
+"tx" = (
+/obj/item/radio/intercom{
+ name = "station intercom (General)";
+ pixel_x = 29;
+ pixel_y = 0;
+ broadcasting = 1
+ },
+/obj/machinery/bluespace_beacon,
+/obj/structure/window/plasmareinforced{
+ dir = 8
+ },
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/tele)
+"tz" = (
+/obj/structure/cable{
+ d2 = 8;
+ icon_state = "0-8"
+ },
+/obj/machinery/power/apc/directional/north{
+ malfhack = 1;
+ hacked_by_ruin_AI = 1
+ },
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/tele)
+"tD" = (
+/obj/machinery/atmospherics/unary/vent_pump{
+ dir = 1;
+ external_pressure_bound = 140;
+ on = 1;
+ pressure_checks = 0
+ },
+/obj/structure/table,
+/obj/item/folder/yellow,
+/obj/item/folder/yellow{
+ pixel_x = 5
+ },
+/obj/machinery/light{
+ dir = 1
+ },
+/obj/machinery/status_display{
+ pixel_x = 0;
+ pixel_y = 32
+ },
+/obj/item/salvage/ruin/nanotrasen{
+ pixel_x = -5
+ },
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/computer)
+"tF" = (
+/obj/item/radio/intercom{
+ name = "station intercom (General)";
+ pixel_x = 29;
+ pixel_y = 0
+ },
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/computer)
+"tW" = (
+/obj/machinery/r_n_d/server/upgraded,
+/turf/simulated/floor/plasteel{
+ dir = 1;
+ icon_state = "vault";
+ name = "Mainframe floor";
+ nitrogen = 400;
+ oxygen = 0;
+ temperature = 80
+ },
+/area/ruin/space/telecomms/chamber)
+"tY" = (
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 4;
+ icon_state = "1-4"
+ },
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 2;
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/visible{
+ dir = 9
+ },
+/turf/simulated/floor/catwalk,
+/area/ruin/space/telecomms/powercontrol)
+"uj" = (
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ level = 1
+ },
+/turf/simulated/floor/catwalk,
+/area/ruin/space/telecomms)
+"ul" = (
+/obj/machinery/disposal,
+/obj/structure/disposalpipe/trunk{
+ dir = 4
+ },
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/computer)
+"um" = (
+/obj/structure/dispenser,
+/turf/simulated/floor/bluegrid{
+ icon_state = "dark";
+ name = "Mainframe Floor";
+ nitrogen = 400;
+ oxygen = 0;
+ temperature = 80
+ },
+/area/ruin/space/telecomms/chamber)
+"ux" = (
+/turf/simulated/wall/indestructible/riveted,
+/area/ruin/space/telecomms/computer)
+"uF" = (
+/obj/machinery/economy/vending/cola,
+/obj/effect/spawner/random_spawners/cobweb_right_frequent,
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/computer)
+"uM" = (
+/turf/simulated/wall/r_wall,
+/area/ruin/space/telecomms/foyer)
+"uT" = (
+/obj/structure/cable{
+ d1 = 4;
+ d2 = 8;
+ icon_state = "4-8";
+ pixel_x = 0
+ },
+/obj/machinery/light{
+ dir = 1
+ },
+/turf/simulated/floor/catwalk/airless,
+/area/ruin/space/telecomms/powercontrol)
+"vd" = (
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 9
+ },
+/turf/simulated/floor/catwalk,
+/area/ruin/space/telecomms)
+"ve" = (
+/obj/machinery/status_display{
+ pixel_x = 0;
+ pixel_y = 32
+ },
+/turf/simulated/floor/bluegrid{
+ name = "Mainframe Base";
+ nitrogen = 400;
+ oxygen = 0;
+ temperature = 80
+ },
+/area/ruin/space/telecomms/chamber)
+"vp" = (
+/obj/machinery/firealarm/directional/south,
+/turf/simulated/floor/bluegrid{
+ name = "Mainframe Base";
+ nitrogen = 400;
+ oxygen = 0;
+ temperature = 80
+ },
+/area/ruin/space/telecomms/chamber)
+"vu" = (
+/obj/structure/window/plasmareinforced{
+ dir = 4
+ },
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/tele)
+"vJ" = (
+/obj/machinery/light_switch{
+ pixel_y = -28
+ },
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/tele)
+"vK" = (
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 4
+ },
+/obj/structure/cable{
+ d1 = 4;
+ d2 = 8;
+ icon_state = "4-8";
+ pixel_x = 0
+ },
+/obj/effect/decal/cleanable/blood/old,
+/turf/simulated/floor/catwalk,
+/area/ruin/space/telecomms)
+"vU" = (
+/obj/structure/window/reinforced,
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 9
+ },
+/turf/simulated/floor/catwalk,
+/area/ruin/space/telecomms)
+"vZ" = (
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 4;
+ icon_state = "1-4"
+ },
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 2;
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/manifold/hidden/supply{
+ dir = 4;
+ initialize_directions = 11;
+ level = 1
+ },
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/tele)
+"wd" = (
+/obj/machinery/light{
+ dir = 8
+ },
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/computer)
+"wh" = (
+/obj/structure/cable{
+ d1 = 2;
+ d2 = 8;
+ icon_state = "2-8"
+ },
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 2;
+ icon_state = "1-2"
+ },
+/obj/machinery/light{
+ dir = 1
+ },
+/turf/simulated/floor/bluegrid{
+ name = "Mainframe Base";
+ nitrogen = 400;
+ oxygen = 0;
+ temperature = 80
+ },
+/area/ruin/space/telecomms/chamber)
+"wA" = (
+/obj/machinery/power/smes{
+ charge = 2.5e+006;
+ input_attempt = 1;
+ input_level = 200000;
+ inputting = 1
+ },
+/obj/structure/cable,
+/turf/simulated/floor/bluegrid{
+ name = "Mainframe Base";
+ nitrogen = 400;
+ oxygen = 0;
+ temperature = 80
+ },
+/area/ruin/space/telecomms/chamber)
+"wH" = (
+/obj/machinery/light{
+ dir = 8
+ },
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 2;
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/unary/vent_pump{
+ dir = 4;
+ layer = 2.4;
+ on = 1
+ },
+/turf/simulated/floor/catwalk,
+/area/ruin/space/telecomms/powercontrol)
+"wW" = (
+/obj/machinery/light_switch{
+ pixel_y = 28
+ },
+/obj/machinery/computer/message_monitor,
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/computer)
+"wX" = (
+/obj/effect/spawner/random_spawners/fungus_maybe,
+/turf/simulated/wall/indestructible/riveted,
+/area/ruin/space/telecomms)
+"wY" = (
+/obj/machinery/light{
+ dir = 8
+ },
+/obj/structure/table,
+/obj/structure/sign/electricshock{
+ pixel_x = -32
+ },
+/obj/item/salvage/ruin/nanotrasen,
+/obj/item/stamp,
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/computer)
+"xa" = (
+/obj/structure/lattice,
+/obj/structure/grille,
+/obj/structure/cable{
+ d1 = 4;
+ d2 = 8;
+ icon_state = "4-8";
+ pixel_x = 0
+ },
+/turf/simulated/floor/plating/airless,
+/area/space/nearstation)
+"xj" = (
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/manifold/hidden/supply{
+ dir = 1;
+ level = 1
+ },
+/turf/simulated/floor/catwalk,
+/area/ruin/space/telecomms)
+"xv" = (
+/obj/item/radio/intercom{
+ pixel_y = 25
+ },
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/tele)
+"xF" = (
+/obj/structure/window/reinforced,
+/obj/structure/window/reinforced{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 4
+ },
+/obj/structure/cable{
+ d1 = 4;
+ d2 = 8;
+ icon_state = "4-8";
+ pixel_x = 0
+ },
+/turf/simulated/floor/catwalk,
+/area/ruin/space/telecomms)
+"xG" = (
+/obj/structure/chair/office/dark{
+ dir = 1
+ },
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/computer)
+"xL" = (
+/obj/machinery/door/airlock/hatch{
+ name = "Telecoms Lounge";
+ req_access_txt = "61"
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/supply,
+/obj/machinery/door/firedoor,
+/turf/simulated/floor/plasteel{
+ icon_state = "vault";
+ dir = 5
+ },
+/area/ruin/space/telecomms/computer)
+"yh" = (
+/obj/effect/spawner/window/reinforced/grilled,
+/turf/simulated/floor/plating,
+/area/ruin/space/telecomms)
+"yl" = (
+/obj/machinery/door/airlock/maintenance_hatch{
+ name = "Telecoms Storage";
+ req_access_txt = "61"
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 4
+ },
+/turf/simulated/floor/plasteel{
+ icon_state = "vault";
+ dir = 5
+ },
+/area/ruin/space/telecomms)
+"yo" = (
+/obj/structure/lattice,
+/turf/space,
+/area/space/nearstation)
+"yq" = (
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 2;
+ icon_state = "1-2"
+ },
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/computer)
+"yr" = (
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 4
+ },
+/turf/simulated/floor/catwalk,
+/area/ruin/space/telecomms)
+"yB" = (
+/obj/structure/bed,
+/obj/item/bedsheet/orange,
+/mob/living/simple_animal/bot/secbot/buzzsky/telecomms,
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/computer)
+"yC" = (
+/obj/structure/cable{
+ d1 = 4;
+ d2 = 8;
+ icon_state = "4-8";
+ pixel_x = 0
+ },
+/obj/machinery/recharge_station/upgraded,
+/mob/living/simple_animal/hostile/hivebot/strong/malfborg,
+/turf/simulated/floor/plasteel{
+ dir = 4;
+ icon_state = "vault";
+ name = "Mainframe floor";
+ nitrogen = 400;
+ oxygen = 0;
+ temperature = 80
+ },
+/area/ruin/space/telecomms/chamber)
+"yD" = (
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 4
+ },
+/obj/machinery/door/airlock/hatch{
+ name = "Telecoms East Wing";
+ req_access_txt = "61"
+ },
+/obj/machinery/door/firedoor,
+/turf/simulated/floor/plasteel{
+ icon_state = "vault";
+ dir = 5
+ },
+/area/ruin/space/telecomms/foyer)
+"yG" = (
+/obj/effect/spawner/random_spawners/fungus_maybe,
+/turf/simulated/wall/r_wall,
+/area/space/nearstation)
+"yJ" = (
+/obj/structure/cable{
+ d1 = 2;
+ d2 = 8;
+ icon_state = "2-8"
+ },
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/tele)
+"yN" = (
+/obj/structure/cable{
+ d1 = 4;
+ d2 = 8;
+ icon_state = "4-8";
+ pixel_x = 0
+ },
+/obj/machinery/door/airlock/hatch/syndicate/command/trapped,
+/obj/item/radio/intercom{
+ pixel_y = 25;
+ broadcasting = 1
+ },
+/obj/effect/decal/cleanable/blood/old,
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 4
+ },
+/obj/machinery/door/firedoor,
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/computer)
+"yU" = (
+/obj/structure/grille,
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 8;
+ icon_state = "1-8"
+ },
+/obj/structure/cable{
+ d1 = 2;
+ d2 = 8;
+ icon_state = "2-8"
+ },
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 2;
+ icon_state = "1-2"
+ },
+/turf/simulated/floor/catwalk/airless,
+/area/space/nearstation)
+"za" = (
+/obj/structure/closet/crate,
+/obj/item/clothing/glasses/night,
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/tele)
+"zg" = (
+/obj/machinery/atmospherics/pipe/simple/visible{
+ dir = 4
+ },
+/obj/machinery/camera{
+ c_tag = "Telecomms Power Control";
+ dir = 2;
+ network = list("Telecomms")
+ },
+/turf/simulated/floor/catwalk,
+/area/ruin/space/telecomms/powercontrol)
+"zk" = (
+/obj/structure/lattice,
+/obj/effect/abstract/cheese_trap,
+/turf/space,
+/area/space/nearstation)
+"zq" = (
+/obj/structure/barricade/sandbags,
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/tele)
+"zG" = (
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 2;
+ icon_state = "1-2"
+ },
+/turf/simulated/wall/indestructible/riveted,
+/area/ruin/space/telecomms/chamber)
+"zM" = (
+/obj/structure/sign/securearea{
+ desc = "A warning sign which reads 'SERVER ROOM'.";
+ name = "SERVER ROOM";
+ pixel_y = 0
+ },
+/turf/simulated/wall/r_wall,
+/area/ruin/space/telecomms/chamber)
+"zY" = (
+/obj/structure/bed,
+/obj/item/bedsheet/green,
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/computer)
+"Ac" = (
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ req_access_txt = "0"
+ },
+/obj/structure/telecomms_trap_tank,
+/obj/effect/abstract/cheese_trap,
+/turf/simulated/floor/catwalk,
+/area/ruin/space/telecomms)
+"Ad" = (
+/obj/structure/table,
+/obj/item/flashlight/lamp{
+ pixel_y = 10;
+ pixel_x = -7
+ },
+/obj/effect/spawner/random_spawners/cobweb_right_rare,
+/obj/item/salvage/ruin/nanotrasen{
+ pixel_x = 5
+ },
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/computer)
+"Af" = (
+/obj/machinery/computer/nonfunctional{
+ dir = 8
+ },
+/turf/simulated/floor/plasteel{
+ dir = 4;
+ icon_state = "vault";
+ name = "Mainframe floor";
+ nitrogen = 400;
+ oxygen = 0;
+ temperature = 80
+ },
+/area/ruin/space/telecomms/chamber)
+"Ai" = (
+/obj/structure/cable{
+ d1 = 4;
+ d2 = 8;
+ icon_state = "4-8"
+ },
+/obj/structure/table,
+/obj/machinery/cell_charger,
+/obj/item/stock_parts/cell/bluespace/trapped,
+/obj/machinery/light_switch{
+ pixel_y = -28
+ },
+/turf/simulated/floor/catwalk,
+/area/ruin/space/telecomms/powercontrol)
+"Aj" = (
+/obj/effect/spawner/random_barrier/obstruction,
+/turf/simulated/floor/engine,
+/area/ruin/space/telecomms/computer)
+"Ay" = (
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 9;
+ level = 1
+ },
+/obj/structure/lattice,
+/turf/space,
+/area/space/nearstation)
+"Az" = (
+/obj/structure/lattice,
+/obj/structure/cable{
+ d1 = 4;
+ d2 = 8;
+ icon_state = "4-8";
+ pixel_x = 0
+ },
+/obj/structure/grille,
+/turf/simulated/floor/plating/airless,
+/area/space/nearstation)
+"AJ" = (
+/obj/structure/cable{
+ d1 = 2;
+ d2 = 8;
+ icon_state = "2-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/visible{
+ dir = 6;
+ level = 1
+ },
+/obj/machinery/firealarm/directional/north,
+/turf/simulated/floor/catwalk,
+/area/ruin/space/telecomms/powercontrol)
+"AX" = (
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ req_access_txt = "0"
+ },
+/obj/effect/abstract/bot_trap,
+/turf/simulated/floor/catwalk,
+/area/ruin/space/telecomms)
+"AY" = (
+/obj/structure/cable{
+ d1 = 4;
+ d2 = 8;
+ icon_state = "4-8";
+ pixel_x = 0
+ },
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/tele)
+"Bf" = (
+/obj/structure/sign/securearea{
+ desc = "A warning sign which reads 'LETHAL TURRETS'. Enter at your own risk!";
+ name = "LETHAL TURRETS";
+ pixel_x = 32;
+ pixel_y = 0
+ },
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/foyer)
+"Bn" = (
+/obj/machinery/atmospherics/pipe/simple/visible{
+ dir = 4
+ },
+/turf/simulated/floor/catwalk,
+/area/ruin/space/telecomms/powercontrol)
+"Bq" = (
+/obj/effect/spawner/airlock/long/square/e_to_s/telecoms,
+/turf/simulated/wall/r_wall,
+/area/ruin/space/telecomms/powercontrol)
+"BQ" = (
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/obj/machinery/atmospherics/unary/vent_pump{
+ dir = 4;
+ layer = 2.4;
+ on = 1
+ },
+/turf/simulated/floor/catwalk,
+/area/ruin/space/telecomms)
+"BT" = (
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/manifold/hidden/supply{
+ dir = 8;
+ initialize_directions = 11;
+ level = 1
+ },
+/obj/structure/lattice,
+/turf/space,
+/area/space/nearstation)
+"BW" = (
+/obj/machinery/atmospherics/unary/tank/air{
+ dir = 8
+ },
+/turf/simulated/floor/catwalk,
+/area/ruin/space/telecomms)
+"BZ" = (
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 4;
+ icon_state = "1-4"
+ },
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/tele)
+"Ct" = (
+/obj/machinery/computer/mech_bay_power_console{
+ dir = 8
+ },
+/turf/simulated/floor/bluegrid{
+ icon_state = "dark";
+ name = "Mainframe Floor";
+ nitrogen = 400;
+ oxygen = 0;
+ temperature = 80
+ },
+/area/ruin/space/telecomms/chamber)
+"CC" = (
+/obj/machinery/light{
+ dir = 4
+ },
+/obj/structure/closet/emcloset,
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/tele)
+"CD" = (
+/obj/structure/grille,
+/obj/structure/cable{
+ d1 = 4;
+ d2 = 8;
+ icon_state = "4-8";
+ pixel_x = 0
+ },
+/obj/structure/cable{
+ d1 = 2;
+ d2 = 4;
+ icon_state = "2-4"
+ },
+/obj/structure/cable{
+ d1 = 2;
+ d2 = 8;
+ icon_state = "2-8"
+ },
+/turf/simulated/floor/catwalk/airless,
+/area/space/nearstation)
+"CI" = (
+/obj/structure/displaycase/dvoraks_treat,
+/turf/simulated/floor/plasteel{
+ dir = 4;
+ icon_state = "vault";
+ name = "Mainframe floor";
+ nitrogen = 400;
+ oxygen = 0;
+ temperature = 80
+ },
+/area/ruin/space/telecomms/chamber)
+"CM" = (
+/obj/item/gps/ruin{
+ pixel_x = 32;
+ gpstag = "STAY_AWAY";
+ name = "Exterior Status Terminal";
+ desc = "A status terminal for this satellite. All it shows is a bunch of errors, and a message to stay away."
+ },
+/turf/simulated/floor/catwalk/airless,
+/area/ruin/space/telecomms/powercontrol)
+"CU" = (
+/turf/space,
+/area/space/nearstation)
+"Dd" = (
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 6
+ },
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/computer)
+"De" = (
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 8;
+ icon_state = "1-8"
+ },
+/obj/structure/cable{
+ d2 = 8;
+ icon_state = "0-8"
+ },
+/obj/machinery/computer/monitor{
+ name = "Telecoms Power Monitoring";
+ dir = 1
+ },
+/turf/simulated/floor/plasteel{
+ icon_state = "bot"
+ },
+/area/ruin/space/telecomms/tele)
+"Dr" = (
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 2;
+ icon_state = "1-2"
+ },
+/obj/structure/cable{
+ d1 = 2;
+ d2 = 8;
+ icon_state = "2-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 6
+ },
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/foyer)
+"Dy" = (
+/obj/structure/lattice,
+/obj/structure/grille,
+/turf/space,
+/area/space/nearstation)
+"DT" = (
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 2;
+ icon_state = "1-2"
+ },
+/turf/simulated/floor/catwalk,
+/area/ruin/space/telecomms)
+"DV" = (
+/obj/machinery/status_display{
+ pixel_x = 0;
+ pixel_y = 32
+ },
+/obj/structure/reagent_dispensers/fueltank,
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/tele)
+"Ed" = (
+/turf/space,
+/area/space)
+"EF" = (
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/structure/lattice,
+/turf/space,
+/area/space/nearstation)
+"EK" = (
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/obj/structure/lattice,
+/obj/effect/abstract/cheese_trap,
+/turf/space,
+/area/space/nearstation)
+"EM" = (
+/turf/simulated/floor/bluegrid{
+ name = "Mainframe Base";
+ nitrogen = 400;
+ oxygen = 0;
+ temperature = 80
+ },
+/area/ruin/space/telecomms/chamber)
+"EO" = (
+/obj/structure/window/reinforced,
+/turf/space,
+/area/space/nearstation)
+"EQ" = (
+/obj/structure/window/reinforced,
+/obj/structure/lattice,
+/obj/machinery/light{
+ dir = 1
+ },
+/turf/space,
+/area/ruin/space/telecomms)
+"ES" = (
+/obj/structure/cable{
+ icon_state = "0-4";
+ d2 = 4
+ },
+/obj/machinery/power/tracker,
+/turf/simulated/floor/catwalk/airless,
+/area/space/nearstation)
+"Ff" = (
+/obj/machinery/light{
+ dir = 8
+ },
+/turf/space,
+/area/ruin/space/telecomms)
+"Fg" = (
+/obj/structure/cable{
+ d1 = 4;
+ d2 = 8;
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 4;
+ level = 1
+ },
+/obj/structure/barricade/sandbags,
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/tele)
+"FA" = (
+/obj/structure/sign/securearea{
+ desc = "A warning sign which reads 'SERVER ROOM'.";
+ name = "SERVER ROOM";
+ pixel_y = 0
+ },
+/turf/simulated/wall/indestructible/riveted,
+/area/ruin/space/telecomms/chamber)
+"FC" = (
+/turf/simulated/wall/indestructible/riveted,
+/area/ruin/space/telecomms)
+"FG" = (
+/obj/machinery/shieldgen/telecomms,
+/turf/simulated/floor/plating/airless,
+/area/ruin/space/telecomms)
+"FN" = (
+/obj/machinery/computer/nonfunctional{
+ dir = 4
+ },
+/turf/simulated/floor/bluegrid{
+ icon_state = "dark";
+ name = "Mainframe Floor";
+ nitrogen = 400;
+ oxygen = 0;
+ temperature = 80
+ },
+/area/ruin/space/telecomms/chamber)
+"FP" = (
+/obj/item/cigbutt,
+/obj/machinery/light,
+/obj/machinery/light_switch{
+ pixel_y = -28
+ },
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/computer)
+"Ga" = (
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 2;
+ icon_state = "1-2"
+ },
+/obj/structure/grille,
+/turf/simulated/floor/plating/airless,
+/area/space/nearstation)
+"Gd" = (
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/turf/space,
+/area/space/nearstation)
+"Gf" = (
+/obj/machinery/light{
+ dir = 4
+ },
+/turf/space,
+/area/ruin/space/telecomms)
+"Go" = (
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 8;
+ icon_state = "1-8"
+ },
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 4;
+ icon_state = "1-4"
+ },
+/turf/simulated/floor/catwalk/airless,
+/area/space/nearstation)
+"Gt" = (
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 10
+ },
+/obj/machinery/status_display{
+ pixel_x = 0;
+ pixel_y = 32
+ },
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/foyer)
+"Gz" = (
+/obj/machinery/blackbox_recorder,
+/turf/simulated/floor/plasteel{
+ dir = 4;
+ icon_state = "vault";
+ name = "Mainframe floor";
+ nitrogen = 400;
+ oxygen = 0;
+ temperature = 80
+ },
+/area/ruin/space/telecomms/chamber)
+"GE" = (
+/obj/machinery/power/solar,
+/obj/structure/cable{
+ icon_state = "0-4";
+ d2 = 4
+ },
+/turf/simulated/floor/plasteel/airless{
+ icon_state = "solarpanel"
+ },
+/area/space/nearstation)
+"GH" = (
+/obj/structure/lattice,
+/obj/structure/grille,
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 8;
+ icon_state = "1-8"
+ },
+/turf/simulated/floor/plating/airless,
+/area/space/nearstation)
+"GQ" = (
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 5
+ },
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/foyer)
+"Hc" = (
+/obj/structure/cable{
+ icon_state = "0-4";
+ d2 = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/visible{
+ dir = 6;
+ level = 1
+ },
+/obj/machinery/power/apc/directional/north{
+ malfhack = 1;
+ emp_proof = 1;
+ hacked_by_ruin_AI = 1
+ },
+/turf/simulated/floor/catwalk,
+/area/ruin/space/telecomms)
+"Ho" = (
+/obj/structure/window/reinforced{
+ dir = 1
+ },
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/turf/space,
+/area/space/nearstation)
+"Hr" = (
+/turf/simulated/wall/r_wall,
+/area/ruin/space/telecomms/computer)
+"Ht" = (
+/obj/structure/cable{
+ d1 = 2;
+ d2 = 4;
+ icon_state = "2-4"
+ },
+/obj/structure/cable{
+ d1 = 2;
+ d2 = 8;
+ icon_state = "2-8"
+ },
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 2;
+ icon_state = "1-2"
+ },
+/turf/simulated/floor/catwalk/airless,
+/area/space/nearstation)
+"Hu" = (
+/obj/structure/window/reinforced,
+/turf/simulated/floor/catwalk,
+/area/ruin/space/telecomms)
+"Hw" = (
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 4;
+ icon_state = "1-4"
+ },
+/obj/structure/cable{
+ d1 = 2;
+ d2 = 4;
+ icon_state = "2-4"
+ },
+/obj/structure/cable{
+ d1 = 4;
+ d2 = 8;
+ icon_state = "4-8";
+ pixel_x = 0
+ },
+/turf/simulated/floor/catwalk/airless,
+/area/space/nearstation)
+"HK" = (
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 8;
+ icon_state = "1-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 9
+ },
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/tele)
+"HP" = (
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 8;
+ icon_state = "1-8"
+ },
+/obj/structure/table,
+/obj/machinery/turretid/lethal{
+ check_borgs = 1;
+ faction = "malf_drone";
+ check_synth = 1;
+ locked = 0
+ },
+/turf/simulated/floor/catwalk,
+/area/ruin/space/telecomms/tele)
+"HR" = (
+/obj/structure/cable{
+ d1 = 2;
+ d2 = 4;
+ icon_state = "2-4"
+ },
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/tele)
+"HV" = (
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 2;
+ icon_state = "1-2"
+ },
+/turf/simulated/floor/catwalk,
+/area/ruin/space/telecomms/powercontrol)
+"HW" = (
+/obj/structure/window/reinforced,
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/obj/structure/closet,
+/turf/simulated/floor/catwalk,
+/area/ruin/space/telecomms)
+"Ig" = (
+/obj/structure/cable{
+ d1 = 4;
+ d2 = 8;
+ icon_state = "4-8";
+ pixel_x = 0
+ },
+/turf/simulated/floor/catwalk/airless,
+/area/space/nearstation)
+"IE" = (
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 2;
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ req_access_txt = "0"
+ },
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/tele)
+"IL" = (
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 4
+ },
+/obj/machinery/door/airlock/hatch{
+ name = "Telecoms West Wing";
+ req_access_txt = "61"
+ },
+/obj/machinery/door/firedoor,
+/turf/simulated/floor/plasteel{
+ icon_state = "vault";
+ dir = 5
+ },
+/area/ruin/space/telecomms/foyer)
+"IU" = (
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 8;
+ icon_state = "1-8"
+ },
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 4;
+ icon_state = "1-4"
+ },
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 2;
+ icon_state = "1-2"
+ },
+/turf/simulated/floor/catwalk/airless,
+/area/space/nearstation)
+"Jb" = (
+/obj/effect/spawner/random_spawners/fungus_maybe,
+/turf/simulated/wall/r_wall,
+/area/ruin/space/telecomms/foyer)
+"Jm" = (
+/obj/machinery/computer/sm_monitor{
+ dir = 1
+ },
+/turf/simulated/floor/bluegrid{
+ icon_state = "dark";
+ name = "Mainframe Floor";
+ nitrogen = 400;
+ oxygen = 0;
+ temperature = 80
+ },
+/area/ruin/space/telecomms/chamber)
+"Jo" = (
+/obj/structure/chair{
+ dir = 4
+ },
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/computer)
+"Jz" = (
+/obj/structure/closet/malf/suits,
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/tele)
+"JC" = (
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms)
+"JG" = (
+/obj/structure/window/reinforced,
+/obj/machinery/light{
+ dir = 1
+ },
+/turf/space,
+/area/ruin/space/telecomms)
+"JO" = (
+/obj/structure/cable{
+ d1 = 2;
+ d2 = 4;
+ icon_state = "2-4"
+ },
+/obj/structure/cable{
+ d1 = 2;
+ d2 = 8;
+ icon_state = "2-8"
+ },
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/computer)
+"JQ" = (
+/obj/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ req_access_txt = "0"
+ },
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/structure/reagent_dispensers/fueltank,
+/turf/simulated/floor/catwalk,
+/area/ruin/space/telecomms)
+"JR" = (
+/obj/structure/window/reinforced{
+ dir = 1
+ },
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 6
+ },
+/turf/simulated/floor/catwalk,
+/area/ruin/space/telecomms)
+"Kb" = (
+/obj/structure/chair{
+ dir = 1
+ },
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/computer)
+"Kc" = (
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 10
+ },
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/computer)
+"Kt" = (
+/obj/structure/cable{
+ d1 = 2;
+ d2 = 4;
+ icon_state = "2-4"
+ },
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 4;
+ icon_state = "1-4"
+ },
+/turf/simulated/floor/catwalk/airless,
+/area/space/nearstation)
+"Ky" = (
+/obj/machinery/computer/nonfunctional,
+/obj/effect/spawner/random_spawners/cobweb_left_rare,
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/computer)
+"KH" = (
+/obj/structure/window/reinforced,
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/structure/window/reinforced{
+ dir = 1
+ },
+/turf/space,
+/area/space/nearstation)
+"KQ" = (
+/obj/structure/cable{
+ d1 = 4;
+ d2 = 8;
+ icon_state = "4-8"
+ },
+/obj/structure/closet/emcloset,
+/obj/item/stack/sheet/mineral/plasma,
+/obj/item/reagent_containers/syringe,
+/turf/simulated/floor/catwalk,
+/area/ruin/space/telecomms/powercontrol)
+"Lh" = (
+/obj/machinery/tcomms/relay/dvorak,
+/obj/effect/abstract/loot_trap,
+/turf/simulated/floor/plasteel{
+ dir = 1;
+ icon_state = "vault";
+ name = "Mainframe floor";
+ nitrogen = 400;
+ oxygen = 0;
+ temperature = 80
+ },
+/area/ruin/space/telecomms/chamber)
+"Ln" = (
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ req_access_txt = "0"
+ },
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/turf/simulated/floor/catwalk,
+/area/ruin/space/telecomms)
+"Lp" = (
+/turf/simulated/floor/catwalk/airless,
+/area/space/nearstation)
+"Lq" = (
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 2;
+ icon_state = "1-2"
+ },
+/mob/living/silicon/decoy/telecomms,
+/turf/simulated/floor/bluegrid{
+ name = "Mainframe Base";
+ nitrogen = 400;
+ oxygen = 0;
+ temperature = 80
+ },
+/area/ruin/space/telecomms/chamber)
+"LK" = (
+/obj/structure/cable{
+ d1 = 4;
+ d2 = 8;
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 4;
+ level = 1
+ },
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/tele)
+"LW" = (
+/obj/machinery/atmospherics/pipe/simple/visible,
+/turf/simulated/floor/catwalk,
+/area/ruin/space/telecomms)
+"Ma" = (
+/obj/structure/window/reinforced,
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/obj/structure/window/reinforced{
+ dir = 1
+ },
+/obj/structure/lattice,
+/obj/machinery/atmospherics/pipe/manifold/hidden/supply{
+ dir = 4;
+ initialize_directions = 11;
+ level = 1
+ },
+/turf/space,
+/area/space/nearstation)
+"Ml" = (
+/obj/structure/cable,
+/obj/machinery/power/terminal{
+ dir = 4
+ },
+/turf/simulated/floor/catwalk,
+/area/ruin/space/telecomms/powercontrol)
+"Mm" = (
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 8;
+ icon_state = "1-8"
+ },
+/obj/structure/cable{
+ d1 = 2;
+ d2 = 8;
+ icon_state = "2-8"
+ },
+/turf/simulated/floor/catwalk/airless,
+/area/space/nearstation)
+"ME" = (
+/obj/machinery/light/small{
+ dir = 1
+ },
+/turf/simulated/floor/plasteel{
+ icon_state = "vault";
+ dir = 5
+ },
+/area/ruin/space/telecomms/chamber)
+"ML" = (
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ level = 1
+ },
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/turf/simulated/floor/catwalk,
+/area/ruin/space/telecomms)
+"Nb" = (
+/obj/effect/spawner/random_spawners/oil_often,
+/turf/simulated/floor/catwalk,
+/area/ruin/space/telecomms/powercontrol)
+"No" = (
+/obj/effect/turf_decal/loading_area,
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/tele)
+"Nr" = (
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 2;
+ icon_state = "1-2"
+ },
+/obj/structure/cable{
+ d1 = 2;
+ d2 = 8;
+ icon_state = "2-8"
+ },
+/obj/structure/cable{
+ d1 = 2;
+ d2 = 4;
+ icon_state = "2-4"
+ },
+/turf/simulated/floor/bluegrid{
+ name = "Mainframe Base";
+ nitrogen = 400;
+ oxygen = 0;
+ temperature = 80
+ },
+/area/ruin/space/telecomms/chamber)
+"Nv" = (
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 2;
+ icon_state = "1-2"
+ },
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 4;
+ icon_state = "1-4"
+ },
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 8;
+ icon_state = "1-8"
+ },
+/turf/simulated/floor/bluegrid{
+ name = "Mainframe Base";
+ nitrogen = 400;
+ oxygen = 0;
+ temperature = 80
+ },
+/area/ruin/space/telecomms/chamber)
+"Nz" = (
+/obj/structure/rack,
+/obj/item/circuitboard/sleeper/syndicate,
+/obj/effect/spawner/random_spawners/telecomms_teleprod_maybe,
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms)
+"NY" = (
+/obj/structure/cable{
+ d1 = 2;
+ d2 = 8;
+ icon_state = "2-8"
+ },
+/obj/structure/cable{
+ d1 = 2;
+ d2 = 4;
+ icon_state = "2-4"
+ },
+/turf/simulated/floor/catwalk/airless,
+/area/space/nearstation)
+"Od" = (
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/machinery/atmospherics/unary/vent_pump{
+ dir = 8;
+ on = 1
+ },
+/turf/simulated/floor/catwalk,
+/area/ruin/space/telecomms)
+"Oi" = (
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 2;
+ icon_state = "1-2"
+ },
+/turf/simulated/floor/catwalk/airless,
+/area/space/nearstation)
+"On" = (
+/obj/structure/lattice,
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/turf/space,
+/area/space/nearstation)
+"OS" = (
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 2;
+ icon_state = "1-2"
+ },
+/obj/effect/turf_decal/box/white,
+/obj/structure/telecomms_doomsday_device,
+/turf/simulated/floor/bluegrid{
+ icon_state = "dark";
+ name = "Mainframe Floor";
+ nitrogen = 400;
+ oxygen = 0;
+ temperature = 80
+ },
+/area/ruin/space/telecomms/chamber)
+"Pe" = (
+/obj/machinery/economy/vending/wallmed/directional/south,
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/computer)
+"Pl" = (
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/computer)
+"Px" = (
+/obj/structure/cable{
+ d1 = 4;
+ d2 = 8;
+ icon_state = "4-8";
+ pixel_x = 0
+ },
+/obj/structure/girder/reinforced,
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 9;
+ level = 1
+ },
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/computer)
+"PA" = (
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 4;
+ level = 1
+ },
+/turf/simulated/floor/catwalk,
+/area/ruin/space/telecomms/powercontrol)
+"PL" = (
+/obj/structure/bed,
+/obj/item/bedsheet/red,
+/mob/living/simple_animal/bot/secbot/buzzsky/telecomms,
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/computer)
+"PQ" = (
+/turf/simulated/wall/r_wall,
+/area/ruin/space/telecomms/tele)
+"PU" = (
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 2;
+ icon_state = "1-2"
+ },
+/obj/machinery/door/airlock/hatch{
+ name = "Telecoms Satellite";
+ req_access_txt = "61"
+ },
+/obj/machinery/door/firedoor,
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/foyer)
+"PZ" = (
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/turf/space,
+/area/space/nearstation)
+"Qa" = (
+/obj/structure/sign/securearea{
+ desc = "A warning sign which reads 'LETHAL TURRETS'. Enter at your own risk!";
+ name = "LETHAL TURRETS";
+ pixel_x = -32;
+ pixel_y = 0
+ },
+/obj/machinery/porta_turret/ai_turret{
+ check_synth = 1;
+ lethal = 1;
+ faction = "malf_drone";
+ ailock = 1;
+ check_borgs = 1
+ },
+/obj/effect/turf_decal/box/white,
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/foyer)
+"Qf" = (
+/obj/structure/cable{
+ d1 = 4;
+ d2 = 8;
+ icon_state = "4-8";
+ pixel_x = 0
+ },
+/obj/machinery/light/small{
+ dir = 1
+ },
+/obj/machinery/light_switch{
+ pixel_y = -28
+ },
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/tele)
+"Qg" = (
+/obj/structure/table,
+/obj/effect/spawner/lootdrop/bluespace_tap/cultural,
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms)
+"Qr" = (
+/obj/machinery/economy/vending/snack/trapped,
+/obj/item/radio/intercom{
+ name = "station intercom (General)";
+ pixel_x = -28;
+ pixel_y = 0;
+ broadcasting = 1
+ },
+/obj/structure/environmental_storytelling_holopad/vendor,
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/computer)
+"Qx" = (
+/turf/simulated/floor/catwalk,
+/area/ruin/space/telecomms/powercontrol)
+"QN" = (
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/obj/structure/lattice,
+/turf/space,
+/area/space/nearstation)
+"QP" = (
+/obj/structure/lattice,
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/effect/abstract/cheese_trap,
+/turf/space,
+/area/space/nearstation)
+"QR" = (
+/obj/structure/cable{
+ d1 = 2;
+ d2 = 4;
+ icon_state = "2-4"
+ },
+/obj/machinery/recharge_station/upgraded,
+/mob/living/simple_animal/hostile/hivebot/strong/malfborg,
+/turf/simulated/floor/plasteel{
+ dir = 4;
+ icon_state = "vault";
+ name = "Mainframe floor";
+ nitrogen = 400;
+ oxygen = 0;
+ temperature = 80
+ },
+/area/ruin/space/telecomms/chamber)
+"QY" = (
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ req_access_txt = "0"
+ },
+/turf/simulated/floor/catwalk,
+/area/ruin/space/telecomms)
+"QZ" = (
+/obj/machinery/power/solar,
+/obj/structure/cable,
+/turf/simulated/floor/plasteel/airless{
+ icon_state = "solarpanel"
+ },
+/area/space/nearstation)
+"Ra" = (
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/obj/structure/lattice,
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 6
+ },
+/turf/space,
+/area/space/nearstation)
+"Rh" = (
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 4
+ },
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms)
+"Ri" = (
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/foyer)
+"Rt" = (
+/obj/machinery/atmospherics/unary/vent_pump{
+ dir = 8;
+ on = 1
+ },
+/obj/machinery/firealarm/directional/north,
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/tele)
+"Rv" = (
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 2;
+ icon_state = "1-2"
+ },
+/turf/simulated/floor/bluegrid{
+ icon_state = "dark";
+ name = "Mainframe Floor";
+ nitrogen = 400;
+ oxygen = 0;
+ temperature = 80
+ },
+/area/ruin/space/telecomms/chamber)
+"Rw" = (
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 10
+ },
+/obj/structure/lattice,
+/turf/space,
+/area/space/nearstation)
+"RB" = (
+/obj/machinery/atmospherics/pipe/simple/hidden/supply,
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/computer)
+"RD" = (
+/obj/structure/table,
+/obj/item/storage/fancy/cigarettes,
+/obj/item/storage/firstaid/ert,
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/computer)
+"RW" = (
+/obj/structure/table,
+/obj/item/stock_parts/micro_laser,
+/obj/item/stock_parts/manipulator,
+/obj/item/stock_parts/manipulator,
+/obj/item/stock_parts/manipulator,
+/obj/item/stock_parts/manipulator,
+/obj/item/stock_parts/capacitor,
+/obj/item/stock_parts/micro_laser/high,
+/obj/item/stock_parts/micro_laser/high,
+/obj/item/stock_parts/micro_laser/high,
+/obj/item/stock_parts/micro_laser/high,
+/obj/effect/spawner/lootdrop/maintenance/three,
+/obj/item/stock_parts/matter_bin,
+/obj/item/stock_parts/matter_bin,
+/obj/item/stock_parts/matter_bin,
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms)
+"Sm" = (
+/obj/structure/window/reinforced,
+/obj/structure/window/reinforced{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/manifold/hidden/supply{
+ level = 1
+ },
+/turf/simulated/floor/catwalk,
+/area/ruin/space/telecomms)
+"Sn" = (
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 2;
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/manifold/hidden/supply{
+ dir = 8;
+ initialize_directions = 11;
+ level = 1
+ },
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/tele)
+"Sr" = (
+/obj/machinery/telepad,
+/turf/simulated/floor/plasteel{
+ dir = 1;
+ icon_state = "vault";
+ name = "Mainframe floor";
+ nitrogen = 400;
+ oxygen = 0;
+ temperature = 80
+ },
+/area/ruin/space/telecomms/chamber)
+"Sv" = (
+/obj/structure/lattice,
+/obj/structure/grille,
+/obj/structure/cable{
+ d1 = 2;
+ d2 = 8;
+ icon_state = "2-8"
+ },
+/turf/simulated/floor/plating/airless,
+/area/space/nearstation)
+"SA" = (
+/turf/simulated/wall/r_wall,
+/area/ruin/space/telecomms/powercontrol)
+"SH" = (
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 4
+ },
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/computer)
+"SO" = (
+/obj/structure/window/reinforced,
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/turf/space,
+/area/space/nearstation)
+"Ta" = (
+/obj/structure/chair/office/dark{
+ dir = 4
+ },
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/computer)
+"To" = (
+/turf/simulated/wall/r_wall,
+/area/ruin/space/telecomms/chamber)
+"Tw" = (
+/obj/machinery/computer/telescience{
+ dir = 4
+ },
+/turf/simulated/floor/plasteel{
+ dir = 1;
+ icon_state = "vault";
+ name = "Mainframe floor";
+ nitrogen = 400;
+ oxygen = 0;
+ temperature = 80
+ },
+/area/ruin/space/telecomms/chamber)
+"TL" = (
+/obj/structure/grille,
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 2;
+ icon_state = "1-2"
+ },
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 4;
+ icon_state = "1-4"
+ },
+/obj/structure/cable{
+ d1 = 2;
+ d2 = 4;
+ icon_state = "2-4"
+ },
+/turf/simulated/floor/catwalk/airless,
+/area/space/nearstation)
+"TU" = (
+/obj/machinery/atmospherics/pipe/manifold/visible{
+ dir = 1
+ },
+/mob/living/simple_animal/bot/secbot/buzzsky/telecomms,
+/turf/simulated/floor/catwalk,
+/area/ruin/space/telecomms)
+"TY" = (
+/obj/structure/lattice,
+/turf/space,
+/area/space)
+"Uw" = (
+/obj/structure/cable{
+ d1 = 4;
+ d2 = 8;
+ icon_state = "4-8";
+ pixel_x = 0
+ },
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/tele)
+"UD" = (
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ level = 1
+ },
+/obj/structure/telecomms_trap_tank,
+/obj/effect/abstract/cheese_trap,
+/turf/simulated/floor/catwalk,
+/area/ruin/space/telecomms)
+"UE" = (
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 2;
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ req_access_txt = "0"
+ },
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/foyer)
+"UF" = (
+/obj/structure/sign/securearea,
+/turf/simulated/wall/r_wall,
+/area/ruin/space/telecomms/tele)
+"UH" = (
+/obj/structure/window/reinforced{
+ dir = 1
+ },
+/obj/structure/lattice,
+/turf/space,
+/area/space/nearstation)
+"Vb" = (
+/obj/structure/sign/nosmoking_2{
+ pixel_x = 32;
+ pixel_y = 0
+ },
+/obj/machinery/light{
+ dir = 4
+ },
+/turf/simulated/floor/bluegrid{
+ name = "Mainframe Base";
+ nitrogen = 400;
+ oxygen = 0;
+ temperature = 80
+ },
+/area/ruin/space/telecomms/chamber)
+"Vm" = (
+/obj/machinery/light/small,
+/obj/machinery/light_switch{
+ pixel_y = -28
+ },
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/foyer)
+"Vn" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/simulated/wall/r_wall,
+/area/space/nearstation)
+"Vp" = (
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/turf/space,
+/area/space)
+"VB" = (
+/obj/effect/decal/cleanable/blood/old,
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/computer)
+"VO" = (
+/obj/structure/cable{
+ d1 = 4;
+ d2 = 8;
+ icon_state = "4-8";
+ pixel_x = 0
+ },
+/obj/machinery/light/small{
+ dir = 1
+ },
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/tele)
+"Wc" = (
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/structure/window/reinforced{
+ dir = 1
+ },
+/turf/space,
+/area/space/nearstation)
+"Wp" = (
+/obj/machinery/teleport/station,
+/obj/effect/turf_decal/delivery,
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/tele)
+"Wq" = (
+/obj/structure/lattice,
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/machinery/light{
+ dir = 4
+ },
+/turf/space,
+/area/ruin/space/telecomms)
+"WC" = (
+/obj/machinery/porta_turret/ai_turret/disable{
+ check_synth = 1;
+ lethal = 1;
+ scan_range = 12;
+ faction = "malf_drone";
+ ailock = 1;
+ check_borgs = 1
+ },
+/obj/effect/turf_decal/box/white,
+/turf/simulated/floor/plating/airless,
+/area/ruin/space/telecomms)
+"WO" = (
+/obj/structure/cable{
+ d1 = 4;
+ d2 = 8;
+ icon_state = "4-8";
+ pixel_x = 0
+ },
+/obj/machinery/firealarm/directional/north,
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/foyer)
+"WR" = (
+/obj/structure/cable{
+ icon_state = "0-4";
+ d2 = 4
+ },
+/obj/machinery/power/apc/directional/north{
+ malfhack = 1;
+ emp_proof = 1;
+ hacked_by_ruin_AI = 1
+ },
+/turf/simulated/floor/bluegrid{
+ name = "Mainframe Base";
+ nitrogen = 400;
+ oxygen = 0;
+ temperature = 80
+ },
+/area/ruin/space/telecomms/chamber)
+"Xb" = (
+/obj/machinery/atmospherics/pipe/manifold/hidden/supply{
+ dir = 1;
+ level = 1
+ },
+/obj/item/radio/intercom{
+ pixel_y = 25
+ },
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/foyer)
+"Xf" = (
+/obj/structure/window/reinforced{
+ dir = 1
+ },
+/turf/space,
+/area/space/nearstation)
+"XB" = (
+/obj/structure/environmental_storytelling_holopad/core_room,
+/turf/simulated/floor/bluegrid{
+ icon_state = "dark";
+ name = "Mainframe Floor";
+ nitrogen = 400;
+ oxygen = 0;
+ temperature = 80
+ },
+/area/ruin/space/telecomms/chamber)
+"XJ" = (
+/obj/effect/spawner/random_spawners/fungus_maybe,
+/turf/simulated/wall/r_wall,
+/area/ruin/space/telecomms/tele)
+"XP" = (
+/turf/template_noop,
+/area/template_noop)
+"Yr" = (
+/obj/structure/sign/electricshock,
+/turf/simulated/wall/r_wall,
+/area/ruin/space/telecomms/tele)
+"Yw" = (
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/item/radio/intercom{
+ pixel_y = 25
+ },
+/mob/living/simple_animal/bot/secbot/buzzsky/telecomms,
+/turf/simulated/floor/catwalk,
+/area/ruin/space/telecomms)
+"YA" = (
+/obj/structure/lattice,
+/obj/structure/grille,
+/obj/structure/cable{
+ d1 = 2;
+ d2 = 4;
+ icon_state = "2-4"
+ },
+/turf/simulated/floor/plating/airless,
+/area/space/nearstation)
+"YC" = (
+/obj/structure/grille,
+/turf/simulated/floor/plating/airless,
+/area/space/nearstation)
+"YF" = (
+/obj/machinery/atmospherics/pipe/simple/hidden/supply,
+/obj/effect/abstract/bot_trap,
+/turf/simulated/floor/catwalk,
+/area/ruin/space/telecomms)
+"YN" = (
+/obj/structure/window/reinforced,
+/obj/structure/window/reinforced{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 4
+ },
+/turf/simulated/floor/catwalk,
+/area/ruin/space/telecomms)
+"YO" = (
+/obj/structure/disposaloutlet{
+ dir = 4
+ },
+/obj/structure/disposalpipe/trunk{
+ dir = 8
+ },
+/turf/simulated/floor/plating/airless,
+/area/space/nearstation)
+"YQ" = (
+/obj/structure/lattice,
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/turf/space,
+/area/space/nearstation)
+"YW" = (
+/obj/structure/cable{
+ d2 = 2;
+ icon_state = "0-2"
+ },
+/obj/machinery/power/apc/directional/east{
+ malfhack = 1;
+ hacked_by_ruin_AI = 1
+ },
+/turf/simulated/floor/catwalk,
+/area/ruin/space/telecomms/powercontrol)
+"Zb" = (
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 6
+ },
+/turf/simulated/floor/catwalk,
+/area/ruin/space/telecomms)
+"Zd" = (
+/obj/structure/table,
+/obj/item/paper_bin,
+/obj/item/pen/blue{
+ pixel_x = -3;
+ pixel_y = 2
+ },
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/computer)
+"Zj" = (
+/obj/structure/fans/tiny/invisible,
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/maintenance_hatch{
+ name = "Core Access"
+ },
+/turf/simulated/floor/plasteel{
+ icon_state = "vault";
+ dir = 5
+ },
+/area/ruin/space/telecomms/chamber)
+"Zl" = (
+/obj/machinery/atmospherics/unary/portables_connector{
+ dir = 8
+ },
+/obj/machinery/atmospherics/portable/canister/air,
+/obj/effect/spawner/random_spawners/cobweb_right_frequent,
+/turf/simulated/floor/catwalk,
+/area/ruin/space/telecomms/powercontrol)
+"Zu" = (
+/turf/simulated/wall/indestructible/riveted,
+/area/ruin/space/telecomms/chamber)
+"ZB" = (
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 4;
+ level = 1
+ },
+/obj/effect/spawner/random_spawners/oil_often,
+/turf/simulated/floor/catwalk,
+/area/ruin/space/telecomms/powercontrol)
+"ZE" = (
+/obj/structure/chair{
+ dir = 8
+ },
+/turf/simulated/floor/plasteel,
+/area/ruin/space/telecomms/computer)
+"ZQ" = (
+/obj/machinery/power/solar_control/autostart{
+ name = "Telecoms Solar Control"
+ },
+/obj/structure/cable{
+ d2 = 8;
+ icon_state = "0-8"
+ },
+/turf/simulated/floor/catwalk,
+/area/ruin/space/telecomms/powercontrol)
+"ZV" = (
+/obj/structure/cable{
+ d1 = 2;
+ d2 = 8;
+ icon_state = "2-8"
+ },
+/turf/simulated/floor/bluegrid{
+ name = "Mainframe Base";
+ nitrogen = 400;
+ oxygen = 0;
+ temperature = 80
+ },
+/area/ruin/space/telecomms/chamber)
+
+(1,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(2,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(3,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(4,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(5,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(6,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(7,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(8,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(9,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(10,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(11,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+Dy
+Dy
+Dy
+Dy
+Dy
+Dy
+Dy
+Dy
+Dy
+Dy
+Dy
+Dy
+Dy
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(12,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+Dy
+Ed
+yo
+Ed
+Ed
+Ed
+Ed
+Ed
+Ed
+Ed
+yo
+Ed
+Dy
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(13,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+Dy
+Ed
+oY
+cJ
+QZ
+Ed
+Ed
+Ed
+oY
+cJ
+QZ
+Ed
+Dy
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(14,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+Dy
+Ed
+oY
+Hw
+QZ
+Ed
+Ed
+Ed
+oY
+Hw
+QZ
+Ed
+Dy
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(15,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+Dy
+Ed
+oY
+Hw
+QZ
+Ed
+Ed
+Ed
+oY
+Hw
+QZ
+Ed
+Dy
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(16,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+Dy
+Ed
+oY
+Hw
+QZ
+Ed
+Ed
+Ed
+oY
+Hw
+QZ
+Ed
+Dy
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(17,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+Dy
+Ed
+oY
+Hw
+QZ
+Ed
+Ed
+Ed
+oY
+Hw
+QZ
+Ed
+Dy
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(18,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+Dy
+Ed
+oY
+Hw
+QZ
+yo
+yo
+yo
+oY
+Hw
+QZ
+Ed
+Dy
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(19,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+Dy
+Ed
+oY
+Hw
+QZ
+Ed
+Ed
+Ed
+oY
+Hw
+QZ
+Ed
+Dy
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(20,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+pS
+Ed
+oY
+Hw
+QZ
+Ed
+Ed
+Ed
+oY
+Hw
+QZ
+Ed
+Dy
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(21,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+Dy
+Ed
+oY
+Hw
+QZ
+Ed
+Ed
+Ed
+oY
+Hw
+QZ
+Ed
+Dy
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(22,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+Dy
+Ed
+oY
+Hw
+QZ
+Ed
+Ed
+Ed
+oY
+Hw
+QZ
+Ed
+Dy
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(23,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+Dy
+Ed
+oY
+Hw
+QZ
+yo
+yo
+yo
+oY
+Hw
+QZ
+Ed
+ax
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(24,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+Dy
+Ed
+oY
+Hw
+QZ
+Ed
+Ed
+Ed
+oY
+Hw
+QZ
+Ed
+Dy
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(25,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+Dy
+Ed
+oY
+Hw
+QZ
+Ed
+Ed
+Ed
+oY
+Hw
+QZ
+Ed
+Dy
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(26,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+Dy
+Ed
+oY
+Hw
+QZ
+Ed
+Ed
+Ed
+oY
+Hw
+QZ
+Ed
+Dy
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(27,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+Dy
+Ed
+oY
+Hw
+QZ
+Ed
+Ed
+Ed
+oY
+Hw
+QZ
+Ed
+Dy
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(28,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+Dy
+Ed
+oY
+Hw
+QZ
+Ed
+Ed
+Ed
+oY
+Hw
+QZ
+Ed
+Dy
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(29,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+Dy
+Ed
+Ed
+du
+Oi
+Oi
+Kt
+Oi
+Oi
+sn
+Ed
+Ed
+Dy
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(30,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+Dy
+yo
+Ed
+Ed
+Ed
+CU
+Ig
+Ed
+Ed
+Ed
+Ed
+Dy
+Dy
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(31,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+YA
+lW
+lW
+lW
+lW
+lW
+lW
+lW
+lW
+lW
+lW
+lW
+yU
+lW
+lW
+lW
+lW
+lW
+lW
+lW
+lW
+lW
+lW
+lW
+pU
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(32,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+YA
+GH
+ik
+ik
+ik
+ik
+ik
+ik
+ik
+ik
+ik
+ik
+yG
+ik
+ik
+ik
+ik
+ik
+ik
+ik
+ik
+ik
+yG
+ik
+ik
+Sv
+pU
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(33,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+YA
+GH
+ik
+ik
+FC
+FC
+FC
+wX
+FC
+iD
+FC
+FC
+wX
+FC
+FC
+FC
+FC
+FC
+FC
+FC
+FC
+wX
+FC
+FC
+FC
+ik
+ik
+Sv
+lW
+Ga
+Ga
+mh
+Lp
+Lp
+ES
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(34,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+xa
+ik
+ik
+FC
+yo
+Ff
+Ed
+Ed
+Ed
+zk
+Ed
+Ed
+Ed
+Ed
+FG
+Ed
+Ed
+Ed
+Ed
+zk
+Ed
+Ed
+Ed
+Ff
+yo
+FC
+ik
+SA
+SA
+SA
+Bq
+uT
+Lp
+Lp
+Ig
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(35,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+xa
+ik
+FC
+yo
+yo
+yo
+yo
+yo
+yo
+to
+yo
+yo
+yo
+yo
+WC
+yo
+yo
+yo
+yo
+kA
+yo
+yo
+yo
+yo
+yo
+TY
+FC
+SA
+aN
+HV
+HV
+kr
+Oi
+Oi
+oe
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(36,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+xa
+ik
+FC
+Ed
+yo
+an
+Ed
+Ed
+Ed
+zk
+Ed
+Ed
+Ed
+Ed
+yo
+Ed
+Ed
+Ed
+Ed
+zk
+Ed
+Ed
+Ed
+an
+yo
+Ed
+FC
+SA
+jo
+Nb
+Qx
+CM
+Lp
+Lp
+Ig
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(37,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+xa
+ik
+FC
+Vp
+YQ
+Vp
+Ed
+Gd
+Gd
+EK
+Gd
+Gd
+Gd
+Gd
+QN
+Gd
+Gd
+Gd
+Gd
+EK
+Gd
+Gd
+CU
+Ed
+yo
+Ed
+wX
+SA
+jo
+Qx
+SA
+SA
+SA
+SA
+mO
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(38,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+xa
+ik
+FC
+Yw
+sq
+JQ
+oE
+JR
+uj
+UD
+oB
+BQ
+Zb
+QY
+ML
+ML
+AX
+uj
+uj
+Ac
+Ln
+ei
+Xf
+Ed
+yo
+Ed
+FC
+SA
+AJ
+tY
+mb
+wH
+Ml
+SA
+xa
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(39,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+xa
+ik
+FC
+Hc
+LW
+sO
+Ma
+Sm
+Wc
+QP
+Rw
+gg
+Ay
+PZ
+Wq
+PZ
+PZ
+PZ
+PZ
+QP
+fs
+YN
+Xf
+Ed
+yo
+Ed
+FC
+qD
+Bn
+lr
+Qx
+ZB
+dB
+SA
+xa
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(40,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+xa
+ik
+FC
+ou
+ca
+ca
+DT
+lB
+lo
+Zu
+Zu
+Zu
+Zu
+Zu
+Zu
+Zu
+Zu
+Zu
+Zu
+Zu
+EQ
+YN
+UH
+yo
+yo
+bE
+FC
+SA
+sT
+jo
+Qx
+PA
+KQ
+qD
+xa
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(41,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+Dy
+Dy
+Dy
+Dy
+Dy
+Dy
+Dy
+Dy
+Dy
+Dy
+Dy
+Dy
+Dy
+Dy
+Dy
+ax
+Dy
+Dy
+Dy
+Dy
+xa
+ik
+wX
+TU
+lH
+Hu
+KH
+xF
+Xf
+Zu
+gi
+EM
+EM
+EM
+sH
+EM
+EM
+EM
+EM
+Zu
+EO
+YN
+Xf
+Ed
+yo
+FC
+FC
+SA
+zg
+lr
+Qx
+PA
+Ai
+SA
+xa
+Dy
+Dy
+Dy
+Dy
+Dy
+Dy
+Dy
+Dy
+Dy
+ax
+Dy
+Dy
+Dy
+Dy
+Dy
+Dy
+Dy
+Dy
+Dy
+Dy
+Dy
+Dy
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(42,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+Dy
+Ed
+Ed
+Ed
+Ed
+Ed
+Ed
+Ed
+Ed
+Ed
+Ed
+Ed
+Ed
+Ed
+Ed
+Ed
+Ed
+Ed
+yo
+Ed
+xa
+ik
+FC
+BW
+fv
+HW
+tm
+xF
+Xf
+Zu
+ve
+bJ
+Lh
+bJ
+Sr
+cz
+il
+tW
+EM
+Zu
+EO
+yr
+Xf
+PQ
+oG
+PQ
+PQ
+SA
+Zl
+ZQ
+YW
+lp
+HP
+SA
+xa
+Dy
+Dy
+Ed
+Ed
+Ed
+Ed
+Ed
+CU
+Ed
+Ed
+Ed
+Ed
+Ed
+Ed
+Ed
+Ed
+Ed
+Ed
+Ed
+Ed
+Ed
+Dy
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(43,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+Dy
+Ed
+GE
+GE
+GE
+GE
+GE
+GE
+GE
+GE
+GE
+GE
+GE
+GE
+GE
+GE
+GE
+GE
+yo
+Ed
+xa
+ik
+FC
+FC
+On
+PZ
+EO
+vK
+Xf
+Zu
+EM
+bJ
+bP
+bJ
+Tw
+eE
+il
+tW
+EM
+Zu
+uM
+IL
+uM
+uM
+yJ
+BZ
+PQ
+PQ
+PQ
+PQ
+PQ
+ky
+Yr
+PQ
+Sv
+pU
+Ed
+Ed
+yo
+GE
+GE
+GE
+GE
+GE
+GE
+GE
+GE
+GE
+GE
+GE
+GE
+GE
+GE
+GE
+GE
+Ed
+Dy
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(44,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+Dy
+yo
+qP
+Ht
+Ht
+Ht
+Ht
+Ht
+Ht
+Ht
+Ht
+Ht
+Ht
+Ht
+Ht
+Ht
+Ht
+Ht
+mh
+yo
+xa
+ik
+ik
+ux
+Hr
+eH
+Hr
+yN
+Hr
+Zu
+WR
+bJ
+bJ
+bJ
+il
+il
+il
+il
+EM
+Zu
+Qa
+nD
+eJ
+uM
+DV
+Uw
+PQ
+PQ
+XJ
+PQ
+iE
+LK
+vJ
+PQ
+PQ
+Sv
+pU
+yo
+rD
+IU
+IU
+IU
+IU
+IU
+IU
+IU
+IU
+IU
+IU
+IU
+IU
+IU
+IU
+IU
+oe
+yo
+Dy
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(45,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+Dy
+Ed
+li
+li
+li
+li
+li
+li
+li
+li
+li
+li
+li
+li
+li
+li
+li
+li
+Ig
+Ed
+xa
+yG
+ik
+ux
+Ky
+Pl
+Dd
+Px
+wY
+Zu
+qe
+il
+il
+Ct
+EM
+bO
+il
+il
+EM
+Zu
+eb
+nD
+Vm
+Jb
+PQ
+Qf
+PQ
+PQ
+PQ
+sM
+mc
+LK
+mc
+dD
+PQ
+PQ
+Az
+Ed
+Ig
+li
+li
+li
+li
+li
+li
+li
+li
+li
+li
+li
+li
+li
+li
+li
+li
+Ed
+Dy
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(46,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+Dy
+Ed
+Ed
+Ed
+Ed
+Ed
+Ed
+yo
+Ed
+Ed
+Ed
+Ed
+yo
+Ed
+Ed
+Ed
+Ed
+Ed
+Ig
+Ed
+xa
+ik
+ik
+ux
+eR
+Pl
+dv
+np
+Pl
+Zu
+qe
+il
+fc
+nh
+EM
+nh
+um
+il
+vp
+Zu
+WO
+nD
+Ri
+uM
+xv
+Uw
+UF
+kU
+Jz
+gm
+zq
+Fg
+zq
+iE
+hU
+PQ
+xa
+Ed
+Ig
+Ed
+Ed
+Ed
+Ed
+Ed
+yo
+Ed
+Ed
+Ed
+Ed
+yo
+Ed
+Ed
+Ed
+Ed
+Ed
+Ed
+Dy
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(47,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+Dy
+Ed
+Ed
+an
+Ed
+Ed
+Ed
+yo
+Ed
+Ed
+Ed
+Ed
+yo
+Ed
+Ed
+Ed
+Ed
+Ed
+NY
+Oi
+gr
+ik
+ik
+ux
+tD
+xG
+Pl
+JO
+yq
+zG
+wh
+Rv
+OS
+Nr
+Lq
+Nv
+aa
+Rv
+nQ
+zG
+Dr
+ph
+UE
+PU
+Sn
+cH
+gJ
+IE
+IE
+vZ
+qO
+HK
+iE
+iE
+Wp
+XJ
+CD
+Oi
+Go
+Ed
+Ed
+Ed
+Ed
+Ed
+yo
+Ed
+Ed
+Ed
+Ed
+yo
+Ed
+Ed
+Ed
+Ed
+Ed
+an
+Dy
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(48,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+Dy
+Ed
+Ed
+Ed
+Ed
+Ed
+Ed
+yo
+Ed
+Ed
+Ed
+Ed
+yo
+Ed
+Ed
+Ed
+Ed
+Ed
+Ig
+Ed
+xa
+ik
+ik
+ux
+Zd
+Ta
+rd
+np
+Pl
+Zu
+EM
+il
+Jm
+gG
+EM
+gG
+pa
+il
+qe
+Zu
+Xb
+oz
+Ri
+uM
+Rt
+Uw
+UF
+za
+iE
+Uw
+iE
+iE
+iE
+No
+bb
+PQ
+xa
+Ed
+Ig
+Ed
+Ed
+Ed
+Ed
+Ed
+yo
+Ed
+Ed
+Ed
+Ed
+yo
+Ed
+Ed
+Ed
+Ed
+Ed
+Ed
+ax
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(49,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+Dy
+Ed
+GE
+GE
+GE
+GE
+GE
+GE
+GE
+GE
+GE
+GE
+GE
+GE
+GE
+GE
+GE
+GE
+Ig
+Ed
+xa
+ik
+ik
+ux
+wW
+pV
+Pl
+dR
+Pl
+Zu
+EM
+il
+il
+nI
+EM
+FN
+il
+il
+qe
+Zu
+Gt
+GQ
+cj
+uM
+Yr
+VO
+PQ
+XJ
+PQ
+tz
+vu
+vu
+vu
+CC
+PQ
+PQ
+xa
+Ed
+Ig
+GE
+GE
+GE
+GE
+GE
+GE
+GE
+GE
+GE
+GE
+GE
+GE
+GE
+GE
+GE
+GE
+Ed
+Dy
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(50,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+Dy
+yo
+qP
+Ht
+Ht
+Ht
+Ht
+Ht
+Ht
+Ht
+Ht
+Ht
+Ht
+Ht
+Ht
+Ht
+Ht
+Ht
+sn
+yo
+xa
+ik
+ik
+ux
+Ad
+tF
+iy
+To
+mZ
+FA
+EM
+XB
+il
+il
+il
+il
+il
+il
+qe
+Zu
+ao
+nD
+Bf
+uM
+iE
+AY
+PQ
+ik
+PQ
+PQ
+bI
+tx
+bI
+PQ
+PQ
+YA
+GH
+yo
+du
+IU
+IU
+IU
+IU
+IU
+IU
+IU
+IU
+IU
+IU
+IU
+IU
+IU
+IU
+IU
+oe
+yo
+Dy
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(51,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+Dy
+Ed
+li
+li
+li
+li
+li
+li
+li
+li
+li
+li
+li
+li
+li
+li
+li
+li
+yo
+Ed
+xa
+ik
+ik
+ux
+Hr
+Hr
+Hr
+To
+ME
+Zj
+EM
+il
+Af
+il
+Gz
+CI
+il
+QR
+kT
+Zu
+uM
+yD
+uM
+uM
+HR
+De
+PQ
+ik
+YC
+PQ
+PQ
+PQ
+XJ
+PQ
+YA
+GH
+Ed
+Ed
+yo
+li
+li
+li
+li
+li
+li
+li
+li
+li
+li
+li
+li
+li
+li
+li
+li
+Ed
+Dy
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(52,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+Dy
+Ed
+Ed
+Ed
+Ed
+Ed
+Ed
+Ed
+Ed
+Ed
+Ed
+Ed
+Ed
+Ed
+Ed
+Ed
+CU
+Ed
+yo
+Ed
+xa
+ik
+iD
+pE
+sv
+ia
+kl
+To
+To
+zM
+EM
+il
+dn
+il
+Gz
+Gz
+il
+yC
+rT
+Zu
+EO
+yr
+Xf
+PQ
+oW
+PQ
+PQ
+ik
+YA
+lW
+lW
+lW
+lW
+lW
+GH
+Dy
+Dy
+Ed
+Ed
+Ed
+Ed
+Ed
+Ed
+Ed
+Ed
+Ed
+Ed
+Ed
+Ed
+Ed
+Ed
+Ed
+Ed
+Ed
+Ed
+Ed
+Dy
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(53,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+Dy
+Dy
+Dy
+Dy
+Dy
+Dy
+Dy
+Dy
+ax
+Dy
+Dy
+Dy
+Dy
+Dy
+Dy
+Dy
+Dy
+Dy
+Dy
+Dy
+xa
+ik
+ux
+Hr
+Aj
+Hr
+Hr
+Hr
+Hr
+Zu
+fq
+EM
+EM
+EM
+Vb
+EM
+EM
+ZV
+wA
+Zu
+EO
+rL
+Xf
+Ed
+yo
+FC
+FC
+ik
+xa
+Dy
+yo
+yo
+Dy
+Dy
+Dy
+Dy
+Dy
+yo
+Dy
+Dy
+Dy
+Dy
+Dy
+Dy
+Dy
+Dy
+Dy
+Dy
+Dy
+ax
+Dy
+Dy
+Dy
+Dy
+Dy
+Dy
+Dy
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(54,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+xa
+ik
+ux
+zY
+VB
+Qr
+qo
+wd
+gv
+Zu
+Zu
+Zu
+Zu
+Zu
+Zu
+Zu
+Zu
+Zu
+Zu
+Zu
+JG
+YN
+Xf
+Ed
+yo
+bE
+FC
+ik
+xa
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(55,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+xa
+ik
+ux
+nB
+Pl
+Pl
+SH
+Pe
+Hr
+QN
+QN
+QN
+Ra
+BT
+fa
+Gd
+Gd
+Gd
+Gd
+QN
+hq
+YN
+Xf
+Ed
+yo
+Ed
+FC
+ik
+xa
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(56,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+xa
+ik
+ux
+es
+Pl
+Pl
+Kc
+RB
+xL
+YF
+nL
+nL
+vd
+Od
+xj
+QY
+QY
+QY
+QY
+QY
+QY
+vU
+Xf
+Ed
+yo
+Ed
+wX
+ik
+xa
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(57,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+xa
+ik
+ux
+Pl
+Pl
+Pl
+Jo
+FP
+Hr
+EF
+PZ
+PZ
+PZ
+SO
+rL
+Ho
+PZ
+PZ
+PZ
+On
+PZ
+PZ
+CU
+Ed
+yo
+Ed
+FC
+ik
+xa
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(58,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+xa
+ik
+ux
+PL
+Pl
+Pl
+RD
+Kb
+Hr
+yo
+Ed
+yh
+yh
+yh
+yl
+yh
+yh
+yh
+Ed
+yo
+Ed
+Ed
+Ed
+an
+yo
+Ed
+FC
+ik
+xa
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(59,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+xa
+ik
+ux
+uF
+Pl
+yB
+ZE
+ul
+Hr
+WC
+yo
+yh
+RW
+Qg
+Rh
+JC
+mD
+yh
+yo
+qn
+yo
+yo
+yo
+yo
+yo
+yo
+FC
+ik
+xa
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(60,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+xa
+ik
+ux
+ux
+ob
+ux
+ux
+iR
+ux
+yo
+Gf
+yh
+JC
+JC
+qE
+qF
+mD
+yh
+Ed
+yo
+Gf
+Ed
+Ed
+Ed
+yo
+FC
+ik
+ik
+xa
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(61,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+Sv
+pU
+ik
+ik
+ik
+ik
+ik
+Vn
+ik
+FC
+wX
+FC
+Nz
+nS
+gR
+mN
+qM
+FC
+FC
+FC
+FC
+FC
+wX
+FC
+FC
+ik
+ik
+YA
+GH
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(62,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+Sv
+pU
+ik
+ik
+yG
+ik
+Vn
+ik
+ik
+ik
+ik
+FC
+FC
+FC
+wX
+FC
+ik
+ik
+ik
+ik
+ik
+ik
+ik
+ik
+ik
+YA
+GH
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(63,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+Sv
+lW
+lW
+lW
+lW
+bR
+lW
+lW
+pU
+ik
+ik
+ik
+ik
+ik
+ik
+yG
+YA
+lW
+lW
+lW
+lW
+lW
+lW
+lW
+GH
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(64,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+mH
+Dy
+Dy
+Sv
+lW
+lW
+lW
+TL
+lW
+lW
+lW
+GH
+Dy
+Dy
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(65,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+YO
+Dy
+Dy
+Ed
+yo
+Ed
+CU
+Ig
+Ed
+Ed
+yo
+Ed
+Dy
+Dy
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(66,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+Dy
+Ed
+yo
+rD
+Oi
+Oi
+Mm
+Oi
+Oi
+mh
+yo
+Ed
+Dy
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(67,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+Dy
+Ed
+oY
+kV
+QZ
+Ed
+Ed
+Ed
+oY
+kV
+QZ
+Ed
+Dy
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(68,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+Dy
+Ed
+oY
+kV
+QZ
+Ed
+Ed
+Ed
+oY
+kV
+QZ
+Ed
+Dy
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(69,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+Dy
+Ed
+oY
+kV
+QZ
+Ed
+Ed
+Ed
+oY
+kV
+QZ
+Ed
+Dy
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(70,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+Dy
+Ed
+oY
+kV
+QZ
+Ed
+Ed
+Ed
+oY
+kV
+QZ
+Ed
+ax
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(71,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+Dy
+Ed
+oY
+kV
+QZ
+Ed
+Ed
+Ed
+oY
+kV
+QZ
+Ed
+Dy
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(72,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+Dy
+Ed
+oY
+kV
+QZ
+yo
+yo
+yo
+oY
+kV
+QZ
+Ed
+Dy
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(73,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+Dy
+an
+oY
+kV
+QZ
+Ed
+Ed
+Ed
+oY
+kV
+QZ
+Ed
+Dy
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(74,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+Dy
+Ed
+oY
+kV
+QZ
+Ed
+Ed
+Ed
+oY
+kV
+QZ
+Ed
+Dy
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(75,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+Dy
+Ed
+oY
+kV
+QZ
+Ed
+Ed
+Ed
+oY
+kV
+QZ
+Ed
+Dy
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(76,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+Dy
+Ed
+oY
+kV
+QZ
+Ed
+Ed
+Ed
+oY
+kV
+QZ
+Ed
+Dy
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(77,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+Dy
+Ed
+oY
+kV
+QZ
+yo
+yo
+yo
+oY
+kV
+QZ
+Ed
+Dy
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(78,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+Dy
+Ed
+oY
+kV
+QZ
+Ed
+Ed
+Ed
+oY
+kV
+QZ
+Ed
+Dy
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(79,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+Dy
+Ed
+oY
+kV
+QZ
+Ed
+Ed
+Ed
+oY
+kV
+QZ
+Ed
+Dy
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(80,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+ax
+Ed
+oY
+kV
+QZ
+Ed
+Ed
+Ed
+oY
+kV
+QZ
+Ed
+Dy
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(81,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+Dy
+Ed
+oY
+kV
+QZ
+Ed
+Ed
+Ed
+oY
+kV
+QZ
+Ed
+ax
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(82,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+Dy
+Ed
+oY
+Mm
+QZ
+Ed
+Ed
+Ed
+oY
+Mm
+QZ
+Ed
+Dy
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(83,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+Dy
+Ed
+Ed
+yo
+Ed
+Ed
+Ed
+Ed
+Ed
+yo
+Ed
+Ed
+Dy
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(84,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+Dy
+Dy
+Dy
+Dy
+Dy
+Dy
+Dy
+Dy
+Dy
+Dy
+Dy
+Dy
+Dy
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(85,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(86,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(87,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(88,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(89,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
+(90,1,1) = {"
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+XP
+"}
diff --git a/_maps/map_files/RandomRuins/SpaceRuins/turretedoutpost.dmm b/_maps/map_files/RandomRuins/SpaceRuins/turretedoutpost.dmm
index 7ae763de0916..294cdbdf366d 100644
--- a/_maps/map_files/RandomRuins/SpaceRuins/turretedoutpost.dmm
+++ b/_maps/map_files/RandomRuins/SpaceRuins/turretedoutpost.dmm
@@ -257,7 +257,7 @@
/area/ruin/space/unpowered)
"S" = (
/obj/structure/table/wood,
-/obj/item/food/snacks/rawcutlet,
+/obj/item/food/rawcutlet,
/obj/machinery/light{
dir = 8
},
diff --git a/_maps/map_files/RandomRuins/SpaceRuins/ussp.dmm b/_maps/map_files/RandomRuins/SpaceRuins/ussp.dmm
index 5192ea05b614..8fe8ce5a23c5 100644
--- a/_maps/map_files/RandomRuins/SpaceRuins/ussp.dmm
+++ b/_maps/map_files/RandomRuins/SpaceRuins/ussp.dmm
@@ -1823,7 +1823,7 @@
/area/space/nearstation)
"eB" = (
/obj/structure/table/wood,
-/obj/item/food/snacks/grown/peanuts,
+/obj/item/food/grown/peanuts,
/obj/structure/sign/poster/contraband/random{
pixel_y = 32
},
@@ -5610,7 +5610,7 @@
/area/ruin/space/derelict/hallway/primary)
"nS" = (
/obj/structure/table/wood,
-/obj/item/food/snacks/soup/beetsoup,
+/obj/item/food/soup/beetsoup,
/turf/simulated/floor/plasteel{
icon_state = "bar"
},
@@ -6384,11 +6384,11 @@
layer = 2.9
},
/obj/structure/closet/crate/freezer,
-/obj/item/food/snacks/grown/potato,
-/obj/item/food/snacks/grown/potato,
-/obj/item/food/snacks/grown/potato,
-/obj/item/food/snacks/grown/potato,
-/obj/item/food/snacks/grown/potato,
+/obj/item/food/grown/potato,
+/obj/item/food/grown/potato,
+/obj/item/food/grown/potato,
+/obj/item/food/grown/potato,
+/obj/item/food/grown/potato,
/turf/simulated/floor/plasteel{
icon_state = "freezerfloor"
},
@@ -7534,9 +7534,7 @@
/turf/simulated/floor/plasteel/dark,
/area/ruin/space/derelict/crew_quarters)
"Nv" = (
-/obj/effect/spawner/airlock{
- req_access_txt = 0
- },
+/obj/effect/spawner/airlock,
/turf/simulated/wall/mineral/titanium/nodecon/nodiagonal,
/area/ruin/space/derelict/arrival)
"NK" = (
@@ -7547,9 +7545,7 @@
/turf/template_noop,
/area/template_noop)
"Oh" = (
-/obj/effect/spawner/airlock/w_to_e{
- req_access_txt = 0
- },
+/obj/effect/spawner/airlock/w_to_e,
/turf/simulated/wall/mineral/titanium/nodecon/nodiagonal,
/area/ruin/space/derelict/crew_quarters)
"PR" = (
@@ -7569,9 +7565,7 @@
},
/area/ruin/space/derelict/arrival)
"Ud" = (
-/obj/effect/spawner/airlock{
- req_access_txt = 0
- },
+/obj/effect/spawner/airlock,
/turf/simulated/wall/mineral/titanium/nodecon,
/area/ruin/space/derelict/arrival)
"Xn" = (
diff --git a/_maps/map_files/RandomRuins/SpaceRuins/whiteship.dmm b/_maps/map_files/RandomRuins/SpaceRuins/whiteship.dmm
index 4e36b0536388..b6e072a07e2e 100644
--- a/_maps/map_files/RandomRuins/SpaceRuins/whiteship.dmm
+++ b/_maps/map_files/RandomRuins/SpaceRuins/whiteship.dmm
@@ -18,9 +18,7 @@
/turf/simulated/floor/mineral/titanium/blue,
/area/shuttle/abandoned)
"em" = (
-/obj/effect/spawner/airlock/w_to_e/long/square{
- req_access_txt = null
- },
+/obj/effect/spawner/airlock/w_to_e/long/square,
/turf/simulated/wall/mineral/titanium,
/area/shuttle/abandoned)
"eo" = (
@@ -95,9 +93,7 @@
/area/shuttle/abandoned)
"nC" = (
/obj/structure/table,
-/obj/item/storage/firstaid/regular{
- pixel_y = 0
- },
+/obj/item/storage/firstaid/regular,
/turf/simulated/floor/mineral/titanium/blue,
/area/shuttle/abandoned)
"oh" = (
diff --git a/_maps/map_files/RandomRuins/SpaceRuins/wizardcrash.dmm b/_maps/map_files/RandomRuins/SpaceRuins/wizardcrash.dmm
index 079838d4da5d..80714d04e8b1 100644
--- a/_maps/map_files/RandomRuins/SpaceRuins/wizardcrash.dmm
+++ b/_maps/map_files/RandomRuins/SpaceRuins/wizardcrash.dmm
@@ -291,7 +291,7 @@
/area/ruin/space/powered)
"bc" = (
/obj/effect/decal/remains/human,
-/obj/item/food/snacks/meat/monkey,
+/obj/item/food/meat/monkey,
/turf/simulated/floor/plating,
/area/ruin/space/powered)
"bd" = (
@@ -313,7 +313,7 @@
/turf/simulated/floor/plating,
/area/ruin/space/powered)
"bg" = (
-/obj/item/food/snacks/meat/monkey,
+/obj/item/food/meat/monkey,
/turf/simulated/floor/plating,
/area/ruin/space/powered)
"bh" = (
@@ -329,7 +329,7 @@
},
/area/ruin/space/powered)
"bj" = (
-/obj/item/food/snacks/meat/human,
+/obj/item/food/meat/human,
/obj/effect/decal/cleanable/blood/old,
/turf/simulated/floor/plasteel{
icon_state = "chapel"
diff --git a/_maps/map_files/RandomRuins/SpaceRuins/wreckedcargoship.dmm b/_maps/map_files/RandomRuins/SpaceRuins/wreckedcargoship.dmm
index 81b1a96b2119..f03faedabeda 100644
--- a/_maps/map_files/RandomRuins/SpaceRuins/wreckedcargoship.dmm
+++ b/_maps/map_files/RandomRuins/SpaceRuins/wreckedcargoship.dmm
@@ -224,8 +224,8 @@
/area/ruin/space/wreck_cargoship)
"jm" = (
/obj/item/toy/plushie/ipcplushie,
-/obj/item/food/snacks/breadslice,
-/obj/item/food/snacks/breadslice,
+/obj/item/food/breadslice,
+/obj/item/food/breadslice,
/obj/item/paper/crumpled{
name = "unintelligible scribbles";
info = "toast... i must... the plushie..."
diff --git a/_maps/map_files/generic/Lavaland.dmm b/_maps/map_files/generic/Lavaland.dmm
index f4e1402aed69..680a9b55deca 100644
--- a/_maps/map_files/generic/Lavaland.dmm
+++ b/_maps/map_files/generic/Lavaland.dmm
@@ -667,7 +667,7 @@
/area/mine/outpost/storage)
"cl" = (
/obj/structure/lattice/catwalk/mining,
-/obj/item/food/snacks/fortunecookie{
+/obj/item/food/fortunecookie{
pixel_y = -5;
pixel_x = -6
},
@@ -1020,7 +1020,7 @@
"de" = (
/obj/structure/rack,
/obj/item/storage/toolbox/emergency,
-/obj/item/food/snacks/grown/harebell,
+/obj/item/food/grown/harebell,
/obj/item/radio/intercom{
name = "south bump";
pixel_y = -28
@@ -5773,7 +5773,7 @@
"wm" = (
/obj/structure/table,
/obj/item/storage/bag/tray,
-/obj/item/food/snacks/tofu,
+/obj/item/food/tofu,
/obj/machinery/atmospherics/unary/outlet_injector/on{
autolink_id = "air_in";
dir = 4
diff --git a/_maps/map_files/generic/centcomm.dmm b/_maps/map_files/generic/centcomm.dmm
index 7d38c76f41e9..08f6d22c9d14 100644
--- a/_maps/map_files/generic/centcomm.dmm
+++ b/_maps/map_files/generic/centcomm.dmm
@@ -1464,24 +1464,24 @@
/area/shuttle/administration)
"fF" = (
/obj/structure/closet/secure_closet/freezer/meat/open,
-/obj/item/food/snacks/raw_bacon,
-/obj/item/food/snacks/raw_bacon,
-/obj/item/food/snacks/raw_bacon,
-/obj/item/food/snacks/raw_bacon,
-/obj/item/food/snacks/sausage,
-/obj/item/food/snacks/sausage,
-/obj/item/food/snacks/rawcutlet,
-/obj/item/food/snacks/rawcutlet,
-/obj/item/food/snacks/rawcutlet,
-/obj/item/food/snacks/catfishmeat,
-/obj/item/food/snacks/catfishmeat,
-/obj/item/food/snacks/catfishmeat,
-/obj/item/food/snacks/catfishmeat,
-/obj/item/food/snacks/rawcutlet,
-/obj/item/food/snacks/rawcutlet,
-/obj/item/food/snacks/rawcutlet,
-/obj/item/food/snacks/spaghetti,
-/obj/item/food/snacks/spaghetti,
+/obj/item/food/raw_bacon,
+/obj/item/food/raw_bacon,
+/obj/item/food/raw_bacon,
+/obj/item/food/raw_bacon,
+/obj/item/food/sausage,
+/obj/item/food/sausage,
+/obj/item/food/rawcutlet,
+/obj/item/food/rawcutlet,
+/obj/item/food/rawcutlet,
+/obj/item/food/catfishmeat,
+/obj/item/food/catfishmeat,
+/obj/item/food/catfishmeat,
+/obj/item/food/catfishmeat,
+/obj/item/food/rawcutlet,
+/obj/item/food/rawcutlet,
+/obj/item/food/rawcutlet,
+/obj/item/food/spaghetti,
+/obj/item/food/spaghetti,
/turf/simulated/floor/plasteel{
icon_state = "cafeteria"
},
@@ -4233,7 +4233,7 @@
/area/centcom/suppy)
"nY" = (
/obj/structure/table/wood,
-/obj/item/food/snacks/mushroompizzaslice{
+/obj/item/food/mushroompizzaslice{
pixel_x = -5;
pixel_y = 5
},
@@ -5144,13 +5144,13 @@
/area/admin)
"ro" = (
/obj/structure/table,
-/obj/item/food/snacks/grown/citrus/lemon,
-/obj/item/food/snacks/grown/berries,
-/obj/item/food/snacks/grown/banana,
-/obj/item/food/snacks/grown/cherries,
-/obj/item/food/snacks/grown/citrus/orange,
-/obj/item/food/snacks/grown/corn,
-/obj/item/food/snacks/grown/mushroom/amanita,
+/obj/item/food/grown/citrus/lemon,
+/obj/item/food/grown/berries,
+/obj/item/food/grown/banana,
+/obj/item/food/grown/cherries,
+/obj/item/food/grown/citrus/orange,
+/obj/item/food/grown/corn,
+/obj/item/food/grown/mushroom/amanita,
/turf/simulated/floor/plasteel/freezer,
/area/admin)
"rp" = (
@@ -7194,22 +7194,22 @@
/area/holodeck/source_boxingcourt)
"zj" = (
/obj/structure/closet/secure_closet/freezer/fridge/open,
-/obj/item/food/snacks/grown/potato,
-/obj/item/food/snacks/grown/potato,
-/obj/item/food/snacks/grown/whitebeet,
-/obj/item/food/snacks/grown/whitebeet,
-/obj/item/food/snacks/grown/tomato,
-/obj/item/food/snacks/grown/tomato,
-/obj/item/food/snacks/grown/rice,
-/obj/item/food/snacks/grown/rice,
-/obj/item/food/snacks/grown/icepepper,
-/obj/item/food/snacks/grown/icepepper,
-/obj/item/food/snacks/grown/citrus/lemon,
-/obj/item/food/snacks/grown/citrus/lime,
-/obj/item/food/snacks/grown/citrus/orange,
-/obj/item/food/snacks/grown/cherries,
-/obj/item/food/snacks/grown/apple,
-/obj/item/food/snacks/grown/ambrosia/deus,
+/obj/item/food/grown/potato,
+/obj/item/food/grown/potato,
+/obj/item/food/grown/whitebeet,
+/obj/item/food/grown/whitebeet,
+/obj/item/food/grown/tomato,
+/obj/item/food/grown/tomato,
+/obj/item/food/grown/rice,
+/obj/item/food/grown/rice,
+/obj/item/food/grown/icepepper,
+/obj/item/food/grown/icepepper,
+/obj/item/food/grown/citrus/lemon,
+/obj/item/food/grown/citrus/lime,
+/obj/item/food/grown/citrus/orange,
+/obj/item/food/grown/cherries,
+/obj/item/food/grown/apple,
+/obj/item/food/grown/ambrosia/deus,
/turf/simulated/floor/plasteel{
icon_state = "cafeteria"
},
@@ -9942,22 +9942,22 @@
/area/shuttle/escape)
"Jl" = (
/obj/structure/closet/secure_closet/freezer/fridge/open,
-/obj/item/food/snacks/grown/potato,
-/obj/item/food/snacks/grown/potato,
-/obj/item/food/snacks/grown/whitebeet,
-/obj/item/food/snacks/grown/whitebeet,
-/obj/item/food/snacks/grown/tomato,
-/obj/item/food/snacks/grown/tomato,
-/obj/item/food/snacks/grown/rice,
-/obj/item/food/snacks/grown/rice,
-/obj/item/food/snacks/grown/icepepper,
-/obj/item/food/snacks/grown/icepepper,
-/obj/item/food/snacks/grown/citrus/lemon,
-/obj/item/food/snacks/grown/citrus/lime,
-/obj/item/food/snacks/grown/citrus/orange,
-/obj/item/food/snacks/grown/cherries,
-/obj/item/food/snacks/grown/apple,
-/obj/item/food/snacks/grown/ambrosia/deus,
+/obj/item/food/grown/potato,
+/obj/item/food/grown/potato,
+/obj/item/food/grown/whitebeet,
+/obj/item/food/grown/whitebeet,
+/obj/item/food/grown/tomato,
+/obj/item/food/grown/tomato,
+/obj/item/food/grown/rice,
+/obj/item/food/grown/rice,
+/obj/item/food/grown/icepepper,
+/obj/item/food/grown/icepepper,
+/obj/item/food/grown/citrus/lemon,
+/obj/item/food/grown/citrus/lime,
+/obj/item/food/grown/citrus/orange,
+/obj/item/food/grown/cherries,
+/obj/item/food/grown/apple,
+/obj/item/food/grown/ambrosia/deus,
/turf/simulated/floor/plasteel{
icon_state = "cafeteria"
},
@@ -10033,24 +10033,24 @@
/area/centcom/specops)
"JB" = (
/obj/structure/closet/secure_closet/freezer/meat/open,
-/obj/item/food/snacks/raw_bacon,
-/obj/item/food/snacks/raw_bacon,
-/obj/item/food/snacks/raw_bacon,
-/obj/item/food/snacks/raw_bacon,
-/obj/item/food/snacks/sausage,
-/obj/item/food/snacks/sausage,
-/obj/item/food/snacks/rawcutlet,
-/obj/item/food/snacks/rawcutlet,
-/obj/item/food/snacks/rawcutlet,
-/obj/item/food/snacks/catfishmeat,
-/obj/item/food/snacks/catfishmeat,
-/obj/item/food/snacks/catfishmeat,
-/obj/item/food/snacks/catfishmeat,
-/obj/item/food/snacks/rawcutlet,
-/obj/item/food/snacks/rawcutlet,
-/obj/item/food/snacks/rawcutlet,
-/obj/item/food/snacks/spaghetti,
-/obj/item/food/snacks/spaghetti,
+/obj/item/food/raw_bacon,
+/obj/item/food/raw_bacon,
+/obj/item/food/raw_bacon,
+/obj/item/food/raw_bacon,
+/obj/item/food/sausage,
+/obj/item/food/sausage,
+/obj/item/food/rawcutlet,
+/obj/item/food/rawcutlet,
+/obj/item/food/rawcutlet,
+/obj/item/food/catfishmeat,
+/obj/item/food/catfishmeat,
+/obj/item/food/catfishmeat,
+/obj/item/food/catfishmeat,
+/obj/item/food/rawcutlet,
+/obj/item/food/rawcutlet,
+/obj/item/food/rawcutlet,
+/obj/item/food/spaghetti,
+/obj/item/food/spaghetti,
/turf/simulated/floor/plasteel{
icon_state = "cafeteria"
},
@@ -10321,25 +10321,25 @@
/area/centcom/evac)
"Kw" = (
/obj/structure/closet/secure_closet/freezer/kitchen,
-/obj/item/food/snacks/grown/banana,
-/obj/item/food/snacks/grown/banana,
-/obj/item/food/snacks/grown/wheat,
-/obj/item/food/snacks/grown/wheat,
-/obj/item/food/snacks/grown/vanillapod,
-/obj/item/food/snacks/grown/vanillapod,
-/obj/item/food/snacks/grown/sugarcane,
-/obj/item/food/snacks/grown/sugarcane,
-/obj/item/food/snacks/grown/oat,
-/obj/item/food/snacks/grown/oat,
-/obj/item/food/snacks/grown/grapes,
-/obj/item/food/snacks/grown/grapes,
-/obj/item/food/snacks/grown/corn,
-/obj/item/food/snacks/grown/corn,
-/obj/item/food/snacks/grown/chili,
-/obj/item/food/snacks/grown/chili,
-/obj/item/food/snacks/grown/carrot,
-/obj/item/food/snacks/grown/apple,
-/obj/item/food/snacks/grown/ambrosia/vulgaris,
+/obj/item/food/grown/banana,
+/obj/item/food/grown/banana,
+/obj/item/food/grown/wheat,
+/obj/item/food/grown/wheat,
+/obj/item/food/grown/vanillapod,
+/obj/item/food/grown/vanillapod,
+/obj/item/food/grown/sugarcane,
+/obj/item/food/grown/sugarcane,
+/obj/item/food/grown/oat,
+/obj/item/food/grown/oat,
+/obj/item/food/grown/grapes,
+/obj/item/food/grown/grapes,
+/obj/item/food/grown/corn,
+/obj/item/food/grown/corn,
+/obj/item/food/grown/chili,
+/obj/item/food/grown/chili,
+/obj/item/food/grown/carrot,
+/obj/item/food/grown/apple,
+/obj/item/food/grown/ambrosia/vulgaris,
/turf/simulated/floor/plasteel{
icon_state = "cafeteria"
},
@@ -11470,25 +11470,25 @@
/obj/structure/closet/secure_closet/freezer/kitchen{
req_access = null
},
-/obj/item/food/snacks/grown/banana,
-/obj/item/food/snacks/grown/banana,
-/obj/item/food/snacks/grown/wheat,
-/obj/item/food/snacks/grown/wheat,
-/obj/item/food/snacks/grown/vanillapod,
-/obj/item/food/snacks/grown/vanillapod,
-/obj/item/food/snacks/grown/sugarcane,
-/obj/item/food/snacks/grown/sugarcane,
-/obj/item/food/snacks/grown/oat,
-/obj/item/food/snacks/grown/oat,
-/obj/item/food/snacks/grown/grapes,
-/obj/item/food/snacks/grown/grapes,
-/obj/item/food/snacks/grown/corn,
-/obj/item/food/snacks/grown/corn,
-/obj/item/food/snacks/grown/chili,
-/obj/item/food/snacks/grown/chili,
-/obj/item/food/snacks/grown/carrot,
-/obj/item/food/snacks/grown/apple,
-/obj/item/food/snacks/grown/ambrosia/vulgaris,
+/obj/item/food/grown/banana,
+/obj/item/food/grown/banana,
+/obj/item/food/grown/wheat,
+/obj/item/food/grown/wheat,
+/obj/item/food/grown/vanillapod,
+/obj/item/food/grown/vanillapod,
+/obj/item/food/grown/sugarcane,
+/obj/item/food/grown/sugarcane,
+/obj/item/food/grown/oat,
+/obj/item/food/grown/oat,
+/obj/item/food/grown/grapes,
+/obj/item/food/grown/grapes,
+/obj/item/food/grown/corn,
+/obj/item/food/grown/corn,
+/obj/item/food/grown/chili,
+/obj/item/food/grown/chili,
+/obj/item/food/grown/carrot,
+/obj/item/food/grown/apple,
+/obj/item/food/grown/ambrosia/vulgaris,
/turf/simulated/floor/plasteel{
icon_state = "cafeteria"
},
diff --git a/_maps/map_files/shuttles/ferry_meat.dmm b/_maps/map_files/shuttles/ferry_meat.dmm
index 8a21a1c75e2d..f6b71dd5baa1 100644
--- a/_maps/map_files/shuttles/ferry_meat.dmm
+++ b/_maps/map_files/shuttles/ferry_meat.dmm
@@ -36,13 +36,13 @@
/obj/structure/closet/secure_closet/freezer/meat,
/obj/item/grenade/chem_grenade/meat,
/obj/item/grenade/clusterbuster/meat,
-/obj/item/food/snacks/meat/corgi,
-/obj/item/food/snacks/meat/ham,
-/obj/item/food/snacks/meat/human,
-/obj/item/food/snacks/meat/monkey,
-/obj/item/food/snacks/meat/pug,
-/obj/item/food/snacks/meat/slab/meatproduct,
-/obj/item/food/snacks/meat/syntiflesh,
+/obj/item/food/meat/corgi,
+/obj/item/food/meat/ham,
+/obj/item/food/meat/human,
+/obj/item/food/meat/monkey,
+/obj/item/food/meat/pug,
+/obj/item/food/meat/slab/meatproduct,
+/obj/item/food/meat/syntiflesh,
/turf/simulated/floor/plasteel{
icon_state = "freezerfloor"
},
diff --git a/_maps/map_files/stations/boxstation.dmm b/_maps/map_files/stations/boxstation.dmm
index b082df3e45bd..a4ab4898cfb3 100644
--- a/_maps/map_files/stations/boxstation.dmm
+++ b/_maps/map_files/stations/boxstation.dmm
@@ -11463,7 +11463,7 @@
/turf/simulated/floor/plating,
/area/station/maintenance/fpmaint)
"aLG" = (
-/obj/item/food/snacks/meat/slab,
+/obj/item/food/meat/slab,
/turf/simulated/floor/plasteel{
icon_state = "showroomfloor"
},
@@ -11743,7 +11743,7 @@
/area/station/maintenance/fore)
"aMl" = (
/obj/structure/table,
-/obj/item/food/snacks/donut,
+/obj/item/food/donut,
/turf/simulated/floor/plating,
/area/station/maintenance/fsmaint)
"aMo" = (
@@ -11944,7 +11944,7 @@
/area/station/maintenance/fpmaint)
"aMT" = (
/obj/effect/decal/cleanable/dirt,
-/obj/item/food/snacks/meat/slab,
+/obj/item/food/meat/slab,
/obj/machinery/atmospherics/pipe/simple/hidden/cyan{
dir = 4
},
@@ -12349,7 +12349,7 @@
/area/station/maintenance/fpmaint2)
"aOo" = (
/obj/effect/decal/cleanable/dirt,
-/obj/item/food/snacks/meat/slab,
+/obj/item/food/meat/slab,
/turf/simulated/floor/plasteel{
icon_state = "showroomfloor"
},
@@ -12630,7 +12630,7 @@
"aPa" = (
/obj/effect/decal/cleanable/dirt,
/obj/effect/spawner/random_spawners/blood_maybe,
-/obj/item/food/snacks/meat/slab,
+/obj/item/food/meat/slab,
/obj/item/clothing/mask/face/fox,
/turf/simulated/floor/plasteel,
/area/station/maintenance/fpmaint2)
@@ -16338,7 +16338,7 @@
/turf/simulated/floor/plating,
/area/station/maintenance/fpmaint)
"baa" = (
-/obj/item/food/snacks/grown/banana,
+/obj/item/food/grown/banana,
/turf/simulated/floor/plating,
/area/station/maintenance/fpmaint)
"bab" = (
@@ -16832,7 +16832,7 @@
/area/station/maintenance/fpmaint)
"bbH" = (
/obj/structure/table,
-/obj/item/food/snacks/baguette,
+/obj/item/food/baguette,
/turf/simulated/floor/plating,
/area/station/maintenance/fpmaint)
"bbI" = (
@@ -16853,7 +16853,7 @@
/turf/simulated/floor/plating,
/area/station/maintenance/fsmaint)
"bbJ" = (
-/obj/item/food/snacks/grown/banana,
+/obj/item/food/grown/banana,
/obj/item/storage/backpack/duffel/clown,
/turf/simulated/floor/plating,
/area/station/maintenance/fpmaint)
@@ -17392,7 +17392,7 @@
"bdp" = (
/obj/structure/table/wood,
/obj/item/flashlight/lamp/bananalamp,
-/obj/item/food/snacks/pie,
+/obj/item/food/pie,
/obj/machinery/alarm/directional/north,
/turf/simulated/floor/wood,
/area/station/service/clown)
@@ -18436,7 +18436,7 @@
/area/station/service/chapel)
"bgj" = (
/obj/structure/table/wood,
-/obj/item/food/snacks/chips,
+/obj/item/food/chips,
/obj/item/reagent_containers/drinks/cans/cola,
/turf/simulated/floor/carpet,
/area/station/hallway/secondary/entry/lounge)
@@ -23582,7 +23582,7 @@
/area/station/service/kitchen)
"bus" = (
/obj/structure/table,
-/obj/item/food/snacks/mint,
+/obj/item/food/mint,
/turf/simulated/floor/plasteel{
icon_state = "cafeteria"
},
@@ -24941,9 +24941,7 @@
},
/area/station/hallway/primary/central/west)
"bzN" = (
-/obj/effect/spawner/airlock/w_to_e/long{
- req_access_txt = 32
- },
+/obj/effect/spawner/airlock/w_to_e/long,
/turf/simulated/wall/r_wall,
/area/station/engineering/ai_transit_tube)
"bzO" = (
@@ -28848,6 +28846,15 @@
"bOU" = (
/turf/simulated/wall,
/area/station/medical/chemistry)
+"bOY" = (
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 2;
+ icon_state = "1-2"
+ },
+/obj/effect/mapping_helpers/airlock/access/all/engineering/general,
+/turf/simulated/floor/plating,
+/area/station/maintenance/auxsolarport)
"bPd" = (
/obj/effect/turf_decal/stripes/line{
dir = 4
@@ -47983,7 +47990,7 @@
"dgY" = (
/obj/structure/rack,
/obj/effect/spawner/lootdrop/maintenance,
-/obj/item/food/snacks/donkpocket,
+/obj/item/food/donkpocket,
/turf/simulated/floor/plating,
/area/station/maintenance/aft)
"dgZ" = (
@@ -51410,7 +51417,7 @@
/area/station/medical/sleeper)
"dvb" = (
/obj/effect/spawner/window/reinforced/grilled,
-/obj/effect/spawner/airlock/e_to_w/arrivals,
+/obj/effect/spawner/airlock/e_to_w,
/turf/simulated/floor/plating,
/area/station/hallway/secondary/entry/north)
"dvv" = (
@@ -51674,7 +51681,7 @@
/area/station/maintenance/apmaint)
"dEb" = (
/obj/effect/decal/cleanable/dirt,
-/obj/item/food/snacks/meat/slab,
+/obj/item/food/meat/slab,
/turf/simulated/floor/plating,
/area/station/maintenance/fpmaint)
"dEq" = (
@@ -54725,9 +54732,7 @@
/area/station/hallway/primary/aft/south)
"eXd" = (
/obj/effect/spawner/window/reinforced/grilled,
-/obj/effect/spawner/airlock/s_to_n/engineer{
- req_access_txt = 13
- },
+/obj/effect/spawner/airlock/s_to_n,
/turf/simulated/floor/plating,
/area/station/maintenance/auxsolarstarboard)
"eXy" = (
@@ -58524,7 +58529,7 @@
"gMa" = (
/obj/effect/decal/cleanable/dirt,
/obj/structure/table,
-/obj/item/food/snacks/dough{
+/obj/item/food/dough{
desc = "A piece of dough. It looks moldy and is hard as a rock. Hope you're not planning on turning this into a pizza..";
name = "old dough"
},
@@ -64219,6 +64224,15 @@
},
/turf/simulated/floor/plasteel,
/area/station/medical/storage)
+"jCt" = (
+/obj/structure/cable{
+ d1 = 4;
+ d2 = 8;
+ icon_state = "4-8"
+ },
+/obj/effect/mapping_helpers/airlock/access/all/engineering/general,
+/turf/simulated/floor/plating,
+/area/station/maintenance/portsolar)
"jCu" = (
/obj/machinery/economy/vending/scidrobe,
/turf/simulated/floor/plasteel{
@@ -64713,9 +64727,7 @@
/turf/simulated/floor/plating,
/area/station/maintenance/port)
"jRo" = (
-/obj/effect/spawner/airlock/s_to_n/long/square/engineer{
- req_access_txt = null
- },
+/obj/effect/spawner/airlock/s_to_n/long/square,
/turf/simulated/wall,
/area/station/maintenance/fpmaint2)
"jRx" = (
@@ -65011,6 +65023,10 @@
icon_state = "barber"
},
/area/station/service/barber)
+"jVV" = (
+/obj/effect/mapping_helpers/airlock/access/all/engineering/general,
+/turf/simulated/floor/plating,
+/area/station/maintenance/fpmaint2)
"jWg" = (
/obj/machinery/disposal,
/obj/structure/window/reinforced{
@@ -65217,7 +65233,7 @@
"kdh" = (
/obj/effect/decal/cleanable/dirt,
/obj/machinery/light/small,
-/obj/item/food/snacks/grown/cannabis,
+/obj/item/food/grown/cannabis,
/turf/simulated/floor/carpet,
/area/station/maintenance/asmaint)
"kdk" = (
@@ -67539,6 +67555,10 @@
icon_state = "purplecorner"
},
/area/station/science/robotics)
+"liR" = (
+/obj/effect/mapping_helpers/airlock/access/all/engineering/general,
+/turf/simulated/floor/plating,
+/area/station/maintenance/apmaint)
"lje" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -69463,7 +69483,7 @@
},
/area/station/command/server)
"mdX" = (
-/obj/item/food/snacks/grown/cannabis,
+/obj/item/food/grown/cannabis,
/obj/effect/decal/cleanable/dirt,
/obj/item/clothing/mask/cigarette/medical_marijuana,
/turf/simulated/floor/wood{
@@ -71432,9 +71452,7 @@
/area/station/hallway/secondary/exit)
"nee" = (
/obj/effect/spawner/window/reinforced/grilled,
-/obj/effect/spawner/airlock/s_to_n{
- req_access_txt = "11,13"
- },
+/obj/effect/spawner/airlock/s_to_n,
/turf/simulated/floor/plating,
/area/station/maintenance/auxsolarport)
"neo" = (
@@ -71660,9 +71678,7 @@
/area/station/medical/virology)
"nnF" = (
/obj/effect/spawner/window/reinforced/grilled,
-/obj/effect/spawner/airlock/s_to_n/engineer{
- req_access_txt = 13
- },
+/obj/effect/spawner/airlock/s_to_n,
/turf/simulated/floor/plating,
/area/station/maintenance/fsmaint)
"noq" = (
@@ -72130,9 +72146,7 @@
/area/station/science/toxins/mixing)
"nBq" = (
/obj/effect/spawner/window/reinforced/grilled,
-/obj/effect/spawner/airlock/long/engineer{
- req_access_txt = 13
- },
+/obj/effect/spawner/airlock/long,
/turf/simulated/floor/plating,
/area/station/maintenance/aft)
"nBs" = (
@@ -72240,6 +72254,15 @@
icon_state = "dark"
},
/area/station/science/robotics/chargebay)
+"nCl" = (
+/obj/structure/cable{
+ d1 = 4;
+ d2 = 8;
+ icon_state = "4-8"
+ },
+/obj/effect/mapping_helpers/airlock/access/all/engineering/general,
+/turf/simulated/floor/plating,
+/area/station/maintenance/asmaint)
"nCm" = (
/obj/structure/cable{
d1 = 1;
@@ -74405,9 +74428,7 @@
/area/station/maintenance/asmaint)
"oBF" = (
/obj/effect/spawner/window/reinforced/grilled,
-/obj/effect/spawner/airlock/s_to_n/long/engineer{
- req_access_txt = null
- },
+/obj/effect/spawner/airlock/s_to_n/long,
/turf/simulated/floor/plating,
/area/station/maintenance/fpmaint2)
"oBJ" = (
@@ -77440,9 +77461,7 @@
/area/station/supply/miningdock)
"qaB" = (
/obj/effect/spawner/window/reinforced/grilled,
-/obj/effect/spawner/airlock/engineer{
- req_access_txt = 13
- },
+/obj/effect/spawner/airlock,
/turf/simulated/floor/plating,
/area/station/maintenance/apmaint)
"qaI" = (
@@ -79584,6 +79603,15 @@
},
/turf/simulated/wall,
/area/space/nearstation)
+"qUj" = (
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 2;
+ icon_state = "1-2"
+ },
+/obj/effect/mapping_helpers/airlock/access/all/engineering/general,
+/turf/simulated/floor/plating,
+/area/station/maintenance/starboardsolar)
"qUu" = (
/obj/machinery/light_switch{
dir = 4;
@@ -80256,7 +80284,7 @@
"rkL" = (
/obj/effect/decal/cleanable/dirt,
/obj/item/seeds/cannabis,
-/obj/item/food/snacks/grown/ambrosia/vulgaris,
+/obj/item/food/grown/ambrosia/vulgaris,
/turf/simulated/floor/plating,
/area/station/maintenance/asmaint)
"rkS" = (
@@ -80653,6 +80681,10 @@
},
/turf/simulated/floor/engine,
/area/station/engineering/control)
+"ruY" = (
+/obj/effect/mapping_helpers/airlock/access/all/engineering/general,
+/turf/simulated/floor/plating,
+/area/station/maintenance/fsmaint)
"rvo" = (
/obj/structure/disposalpipe/segment,
/obj/effect/spawner/window/reinforced/polarized/grilled{
@@ -82536,6 +82568,10 @@
/obj/structure/statue/cyberiad/north/east,
/turf/simulated/floor/plasteel,
/area/station/hallway/primary/central/south)
+"ssO" = (
+/obj/effect/mapping_helpers/airlock/access/all/engineering/general,
+/turf/simulated/floor/plating,
+/area/station/maintenance/aft)
"ssQ" = (
/obj/structure/closet/radiation,
/obj/machinery/light{
@@ -84120,6 +84156,7 @@
/obj/machinery/light/small{
dir = 1
},
+/obj/effect/mapping_helpers/airlock/access/all/engineering/construction,
/turf/simulated/floor/plating,
/area/station/maintenance/storage)
"tle" = (
@@ -84631,6 +84668,10 @@
/obj/machinery/door/firedoor,
/turf/simulated/floor/plating,
/area/station/maintenance/turbine)
+"tAH" = (
+/obj/effect/mapping_helpers/airlock/access/all/engineering/general,
+/turf/simulated/floor/plating/airless,
+/area/station/maintenance/fpmaint2)
"tAS" = (
/obj/structure/door_assembly/door_assembly_mai{
anchored = 1;
@@ -85612,13 +85653,13 @@
/area/station/science/test_chamber)
"tWD" = (
/obj/structure/closet/crate,
-/obj/item/food/snacks/breadslice,
-/obj/item/food/snacks/breadslice,
-/obj/item/food/snacks/breadslice,
-/obj/item/food/snacks/grown/potato,
-/obj/item/food/snacks/grown/potato,
-/obj/item/food/snacks/grown/onion,
-/obj/item/food/snacks/grown/onion,
+/obj/item/food/breadslice,
+/obj/item/food/breadslice,
+/obj/item/food/breadslice,
+/obj/item/food/grown/potato,
+/obj/item/food/grown/potato,
+/obj/item/food/grown/onion,
+/obj/item/food/grown/onion,
/obj/item/storage/box/donkpockets,
/obj/item/storage/fancy/egg_box,
/obj/item/reagent_containers/condiment/flour,
@@ -86212,9 +86253,7 @@
/area/station/command/office/hop)
"unh" = (
/obj/effect/spawner/window/reinforced/grilled,
-/obj/effect/spawner/airlock/w_to_e/engineer{
- req_access_txt = 13
- },
+/obj/effect/spawner/airlock/w_to_e,
/turf/simulated/floor/plating,
/area/station/maintenance/asmaint)
"uno" = (
@@ -86781,6 +86820,15 @@
/obj/item/book/random/triple,
/turf/simulated/floor/plating,
/area/station/maintenance/asmaint)
+"uDn" = (
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 2;
+ icon_state = "1-2"
+ },
+/obj/effect/mapping_helpers/airlock/access/all/engineering/general,
+/turf/simulated/floor/plating,
+/area/station/maintenance/auxsolarstarboard)
"uDI" = (
/obj/effect/turf_decal/stripes/line{
dir = 9
@@ -86869,7 +86917,7 @@
/area/station/engineering/atmos/distribution)
"uGf" = (
/obj/structure/table/reinforced,
-/obj/item/food/snacks/grilledcheese{
+/obj/item/food/grilledcheese{
pixel_y = 9
},
/turf/simulated/floor/wood,
@@ -87144,7 +87192,7 @@
/area/station/hallway/secondary/exit)
"uRK" = (
/obj/item/organ/internal/heart/vox,
-/obj/item/food/snacks/fried_vox,
+/obj/item/food/fried_vox,
/obj/structure/table,
/obj/item/scalpel,
/turf/simulated/floor/plating,
@@ -88205,7 +88253,7 @@
/area/station/maintenance/asmaint)
"vrV" = (
/obj/effect/spawner/window/reinforced/grilled,
-/obj/effect/spawner/airlock/engineer,
+/obj/effect/spawner/airlock,
/turf/simulated/floor/plating,
/area/station/maintenance/starboardsolar)
"vsw" = (
@@ -92785,7 +92833,7 @@
/area/station/medical/surgery/observation)
"xII" = (
/obj/structure/table/wood,
-/obj/item/food/snacks/pistachios,
+/obj/item/food/pistachios,
/obj/item/poster/random_contraband,
/turf/simulated/floor/plating,
/area/station/maintenance/asmaint)
@@ -93237,7 +93285,7 @@
/area/station/maintenance/apmaint2)
"xSF" = (
/obj/effect/spawner/window/reinforced/grilled,
-/obj/effect/spawner/airlock/e_to_w/engineer,
+/obj/effect/spawner/airlock/e_to_w,
/turf/simulated/floor/plating,
/area/station/maintenance/portsolar)
"xSH" = (
@@ -106226,7 +106274,7 @@ aaa
doE
aHS
aHS
-aHS
+jVV
aHS
pTK
aND
@@ -108273,7 +108321,7 @@ asb
asb
laU
dap
-dap
+bOY
dap
hoD
aEE
@@ -108336,7 +108384,7 @@ jWI
noP
ubK
coL
-coL
+liR
coL
doE
aaa
@@ -112133,7 +112181,7 @@ doE
doE
aHS
lcl
-lcl
+tAH
aHS
rMP
blG
@@ -115555,7 +115603,7 @@ aaa
aaa
aab
swl
-ntD
+jCt
swl
aab
aab
@@ -135517,7 +135565,7 @@ awQ
axq
axq
jOz
-jOz
+uDn
jOz
sDz
aHI
@@ -135885,7 +135933,7 @@ cep
hzG
cep
ghR
-cep
+ssO
cep
doE
aaa
@@ -137573,7 +137621,7 @@ aaa
aaa
doE
aGY
-aGY
+ruY
aGY
cZV
aGY
@@ -144876,7 +144924,7 @@ deN
dfa
tMT
sTF
-sTF
+qUj
sTF
ddE
ddE
@@ -148178,7 +148226,7 @@ aaa
aaa
aab
ycI
-cNq
+nCl
ycI
ciY
sKQ
diff --git a/_maps/map_files/stations/cerestation.dmm b/_maps/map_files/stations/cerestation.dmm
index c2c93d8be69a..49ecc4ed49ef 100644
--- a/_maps/map_files/stations/cerestation.dmm
+++ b/_maps/map_files/stations/cerestation.dmm
@@ -23368,7 +23368,7 @@
},
/obj/structure/disposalpipe/segment,
/obj/machinery/atmospherics/pipe/simple/visible,
-/turf/simulated/wall,
+/turf/simulated/floor/plating,
/area/station/science/misc_lab)
"czg" = (
/turf/simulated/floor/plasteel{
@@ -26020,7 +26020,7 @@
/area/station/maintenance/port)
"cNg" = (
/obj/structure/table,
-/obj/item/food/snacks/baguette,
+/obj/item/food/baguette,
/obj/structure/sign/poster/official/the_owl{
pixel_y = 32
},
@@ -40487,7 +40487,7 @@
/obj/item/reagent_containers/drinks/cans/cola{
pixel_x = 10
},
-/obj/item/food/snacks/chips{
+/obj/item/food/chips{
pixel_x = -5
},
/obj/structure/railing,
@@ -47444,7 +47444,7 @@
/area/station/turret_protected/aisat/interior/secondary)
"ipE" = (
/obj/structure/table,
-/obj/item/food/snacks/mint,
+/obj/item/food/mint,
/turf/simulated/floor/plasteel{
icon_state = "cafeteria"
},
@@ -50945,7 +50945,7 @@
/obj/effect/decal/cleanable/dirt,
/obj/structure/table,
/obj/item/kitchen/knife,
-/obj/item/food/snacks/meat/human,
+/obj/item/food/meat/human,
/turf/simulated/floor/plating,
/area/station/maintenance/asmaint)
"jtF" = (
@@ -59668,7 +59668,7 @@
/area/station/hallway/primary/central/west)
"lYT" = (
/obj/structure/table,
-/obj/item/food/snacks/fried_vox,
+/obj/item/food/fried_vox,
/turf/simulated/floor/plating,
/area/station/maintenance/fsmaint)
"lYX" = (
@@ -61497,17 +61497,6 @@
icon_state = "neutralcorner"
},
/area/station/hallway/primary/starboard/south)
-"mGE" = (
-/obj/structure/cable/orange{
- d1 = 4;
- d2 = 8;
- icon_state = "4-8"
- },
-/obj/structure/grille,
-/turf/simulated/floor/plating{
- icon_state = "asteroidplating"
- },
-/area/station/maintenance/apmaint)
"mGK" = (
/obj/effect/decal/cleanable/dirt,
/obj/effect/turf_decal/stripes/line{
@@ -71981,7 +71970,7 @@
"pXp" = (
/obj/structure/rack,
/obj/effect/spawner/lootdrop/maintenance,
-/obj/item/food/snacks/donkpocket,
+/obj/item/food/donkpocket,
/turf/simulated/floor/plating,
/area/station/maintenance/starboard)
"pXq" = (
@@ -82208,7 +82197,7 @@
"tnY" = (
/obj/structure/table/wood,
/obj/item/flashlight/lamp/bananalamp,
-/obj/item/food/snacks/pie,
+/obj/item/food/pie,
/obj/machinery/light_switch{
dir = 8;
pixel_x = 24;
@@ -89895,8 +89884,8 @@
/area/station/hallway/primary/fore/east)
"vFa" = (
/obj/structure/table,
-/obj/item/food/snacks/grown/potato,
-/obj/item/food/snacks/grown/chili,
+/obj/item/food/grown/potato,
+/obj/item/food/grown/chili,
/obj/item/seeds/grape,
/turf/simulated/floor/plasteel{
icon_state = "darkgreenfull"
@@ -123710,7 +123699,7 @@ ciG
gPL
nwv
pQN
-mGE
+nta
cGd
pAi
pAi
diff --git a/_maps/map_files/stations/deltastation.dmm b/_maps/map_files/stations/deltastation.dmm
index 7f746d9f27a3..c77375516e74 100644
--- a/_maps/map_files/stations/deltastation.dmm
+++ b/_maps/map_files/stations/deltastation.dmm
@@ -1831,11 +1831,11 @@
/area/station/hallway/secondary/entry/south)
"anA" = (
/obj/structure/table/reinforced,
-/obj/item/food/snacks/meat/slab{
+/obj/item/food/meat/slab{
pixel_x = 6;
pixel_y = 11
},
-/obj/item/food/snacks/meat/slab,
+/obj/item/food/meat/slab,
/obj/effect/turf_decal/delivery,
/turf/simulated/floor/plasteel,
/area/station/maintenance/fore2)
@@ -7755,9 +7755,9 @@
/obj/structure/table,
/obj/item/seeds/poppy/lily,
/obj/item/seeds/poppy/geranium,
-/obj/item/food/snacks/grown/wheat,
+/obj/item/food/grown/wheat,
/obj/item/grown/corncob,
-/obj/item/food/snacks/grown/apple,
+/obj/item/food/grown/apple,
/obj/effect/turf_decal/delivery/hollow,
/turf/simulated/floor/plasteel,
/area/station/maintenance/abandoned_garden)
@@ -7779,9 +7779,9 @@
/obj/structure/table,
/obj/item/stack/packageWrap,
/obj/item/hand_labeler,
-/obj/item/food/snacks/grown/tea,
-/obj/item/food/snacks/grown/grapes,
-/obj/item/food/snacks/grown/cherries,
+/obj/item/food/grown/tea,
+/obj/item/food/grown/grapes,
+/obj/item/food/grown/cherries,
/obj/effect/turf_decal/delivery/hollow,
/turf/simulated/floor/plasteel,
/area/station/maintenance/abandoned_garden)
@@ -12962,7 +12962,7 @@
/area/station/service/bar)
"aRC" = (
/obj/structure/table/wood,
-/obj/item/food/snacks/cheesiehonkers,
+/obj/item/food/cheesiehonkers,
/turf/simulated/floor/plasteel{
icon_state = "bar"
},
@@ -14812,7 +14812,7 @@
/area/station/supply/miningdock)
"aWg" = (
/obj/structure/table/wood,
-/obj/item/food/snacks/chips,
+/obj/item/food/chips,
/turf/simulated/floor/plasteel{
icon_state = "bar"
},
@@ -19039,7 +19039,7 @@
/obj/item/reagent_containers/condiment/flour,
/obj/effect/turf_decal/delivery/hollow,
/obj/structure/table,
-/obj/item/food/snacks/dough,
+/obj/item/food/dough,
/turf/simulated/floor/plasteel{
icon_state = "white"
},
@@ -19086,7 +19086,7 @@
"bhR" = (
/obj/effect/turf_decal/delivery/hollow,
/obj/structure/table,
-/obj/item/food/snacks/mint{
+/obj/item/food/mint{
pixel_y = 10
},
/obj/item/reagent_containers/condiment/saltshaker{
@@ -24711,10 +24711,10 @@
/obj/item/seeds/wheat,
/obj/item/seeds/potato,
/obj/item/seeds/pumpkin,
-/obj/item/food/snacks/grown/wheat,
-/obj/item/food/snacks/grown/watermelon,
-/obj/item/food/snacks/grown/grapes,
-/obj/item/food/snacks/grown/tomato,
+/obj/item/food/grown/wheat,
+/obj/item/food/grown/watermelon,
+/obj/item/food/grown/grapes,
+/obj/item/food/grown/tomato,
/obj/effect/turf_decal/delivery/hollow,
/turf/simulated/floor/plasteel,
/area/station/service/hydroponics)
@@ -25915,7 +25915,7 @@
dir = 9
},
/obj/structure/displaycase{
- start_showpiece_type = /obj/item/food/snacks/donut/sprinkles
+ start_showpiece_type = /obj/item/food/donut/sprinkles
},
/turf/simulated/floor/plasteel{
icon_state = "dark"
@@ -34972,6 +34972,8 @@
icon_state = "4-8"
},
/obj/machinery/light/small,
+/obj/effect/mapping_helpers/airlock/access/any/science/minisat,
+/obj/effect/mapping_helpers/airlock/access/any/engineering/general,
/turf/simulated/floor/plasteel/dark,
/area/station/engineering/ai_transit_tube)
"bVB" = (
@@ -50586,7 +50588,7 @@
"cOp" = (
/obj/structure/table/wood,
/obj/item/flashlight/lamp/bananalamp,
-/obj/item/food/snacks/pie,
+/obj/item/food/pie,
/obj/machinery/power/apc/directional/west,
/obj/structure/cable{
d2 = 4;
@@ -58070,6 +58072,11 @@
/obj/effect/decal/cleanable/dirt,
/turf/simulated/floor/plating,
/area/station/maintenance/port)
+"drw" = (
+/obj/effect/turf_decal/delivery,
+/obj/effect/mapping_helpers/airlock/access/all/engineering/general,
+/turf/simulated/floor/plasteel,
+/area/station/maintenance/port)
"drz" = (
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
dir = 4
@@ -61520,7 +61527,6 @@
/area/station/service/chapel)
"dKl" = (
/obj/structure/table/wood,
-/obj/item/food/snacks/grown/harebell,
/obj/structure/noticeboard{
pixel_y = 29
},
@@ -62509,13 +62515,6 @@
},
/turf/simulated/floor/plasteel/dark,
/area/station/service/chapel)
-"dPL" = (
-/obj/structure/table/wood,
-/obj/item/food/snacks/grown/poppy,
-/obj/item/food/snacks/grown/poppy,
-/obj/item/food/snacks/grown/poppy,
-/turf/simulated/floor/carpet/black,
-/area/station/service/chapel)
"dPM" = (
/obj/machinery/atmospherics/pipe/simple/hidden/supply,
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
@@ -64647,8 +64646,6 @@
dir = 4
},
/obj/structure/table/wood,
-/obj/item/food/snacks/grown/harebell,
-/obj/item/food/snacks/grown/harebell,
/turf/simulated/floor/carpet/black,
/area/station/service/chapel)
"dYU" = (
@@ -70728,6 +70725,10 @@
icon_state = "dark"
},
/area/station/turret_protected/aisat)
+"hzm" = (
+/obj/effect/spawner/airlock/s_to_n,
+/turf/simulated/wall/r_wall,
+/area/station/security/permabrig)
"hzo" = (
/turf/simulated/floor/plasteel{
icon_state = "neutralfull"
@@ -73228,9 +73229,7 @@
/area/station/science/toxins/mixing)
"iYu" = (
/obj/effect/spawner/window/reinforced/grilled,
-/obj/effect/spawner/airlock/e_to_w/engineer{
- req_access_txt = 13
- },
+/obj/effect/spawner/airlock/e_to_w,
/turf/simulated/floor/plating,
/area/station/maintenance/auxsolarport)
"iYX" = (
@@ -74116,9 +74115,7 @@
/area/station/medical/virology)
"jEE" = (
/obj/effect/spawner/window/reinforced/grilled,
-/obj/effect/spawner/airlock/w_to_e/engineer{
- req_access_txt = 13
- },
+/obj/effect/spawner/airlock/w_to_e,
/turf/simulated/floor/plating,
/area/station/maintenance/auxsolarstarboard)
"jEI" = (
@@ -75344,7 +75341,7 @@
},
/area/station/service/chapel)
"knI" = (
-/obj/item/food/snacks/donut/jelly/cherryjelly,
+/obj/item/food/donut/jelly/cherryjelly,
/obj/structure/table/reinforced,
/turf/simulated/floor/plasteel{
dir = 9;
@@ -78549,6 +78546,7 @@
/obj/structure/sign/securearea{
pixel_x = 32
},
+/obj/effect/mapping_helpers/airlock/access/all/security/brig,
/turf/simulated/floor/plating,
/area/station/maintenance/starboard2)
"mnr" = (
@@ -79410,9 +79408,7 @@
/turf/simulated/floor/plasteel,
/area/station/engineering/equipmentstorage)
"mPU" = (
-/obj/effect/spawner/airlock/s_to_n{
- req_access_txt = 32
- },
+/obj/effect/spawner/airlock/s_to_n,
/turf/simulated/wall,
/area/station/engineering/gravitygenerator)
"mQc" = (
@@ -79775,12 +79771,6 @@
icon_state = "neutral"
},
/area/station/maintenance/starboard)
-"mVF" = (
-/obj/effect/spawner/airlock/s_to_n{
- req_access_txt = 1
- },
-/turf/simulated/wall/r_wall,
-/area/station/security/permabrig)
"mWe" = (
/obj/machinery/atmospherics/unary/vent_pump/on{
dir = 4
@@ -82544,6 +82534,7 @@
icon_state = "4-8"
},
/obj/effect/turf_decal/delivery,
+/obj/effect/mapping_helpers/airlock/access/all/engineering/general,
/turf/simulated/floor/plating,
/area/station/maintenance/portsolar)
"ozw" = (
@@ -86080,6 +86071,7 @@
icon_state = "4-8"
},
/obj/effect/turf_decal/delivery,
+/obj/effect/mapping_helpers/airlock/access/all/engineering/general,
/turf/simulated/floor/plating,
/area/station/maintenance/starboardsolar)
"qFT" = (
@@ -87573,9 +87565,7 @@
/area/station/security/storage)
"rtH" = (
/obj/effect/spawner/window/reinforced/grilled,
-/obj/effect/spawner/airlock/e_to_w/engineer{
- req_access_txt = 13
- },
+/obj/effect/spawner/airlock/e_to_w,
/turf/simulated/floor/plating,
/area/station/maintenance/portsolar)
"rtU" = (
@@ -88461,7 +88451,7 @@
/obj/structure/table/reinforced,
/obj/item/folder,
/obj/item/pen,
-/obj/item/food/snacks/grown/apple,
+/obj/item/food/grown/apple,
/obj/machinery/door/window/classic/normal{
dir = 8
},
@@ -90672,6 +90662,7 @@
icon_state = "4-8"
},
/obj/effect/turf_decal/delivery,
+/obj/effect/mapping_helpers/airlock/access/all/engineering/construction,
/turf/simulated/floor/plating,
/area/station/maintenance/auxsolarport)
"sVv" = (
@@ -90707,9 +90698,7 @@
},
/area/station/hallway/primary/central/north)
"sWx" = (
-/obj/effect/spawner/airlock/e_to_w/engineer{
- req_access_txt = "11,13"
- },
+/obj/effect/spawner/airlock/w_to_e,
/turf/simulated/wall,
/area/station/engineering/ai_transit_tube)
"sWI" = (
@@ -91124,6 +91113,7 @@
/area/station/medical/morgue)
"tls" = (
/obj/effect/turf_decal/delivery/hollow,
+/obj/effect/mapping_helpers/airlock/access/all/engineering/construction,
/turf/simulated/floor/plasteel,
/area/station/engineering/gravitygenerator)
"tlz" = (
@@ -92602,9 +92592,7 @@
/area/station/service/chapel/office)
"uci" = (
/obj/effect/spawner/window/reinforced/grilled,
-/obj/effect/spawner/airlock/s_to_n{
- req_access_txt = null
- },
+/obj/effect/spawner/airlock/s_to_n,
/turf/simulated/floor/plating,
/area/station/hallway/secondary/entry/west)
"ucl" = (
@@ -92653,9 +92641,7 @@
/area/station/medical/cloning)
"udZ" = (
/obj/effect/spawner/window/reinforced/grilled,
-/obj/effect/spawner/airlock/w_to_e/engineer{
- req_access_txt = 13
- },
+/obj/effect/spawner/airlock/w_to_e,
/turf/simulated/floor/plating,
/area/station/maintenance/starboardsolar)
"uec" = (
@@ -94612,9 +94598,9 @@
/obj/item/seeds/lime,
/obj/item/seeds/watermelon,
/obj/item/seeds/grape,
-/obj/item/food/snacks/grown/wheat,
-/obj/item/food/snacks/grown/watermelon,
-/obj/item/food/snacks/grown/banana,
+/obj/item/food/grown/wheat,
+/obj/item/food/grown/watermelon,
+/obj/item/food/grown/banana,
/obj/machinery/door/window/classic/reversed{
dir = 8
},
@@ -94838,6 +94824,7 @@
icon_state = "4-8"
},
/obj/effect/turf_decal/delivery,
+/obj/effect/mapping_helpers/airlock/access/all/engineering/general,
/turf/simulated/floor/plating,
/area/station/maintenance/auxsolarstarboard)
"vzs" = (
@@ -97578,9 +97565,7 @@
},
/area/station/maintenance/fsmaint)
"wZD" = (
-/obj/effect/spawner/airlock/e_to_w/engineer{
- req_access_txt = 13
- },
+/obj/effect/spawner/airlock/e_to_w,
/turf/simulated/wall,
/area/station/maintenance/port)
"wZK" = (
@@ -119597,7 +119582,7 @@ cTi
hkk
aaa
cHA
-cCq
+drw
cHA
aaa
aaa
@@ -136088,7 +136073,7 @@ dMW
dJx
mrY
dRv
-dPL
+lKc
lKc
dSi
dTs
@@ -157311,7 +157296,7 @@ ygH
ygH
ygH
ygH
-mVF
+hzm
bda
aTM
bdf
diff --git a/_maps/map_files/stations/metastation.dmm b/_maps/map_files/stations/metastation.dmm
index 7f4a35c6a661..1418a5a502fa 100644
--- a/_maps/map_files/stations/metastation.dmm
+++ b/_maps/map_files/stations/metastation.dmm
@@ -182,7 +182,7 @@
/area/station/science/toxins/mixing)
"adc" = (
/obj/structure/closet/secure_closet/clown,
-/obj/item/food/snacks/pie,
+/obj/item/food/pie,
/turf/simulated/floor/wood,
/area/station/service/clown)
"adi" = (
@@ -3952,7 +3952,7 @@
/area/station/maintenance/fore)
"axH" = (
/obj/structure/flora/ausbushes/lavendergrass,
-/obj/item/food/snacks/grown/banana,
+/obj/item/food/grown/banana,
/turf/simulated/floor/grass/no_creep,
/area/station/medical/virology)
"axM" = (
@@ -19337,7 +19337,7 @@
/area/station/hallway/secondary/entry/lounge)
"btq" = (
/obj/structure/table/wood,
-/obj/item/food/snacks/chips,
+/obj/item/food/chips,
/turf/simulated/floor/plasteel{
icon_state = "grimy"
},
@@ -32187,7 +32187,7 @@
},
/area/station/science/rnd)
"clv" = (
-/obj/item/food/snacks/monkeycube,
+/obj/item/food/monkeycube,
/obj/structure/rack,
/obj/effect/spawner/lootdrop/maintenance,
/turf/simulated/floor/plating,
@@ -32475,6 +32475,7 @@
icon_state = "1-2"
},
/obj/effect/turf_decal/stripes/line,
+/obj/effect/mapping_helpers/airlock/access/all/engineering/general,
/turf/simulated/floor/plating,
/area/station/maintenance/starboardsolar)
"cmK" = (
@@ -33087,6 +33088,7 @@
/obj/effect/turf_decal/stripes/line{
dir = 8
},
+/obj/effect/mapping_helpers/airlock/access/all/engineering/general,
/turf/simulated/floor/plating,
/area/station/maintenance/portsolar)
"cpq" = (
@@ -33259,7 +33261,7 @@
},
/obj/structure/flora/ausbushes/sparsegrass,
/obj/structure/flora/ausbushes/ywflowers,
-/obj/item/food/snacks/grown/banana,
+/obj/item/food/grown/banana,
/obj/machinery/atmospherics/unary/vent_scrubber/on{
dir = 1
},
@@ -36333,11 +36335,11 @@
dir = 1
},
/obj/structure/table/wood,
-/obj/item/food/snacks/grown/poppy,
-/obj/item/food/snacks/grown/poppy,
-/obj/item/food/snacks/grown/poppy,
-/obj/item/food/snacks/grown/poppy,
-/obj/item/food/snacks/grown/poppy,
+/obj/item/food/grown/poppy,
+/obj/item/food/grown/poppy,
+/obj/item/food/grown/poppy,
+/obj/item/food/grown/poppy,
+/obj/item/food/grown/poppy,
/turf/simulated/floor/carpet,
/area/station/service/chapel)
"cCu" = (
@@ -37487,7 +37489,7 @@
dir = 4
},
/obj/structure/table/wood,
-/obj/item/food/snacks/grown/harebell,
+/obj/item/food/grown/harebell,
/turf/simulated/floor/plasteel{
icon_state = "darkgrey"
},
@@ -38267,7 +38269,7 @@
/obj/machinery/light/small{
dir = 1
},
-/obj/item/food/snacks/grown/harebell,
+/obj/item/food/grown/harebell,
/turf/simulated/floor/plasteel{
icon_state = "cult"
},
@@ -39571,6 +39573,7 @@
/obj/structure/sign/vacuum/external{
pixel_y = 32
},
+/obj/effect/mapping_helpers/airlock/access/all/engineering/external,
/turf/simulated/floor/plating,
/area/station/maintenance/apmaint)
"cOG" = (
@@ -40584,11 +40587,11 @@
/area/station/maintenance/apmaint)
"cSR" = (
/obj/structure/table/wood,
-/obj/item/food/snacks/grown/poppy,
-/obj/item/food/snacks/grown/poppy,
-/obj/item/food/snacks/grown/poppy,
-/obj/item/food/snacks/grown/poppy,
-/obj/item/food/snacks/grown/poppy,
+/obj/item/food/grown/poppy,
+/obj/item/food/grown/poppy,
+/obj/item/food/grown/poppy,
+/obj/item/food/grown/poppy,
+/obj/item/food/grown/poppy,
/turf/simulated/floor/plasteel{
icon_state = "darkgrey"
},
@@ -42172,6 +42175,7 @@
/obj/effect/turf_decal/stripes/line{
dir = 4
},
+/obj/effect/mapping_helpers/airlock/access/all/engineering/general,
/turf/simulated/floor/plating,
/area/station/maintenance/asmaint)
"das" = (
@@ -43838,7 +43842,7 @@
name = "Kitchen Counter Shutters"
},
/obj/effect/mapping_helpers/airlock/windoor/access/all/service/kitchen,
-/obj/item/food/snacks/pie,
+/obj/item/food/pie,
/turf/simulated/floor/plasteel{
icon_state = "cafeteria"
},
@@ -45123,7 +45127,7 @@
/area/station/maintenance/starboardsolar)
"dUF" = (
/obj/effect/spawner/window/reinforced/grilled,
-/obj/effect/spawner/airlock/e_to_w/arrivals,
+/obj/effect/spawner/airlock/e_to_w,
/turf/simulated/floor/plating,
/area/station/hallway/secondary/entry/north)
"dUG" = (
@@ -48447,6 +48451,7 @@
/obj/structure/sign/vacuum/external{
pixel_x = 32
},
+/obj/effect/mapping_helpers/airlock/access/all/engineering/general,
/turf/simulated/floor/plating,
/area/station/maintenance/aft2)
"fpR" = (
@@ -54485,11 +54490,11 @@
/area/station/turret_protected/ai)
"hLT" = (
/obj/structure/table/wood,
-/obj/item/food/snacks/grown/harebell,
-/obj/item/food/snacks/grown/harebell,
-/obj/item/food/snacks/grown/harebell,
-/obj/item/food/snacks/grown/harebell,
-/obj/item/food/snacks/grown/harebell,
+/obj/item/food/grown/harebell,
+/obj/item/food/grown/harebell,
+/obj/item/food/grown/harebell,
+/obj/item/food/grown/harebell,
+/obj/item/food/grown/harebell,
/turf/simulated/floor/plasteel{
icon_state = "darkgrey"
},
@@ -63073,15 +63078,15 @@
"lpp" = (
/obj/structure/table/reinforced,
/obj/structure/window/reinforced,
-/obj/item/food/snacks/muffin{
+/obj/item/food/muffin{
pixel_x = -4;
pixel_y = 8
},
-/obj/item/food/snacks/carrotcakeslice{
+/obj/item/food/carrotcakeslice{
pixel_x = 8;
pixel_y = -2
},
-/obj/item/food/snacks/poppypretzel{
+/obj/item/food/poppypretzel{
pixel_x = -8;
pixel_y = -3
},
@@ -66916,6 +66921,7 @@
/obj/effect/turf_decal/stripes/line{
dir = 1
},
+/obj/effect/mapping_helpers/airlock/access/all/engineering/general,
/turf/simulated/floor/plating,
/area/station/maintenance/auxsolarstarboard)
"mVB" = (
@@ -75244,13 +75250,13 @@
"qvp" = (
/obj/structure/closet/crate,
/obj/effect/decal/cleanable/dirt,
-/obj/item/food/snacks/breadslice,
-/obj/item/food/snacks/breadslice,
-/obj/item/food/snacks/breadslice,
-/obj/item/food/snacks/grown/potato,
-/obj/item/food/snacks/grown/potato,
-/obj/item/food/snacks/grown/onion,
-/obj/item/food/snacks/grown/onion,
+/obj/item/food/breadslice,
+/obj/item/food/breadslice,
+/obj/item/food/breadslice,
+/obj/item/food/grown/potato,
+/obj/item/food/grown/potato,
+/obj/item/food/grown/onion,
+/obj/item/food/grown/onion,
/obj/item/storage/box/donkpockets,
/obj/effect/turf_decal/tile/red,
/obj/effect/turf_decal/tile/red{
@@ -77634,7 +77640,7 @@
/area/station/engineering/engine/supermatter)
"rwj" = (
/obj/structure/safe/floor,
-/obj/item/food/snacks/fortunecookie,
+/obj/item/food/fortunecookie,
/turf/simulated/floor/plating,
/area/station/maintenance/fpmaint)
"rwk" = (
@@ -86969,7 +86975,7 @@
/area/station/engineering/atmos)
"vwA" = (
/obj/structure/table/glass,
-/obj/item/food/snacks/chips{
+/obj/item/food/chips{
pixel_x = 8
},
/obj/item/reagent_containers/drinks/cans/thirteenloko{
@@ -92289,6 +92295,7 @@
/obj/structure/sign/vacuum/external{
pixel_y = 32
},
+/obj/effect/mapping_helpers/airlock/access/all/engineering/general,
/turf/simulated/floor/plating,
/area/station/maintenance/fsmaint)
"xRO" = (
diff --git a/_maps/map_files220/RandomRuins/LavaRuins/cheesus_temple.dmm b/_maps/map_files220/RandomRuins/LavaRuins/cheesus_temple.dmm
index 0f700ff260b2..ecb936890f4f 100644
--- a/_maps/map_files220/RandomRuins/LavaRuins/cheesus_temple.dmm
+++ b/_maps/map_files220/RandomRuins/LavaRuins/cheesus_temple.dmm
@@ -95,7 +95,7 @@
/obj/effect/turf_decal/siding/yellow{
dir = 9
},
-/obj/item/food/snacks/sliceable/cheesecake,
+/obj/item/food/sliceable/cheesecake,
/turf/simulated/floor/wood/fancy/oak,
/area/ruin/powered/cheesus)
"gV" = (
@@ -227,7 +227,7 @@
/obj/effect/turf_decal/siding/yellow{
dir = 6
},
-/obj/item/food/snacks/macncheese{
+/obj/item/food/macncheese{
pixel_y = 7
},
/turf/simulated/floor/wood/fancy/oak,
@@ -374,7 +374,7 @@
"Hh" = (
/obj/structure/table/wood,
/obj/effect/spawner/random_spawners/dirt_maybe,
-/obj/item/food/snacks/vulpix/cheese{
+/obj/item/food/vulpix/cheese{
pixel_y = 6;
pixel_x = -9
},
@@ -497,7 +497,7 @@
dir = 5
},
/obj/effect/spawner/random_spawners/dirt_maybe,
-/obj/item/food/snacks/sliceable/cheesewheel,
+/obj/item/food/sliceable/cheesewheel,
/turf/simulated/floor/wood/fancy/oak,
/area/ruin/powered/cheesus)
"ZK" = (
diff --git a/_maps/map_files220/RandomRuins/SpaceRuins/convoy_ambush.dmm b/_maps/map_files220/RandomRuins/SpaceRuins/convoy_ambush.dmm
index 0117bc6defe7..363a7d61a31b 100644
--- a/_maps/map_files220/RandomRuins/SpaceRuins/convoy_ambush.dmm
+++ b/_maps/map_files220/RandomRuins/SpaceRuins/convoy_ambush.dmm
@@ -732,9 +732,9 @@
/obj/machinery/light/small/directional/east,
/obj/effect/turf_decal/delivery/white,
/obj/structure/closet/cardboard,
-/obj/item/food/snacks/chinese/chowmein,
-/obj/item/food/snacks/chinese/chowmein,
-/obj/item/food/snacks/chinese/rice,
+/obj/item/food/chinese/chowmein,
+/obj/item/food/chinese/chowmein,
+/obj/item/food/chinese/rice,
/obj/item/stack/spacecash/c20,
/obj/item/stack/spacecash/c10,
/turf/simulated/floor/plasteel/airless{
@@ -799,8 +799,8 @@
"HA" = (
/obj/effect/turf_decal/delivery/white,
/obj/structure/closet/cardboard,
-/obj/item/food/snacks/chinese/rice,
-/obj/item/food/snacks/chinese/chowmein,
+/obj/item/food/chinese/rice,
+/obj/item/food/chinese/chowmein,
/obj/item/reagent_containers/pill/methamphetamine,
/obj/item/reagent_containers/pill/methamphetamine,
/obj/item/reagent_containers/pill/methamphetamine,
@@ -1166,10 +1166,10 @@
"UE" = (
/obj/effect/turf_decal/delivery/white,
/obj/structure/closet/cardboard,
-/obj/item/food/snacks/chinese/rice,
-/obj/item/food/snacks/chinese/chowmein,
-/obj/item/food/snacks/chinese/chowmein,
-/obj/item/food/snacks/chinese/rice,
+/obj/item/food/chinese/rice,
+/obj/item/food/chinese/chowmein,
+/obj/item/food/chinese/chowmein,
+/obj/item/food/chinese/rice,
/obj/item/stack/spacecash/c100,
/turf/simulated/floor/plasteel/airless{
icon_state = "dark"
diff --git a/_maps/map_files220/RandomRuins/SpaceRuins/infected_ship.dmm b/_maps/map_files220/RandomRuins/SpaceRuins/infected_ship.dmm
index 1678e302d46d..78d97748d21d 100644
--- a/_maps/map_files220/RandomRuins/SpaceRuins/infected_ship.dmm
+++ b/_maps/map_files220/RandomRuins/SpaceRuins/infected_ship.dmm
@@ -375,7 +375,7 @@
name = "microwave";
pixel_y = 9
},
-/obj/item/food/snacks/syndidonkpocket{
+/obj/item/food/syndidonkpocket{
pixel_x = -7
},
/turf/simulated/floor/plasteel{
@@ -832,8 +832,8 @@
/area/ruin/space/powered/requires_power_space)
"sj" = (
/obj/structure/closet/crate/freezer,
-/obj/item/food/snacks/meat/corgi,
-/obj/item/food/snacks/meat/corgi,
+/obj/item/food/meat/corgi,
+/obj/item/food/meat/corgi,
/obj/effect/spawner/random_spawners/dirt_often,
/turf/simulated/floor/plasteel/freezer,
/area/ruin/space/powered/requires_power_space)
@@ -1232,7 +1232,7 @@
"Ge" = (
/obj/structure/table/wood,
/obj/item/trash/plate,
-/obj/item/food/snacks/syndidonkpocket{
+/obj/item/food/syndidonkpocket{
pixel_y = 14;
pixel_x = 6
},
diff --git a/_maps/map_files220/RandomRuins/SpaceRuins/mechtransport_new.dmm b/_maps/map_files220/RandomRuins/SpaceRuins/mechtransport_new.dmm
index 83e2d7866bd7..a8f6f7470443 100644
--- a/_maps/map_files220/RandomRuins/SpaceRuins/mechtransport_new.dmm
+++ b/_maps/map_files220/RandomRuins/SpaceRuins/mechtransport_new.dmm
@@ -2348,17 +2348,17 @@
"VB" = (
/obj/effect/turf_decal/delivery,
/obj/structure/closet/cardboard,
-/obj/item/food/snacks/baguette,
-/obj/item/food/snacks/baguette,
-/obj/item/food/snacks/beans,
-/obj/item/food/snacks/beans,
-/obj/item/food/snacks/beans,
-/obj/item/food/snacks/beans,
-/obj/effect/decal/cleanable/dirt,
-/obj/item/food/snacks/candy/candybar,
-/obj/item/food/snacks/candy/candybar,
-/obj/item/food/snacks/candy/candybar,
-/obj/item/food/snacks/candy/taffy,
+/obj/item/food/baguette,
+/obj/item/food/baguette,
+/obj/item/food/beans,
+/obj/item/food/beans,
+/obj/item/food/beans,
+/obj/item/food/beans,
+/obj/effect/decal/cleanable/dirt,
+/obj/item/food/candy/candybar,
+/obj/item/food/candy/candybar,
+/obj/item/food/candy/candybar,
+/obj/item/food/candy/taffy,
/turf/simulated/floor/mineral/titanium,
/area/ruin/space/powered)
"VF" = (
diff --git a/_maps/map_files220/RandomRuins/SpaceRuins/spacehotel.dmm b/_maps/map_files220/RandomRuins/SpaceRuins/spacehotel.dmm
index 52e4491b0d92..16a961d77583 100644
--- a/_maps/map_files220/RandomRuins/SpaceRuins/spacehotel.dmm
+++ b/_maps/map_files220/RandomRuins/SpaceRuins/spacehotel.dmm
@@ -430,27 +430,27 @@
/obj/effect/turf_decal/delivery,
/obj/structure/closet/crate/freezer,
/obj/item/storage/box/monkeycubes,
-/obj/item/food/snacks/grown/carrot,
-/obj/item/food/snacks/grown/carrot,
-/obj/item/food/snacks/grown/carrot,
-/obj/item/food/snacks/grown/carrot,
-/obj/item/food/snacks/grown/carrot,
-/obj/item/food/snacks/grown/carrot,
-/obj/item/food/snacks/grown/tomato,
-/obj/item/food/snacks/grown/tomato,
-/obj/item/food/snacks/grown/tomato,
-/obj/item/food/snacks/grown/tomato,
-/obj/item/food/snacks/grown/tomato,
-/obj/item/food/snacks/grown/wheat,
-/obj/item/food/snacks/grown/wheat,
-/obj/item/food/snacks/grown/wheat,
-/obj/item/food/snacks/grown/wheat,
-/obj/item/food/snacks/grown/wheat,
-/obj/item/food/snacks/grown/wheat,
-/obj/item/food/snacks/grown/potato,
-/obj/item/food/snacks/grown/potato,
-/obj/item/food/snacks/grown/potato,
-/obj/item/food/snacks/grown/potato,
+/obj/item/food/grown/carrot,
+/obj/item/food/grown/carrot,
+/obj/item/food/grown/carrot,
+/obj/item/food/grown/carrot,
+/obj/item/food/grown/carrot,
+/obj/item/food/grown/carrot,
+/obj/item/food/grown/tomato,
+/obj/item/food/grown/tomato,
+/obj/item/food/grown/tomato,
+/obj/item/food/grown/tomato,
+/obj/item/food/grown/tomato,
+/obj/item/food/grown/wheat,
+/obj/item/food/grown/wheat,
+/obj/item/food/grown/wheat,
+/obj/item/food/grown/wheat,
+/obj/item/food/grown/wheat,
+/obj/item/food/grown/wheat,
+/obj/item/food/grown/potato,
+/obj/item/food/grown/potato,
+/obj/item/food/grown/potato,
+/obj/item/food/grown/potato,
/turf/simulated/floor/plating,
/area/ruin/space/spacehotelv1/cargostorage)
"do" = (
@@ -1603,30 +1603,30 @@
dir = 8
},
/obj/structure/closet/secure_closet/freezer/fridge,
-/obj/item/food/snacks/grown/meatwheat,
-/obj/item/food/snacks/grown/meatwheat,
-/obj/item/food/snacks/grown/meatwheat,
-/obj/item/food/snacks/grown/wheat,
-/obj/item/food/snacks/grown/wheat,
-/obj/item/food/snacks/grown/wheat,
-/obj/item/food/snacks/grown/tomato,
-/obj/item/food/snacks/grown/tomato,
-/obj/item/food/snacks/grown/tomato,
-/obj/item/food/snacks/grown/tomato,
-/obj/item/food/snacks/grown/whitebeet,
-/obj/item/food/snacks/grown/whitebeet,
-/obj/item/food/snacks/grown/whitebeet,
-/obj/item/food/snacks/grown/redbeet,
-/obj/item/food/snacks/grown/redbeet,
-/obj/item/food/snacks/grown/redbeet,
-/obj/item/food/snacks/grown/potato,
-/obj/item/food/snacks/grown/potato,
-/obj/item/food/snacks/grown/potato,
-/obj/item/food/snacks/grown/potato,
-/obj/item/food/snacks/grown/rice,
-/obj/item/food/snacks/grown/rice,
-/obj/item/food/snacks/grown/rice,
-/obj/item/food/snacks/grown/rice,
+/obj/item/food/grown/meatwheat,
+/obj/item/food/grown/meatwheat,
+/obj/item/food/grown/meatwheat,
+/obj/item/food/grown/wheat,
+/obj/item/food/grown/wheat,
+/obj/item/food/grown/wheat,
+/obj/item/food/grown/tomato,
+/obj/item/food/grown/tomato,
+/obj/item/food/grown/tomato,
+/obj/item/food/grown/tomato,
+/obj/item/food/grown/whitebeet,
+/obj/item/food/grown/whitebeet,
+/obj/item/food/grown/whitebeet,
+/obj/item/food/grown/redbeet,
+/obj/item/food/grown/redbeet,
+/obj/item/food/grown/redbeet,
+/obj/item/food/grown/potato,
+/obj/item/food/grown/potato,
+/obj/item/food/grown/potato,
+/obj/item/food/grown/potato,
+/obj/item/food/grown/rice,
+/obj/item/food/grown/rice,
+/obj/item/food/grown/rice,
+/obj/item/food/grown/rice,
/obj/item/reagent_containers/condiment/milk,
/obj/item/reagent_containers/condiment/milk,
/obj/item/reagent_containers/condiment/milk,
@@ -2819,7 +2819,7 @@
/area/ruin/space/spacehotelv1/reception)
"uu" = (
/obj/structure/table,
-/obj/item/food/snacks/meatballspaghetti,
+/obj/item/food/meatballspaghetti,
/obj/item/kitchen/utensil/fork,
/turf/simulated/floor/plating,
/area/ruin/space/spacehotelv1/forestarboardmaints)
@@ -6660,31 +6660,31 @@
/area/ruin/space/spacehotelv1/engi2)
"VM" = (
/obj/structure/closet/crate/freezer,
-/obj/item/food/snacks/salmonmeat,
-/obj/item/food/snacks/salmonmeat,
-/obj/item/food/snacks/salmonmeat,
-/obj/item/food/snacks/salmonmeat,
-/obj/item/food/snacks/carpmeat,
-/obj/item/food/snacks/carpmeat,
-/obj/item/food/snacks/carpmeat,
-/obj/item/food/snacks/carpmeat,
-/obj/item/food/snacks/cutlet,
-/obj/item/food/snacks/cutlet,
-/obj/item/food/snacks/cutlet,
-/obj/item/food/snacks/cutlet,
-/obj/item/food/snacks/cutlet,
-/obj/item/food/snacks/rawcutlet,
-/obj/item/food/snacks/rawcutlet,
-/obj/item/food/snacks/rawcutlet,
-/obj/item/food/snacks/rawcutlet,
-/obj/item/food/snacks/rawcutlet,
-/obj/item/food/snacks/sausage,
-/obj/item/food/snacks/sausage,
-/obj/item/food/snacks/sausage,
-/obj/item/food/snacks/sausage,
-/obj/item/food/snacks/smokedsausage,
-/obj/item/food/snacks/smokedsausage,
-/obj/item/food/snacks/smokedsausage,
+/obj/item/food/salmonmeat,
+/obj/item/food/salmonmeat,
+/obj/item/food/salmonmeat,
+/obj/item/food/salmonmeat,
+/obj/item/food/carpmeat,
+/obj/item/food/carpmeat,
+/obj/item/food/carpmeat,
+/obj/item/food/carpmeat,
+/obj/item/food/cutlet,
+/obj/item/food/cutlet,
+/obj/item/food/cutlet,
+/obj/item/food/cutlet,
+/obj/item/food/cutlet,
+/obj/item/food/rawcutlet,
+/obj/item/food/rawcutlet,
+/obj/item/food/rawcutlet,
+/obj/item/food/rawcutlet,
+/obj/item/food/rawcutlet,
+/obj/item/food/sausage,
+/obj/item/food/sausage,
+/obj/item/food/sausage,
+/obj/item/food/sausage,
+/obj/item/food/smokedsausage,
+/obj/item/food/smokedsausage,
+/obj/item/food/smokedsausage,
/obj/item/fish/salmon,
/obj/item/fish/salmon,
/obj/item/fish/salmon,
diff --git a/_maps/map_files220/RandomRuins/SpaceRuins/voxraiders_1.dmm b/_maps/map_files220/RandomRuins/SpaceRuins/voxraiders_1.dmm
index be024cbd1225..db4ff7a72d6b 100644
--- a/_maps/map_files220/RandomRuins/SpaceRuins/voxraiders_1.dmm
+++ b/_maps/map_files220/RandomRuins/SpaceRuins/voxraiders_1.dmm
@@ -535,7 +535,7 @@
pixel_x = 8
},
/obj/item/toy/plushie/voxplushie,
-/obj/item/food/snacks/cheesepizzaslice{
+/obj/item/food/cheesepizzaslice{
pixel_y = -2;
pixel_x = -7
},
diff --git a/_maps/map_files220/RandomRuins/SpaceRuins/whiteship.dmm b/_maps/map_files220/RandomRuins/SpaceRuins/whiteship.dmm
index a0185e2a7ae5..038949b91968 100644
--- a/_maps/map_files220/RandomRuins/SpaceRuins/whiteship.dmm
+++ b/_maps/map_files220/RandomRuins/SpaceRuins/whiteship.dmm
@@ -76,10 +76,10 @@
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
dir = 8
},
-/obj/effect/decal/cleanable/blood/tracks{
+/obj/effect/decal/cleanable/blood/tracks/mapped{
dir = 4
},
-/obj/effect/decal/cleanable/blood/tracks{
+/obj/effect/decal/cleanable/blood/tracks/mapped{
dir = 8
},
/turf/simulated/floor/plasteel{
@@ -205,10 +205,10 @@
/area/shuttle/abandoned)
"dy" = (
/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/blood/tracks{
+/obj/effect/decal/cleanable/blood/tracks/mapped{
dir = 4
},
-/obj/effect/decal/cleanable/blood/tracks{
+/obj/effect/decal/cleanable/blood/tracks/mapped{
dir = 8
},
/obj/structure/barricade/wooden,
@@ -251,10 +251,10 @@
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
dir = 8
},
-/obj/effect/decal/cleanable/blood/tracks{
+/obj/effect/decal/cleanable/blood/tracks/mapped{
dir = 4
},
-/obj/effect/decal/cleanable/blood/tracks{
+/obj/effect/decal/cleanable/blood/tracks/mapped{
dir = 8
},
/mob/living/simple_animal/hostile/undead/zombie/fast,
@@ -294,10 +294,10 @@
dir = 8
},
/obj/effect/decal/cleanable/blood/drip,
-/obj/effect/decal/cleanable/blood/tracks{
+/obj/effect/decal/cleanable/blood/tracks/mapped{
dir = 4
},
-/obj/effect/decal/cleanable/blood/tracks{
+/obj/effect/decal/cleanable/blood/tracks/mapped{
dir = 8
},
/turf/simulated/floor/plasteel{
@@ -433,7 +433,7 @@
dir = 1
},
/obj/machinery/atmospherics/pipe/simple/hidden/supply,
-/obj/effect/decal/cleanable/blood/tracks,
+/obj/effect/decal/cleanable/blood/tracks/mapped,
/obj/effect/decal/cleanable/blood/drip,
/turf/simulated/floor/plasteel{
dir = 1;
@@ -526,7 +526,7 @@
dir = 1
},
/obj/machinery/atmospherics/pipe/simple/hidden/supply,
-/obj/effect/decal/cleanable/blood/tracks,
+/obj/effect/decal/cleanable/blood/tracks/mapped,
/turf/simulated/floor/plasteel{
dir = 1;
icon_state = "dark"
@@ -547,7 +547,7 @@
dir = 8
},
/obj/effect/decal/cleanable/blood/drip,
-/obj/effect/decal/cleanable/blood/tracks{
+/obj/effect/decal/cleanable/blood/tracks/mapped{
pixel_y = -19
},
/turf/simulated/floor/plasteel{
@@ -618,7 +618,7 @@
/obj/structure/fans/tiny,
/obj/item/tank/internals/emergency_oxygen/empty,
/obj/effect/decal/cleanable/blood/drip,
-/obj/effect/decal/cleanable/blood/tracks,
+/obj/effect/decal/cleanable/blood/tracks/mapped,
/obj/effect/decal/remains/human{
desc = "This guy seemed to have died in terrible way! Half his remains are dust.";
name = "gnawed bones"
@@ -686,7 +686,7 @@
desc = "This guy seemed to have died in terrible way! Half his remains are dust.";
name = "gnawed bones"
},
-/obj/effect/decal/cleanable/blood/tracks{
+/obj/effect/decal/cleanable/blood/tracks/mapped{
dir = 8
},
/obj/effect/decal/cleanable/blood,
@@ -710,10 +710,10 @@
dir = 4
},
/obj/effect/decal/cleanable/blood/drip,
-/obj/effect/decal/cleanable/blood/tracks{
+/obj/effect/decal/cleanable/blood/tracks/mapped{
dir = 4
},
-/obj/effect/decal/cleanable/blood/tracks{
+/obj/effect/decal/cleanable/blood/tracks/mapped{
dir = 8
},
/turf/simulated/floor/plasteel{
@@ -729,10 +729,10 @@
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
dir = 8
},
-/obj/effect/decal/cleanable/blood/tracks{
+/obj/effect/decal/cleanable/blood/tracks/mapped{
dir = 4
},
-/obj/effect/decal/cleanable/blood/tracks{
+/obj/effect/decal/cleanable/blood/tracks/mapped{
dir = 8
},
/obj/item/clothing/shoes/blue,
@@ -1243,7 +1243,7 @@
},
/area/shuttle/abandoned)
"Ep" = (
-/obj/effect/decal/cleanable/blood/tracks,
+/obj/effect/decal/cleanable/blood/tracks/mapped,
/obj/machinery/door/airlock/medical/glass,
/turf/simulated/floor/plasteel{
icon_state = "whitebluefull"
@@ -1390,10 +1390,10 @@
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
dir = 6
},
-/obj/effect/decal/cleanable/blood/tracks{
+/obj/effect/decal/cleanable/blood/tracks/mapped{
dir = 4
},
-/obj/effect/decal/cleanable/blood/tracks{
+/obj/effect/decal/cleanable/blood/tracks/mapped{
dir = 8
},
/turf/simulated/floor/plasteel{
@@ -1488,7 +1488,7 @@
},
/obj/item/clothing/accessory/stethoscope,
/obj/item/flashlight/pen,
-/obj/item/food/snacks/grown/apple{
+/obj/item/food/grown/apple{
desc = "An apple a day - keeps doctor away...";
pixel_x = 2;
pixel_y = 6
@@ -1523,10 +1523,10 @@
/area/shuttle/abandoned)
"Ll" = (
/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/blood/tracks{
+/obj/effect/decal/cleanable/blood/tracks/mapped{
dir = 4
},
-/obj/effect/decal/cleanable/blood/tracks{
+/obj/effect/decal/cleanable/blood/tracks/mapped{
dir = 8
},
/turf/simulated/floor/plasteel,
@@ -1744,7 +1744,7 @@
locked = 1;
name = "External Airlock"
},
-/obj/effect/decal/cleanable/blood/tracks,
+/obj/effect/decal/cleanable/blood/tracks/mapped,
/turf/simulated/floor/mineral/titanium,
/area/shuttle/abandoned)
"Qz" = (
@@ -1777,7 +1777,7 @@
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
dir = 8
},
-/obj/effect/decal/cleanable/blood/tracks{
+/obj/effect/decal/cleanable/blood/tracks/mapped{
dir = 8
},
/obj/machinery/door/airlock/medical,
@@ -1834,7 +1834,7 @@
name = "External Airlock"
},
/obj/effect/decal/cleanable/blood/drip,
-/obj/effect/decal/cleanable/blood/tracks,
+/obj/effect/decal/cleanable/blood/tracks/mapped,
/turf/simulated/floor/mineral/titanium,
/area/shuttle/abandoned)
"RU" = (
@@ -1853,7 +1853,7 @@
initialize_directions = 11
},
/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/blood/tracks{
+/obj/effect/decal/cleanable/blood/tracks/mapped{
dir = 8
},
/turf/simulated/floor/plasteel{
@@ -1964,7 +1964,7 @@
},
/area/shuttle/abandoned)
"Uy" = (
-/obj/effect/decal/cleanable/blood/tracks,
+/obj/effect/decal/cleanable/blood/tracks/mapped,
/obj/effect/decal/cleanable/dirt,
/turf/simulated/floor/plasteel{
icon_state = "whitebluefull"
@@ -1978,10 +1978,10 @@
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
dir = 8
},
-/obj/effect/decal/cleanable/blood/tracks{
+/obj/effect/decal/cleanable/blood/tracks/mapped{
dir = 4
},
-/obj/effect/decal/cleanable/blood/tracks{
+/obj/effect/decal/cleanable/blood/tracks/mapped{
dir = 8
},
/turf/simulated/floor/plasteel{
@@ -2018,7 +2018,7 @@
dir = 8
},
/obj/item/soap,
-/obj/effect/decal/cleanable/blood/tracks{
+/obj/effect/decal/cleanable/blood/tracks/mapped{
dir = 4
},
/turf/simulated/floor/plasteel{
diff --git a/_maps/map_files220/RandomZLevels/beach.dmm b/_maps/map_files220/RandomZLevels/beach.dmm
index 5678c3ace21e..4c3a116705f9 100644
--- a/_maps/map_files220/RandomZLevels/beach.dmm
+++ b/_maps/map_files220/RandomZLevels/beach.dmm
@@ -1235,7 +1235,7 @@
"pm" = (
/obj/item/storage/bag/tray,
/obj/effect/turf_decal/stripes/red/box,
-/obj/item/food/snacks/grown/watermelon{
+/obj/item/food/grown/watermelon{
pixel_y = 2;
pixel_x = 1
},
@@ -1575,16 +1575,16 @@
/area/awaymission/beach)
"va" = (
/obj/structure/closet/secure_closet/freezer/fridge/open,
-/obj/item/food/snacks/catfishmeat,
-/obj/item/food/snacks/catfishmeat,
-/obj/item/food/snacks/catfishmeat,
-/obj/item/food/snacks/catfishmeat,
-/obj/item/food/snacks/catfishmeat,
-/obj/item/food/snacks/salmonmeat,
-/obj/item/food/snacks/salmonmeat,
-/obj/item/food/snacks/salmonmeat,
-/obj/item/food/snacks/salmonmeat,
-/obj/item/food/snacks/salmonmeat,
+/obj/item/food/catfishmeat,
+/obj/item/food/catfishmeat,
+/obj/item/food/catfishmeat,
+/obj/item/food/catfishmeat,
+/obj/item/food/catfishmeat,
+/obj/item/food/salmonmeat,
+/obj/item/food/salmonmeat,
+/obj/item/food/salmonmeat,
+/obj/item/food/salmonmeat,
+/obj/item/food/salmonmeat,
/turf/simulated/floor/wood/fancy/cherry,
/area/awaymission/beach)
"vq" = (
@@ -1617,7 +1617,7 @@
pixel_x = -6;
pixel_y = -5
},
-/obj/item/food/snacks/donut{
+/obj/item/food/donut{
pixel_x = 13
},
/obj/item/folder/blue{
@@ -2144,11 +2144,11 @@
/area/awaymission/beach)
"Cf" = (
/obj/structure/table/wood,
-/obj/item/food/snacks/grown/watermelon{
+/obj/item/food/grown/watermelon{
pixel_y = 8;
pixel_x = 5
},
-/obj/item/food/snacks/grown/watermelon{
+/obj/item/food/grown/watermelon{
pixel_y = 3;
pixel_x = -3
},
@@ -2499,7 +2499,7 @@
pixel_y = 10;
pixel_x = 11
},
-/obj/item/food/snacks/donut/sprinkles{
+/obj/item/food/donut/sprinkles{
pixel_x = -8;
pixel_y = 4
},
@@ -2869,15 +2869,15 @@
/area/awaymission/beach)
"KK" = (
/obj/structure/table/wood/fancy/orange,
-/obj/item/food/snacks/grown/banana{
+/obj/item/food/grown/banana{
pixel_y = 8;
pixel_x = -4
},
-/obj/item/food/snacks/grown/banana{
+/obj/item/food/grown/banana{
pixel_y = 6;
pixel_x = -1
},
-/obj/item/food/snacks/grown/banana{
+/obj/item/food/grown/banana{
pixel_y = 4;
pixel_x = 3
},
@@ -2937,9 +2937,9 @@
/obj/item/reagent_containers/condiment/flour,
/obj/item/reagent_containers/condiment/rice,
/obj/item/reagent_containers/condiment/rice,
-/obj/item/food/snacks/grown/banana,
-/obj/item/food/snacks/grown/banana,
-/obj/item/food/snacks/grown/banana,
+/obj/item/food/grown/banana,
+/obj/item/food/grown/banana,
+/obj/item/food/grown/banana,
/turf/simulated/floor/beach/away/sand_alternative,
/area/awaymission/beach)
"LM" = (
@@ -3871,12 +3871,12 @@
/area/awaymission/beach)
"XW" = (
/obj/structure/closet/crate/freezer,
-/obj/item/food/snacks/meat,
-/obj/item/food/snacks/meat,
-/obj/item/food/snacks/meat,
-/obj/item/food/snacks/salmonmeat,
-/obj/item/food/snacks/salmonmeat,
-/obj/item/food/snacks/salmonmeat,
+/obj/item/food/meat,
+/obj/item/food/meat,
+/obj/item/food/meat,
+/obj/item/food/salmonmeat,
+/obj/item/food/salmonmeat,
+/obj/item/food/salmonmeat,
/turf/simulated/floor/beach/away/sand_alternative,
/area/awaymission/beach)
"Ya" = (
@@ -3949,11 +3949,11 @@
/area/awaymission/beach)
"Ze" = (
/obj/structure/table/wood,
-/obj/item/food/snacks/grown/watermelon{
+/obj/item/food/grown/watermelon{
pixel_y = 6;
pixel_x = 6
},
-/obj/item/food/snacks/watermelonslice{
+/obj/item/food/watermelonslice{
pixel_x = -6
},
/turf/simulated/floor/beach/away/sand_alternative,
diff --git a/_maps/map_files220/RandomZLevels/blackmarketpackers.dmm b/_maps/map_files220/RandomZLevels/blackmarketpackers.dmm
index 1553f6efec87..805cb18ea0fc 100644
--- a/_maps/map_files220/RandomZLevels/blackmarketpackers.dmm
+++ b/_maps/map_files220/RandomZLevels/blackmarketpackers.dmm
@@ -267,8 +267,8 @@
/area/awaymission/BMPship/Gate)
"bi" = (
/obj/structure/closet/crate/freezer,
-/obj/item/food/snacks/meat,
-/obj/item/food/snacks/meat,
+/obj/item/food/meat,
+/obj/item/food/meat,
/obj/effect/turf_decal/stripes/line{
dir = 1
},
@@ -423,7 +423,7 @@
icon_state = "2-8"
},
/obj/item/shard,
-/obj/effect/decal/cleanable/blood/tracks{
+/obj/effect/decal/cleanable/blood/tracks/mapped{
dir = 4
},
/turf/simulated/floor/wood/oak,
@@ -555,7 +555,7 @@
/area/awaymission/BMPship/Containment)
"bW" = (
/obj/machinery/gateway,
-/obj/effect/decal/cleanable/blood/tracks,
+/obj/effect/decal/cleanable/blood/tracks/mapped,
/turf/simulated/floor/plating,
/area/awaymission/BMPship/Gate)
"bY" = (
@@ -684,7 +684,7 @@
/obj/structure/cable{
icon_state = "1-4"
},
-/obj/effect/decal/cleanable/blood/tracks{
+/obj/effect/decal/cleanable/blood/tracks/mapped{
dir = 4
},
/obj/item/ammo_casing,
@@ -707,10 +707,10 @@
"cu" = (
/obj/effect/turf_decal/stripes/line,
/obj/structure/closet/crate/freezer,
-/obj/item/food/snacks/monstermeat/bearmeat,
-/obj/item/food/snacks/monstermeat/bearmeat,
-/obj/item/food/snacks/monstermeat/bearmeat,
-/obj/item/food/snacks/monstermeat/bearmeat,
+/obj/item/food/monstermeat/bearmeat,
+/obj/item/food/monstermeat/bearmeat,
+/obj/item/food/monstermeat/bearmeat,
+/obj/item/food/monstermeat/bearmeat,
/obj/item/clothing/gloves/furgloves,
/obj/item/clothing/head/furcap,
/obj/item/clothing/shoes/furboots,
@@ -761,7 +761,7 @@
"cB" = (
/obj/structure/alien/weeds,
/obj/effect/decal/cleanable/greenglow,
-/obj/item/food/snacks/monstermeat/spiderleg,
+/obj/item/food/monstermeat/spiderleg,
/turf/simulated/floor/plating/airless,
/area/awaymission/BMPship/Fore)
"cC" = (
@@ -816,7 +816,7 @@
"cH" = (
/obj/effect/decal/cleanable/dirt,
/obj/machinery/light_construct/small/south,
-/obj/item/food/snacks/meat,
+/obj/item/food/meat,
/obj/structure/spider/stickyweb,
/obj/structure/spider/cocoon,
/turf/simulated/floor/plating,
@@ -884,7 +884,7 @@
"cR" = (
/obj/effect/decal/cleanable/dirt,
/obj/machinery/light_construct/small/south,
-/obj/item/food/snacks/meat,
+/obj/item/food/meat,
/turf/simulated/floor/engine,
/area/awaymission/BMPship/Containment)
"cS" = (
@@ -943,8 +943,8 @@
/area/awaymission/BMPship/Fore)
"cZ" = (
/obj/structure/closet/crate/freezer,
-/obj/item/food/snacks/monstermeat/lizardmeat,
-/obj/item/food/snacks/monstermeat/lizardmeat,
+/obj/item/food/monstermeat/lizardmeat,
+/obj/item/food/monstermeat/lizardmeat,
/obj/item/stack/sheet/animalhide/lizard,
/obj/effect/spawner/lootdrop/lizardboots,
/obj/effect/decal/cleanable/dirt,
@@ -1122,8 +1122,8 @@
/area/awaymission/BMPship/Engines)
"dA" = (
/obj/structure/closet/crate/freezer,
-/obj/item/food/snacks/meat,
-/obj/item/food/snacks/meat,
+/obj/item/food/meat,
+/obj/item/food/meat,
/turf/simulated/floor/plasteel{
icon_state = "white"
},
@@ -1488,7 +1488,7 @@
"ey" = (
/obj/structure/table,
/obj/item/kitchen/knife/butcher,
-/obj/item/food/snacks/monstermeat/lizardmeat,
+/obj/item/food/monstermeat/lizardmeat,
/obj/item/trash/plate{
pixel_x = -5;
pixel_y = -1;
@@ -1614,7 +1614,7 @@
color = "yellow";
layer = 2.9
},
-/obj/item/food/snacks/grown/wheat,
+/obj/item/food/grown/wheat,
/turf/simulated/floor/grass,
/area/awaymission/BMPship/Kitchen)
"eR" = (
@@ -1866,7 +1866,7 @@
"fy" = (
/obj/structure/table,
/obj/item/storage/box/donkpockets,
-/obj/item/food/snacks/fried_vox{
+/obj/item/food/fried_vox{
pixel_x = 4;
pixel_y = 12;
layer = 2.9
@@ -2207,7 +2207,7 @@
/area/space)
"gv" = (
/obj/structure/table,
-/obj/item/food/snacks/sliceable/xenomeatbread,
+/obj/item/food/sliceable/xenomeatbread,
/obj/item/kitchen/knife,
/turf/simulated/floor/plasteel{
icon_state = "cafeteria"
@@ -2306,7 +2306,7 @@
},
/area/awaymission/BMPship/Kitchen)
"gM" = (
-/obj/item/food/snacks/hugemushroomslice,
+/obj/item/food/hugemushroomslice,
/obj/effect/decal/cleanable/dirt,
/turf/simulated/floor/plasteel,
/area/awaymission/BMPship/Kitchen)
@@ -2510,7 +2510,7 @@
icon_state = "4-8"
},
/obj/effect/decal/cleanable/greenglow,
-/obj/item/food/snacks/monstermeat/spiderleg,
+/obj/item/food/monstermeat/spiderleg,
/obj/effect/decal/cleanable/dirt,
/turf/simulated/floor/mineral/plastitanium/red,
/area/awaymission/BMPship/Containment)
@@ -2736,10 +2736,10 @@
/area/awaymission/BMPship/Kitchen)
"it" = (
/obj/structure/closet/crate/freezer,
-/obj/item/food/snacks/meat,
-/obj/item/food/snacks/hugemushroomslice,
+/obj/item/food/meat,
+/obj/item/food/hugemushroomslice,
/obj/effect/turf_decal/stripes/line,
-/obj/item/food/snacks/monstermeat/spidermeat,
+/obj/item/food/monstermeat/spidermeat,
/obj/effect/decal/cleanable/dirt,
/turf/simulated/floor/plating,
/area/awaymission/BMPship/Gate)
@@ -2923,7 +2923,7 @@
/turf/simulated/floor/plating,
/area/awaymission/BMPship/ChemLab)
"iZ" = (
-/obj/item/food/snacks/chips,
+/obj/item/food/chips,
/turf/simulated/floor/plating,
/area/awaymission/BMPship/ChemLab)
"ja" = (
@@ -2985,7 +2985,7 @@
/obj/item/kitchen/utensil/fork{
pixel_x = -2
},
-/obj/item/food/snacks/pastatomato,
+/obj/item/food/pastatomato,
/turf/simulated/floor/plasteel{
icon_state = "cafeteria"
},
@@ -3044,9 +3044,9 @@
"jB" = (
/obj/structure/window/reinforced,
/obj/structure/table,
-/obj/item/food/snacks/candy/candycane,
-/obj/item/food/snacks/candy/confectionery/caramel_nougat,
-/obj/item/food/snacks/candy/confectionery/toffee,
+/obj/item/food/candy/candycane,
+/obj/item/food/candy/confectionery/caramel_nougat,
+/obj/item/food/candy/confectionery/toffee,
/turf/simulated/floor/plasteel{
icon_state = "barber"
},
@@ -3058,7 +3058,7 @@
/area/space)
"jF" = (
/obj/structure/table,
-/obj/item/food/snacks/xenomeatbreadslice{
+/obj/item/food/xenomeatbreadslice{
pixel_x = -8
},
/obj/item/trash/plate{
@@ -3078,7 +3078,7 @@
"jG" = (
/obj/effect/decal/cleanable/blood/gibs/xeno,
/obj/structure/alien/weeds,
-/obj/item/food/snacks/meat,
+/obj/item/food/meat,
/obj/machinery/light_construct/small/north,
/turf/simulated/floor/engine,
/area/awaymission/BMPship/Containment)
@@ -3304,7 +3304,7 @@
/obj/structure/closet/critter{
opened = 1
},
-/obj/item/food/snacks/meat,
+/obj/item/food/meat,
/turf/simulated/floor/engine,
/area/awaymission/BMPship/Containment)
"lL" = (
@@ -3566,7 +3566,7 @@
/turf/simulated/floor/mineral/plastitanium/red,
/area/awaymission/BMPship/Containment)
"oh" = (
-/obj/effect/decal/cleanable/blood/tracks{
+/obj/effect/decal/cleanable/blood/tracks/mapped{
dir = 4
},
/obj/item/ammo_casing{
@@ -3596,7 +3596,7 @@
/obj/structure/cable{
icon_state = "4-8"
},
-/obj/effect/decal/cleanable/blood/tracks{
+/obj/effect/decal/cleanable/blood/tracks/mapped{
dir = 4
},
/obj/effect/decal/cleanable/dirt,
@@ -3669,19 +3669,19 @@
/turf/space,
/area/space)
"pc" = (
-/obj/item/food/snacks/grown/banana,
-/obj/item/food/snacks/grown/banana{
+/obj/item/food/grown/banana,
+/obj/item/food/grown/banana{
pixel_x = -6;
pixel_y = 3
},
-/obj/item/food/snacks/grown/banana{
+/obj/item/food/grown/banana{
pixel_x = 7;
pixel_y = 3
},
/turf/simulated/floor/grass,
/area/awaymission/BMPship/Kitchen)
"pd" = (
-/obj/effect/decal/cleanable/blood/tracks{
+/obj/effect/decal/cleanable/blood/tracks/mapped{
dir = 4
},
/obj/item/ammo_casing/shotgun{
@@ -4532,7 +4532,7 @@
/area/awaymission/BMPship/CommonArea)
"wG" = (
/obj/effect/decal/cleanable/greenglow,
-/obj/item/food/snacks/monstermeat/spiderleg,
+/obj/item/food/monstermeat/spiderleg,
/obj/effect/decal/cleanable/dirt,
/turf/simulated/floor/mineral/plastitanium/red,
/area/awaymission/BMPship/Containment)
@@ -4722,7 +4722,7 @@
/turf/simulated/wall/indestructible/whiteshuttle/nodiagonal,
/area/awaymission/BMPship/Fore)
"yu" = (
-/obj/item/food/snacks/meat,
+/obj/item/food/meat,
/obj/effect/decal/cleanable/dirt,
/obj/machinery/light_construct/small/north,
/mob/living/simple_animal/hostile/poison/giant_spider/hunter{
@@ -4838,7 +4838,7 @@
opened = 1
},
/obj/structure/spider/stickyweb,
-/obj/item/food/snacks/meat,
+/obj/item/food/meat,
/obj/effect/decal/cleanable/dirt,
/turf/simulated/floor/engine,
/area/awaymission/BMPship/Containment)
@@ -4919,7 +4919,7 @@
/obj/item/shard{
icon_state = "small"
},
-/obj/item/food/snacks/meat,
+/obj/item/food/meat,
/turf/simulated/floor/engine,
/area/awaymission/BMPship/Containment)
"Aw" = (
@@ -5224,7 +5224,7 @@
/turf/simulated/floor/engine,
/area/awaymission/BMPship/Containment)
"Dr" = (
-/obj/item/food/snacks/meat,
+/obj/item/food/meat,
/obj/effect/decal/cleanable/dirt,
/turf/simulated/floor/engine,
/area/awaymission/BMPship/Containment)
@@ -5407,7 +5407,7 @@
/turf/simulated/wall/indestructible/whiteshuttle/nodiagonal,
/area/awaymission/BMPship/Kitchen)
"EO" = (
-/obj/item/food/snacks/meat,
+/obj/item/food/meat,
/obj/effect/decal/cleanable/dirt,
/obj/structure/spider/stickyweb,
/turf/simulated/floor/engine,
@@ -5568,7 +5568,7 @@
/area/awaymission/BMPship/Containment)
"Gu" = (
/obj/item/assembly/mousetrap/armed,
-/obj/item/food/snacks/breadslice{
+/obj/item/food/breadslice{
pixel_y = 3
},
/obj/effect/decal/cleanable/dirt,
@@ -6399,12 +6399,12 @@
/area/awaymission/BMPship/CommonArea)
"Qi" = (
/obj/effect/decal/cleanable/dirt,
-/obj/item/food/snacks/meat,
+/obj/item/food/meat,
/turf/simulated/floor/engine,
/area/awaymission/BMPship/Containment)
"Qj" = (
/obj/structure/alien/weeds,
-/obj/item/food/snacks/monstermeat/spiderleg,
+/obj/item/food/monstermeat/spiderleg,
/obj/effect/decal/cleanable/greenglow,
/turf/simulated/floor/plating/airless,
/area/awaymission/BMPship/Fore)
@@ -6648,16 +6648,16 @@
/obj/effect/turf_decal/stripes/line{
dir = 1
},
-/obj/item/food/snacks/meat/corgi,
-/obj/item/food/snacks/meat/corgi,
-/obj/item/food/snacks/meat/corgi,
-/obj/item/food/snacks/meat/corgi,
-/obj/item/food/snacks/meat/corgi,
+/obj/item/food/meat/corgi,
+/obj/item/food/meat/corgi,
+/obj/item/food/meat/corgi,
+/obj/item/food/meat/corgi,
+/obj/item/food/meat/corgi,
/turf/simulated/floor/plating,
/area/awaymission/BMPship/Gate)
"Tv" = (
/mob/living/simple_animal/hostile/retaliate/poison/snake,
-/obj/item/food/snacks/meat,
+/obj/item/food/meat,
/obj/item/shard,
/obj/effect/decal/cleanable/dirt,
/turf/simulated/floor/engine,
@@ -6864,7 +6864,7 @@
/area/awaymission/BMPship/CommonArea)
"VG" = (
/obj/effect/decal/cleanable/greenglow,
-/obj/item/food/snacks/monstermeat/spiderleg,
+/obj/item/food/monstermeat/spiderleg,
/obj/structure/spider/stickyweb,
/obj/effect/decal/cleanable/dirt,
/turf/simulated/floor/mineral/plastitanium/red,
@@ -7104,7 +7104,7 @@
"Yh" = (
/obj/effect/decal/cleanable/dirt,
/obj/machinery/light_construct/small/south,
-/obj/item/food/snacks/meat,
+/obj/item/food/meat,
/obj/structure/spider/stickyweb,
/obj/structure/spider/cocoon,
/turf/simulated/floor/engine,
@@ -7201,7 +7201,7 @@
"Zg" = (
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/cobweb2,
-/obj/item/food/snacks/meat,
+/obj/item/food/meat,
/turf/simulated/floor/engine,
/area/awaymission/BMPship/Containment)
"Zj" = (
diff --git a/_maps/map_files220/RandomZLevels/blackmesa.dmm b/_maps/map_files220/RandomZLevels/blackmesa.dmm
index f10e7477857b..6c13104c5b03 100644
--- a/_maps/map_files220/RandomZLevels/blackmesa.dmm
+++ b/_maps/map_files220/RandomZLevels/blackmesa.dmm
@@ -44,7 +44,7 @@
/turf/simulated/floor/plasteel/smooth,
/area/awaymission/black_mesa/lambda_hallway)
"aez" = (
-/obj/item/food/snacks/choccherrycakeslice,
+/obj/item/food/choccherrycakeslice,
/obj/structure/table/wood,
/turf/simulated/floor/wood/fancy/cherry,
/area/awaymission/black_mesa/xen/vortigaunt_village_nihilanth)
@@ -1992,8 +1992,8 @@
pixel_x = 3;
pixel_y = 3
},
-/obj/item/food/snacks/grown/coffee/robusta,
-/obj/item/food/snacks/grown/coffee{
+/obj/item/food/grown/coffee/robusta,
+/obj/item/food/grown/coffee{
pixel_x = -3;
pixel_y = -3
},
@@ -2024,7 +2024,7 @@
/area/awaymission/black_mesa/xen/vortigaunt_village)
"cvC" = (
/obj/structure/table/wood,
-/obj/item/food/snacks/sliceable/xenomeatbread,
+/obj/item/food/sliceable/xenomeatbread,
/turf/simulated/floor/wood/fancy/cherry,
/area/awaymission/black_mesa/xen/vortigaunt_village)
"cwd" = (
@@ -2471,7 +2471,7 @@
/turf/simulated/floor/plasteel,
/area/awaymission/black_mesa/black_ops_entrance)
"cZn" = (
-/obj/item/food/snacks/beans,
+/obj/item/food/beans,
/turf/simulated/floor/plating/xen,
/area/awaymission/black_mesa/xen/freeman_puzzle)
"cZp" = (
@@ -2721,7 +2721,7 @@
/turf/simulated/floor/beach/away/coastline/xen,
/area/awaymission/black_mesa/xen/entering_zone)
"dpl" = (
-/obj/item/food/snacks/popcorn,
+/obj/item/food/popcorn,
/turf/simulated/floor/wood,
/area/awaymission/black_mesa/employee_dorm_room)
"dpo" = (
@@ -2982,12 +2982,12 @@
/area/awaymission/black_mesa/black_ops_armory)
"dGp" = (
/obj/structure/table,
-/obj/item/food/snacks/candy/candybar,
-/obj/item/food/snacks/candy/confectionery{
+/obj/item/food/candy/candybar,
+/obj/item/food/candy/confectionery{
pixel_x = 3;
pixel_y = 3
},
-/obj/item/food/snacks/candy/confectionery{
+/obj/item/food/candy/confectionery{
pixel_x = 6;
pixel_y = 6
},
@@ -3694,7 +3694,7 @@
/area/awaymission/black_mesa/high_security_hallway)
"ewJ" = (
/obj/structure/table/wood,
-/obj/item/food/snacks/xenomeatbreadslice,
+/obj/item/food/xenomeatbreadslice,
/turf/simulated/floor/wood/fancy/cherry,
/area/awaymission/black_mesa/xen/vortigaunt_village)
"ewP" = (
@@ -4273,7 +4273,7 @@
/area/awaymission/black_mesa/entrance_lobby)
"fiC" = (
/obj/structure/closet/crate/wooden/wooden_crate,
-/obj/item/food/snacks/meat,
+/obj/item/food/meat,
/turf/simulated/floor/wood/fancy/cherry,
/area/awaymission/black_mesa/xen/vortigaunt_village)
"fje" = (
@@ -4397,7 +4397,7 @@
/area/awaymission/black_mesa/xen/freeman_hallway)
"frM" = (
/obj/structure/table,
-/obj/item/food/snacks/doshik_spicy,
+/obj/item/food/doshik_spicy,
/obj/effect/decal/cleanable/dirt,
/turf/simulated/floor/plasteel/dark,
/area/awaymission/black_mesa/xen/lost_camp)
@@ -5780,7 +5780,7 @@
/area/awaymission/black_mesa/xen/lost_camp)
"han" = (
/obj/structure/table/wood,
-/obj/item/food/snacks/monstermeat/xenomeat,
+/obj/item/food/monstermeat/xenomeat,
/turf/simulated/floor/wood/fancy/cherry,
/area/awaymission/black_mesa/xen/vortigaunt_village)
"haK" = (
@@ -6845,7 +6845,7 @@
/turf/simulated/floor/plasteel,
/area/awaymission/black_mesa/entrance_lobby)
"ixB" = (
-/obj/item/food/snacks/beans,
+/obj/item/food/beans,
/turf/simulated/floor/plating/xen,
/area/awaymission/black_mesa/xen/nihilanth_computer)
"iyO" = (
@@ -6923,13 +6923,13 @@
/obj/structure/window/reinforced{
dir = 8
},
-/obj/item/food/snacks/muffin,
-/obj/item/food/snacks/muffin{
+/obj/item/food/muffin,
+/obj/item/food/muffin{
pixel_x = 3;
pixel_y = 3
},
-/obj/item/food/snacks/poppypretzel,
-/obj/item/food/snacks/plum_pie,
+/obj/item/food/poppypretzel,
+/obj/item/food/plum_pie,
/turf/simulated/floor/plasteel/dark{
icon_state = "dark"
},
@@ -7495,7 +7495,7 @@
/area/awaymission/black_mesa/xen/acid_lake_building)
"jka" = (
/obj/structure/closet/crate/wooden/wooden_crate,
-/obj/item/food/snacks/doshik_spicy,
+/obj/item/food/doshik_spicy,
/turf/simulated/floor/plasteel/smooth,
/area/awaymission/black_mesa/deep_sci_storage)
"jkk" = (
@@ -8878,10 +8878,10 @@
/obj/item/reagent_containers/drinks/chicken_soup,
/obj/item/reagent_containers/drinks/chicken_soup,
/obj/item/reagent_containers/drinks/chicken_soup,
-/obj/item/food/snacks/meat,
-/obj/item/food/snacks/meat,
-/obj/item/food/snacks/meat,
-/obj/item/food/snacks/meat,
+/obj/item/food/meat,
+/obj/item/food/meat,
+/obj/item/food/meat,
+/obj/item/food/meat,
/obj/effect/turf_decal/stripes/line{
dir = 10
},
@@ -9748,7 +9748,7 @@
/area/awaymission/black_mesa/science_labs)
"lTy" = (
/obj/structure/table,
-/obj/item/food/snacks/doshik,
+/obj/item/food/doshik,
/obj/effect/decal/cleanable/dirt,
/turf/simulated/floor/plasteel/dark,
/area/awaymission/black_mesa/xen/lost_camp)
@@ -10755,7 +10755,7 @@
/area/awaymission/black_mesa/xen/vortigaunt_village)
"ncG" = (
/obj/structure/table,
-/obj/item/food/snacks/beans,
+/obj/item/food/beans,
/turf/simulated/floor/plasteel/dark,
/area/awaymission/black_mesa/xen/lost_camp)
"ncU" = (
@@ -12195,12 +12195,12 @@
/area/awaymission/black_mesa/hecu_zone_camp)
"oNw" = (
/obj/structure/table,
-/obj/item/food/snacks/grown/banana,
-/obj/item/food/snacks/grown/banana{
+/obj/item/food/grown/banana,
+/obj/item/food/grown/banana{
pixel_x = 3;
pixel_y = 3
},
-/obj/item/food/snacks/grown/banana{
+/obj/item/food/grown/banana{
pixel_x = 6;
pixel_y = 6
},
@@ -12643,7 +12643,7 @@
/area/awaymission/black_mesa/entrance_large_office)
"pnW" = (
/obj/structure/table/wood,
-/obj/item/food/snacks/meat,
+/obj/item/food/meat,
/turf/simulated/floor/wood/fancy/cherry,
/area/awaymission/black_mesa/xen/vortigaunt_village_nihilanth)
"ppc" = (
@@ -12878,7 +12878,7 @@
pixel_y = 5;
pixel_x = 5
},
-/obj/item/food/snacks/donut/sprinkles,
+/obj/item/food/donut/sprinkles,
/turf/simulated/floor/plasteel,
/area/awaymission/black_mesa/entrance_lobby)
"pDE" = (
@@ -13278,7 +13278,7 @@
/area/awaymission/black_mesa/hecu_zone_camp)
"qeH" = (
/obj/structure/table,
-/obj/item/food/snacks/doshik_spicy,
+/obj/item/food/doshik_spicy,
/turf/simulated/floor/plasteel/dark,
/area/awaymission/black_mesa/xen/acid_lake_building)
"qfg" = (
@@ -13926,7 +13926,7 @@
/area/awaymission/black_mesa/entrance_large_office)
"qPE" = (
/obj/structure/closet/crate/wooden/wooden_crate,
-/obj/item/food/snacks/doshik,
+/obj/item/food/doshik,
/turf/simulated/floor/plasteel/smooth,
/area/awaymission/black_mesa/deep_sci_storage)
"qPF" = (
@@ -14756,7 +14756,7 @@
/area/awaymission/black_mesa/hecu_zone_external_hall)
"rSI" = (
/obj/structure/table,
-/obj/item/food/snacks/beans,
+/obj/item/food/beans,
/turf/simulated/floor/plating/xen,
/area/awaymission/black_mesa/xen/vortigaunt_village)
"rSN" = (
@@ -15530,7 +15530,7 @@
/area/awaymission/black_mesa/entrance_lobby)
"sNn" = (
/obj/structure/closet/crate/can,
-/obj/item/food/snacks/donut/sprinkles,
+/obj/item/food/donut/sprinkles,
/turf/simulated/floor/plasteel,
/area/awaymission/black_mesa/gas_emitter_chamber)
"sNG" = (
@@ -16514,7 +16514,7 @@
/area/awaymission/black_mesa/entrance_lobby)
"uhs" = (
/obj/structure/table,
-/obj/item/food/snacks/candy/taffy,
+/obj/item/food/candy/taffy,
/turf/simulated/floor/plasteel,
/area/awaymission/black_mesa/hecu_zone_infirmary)
"uhN" = (
@@ -17512,7 +17512,7 @@
/turf/simulated/floor/plasteel/smooth,
/area/awaymission/black_mesa/entrance_internal_hall)
"vrW" = (
-/obj/item/food/snacks/donut/sprinkles,
+/obj/item/food/donut/sprinkles,
/obj/structure/table/wood,
/turf/simulated/floor/wood/fancy/cherry,
/area/awaymission/black_mesa/xen/vortigaunt_village_nihilanth)
@@ -18228,7 +18228,7 @@
pixel_x = 8;
pixel_y = 2
},
-/obj/item/food/snacks/chips,
+/obj/item/food/chips,
/turf/simulated/floor/plating/ironsand,
/area/awaymission/black_mesa/hecu_zone_camp)
"woi" = (
@@ -19438,7 +19438,7 @@
/area/awaymission/black_mesa/employee_dorm_room)
"xKX" = (
/obj/structure/closet/crate/wooden/wooden_crate,
-/obj/item/food/snacks/beans,
+/obj/item/food/beans,
/turf/simulated/floor/plasteel/smooth,
/area/awaymission/black_mesa/deep_sci_storage)
"xMb" = (
diff --git a/_maps/map_files220/RandomZLevels/caves.dmm b/_maps/map_files220/RandomZLevels/caves.dmm
index 5ebf6244e891..78be5c500b7f 100644
--- a/_maps/map_files220/RandomZLevels/caves.dmm
+++ b/_maps/map_files220/RandomZLevels/caves.dmm
@@ -446,7 +446,7 @@
pixel_y = 10
},
/obj/effect/spawner/random_spawners/dirt_often,
-/obj/item/food/snacks/grown/apple/poisoned,
+/obj/item/food/grown/apple/poisoned,
/turf/simulated/floor/wood/lavaland_air,
/area/awaymission/caves)
"bY" = (
@@ -1762,7 +1762,7 @@
/turf/simulated/floor/plating/lavaland_air,
/area/awaymission/caves)
"iy" = (
-/obj/item/food/snacks/grown/poppy{
+/obj/item/food/grown/poppy{
pixel_y = -15;
pixel_x = -5
},
@@ -2154,7 +2154,7 @@
/area/awaymission/caves/build)
"kC" = (
/obj/effect/decal/remains/human,
-/obj/item/food/snacks/grown/harebell,
+/obj/item/food/grown/harebell,
/obj/item/clothing/suit/armor/riot/knight/red,
/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface,
/area/awaymission/caves)
@@ -2316,13 +2316,13 @@
/area/awaymission/caves/build/reqpower_build)
"lw" = (
/obj/structure/table/wood/fancy/red,
-/obj/item/food/snacks/candy/cotton/poison,
-/obj/item/food/snacks/candy/jellybean/poison{
+/obj/item/food/candy/cotton/poison,
+/obj/item/food/candy/jellybean/poison{
pixel_x = -5;
pixel_y = 4
},
-/obj/item/food/snacks/candy/gummyworm/poison,
-/obj/item/food/snacks/candy/gummybear/poison{
+/obj/item/food/candy/gummyworm/poison,
+/obj/item/food/candy/gummybear/poison{
pixel_x = 5;
pixel_y = 5
},
diff --git a/_maps/map_files220/RandomZLevels/gate_lizard.dmm b/_maps/map_files220/RandomZLevels/gate_lizard.dmm
index 00a5f907a580..ca75be18fc61 100644
--- a/_maps/map_files220/RandomZLevels/gate_lizard.dmm
+++ b/_maps/map_files220/RandomZLevels/gate_lizard.dmm
@@ -981,9 +981,9 @@
/area/awaymission/jungle_planet/outside/river)
"bru" = (
/obj/structure/closet/crate/wooden/barrel,
-/obj/item/food/snacks/meat,
-/obj/item/food/snacks/meat,
-/obj/item/food/snacks/meat,
+/obj/item/food/meat,
+/obj/item/food/meat,
+/obj/item/food/meat,
/turf/simulated/floor/wood/oak,
/area/awaymission/jungle_planet/outside/cave)
"brT" = (
@@ -1195,13 +1195,13 @@
},
/area/awaymission/jungle_planet/outside)
"bBR" = (
-/obj/item/food/snacks/grown/chili,
-/obj/item/food/snacks/grown/carrot,
-/obj/item/food/snacks/grown/mushroom/chanterelle,
-/obj/item/food/snacks/grown/mushroom/chanterelle,
-/obj/item/food/snacks/grown/onion,
-/obj/item/food/snacks/grown/potato,
-/obj/item/food/snacks/grown/potato,
+/obj/item/food/grown/chili,
+/obj/item/food/grown/carrot,
+/obj/item/food/grown/mushroom/chanterelle,
+/obj/item/food/grown/mushroom/chanterelle,
+/obj/item/food/grown/onion,
+/obj/item/food/grown/potato,
+/obj/item/food/grown/potato,
/obj/structure/closet/crate/wooden/wooden_crate,
/turf/simulated/floor/wood/oak,
/area/awaymission/jungle_planet/outside/cave/small)
@@ -1387,7 +1387,7 @@
},
/area/awaymission/jungle_planet/inside/complex)
"bNN" = (
-/obj/item/food/snacks/grown/harebell,
+/obj/item/food/grown/harebell,
/obj/structure/stone_tile/slab/cracked{
dir = 4
},
@@ -1588,7 +1588,7 @@
/area/awaymission/jungle_planet/outside)
"ccc" = (
/obj/structure/closet/crate/wooden/barrel,
-/obj/item/food/snacks/syntikebab,
+/obj/item/food/syntikebab,
/turf/simulated/floor/wood/oak,
/area/awaymission/jungle_planet/outside/cave)
"cco" = (
@@ -2574,7 +2574,7 @@
/area/awaymission/jungle_planet/outside)
"dpL" = (
/obj/structure/closet,
-/obj/item/food/snacks/candy/candybar,
+/obj/item/food/candy/candybar,
/obj/item/stack/spacecash/c10,
/obj/item/flashlight/seclite,
/obj/item/clothing/shoes/combat,
@@ -5241,8 +5241,8 @@
/area/awaymission/jungle_planet/inside/complex)
"gYH" = (
/obj/structure/stone_tile/slab/cracked,
-/obj/item/food/snacks/grown/lily,
-/obj/item/food/snacks/grown/moonflower,
+/obj/item/food/grown/lily,
+/obj/item/food/grown/moonflower,
/turf/simulated/floor/engine/cult,
/area/awaymission/jungle_planet/outside/cave)
"gZm" = (
@@ -5693,10 +5693,10 @@
/area/awaymission/jungle_planet/outside/abandoned)
"hws" = (
/obj/structure/table/wood,
-/obj/item/food/snacks/meat,
-/obj/item/food/snacks/meat,
-/obj/item/food/snacks/meat,
-/obj/item/food/snacks/meat,
+/obj/item/food/meat,
+/obj/item/food/meat,
+/obj/item/food/meat,
+/obj/item/food/meat,
/turf/simulated/floor/wood/oak,
/area/awaymission/jungle_planet/outside/cave)
"hwW" = (
@@ -5946,7 +5946,7 @@
pixel_y = -23;
pixel_x = 9
},
-/obj/item/food/snacks/grown/mushroom/chanterelle,
+/obj/item/food/grown/mushroom/chanterelle,
/turf/simulated/floor/engine/cult,
/area/awaymission/jungle_planet/outside/cave)
"hPx" = (
@@ -8289,7 +8289,7 @@
/area/awaymission/jungle_planet/inside/complex)
"kHh" = (
/obj/structure/table/wood,
-/obj/item/food/snacks/monkeysdelight,
+/obj/item/food/monkeysdelight,
/turf/simulated/floor/wood/oak,
/area/awaymission/jungle_planet/outside/cave)
"kHP" = (
@@ -8689,12 +8689,12 @@
"lfb" = (
/obj/effect/turf_decal/delivery/white,
/obj/structure/closet/cardboard,
-/obj/item/food/snacks/beans,
-/obj/item/food/snacks/beans,
-/obj/item/food/snacks/beans,
-/obj/item/food/snacks/beans,
-/obj/item/food/snacks/candy/donor,
-/obj/item/food/snacks/candy/donor,
+/obj/item/food/beans,
+/obj/item/food/beans,
+/obj/item/food/beans,
+/obj/item/food/beans,
+/obj/item/food/candy/donor,
+/obj/item/food/candy/donor,
/turf/simulated/floor/plasteel,
/area/awaymission/jungle_planet/inside/complex)
"lfj" = (
@@ -8768,11 +8768,11 @@
pixel_y = -23;
pixel_x = 9
},
-/obj/item/food/snacks/grown/mushroom/libertycap,
-/obj/item/food/snacks/grown/mushroom/reishi{
+/obj/item/food/grown/mushroom/libertycap,
+/obj/item/food/grown/mushroom/reishi{
pixel_x = -7
},
-/obj/item/food/snacks/grown/mushroom/amanita,
+/obj/item/food/grown/mushroom/amanita,
/obj/structure/stone_tile/block/cracked,
/turf/simulated/floor/engine/cult,
/area/awaymission/jungle_planet/outside/cave)
@@ -9850,7 +9850,7 @@
/area/awaymission/jungle_planet/inside/complex)
"mBN" = (
/obj/structure/table/wood,
-/obj/item/food/snacks/meat,
+/obj/item/food/meat,
/turf/simulated/floor/plating/asteroid/ancient{
name = "ground"
},
@@ -10054,8 +10054,8 @@
/area/awaymission/jungle_planet/outside/cave)
"mMo" = (
/obj/structure/closet/crate/wooden/barrel,
-/obj/item/food/snacks/meat,
-/obj/item/food/snacks/meat,
+/obj/item/food/meat,
+/obj/item/food/meat,
/obj/effect/landmark/damageturf,
/turf/simulated/floor/wood/oak,
/area/awaymission/jungle_planet/outside/cave)
@@ -10471,7 +10471,7 @@
/area/awaymission/jungle_planet/outside/abandoned)
"njL" = (
/obj/structure/table/wood,
-/obj/item/food/snacks/monkeysdelight,
+/obj/item/food/monkeysdelight,
/turf/simulated/floor/engine/cult,
/area/awaymission/jungle_planet/outside/cave)
"njP" = (
@@ -10489,7 +10489,7 @@
"nok" = (
/obj/structure/table/wood,
/obj/item/reagent_containers/drinks/mushroom_bowl,
-/obj/item/food/snacks/grown/mushroom/chanterelle,
+/obj/item/food/grown/mushroom/chanterelle,
/turf/simulated/floor/engine/cult,
/area/awaymission/jungle_planet/outside/cave)
"nou" = (
@@ -11139,11 +11139,11 @@
"omT" = (
/obj/effect/decal/cleanable/cobweb,
/obj/structure/closet/crate/wooden/wooden_crate,
-/obj/item/food/snacks/grown/cannabis,
-/obj/item/food/snacks/grown/cannabis,
-/obj/item/food/snacks/grown/cannabis/ultimate,
-/obj/item/food/snacks/grown/cannabis/ultimate,
-/obj/item/food/snacks/grown/cannabis/ultimate,
+/obj/item/food/grown/cannabis,
+/obj/item/food/grown/cannabis,
+/obj/item/food/grown/cannabis/ultimate,
+/obj/item/food/grown/cannabis/ultimate,
+/obj/item/food/grown/cannabis/ultimate,
/obj/effect/landmark/damageturf,
/turf/simulated/floor/wood/oak,
/area/awaymission/jungle_planet/outside/cave)
@@ -13099,11 +13099,11 @@
/area/awaymission/jungle_planet/inside/complex)
"qOH" = (
/obj/structure/table/wood,
-/obj/item/food/snacks/meat{
+/obj/item/food/meat{
pixel_y = -22;
pixel_x = -7
},
-/obj/item/food/snacks/monkeysdelight,
+/obj/item/food/monkeysdelight,
/turf/simulated/floor/engine/cult,
/area/awaymission/jungle_planet/outside/cave)
"qOM" = (
@@ -13246,7 +13246,7 @@
/area/awaymission/jungle_planet/inside/complex)
"qVY" = (
/obj/structure/table/wood,
-/obj/item/food/snacks/meat,
+/obj/item/food/meat,
/turf/simulated/floor/engine/cult,
/area/awaymission/jungle_planet/outside/cave)
"qVZ" = (
@@ -14636,8 +14636,8 @@
/area/awaymission/jungle_planet/inside/complex)
"sDQ" = (
/obj/structure/stone_tile/slab/cracked,
-/obj/item/food/snacks/grown/poppy,
-/obj/item/food/snacks/grown/geranium,
+/obj/item/food/grown/poppy,
+/obj/item/food/grown/geranium,
/turf/simulated/floor/engine/cult,
/area/awaymission/jungle_planet/outside/cave)
"sFa" = (
@@ -15008,13 +15008,13 @@
},
/area/awaymission/jungle_planet/outside/river)
"tey" = (
-/obj/item/food/snacks/grown/chili,
-/obj/item/food/snacks/grown/carrot,
-/obj/item/food/snacks/grown/mushroom/chanterelle,
-/obj/item/food/snacks/grown/mushroom/chanterelle,
-/obj/item/food/snacks/grown/onion,
-/obj/item/food/snacks/grown/potato,
-/obj/item/food/snacks/grown/potato,
+/obj/item/food/grown/chili,
+/obj/item/food/grown/carrot,
+/obj/item/food/grown/mushroom/chanterelle,
+/obj/item/food/grown/mushroom/chanterelle,
+/obj/item/food/grown/onion,
+/obj/item/food/grown/potato,
+/obj/item/food/grown/potato,
/obj/effect/decal/cleanable/cobweb2,
/obj/structure/closet/crate/wooden/wooden_crate,
/turf/simulated/floor/wood/oak,
@@ -17086,7 +17086,7 @@
/area/awaymission/jungle_planet/outside/cave)
"vCb" = (
/obj/structure/table/wood,
-/obj/item/food/snacks/fried_vox{
+/obj/item/food/fried_vox{
pixel_y = 5
},
/turf/simulated/floor/wood/oak,
@@ -18455,7 +18455,7 @@
/area/awaymission/jungle_planet/inside/complex)
"xmJ" = (
/obj/item/reagent_containers/drinks/mushroom_bowl,
-/obj/item/food/snacks/badrecipe,
+/obj/item/food/badrecipe,
/turf/simulated/floor/engine/cult,
/area/awaymission/jungle_planet/outside/cave)
"xmQ" = (
diff --git a/_maps/map_files220/RandomZLevels/spacebattle.dmm b/_maps/map_files220/RandomZLevels/spacebattle.dmm
index 060e90b7f1f4..b06482e5811e 100644
--- a/_maps/map_files220/RandomZLevels/spacebattle.dmm
+++ b/_maps/map_files220/RandomZLevels/spacebattle.dmm
@@ -957,7 +957,6 @@
/turf/simulated/floor/mineral/plastitanium/red,
/area/awaymission/space_battle/syndicate/syndicate2)
"cV" = (
-/obj/machinery/cooking,
/turf/simulated/floor/plasteel{
icon_state = "blueyellowfull"
},
@@ -985,8 +984,8 @@
/area/awaymission/space_battle/syndicate)
"da" = (
/obj/structure/closet/cardboard,
-/obj/item/food/snacks/beans,
-/obj/item/food/snacks/beans,
+/obj/item/food/beans,
+/obj/item/food/beans,
/obj/machinery/light/directional/west,
/turf/simulated/floor/mineral/titanium,
/area/awaymission/space_battle/storage)
@@ -1116,9 +1115,9 @@
/area/awaymission/space_battle/hallway1)
"dz" = (
/obj/structure/closet/crate/freezer,
-/obj/item/food/snacks/meat,
-/obj/item/food/snacks/meat,
-/obj/item/food/snacks/meat,
+/obj/item/food/meat,
+/obj/item/food/meat,
+/obj/item/food/meat,
/turf/simulated/floor/plasteel/freezer,
/area/awaymission/space_battle/kitchen)
"dA" = (
@@ -1646,9 +1645,9 @@
/area/awaymission/space_battle)
"fn" = (
/obj/structure/closet/crate/wooden/barrel,
-/obj/item/food/snacks/honeycomb,
-/obj/item/food/snacks/honeycomb,
-/obj/item/food/snacks/honeycomb,
+/obj/item/food/honeycomb,
+/obj/item/food/honeycomb,
+/obj/item/food/honeycomb,
/turf/simulated/floor/wood/cherry,
/area/awaymission/space_battle)
"fo" = (
@@ -2941,9 +2940,8 @@
/obj/machinery/door/airlock{
id_tag = "t3"
},
-/obj/effect/decal/cleanable/blood/tracks{
- dir = 1;
- icon_state = "wheels2"
+/obj/effect/decal/cleanable/blood/tracks/mapped{
+ dir = 1
},
/obj/effect/mapping_helpers/airlock/locked,
/turf/simulated/floor/plasteel,
@@ -3539,9 +3537,8 @@
/obj/item/shard{
icon_state = "medium"
},
-/obj/effect/decal/cleanable/blood/tracks{
- dir = 4;
- icon_state = "xeno2"
+/obj/effect/decal/cleanable/blood/tracks/mapped{
+ dir = 4
},
/obj/effect/decal/cleanable/blood/drip{
icon_state = "5"
@@ -3602,9 +3599,8 @@
/obj/effect/decal/cleanable/blood/drip{
icon_state = "3"
},
-/obj/effect/decal/cleanable/blood/tracks{
- dir = 1;
- icon_state = "paw2"
+/obj/effect/decal/cleanable/blood/tracks/mapped{
+ dir = 1
},
/obj/effect/landmark/awaymissions/spacebattle/mine_spawner{
id = "toilet"
@@ -3632,8 +3628,8 @@
/area/awaymission/space_battle/syndicate/syndicate6)
"kR" = (
/obj/structure/closet/cardboard,
-/obj/item/food/snacks/beans,
-/obj/item/food/snacks/beans,
+/obj/item/food/beans,
+/obj/item/food/beans,
/turf/simulated/floor/mineral/titanium,
/area/awaymission/space_battle/storage)
"kS" = (
@@ -3659,7 +3655,7 @@
/obj/effect/turf_decal/stripes/line{
dir = 1
},
-/obj/effect/decal/cleanable/blood/tracks,
+/obj/effect/decal/cleanable/blood/tracks/mapped,
/turf/simulated/floor/plasteel/dark,
/area/awaymission/space_battle/hallway4)
"kX" = (
@@ -4084,7 +4080,7 @@
/turf/simulated/floor/mineral/plastitanium/red/airless,
/area/awaymission/space_battle/syndicate/syndicate2)
"mq" = (
-/obj/effect/decal/cleanable/blood/tracks,
+/obj/effect/decal/cleanable/blood/tracks/mapped,
/obj/structure/cable{
d1 = 1;
d2 = 2;
@@ -4249,9 +4245,8 @@
/turf/simulated/floor/plasteel/freezer,
/area/awaymission/space_battle/kitchen)
"mX" = (
-/obj/effect/decal/cleanable/blood/tracks{
- dir = 4;
- icon_state = "blood1"
+/obj/effect/decal/cleanable/blood/tracks/mapped{
+ dir = 4
},
/turf/simulated/floor/plasteel,
/area/awaymission/space_battle/hallway3)
@@ -4466,9 +4461,7 @@
},
/area/awaymission/space_battle/server)
"nI" = (
-/obj/effect/decal/cleanable/blood/tracks{
- icon_state = "blood1"
- },
+/obj/effect/decal/cleanable/blood/tracks/mapped,
/turf/simulated/floor/plasteel,
/area/awaymission/space_battle/hallway4)
"nJ" = (
@@ -4508,7 +4501,7 @@
},
/area/awaymission/space_battle/hallway11)
"nN" = (
-/obj/effect/decal/cleanable/blood/tracks{
+/obj/effect/decal/cleanable/blood/tracks/mapped{
dir = 8
},
/turf/simulated/floor/plasteel,
@@ -5512,7 +5505,7 @@
},
/area/awaymission/space_battle/hallway11)
"rc" = (
-/obj/effect/decal/cleanable/blood/tracks{
+/obj/effect/decal/cleanable/blood/tracks/mapped{
dir = 1
},
/turf/simulated/floor/plasteel,
@@ -5874,7 +5867,7 @@
/turf/simulated/floor/plasteel,
/area/awaymission/space_battle/hallway1)
"sl" = (
-/obj/effect/decal/cleanable/blood/tracks{
+/obj/effect/decal/cleanable/blood/tracks/mapped{
dir = 8
},
/turf/simulated/floor/plasteel{
@@ -6122,9 +6115,8 @@
/obj/machinery/door/airlock/security{
name = "Turret Room"
},
-/obj/effect/decal/cleanable/blood/tracks{
- dir = 4;
- icon_state = "blood1"
+/obj/effect/decal/cleanable/blood/tracks/mapped{
+ dir = 4
},
/turf/simulated/floor/plasteel,
/area/awaymission/space_battle/hallway6)
@@ -6312,9 +6304,9 @@
/area/awaymission/space_battle/syndicate/syndicate1)
"tH" = (
/obj/structure/closet/crate/freezer,
-/obj/item/food/snacks/meat,
-/obj/item/food/snacks/meat,
-/obj/item/food/snacks/meat,
+/obj/item/food/meat,
+/obj/item/food/meat,
+/obj/item/food/meat,
/obj/machinery/light/small/directional/south,
/turf/simulated/floor/plasteel/freezer,
/area/awaymission/space_battle/kitchen)
@@ -6668,9 +6660,8 @@
/turf/simulated/floor/mineral/plastitanium/red,
/area/awaymission/space_battle/syndicate)
"uM" = (
-/obj/effect/decal/cleanable/blood/tracks{
- dir = 1;
- icon_state = "blood2"
+/obj/effect/decal/cleanable/blood/tracks/mapped{
+ dir = 1
},
/turf/simulated/floor/plasteel{
icon_state = "neutral";
@@ -7819,9 +7810,8 @@
},
/area/awaymission/space_battle/hallway10)
"yv" = (
-/obj/effect/decal/cleanable/blood/tracks{
- dir = 1;
- icon_state = "blood2"
+/obj/effect/decal/cleanable/blood/tracks/mapped{
+ dir = 1
},
/turf/simulated/floor/plasteel{
icon_state = "white"
@@ -8600,7 +8590,7 @@
/turf/simulated/floor/plasteel,
/area/awaymission/space_battle/engine)
"AY" = (
-/obj/effect/decal/cleanable/blood/tracks,
+/obj/effect/decal/cleanable/blood/tracks/mapped,
/turf/simulated/floor/plasteel{
dir = 1;
icon_state = "whiteblue"
@@ -8670,9 +8660,8 @@
},
/area/awaymission/space_battle/hallway2)
"Bg" = (
-/obj/effect/decal/cleanable/blood/tracks{
- dir = 8;
- icon_state = "xeno2"
+/obj/effect/decal/cleanable/blood/tracks/mapped{
+ dir = 8
},
/turf/simulated/floor/plating/airless,
/area/awaymission/space_battle/hallway10)
@@ -9287,7 +9276,7 @@
/area/awaymission/space_battle/hallway5)
"CU" = (
/obj/effect/landmark/damageturf,
-/obj/effect/decal/cleanable/blood/tracks{
+/obj/effect/decal/cleanable/blood/tracks/mapped{
dir = 8
},
/turf/simulated/floor/plasteel,
@@ -10105,9 +10094,8 @@
},
/area/awaymission/space_battle/hallway2)
"Fs" = (
-/obj/effect/decal/cleanable/blood/tracks{
- dir = 4;
- icon_state = "xeno2"
+/obj/effect/decal/cleanable/blood/tracks/mapped{
+ dir = 4
},
/turf/simulated/floor/plasteel{
icon_state = "bar"
@@ -10798,7 +10786,7 @@
},
/area/awaymission/space_battle/engine)
"Hq" = (
-/obj/effect/decal/cleanable/blood/tracks{
+/obj/effect/decal/cleanable/blood/tracks/mapped{
dir = 4
},
/turf/simulated/floor/plasteel{
@@ -11313,7 +11301,7 @@
/turf/simulated/wall/indestructible/whiteshuttle,
/area/awaymission/space_battle/engineering)
"IS" = (
-/obj/effect/decal/cleanable/blood/tracks,
+/obj/effect/decal/cleanable/blood/tracks/mapped,
/turf/simulated/floor/plasteel,
/area/awaymission/space_battle/hallway8)
"IT" = (
@@ -11441,9 +11429,8 @@
/obj/effect/turf_decal/stripes/corner{
dir = 1
},
-/obj/effect/decal/cleanable/blood/tracks{
- dir = 8;
- icon_state = "blood1"
+/obj/effect/decal/cleanable/blood/tracks/mapped{
+ dir = 8
},
/turf/simulated/floor/plasteel,
/area/awaymission/space_battle/sec_storage)
@@ -11604,10 +11591,6 @@
/obj/effect/decal/cleanable/glass,
/turf/simulated/floor/plasteel,
/area/awaymission/space_battle/sec_storage)
-"JQ" = (
-/obj/effect/decal/cleanable/blood/tracks,
-/turf/simulated/floor/plasteel,
-/area/awaymission/space_battle/hallway4)
"JR" = (
/obj/machinery/light/small/directional/west,
/turf/simulated/floor/plating,
@@ -12352,7 +12335,7 @@
/turf/simulated/floor/plating,
/area/awaymission/space_battle/turret2)
"Mg" = (
-/obj/effect/decal/cleanable/blood/tracks{
+/obj/effect/decal/cleanable/blood/tracks/mapped{
dir = 1
},
/turf/simulated/floor/plasteel{
@@ -14532,9 +14515,8 @@
/turf/simulated/floor/mineral/plastitanium/red,
/area/awaymission/space_battle/syndicate/syndicate1)
"SS" = (
-/obj/effect/decal/cleanable/blood/tracks{
- dir = 8;
- icon_state = "blood1"
+/obj/effect/decal/cleanable/blood/tracks/mapped{
+ dir = 8
},
/turf/simulated/floor/plasteel{
icon_state = "white"
@@ -14993,7 +14975,7 @@
/area/awaymission/space_battle/kitchen)
"Ux" = (
/obj/structure/closet/secure_closet/freezer/meat/open,
-/obj/item/food/snacks/amanitajelly,
+/obj/item/food/amanitajelly,
/turf/simulated/floor/plasteel/freezer,
/area/awaymission/space_battle/kitchen)
"Uy" = (
@@ -15061,9 +15043,7 @@
/turf/simulated/floor/mineral/titanium,
/area/awaymission/space_battle/storage)
"UI" = (
-/obj/effect/decal/cleanable/blood/tracks{
- icon_state = "blood1"
- },
+/obj/effect/decal/cleanable/blood/tracks/mapped,
/turf/simulated/floor/plasteel{
icon_state = "neutral"
},
@@ -15294,7 +15274,7 @@
/obj/item/stack/rods{
amount = 15
},
-/obj/effect/decal/cleanable/blood/tracks,
+/obj/effect/decal/cleanable/blood/tracks/mapped,
/turf/simulated/floor/plasteel,
/area/awaymission/space_battle/hallway4)
"Vo" = (
@@ -15802,7 +15782,7 @@
/obj/structure/table/reinforced,
/obj/item/kitchen/rollingpin,
/obj/item/kitchen/knife,
-/obj/item/food/snacks/carpmeat,
+/obj/item/food/carpmeat,
/turf/simulated/floor/plasteel{
icon_state = "blueyellowfull"
},
@@ -15859,9 +15839,7 @@
/turf/simulated/floor/plasteel,
/area/awaymission/space_battle/hallway9)
"Xf" = (
-/obj/effect/decal/cleanable/blood/tracks{
- icon_state = "xeno2"
- },
+/obj/effect/decal/cleanable/blood/tracks/mapped,
/obj/effect/decal/cleanable/blood/drip{
icon_state = "3"
},
@@ -15945,7 +15923,7 @@
},
/area/awaymission/space_battle/syndicate/syndicate1)
"Xr" = (
-/obj/effect/decal/cleanable/blood/tracks,
+/obj/effect/decal/cleanable/blood/tracks/mapped,
/turf/simulated/floor/plasteel{
icon_state = "neutral";
dir = 1
@@ -16132,7 +16110,7 @@
/area/awaymission/space_battle/sec_storage)
"XQ" = (
/obj/machinery/door/airlock,
-/obj/effect/decal/cleanable/blood/tracks,
+/obj/effect/decal/cleanable/blood/tracks/mapped,
/turf/simulated/floor/plasteel,
/area/awaymission/space_battle/hallway3)
"XR" = (
@@ -16645,7 +16623,7 @@
d2 = 8;
icon_state = "4-8"
},
-/obj/effect/decal/cleanable/blood/tracks{
+/obj/effect/decal/cleanable/blood/tracks/mapped{
dir = 8
},
/turf/simulated/floor/plasteel{
@@ -56065,7 +56043,7 @@ VC
cf
nK
Vn
-JQ
+nI
nI
kW
rh
diff --git a/_maps/map_files220/RandomZLevels/wildwest.dmm b/_maps/map_files220/RandomZLevels/wildwest.dmm
index ec05f3bcfde0..cd8a9700a2f2 100644
--- a/_maps/map_files220/RandomZLevels/wildwest.dmm
+++ b/_maps/map_files220/RandomZLevels/wildwest.dmm
@@ -48,7 +48,7 @@
"ap" = (
/obj/effect/mine/dnascramble,
/obj/item/stack/sheet/mineral/sandstone,
-/obj/effect/decal/cleanable/blood/tracks,
+/obj/effect/decal/cleanable/blood/tracks/mapped,
/turf/simulated/floor/wood/oak,
/area/awaymission/wildwest/wildwest_mines)
"ar" = (
@@ -138,7 +138,7 @@
/area/awaymission/wildwest/wildwest_refine)
"bd" = (
/obj/structure/table/holotable/wood,
-/obj/item/food/snacks/mint,
+/obj/item/food/mint,
/obj/item/kitchen/utensil/fork,
/turf/simulated/floor/wood/oak,
/area/awaymission/wildwest/wildwest_mines)
@@ -1974,7 +1974,7 @@
/turf/simulated/floor/wood/oak,
/area/awaymission/wildwest/wildwest_mines)
"sq" = (
-/obj/effect/decal/cleanable/blood/tracks,
+/obj/effect/decal/cleanable/blood/tracks/mapped,
/turf/simulated/floor/wood/oak,
/area/awaymission/wildwest/wildwest_mines)
"sr" = (
@@ -3410,7 +3410,7 @@
/area/awaymission/wildwest/wildwest_mines)
"GF" = (
/obj/structure/table,
-/obj/item/food/snacks/carpmeat,
+/obj/item/food/carpmeat,
/obj/item/kitchen/knife,
/turf/simulated/floor/wood/oak,
/area/awaymission/wildwest/wildwest_mines)
@@ -3482,7 +3482,7 @@
/area/awaymission/wildwest/wildwest_mines)
"Hj" = (
/obj/structure/table/holotable/wood,
-/obj/item/food/snacks/mint,
+/obj/item/food/mint,
/turf/simulated/floor/wood/oak,
/area/awaymission/wildwest/wildwest_mines)
"Hm" = (
@@ -4230,7 +4230,7 @@
/area/awaymission/wildwest/wildwest_mines)
"Pz" = (
/obj/structure/table/holotable/wood,
-/obj/item/food/snacks/mint,
+/obj/item/food/mint,
/obj/item/kitchen/utensil/spoon,
/obj/item/kitchen/utensil/fork{
pixel_x = 6
@@ -4817,7 +4817,7 @@
/area/awaymission/wildwest/wildwest_mines)
"VG" = (
/obj/structure/table/holotable/wood,
-/obj/item/food/snacks/mint,
+/obj/item/food/mint,
/obj/item/kitchen/utensil/fork,
/obj/effect/decal/cleanable/dirt,
/turf/simulated/floor/wood/oak,
diff --git a/_maps/map_files220/generic/Admin_Zone.dmm b/_maps/map_files220/generic/Admin_Zone.dmm
index c47718b54bcd..f7ce7dd533e9 100644
--- a/_maps/map_files220/generic/Admin_Zone.dmm
+++ b/_maps/map_files220/generic/Admin_Zone.dmm
@@ -692,13 +692,13 @@
/area/admin)
"kQ" = (
/obj/structure/table,
-/obj/item/food/snacks/grown/citrus/lemon,
-/obj/item/food/snacks/grown/berries,
-/obj/item/food/snacks/grown/banana,
-/obj/item/food/snacks/grown/cherries,
-/obj/item/food/snacks/grown/citrus/orange,
-/obj/item/food/snacks/grown/corn,
-/obj/item/food/snacks/grown/mushroom/amanita,
+/obj/item/food/grown/citrus/lemon,
+/obj/item/food/grown/berries,
+/obj/item/food/grown/banana,
+/obj/item/food/grown/cherries,
+/obj/item/food/grown/citrus/orange,
+/obj/item/food/grown/corn,
+/obj/item/food/grown/mushroom/amanita,
/turf/simulated/floor/wood/oak,
/area/admin)
"kT" = (
diff --git a/_maps/map_files220/generic/Lavaland.dmm b/_maps/map_files220/generic/Lavaland.dmm
index e2a2366943c0..85f818c2b312 100644
--- a/_maps/map_files220/generic/Lavaland.dmm
+++ b/_maps/map_files220/generic/Lavaland.dmm
@@ -952,7 +952,7 @@
/area/mine/outpost/storage)
"cl" = (
/obj/structure/lattice/catwalk/mining,
-/obj/item/food/snacks/fortunecookie{
+/obj/item/food/fortunecookie{
pixel_y = -5;
pixel_x = -6
},
@@ -5258,7 +5258,7 @@
"oB" = (
/obj/structure/rack,
/obj/item/storage/toolbox/emergency,
-/obj/item/food/snacks/grown/harebell,
+/obj/item/food/grown/harebell,
/obj/item/radio/intercom/directional/south,
/turf/simulated/floor/plating,
/area/mine/outpost/maintenance/east)
diff --git a/_maps/map_files220/generic/centcomm.dmm b/_maps/map_files220/generic/centcomm.dmm
index 5df73cf82337..8077537d47d0 100644
--- a/_maps/map_files220/generic/centcomm.dmm
+++ b/_maps/map_files220/generic/centcomm.dmm
@@ -1519,25 +1519,25 @@
/area/centcom/ss220/admin2)
"aUI" = (
/obj/structure/closet/secure_closet/freezer/fridge,
-/obj/item/food/snacks/frozen/icecream/icecreamcone,
-/obj/item/food/snacks/frozen/icecream/icecreamcone,
-/obj/item/food/snacks/frozen/icecream/icecreamcone,
-/obj/item/food/snacks/frozen/icecream/icecreamcone,
-/obj/item/food/snacks/frozen/icecream,
-/obj/item/food/snacks/frozen/icecream,
-/obj/item/food/snacks/frozen/icecreamsandwich,
-/obj/item/food/snacks/frozen/icecreamsandwich,
-/obj/item/food/snacks/frozen/berryicecreamsandwich,
-/obj/item/food/snacks/frozen/berryicecreamsandwich,
-/obj/item/food/snacks/frozen/berryicecreamsandwich,
-/obj/item/food/snacks/frozen/berryicecreamsandwich,
-/obj/item/food/snacks/frozen/popsicle/frozenpineapple,
-/obj/item/food/snacks/frozen/popsicle/frozenpineapple,
-/obj/item/food/snacks/frozen/popsicle/frozenpineapple,
-/obj/item/food/snacks/frozen/popsicle/orangecream,
-/obj/item/food/snacks/frozen/popsicle/orangecream,
-/obj/item/food/snacks/frozen/popsicle/orangecream,
-/obj/item/food/snacks/frozen/popsicle/orangecream,
+/obj/item/food/frozen/icecream/icecreamcone,
+/obj/item/food/frozen/icecream/icecreamcone,
+/obj/item/food/frozen/icecream/icecreamcone,
+/obj/item/food/frozen/icecream/icecreamcone,
+/obj/item/food/frozen/icecream,
+/obj/item/food/frozen/icecream,
+/obj/item/food/frozen/icecreamsandwich,
+/obj/item/food/frozen/icecreamsandwich,
+/obj/item/food/frozen/berryicecreamsandwich,
+/obj/item/food/frozen/berryicecreamsandwich,
+/obj/item/food/frozen/berryicecreamsandwich,
+/obj/item/food/frozen/berryicecreamsandwich,
+/obj/item/food/frozen/popsicle/frozenpineapple,
+/obj/item/food/frozen/popsicle/frozenpineapple,
+/obj/item/food/frozen/popsicle/frozenpineapple,
+/obj/item/food/frozen/popsicle/orangecream,
+/obj/item/food/frozen/popsicle/orangecream,
+/obj/item/food/frozen/popsicle/orangecream,
+/obj/item/food/frozen/popsicle/orangecream,
/turf/simulated/floor/plasteel/white,
/area/centcom/ss220/evac)
"aVi" = (
@@ -1574,7 +1574,7 @@
/area/centcom/ss220/admin1)
"aWC" = (
/obj/structure/table/wood,
-/obj/item/food/snacks/grown/geranium,
+/obj/item/food/grown/geranium,
/turf/simulated/floor/carpet/green,
/area/centcom/ss220/park)
"aWI" = (
@@ -3726,20 +3726,20 @@
/area/centcom/ss220/command)
"cam" = (
/obj/structure/closet/crate/freezer,
-/obj/item/food/snacks/candy/cotton/blue,
-/obj/item/food/snacks/candy/cotton/pink,
-/obj/item/food/snacks/candy/cotton/rainbow,
-/obj/item/food/snacks/candy/cotton/yellow,
-/obj/item/food/snacks/candy/cotton/rainbow,
-/obj/item/food/snacks/candy/cotton/rainbow,
-/obj/item/food/snacks/candy/cotton/rainbow,
-/obj/item/food/snacks/candy/cotton/rainbow,
-/obj/item/food/snacks/candy/cotton/pink,
-/obj/item/food/snacks/candy/cotton/pink,
-/obj/item/food/snacks/candy/cotton/yellow,
-/obj/item/food/snacks/candy/cotton/yellow,
-/obj/item/food/snacks/candy/cotton/blue,
-/obj/item/food/snacks/candy/cotton/blue,
+/obj/item/food/candy/cotton/blue,
+/obj/item/food/candy/cotton/pink,
+/obj/item/food/candy/cotton/rainbow,
+/obj/item/food/candy/cotton/yellow,
+/obj/item/food/candy/cotton/rainbow,
+/obj/item/food/candy/cotton/rainbow,
+/obj/item/food/candy/cotton/rainbow,
+/obj/item/food/candy/cotton/rainbow,
+/obj/item/food/candy/cotton/pink,
+/obj/item/food/candy/cotton/pink,
+/obj/item/food/candy/cotton/yellow,
+/obj/item/food/candy/cotton/yellow,
+/obj/item/food/candy/cotton/blue,
+/obj/item/food/candy/cotton/blue,
/turf/simulated/floor/plasteel/white,
/area/centcom/ss220/evac)
"cas" = (
@@ -5071,7 +5071,7 @@
/area/centcom/ss220/admin1)
"cRb" = (
/obj/structure/table/wood,
-/obj/item/food/snacks/grown/poppy,
+/obj/item/food/grown/poppy,
/turf/simulated/floor/carpet/red,
/area/centcom/ss220/park)
"cRs" = (
@@ -6316,7 +6316,7 @@
/area/syndicate_mothership/cargo)
"dzI" = (
/obj/structure/table/wood,
-/obj/item/food/snacks/sliceable/chocolatecake,
+/obj/item/food/sliceable/chocolatecake,
/turf/simulated/floor/wood/oak,
/area/syndicate_mothership/elite_squad)
"dzJ" = (
@@ -6833,7 +6833,7 @@
/area/ghost_bar)
"dLA" = (
/obj/structure/table/glass/reinforced/titanium,
-/obj/item/food/snacks/meatbun,
+/obj/item/food/meatbun,
/turf/simulated/floor/mineral/plastitanium,
/area/centcom/ss220/general)
"dLC" = (
@@ -7174,7 +7174,7 @@
/area/centcom/ss220/admin2)
"dXE" = (
/obj/structure/table/glass/reinforced/titanium,
-/obj/item/food/snacks/junglesalad,
+/obj/item/food/junglesalad,
/turf/simulated/floor/mineral/plastitanium,
/area/centcom/ss220/general)
"dXK" = (
@@ -8084,24 +8084,24 @@
/area/shuttle/syndicate_elite)
"eyi" = (
/obj/structure/closet/secure_closet/freezer/meat/open,
-/obj/item/food/snacks/raw_bacon,
-/obj/item/food/snacks/raw_bacon,
-/obj/item/food/snacks/raw_bacon,
-/obj/item/food/snacks/raw_bacon,
-/obj/item/food/snacks/sausage,
-/obj/item/food/snacks/sausage,
-/obj/item/food/snacks/rawcutlet,
-/obj/item/food/snacks/rawcutlet,
-/obj/item/food/snacks/rawcutlet,
-/obj/item/food/snacks/catfishmeat,
-/obj/item/food/snacks/catfishmeat,
-/obj/item/food/snacks/catfishmeat,
-/obj/item/food/snacks/catfishmeat,
-/obj/item/food/snacks/rawcutlet,
-/obj/item/food/snacks/rawcutlet,
-/obj/item/food/snacks/rawcutlet,
-/obj/item/food/snacks/spaghetti,
-/obj/item/food/snacks/spaghetti,
+/obj/item/food/raw_bacon,
+/obj/item/food/raw_bacon,
+/obj/item/food/raw_bacon,
+/obj/item/food/raw_bacon,
+/obj/item/food/sausage,
+/obj/item/food/sausage,
+/obj/item/food/rawcutlet,
+/obj/item/food/rawcutlet,
+/obj/item/food/rawcutlet,
+/obj/item/food/catfishmeat,
+/obj/item/food/catfishmeat,
+/obj/item/food/catfishmeat,
+/obj/item/food/catfishmeat,
+/obj/item/food/rawcutlet,
+/obj/item/food/rawcutlet,
+/obj/item/food/rawcutlet,
+/obj/item/food/spaghetti,
+/obj/item/food/spaghetti,
/turf/simulated/floor/plasteel{
icon_state = "cafeteria"
},
@@ -8625,7 +8625,7 @@
/area/syndicate_mothership)
"eKK" = (
/obj/structure/table/glass/reinforced/titanium,
-/obj/item/food/snacks/limecakeslice,
+/obj/item/food/limecakeslice,
/turf/simulated/floor/mineral/plastitanium,
/area/centcom/ss220/general)
"eLW" = (
@@ -9226,7 +9226,7 @@
/obj/structure/table/wood{
color = "#996633"
},
-/obj/item/food/snacks/sliceable/pizza/diablo,
+/obj/item/food/sliceable/pizza/diablo,
/obj/machinery/computer/security/telescreen/entertainment/directional/south,
/turf/simulated/floor/wood/parquet/tile,
/area/centcom/ss220/admin1)
@@ -9666,25 +9666,25 @@
/obj/structure/closet/secure_closet/freezer/kitchen{
req_access = null
},
-/obj/item/food/snacks/grown/banana,
-/obj/item/food/snacks/grown/banana,
-/obj/item/food/snacks/grown/wheat,
-/obj/item/food/snacks/grown/wheat,
-/obj/item/food/snacks/grown/vanillapod,
-/obj/item/food/snacks/grown/vanillapod,
-/obj/item/food/snacks/grown/sugarcane,
-/obj/item/food/snacks/grown/sugarcane,
-/obj/item/food/snacks/grown/oat,
-/obj/item/food/snacks/grown/oat,
-/obj/item/food/snacks/grown/grapes,
-/obj/item/food/snacks/grown/grapes,
-/obj/item/food/snacks/grown/corn,
-/obj/item/food/snacks/grown/corn,
-/obj/item/food/snacks/grown/chili,
-/obj/item/food/snacks/grown/chili,
-/obj/item/food/snacks/grown/carrot,
-/obj/item/food/snacks/grown/apple,
-/obj/item/food/snacks/grown/ambrosia/vulgaris,
+/obj/item/food/grown/banana,
+/obj/item/food/grown/banana,
+/obj/item/food/grown/wheat,
+/obj/item/food/grown/wheat,
+/obj/item/food/grown/vanillapod,
+/obj/item/food/grown/vanillapod,
+/obj/item/food/grown/sugarcane,
+/obj/item/food/grown/sugarcane,
+/obj/item/food/grown/oat,
+/obj/item/food/grown/oat,
+/obj/item/food/grown/grapes,
+/obj/item/food/grown/grapes,
+/obj/item/food/grown/corn,
+/obj/item/food/grown/corn,
+/obj/item/food/grown/chili,
+/obj/item/food/grown/chili,
+/obj/item/food/grown/carrot,
+/obj/item/food/grown/apple,
+/obj/item/food/grown/ambrosia/vulgaris,
/turf/simulated/floor/plasteel{
icon_state = "cafeteria"
},
@@ -10713,7 +10713,7 @@
/area/centcom/ss220/admin1)
"fOj" = (
/obj/structure/table/glass,
-/obj/item/food/snacks/applepie,
+/obj/item/food/applepie,
/turf/simulated/floor/carpet/black,
/area/centcom/ss220/admin1)
"fOJ" = (
@@ -10877,7 +10877,7 @@
/obj/structure/table/wood{
color = "#996633"
},
-/obj/item/food/snacks/onionrings,
+/obj/item/food/onionrings,
/turf/simulated/floor/wood/parquet/tile,
/area/centcom/ss220/admin1)
"fTe" = (
@@ -11724,9 +11724,9 @@
/turf/simulated/floor/carpet/black,
/area/ghost_bar)
"gyx" = (
-/obj/item/food/snacks/grown/cannabis/rainbow,
-/obj/item/food/snacks/grown/cannabis/rainbow,
-/obj/item/food/snacks/grown/cannabis/rainbow,
+/obj/item/food/grown/cannabis/rainbow,
+/obj/item/food/grown/cannabis/rainbow,
+/obj/item/food/grown/cannabis/rainbow,
/turf/simulated/floor/wood/fancy/cherry,
/area/trader_station/sol)
"gyy" = (
@@ -11890,22 +11890,22 @@
/area/syndicate_mothership/infteam)
"gDl" = (
/obj/structure/closet/secure_closet/freezer/fridge/open,
-/obj/item/food/snacks/grown/potato,
-/obj/item/food/snacks/grown/potato,
-/obj/item/food/snacks/grown/whitebeet,
-/obj/item/food/snacks/grown/whitebeet,
-/obj/item/food/snacks/grown/tomato,
-/obj/item/food/snacks/grown/tomato,
-/obj/item/food/snacks/grown/rice,
-/obj/item/food/snacks/grown/rice,
-/obj/item/food/snacks/grown/icepepper,
-/obj/item/food/snacks/grown/icepepper,
-/obj/item/food/snacks/grown/citrus/lemon,
-/obj/item/food/snacks/grown/citrus/lime,
-/obj/item/food/snacks/grown/citrus/orange,
-/obj/item/food/snacks/grown/cherries,
-/obj/item/food/snacks/grown/apple,
-/obj/item/food/snacks/grown/ambrosia/deus,
+/obj/item/food/grown/potato,
+/obj/item/food/grown/potato,
+/obj/item/food/grown/whitebeet,
+/obj/item/food/grown/whitebeet,
+/obj/item/food/grown/tomato,
+/obj/item/food/grown/tomato,
+/obj/item/food/grown/rice,
+/obj/item/food/grown/rice,
+/obj/item/food/grown/icepepper,
+/obj/item/food/grown/icepepper,
+/obj/item/food/grown/citrus/lemon,
+/obj/item/food/grown/citrus/lime,
+/obj/item/food/grown/citrus/orange,
+/obj/item/food/grown/cherries,
+/obj/item/food/grown/apple,
+/obj/item/food/grown/ambrosia/deus,
/turf/simulated/floor/plasteel{
icon_state = "cafeteria"
},
@@ -13936,7 +13936,7 @@
/area/abductor_ship)
"hHu" = (
/obj/structure/table/glass,
-/obj/item/food/snacks/burger/cheese{
+/obj/item/food/burger/cheese{
pixel_y = 3
},
/obj/item/kitchen/utensil/fork{
@@ -15680,7 +15680,7 @@
/area/shuttle/syndicate)
"iwf" = (
/obj/structure/table/wood,
-/obj/item/food/snacks/chocolatecakeslice,
+/obj/item/food/chocolatecakeslice,
/turf/simulated/floor/wood/oak,
/area/syndicate_mothership/elite_squad)
"iwk" = (
@@ -17279,7 +17279,7 @@
/area/syndicate_mothership/control)
"jAn" = (
/obj/machinery/kitchen_machine/oven,
-/obj/item/food/snacks/rawcookies/chocochips{
+/obj/item/food/rawcookies/chocochips{
pixel_x = -1;
pixel_y = 6
},
@@ -17923,7 +17923,7 @@
/area/syndicate_mothership/elite_squad)
"jRW" = (
/obj/structure/table/glass,
-/obj/item/food/snacks/benedict,
+/obj/item/food/benedict,
/obj/structure/light_fake{
dir = 1
},
@@ -18107,10 +18107,10 @@
/area/centcom/ss220/admin1)
"jZg" = (
/obj/structure/table/wood,
-/obj/item/food/snacks/tofukebab,
-/obj/item/food/snacks/tofukebab,
-/obj/item/food/snacks/tofukebab,
-/obj/item/food/snacks/tofukebab,
+/obj/item/food/tofukebab,
+/obj/item/food/tofukebab,
+/obj/item/food/tofukebab,
+/obj/item/food/tofukebab,
/turf/simulated/floor/plasteel{
icon_state = "darkyellowfull"
},
@@ -19276,8 +19276,8 @@
/obj/structure/table/wood{
color = "#996633"
},
-/obj/item/food/snacks/sliceable/noel,
-/obj/item/food/snacks/smokedsausage,
+/obj/item/food/sliceable/noel,
+/obj/item/food/smokedsausage,
/turf/simulated/floor/plasteel/dark{
icon_state = "dark_large"
},
@@ -21564,7 +21564,7 @@
/area/syndicate_mothership/elite_squad)
"lMX" = (
/obj/structure/table/glass,
-/obj/item/food/snacks/benedict{
+/obj/item/food/benedict{
pixel_y = 6
},
/obj/item/kitchen/utensil/fork{
@@ -23585,7 +23585,7 @@
amount = 115;
desc = null
},
-/obj/item/food/snacks/soup/beetsoup{
+/obj/item/food/soup/beetsoup{
desc = "Со вкусом политических убийств";
name = "Борщ";
pixel_y = 16
@@ -24002,11 +24002,11 @@
/area/shuttle/syndicate)
"nkM" = (
/obj/structure/table/wood,
-/obj/item/food/snacks/burger/superbite,
-/obj/item/food/snacks/burger/superbite,
-/obj/item/food/snacks/burger/superbite,
-/obj/item/food/snacks/burger/superbite,
-/obj/item/food/snacks/burger/superbite,
+/obj/item/food/burger/superbite,
+/obj/item/food/burger/superbite,
+/obj/item/food/burger/superbite,
+/obj/item/food/burger/superbite,
+/obj/item/food/burger/superbite,
/turf/simulated/floor/plasteel{
icon_state = "darkyellowfull"
},
@@ -25717,8 +25717,8 @@
/area/ghost_bar)
"olw" = (
/obj/structure/table/glass,
-/obj/item/food/snacks/boiledpelmeni,
-/obj/item/food/snacks/boiledpelmeni{
+/obj/item/food/boiledpelmeni,
+/obj/item/food/boiledpelmeni{
pixel_y = 14
},
/obj/item/kitchen/utensil/fork{
@@ -26421,7 +26421,7 @@
/obj/structure/table/holotable/wood{
color = "#996633"
},
-/obj/item/food/snacks/burger/cheese,
+/obj/item/food/burger/cheese,
/turf/simulated/floor/carpet/black,
/area/trader_station/sol)
"oGr" = (
@@ -26527,8 +26527,8 @@
/area/centcom/ss220/park)
"oIC" = (
/obj/structure/table/glass,
-/obj/item/food/snacks/boiledpelmeni,
-/obj/item/food/snacks/boiledpelmeni{
+/obj/item/food/boiledpelmeni,
+/obj/item/food/boiledpelmeni{
pixel_y = 14
},
/obj/item/kitchen/utensil/fork{
@@ -27679,7 +27679,7 @@
/area/syndicate_mothership)
"prs" = (
/obj/structure/table/glass,
-/obj/item/food/snacks/applecakeslice{
+/obj/item/food/applecakeslice{
pixel_y = 4
},
/obj/item/kitchen/utensil/fork{
@@ -28703,8 +28703,8 @@
/area/centcom/ss220/admin1)
"pWT" = (
/obj/structure/table/glass,
-/obj/item/food/snacks/boiledpelmeni,
-/obj/item/food/snacks/boiledpelmeni{
+/obj/item/food/boiledpelmeni,
+/obj/item/food/boiledpelmeni{
pixel_y = 14
},
/obj/item/kitchen/utensil/fork{
@@ -29655,7 +29655,7 @@
/area/shuttle/transport)
"qDb" = (
/obj/structure/table/glass,
-/obj/item/food/snacks/bbqribs,
+/obj/item/food/bbqribs,
/turf/simulated/floor/mineral/plastitanium,
/area/centcom/ss220/supply)
"qDc" = (
@@ -30140,7 +30140,7 @@
/area/ghost_bar)
"qQI" = (
/obj/structure/table/glass,
-/obj/item/food/snacks/applepie,
+/obj/item/food/applepie,
/turf/simulated/floor/mineral/plastitanium,
/area/centcom/ss220/supply)
"qRh" = (
@@ -30808,7 +30808,7 @@
/area/centcom/ss220/evac)
"rjq" = (
/obj/structure/table/wood,
-/obj/item/food/snacks/watermelonslice,
+/obj/item/food/watermelonslice,
/obj/effect/decal/syndie_logo{
icon_state = "logo11"
},
@@ -32842,7 +32842,7 @@
pixel_y = 10;
pixel_x = 4
},
-/obj/item/food/snacks/grown/banana{
+/obj/item/food/grown/banana{
pixel_x = -4;
pixel_y = -6
},
@@ -33624,7 +33624,7 @@
/obj/structure/table/wood{
color = "#996633"
},
-/obj/item/food/snacks/meatsteak,
+/obj/item/food/meatsteak,
/turf/simulated/floor/wood/parquet/tile,
/area/centcom/ss220/admin1)
"sIl" = (
@@ -33909,7 +33909,7 @@
/obj/structure/table/wood{
color = "#996633"
},
-/obj/item/food/snacks/sliceable/clowncake,
+/obj/item/food/sliceable/clowncake,
/turf/simulated/floor/plasteel/dark{
icon_state = "dark_large"
},
@@ -34614,7 +34614,7 @@
/obj/structure/table/holotable/wood{
color = "#996633"
},
-/obj/item/food/snacks/sliceable/turkey,
+/obj/item/food/sliceable/turkey,
/turf/simulated/floor/carpet/black,
/area/trader_station/sol)
"thG" = (
@@ -35688,7 +35688,7 @@
/obj/structure/table/wood{
color = "#996633"
},
-/obj/item/food/snacks/sliceable/birthdaycake,
+/obj/item/food/sliceable/birthdaycake,
/turf/simulated/floor/plasteel/dark{
icon_state = "dark_large"
},
@@ -35763,7 +35763,7 @@
/obj/structure/table/wood{
color = "#996633"
},
-/obj/item/food/snacks/sliceable/pizza/macpizza,
+/obj/item/food/sliceable/pizza/macpizza,
/obj/machinery/computer/security/telescreen/entertainment/directional/south,
/turf/simulated/floor/wood/parquet/tile,
/area/centcom/ss220/admin1)
@@ -35833,12 +35833,12 @@
},
/obj/item/stack/cable_coil/random,
/obj/item/stack/cable_coil/random,
-/obj/item/food/snacks/grown/banana,
-/obj/item/food/snacks/grown/banana,
-/obj/item/food/snacks/grown/banana,
-/obj/item/food/snacks/grown/banana,
-/obj/item/food/snacks/grown/banana,
-/obj/item/food/snacks/grown/banana,
+/obj/item/food/grown/banana,
+/obj/item/food/grown/banana,
+/obj/item/food/grown/banana,
+/obj/item/food/grown/banana,
+/obj/item/food/grown/banana,
+/obj/item/food/grown/banana,
/turf/simulated/floor/wood/oak,
/area/syndicate_mothership/infteam)
"tSy" = (
@@ -36138,7 +36138,7 @@
/area/centcom/ss220/admin3)
"uao" = (
/obj/structure/table/wood,
-/obj/item/food/snacks/grown/moonflower,
+/obj/item/food/grown/moonflower,
/turf/simulated/floor/wood/fancy/cherry,
/area/centcom/ss220/park)
"uaw" = (
@@ -36603,26 +36603,26 @@
"ups" = (
/obj/structure/closet/secure_closet/freezer/fridge,
/obj/effect/turf_decal/delivery/white,
-/obj/item/food/snacks/meat,
-/obj/item/food/snacks/meat,
-/obj/item/food/snacks/meat,
+/obj/item/food/meat,
+/obj/item/food/meat,
+/obj/item/food/meat,
/obj/structure/light_fake/spot{
dir = 1
},
-/obj/item/food/snacks/pelmeni,
-/obj/item/food/snacks/pelmeni,
-/obj/item/food/snacks/pelmeni,
-/obj/item/food/snacks/pelmeni,
-/obj/item/food/snacks/pelmeni,
-/obj/item/food/snacks/pelmeni,
-/obj/item/food/snacks/pelmeni,
-/obj/item/food/snacks/pelmeni,
-/obj/item/food/snacks/pelmeni,
-/obj/item/food/snacks/pelmeni,
-/obj/item/food/snacks/pelmeni,
-/obj/item/food/snacks/pelmeni,
-/obj/item/food/snacks/pelmeni,
-/obj/item/food/snacks/pelmeni,
+/obj/item/food/pelmeni,
+/obj/item/food/pelmeni,
+/obj/item/food/pelmeni,
+/obj/item/food/pelmeni,
+/obj/item/food/pelmeni,
+/obj/item/food/pelmeni,
+/obj/item/food/pelmeni,
+/obj/item/food/pelmeni,
+/obj/item/food/pelmeni,
+/obj/item/food/pelmeni,
+/obj/item/food/pelmeni,
+/obj/item/food/pelmeni,
+/obj/item/food/pelmeni,
+/obj/item/food/pelmeni,
/turf/simulated/floor/plasteel/dark{
icon_state = "darkbluefull"
},
@@ -36721,31 +36721,31 @@
/obj/structure/table/wood{
color = "#996633"
},
-/obj/item/food/snacks/salad/herb,
+/obj/item/food/salad/herb,
/turf/simulated/floor/wood/parquet/tile,
/area/centcom/ss220/admin1)
"usQ" = (
/obj/structure/closet/secure_closet/freezer/fridge,
-/obj/item/food/snacks/grown/meatwheat,
-/obj/item/food/snacks/grown/meatwheat,
-/obj/item/food/snacks/grown/meatwheat,
-/obj/item/food/snacks/grown/wheat,
-/obj/item/food/snacks/grown/wheat,
-/obj/item/food/snacks/grown/wheat,
-/obj/item/food/snacks/grown/tomato,
-/obj/item/food/snacks/grown/tomato,
-/obj/item/food/snacks/grown/tomato,
-/obj/item/food/snacks/grown/tomato,
-/obj/item/food/snacks/grown/whitebeet,
-/obj/item/food/snacks/grown/redbeet,
-/obj/item/food/snacks/grown/potato,
-/obj/item/food/snacks/grown/potato,
-/obj/item/food/snacks/grown/potato,
-/obj/item/food/snacks/grown/potato,
-/obj/item/food/snacks/grown/rice,
-/obj/item/food/snacks/grown/rice,
-/obj/item/food/snacks/grown/rice,
-/obj/item/food/snacks/grown/rice,
+/obj/item/food/grown/meatwheat,
+/obj/item/food/grown/meatwheat,
+/obj/item/food/grown/meatwheat,
+/obj/item/food/grown/wheat,
+/obj/item/food/grown/wheat,
+/obj/item/food/grown/wheat,
+/obj/item/food/grown/tomato,
+/obj/item/food/grown/tomato,
+/obj/item/food/grown/tomato,
+/obj/item/food/grown/tomato,
+/obj/item/food/grown/whitebeet,
+/obj/item/food/grown/redbeet,
+/obj/item/food/grown/potato,
+/obj/item/food/grown/potato,
+/obj/item/food/grown/potato,
+/obj/item/food/grown/potato,
+/obj/item/food/grown/rice,
+/obj/item/food/grown/rice,
+/obj/item/food/grown/rice,
+/obj/item/food/grown/rice,
/obj/effect/turf_decal/delivery/white,
/turf/simulated/floor/plasteel/dark{
icon_state = "darkbluefull"
@@ -37852,7 +37852,7 @@
/area/centcom/ss220/park)
"vdd" = (
/obj/structure/table/glass,
-/obj/item/food/snacks/boiledbuckwheat{
+/obj/item/food/boiledbuckwheat{
pixel_y = 2
},
/turf/simulated/floor/carpet/black,
@@ -39941,7 +39941,7 @@
/area/centcom/ss220/bar)
"whc" = (
/obj/structure/table/wood,
-/obj/item/food/snacks/grown/harebell,
+/obj/item/food/grown/harebell,
/turf/simulated/floor/carpet/royalblack,
/area/centcom/ss220/park)
"whl" = (
@@ -41075,7 +41075,7 @@
/area/syndicate_mothership/elite_squad)
"wIW" = (
/obj/structure/table/glass,
-/obj/item/food/snacks/burger/bigbite{
+/obj/item/food/burger/bigbite{
pixel_y = 8;
pixel_x = 3
},
@@ -41465,7 +41465,7 @@
/area/shuttle/escape)
"wTj" = (
/obj/structure/table/wood,
-/obj/item/food/snacks/grown/lily,
+/obj/item/food/grown/lily,
/turf/simulated/floor/carpet/green,
/area/centcom/ss220/park)
"wTs" = (
@@ -41486,7 +41486,7 @@
/obj/structure/table/wood{
color = "#996633"
},
-/obj/item/food/snacks/hotdog,
+/obj/item/food/hotdog,
/turf/simulated/floor/wood/parquet/tile,
/area/centcom/ss220/admin1)
"wVB" = (
@@ -41518,7 +41518,7 @@
/area/syndicate_mothership/infteam)
"wWB" = (
/obj/structure/table/glass,
-/obj/item/food/snacks/appletart{
+/obj/item/food/appletart{
pixel_y = -3
},
/obj/item/kitchen/utensil/fork{
@@ -41678,7 +41678,7 @@
/area/shuttle/syndicate)
"xbg" = (
/obj/structure/table/glass,
-/obj/item/food/snacks/bananacakeslice{
+/obj/item/food/bananacakeslice{
pixel_y = 4
},
/obj/item/kitchen/utensil/fork{
@@ -42343,8 +42343,8 @@
/obj/structure/table/wood{
color = "#996633"
},
-/obj/item/food/snacks/sliceable/pizza/bacon,
-/obj/item/food/snacks/lemoncakeslice,
+/obj/item/food/sliceable/pizza/bacon,
+/obj/item/food/lemoncakeslice,
/turf/simulated/floor/plasteel/dark{
icon_state = "dark_large"
},
@@ -42473,8 +42473,8 @@
/area/syndicate_mothership/control)
"xtW" = (
/obj/structure/table/glass,
-/obj/item/food/snacks/boiledpelmeni,
-/obj/item/food/snacks/boiledpelmeni{
+/obj/item/food/boiledpelmeni,
+/obj/item/food/boiledpelmeni{
pixel_y = 14
},
/obj/item/kitchen/utensil/fork{
@@ -42751,8 +42751,8 @@
/obj/structure/light_fake/spot{
dir = 1
},
-/obj/item/food/snacks/boiledpelmeni,
-/obj/item/food/snacks/boiledpelmeni{
+/obj/item/food/boiledpelmeni,
+/obj/item/food/boiledpelmeni{
pixel_y = 14
},
/obj/item/kitchen/utensil/fork{
@@ -43658,7 +43658,7 @@
/area/centcom/ss220/admin1)
"ycd" = (
/obj/structure/table/glass,
-/obj/item/food/snacks/benedict,
+/obj/item/food/benedict,
/turf/simulated/floor/mineral/plastitanium,
/area/centcom/ss220/supply)
"ych" = (
diff --git a/_maps/map_files220/shuttles/ferry_clown.dmm b/_maps/map_files220/shuttles/ferry_clown.dmm
index d75c27374b4e..9e8014d6abbf 100644
--- a/_maps/map_files220/shuttles/ferry_clown.dmm
+++ b/_maps/map_files220/shuttles/ferry_clown.dmm
@@ -74,7 +74,7 @@
/area/shuttle/transport)
"s" = (
/obj/structure/dresser,
-/obj/item/food/snacks/grown/banana,
+/obj/item/food/grown/banana,
/obj/item/grenade/bananade,
/turf/simulated/floor/noslip,
/area/shuttle/transport)
diff --git a/_maps/map_files220/stations/boxstation.dmm b/_maps/map_files220/stations/boxstation.dmm
index fde88460778a..0d7cd18c0eaf 100644
--- a/_maps/map_files220/stations/boxstation.dmm
+++ b/_maps/map_files220/stations/boxstation.dmm
@@ -7813,7 +7813,7 @@
"aDq" = (
/obj/effect/decal/cleanable/dust,
/obj/structure/table,
-/obj/item/food/snacks/cheesewedge,
+/obj/item/food/cheesewedge,
/turf/simulated/floor/plating,
/area/station/maintenance/fsmaint)
"aDr" = (
@@ -10168,7 +10168,7 @@
/turf/simulated/floor/plating,
/area/station/maintenance/fpmaint)
"aLG" = (
-/obj/item/food/snacks/meat/slab,
+/obj/item/food/meat/slab,
/turf/simulated/floor/plasteel{
icon_state = "showroomfloor"
},
@@ -10796,7 +10796,7 @@
/area/station/maintenance/fpmaint2)
"aOo" = (
/obj/effect/decal/cleanable/dirt,
-/obj/item/food/snacks/meat/slab,
+/obj/item/food/meat/slab,
/turf/simulated/floor/plasteel{
icon_state = "showroomfloor"
},
@@ -11014,7 +11014,7 @@
"aPa" = (
/obj/effect/decal/cleanable/dirt,
/obj/effect/spawner/random_spawners/blood_maybe,
-/obj/item/food/snacks/meat/slab,
+/obj/item/food/meat/slab,
/obj/item/clothing/mask/face/fox,
/turf/simulated/floor/plasteel,
/area/station/maintenance/fpmaint2)
@@ -13151,12 +13151,12 @@
/obj/machinery/button/windowtint/south{
id = "clown"
},
-/obj/item/food/snacks/grown/banana,
-/obj/item/food/snacks/grown/banana{
+/obj/item/food/grown/banana,
+/obj/item/food/grown/banana{
pixel_x = -4;
pixel_y = -6
},
-/obj/item/food/snacks/grown/banana{
+/obj/item/food/grown/banana{
pixel_x = 6;
pixel_y = 4
},
@@ -13195,7 +13195,7 @@
pixel_x = 6;
pixel_y = 12
},
-/obj/item/food/snacks/pie{
+/obj/item/food/pie{
pixel_y = 8;
pixel_x = -4
},
@@ -14256,7 +14256,7 @@
/turf/simulated/floor/plating,
/area/station/maintenance/fpmaint)
"baa" = (
-/obj/item/food/snacks/grown/banana,
+/obj/item/food/grown/banana,
/turf/simulated/floor/plating,
/area/station/maintenance/fpmaint)
"bab" = (
@@ -14675,7 +14675,7 @@
/area/station/maintenance/fpmaint)
"bbH" = (
/obj/structure/table,
-/obj/item/food/snacks/baguette,
+/obj/item/food/baguette,
/turf/simulated/floor/plating,
/area/station/maintenance/fpmaint)
"bbI" = (
@@ -14696,7 +14696,7 @@
/turf/simulated/floor/plating,
/area/station/maintenance/fsmaint)
"bbJ" = (
-/obj/item/food/snacks/grown/banana,
+/obj/item/food/grown/banana,
/obj/item/storage/backpack/duffel/clown,
/turf/simulated/floor/plating,
/area/station/maintenance/fpmaint)
@@ -15908,7 +15908,7 @@
/area/station/service/chapel)
"bgj" = (
/obj/structure/table/wood,
-/obj/item/food/snacks/chips,
+/obj/item/food/chips,
/obj/item/reagent_containers/drinks/cans/cola,
/turf/simulated/floor/carpet,
/area/station/hallway/secondary/entry)
@@ -19955,7 +19955,7 @@
/obj/structure/table/wood,
/obj/machinery/newscaster/directional/north,
/obj/item/storage/fancy/donut_box,
-/obj/item/food/snacks/grown/poppy,
+/obj/item/food/grown/poppy,
/obj/item/radio/intercom/directional/east,
/turf/simulated/floor/wood/fancy,
/area/station/public/sleep_female)
@@ -45718,7 +45718,7 @@
/area/station/engineering/utility)
"dEb" = (
/obj/effect/decal/cleanable/dirt,
-/obj/item/food/snacks/meat/slab,
+/obj/item/food/meat/slab,
/turf/simulated/floor/plating,
/area/station/maintenance/fpmaint)
"dEc" = (
@@ -45772,7 +45772,7 @@
/obj/item/toy/figure/crew/mime{
pixel_x = -5
},
-/obj/item/food/snacks/baguette,
+/obj/item/food/baguette,
/obj/machinery/atmospherics/unary/vent_pump/on{
dir = 1
},
@@ -48650,7 +48650,7 @@
/obj/effect/decal/cleanable/dust,
/obj/item/lighter/random,
/obj/item/rollingpaper,
-/obj/item/food/snacks/grown/cannabis,
+/obj/item/food/grown/cannabis,
/obj/item/ashtray/plastic,
/turf/simulated/floor/carpet/orange,
/area/station/maintenance/fsmaint)
@@ -51546,7 +51546,7 @@
},
/area/station/maintenance/fpmaint)
"fHA" = (
-/obj/effect/decal/cleanable/blood/tracks,
+/obj/effect/decal/cleanable/blood/tracks/mapped,
/obj/effect/decal/cleanable/dirt,
/obj/structure/curtain/black,
/turf/simulated/floor/plasteel{
@@ -54716,7 +54716,7 @@
"gMa" = (
/obj/effect/decal/cleanable/dirt,
/obj/structure/table,
-/obj/item/food/snacks/dough{
+/obj/item/food/dough{
desc = "A piece of dough. It looks moldy and is hard as a rock. Hope you're not planning on turning this into a pizza..";
name = "old dough"
},
@@ -57562,7 +57562,7 @@
pixel_y = 10;
pixel_x = 4
},
-/obj/item/food/snacks/grown/banana{
+/obj/item/food/grown/banana{
pixel_x = -4;
pixel_y = -6
},
@@ -59413,7 +59413,7 @@
/turf/simulated/floor/plating,
/area/station/maintenance/fsmaint)
"isD" = (
-/obj/effect/decal/cleanable/blood/tracks,
+/obj/effect/decal/cleanable/blood/tracks/mapped,
/turf/simulated/floor/plating,
/area/station/maintenance/asmaint)
"isE" = (
@@ -62075,8 +62075,8 @@
/area/station/maintenance/fore)
"jsv" = (
/obj/effect/decal/cleanable/dirt,
-/obj/item/food/snacks/disk,
-/obj/item/food/snacks/disk{
+/obj/item/food/disk,
+/obj/item/food/disk{
pixel_y = -6;
pixel_x = 5
},
@@ -63312,7 +63312,7 @@
/area/station/engineering/atmos)
"jRo" = (
/obj/effect/decal/cleanable/dust,
-/obj/effect/decal/cleanable/blood/tracks,
+/obj/effect/decal/cleanable/blood/tracks/mapped,
/turf/simulated/floor/plating,
/area/station/maintenance/fsmaint)
"jRz" = (
@@ -63642,7 +63642,7 @@
d2 = 8;
icon_state = "2-8"
},
-/obj/item/food/snacks/tomatoslice,
+/obj/item/food/tomatoslice,
/obj/machinery/atmospherics/pipe/simple/hidden/cyan{
dir = 4
},
@@ -63859,7 +63859,7 @@
"kdh" = (
/obj/effect/decal/cleanable/dirt,
/obj/machinery/light/small/directional/south,
-/obj/item/food/snacks/grown/cannabis,
+/obj/item/food/grown/cannabis,
/turf/simulated/floor/carpet,
/area/station/maintenance/asmaint)
"kdx" = (
@@ -67901,7 +67901,7 @@
"lAc" = (
/obj/effect/landmark/burnturf,
/obj/effect/decal/cleanable/blood/old,
-/obj/effect/decal/cleanable/blood/tracks{
+/obj/effect/decal/cleanable/blood/tracks/mapped{
dir = 1
},
/turf/simulated/floor/plating,
@@ -69753,7 +69753,7 @@
/turf/simulated/floor/plasteel,
/area/station/supply/miningdock)
"mdX" = (
-/obj/item/food/snacks/grown/cannabis,
+/obj/item/food/grown/cannabis,
/obj/effect/decal/cleanable/dirt,
/obj/item/clothing/mask/cigarette/medical_marijuana,
/obj/effect/landmark/damageturf,
@@ -70256,7 +70256,7 @@
/area/station/maintenance/fore)
"mll" = (
/obj/effect/decal/cleanable/dirt,
-/obj/item/food/snacks/meat/slab,
+/obj/item/food/meat/slab,
/obj/machinery/atmospherics/pipe/simple/hidden/cyan{
dir = 4
},
@@ -70949,7 +70949,7 @@
/area/station/security/prisonershuttle)
"mze" = (
/obj/structure/table/reinforced,
-/obj/item/food/snacks/breadslice,
+/obj/item/food/breadslice,
/obj/item/reagent_containers/condiment/saltshaker{
pixel_x = -8;
pixel_y = 11
@@ -84598,7 +84598,7 @@
"rkL" = (
/obj/effect/decal/cleanable/dirt,
/obj/item/seeds/cannabis,
-/obj/item/food/snacks/grown/ambrosia/vulgaris,
+/obj/item/food/grown/ambrosia/vulgaris,
/turf/simulated/floor/plating,
/area/station/maintenance/asmaint)
"rkR" = (
@@ -86121,7 +86121,7 @@
"rSe" = (
/obj/machinery/door/airlock/maintenance,
/obj/effect/mapping_helpers/airlock/autoname,
-/obj/effect/decal/cleanable/blood/tracks,
+/obj/effect/decal/cleanable/blood/tracks/mapped,
/turf/simulated/floor/plating,
/area/station/maintenance/asmaint)
"rSz" = (
@@ -88294,7 +88294,7 @@
"sDr" = (
/obj/structure/rack,
/obj/effect/spawner/lootdrop/maintenance,
-/obj/item/food/snacks/donkpocket,
+/obj/item/food/donkpocket,
/turf/simulated/floor/plating,
/area/station/maintenance/aft)
"sDy" = (
@@ -92097,13 +92097,13 @@
/area/station/science/test_chamber)
"tWD" = (
/obj/structure/closet/crate,
-/obj/item/food/snacks/breadslice,
-/obj/item/food/snacks/breadslice,
-/obj/item/food/snacks/breadslice,
-/obj/item/food/snacks/grown/potato,
-/obj/item/food/snacks/grown/potato,
-/obj/item/food/snacks/grown/onion,
-/obj/item/food/snacks/grown/onion,
+/obj/item/food/breadslice,
+/obj/item/food/breadslice,
+/obj/item/food/breadslice,
+/obj/item/food/grown/potato,
+/obj/item/food/grown/potato,
+/obj/item/food/grown/onion,
+/obj/item/food/grown/onion,
/obj/item/storage/box/donkpockets,
/obj/item/storage/fancy/egg_box,
/obj/item/reagent_containers/condiment/flour,
@@ -94078,7 +94078,7 @@
/area/station/security/permabrig)
"uGf" = (
/obj/structure/table/reinforced,
-/obj/item/food/snacks/grilledcheese{
+/obj/item/food/grilledcheese{
pixel_y = 9
},
/turf/simulated/floor/wood/oak,
@@ -94648,7 +94648,7 @@
/area/station/engineering/supermatter_room)
"uRK" = (
/obj/item/organ/internal/heart/vox,
-/obj/item/food/snacks/fried_vox,
+/obj/item/food/fried_vox,
/obj/structure/table,
/obj/item/scalpel,
/turf/simulated/floor/plating,
@@ -102428,7 +102428,7 @@
"xEb" = (
/obj/effect/decal/cleanable/dust,
/obj/structure/table/wood,
-/obj/item/food/snacks/muffin{
+/obj/item/food/muffin{
pixel_x = -5;
pixel_y = 9
},
@@ -102590,10 +102590,10 @@
/area/station/maintenance/abandonedbar)
"xHy" = (
/obj/effect/decal/cleanable/dirt,
-/obj/item/food/snacks/disk{
+/obj/item/food/disk{
pixel_x = -6
},
-/obj/item/food/snacks/disk{
+/obj/item/food/disk{
pixel_y = 10;
pixel_x = 8
},
@@ -102670,7 +102670,7 @@
/area/station/medical/surgery/secondary)
"xII" = (
/obj/structure/table/wood,
-/obj/item/food/snacks/pistachios,
+/obj/item/food/pistachios,
/obj/item/poster/random_contraband,
/turf/simulated/floor/plating,
/area/station/maintenance/asmaint)
@@ -103893,7 +103893,7 @@
/obj/machinery/light/small/directional/north,
/obj/effect/landmark/damageturf,
/obj/structure/table,
-/obj/item/food/snacks/meat/tomatomeat,
+/obj/item/food/meat/tomatomeat,
/obj/effect/decal/cleanable/ants,
/turf/simulated/floor/plating,
/area/station/maintenance/fsmaint)
diff --git a/_maps/map_files220/stations/deltastation.dmm b/_maps/map_files220/stations/deltastation.dmm
index 6d1a660cb02a..5852828a095c 100644
--- a/_maps/map_files220/stations/deltastation.dmm
+++ b/_maps/map_files220/stations/deltastation.dmm
@@ -23,7 +23,7 @@
dir = 9
},
/obj/structure/table/glass,
-/obj/item/food/snacks/grown/banana{
+/obj/item/food/grown/banana{
pixel_x = 6;
pixel_y = 4
},
@@ -1495,11 +1495,11 @@
"alR" = (
/obj/structure/closet/secure_closet/freezer/fridge/open,
/obj/effect/decal/cleanable/dirt,
-/obj/item/food/snacks/meat,
-/obj/item/food/snacks/meat,
-/obj/item/food/snacks/meat,
-/obj/item/food/snacks/meat,
-/obj/item/food/snacks/meat,
+/obj/item/food/meat,
+/obj/item/food/meat,
+/obj/item/food/meat,
+/obj/item/food/meat,
+/obj/item/food/meat,
/obj/item/reagent_containers/condiment/soymilk,
/obj/item/reagent_containers/condiment/soymilk,
/obj/item/reagent_containers/condiment/soymilk,
@@ -5420,7 +5420,7 @@
pixel_x = 4;
pixel_y = 4
},
-/obj/item/food/snacks/baguette,
+/obj/item/food/baguette,
/obj/item/flashlight/lamp/green/off{
pixel_x = 8;
pixel_y = -6
@@ -6918,14 +6918,14 @@
/area/station/service/theatre)
"aEB" = (
/obj/structure/table/wood,
-/obj/item/food/snacks/grown/banana{
+/obj/item/food/grown/banana{
pixel_y = 4;
pixel_x = -6
},
-/obj/item/food/snacks/grown/banana{
+/obj/item/food/grown/banana{
pixel_x = -6
},
-/obj/item/food/snacks/grown/banana{
+/obj/item/food/grown/banana{
pixel_y = -4;
pixel_x = -6
},
@@ -13798,8 +13798,8 @@
/area/station/medical/storage/secondary)
"bhH" = (
/obj/structure/table/reinforced,
-/obj/item/food/snacks/dough,
-/obj/item/food/snacks/dough{
+/obj/item/food/dough,
+/obj/item/food/dough{
pixel_x = 2;
pixel_y = 2
},
@@ -15896,7 +15896,7 @@
/obj/structure/table/reinforced,
/obj/item/folder,
/obj/item/pen,
-/obj/item/food/snacks/grown/apple,
+/obj/item/food/grown/apple,
/obj/machinery/door/window/classic/normal{
dir = 8;
name = "Hydroponics Desk"
@@ -16332,9 +16332,9 @@
/obj/item/seeds/lime,
/obj/item/seeds/watermelon,
/obj/item/seeds/grape,
-/obj/item/food/snacks/grown/wheat,
-/obj/item/food/snacks/grown/watermelon,
-/obj/item/food/snacks/grown/banana,
+/obj/item/food/grown/wheat,
+/obj/item/food/grown/watermelon,
+/obj/item/food/grown/banana,
/obj/machinery/door/window/classic/reversed{
dir = 8;
name = "Hydroponics Desk"
@@ -31610,7 +31610,7 @@
/area/station/public/locker)
"cxf" = (
/obj/structure/table/reinforced,
-/obj/item/food/snacks/mint,
+/obj/item/food/mint,
/obj/item/reagent_containers/drinks/bottle/cream,
/turf/simulated/floor/plasteel{
icon_state = "redfull"
@@ -45193,7 +45193,7 @@
"dMg" = (
/obj/effect/decal/cleanable/dirt,
/obj/structure/table/wood,
-/obj/item/food/snacks/friedegg,
+/obj/item/food/friedegg,
/turf/simulated/floor/wood/oak,
/area/station/maintenance/starboard)
"dMh" = (
@@ -46976,8 +46976,8 @@
dir = 4
},
/obj/structure/table/wood,
-/obj/item/food/snacks/grown/harebell,
-/obj/item/food/snacks/grown/harebell,
+/obj/item/food/grown/harebell,
+/obj/item/food/grown/harebell,
/obj/structure/sign/vacuum/external{
pixel_y = -32
},
@@ -50576,7 +50576,7 @@
/area/station/hallway/primary/central/east)
"eJW" = (
/obj/structure/table/wood,
-/obj/item/food/snacks/grown/redbeet,
+/obj/item/food/grown/redbeet,
/obj/item/clothing/head/ushanka,
/turf/simulated/floor/plating,
/area/station/maintenance/old_kitchen)
@@ -51575,7 +51575,7 @@
/obj/effect/decal/cleanable/dirt,
/obj/machinery/light/small/directional/north,
/obj/effect/landmark/start/prisoner,
-/obj/item/food/snacks/grown/pineapple{
+/obj/item/food/grown/pineapple{
name = "Старый ананас";
desc = "Довольно старый ананас. Интересно как он тут оказался и почему он так странно пахнет..."
},
@@ -52960,7 +52960,7 @@
/turf/simulated/floor/wood/parquet,
/area/station/service/library)
"fwG" = (
-/obj/item/food/snacks/disk,
+/obj/item/food/disk,
/obj/effect/decal/cleanable/dirt,
/turf/simulated/floor/plating,
/area/station/maintenance/starboard2)
@@ -52983,7 +52983,7 @@
},
/area/station/engineering/break_room)
"fwP" = (
-/obj/item/food/snacks/disk{
+/obj/item/food/disk{
pixel_x = -6
},
/obj/effect/decal/cleanable/dust,
@@ -56296,8 +56296,8 @@
/area/station/maintenance/apmaint)
"gAT" = (
/obj/effect/spawner/random_spawners/blood_maybe,
-/obj/item/food/snacks/meat/human,
-/obj/item/food/snacks/meat/human,
+/obj/item/food/meat/human,
+/obj/item/food/meat/human,
/obj/effect/decal/cleanable/dirt,
/turf/simulated/floor/plasteel{
icon_state = "showroomfloor"
@@ -71511,14 +71511,14 @@
/area/station/maintenance/old_kitchen)
"lkZ" = (
/obj/structure/closet/secure_closet/freezer/fridge,
-/obj/item/food/snacks/frozen/icecream/icecreamcone,
-/obj/item/food/snacks/frozen/icecream/icecreamcone,
-/obj/item/food/snacks/frozen/icecream/icecreamcone,
-/obj/item/food/snacks/frozen/icecream/icecreamcone,
-/obj/item/food/snacks/frozen/icecream,
-/obj/item/food/snacks/frozen/icecream,
-/obj/item/food/snacks/frozen/icecreamsandwich,
-/obj/item/food/snacks/frozen/icecreamsandwich,
+/obj/item/food/frozen/icecream/icecreamcone,
+/obj/item/food/frozen/icecream/icecreamcone,
+/obj/item/food/frozen/icecream/icecreamcone,
+/obj/item/food/frozen/icecream/icecreamcone,
+/obj/item/food/frozen/icecream,
+/obj/item/food/frozen/icecream,
+/obj/item/food/frozen/icecreamsandwich,
+/obj/item/food/frozen/icecreamsandwich,
/obj/effect/decal/cleanable/dirt,
/turf/simulated/floor/plasteel{
icon_state = "redyellowfull"
@@ -73249,13 +73249,13 @@
/area/station/maintenance/starboard2)
"lLS" = (
/obj/structure/closet/crate,
-/obj/item/food/snacks/breadslice,
-/obj/item/food/snacks/breadslice,
-/obj/item/food/snacks/breadslice,
-/obj/item/food/snacks/grown/potato,
-/obj/item/food/snacks/grown/potato,
-/obj/item/food/snacks/grown/onion,
-/obj/item/food/snacks/grown/onion,
+/obj/item/food/breadslice,
+/obj/item/food/breadslice,
+/obj/item/food/breadslice,
+/obj/item/food/grown/potato,
+/obj/item/food/grown/potato,
+/obj/item/food/grown/onion,
+/obj/item/food/grown/onion,
/obj/item/storage/box/donkpockets,
/obj/item/reagent_containers/condiment/flour,
/obj/item/reagent_containers/condiment/rice,
@@ -74490,8 +74490,8 @@
/area/station/maintenance/dormitory_maintenance)
"mhO" = (
/obj/structure/table/wood,
-/obj/item/food/snacks/grown/geranium,
-/obj/item/food/snacks/grown/lily{
+/obj/item/food/grown/geranium,
+/obj/item/food/grown/lily{
pixel_x = 4;
pixel_y = 5
},
@@ -74716,8 +74716,8 @@
name = "Kitchen Shutters"
},
/obj/machinery/door/firedoor,
-/obj/item/food/snacks/burrito,
-/obj/item/food/snacks/burrito{
+/obj/item/food/burrito,
+/obj/item/food/burrito{
pixel_x = 5;
pixel_y = 5
},
@@ -74843,10 +74843,10 @@
/obj/structure/window/reinforced{
dir = 1
},
-/obj/item/food/snacks/disk{
+/obj/item/food/disk{
pixel_x = -6
},
-/obj/item/food/snacks/disk{
+/obj/item/food/disk{
pixel_x = 9;
pixel_y = 4
},
@@ -75558,8 +75558,8 @@
/area/station/service/library)
"mzE" = (
/obj/structure/table/reinforced,
-/obj/item/food/snacks/meat,
-/obj/item/food/snacks/meat{
+/obj/item/food/meat,
+/obj/item/food/meat{
pixel_x = 4
},
/obj/item/reagent_containers/condiment/saltshaker{
@@ -81825,7 +81825,7 @@
d2 = 2;
icon_state = "1-2"
},
-/obj/item/food/snacks/grown/redbeet,
+/obj/item/food/grown/redbeet,
/obj/effect/decal/cleanable/dirt,
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
/turf/simulated/floor/wood/oak,
@@ -90286,11 +90286,11 @@
/turf/simulated/floor/plating,
/area/station/maintenance/fore)
"qVu" = (
-/obj/item/food/snacks/disk{
+/obj/item/food/disk{
pixel_y = -6;
pixel_x = 5
},
-/obj/item/food/snacks/disk{
+/obj/item/food/disk{
pixel_y = 10;
pixel_x = 8
},
@@ -90405,7 +90405,7 @@
/area/station/service/hydroponics)
"qXz" = (
/obj/structure/table/wood,
-/obj/item/food/snacks/grown/harebell,
+/obj/item/food/grown/harebell,
/obj/structure/noticeboard{
pixel_y = 29
},
@@ -92925,7 +92925,7 @@
/area/station/medical/storage)
"rMZ" = (
/obj/structure/table,
-/obj/item/food/snacks/beans,
+/obj/item/food/beans,
/obj/effect/decal/cleanable/dirt,
/turf/simulated/floor/plasteel{
icon_state = "neutralfull"
@@ -93305,7 +93305,7 @@
dir = 5
},
/obj/structure/table/glass,
-/obj/item/food/snacks/grown/banana{
+/obj/item/food/grown/banana{
pixel_x = 6;
pixel_y = 4
},
@@ -95239,9 +95239,9 @@
/area/station/maintenance/starboard2)
"sxB" = (
/obj/structure/table/wood,
-/obj/item/food/snacks/grown/poppy,
-/obj/item/food/snacks/grown/poppy,
-/obj/item/food/snacks/grown/poppy,
+/obj/item/food/grown/poppy,
+/obj/item/food/grown/poppy,
+/obj/item/food/grown/poppy,
/turf/simulated/floor/carpet/black,
/area/station/service/chapel)
"sxU" = (
@@ -100666,7 +100666,7 @@
/obj/machinery/atmospherics/unary/vent_scrubber/on{
dir = 4
},
-/obj/item/food/snacks/pie{
+/obj/item/food/pie{
pixel_y = 16
},
/turf/simulated/floor/plasteel{
@@ -103449,7 +103449,7 @@
"uYg" = (
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/dust,
-/obj/item/food/snacks/meat,
+/obj/item/food/meat,
/obj/effect/decal/cleanable/blood/old,
/turf/simulated/floor/plasteel{
icon_state = "showroomfloor"
@@ -103553,7 +103553,7 @@
"vaT" = (
/obj/effect/decal/cleanable/dirt,
/obj/structure/table/wood,
-/obj/item/food/snacks/fries{
+/obj/item/food/fries{
pixel_y = 2
},
/turf/simulated/floor/plating,
@@ -103760,7 +103760,7 @@
/area/station/legal/lawoffice)
"veB" = (
/obj/structure/table/wood,
-/obj/item/food/snacks/grown/geranium,
+/obj/item/food/grown/geranium,
/obj/item/soap/deluxe,
/obj/machinery/power/apc/critical/directional/east,
/obj/structure/cable{
@@ -106868,7 +106868,7 @@
"weH" = (
/obj/effect/decal/cleanable/dirt,
/obj/structure/table/wood,
-/obj/item/food/snacks/birthdaycakeslice,
+/obj/item/food/birthdaycakeslice,
/turf/simulated/floor/plating,
/area/station/maintenance/fsmaint)
"weO" = (
@@ -109861,9 +109861,9 @@
/area/station/medical/virology/lab)
"xcg" = (
/obj/structure/closet/crate/freezer,
-/obj/item/food/snacks/meat/human,
-/obj/item/food/snacks/meat/human,
-/obj/item/food/snacks/meat/human,
+/obj/item/food/meat/human,
+/obj/item/food/meat/human,
+/obj/item/food/meat/human,
/obj/machinery/alarm/directional/south,
/turf/simulated/floor/plasteel{
dir = 10;
diff --git a/_maps/map_files220/stations/metastation.dmm b/_maps/map_files220/stations/metastation.dmm
index c612c1f24db3..8bbd2f7a3d75 100644
--- a/_maps/map_files220/stations/metastation.dmm
+++ b/_maps/map_files220/stations/metastation.dmm
@@ -228,7 +228,7 @@
/area/station/security/detective)
"adc" = (
/obj/structure/closet/secure_closet/clown,
-/obj/item/food/snacks/pie,
+/obj/item/food/pie,
/obj/machinery/newscaster/directional/south,
/turf/simulated/floor/wood,
/area/station/service/clown)
@@ -4090,7 +4090,7 @@
/area/station/maintenance/fore)
"axH" = (
/obj/structure/flora/ausbushes/lavendergrass,
-/obj/item/food/snacks/grown/banana,
+/obj/item/food/grown/banana,
/turf/simulated/floor/grass/no_creep,
/area/station/medical/virology)
"axM" = (
@@ -19182,7 +19182,7 @@
/area/station/hallway/primary/port)
"btq" = (
/obj/structure/table/wood,
-/obj/item/food/snacks/chips,
+/obj/item/food/chips,
/turf/simulated/floor/plasteel{
icon_state = "grimy"
},
@@ -21902,7 +21902,7 @@
/area/station/turret_protected/aisat/interior)
"bAB" = (
/obj/structure/table/wood,
-/obj/item/food/snacks/pie,
+/obj/item/food/pie,
/obj/machinery/light/small/directional/north,
/obj/structure/sign/poster/random{
pixel_y = 32
@@ -26410,7 +26410,7 @@
/area/station/service/kitchen)
"bQP" = (
/obj/structure/table,
-/obj/item/food/snacks/mint,
+/obj/item/food/mint,
/obj/item/kitchen/rollingpin,
/obj/item/reagent_containers/glass/beaker{
pixel_x = 5
@@ -30950,10 +30950,10 @@
},
/obj/structure/table/glass,
/obj/structure/extinguisher_cabinet/directional/west,
-/obj/item/food/snacks/grown/wheat,
-/obj/item/food/snacks/grown/watermelon,
-/obj/item/food/snacks/grown/citrus/orange,
-/obj/item/food/snacks/grown/grapes,
+/obj/item/food/grown/wheat,
+/obj/item/food/grown/watermelon,
+/obj/item/food/grown/citrus/orange,
+/obj/item/food/grown/grapes,
/turf/simulated/floor/plasteel{
dir = 6;
icon_state = "green"
@@ -31479,9 +31479,9 @@
/obj/item/seeds/potato,
/obj/item/seeds/apple,
/obj/item/grown/corncob,
-/obj/item/food/snacks/grown/carrot,
-/obj/item/food/snacks/grown/wheat,
-/obj/item/food/snacks/grown/pumpkin{
+/obj/item/food/grown/carrot,
+/obj/item/food/grown/wheat,
+/obj/item/food/grown/pumpkin{
pixel_y = 5
},
/obj/effect/turf_decal/stripes/line{
@@ -33791,7 +33791,7 @@
},
/obj/structure/flora/ausbushes/sparsegrass,
/obj/structure/flora/ausbushes/ywflowers,
-/obj/item/food/snacks/grown/banana,
+/obj/item/food/grown/banana,
/obj/machinery/atmospherics/unary/vent_scrubber/on{
dir = 1
},
@@ -37153,11 +37153,11 @@
pixel_y = 32
},
/obj/structure/table/wood,
-/obj/item/food/snacks/grown/poppy,
-/obj/item/food/snacks/grown/poppy,
-/obj/item/food/snacks/grown/poppy,
-/obj/item/food/snacks/grown/poppy,
-/obj/item/food/snacks/grown/poppy,
+/obj/item/food/grown/poppy,
+/obj/item/food/grown/poppy,
+/obj/item/food/grown/poppy,
+/obj/item/food/grown/poppy,
+/obj/item/food/grown/poppy,
/obj/machinery/light/directional/north,
/turf/simulated/floor/carpet,
/area/station/service/chapel)
@@ -38418,7 +38418,7 @@
dir = 4
},
/obj/structure/table/wood,
-/obj/item/food/snacks/grown/harebell,
+/obj/item/food/grown/harebell,
/turf/simulated/floor/plasteel{
icon_state = "darkneutralfull"
},
@@ -39219,7 +39219,7 @@
"cJo" = (
/obj/machinery/hydroponics/soil,
/obj/machinery/light/small/directional/north,
-/obj/item/food/snacks/grown/harebell,
+/obj/item/food/grown/harebell,
/turf/simulated/floor/plasteel{
icon_state = "cult"
},
@@ -41458,11 +41458,11 @@
/area/station/maintenance/apmaint)
"cSR" = (
/obj/structure/table/wood,
-/obj/item/food/snacks/grown/poppy,
-/obj/item/food/snacks/grown/poppy,
-/obj/item/food/snacks/grown/poppy,
-/obj/item/food/snacks/grown/poppy,
-/obj/item/food/snacks/grown/poppy,
+/obj/item/food/grown/poppy,
+/obj/item/food/grown/poppy,
+/obj/item/food/grown/poppy,
+/obj/item/food/grown/poppy,
+/obj/item/food/grown/poppy,
/turf/simulated/floor/plasteel{
icon_state = "darkneutralfull"
},
@@ -54307,11 +54307,11 @@
/area/station/turret_protected/ai)
"hLT" = (
/obj/structure/table/wood,
-/obj/item/food/snacks/grown/harebell,
-/obj/item/food/snacks/grown/harebell,
-/obj/item/food/snacks/grown/harebell,
-/obj/item/food/snacks/grown/harebell,
-/obj/item/food/snacks/grown/harebell,
+/obj/item/food/grown/harebell,
+/obj/item/food/grown/harebell,
+/obj/item/food/grown/harebell,
+/obj/item/food/grown/harebell,
+/obj/item/food/grown/harebell,
/turf/simulated/floor/plasteel{
icon_state = "darkneutralfull"
},
@@ -57716,7 +57716,7 @@
},
/area/station/engineering/control)
"jxj" = (
-/obj/item/food/snacks/monkeycube,
+/obj/item/food/monkeycube,
/turf/simulated/floor/grass,
/area/station/maintenance/aft2)
"jyP" = (
@@ -60841,7 +60841,7 @@
/area/station/maintenance/aft2)
"kQv" = (
/obj/structure/grille/broken,
-/obj/item/food/snacks/grown/poppy,
+/obj/item/food/grown/poppy,
/turf/simulated/floor/plating/airless,
/area/space/nearstation)
"kQx" = (
@@ -62088,15 +62088,15 @@
"lpp" = (
/obj/structure/table/reinforced,
/obj/structure/window/reinforced,
-/obj/item/food/snacks/muffin{
+/obj/item/food/muffin{
pixel_x = -4;
pixel_y = 8
},
-/obj/item/food/snacks/carrotcakeslice{
+/obj/item/food/carrotcakeslice{
pixel_x = 8;
pixel_y = -2
},
-/obj/item/food/snacks/poppypretzel{
+/obj/item/food/poppypretzel{
pixel_x = -8;
pixel_y = -3
},
@@ -73072,13 +73072,13 @@
"qvp" = (
/obj/structure/closet/crate,
/obj/effect/decal/cleanable/dirt,
-/obj/item/food/snacks/breadslice,
-/obj/item/food/snacks/breadslice,
-/obj/item/food/snacks/breadslice,
-/obj/item/food/snacks/grown/potato,
-/obj/item/food/snacks/grown/potato,
-/obj/item/food/snacks/grown/onion,
-/obj/item/food/snacks/grown/onion,
+/obj/item/food/breadslice,
+/obj/item/food/breadslice,
+/obj/item/food/breadslice,
+/obj/item/food/grown/potato,
+/obj/item/food/grown/potato,
+/obj/item/food/grown/onion,
+/obj/item/food/grown/onion,
/obj/item/storage/box/donkpockets,
/obj/effect/turf_decal/tile/red,
/obj/effect/turf_decal/tile/red{
@@ -75099,7 +75099,7 @@
/area/station/engineering/engine/supermatter)
"rwj" = (
/obj/structure/safe/floor,
-/obj/item/food/snacks/fortunecookie,
+/obj/item/food/fortunecookie,
/turf/simulated/floor/plating,
/area/station/maintenance/fpmaint)
"rwk" = (
@@ -78317,7 +78317,7 @@
"sXU" = (
/obj/machinery/light/directional/north,
/mob/living/carbon/human/monkey,
-/obj/item/food/snacks/grown/banana,
+/obj/item/food/grown/banana,
/turf/simulated/floor/grass/no_creep,
/area/station/science/genetics)
"sXZ" = (
@@ -83151,7 +83151,7 @@
/area/station/maintenance/starboard2)
"voV" = (
/obj/structure/table/reinforced,
-/obj/item/food/snacks/pie,
+/obj/item/food/pie,
/obj/machinery/door/window/classic/normal{
name = "Kitchen"
},
@@ -83476,7 +83476,7 @@
/area/station/engineering/atmos)
"vwA" = (
/obj/structure/table/glass,
-/obj/item/food/snacks/chips{
+/obj/item/food/chips{
pixel_x = 8
},
/obj/item/reagent_containers/drinks/cans/thirteenloko{
diff --git a/code/__DEFINES/antag_defines.dm b/code/__DEFINES/antag_defines.dm
index 24cfb19d97e4..01a9b291e6a2 100644
--- a/code/__DEFINES/antag_defines.dm
+++ b/code/__DEFINES/antag_defines.dm
@@ -62,6 +62,16 @@ GLOBAL_LIST(contractors)
*/
#define PULSEDEMON_SOURCE_DRAIN_INVALID (-1)
+/**
+ * Objectives
+ */
+#define THEFT_FLAG_SPECIAL 1 // Unused, maybe someone will use it some day, I'll leave it here for the children
+#define THEFT_FLAG_UNIQUE 2
+
+/**
+ * IS_ANTAG defines
+ */
#define IS_CHANGELING(mob) (isliving(mob) && mob?:mind?:has_antag_datum(/datum/antagonist/changeling))
#define IS_MINDSLAVE(mob) (ishuman(mob) && mob?:mind?:has_antag_datum(/datum/antagonist/mindslave, FALSE))
+
diff --git a/code/__DEFINES/dcs/signals.dm b/code/__DEFINES/dcs/signals.dm
index e00e6f47f1dd..d3bab088c96a 100644
--- a/code/__DEFINES/dcs/signals.dm
+++ b/code/__DEFINES/dcs/signals.dm
@@ -876,7 +876,7 @@
//Food
-///from base of obj/item/food/snacks/attack(): (mob/living/eater, mob/feeder)
+///from base of obj/item/food/attack(): (mob/living/eater, mob/feeder)
#define COMSIG_FOOD_EATEN "food_eaten"
//Reagent
diff --git a/code/__DEFINES/proc_refs.dm b/code/__DEFINES/proc_refs.dm
new file mode 100644
index 000000000000..74d404c79802
--- /dev/null
+++ b/code/__DEFINES/proc_refs.dm
@@ -0,0 +1,6 @@
+/// Validates the proc exists on this type (or global unfortunately)
+#define PROC_REF(X) (nameof(.proc/##X))
+#define TYPE_PROC_REF(TYPE, X) (nameof(##TYPE.proc/##X))
+#define GLOBAL_PROC_REF(X) (/proc/##X)
+#define NAMEOF_STATIC(datum, X) (#X || type::##X)
+#define CALL_EXT call_ext
diff --git a/code/__DEFINES/regex.dm b/code/__DEFINES/regex.dm
new file mode 100644
index 000000000000..ea1aece06276
--- /dev/null
+++ b/code/__DEFINES/regex.dm
@@ -0,0 +1,2 @@
+/// Use this for every proc passed in as second argument in regex.Replace. regex.Replace does not allow calling procs by name but as of 515 using proc refs will always call the top level proc instead of overrides
+#define REGEX_REPLACE_HANDLER SHOULD_NOT_OVERRIDE(TRUE)
diff --git a/code/__HELPERS/name_helpers.dm b/code/__HELPERS/name_helpers.dm
index 389d8a9759db..8ae3763c85d7 100644
--- a/code/__HELPERS/name_helpers.dm
+++ b/code/__HELPERS/name_helpers.dm
@@ -132,22 +132,13 @@ GLOBAL_DATUM(syndicate_code_response_regex, /regex)
. = ""
else
. = list()
- var/words = pick(//How many words there will be. Minimum of two. 2, 4 and 5 have a lesser chance of being selected. 3 is the most likely.
- 50; 2,
- 200; 3,
- 50; 4,
+ var/words = pick(//How many words there will be. Minimum of three. 4 is the most likely.
+ 100; 3,
+ 150; 4,
25; 5
)
var/safety[] = list(1,2,3)//Tells the proc which options to remove later on.
- // var/nouns[] = list("love","hate","anger","peace","pride","sympathy","bravery","loyalty","honesty","integrity","compassion","charity","success","courage","deceit","skill","beauty","brilliance","pain","misery","beliefs","dreams","justice","truth","faith","liberty","knowledge","thought","information","culture","trust","dedication","progress","education","hospitality","leisure","trouble","friendships", "relaxation")
- // var/drinks[] = list("vodka and tonic","gin fizz","bahama mama","manhattan","black Russian","whiskey soda","long island tea","margarita","Irish coffee"," manly dwarf","Irish cream","doctor's delight","Beepksy Smash","tequila sunrise","brave bull","gargle blaster","bloody mary","whiskey cola","white Russian","vodka martini","martini","Cuba libre","kahlua","vodka","wine","moonshine")
- // var/locations[] = length(SSmapping.teleportlocs) ? SSmapping.teleportlocs : drinks//if null, defaults to drinks instead.
- // SS220 DELETE
- var/names[] = list()
- for(var/datum/data/record/t in GLOB.data_core.general)//Picks from crew manifest.
- names += t.fields["name"]
-
var/maxwords = words//Extra var to check for duplicates.
for(words,words>0,words--)//Randomly picks from one of the choices below.
@@ -159,24 +150,15 @@ GLOBAL_DATUM(syndicate_code_response_regex, /regex)
switch(pick(safety))//Chance based on the safety list.
if(1)//1 and 2 can only be selected once each to prevent more than two specific names/places/etc.
- switch(rand(1, 2)) // Mainly to add more options later.
- if(1)
- if(length(names))
- . += pick(names)
- if(2)
- . += pick(GLOB.jobs)//Returns a job. // SS220 EDIT - ORIGINAL: (GLOB.joblist)
+ . += pick(GLOB.jobs)//Returns a job. // SS220 EDIT - ORIGINAL: GLOB.joblist
safety -= 1
if(2)
- switch(rand(1,2))//Places or things.
- if(1)
- . += pick(GLOB.cocktails) // SS220 EDIT - ORIGINAL: (drinks)
- if(2)
- . += pick(GLOB.locations) // SS220 EDIT - ORIGINAL: (locations)
+ . += pick(GLOB.locations) // SS220 EDIT - ORIGINAL: GLOB.codeword_locations
safety -= 2
if(3)
switch(rand(1, 3)) // Nouns, adjectives, verbs. Can be selected more than once.
if(1)
- . += pick(GLOB.nouns) // SS220 EDIT - ORIGINAL: (nouns)
+ . += pick(GLOB.nouns) // SS220 EDIT - ORIGINAL:(GLOB.codeword_nouns
if(2)
. += pick(GLOB.adjectives)
if(3)
diff --git a/code/__HELPERS/radiation_helpers.dm b/code/__HELPERS/radiation_helpers.dm
index 79a6194dc80c..357377c96d38 100644
--- a/code/__HELPERS/radiation_helpers.dm
+++ b/code/__HELPERS/radiation_helpers.dm
@@ -21,6 +21,10 @@
. += thing
if((thing.flags_2 & RAD_PROTECT_CONTENTS_2) || (SEND_SIGNAL(thing, COMSIG_ATOM_RAD_PROBE) & COMPONENT_BLOCK_RADIATION))
continue
+ if(ishuman(thing))
+ var/mob/living/carbon/human/H = thing
+ if(H.get_rad_protection() >= 0.99) // I would do exactly equal to 1, but you will never hit anything between 1 and .975, and byond seems to output 0.99999
+ continue
processing_list += thing.contents
/proc/radiation_pulse(atom/source, intensity, range_modifier, log = FALSE, can_contaminate = TRUE)
diff --git a/code/__byond_version_compat.dm b/code/__byond_version_compat.dm
index c95b0e51e382..a45e657e2eef 100644
--- a/code/__byond_version_compat.dm
+++ b/code/__byond_version_compat.dm
@@ -1,20 +1 @@
// This file contains defines allowing targeting byond versions newer than the supported
-//TODO: REMOVE THE 514 STUFF WHEN DREAMCHECKER AND DM LANG SERVER GET THEIR ACT TOGETHER
-// So we want to have compile time guarantees these procs exist on local type, unfortunately 515 killed the .proc/procname syntax so we have to use nameof()
-#if DM_VERSION < 515
-#define PROC_REF(X) (.proc/##X)
-#define TYPE_PROC_REF(TYPE, X) (##TYPE.proc/##X)
-#define GLOBAL_PROC_REF(X) (.proc/##X)
-#define NAMEOF_STATIC(datum, X) (#X || ##datum.##X)
-#define CALL_EXT call
-#else
-/// Validates the proc exists on this type (or global unfortunately)
-#define PROC_REF(X) (nameof(.proc/##X))
-#define TYPE_PROC_REF(TYPE, X) (nameof(##TYPE.proc/##X))
-#define GLOBAL_PROC_REF(X) (/proc/##X)
-#define NAMEOF_STATIC(datum, X) (#X || type::##X)
-#define CALL_EXT call_ext
-#endif
-
-/// Use this for every proc passed in as second argument in regex.Replace. regex.Replace does not allow calling procs by name but as of 515 using proc refs will always call the top level proc instead of overrides
-#define REGEX_REPLACE_HANDLER SHOULD_NOT_OVERRIDE(TRUE)
diff --git a/code/_compile_options.dm b/code/_compile_options.dm
index a7d8bcbd35cd..8c6d4580c43a 100644
--- a/code/_compile_options.dm
+++ b/code/_compile_options.dm
@@ -39,10 +39,10 @@
#define IS_MODE_COMPILED(MODE) (ispath(text2path("/datum/game_mode/"+(MODE))))
//Update this whenever you need to take advantage of more recent byond features
-#define MIN_COMPILER_VERSION 514
-#define MIN_COMPILER_BUILD 1554
+#define MIN_COMPILER_VERSION 515
+#define MIN_COMPILER_BUILD 1619
#if DM_VERSION < MIN_COMPILER_VERSION || DM_BUILD < MIN_COMPILER_BUILD
//Don't forget to update this part
#error Your version of BYOND is too out-of-date to compile this project. Go to https://secure.byond.com/download and update.
-#error You need version 514.1554 or higher
+#error You need version 515.1619 or higher
#endif
diff --git a/code/_globalvars/lists/names.dm b/code/_globalvars/lists/names.dm
index 777411685510..998d76f2e1db 100644
--- a/code/_globalvars/lists/names.dm
+++ b/code/_globalvars/lists/names.dm
@@ -26,6 +26,8 @@ GLOBAL_LIST_INIT(nouns, file2list("config/names/nouns.txt")) // SS220 EDIT - COD
GLOBAL_LIST_INIT(adjectives, file2list("config/names/adjectives.txt"))
GLOBAL_LIST_INIT(dream_strings, file2list("config/names/dreams.txt"))
GLOBAL_LIST_INIT(nightmare_strings, file2list("config/names/nightmares.txt"))
+GLOBAL_LIST_INIT(codeword_locations, file2list("config/names/codeword_locations.txt"))
+GLOBAL_LIST_INIT(codeword_nouns, file2list("config/names/codeword_nouns.txt"))
//loaded on startup because of "
//would include in rsc if ' was used
diff --git a/code/_onclick/ai_onclick.dm b/code/_onclick/ai_onclick.dm
index f5e450ad1355..b08604a13006 100644
--- a/code/_onclick/ai_onclick.dm
+++ b/code/_onclick/ai_onclick.dm
@@ -192,7 +192,7 @@
/obj/machinery/power/apc/AICtrlClick(mob/living/user) // turns off/on APCs.
if(stat & BROKEN)
return
- if(aidisabled)
+ if(!user.can_remote_apc_interface(src))
to_chat(user, "Unable to interface: Connection refused.")
return
toggle_breaker(user)
diff --git a/code/_onclick/click_override.dm b/code/_onclick/click_override.dm
index 38cbf357bf97..3322218791e7 100644
--- a/code/_onclick/click_override.dm
+++ b/code/_onclick/click_override.dm
@@ -33,7 +33,7 @@
to_chat(user, "You draw a bit of power from [src], you can use middle click or alt click to release the power!")
/datum/middleClickOverride/badminClicker
- var/summon_path = /obj/item/food/snacks/cookie
+ var/summon_path = /obj/item/food/cookie
/datum/middleClickOverride/badminClicker/onClick(atom/A, mob/living/user)
var/atom/movable/newObject = new summon_path
diff --git a/code/controllers/subsystem/SSnightshift.dm b/code/controllers/subsystem/SSnightshift.dm
index d29f506d71d2..dd8451ebc987 100644
--- a/code/controllers/subsystem/SSnightshift.dm
+++ b/code/controllers/subsystem/SSnightshift.dm
@@ -59,4 +59,3 @@ SUBSYSTEM_DEF(nightshift)
var/obj/machinery/power/apc/APC = A
if(is_station_level(APC.z))
APC.set_nightshift(active)
- CHECK_TICK
diff --git a/code/controllers/subsystem/SSticker.dm b/code/controllers/subsystem/SSticker.dm
index 4c9357867b5d..42b1b960a38a 100644
--- a/code/controllers/subsystem/SSticker.dm
+++ b/code/controllers/subsystem/SSticker.dm
@@ -225,7 +225,7 @@ SUBSYSTEM_DEF(ticker)
P.ready = FALSE
//Configure mode and assign player to special mode stuff
- mode.pre_pre_setup()
+
var/can_continue = FALSE
can_continue = mode.pre_setup() //Setup special modes. This also does the antag fishing checks.
diff --git a/code/controllers/subsystem/non_firing/SSmapping.dm b/code/controllers/subsystem/non_firing/SSmapping.dm
index b46e15175fca..1b07dae138de 100644
--- a/code/controllers/subsystem/non_firing/SSmapping.dm
+++ b/code/controllers/subsystem/non_firing/SSmapping.dm
@@ -108,9 +108,11 @@ SUBSYSTEM_DEF(mapping)
var/list/pickable_turfs = list()
for(var/turf/turfs in AR)
pickable_turfs += turfs
+ CHECK_TICK
var/turf/picked = safepick(pickable_turfs)
if(picked && is_station_level(picked.z))
teleportlocs[AR.name] = AR
+ CHECK_TICK
teleportlocs = sortAssoc(teleportlocs)
@@ -121,8 +123,10 @@ SUBSYSTEM_DEF(mapping)
var/list/pickable_turfs = list()
for(var/turf/turfs in AR)
pickable_turfs += turfs
+ CHECK_TICK
if(length(pickable_turfs))
ghostteleportlocs[AR.name] = AR
+ CHECK_TICK
ghostteleportlocs = sortAssoc(ghostteleportlocs)
@@ -132,9 +136,11 @@ SUBSYSTEM_DEF(mapping)
var/list/pickable_turfs = list()
for(var/turf/turfs in AR)
pickable_turfs += turfs
+ CHECK_TICK
var/turf/picked = safepick(pickable_turfs)
if(picked && is_station_level(picked.z))
existing_station_areas += AR
+ CHECK_TICK
// World name
if(GLOB.configuration.general.server_name)
diff --git a/code/controllers/subsystem/processing/SSobj_tab_items.dm b/code/controllers/subsystem/processing/SSobj_tab_items.dm
index 617b5e96682b..d03fcd24e79e 100644
--- a/code/controllers/subsystem/processing/SSobj_tab_items.dm
+++ b/code/controllers/subsystem/processing/SSobj_tab_items.dm
@@ -5,7 +5,7 @@ PROCESSING_SUBSYSTEM_DEF(obj_tab_items)
wait = 0.1 SECONDS
// I know this is mostly copypasta, but I want to change the processing logic
-// Sorry bestie :(
+// Sorry bestie :( // my name is AA and I am putting a ) here to make the bracket pairs right
/datum/controller/subsystem/processing/obj_tab_items/fire(resumed = FALSE)
if(!resumed)
currentrun = processing.Copy()
diff --git a/code/datums/datacore.dm b/code/datums/datacore.dm
index 8f64e8654f6a..5998626b26ea 100644
--- a/code/datums/datacore.dm
+++ b/code/datums/datacore.dm
@@ -362,6 +362,28 @@ GLOBAL_VAR_INIT(record_id_num, 1001)
face_s.Blend(h_marking_s, ICON_OVERLAY)
preview_icon.Blend(face_s, ICON_OVERLAY)
+ //Underwear
+ var/icon/underwear_standing = new /icon('icons/mob/clothing/underwear.dmi', "nude")
+ if(H.underwear && H.dna.species.clothing_flags & HAS_UNDERWEAR)
+ var/datum/sprite_accessory/underwear/U = GLOB.underwear_list[H.underwear]
+ if(U)
+ var/u_icon = U.sprite_sheets && (H.dna.species.sprite_sheet_name in U.sprite_sheets) ? U.sprite_sheets[H.dna.species.sprite_sheet_name] : U.icon //Species-fit the undergarment.
+ underwear_standing.Blend(new /icon(u_icon, "uw_[U.icon_state]_s"), ICON_OVERLAY)
+
+ if(H.undershirt && H.dna.species.clothing_flags & HAS_UNDERSHIRT)
+ var/datum/sprite_accessory/undershirt/U2 = GLOB.undershirt_list[H.undershirt]
+ if(U2)
+ var/u2_icon = U2.sprite_sheets && (H.dna.species.sprite_sheet_name in U2.sprite_sheets) ? U2.sprite_sheets[H.dna.species.sprite_sheet_name] : U2.icon
+ underwear_standing.Blend(new /icon(u2_icon, "us_[U2.icon_state]_s"), ICON_OVERLAY)
+
+ if(H.socks && H.dna.species.clothing_flags & HAS_SOCKS)
+ var/datum/sprite_accessory/socks/U3 = GLOB.socks_list[H.socks]
+ if(U3)
+ var/u3_icon = U3.sprite_sheets && (H.dna.species.sprite_sheet_name in U3.sprite_sheets) ? U3.sprite_sheets[H.dna.species.sprite_sheet_name] : U3.icon
+ underwear_standing.Blend(new /icon(u3_icon, "sk_[U3.icon_state]_s"), ICON_OVERLAY)
+
+ if(underwear_standing)
+ preview_icon.Blend(underwear_standing, ICON_OVERLAY)
var/icon/hands_icon = icon(preview_icon)
hands_icon.Blend(icon('icons/mob/clothing/masking_helpers.dmi', "l_hand_mask"), ICON_MULTIPLY)
@@ -555,6 +577,8 @@ GLOBAL_VAR_INIT(record_id_num, 1001)
clothes_s = new /icon('icons/mob/clothing/under/centcom.dmi', "officer_s")
clothes_s.Blend(new /icon('icons/mob/clothing/feet.dmi', "jackboots"), ICON_UNDERLAY)
clothes_s.Blend(new /icon('icons/mob/clothing/hands.dmi', "swat_gl"), ICON_UNDERLAY)
+ if("Naked")
+ clothes_s = null
else
if(H.mind && (H.mind.assigned_role in get_all_centcom_jobs()))
clothes_s = new /icon('icons/mob/clothing/under/centcom.dmi', "officer_s")
diff --git a/code/datums/mind.dm b/code/datums/mind.dm
index 5ccf535012f8..4e95d97f77c2 100644
--- a/code/datums/mind.dm
+++ b/code/datums/mind.dm
@@ -1547,29 +1547,30 @@
* Create and/or add the `datum_type_or_instance` antag datum to the src mind.
*
* Arguments:
- * * datum_type - an antag datum typepath or instance
+ * * antag_datum - an antag datum typepath or instance. If it's a typepath, it will create a new antag datum
* * datum/team/team - the antag team that the src mind should join, if any
*/
-/datum/mind/proc/add_antag_datum(datum_type_or_instance, datum/team/team = null)
- var/datum/antagonist/A
+/datum/mind/proc/add_antag_datum(datum_type_or_instance, datum/team/team)
+ var/datum/antagonist/antag_datum
if(!ispath(datum_type_or_instance))
- A = datum_type_or_instance
- if(!istype(A))
+ antag_datum = datum_type_or_instance
+ if(!istype(antag_datum))
return
else
- A = new datum_type_or_instance()
- if(!A.can_be_owned(src))
- qdel(A)
+ antag_datum = new datum_type_or_instance()
+
+ if(!antag_datum.can_be_owned(src))
+ qdel(antag_datum)
return
- A.owner = src
- LAZYADD(antag_datums, A)
- A.create_team(team)
- var/datum/team/antag_team = A.get_team()
+ antag_datum.owner = src
+ LAZYADD(antag_datums, antag_datum)
+ antag_datum.create_team(team)
+ var/datum/team/antag_team = antag_datum.get_team()
if(antag_team)
antag_team.add_member(src)
- ASSERT(A.owner && A.owner.current)
- A.on_gain()
- return A
+ ASSERT(antag_datum.owner && antag_datum.owner.current)
+ antag_datum.on_gain()
+ return antag_datum
/**
* Remove the specified `datum_type` antag datum from the src mind.
diff --git a/code/datums/outfits/outfit_admin.dm b/code/datums/outfits/outfit_admin.dm
index 1e3bdc048fd1..0ffdc3b81e4a 100644
--- a/code/datums/outfits/outfit_admin.dm
+++ b/code/datums/outfits/outfit_admin.dm
@@ -44,7 +44,7 @@
/obj/item/storage/box/engineer = 1,
/obj/item/flashlight = 1,
/obj/item/card/emag = 1,
- /obj/item/food/snacks/syndidonkpocket = 1
+ /obj/item/food/syndidonkpocket = 1
)
var/id_icon = "syndie"
@@ -97,7 +97,7 @@
/obj/item/ammo_box/magazine/m10mm = 1,
/obj/item/crowbar/red = 1,
/obj/item/grenade/plastic/c4 = 1,
- /obj/item/food/snacks/syndidonkpocket = 1,
+ /obj/item/food/syndidonkpocket = 1,
/obj/item/flashlight = 1,
/obj/item/clothing/shoes/combat = 1
)
@@ -384,7 +384,7 @@
l_ear = /obj/item/radio/headset
glasses = /obj/item/clothing/glasses/thermal/monocle
id = /obj/item/card/id
- l_pocket = /obj/item/food/snacks/grown/banana
+ l_pocket = /obj/item/food/grown/banana
r_pocket = /obj/item/bikehorn
r_hand = /obj/item/fireaxe
backpack_contents = list(
@@ -430,7 +430,7 @@
/obj/item/suppressor = 1,
/obj/item/card/emag = 1,
/obj/item/radio/uplink = 1,
- /obj/item/food/snacks/syndidonkpocket = 1,
+ /obj/item/food/syndidonkpocket = 1,
/obj/item/flashlight = 1
)
@@ -1387,7 +1387,7 @@
/obj/item/stamp/clown = 1,
/obj/item/toy/crayon/rainbow = 1,
/obj/item/reagent_containers/spray/waterflower = 1,
- /obj/item/food/snacks/grown/banana = 1,
+ /obj/item/food/grown/banana = 1,
)
shoes = /obj/item/clothing/shoes/clown_shoes
diff --git a/code/datums/recipe.dm b/code/datums/recipe.dm
index bd684231f9bc..7ee1c021631c 100644
--- a/code/datums/recipe.dm
+++ b/code/datums/recipe.dm
@@ -36,7 +36,7 @@
/datum/recipe
var/list/reagents // example: = list("berryjuice" = 5) // do not list same reagent twice
var/list/items // example: =list(/obj/item/crowbar, /obj/item/welder) // place /foo/bar before /foo
- var/result //example: = /obj/item/food/snacks/donut
+ var/result //example: = /obj/item/food/donut
var/time = 100 // 1/10 part of second
/// Whether or not an upgraded kitchen machine will create more products using the same amount of ingredients
var/duplicate = TRUE
diff --git a/code/datums/ruins/space_ruins.dm b/code/datums/ruins/space_ruins.dm
index 9cd7206d607f..a939f952dd27 100644
--- a/code/datums/ruins/space_ruins.dm
+++ b/code/datums/ruins/space_ruins.dm
@@ -194,6 +194,14 @@
cost = 5 // This is a chonky boy
allow_duplicates = FALSE // Absolutely huge, also has its own APC and the area isnt set to allow many
+/datum/map_template/ruin/space/malftcommsat
+ id = "malftcommsat"
+ suffix = "telecomns_returns.dmm"
+ name = "D.V.O.R.A.K'S Telecommunications Satellite"
+ description = "Seems the telecomunication satellite that went dark 4 years ago finally re-appeared on scanners? Strange signals are coming from it."
+ cost = 5 // Huge. Large. In charge
+ allow_duplicates = FALSE // One sadistic malfunctioning AI is enough. Also unique apcs.
+
/datum/map_template/ruin/space/clownmime
id = "clownmime"
suffix = "clownmime.dmm"
diff --git a/code/game/area/areas/ruins/space_areas.dm b/code/game/area/areas/ruins/space_areas.dm
index 73cd2a0329bf..deec93e41dae 100644
--- a/code/game/area/areas/ruins/space_areas.dm
+++ b/code/game/area/areas/ruins/space_areas.dm
@@ -213,3 +213,30 @@
/area/ruin/space/powered/casino/maints
name = "Service Tunnels"
+
+/// telecomms: Alternative telecomms sat
+/area/ruin/space/telecomms
+ name = "\improper Telecommunications Sat"
+ icon_state = "tcomms"
+ tele_proof = TRUE // No patrick, you can not syndicate teleport or hand teleport instantly into or out of this ruin
+
+/area/ruin/space/telecomms/powercontrol
+ name = "\improper Telecommunications Power Control"
+ icon_state = "engine_smes"
+
+/area/ruin/space/telecomms/tele
+ name = "\improper Tel3coMMunic@tions-SS-S KILL_Welcoming Room" // If you teleport to it. With a name like that. Thats on you.
+ icon_state = "teleporter"
+ tele_proof = FALSE // Oh, right. The teleporter room. The teleporter room for Kuzco, the poison chosen especially to teleport Kuzco, Kuzco's teleporter room. That teleporter room?
+
+/area/ruin/space/telecomms/foyer
+ name = "\improper Telecommunications Foyer"
+ icon_state = "entry"
+
+/area/ruin/space/telecomms/computer
+ name = "\improper Telecommunications Control Room"
+ icon_state = "bridge"
+
+/area/ruin/space/telecomms/chamber
+ name = "\improper Telecommunications Central Compartment"
+ icon_state = "ai_chamber"
diff --git a/code/game/atoms.dm b/code/game/atoms.dm
index c09d202f8660..a10af53d45ee 100644
--- a/code/game/atoms.dm
+++ b/code/game/atoms.dm
@@ -159,6 +159,7 @@
/atom/proc/Initialize(mapload, ...)
SHOULD_CALL_PARENT(TRUE)
+ SHOULD_NOT_SLEEP(TRUE)
if(initialized)
stack_trace("Warning: [src]([type]) initialized multiple times!")
initialized = TRUE
@@ -189,6 +190,7 @@
//called if Initialize returns INITIALIZE_HINT_LATELOAD
/atom/proc/LateInitialize()
+ SHOULD_NOT_SLEEP(TRUE)
return
/atom/proc/onCentcom()
diff --git a/code/game/dna/dna_modifier.dm b/code/game/dna/dna_modifier.dm
index 89b670b09756..96d602fd4d6a 100644
--- a/code/game/dna/dna_modifier.dm
+++ b/code/game/dna/dna_modifier.dm
@@ -185,9 +185,7 @@
return TRUE
/obj/machinery/dna_scannernew/attackby(obj/item/I, mob/user, params)
- if(exchange_parts(user, I))
- return
- else if(istype(I, /obj/item/reagent_containers/glass))
+ if(istype(I, /obj/item/reagent_containers/glass))
if(beaker)
to_chat(user, "A beaker is already loaded into the machine.")
return
@@ -201,26 +199,33 @@
I.forceMove(src)
user.visible_message("[user] adds \a [I] to \the [src]!", "You add \a [I] to \the [src]!")
return
+
if(istype(I, /obj/item/grab))
var/obj/item/grab/G = I
if(!ismob(G.affecting))
return
+
if(occupant)
to_chat(user, "The scanner is already occupied!")
return
+
if(G.affecting.abiotic())
to_chat(user, "Subject may not hold anything in their hands.")
return
+
if(G.affecting.has_buckled_mobs()) //mob attached to us
to_chat(user, "[G] will not fit into [src] because [G.affecting.p_they()] [G.affecting.p_have()] a slime latched onto [G.affecting.p_their()] head.")
return
+
if(panel_open)
to_chat(usr, "Close the maintenance panel first.")
return
+
put_in(G.affecting)
add_fingerprint(user)
qdel(G)
return
+
return ..()
/obj/machinery/dna_scannernew/crowbar_act(mob/user, obj/item/I)
diff --git a/code/game/gamemodes/game_mode.dm b/code/game/gamemodes/game_mode.dm
index c47a80a6a1e2..78b5bb918fa0 100644
--- a/code/game/gamemodes/game_mode.dm
+++ b/code/game/gamemodes/game_mode.dm
@@ -104,23 +104,17 @@
/datum/game_mode/proc/can_start()
var/playerC = 0
for(var/mob/new_player/player in GLOB.player_list)
- if((player.client)&&(player.ready))
+ if((player.client) && (player.ready))
playerC++
if(!GLOB.configuration.gamemode.enable_gamemode_player_limit || (playerC >= required_players))
- return 1
- return 0
-
-//pre_pre_setup() For when you really don't want certain jobs ingame.
-/datum/game_mode/proc/pre_pre_setup()
-
- return 1
+ return TRUE
+ return FALSE
///pre_setup()
///Attempts to select players for special roles the mode might have.
/datum/game_mode/proc/pre_setup()
-
- return 1
+ return TRUE
///post_setup()
@@ -137,12 +131,12 @@
GLOB.start_state = new /datum/station_state()
GLOB.start_state.count()
- return 1
+ return TRUE
///process()
///Called by the gameticker
/datum/game_mode/process()
- return 0
+ return FALSE
// I wonder what this could do guessing by the name
/datum/game_mode/proc/set_mode_in_db()
@@ -264,11 +258,9 @@
if(rev_team)
rev_team.check_all_victory()
-/datum/game_mode/proc/get_players_for_role(role, override_jobbans=0)
+/datum/game_mode/proc/get_players_for_role(role, override_jobbans = FALSE)
var/list/players = list()
var/list/candidates = list()
- //var/list/drafted = list()
- //var/datum/mind/applicant = null
var/roletext = get_roletext(role)
@@ -293,29 +285,56 @@
// Remove candidates who want to be antagonist but have a job that precludes it
if(restricted_jobs)
for(var/datum/mind/player in candidates)
- for(var/job in restricted_jobs)
- if(player.assigned_role == job)
- candidates -= player
+ if(player.assigned_role in restricted_jobs)
+ candidates -= player
return candidates // Returns: The number of people who had the antagonist role set to yes, regardless of recomended_enemies, if that number is greater than recommended_enemies
// recommended_enemies if the number of people with that role set to yes is less than recomended_enemies,
// Less if there are not enough valid players in the game entirely to make recommended_enemies.
+// Just the above proc but for alive players
+/// Gets all alive players for a specific role. Disables offstation roles by default
+/datum/game_mode/proc/get_alive_players_for_role(role, override_jobbans = FALSE, allow_offstation_roles = FALSE)
+ var/list/players = list()
+ var/list/candidates = list()
+
+ var/roletext = get_roletext(role)
+
+ // Assemble a list of active players without jobbans.
+ for(var/mob/living/carbon/human/player in GLOB.player_list)
+ if(!player.client || (locate(player) in SSafk.afk_players))
+ continue
+ if(!jobban_isbanned(player, ROLE_SYNDICATE) && !jobban_isbanned(player, roletext))
+ players += player
+
+ // Shuffle the players list so that it becomes ping-independent.
+ players = shuffle(players)
+
+ // Get a list of all the people who want to be the antagonist for this round, except those with incompatible species
+ for(var/mob/living/carbon/human/player in players)
+ if(player.client.skip_antag || !(allow_offstation_roles || !player.mind?.offstation_role))
+ continue
+
+ if(!(role in player.client.prefs.be_special) || (player.client.prefs.active_character.species in protected_species))
+ continue
+
+ player_draft_log += "[player.key] had [roletext] enabled, so we are drafting them."
+ candidates += player.mind
+ players -= player
+
+ // Remove candidates who want to be antagonist but have a job that precludes it
+ if(restricted_jobs)
+ for(var/datum/mind/player in candidates)
+ if(player.assigned_role in restricted_jobs)
+ candidates -= player
+ return candidates
/datum/game_mode/proc/latespawn(mob)
if(rev_team)
rev_team.update_team_objectives()
rev_team.process_promotion(REVOLUTION_PROMOTION_OPTIONAL)
-
-/*
-/datum/game_mode/proc/check_player_role_pref(role, mob/player)
- if(player.preferences.be_special & role)
- return 1
- return 0
-*/
-
/datum/game_mode/proc/num_players()
. = 0
for(var/mob/new_player/P in GLOB.player_list)
@@ -606,3 +625,34 @@
. += auto_declare_completion_revolution()
. += auto_declare_completion_abduction()
listclearnulls(.)
+
+/// Returns how many traitors should be added to the round
+/datum/game_mode/proc/traitors_to_add()
+ return 0
+
+/datum/game_mode/proc/fill_antag_slots()
+ var/traitors_to_add = 0
+
+ traitors_to_add += traitors_to_add()
+
+ if(length(traitors) < traitors_to_add())
+ traitors_to_add += (traitors_to_add() - length(traitors))
+
+ if(!traitors_to_add)
+ return
+
+ var/list/potential_recruits = get_alive_players_for_role(ROLE_TRAITOR)
+ for(var/datum/mind/candidate as anything in potential_recruits)
+ if(candidate.special_role) // no traitor vampires or changelings or traitors or wizards or ... yeah you get the deal
+ potential_recruits.Remove(candidate)
+
+ if(!length(potential_recruits))
+ return
+
+ log_admin("Attempting to add [traitors_to_add] traitors to the round. There are [length(potential_recruits)] potential recruits.")
+
+ for(var/i in 1 to traitors_to_add)
+ var/datum/mind/traitor = pick_n_take(potential_recruits)
+ traitor.special_role = SPECIAL_ROLE_TRAITOR
+ traitor.restricted_roles = restricted_jobs
+ traitor.add_antag_datum(/datum/antagonist/traitor) // They immediately get a new objective
diff --git a/code/game/gamemodes/miniantags/abduction/gland.dm b/code/game/gamemodes/miniantags/abduction/gland.dm
index fe9fc6505d87..f350a6205911 100644
--- a/code/game/gamemodes/miniantags/abduction/gland.dm
+++ b/code/game/gamemodes/miniantags/abduction/gland.dm
@@ -264,7 +264,7 @@
/obj/item/organ/internal/heart/gland/egg/activate()
owner.visible_message("[owner] [pick(EGG_LAYING_MESSAGES)]")
- new /obj/item/food/snacks/egg/gland(get_turf(owner))
+ new /obj/item/food/egg/gland(get_turf(owner))
/obj/item/organ/internal/heart/gland/electric
cooldown_low = 800
diff --git a/code/game/gamemodes/miniantags/guardian/guardian.dm b/code/game/gamemodes/miniantags/guardian/guardian.dm
index 74178fef9837..cfa12d92b6a5 100644
--- a/code/game/gamemodes/miniantags/guardian/guardian.dm
+++ b/code/game/gamemodes/miniantags/guardian/guardian.dm
@@ -29,7 +29,7 @@
melee_damage_lower = 15
melee_damage_upper = 15
AIStatus = AI_OFF
- butcher_results = list(/obj/item/food/snacks/ectoplasm = 1)
+ butcher_results = list(/obj/item/food/ectoplasm = 1)
hud_type = /datum/hud/guardian
var/summoned = FALSE
var/cooldown = 0
diff --git a/code/game/gamemodes/miniantags/guardian/types/ranged.dm b/code/game/gamemodes/miniantags/guardian/types/ranged.dm
index b35c3aad562a..efd4d59801ec 100644
--- a/code/game/gamemodes/miniantags/guardian/types/ranged.dm
+++ b/code/game/gamemodes/miniantags/guardian/types/ranged.dm
@@ -77,6 +77,11 @@
to_chat(src, "[msg]")
+/mob/living/simple_animal/hostile/guardian/ranged/blob_act(obj/structure/blob/B)
+ if(toggle)
+ return // we don't want blob tiles to hurt us when we fly over them and trigger /Crossed(), this prevents ranged scouts from being insta killed
+ return ..() // otherwise do normal damage!
+
/obj/item/effect/snare
name = "snare"
desc = "You shouldn't be seeing this!"
diff --git a/code/game/gamemodes/miniantags/morph/morph.dm b/code/game/gamemodes/miniantags/morph/morph.dm
index 549719125546..0b84b06ab5d2 100644
--- a/code/game/gamemodes/miniantags/morph/morph.dm
+++ b/code/game/gamemodes/miniantags/morph/morph.dm
@@ -34,7 +34,7 @@
wander = FALSE
attacktext = "glomps"
attack_sound = 'sound/effects/blobattack.ogg'
- butcher_results = list(/obj/item/food/snacks/meat/slab = 2)
+ butcher_results = list(/obj/item/food/meat/slab = 2)
/// If the morph is disguised or not
var/morphed = FALSE
diff --git a/code/game/gamemodes/miniantags/pulsedemon/pulsedemon.dm b/code/game/gamemodes/miniantags/pulsedemon/pulsedemon.dm
index dbac0830d9c4..8ef863e2dcbf 100644
--- a/code/game/gamemodes/miniantags/pulsedemon/pulsedemon.dm
+++ b/code/game/gamemodes/miniantags/pulsedemon/pulsedemon.dm
@@ -804,6 +804,11 @@
/mob/living/simple_animal/demon/pulse_demon/mob_has_gravity()
return TRUE
+/mob/living/simple_animal/demon/pulse_demon/can_remote_apc_interface(obj/machinery/power/apc/ourapc)
+ if(ourapc.hacked_by_ruin_AI || ourapc.malfai || ourapc.malfhack)
+ return FALSE
+ return TRUE
+
/obj/item/organ/internal/heart/demon/pulse
name = "perpetual pacemaker"
desc = "It still beats furiously, thousands of bright lights shine within it."
diff --git a/code/game/gamemodes/miniantags/pulsedemon/pulsedemon_event.dm b/code/game/gamemodes/miniantags/pulsedemon/pulsedemon_event.dm
index 876c223d9c3e..2fb91852d078 100644
--- a/code/game/gamemodes/miniantags/pulsedemon/pulsedemon_event.dm
+++ b/code/game/gamemodes/miniantags/pulsedemon/pulsedemon_event.dm
@@ -1,3 +1,6 @@
+/// A pulse demon requires 1000 watts to regenerate
+#define DEMON_REQUIRED_POWER 1000
+
/datum/event/spawn_pulsedemon
var/key_of_pulsedemon
@@ -11,7 +14,7 @@
var/mob/C = pick(candidates)
key_of_pulsedemon = C.key
dust_if_respawnable(C)
-
+
if(!key_of_pulsedemon)
kill()
return
@@ -29,14 +32,14 @@
var/list/spawn_centers = list()
for(var/datum/regional_powernet/P in SSmachines.powernets)
for(var/obj/structure/cable/C in P.cables)
- if(!is_station_level(C.z) || P.available_power <= 0)
+ if(!is_station_level(C.z) || P.available_power < DEMON_REQUIRED_POWER)
break // skip iterating over this entire powernet, it's not on station or it has zero available power (so it's not suitable)
var/turf/simulated/floor/F = get_turf(C)
// is a floor, not tiled, on station, in maintenance and cable has power?
if(istype(F) && (!F.intact && !F.transparent_floor) && istype(get_area(C), /area/station/maintenance))
spawn_centers += F
- if(!spawn_centers)
+ if(!length(spawn_centers))
message_admins("no suitable spawn locations were found for the pulse demon event.")
log_debug("no suitable spawn locations were found for the pulse demon event.")
kill()
@@ -45,3 +48,5 @@
/datum/event/spawn_pulsedemon/start()
INVOKE_ASYNC(src, PROC_REF(get_pulsedemon))
+
+#undef DEMON_REQUIRED_POWER
diff --git a/code/game/gamemodes/objective.dm b/code/game/gamemodes/objective.dm
index b523c09f3b5e..abe31706428b 100644
--- a/code/game/gamemodes/objective.dm
+++ b/code/game/gamemodes/objective.dm
@@ -35,7 +35,10 @@ GLOBAL_LIST_INIT(potential_theft_objectives, (subtypesof(/datum/theft_objective)
var/datum/objective_holder/holder
-/datum/objective/New(text, datum/team/team_to_join)
+ /// What is the text we show when our objective is delayed?
+ var/delayed_objective_text = "This is a bug! Report it on the github and ask an admin what type of objective"
+
+/datum/objective/New(text, datum/team/team_to_join, datum/mind/_owner)
. = ..()
SHOULD_CALL_PARENT(TRUE)
GLOB.all_objectives += src
@@ -43,6 +46,8 @@ GLOBAL_LIST_INIT(potential_theft_objectives, (subtypesof(/datum/theft_objective)
explanation_text = text
if(team_to_join)
team = team_to_join
+ if(_owner)
+ owner = _owner
/datum/objective/Destroy()
GLOB.all_objectives -= src
@@ -120,7 +125,6 @@ GLOBAL_LIST_INIT(potential_theft_objectives, (subtypesof(/datum/theft_objective)
possible_targets += possible_target
-
if(length(possible_targets) > 0)
target = pick(possible_targets)
@@ -160,6 +164,7 @@ GLOBAL_LIST_INIT(potential_theft_objectives, (subtypesof(/datum/theft_objective)
/datum/objective/assassinate
name = "Assassinate"
martyr_compatible = TRUE
+ delayed_objective_text = "Your objective is to assassinate another crewmember. You will receive further information in a few minutes."
/datum/objective/assassinate/update_explanation_text()
if(target?.current)
@@ -181,6 +186,7 @@ GLOBAL_LIST_INIT(potential_theft_objectives, (subtypesof(/datum/theft_objective)
/datum/objective/assassinateonce
name = "Assassinate once"
martyr_compatible = TRUE
+ delayed_objective_text = "Your objective is to teach another crewmember a lesson. You will receive further information in a few minutes."
var/won = FALSE
/datum/objective/assassinateonce/update_explanation_text()
@@ -244,6 +250,7 @@ GLOBAL_LIST_INIT(potential_theft_objectives, (subtypesof(/datum/theft_objective)
/datum/objective/maroon
name = "Maroon"
martyr_compatible = FALSE
+ delayed_objective_text = "Your objective is to make sure another crewmember doesn't leave on the Escape Shuttle. You will receive further information in a few minutes."
/datum/objective/maroon/update_explanation_text()
if(target?.current)
@@ -265,11 +272,11 @@ GLOBAL_LIST_INIT(potential_theft_objectives, (subtypesof(/datum/theft_objective)
return TRUE
return TRUE
-
/// I want braaaainssss
/datum/objective/debrain
name = "Debrain"
martyr_compatible = FALSE
+ delayed_objective_text = "Your objective is to steal another crewmember's brain. You will receive further information in a few minutes."
/datum/objective/debrain/is_invalid_target(datum/mind/possible_target)
. = ..()
@@ -433,7 +440,6 @@ GLOBAL_LIST_INIT(potential_theft_objectives, (subtypesof(/datum/theft_objective)
return TRUE
-
/datum/objective/escape/escape_with_identity
name = null
/// Stored because the target's `[mob/var/real_name]` can change over the course of the round.
@@ -526,9 +532,10 @@ GLOBAL_LIST_INIT(potential_theft_objectives, (subtypesof(/datum/theft_objective)
/datum/objective/steal
name = "Steal Item"
- var/datum/theft_objective/steal_target
martyr_compatible = FALSE
+ delayed_objective_text = "Your objective is to steal a high-value item. You will receive further information in a few minutes."
var/theft_area
+ var/datum/theft_objective/steal_target
/datum/objective/steal/found_target()
return steal_target
@@ -552,7 +559,7 @@ GLOBAL_LIST_INIT(potential_theft_objectives, (subtypesof(/datum/theft_objective)
continue
if(!O.check_objective_conditions())
continue
- if(O.flags & 2) // THEFT_FLAG_UNIQUE
+ if(O.flags & THEFT_FLAG_UNIQUE)
continue
steal_target = O
@@ -649,7 +656,6 @@ GLOBAL_LIST_INIT(potential_theft_objectives, (subtypesof(/datum/theft_objective)
to_chat(failed_receiver, "Unfortunately, you weren't able to get a stealing kit. This is very bad and you should adminhelp immediately (press F1).")
message_admins("[ADMIN_LOOKUPFLW(failed_receiver)] Failed to spawn with their [item_path] theft kit.")
-
/datum/objective/absorb
name = "Absorb DNA"
needs_target = FALSE
@@ -691,6 +697,7 @@ GLOBAL_LIST_INIT(potential_theft_objectives, (subtypesof(/datum/theft_objective)
/datum/objective/destroy
name = "Destroy AI"
martyr_compatible = TRUE
+ delayed_objective_text = "Your objective is to destroy an Artificial Intelligence. You will receive further information in a few minutes."
/datum/objective/destroy/find_target(list/target_blacklist)
var/list/possible_targets = active_ais(1)
@@ -823,3 +830,23 @@ GLOBAL_LIST_INIT(potential_theft_objectives, (subtypesof(/datum/theft_objective)
explanation_text = "Hunger grows within us, we need to feast on the brains of the uninfected. Scratch, bite, and spread the plague."
needs_target = FALSE
completed = TRUE
+
+// Placeholder objectives that will replace themselves
+
+/datum/objective/delayed
+ needs_target = FALSE
+ var/datum/objective/objective_to_replace_with
+
+/datum/objective/delayed/New(datum/objective/delayed_objective)
+ ..()
+ if(!ispath(delayed_objective))
+ stack_trace("A delayed objective has been given a non-path. Given was instead [delayed_objective]")
+ return
+ objective_to_replace_with = delayed_objective
+ explanation_text = initial(delayed_objective.delayed_objective_text)
+
+/datum/objective/delayed/update_explanation_text()
+ return
+
+/datum/objective/delayed/proc/reveal_objective()
+ return holder.replace_objective(src, new objective_to_replace_with(null, team, owner))
diff --git a/code/game/gamemodes/objective_holder.dm b/code/game/gamemodes/objective_holder.dm
index 2b65e1eb7b47..cdd29db4af98 100644
--- a/code/game/gamemodes/objective_holder.dm
+++ b/code/game/gamemodes/objective_holder.dm
@@ -60,8 +60,7 @@
*/
/datum/objective_holder/proc/replace_objective(datum/objective/old_objective, datum/objective/new_objective)
new_objective = add_objective(new_objective, add_to_list = FALSE)
- new_objective.owner = old_objective.owner
- new_objective.team = old_objective.team
+
// Replace where the old objective was, with the new one
objectives.Insert(objectives.Find(old_objective), new_objective)
remove_objective(old_objective)
@@ -106,7 +105,7 @@
/datum/objective_holder/proc/handle_objective(datum/objective/Objective)
for(var/loop in 1 to 5)
Objective.find_target(assigned_targets)
- if(Objective.found_target()) // handles normal objectives, and steal objectives
+ if(Objective.found_target()) // Handles normal objectives, and steal objectives
return
// We failed to find any target. Oh well...
diff --git a/code/game/gamemodes/steal_items.dm b/code/game/gamemodes/steal_items.dm
index c74a0200a685..1122ec65ef19 100644
--- a/code/game/gamemodes/steal_items.dm
+++ b/code/game/gamemodes/steal_items.dm
@@ -2,9 +2,6 @@
//
// Separated into datums so we can prevent roles from getting certain objectives.
-#define THEFT_FLAG_SPECIAL 1//unused, maybe someone will use it some day, I'll leave it here for the children
-#define THEFT_FLAG_UNIQUE 2
-
/datum/theft_objective
var/name = "this objective is impossible, yell at a coder"
var/typepath=/obj/effect/debugging
diff --git a/code/game/gamemodes/traitor/traitor.dm b/code/game/gamemodes/traitor/traitor.dm
index db1e758add63..10aebe27312b 100644
--- a/code/game/gamemodes/traitor/traitor.dm
+++ b/code/game/gamemodes/traitor/traitor.dm
@@ -17,7 +17,6 @@
to_chat(world, "The current game mode is - Traitor!")
to_chat(world, "There is a syndicate traitor on the station. Do not let the traitor succeed!")
-
/datum/game_mode/traitor/pre_setup()
if(GLOB.configuration.gamemode.prevent_mindshield_antags)
@@ -35,10 +34,7 @@
var/num_traitors = 1
- if(GLOB.configuration.gamemode.traitor_scaling)
- num_traitors = max(1, round((num_players())/(traitor_scaling_coeff)))
- else
- num_traitors = max(1, min(num_players(), traitors_possible))
+ num_traitors = traitors_to_add()
for(var/i in 1 to num_traitors)
if(!length(possible_traitors))
@@ -52,13 +48,35 @@
return FALSE
return TRUE
-
/datum/game_mode/traitor/post_setup()
- for(var/t in pre_traitors)
- var/datum/mind/traitor = t
- traitor.add_antag_datum(/datum/antagonist/traitor)
- ..()
+ . = ..()
+
+ var/random_time = rand(5 MINUTES, 15 MINUTES)
+ if(length(pre_traitors))
+ addtimer(CALLBACK(src, PROC_REF(fill_antag_slots)), random_time)
+
+ for(var/datum/mind/traitor in pre_traitors)
+ var/datum/antagonist/traitor/traitor_datum = new(src)
+ if(ishuman(traitor.current))
+ traitor_datum.delayed_objectives = TRUE
+ traitor_datum.addtimer(CALLBACK(traitor_datum, TYPE_PROC_REF(/datum/antagonist/traitor, reveal_delayed_objectives)), random_time, TIMER_DELETE_ME)
+
+ traitor.add_antag_datum(traitor_datum)
+
+/datum/game_mode/traitor/traitors_to_add()
+ if(GLOB.configuration.gamemode.traitor_scaling)
+ . = max(1, round(num_players() / traitor_scaling_coeff))
+ else
+ . = max(1, min(num_players(), traitors_possible))
+
+ if(!length(traitors))
+ return
+ for(var/datum/mind/traitor_mind as anything in traitors)
+ if(!QDELETED(traitor_mind) && traitor_mind.current) // Explicitly no client check in case you happen to fall SSD when this gets ran
+ continue
+ .++
+ traitors -= traitor_mind
/datum/game_mode/traitor/declare_completion()
..()
diff --git a/code/game/gamemodes/trifecta/trifecta.dm b/code/game/gamemodes/trifecta/trifecta.dm
index 61bd9188ffac..13ed99be84a5 100644
--- a/code/game/gamemodes/trifecta/trifecta.dm
+++ b/code/game/gamemodes/trifecta/trifecta.dm
@@ -20,14 +20,16 @@
var/amount_vamp = 1
var/amount_cling = 1
var/amount_tot = 1
+ /// How many points did we get at roundstart
+ var/cost_at_roundstart
/datum/game_mode/trifecta/announce()
to_chat(world, "The current game mode is - Trifecta")
to_chat(world, "Vampires, traitors, and changelings, oh my! Stay safe as these forces work to bring down the station.")
-
/datum/game_mode/trifecta/pre_setup()
calculate_quantities()
+ cost_at_roundstart = num_players()
if(GLOB.configuration.gamemode.prevent_mindshield_antags)
restricted_jobs += protected_jobs
var/list/datum/mind/possible_vampires = get_players_for_role(ROLE_VAMPIRE)
@@ -101,12 +103,38 @@
/datum/game_mode/trifecta/post_setup()
for(var/datum/mind/vampire as anything in pre_vampires)
vampire.add_antag_datum(/datum/antagonist/vampire)
+
for(var/datum/mind/changeling as anything in pre_changelings)
changeling.add_antag_datum(/datum/antagonist/changeling)
+
for(var/datum/mind/traitor as anything in pre_traitors)
- traitor.add_antag_datum(/datum/antagonist/traitor)
+ var/datum/antagonist/traitor/tot_datum = new()
+ tot_datum.delayed_objectives = TRUE
+ traitor.add_antag_datum(tot_datum)
+
+ if(length(pre_traitors))
+ var/random_time = rand(5 MINUTES, 15 MINUTES)
+ addtimer(CALLBACK(src, PROC_REF(fill_antag_slots)), random_time)
+
..()
+/datum/game_mode/trifecta/traitors_to_add()
+ . = 0
+ for(var/datum/mind/traitor_mind as anything in traitors)
+ if(!QDELETED(traitor_mind) && traitor_mind.current) // Explicitly no client check in case you happen to fall SSD when this gets ran
+ continue
+ .++
+ traitors -= traitor_mind
+
+ var/extra_points = num_players_started() - cost_at_roundstart
+ if(extra_points - TOT_COST < 0)
+ return 0 // Not enough new players to add extra tots
+
+ while(extra_points)
+ .++
+ if(extra_points < TOT_COST) // The leftover change is enough for us to buy another traitor with, what a deal!
+ return
+ extra_points -= TOT_COST
#undef TOT_COST
#undef VAMP_COST
diff --git a/code/game/gamemodes/wizard/artefact.dm b/code/game/gamemodes/wizard/artefact.dm
index 121da3dea0c4..0292df084c56 100644
--- a/code/game/gamemodes/wizard/artefact.dm
+++ b/code/game/gamemodes/wizard/artefact.dm
@@ -886,6 +886,7 @@ GLOBAL_LIST_EMPTY(multiverse)
flags_inv = HIDEFACE
flags_cover = HEADCOVERSEYES
armor = list(MELEE = 20, BULLET = 5, LASER = 5, ENERGY = 5, BOMB = 0, RAD = INFINITY, FIRE = 5, ACID = 5)
+ flags_2 = RAD_PROTECT_CONTENTS_2
cold_protection = HEAD
min_cold_protection_temperature = SPACE_HELM_MIN_TEMP_PROTECT
magical = TRUE
@@ -910,6 +911,7 @@ GLOBAL_LIST_EMPTY(multiverse)
armor = list(MELEE = 35, BULLET = 20, LASER = 35, ENERGY = 10, BOMB = 15, RAD = INFINITY, FIRE = 5, ACID = 5)
flags_inv = HIDEJUMPSUIT | HIDESHOES | HIDETAIL | HIDESHOES
flags = THICKMATERIAL
+ flags_2 = RAD_PROTECT_CONTENTS_2
magical = TRUE
sprite_sheets = list(
"Vox" = 'icons/mob/clothing/species/vox/suit.dmi',
diff --git a/code/game/jobs/job/support.dm b/code/game/jobs/job/support.dm
index ccf93842238e..7cab1816b598 100644
--- a/code/game/jobs/job/support.dm
+++ b/code/game/jobs/job/support.dm
@@ -345,7 +345,7 @@
id = /obj/item/card/id/clown
pda = /obj/item/pda/clown
backpack_contents = list(
- /obj/item/food/snacks/grown/banana = 1,
+ /obj/item/food/grown/banana = 1,
/obj/item/stamp/clown = 1,
/obj/item/toy/crayon/rainbow = 1,
/obj/item/storage/fancy/crayons = 1,
diff --git a/code/game/machinery/Sleeper.dm b/code/game/machinery/Sleeper.dm
index 2cd16f5f1d00..5c2f5a7ff976 100644
--- a/code/game/machinery/Sleeper.dm
+++ b/code/game/machinery/Sleeper.dm
@@ -317,19 +317,19 @@
to_chat(user, "The sleeper has a beaker already.")
return
- if(exchange_parts(user, I))
- return
-
if(istype(I, /obj/item/grab))
var/obj/item/grab/G = I
if(panel_open)
to_chat(user, "Close the maintenance panel first.")
return
+
if(!ismob(G.affecting))
return
+
if(occupant)
to_chat(user, "The sleeper is already occupied!")
return
+
if(G.affecting.has_buckled_mobs()) //mob attached to us
to_chat(user, "[G.affecting] will not fit into [src] because [G.affecting.p_they()] [G.affecting.p_have()] a slime latched onto [G.affecting.p_their()] head.")
return
@@ -340,8 +340,10 @@
if(occupant)
to_chat(user, "The sleeper is already occupied!")
return
+
if(!G || !G.affecting)
return
+
var/mob/M = G.affecting
M.forceMove(src)
occupant = M
diff --git a/code/game/machinery/adv_med.dm b/code/game/machinery/adv_med.dm
index 965532d04e48..5ef02606a44b 100644
--- a/code/game/machinery/adv_med.dm
+++ b/code/game/machinery/adv_med.dm
@@ -65,26 +65,28 @@
icon_state = "bodyscanner-open"
/obj/machinery/bodyscanner/attackby(obj/item/I, mob/user)
- if(exchange_parts(user, I))
- return
-
if(istype(I, /obj/item/grab))
var/obj/item/grab/TYPECAST_YOUR_SHIT = I
if(panel_open)
to_chat(user, "Close the maintenance panel first.")
return
+
if(!ishuman(TYPECAST_YOUR_SHIT.affecting))
return
+
if(occupant)
to_chat(user, "The scanner is already occupied!")
return
+
if(TYPECAST_YOUR_SHIT.affecting.has_buckled_mobs()) //mob attached to us
to_chat(user, "[TYPECAST_YOUR_SHIT.affecting] will not fit into [src] because [TYPECAST_YOUR_SHIT.affecting.p_they()] [TYPECAST_YOUR_SHIT.affecting.p_have()] a fucking slime latched onto [TYPECAST_YOUR_SHIT.affecting.p_their()] head.")
return
+
var/mob/living/carbon/human/M = TYPECAST_YOUR_SHIT.affecting
if(M.abiotic())
to_chat(user, "Subject may not hold anything in their hands.")
return
+
M.forceMove(src)
occupant = M
playsound(src, 'sound/machines/podclose.ogg', 5)
diff --git a/code/game/machinery/autolathe.dm b/code/game/machinery/autolathe.dm
index b5d28534dd9c..96c54e3e9474 100644
--- a/code/game/machinery/autolathe.dm
+++ b/code/game/machinery/autolathe.dm
@@ -265,11 +265,10 @@
/obj/machinery/autolathe/attackby(obj/item/O, mob/user, params)
if(busy)
to_chat(user, "The autolathe is busy. Please wait for completion of previous operation.")
- return 1
- if(exchange_parts(user, O))
- return
+ return TRUE
+
if(stat)
- return 1
+ return TRUE
// Disks in general
if(istype(O, /obj/item/disk))
@@ -280,14 +279,17 @@
if(design.id in files.known_designs)
to_chat(user, "This design has already been loaded into the autolathe.")
- return 1
+ return TRUE
if(!files.CanAddDesign2Known(design))
to_chat(user, "This design is not compatible with the autolathe.")
- return 1
- user.visible_message("[user] begins to load \the [O] in \the [src]...",
+ return TRUE
+
+ user.visible_message(
+ "[user] begins to load \the [O] in \the [src]...",
"You begin to load a design from \the [O]...",
- "You hear the chatter of a floppy drive.")
+ "You hear the chatter of a floppy drive."
+ )
playsound(get_turf(src), 'sound/goonstation/machines/printer_dotmatrix.ogg', 50, 1)
busy = TRUE
if(do_after(user, 14.4, target = src))
@@ -298,11 +300,12 @@
busy = FALSE
else
to_chat(user, "That disk does not have a design on it!")
- return 1
+ return TRUE
+
else
// So that people who are bad at computers don't shred their disks
to_chat(user, "This is not the correct type of disk for the autolathe!")
- return 1
+ return TRUE
return ..()
diff --git a/code/game/machinery/clonepod.dm b/code/game/machinery/clonepod.dm
index 75d0230ad4ff..cf6e0473b044 100644
--- a/code/game/machinery/clonepod.dm
+++ b/code/game/machinery/clonepod.dm
@@ -2,12 +2,12 @@
#define VALID_REAGENTS list("sanguine_reagent", "osseous_reagent")
/// Meats that can be used as biomass for the cloner.
-#define VALID_BIOMASSABLES list(/obj/item/food/snacks/meat, \
- /obj/item/food/snacks/monstermeat, \
- /obj/item/food/snacks/carpmeat, \
- /obj/item/food/snacks/salmonmeat, \
- /obj/item/food/snacks/catfishmeat, \
- /obj/item/food/snacks/tofurkey)
+#define VALID_BIOMASSABLES list(/obj/item/food/meat, \
+ /obj/item/food/monstermeat, \
+ /obj/item/food/carpmeat, \
+ /obj/item/food/salmonmeat, \
+ /obj/item/food/catfishmeat, \
+ /obj/item/food/tofurkey)
/// Internal organs the cloner will *never* accept for insertion.
#define FORBIDDEN_INTERNAL_ORGANS list(/obj/item/organ/internal/regenerative_core, \
@@ -556,9 +556,6 @@
//Attackby and x_acts
/obj/machinery/clonepod/attackby(obj/item/I, mob/user, params)
- if(exchange_parts(user, I))
- return
-
if(I.is_open_container())
return
diff --git a/code/game/machinery/computer/depot_consoles.dm b/code/game/machinery/computer/depot_consoles.dm
index 1a44d688d6aa..a59eb62726b5 100644
--- a/code/game/machinery/computer/depot_consoles.dm
+++ b/code/game/machinery/computer/depot_consoles.dm
@@ -14,8 +14,6 @@
light_color = LIGHT_COLOR_PURE_CYAN
req_access = list(ACCESS_SYNDICATE)
bubble_icon = "syndibot"
- var/window_height = 400 // should be roughly 100 per section. Allow extra space for the lockout alert.
- var/window_width = 400
var/security_lockout = FALSE
var/sound_yes = 'sound/machines/twobeep.ogg'
var/sound_no = 'sound/machines/buzz-sigh.ogg'
@@ -149,7 +147,6 @@
/obj/machinery/computer/syndicate_depot/doors
name = "depot door control computer"
req_access = list()
- window_height = 300
var/pub_access = FALSE
/obj/machinery/computer/syndicate_depot/doors/ui_data(mob/user)
@@ -197,7 +194,6 @@
icon_screen = "explosive"
req_access = list()
alerts_when_broken = TRUE
- window_height = 200 // this might appear big, but it has to have space for the lockout alert
/obj/machinery/computer/syndicate_depot/selfdestruct/ui_data(mob/user)
var/list/data = ..()
@@ -227,7 +223,6 @@
icon_screen = "accelerator"
req_access = list(ACCESS_SYNDICATE_LEADER)
alerts_when_broken = TRUE
- window_height = 280
var/area/syndicate_depot/perimeter/perimeterarea
/obj/machinery/computer/syndicate_depot/shieldcontrol/Initialize(mapload)
@@ -291,7 +286,6 @@
icon_screen = "syndishuttle"
req_access = list()
alerts_when_broken = TRUE
- window_height = 300
var/message_sent = FALSE
/obj/machinery/computer/syndicate_depot/syndiecomms/Initialize(mapload)
@@ -394,7 +388,6 @@
name = "syndicate teleporter console"
icon_screen = "telesci"
icon_keyboard = "teleport_key"
- window_height = 300
req_access = list(ACCESS_SYNDICATE_LEADER)
var/obj/machinery/bluespace_beacon/syndicate/mybeacon
var/obj/effect/portal/advanced/myportal
@@ -454,9 +447,8 @@
var/desc = tgui_input_list(usr, "Please select a location to lock in.", "Syndicate Teleporter", L)
return L[desc]
-/obj/machinery/computer/syndicate_depot/teleporter/proc/update_portal()
+/obj/machinery/computer/syndicate_depot/teleporter/proc/update_portal(turf/tele_target)
if(portal_enabled && !myportal)
- var/turf/tele_target = choosetarget()
if(!tele_target)
return
var/turf/portal_turf = get_step(src, portaldir)
@@ -508,21 +500,24 @@
if(!portal_enabled && myportal)
to_chat(user, "Outgoing Teleport Portal: deactivating... please wait...")
return
- toggle_portal()
- to_chat(user, "Outgoing Teleport Portal: [portal_enabled ? "ON" : "OFF"]")
- updateUsrDialog()
- playsound(user, sound_yes, 50, 0)
-/obj/machinery/computer/syndicate_depot/teleporter/proc/toggle_portal()
+ var/turf/tele_target = null
+ if(!portal_enabled)
+ tele_target = choosetarget()
+ if(!tele_target)
+ return
+
portal_enabled = !portal_enabled
- update_portal()
+ update_portal(tele_target)
+
+ to_chat(user, "Outgoing Teleport Portal: [portal_enabled ? "ON" : "OFF"]")
+ playsound(user, sound_yes, 50, 0)
/obj/machinery/computer/syndicate_depot/aiterminal
name = "syndicate ai terminal"
icon_screen = "command"
req_access = list()
- window_height = 750 // has to be very tall since it has many sections which can expand
/obj/machinery/computer/syndicate_depot/aiterminal/ui_data(mob/user)
var/list/data = ..()
diff --git a/code/game/machinery/computer/law.dm b/code/game/machinery/computer/law.dm
index 2032635e7047..742800f2ab8b 100644
--- a/code/game/machinery/computer/law.dm
+++ b/code/game/machinery/computer/law.dm
@@ -35,8 +35,7 @@
return
if(!emagged) //non-emag law change
var/obj/item/aiModule/M = O
- M.install(src)
- return
+ return M.install(src)
apply_emag_laws(user)
return
@@ -46,7 +45,7 @@
to_chat(user, "Не выбран ИИ. Пожалуйста, выберите его перед загрузкой законов.")
return FALSE
var/turf/T = get_turf(current)
- if(!atoms_share_level(T, src))//off Z level
+ if(!atoms_share_level(T, get_turf(src))) // off Z level
to_chat(user, "Невозможно подключиться: Вы слишком далеко от выбранного силикона!")
return FALSE
return TRUE
diff --git a/code/game/machinery/doors/airlock_types.dm b/code/game/machinery/doors/airlock_types.dm
index 9b96ab09c123..d41d4495f024 100644
--- a/code/game/machinery/doors/airlock_types.dm
+++ b/code/game/machinery/doors/airlock_types.dm
@@ -380,6 +380,22 @@
to_chat(user, "The electronic systems in this door are far too advanced for your primitive hacking peripherals.")
return
+/// This door is used in the malf AI telecomms ruin. This door starts early access, and will try to crush someone to death who enters it's turf like how an AI door crushes.
+/obj/machinery/door/airlock/hatch/syndicate/command/trapped
+ emergency = TRUE
+ hackProof = TRUE
+ aiControlDisabled = AICONTROLDISABLED_ON
+ safe = FALSE
+ normal_integrity = 100 // going to get boosted by security level anyway
+
+/obj/machinery/door/airlock/hatch/syndicate/command/trapped/process()
+ if(locate(/mob/living) in get_turf(src))
+ unlock(TRUE)
+ if(density)
+ open()
+ else
+ close()
+
/obj/machinery/door/airlock/hatch/syndicate/vault
name = "syndicate vault hatch"
req_access_txt = "151"
diff --git a/code/game/machinery/doors/door.dm b/code/game/machinery/doors/door.dm
index f338a799e4b3..a07d1427dfdc 100644
--- a/code/game/machinery/doors/door.dm
+++ b/code/game/machinery/doors/door.dm
@@ -458,12 +458,6 @@
if(!glass && GLOB.cameranet)
GLOB.cameranet.updateVisibility(src, 0)
-/obj/machinery/door/get_superconductivity(direction)
- // Only heatproof airlocks block heat, currently only varedited doors have this
- if(heat_proof && density)
- return FALSE
- return ..()
-
/obj/machinery/door/proc/check_unres() //unrestricted sides. This overlay indicates which directions the player can access even without an ID
if(hasPower() && unres_sides)
. = list()
diff --git a/code/game/machinery/hologram.dm b/code/game/machinery/hologram.dm
index 5afe6da741b1..5f5e72aad486 100644
--- a/code/game/machinery/hologram.dm
+++ b/code/game/machinery/hologram.dm
@@ -149,11 +149,6 @@ GLOBAL_LIST_EMPTY(holopads)
holograph_range += 1 * B.rating
holo_range = holograph_range
-/obj/machinery/hologram/holopad/attackby(obj/item/I, mob/user, params)
- if(exchange_parts(user, I))
- return
- return ..()
-
/obj/machinery/hologram/holopad/multitool_act(mob/living/user, obj/item/I)
. = TRUE
if(!I.use_tool(src, user, 0, volume = I.tool_volume))
diff --git a/code/game/machinery/machinery.dm b/code/game/machinery/machinery.dm
index 2acb73839c11..7188f8546ccd 100644
--- a/code/game/machinery/machinery.dm
+++ b/code/game/machinery/machinery.dm
@@ -344,28 +344,37 @@
power_change()
/obj/machinery/attackby(obj/item/O, mob/user, params)
+ if(exchange_parts(user, O))
+ return
+
if(istype(O, /obj/item/stack/nanopaste))
var/obj/item/stack/nanopaste/N = O
if(stat & BROKEN)
to_chat(user, "[src] is too damaged to be fixed with nanopaste!")
return
+
if(obj_integrity == max_integrity)
to_chat(user, "[src] is fully intact.")
return
+
if(being_repaired)
return
+
if(N.get_amount() < 1)
to_chat(user, "You don't have enough to complete this task!")
return
+
to_chat(user, "You start applying [O] to [src].")
being_repaired = TRUE
var/result = do_after(user, 3 SECONDS, target = src)
being_repaired = FALSE
if(!result)
return
+
if(!N.use(1))
to_chat(user, "You don't have enough to complete this task!") // this is here, as we don't want to use nanopaste until you finish applying
return
+
obj_integrity = min(obj_integrity + 50, max_integrity)
user.visible_message("[user] applied some [O] at [src]'s damaged areas.",\
"You apply some [O] at [src]'s damaged areas.")
@@ -376,57 +385,58 @@
var/shouldplaysound = 0
if(flags & NODECONSTRUCT)
return FALSE
- if(istype(W) && component_parts)
- if(panel_open || W.works_from_distance)
- var/obj/item/circuitboard/CB = locate(/obj/item/circuitboard) in component_parts
- var/P
- if(W.works_from_distance)
- to_chat(user, display_parts(user))
- for(var/obj/item/stock_parts/A in component_parts)
- for(var/D in CB.req_components)
- if(ispath(A.type, D))
- P = D
- break
- for(var/obj/item/stock_parts/B in W.contents)
- if(istype(B, P) && istype(A, P))
- //If it's cell - check: 1) Max charge is better? 2) Max charge same but current charge better? - If both NO -> next content
- if(ispath(B.type, /obj/item/stock_parts/cell))
- var/obj/item/stock_parts/cell/tA = A
- var/obj/item/stock_parts/cell/tB = B
- if(!(tB.maxcharge > tA.maxcharge) && !((tB.maxcharge == tA.maxcharge) && (tB.charge > tA.charge)))
- continue
- //If it's not cell and not better -> next content
- else if(B.rating <= A.rating)
+
+ if(!istype(W) || !component_parts)
+ return FALSE
+
+ if(panel_open || W.works_from_distance)
+ var/obj/item/circuitboard/CB = locate(/obj/item/circuitboard) in component_parts
+ var/P
+ if(W.works_from_distance)
+ to_chat(user, display_parts(user))
+ for(var/obj/item/stock_parts/A in component_parts)
+ for(var/D in CB.req_components)
+ if(ispath(A.type, D))
+ P = D
+ break
+ for(var/obj/item/stock_parts/B in W.contents)
+ if(istype(B, P) && istype(A, P))
+ //If it's cell - check: 1) Max charge is better? 2) Max charge same but current charge better? - If both NO -> next content
+ if(ispath(B.type, /obj/item/stock_parts/cell))
+ var/obj/item/stock_parts/cell/tA = A
+ var/obj/item/stock_parts/cell/tB = B
+ if(!(tB.maxcharge > tA.maxcharge) && !((tB.maxcharge == tA.maxcharge) && (tB.charge > tA.charge)))
continue
- W.remove_from_storage(B, src)
- W.handle_item_insertion(A, user, TRUE)
- component_parts -= A
- component_parts += B
- B.loc = null
- to_chat(user, "[A.name] replaced with [B.name].")
- shouldplaysound = TRUE
- break
- for(var/obj/item/reagent_containers/glass/beaker/A in component_parts)
- for(var/obj/item/reagent_containers/glass/beaker/B in W.contents)
- // If it's not better -> next content
- if(B.reagents.maximum_volume <= A.reagents.maximum_volume)
+ //If it's not cell and not better -> next content
+ else if(B.rating <= A.rating)
continue
W.remove_from_storage(B, src)
- W.handle_item_insertion(A, TRUE)
+ W.handle_item_insertion(A, user, TRUE)
component_parts -= A
component_parts += B
B.loc = null
to_chat(user, "[A.name] replaced with [B.name].")
shouldplaysound = TRUE
break
- RefreshParts()
- else
- to_chat(user, display_parts(user))
- if(shouldplaysound)
- W.play_rped_sound()
- return 1
+ for(var/obj/item/reagent_containers/glass/beaker/A in component_parts)
+ for(var/obj/item/reagent_containers/glass/beaker/B in W.contents)
+ // If it's not better -> next content
+ if(B.reagents.maximum_volume <= A.reagents.maximum_volume)
+ continue
+ W.remove_from_storage(B, src)
+ W.handle_item_insertion(A, TRUE)
+ component_parts -= A
+ component_parts += B
+ B.loc = null
+ to_chat(user, "[A.name] replaced with [B.name].")
+ shouldplaysound = TRUE
+ break
+ RefreshParts()
else
- return 0
+ to_chat(user, display_parts(user))
+ if(shouldplaysound)
+ W.play_rped_sound()
+ return TRUE
/obj/machinery/proc/display_parts(mob/user)
. = list("Following parts detected in the machine:")
diff --git a/code/game/machinery/portable_turret.dm b/code/game/machinery/portable_turret.dm
index 017fede11642..567cc838aed1 100644
--- a/code/game/machinery/portable_turret.dm
+++ b/code/game/machinery/portable_turret.dm
@@ -962,16 +962,6 @@ GLOBAL_LIST_EMPTY(turret_icons)
build_step = 6
return
- if(is_pen(I)) //you can rename turrets like bots!
- var/t = input(user, "Enter new turret name", name, finish_name) as text
- t = sanitize(copytext_char(t, 1, MAX_MESSAGE_LEN))
- if(!t)
- return
- if(!in_range(src, usr) && loc != usr)
- return
-
- finish_name = t
- return
..()
/obj/machinery/porta_turret_construct/screwdriver_act(mob/living/user, obj/item/I)
diff --git a/code/game/machinery/quantum_pad.dm b/code/game/machinery/quantum_pad.dm
index 0a6f672216b4..a57de59b9f15 100644
--- a/code/game/machinery/quantum_pad.dm
+++ b/code/game/machinery/quantum_pad.dm
@@ -88,11 +88,6 @@
teleport_cooldown = initial(teleport_cooldown)
teleport_cooldown -= (E * 100)
-/obj/machinery/quantumpad/attackby(obj/item/I, mob/user, params)
- if(exchange_parts(user, I))
- return
- return ..()
-
/obj/machinery/quantumpad/crowbar_act(mob/user, obj/item/I)
. = TRUE
if(!I.tool_use_check(user, 0))
diff --git a/code/game/machinery/rechargestation.dm b/code/game/machinery/rechargestation.dm
index 99f063351139..5661fbc1bf7a 100644
--- a/code/game/machinery/rechargestation.dm
+++ b/code/game/machinery/rechargestation.dm
@@ -125,13 +125,6 @@
else
icon_state = "borgcharger0"
-/obj/machinery/recharge_station/attackby(obj/item/I, mob/user, params)
- if(exchange_parts(user, I))
- return
-
- else
- return ..()
-
/obj/machinery/recharge_station/crowbar_act(mob/user, obj/item/I)
if(default_deconstruction_crowbar(user, I))
return TRUE
diff --git a/code/game/machinery/recycler.dm b/code/game/machinery/recycler.dm
index 36be7f6cd038..a9b800a59337 100644
--- a/code/game/machinery/recycler.dm
+++ b/code/game/machinery/recycler.dm
@@ -57,12 +57,6 @@
return
update_icon(UPDATE_ICON_STATE)
-/obj/machinery/recycler/attackby(obj/item/I, mob/user, params)
- add_fingerprint(user)
- if(exchange_parts(user, I))
- return
- return ..()
-
/obj/machinery/recycler/crowbar_act(mob/user, obj/item/I)
if(default_deconstruction_crowbar(user, I))
return TRUE
diff --git a/code/game/machinery/shieldgen.dm b/code/game/machinery/shieldgen.dm
index c51c0d667108..db9e46148d87 100644
--- a/code/game/machinery/shieldgen.dm
+++ b/code/game/machinery/shieldgen.dm
@@ -392,6 +392,7 @@
/obj/machinery/shieldwallgen/proc/activate()
activated = TRUE
START_PROCESSING(SSmachines, src)
+ update_icon(UPDATE_ICON_STATE)
for(var/direction in GLOB.cardinal)
INVOKE_ASYNC(src, PROC_REF(try_link_generators), direction)
diff --git a/code/game/machinery/syndicatebomb.dm b/code/game/machinery/syndicatebomb.dm
index d4d0257317dd..f6158b34e363 100644
--- a/code/game/machinery/syndicatebomb.dm
+++ b/code/game/machinery/syndicatebomb.dm
@@ -400,7 +400,7 @@
qdel(src)
/obj/item/bombcore/badmin/summon
- var/summon_path = /obj/item/food/snacks/cookie
+ var/summon_path = /obj/item/food/cookie
var/amt_summon = 1
/obj/item/bombcore/badmin/summon/detonate()
diff --git a/code/game/machinery/tcomms/tcomms_presets.dm b/code/game/machinery/tcomms/tcomms_presets.dm
index 647ef13c3597..14fa95b6d6c5 100644
--- a/code/game/machinery/tcomms/tcomms_presets.dm
+++ b/code/game/machinery/tcomms/tcomms_presets.dm
@@ -31,6 +31,14 @@
hidden_link = TRUE
password_bypass = TRUE
+/// DVORAK RELAY
+/obj/machinery/tcomms/relay/dvorak
+ network_id = "DEBUG_RELAY_DO_NOT_REMOVE" // I'll change this if needed to avoid confusion, but if I was trying to sneak into a relay system, well...
+ autolink_id = "STATION-CORE"
+ hidden_link = TRUE
+ password_bypass = TRUE // No one can steal this anyway.
+ active = TRUE
+
GLOBAL_VAR(cc_tcomms_relay_uid)
/obj/machinery/tcomms/relay/cc/Initialize(mapload)
. = ..()
diff --git a/code/game/machinery/teleporter.dm b/code/game/machinery/teleporter.dm
index 8956abda0143..c3285fca8eae 100644
--- a/code/game/machinery/teleporter.dm
+++ b/code/game/machinery/teleporter.dm
@@ -419,11 +419,6 @@
use_power(5000)
return
-/obj/machinery/teleport/hub/attackby(obj/item/I, mob/user, params)
- if(exchange_parts(user, I))
- return
- return ..()
-
/obj/machinery/teleport/hub/crowbar_act(mob/user, obj/item/I)
if(default_deconstruction_crowbar(user, I))
return TRUE
@@ -555,11 +550,6 @@
else
set_light(0)
-/obj/machinery/teleport/perma/attackby(obj/item/I, mob/user, params)
- if(exchange_parts(user, I))
- return
- return ..()
-
/obj/machinery/teleport/perma/crowbar_act(mob/user, obj/item/I)
if(default_deconstruction_crowbar(user, I))
return TRUE
@@ -634,16 +624,16 @@
return ..()
/obj/machinery/teleport/station/attackby(obj/item/I, mob/user, params)
- if(exchange_parts(user, I))
- return
if(panel_open && istype(I, /obj/item/circuitboard/teleporter_perma))
if(!teleporter_console)
to_chat(user, "[src] is not linked to a teleporter console.")
return
+
var/obj/item/circuitboard/teleporter_perma/C = I
C.target = teleporter_console.target
to_chat(user, "You copy the targeting information from [src] to [C].")
return
+
return ..()
/obj/machinery/teleport/station/crowbar_act(mob/user, obj/item/I)
diff --git a/code/game/machinery/vendors/contraband_vendors.dm b/code/game/machinery/vendors/contraband_vendors.dm
index 0e97db6d7b2c..073e744e4ed5 100644
--- a/code/game/machinery/vendors/contraband_vendors.dm
+++ b/code/game/machinery/vendors/contraband_vendors.dm
@@ -70,10 +70,10 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/economy/vending/wallmed/syndicate, 32
icon_off = "nutri"
icon_panel = "thin_vendor"
category = VENDOR_TYPE_FOOD
- products = list(/obj/item/food/snacks/chips = 6,
- /obj/item/food/snacks/sosjerky = 6,
- /obj/item/food/snacks/syndicake = 6,
- /obj/item/food/snacks/cheesiehonkers = 6)
+ products = list(/obj/item/food/chips = 6,
+ /obj/item/food/sosjerky = 6,
+ /obj/item/food/syndicake = 6,
+ /obj/item/food/cheesiehonkers = 6)
/obj/machinery/economy/vending/hydroseeds/syndicate_druglab
products = list(/obj/item/seeds/ambrosia/deus = 2,
diff --git a/code/game/machinery/vendors/departmental_vendors.dm b/code/game/machinery/vendors/departmental_vendors.dm
index 8e1f1115fcef..2a31d622ef6c 100644
--- a/code/game/machinery/vendors/departmental_vendors.dm
+++ b/code/game/machinery/vendors/departmental_vendors.dm
@@ -288,7 +288,7 @@
contraband = list(/obj/item/reagent_containers/syringe/insulin = 4,
/obj/item/reagent_containers/glass/bottle/sulfonal = 1,
/obj/item/reagent_containers/glass/bottle/pancuronium = 1,
- /obj/item/food/snacks/candy/sucker = 2)
+ /obj/item/food/candy/sucker = 2)
armor = list(MELEE = 50, BULLET = 20, LASER = 20, ENERGY = 20, BOMB = 0, RAD = 0, FIRE = 100, ACID = 70)
resistance_flags = FIRE_PROOF
@@ -336,7 +336,7 @@
/obj/item/grenade/flashbang = 4,
/obj/item/flash = 5,
/obj/item/reagent_containers/spray/pepper = 5,
- /obj/item/food/snacks/donut = 12,
+ /obj/item/food/donut = 12,
/obj/item/storage/box/evidence = 6,
/obj/item/flashlight/seclite = 4,
/obj/item/restraints/legcuffs/bola/energy = 7,
@@ -348,5 +348,5 @@
/obj/item/hailer = 5)
refill_canister = /obj/item/vending_refill/security
- prices = list(/obj/item/food/snacks/donut = 40,
+ prices = list(/obj/item/food/donut = 40,
/obj/item/storage/fancy/donut_box = 200) //Bulk discount
diff --git a/code/game/machinery/vendors/generic_vendors.dm b/code/game/machinery/vendors/generic_vendors.dm
index 429a265bdb3f..9f48606fde57 100644
--- a/code/game/machinery/vendors/generic_vendors.dm
+++ b/code/game/machinery/vendors/generic_vendors.dm
@@ -866,9 +866,9 @@
icon_off = "nutri"
icon_panel = "thin_vendor"
category = VENDOR_TYPE_FOOD
- products = list(/obj/item/food/snacks/tofu = 24,
+ products = list(/obj/item/food/tofu = 24,
/obj/item/reagent_containers/drinks/ice = 12,
- /obj/item/food/snacks/candy/candy_corn = 6)
+ /obj/item/food/candy/candy_corn = 6)
contraband = list(/obj/item/kitchen/knife = 6,
/obj/item/reagent_containers/drinks/coffee = 12,
@@ -918,32 +918,32 @@
icon_off = "nutri"
icon_panel = "thin_vendor"
category = VENDOR_TYPE_FOOD
- products = list(/obj/item/food/snacks/candy/candybar = 6,
+ products = list(/obj/item/food/candy/candybar = 6,
/obj/item/reagent_containers/drinks/dry_ramen = 6,
- /obj/item/food/snacks/chips = 6,
- /obj/item/food/snacks/twimsts = 6,
- /obj/item/food/snacks/sosjerky = 6,
- /obj/item/food/snacks/no_raisin = 6,
- /obj/item/food/snacks/pistachios = 6,
- /obj/item/food/snacks/spacetwinkie = 6,
- /obj/item/food/snacks/cheesiehonkers = 6,
- /obj/item/food/snacks/tastybread = 6,
- /obj/item/food/snacks/stroopwafel = 2)
-
- contraband = list(/obj/item/food/snacks/syndicake = 6)
-
- prices = list(/obj/item/food/snacks/candy/candybar = 64,
+ /obj/item/food/chips = 6,
+ /obj/item/food/twimsts = 6,
+ /obj/item/food/sosjerky = 6,
+ /obj/item/food/no_raisin = 6,
+ /obj/item/food/pistachios = 6,
+ /obj/item/food/spacetwinkie = 6,
+ /obj/item/food/cheesiehonkers = 6,
+ /obj/item/food/tastybread = 6,
+ /obj/item/food/stroopwafel = 2)
+
+ contraband = list(/obj/item/food/syndicake = 6)
+
+ prices = list(/obj/item/food/candy/candybar = 64,
/obj/item/reagent_containers/drinks/dry_ramen = 32,
- /obj/item/food/snacks/chips = 64,
- /obj/item/food/snacks/twimsts = 64,
- /obj/item/food/snacks/sosjerky = 64,
- /obj/item/food/snacks/no_raisin = 80,
- /obj/item/food/snacks/pistachios = 80,
- /obj/item/food/snacks/spacetwinkie = 64,
- /obj/item/food/snacks/cheesiehonkers = 64,
- /obj/item/food/snacks/tastybread = 80,
- /obj/item/food/snacks/stroopwafel = 100,
- /obj/item/food/snacks/syndicake = 175) //syndicakes are genuinely kind of powerful
+ /obj/item/food/chips = 64,
+ /obj/item/food/twimsts = 64,
+ /obj/item/food/sosjerky = 64,
+ /obj/item/food/no_raisin = 80,
+ /obj/item/food/pistachios = 80,
+ /obj/item/food/spacetwinkie = 64,
+ /obj/item/food/cheesiehonkers = 64,
+ /obj/item/food/tastybread = 80,
+ /obj/item/food/stroopwafel = 100,
+ /obj/item/food/syndicake = 175) //syndicakes are genuinely kind of powerful
refill_canister = /obj/item/vending_refill/snack
@@ -961,19 +961,19 @@
icon_state = "chang"
icon_lightmask = "chang"
category = VENDOR_TYPE_FOOD
- products = list(/obj/item/food/snacks/chinese/chowmein = 6,
- /obj/item/food/snacks/chinese/tao = 6,
- /obj/item/food/snacks/chinese/sweetsourchickenball = 6,
- /obj/item/food/snacks/chinese/newdles = 6,
- /obj/item/food/snacks/chinese/rice = 6,
- /obj/item/food/snacks/fortunecookie = 6)
-
- prices = list(/obj/item/food/snacks/chinese/chowmein = 125,
- /obj/item/food/snacks/chinese/tao = 125,
- /obj/item/food/snacks/chinese/sweetsourchickenball = 125,
- /obj/item/food/snacks/chinese/newdles = 100,
- /obj/item/food/snacks/chinese/rice = 100,
- /obj/item/food/snacks/fortunecookie = 50)
+ products = list(/obj/item/food/chinese/chowmein = 6,
+ /obj/item/food/chinese/tao = 6,
+ /obj/item/food/chinese/sweetsourchickenball = 6,
+ /obj/item/food/chinese/newdles = 6,
+ /obj/item/food/chinese/rice = 6,
+ /obj/item/food/fortunecookie = 6)
+
+ prices = list(/obj/item/food/chinese/chowmein = 125,
+ /obj/item/food/chinese/tao = 125,
+ /obj/item/food/chinese/sweetsourchickenball = 125,
+ /obj/item/food/chinese/newdles = 100,
+ /obj/item/food/chinese/rice = 100,
+ /obj/item/food/fortunecookie = 50)
refill_canister = /obj/item/vending_refill/chinese
diff --git a/code/game/machinery/vendors/vending.dm b/code/game/machinery/vendors/vending.dm
index 56b10af653c3..4f5603c2567d 100644
--- a/code/game/machinery/vendors/vending.dm
+++ b/code/game/machinery/vendors/vending.dm
@@ -140,6 +140,9 @@
/// The category of this vendor. Used for announcing brand intelligence.
var/category = VENDOR_TYPE_GENERIC
+ /// How often will the vendor tip when you walk by it when aggressive is true?
+ var/aggressive_tilt_chance = 25
+
/obj/machinery/economy/vending/Initialize(mapload)
. = ..()
var/build_inv = FALSE
@@ -176,6 +179,8 @@
power_change()
RegisterSignal(src, COMSIG_MOVABLE_UNTILTED, PROC_REF(on_untilt))
RegisterSignal(src, COMSIG_MOVABLE_TRY_UNTILT, PROC_REF(on_try_untilt))
+ if(aggressive)
+ AddComponent(/datum/component/proximity_monitor)
/obj/machinery/economy/vending/Destroy()
SStgui.close_uis(wires)
@@ -414,7 +419,7 @@
if(!aggressive || tilted || !tiltable)
return
- if(isliving(AM) && prob(25))
+ if(isliving(AM) && prob(aggressive_tilt_chance))
AM.visible_message(
"[src] suddenly topples over onto [AM]!",
"[src] topples over onto you without warning!"
diff --git a/code/game/mecha/mech_bay.dm b/code/game/mecha/mech_bay.dm
index 7f1f01500399..be9227943b51 100644
--- a/code/game/mecha/mech_bay.dm
+++ b/code/game/mecha/mech_bay.dm
@@ -90,11 +90,6 @@
MC += C.rating
max_charge = MC * 25
-/obj/machinery/mech_bay_recharge_port/attackby(obj/item/I, mob/user, params)
- if(exchange_parts(user, I))
- return
- return ..()
-
/obj/machinery/mech_bay_recharge_port/screwdriver_act(mob/user, obj/item/I)
if(default_deconstruction_screwdriver(user, "recharge_port-o", "recharge_port", I))
return TRUE
diff --git a/code/game/mecha/mech_fabricator.dm b/code/game/mecha/mech_fabricator.dm
index 4df9d1b4a636..86a5576160b2 100644
--- a/code/game/mecha/mech_fabricator.dm
+++ b/code/game/mecha/mech_fabricator.dm
@@ -297,10 +297,10 @@
/obj/machinery/mecha_part_fabricator/attackby(obj/item/W, mob/user, params)
if(default_deconstruction_screwdriver(user, "fab-o", "fab-idle", W))
return
- if(exchange_parts(user, W))
- return
+
if(default_deconstruction_crowbar(user, W))
return TRUE
+
return ..()
/obj/machinery/mecha_part_fabricator/attack_ghost(mob/user)
diff --git a/code/game/objects/effects/effect_system/effects_chem_smoke.dm b/code/game/objects/effects/effect_system/effects_chem_smoke.dm
index 0dd6e1810362..ccc7923c799f 100644
--- a/code/game/objects/effects/effect_system/effects_chem_smoke.dm
+++ b/code/game/objects/effects/effect_system/effects_chem_smoke.dm
@@ -45,6 +45,10 @@
/datum/effect_system/smoke_spread/chem
+ var/eff_range = 2
+ var/eff_colour = "#12A5F4" // This is a random blue incase it doesnt get set right
+ var/process_count = 0
+ var/max_process_count = 10
var/obj/chemholder
var/list/smoked_atoms = list()
@@ -94,22 +98,21 @@
/datum/effect_system/smoke_spread/chem/start(effect_range = 2)
- set waitfor = FALSE
-
- var/color = mix_color_from_reagents(chemholder.reagents.reagent_list)
-
- for(var/x in 0 to 99)
- for(var/i = 0, i < rand(2, 6), i++)
- if(effect_range < 3)
- new /obj/effect/particle_effect/chem_smoke/small(location, color)
- else
- new /obj/effect/particle_effect/chem_smoke(location, color)
-
- if(x % 10 == 0) //Once every 10 ticks.
- INVOKE_ASYNC(src, PROC_REF(SmokeEm), effect_range)
+ eff_colour = mix_color_from_reagents(chemholder.reagents.reagent_list)
+ eff_range = effect_range
+ START_PROCESSING(SSprocessing, src)
+
+/datum/effect_system/smoke_spread/chem/process()
+ process_count++
+ if(eff_range < 3)
+ new /obj/effect/particle_effect/chem_smoke/small(location, eff_colour)
+ else
+ new /obj/effect/particle_effect/chem_smoke(location, eff_colour)
- sleep(1)
- qdel(src)
+ INVOKE_ASYNC(src, PROC_REF(SmokeEm), eff_range)
+ if(process_count > max_process_count)
+ STOP_PROCESSING(SSprocessing, src)
+ qdel(src)
/datum/effect_system/smoke_spread/chem/proc/SmokeEm(effect_range = 2)
diff --git a/code/game/objects/effects/meteors.dm b/code/game/objects/effects/meteors.dm
index edb05feb8e93..075ba79412e4 100644
--- a/code/game/objects/effects/meteors.dm
+++ b/code/game/objects/effects/meteors.dm
@@ -304,7 +304,7 @@ GLOBAL_LIST_INIT(meteors_ops, list(/obj/effect/meteor/goreops)) //Meaty Ops
hits = 2
heavy = TRUE
meteorsound = 'sound/effects/blobattack.ogg'
- meteordrop = list(/obj/item/food/snacks/meat/human, /obj/item/organ/internal/heart, /obj/item/organ/internal/lungs, /obj/item/organ/internal/appendix)
+ meteordrop = list(/obj/item/food/meat/human, /obj/item/organ/internal/heart, /obj/item/organ/internal/lungs, /obj/item/organ/internal/appendix)
var/meteorgibs = /obj/effect/gibspawner/generic
/obj/effect/meteor/meaty/make_debris()
@@ -323,7 +323,7 @@ GLOBAL_LIST_INIT(meteors_ops, list(/obj/effect/meteor/goreops)) //Meaty Ops
//Meaty Ore Xeno edition
/obj/effect/meteor/meaty/xeno
color = "#5EFF00"
- meteordrop = list(/obj/item/food/snacks/monstermeat/xenomeat)
+ meteordrop = list(/obj/item/food/monstermeat/xenomeat)
meteorgibs = /obj/effect/gibspawner/xeno
/obj/effect/meteor/meaty/xeno/Initialize(mapload, target)
@@ -342,7 +342,7 @@ GLOBAL_LIST_INIT(meteors_ops, list(/obj/effect/meteor/goreops)) //Meaty Ops
hits = 10
hitpwr = EXPLODE_DEVASTATE
meteorsound = 'sound/effects/blobattack.ogg'
- meteordrop = list(/obj/item/food/snacks/meat)
+ meteordrop = list(/obj/item/food/meat)
var/meteorgibs = /obj/effect/gibspawner/generic
/obj/effect/meteor/goreops/make_debris()
@@ -370,7 +370,7 @@ GLOBAL_LIST_INIT(meteors_ops, list(/obj/effect/meteor/goreops)) //Meaty Ops
hits = 10
heavy = TRUE
dropamt = 1
- meteordrop = list(/obj/item/clothing/head/hardhat/pumpkinhead, /obj/item/food/snacks/grown/pumpkin)
+ meteordrop = list(/obj/item/clothing/head/hardhat/pumpkinhead, /obj/item/food/grown/pumpkin)
/obj/effect/meteor/pumpkin/Initialize(mapload, target)
. = ..()
diff --git a/code/game/objects/effects/spawners/airlock_spawner.dm b/code/game/objects/effects/spawners/airlock_spawner.dm
index a81fc5285fe9..cfeea9b4448e 100644
--- a/code/game/objects/effects/spawners/airlock_spawner.dm
+++ b/code/game/objects/effects/spawners/airlock_spawner.dm
@@ -33,7 +33,6 @@ This spawner places pipe leading up to the interior door, you will need to finis
var/tiles_in_x_direction = 1
var/tiles_in_y_direction = 1
var/id_to_link
- req_access_txt = ACCESS_EXTERNAL_AIRLOCKS //If req_one_access_txt is set, this is ignored
var/door_name = "external access"
var/door_type = /obj/machinery/door/airlock/external/glass
var/one_door_interior //For square airlocks, if you set this then a) only one door will spawn, and b) you can choose if the door should go opposite to how it normally goes. Please use the define
@@ -58,6 +57,9 @@ This spawner places pipe leading up to the interior door, you will need to finis
handle_pipes_creation(turf_interior)
handle_control_placement()
+ for(var/obj/effect/mapping_helpers/airlock/access/access_helper in loc)
+ qdel(access_helper)
+
return INITIALIZE_HINT_QDEL
/obj/effect/spawner/airlock/proc/get_airlock_location(desired_direction) //Finds a turf to place an airlock and returns it, this turf will be in the middle of the relevant wall
@@ -198,12 +200,24 @@ This spawner places pipe leading up to the interior door, you will need to finis
created_pump.autolink_id = VENT_ID
/obj/effect/spawner/airlock/proc/set_access_helper(obj/I)
- if(req_one_access_txt == "0")
- I.req_access_txt = "[req_access_txt]"
+ var/obj/machinery/door/airlock/airlock = I
+ if(istype(airlock))
+ for(var/obj/effect/mapping_helpers/airlock/access/access_helper in loc)
+ access_helper.payload(airlock)
+ // Since airlocks are created first, we steal the payload logic
+ // to apply to the controls later
+ req_access = airlock.req_access
+ req_access_txt = airlock.req_access_txt
+ req_one_access = airlock.req_one_access
+ req_one_access_txt = airlock.req_one_access_txt
else
- I.req_one_access_txt = "[req_one_access_txt]"
+ I.req_access = req_access
+ I.req_access_txt = req_access_txt
+ I.req_one_access = req_one_access
+ I.req_one_access_txt = req_one_access_txt
+
+// MARK: AIRLOCK HELPERS
-//Premade airlocks for mappers, probably won't need all of these but whatever
/obj/effect/spawner/airlock/s_to_n
name = "1 by 1 airlock spawner (interior south, exterior north)"
icon_state = "1x1_S_to_N"
@@ -222,7 +236,8 @@ This spawner places pipe leading up to the interior door, you will need to finis
interior_direction = WEST
exterior_direction = EAST
-/// Long and thin
+// MARK: LONG AIRLOCKS
+
/obj/effect/spawner/airlock/long
name = "long airlock spawner (interior north, exterior south)"
icon_state = "1x2_N_to_S"
@@ -233,14 +248,6 @@ This spawner places pipe leading up to the interior door, you will need to finis
icon_state = "1x2_S_to_N"
tiles_in_y_direction = 2
-/obj/effect/spawner/airlock/s_to_n/long/square/engineer
- req_access_txt = ACCESS_ENGINE_EQUIP
- door_name = "engineering external access"
-
-/obj/effect/spawner/airlock/s_to_n/long/engineer
- req_access_txt = ACCESS_ENGINE_EQUIP
- door_name = "engineering external access"
-
/obj/effect/spawner/airlock/e_to_w/long
name = "long airlock spawner (interior east, exterior west)"
icon_state = "1x2_E_to_W"
@@ -251,7 +258,7 @@ This spawner places pipe leading up to the interior door, you will need to finis
icon_state = "1x2_W_to_E"
tiles_in_x_direction = 2
-/// Square
+// MARK: SQUARE AIRLOCKS
/obj/effect/spawner/airlock/long/square
name = "square airlock spawner (interior north, exterior south)"
icon_state = "2x2_N_to_S"
@@ -306,66 +313,8 @@ This spawner places pipe leading up to the interior door, you will need to finis
tiles_in_x_direction = 3
tiles_in_y_direction = 3
-/obj/effect/spawner/airlock/e_to_w/arrivals
- req_access_txt = null
-
-/obj/effect/spawner/airlock/engineer
- req_access_txt = ACCESS_ENGINE_EQUIP
- door_name = "engineering external access"
-
-/obj/effect/spawner/airlock/e_to_w/engineer
- req_access_txt = ACCESS_ENGINE_EQUIP
- door_name = "engineering external access"
-
-/obj/effect/spawner/airlock/w_to_e/engineer
- req_access_txt = ACCESS_ENGINE_EQUIP
- door_name = "engineering external access"
-
-/obj/effect/spawner/airlock/s_to_n/engineer
- req_access_txt = ACCESS_ENGINE_EQUIP
- door_name = "engineering external access"
-
-/obj/effect/spawner/airlock/long/engineer
- req_access_txt = ACCESS_ENGINE_EQUIP
- door_name = "engineering external access"
-
-/obj/effect/spawner/airlock/long/square/engine
- req_access_txt = ACCESS_ENGINE_EQUIP
- door_name = "engine external access"
- icon_state = "2x2_N_to_S_leftdoors"
- door_type = /obj/machinery/door/airlock/external
- one_door_interior = DOOR_NORMAL_PLACEMENT
- one_door_exterior = DOOR_NORMAL_PLACEMENT
-
-/obj/effect/spawner/airlock/long/square/engine/reversed
- icon_state = "2x2_N_to_S_rightdoors"
- one_door_interior = DOOR_FLIPPED_PLACEMENT
- one_door_exterior = DOOR_FLIPPED_PLACEMENT
-
-/obj/effect/spawner/airlock/w_to_e/long/square/wide/mining
- door_name = "mining external access"
- req_access_txt = ACCESS_MINING
-
-/obj/effect/spawner/airlock/long/square/wide/mining
- door_name = "mining external access"
- req_access_txt = ACCESS_MINING
-
-/obj/effect/spawner/airlock/e_to_w/minisat
- door_name = "minisat external access"
- req_access_txt = ACCESS_MINISAT
-
/obj/effect/spawner/airlock/long/square/e_to_s/telecoms
door_name = "telecoms external access"
- req_access_txt = "61;13" //ACCESS_TCOMSAT,ACCESS_EXTERNAL_AIRLOCKS
- door_type = /obj/machinery/door/airlock/external
-
-/obj/effect/spawner/airlock/long/square/three/syndicate
- name = "3 by 3 square airlock spawner (interior west, exterior north)"
- icon_state = "3x3_W_to_N"
- interior_direction = WEST
- exterior_direction = NORTH
- door_name = "ship external access"
- req_access_txt = ACCESS_SYNDICATE
door_type = /obj/machinery/door/airlock/external
#undef HALF_X
diff --git a/code/game/objects/effects/spawners/lootdrop.dm b/code/game/objects/effects/spawners/lootdrop.dm
index b700e7971298..069fd19b3b21 100644
--- a/code/game/objects/effects/spawners/lootdrop.dm
+++ b/code/game/objects/effects/spawners/lootdrop.dm
@@ -486,7 +486,7 @@
/obj/item/clothing/under/new_soviet = 50,
/obj/item/clothing/suit/sovietcoat = 50,
/obj/item/clothing/head/ushanka = 50,
- /obj/item/food/snacks/grown/potato = 50,
+ /obj/item/food/grown/potato = 50,
/obj/item/reagent_containers/drinks/bottle/vodka/badminka = 50,
/obj/item/clothing/head/sovietsidecap = 50,
/obj/item/flag/ussp = 30,
@@ -745,20 +745,20 @@
lootcount = 3
lootdoubles = FALSE
var/soups = list(
- /obj/item/food/snacks/soup/beetsoup,
- /obj/item/food/snacks/soup/stew,
- /obj/item/food/snacks/soup/hotchili,
- /obj/item/food/snacks/soup/nettlesoup,
- /obj/item/food/snacks/soup/meatballsoup)
+ /obj/item/food/soup/beetsoup,
+ /obj/item/food/soup/stew,
+ /obj/item/food/soup/hotchili,
+ /obj/item/food/soup/nettlesoup,
+ /obj/item/food/soup/meatballsoup)
var/salads = list(
- /obj/item/food/snacks/salad/herb,
- /obj/item/food/snacks/salad/valid,
- /obj/item/food/snacks/salad/aesir)
+ /obj/item/food/salad/herb,
+ /obj/item/food/salad/valid,
+ /obj/item/food/salad/aesir)
var/mains = list(
- /obj/item/food/snacks/enchiladas,
- /obj/item/food/snacks/stewedsoymeat,
- /obj/item/food/snacks/burger/bigbite,
- /obj/item/food/snacks/burger/superbite)
+ /obj/item/food/enchiladas,
+ /obj/item/food/stewedsoymeat,
+ /obj/item/food/burger/bigbite,
+ /obj/item/food/burger/superbite)
/obj/effect/spawner/lootdrop/three_course_meal/Initialize(mapload)
loot = list(pick(soups) = 1,pick(salads) = 1,pick(mains) = 1)
diff --git a/code/game/objects/effects/spawners/mess_spawners.dm b/code/game/objects/effects/spawners/mess_spawners.dm
index 164777537c7d..9f97a15782c9 100644
--- a/code/game/objects/effects/spawners/mess_spawners.dm
+++ b/code/game/objects/effects/spawners/mess_spawners.dm
@@ -182,7 +182,7 @@
/obj/effect/spawner/themed_mess/cooking/drop_object(turf/T)
var/extra_trash = pick(
/obj/item/trash/plate,
- /obj/item/food/snacks/meat,
+ /obj/item/food/meat,
/obj/item/trash/snack_bowl,
)
var/obj/trash = new extra_trash(T)
diff --git a/code/game/objects/effects/spawners/random_spawners.dm b/code/game/objects/effects/spawners/random_spawners.dm
index 00c4c9434870..a9decc5055eb 100644
--- a/code/game/objects/effects/spawners/random_spawners.dm
+++ b/code/game/objects/effects/spawners/random_spawners.dm
@@ -265,7 +265,7 @@
spawn_inside = null
result = list(/datum/nothing = 1,
/obj/item/wrench = 1,
- /obj/item/food/snacks/syndicake = 1,
+ /obj/item/food/syndicake = 1,
/obj/item/coin/antagtoken/syndicate = 1,
/obj/item/gun/projectile/automatic/pistol = 1)
diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm
index 8c6602ec290e..8374e17145d0 100644
--- a/code/game/objects/items.dm
+++ b/code/game/objects/items.dm
@@ -428,7 +428,7 @@ GLOBAL_DATUM_INIT(welding_sparks, /mutable_appearance, mutable_appearance('icons
if(isstorage(src)) // Don't tape the bag if we can put the duct tape inside it instead
var/obj/item/storage/bag = src
if(bag.can_be_inserted(I))
- return ..()
+ return
var/obj/item/stack/tape_roll/TR = I
var/list/clickparams = params2list(params)
var/x_offset = text2num(clickparams["icon-x"])
@@ -443,8 +443,6 @@ GLOBAL_DATUM_INIT(welding_sparks, /mutable_appearance, mutable_appearance('icons
user.transfer_fingerprints_to(src)
else
to_chat(user, "You don't have enough tape to do that!")
- else
- return ..()
/obj/item/proc/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK)
var/signal_result = (SEND_SIGNAL(src, COMSIG_ITEM_HIT_REACT, owner, hitby, damage, attack_type)) + prob(final_block_chance)
diff --git a/code/game/objects/items/devices/autopsy.dm b/code/game/objects/items/devices/autopsy.dm
index af9646366c7d..d9304ac3bd98 100644
--- a/code/game/objects/items/devices/autopsy.dm
+++ b/code/game/objects/items/devices/autopsy.dm
@@ -86,7 +86,6 @@
R.name = "Official Coroner's Report - [dead_name]"
R.info = "
[station_name()] - Coroner's Report
Name of Deceased: [dead_name]
Rank of Deceased: [rank]
Time of Death: [tod]
Cause of Death: [cause]
Trace Chemicals: [chems]
Additional Coroner's Notes: [notes]
Coroner's Signature: "
playsound(loc, 'sound/goonstation/machines/printer_thermal.ogg', 50, TRUE)
- sleep(1 SECONDS)
user.put_in_hands(R)
/obj/item/autopsy_scanner/attack_self(mob/user)
diff --git a/code/game/objects/items/devices/scanners.dm b/code/game/objects/items/devices/scanners.dm
index 3260884c7f32..0a0d634c1932 100644
--- a/code/game/objects/items/devices/scanners.dm
+++ b/code/game/objects/items/devices/scanners.dm
@@ -746,7 +746,7 @@ SLIME SCANNER
dat += "
[TAB][R] [details ? ":([R.volume / one_percent]%)" : ""]"
else
blood_type = R.data["blood_type"]
- dat += "
[TAB][blood_type ? "[blood_type]" : ""] [R.name] [details ? ":([R.volume / one_percent]%)" : ""]"
+ dat += "
[TAB][blood_type ? "[blood_type]" : ""] [R.data["species"]] [R.name] [details ? ":([R.volume / one_percent]%)" : ""]"
if(dat)
to_chat(user, "Chemicals found: [dat]")
datatoprint = dat
diff --git a/code/game/objects/items/devices/transfer_valve.dm b/code/game/objects/items/devices/transfer_valve.dm
index ce408dc2f5d1..465a5da14c5d 100644
--- a/code/game/objects/items/devices/transfer_valve.dm
+++ b/code/game/objects/items/devices/transfer_valve.dm
@@ -1,3 +1,6 @@
+///if the icon_state for the TTV's tank is in assemblies.dmi
+#define TTV_TANK_ICON_STATES list("anesthetic", "emergency", "emergency_double", "emergency_engi", "emergency_sleep", "jetpack", "jetpack_black", "jetpack_void", "oxygen", "oxygen_f", "oxygen_fr", "plasma")
+
/obj/item/transfer_valve
icon = 'icons/obj/assemblies.dmi'
name = "tank transfer valve"
@@ -166,12 +169,23 @@
underlays.Cut()
if(!tank_one && !tank_two && !attached_device)
return
+
if(tank_one)
- . += "[tank_one.icon_state]"
+ var/tank_one_icon_state = tank_one.icon_state
+ if(!(tank_one_icon_state in TTV_TANK_ICON_STATES)) //if no valid sprite fall back to an oxygen tank
+ tank_one_icon_state = "oxygen"
+ stack_trace("[tank_one] was inserted into a TTV with an invalid icon_state, \"[tank_one.icon_state]\"")
+ . += "[tank_one_icon_state]"
+
if(tank_two)
- var/icon/J = new(icon, icon_state = "[tank_two.icon_state]")
- J.Shift(WEST, 13)
- underlays += J
+ var/tank_two_icon_state = tank_two.icon_state
+ if(!(tank_two_icon_state in TTV_TANK_ICON_STATES)) //if no valid sprite fall back to an oxygen tank
+ tank_two_icon_state = "oxygen"
+ stack_trace("[tank_two] was inserted into a TTV with an invalid icon_state, \"[tank_two.icon_state]\"")
+ var/icon/tank_two_icon = new(icon, icon_state = tank_two_icon_state)
+ tank_two_icon.Shift(WEST, 13)
+ underlays += tank_two_icon
+
if(attached_device)
. += "device"
@@ -225,3 +239,5 @@
split_gases()
valve_open = FALSE
update_icon()
+
+#undef TTV_TANK_ICON_STATES
diff --git a/code/game/objects/items/documents.dm b/code/game/objects/items/documents.dm
index dd2c351da2f2..3304620db402 100644
--- a/code/game/objects/items/documents.dm
+++ b/code/game/objects/items/documents.dm
@@ -56,3 +56,13 @@
poison_total -= poison_dose
add_attack_logs(src, user, "Picked up [src], the trapped syndicate documents")
return ..()
+
+/obj/item/documents/syndicate/dvorak_blackbox
+ name = "\improper D.V.O.R.A.K Blackbox Disk"
+ desc = "This disk contains a full record of all information that passed through D.V.O.R.A.K's systems during its uptime, not to mention what may have gone wrong. NT might be interested in this."
+ icon = 'icons/obj/module.dmi'
+ w_class = WEIGHT_CLASS_TINY
+ item_state = "card-id"
+ icon_state = "holodisk"
+ drop_sound = 'sound/items/handling/disk_drop.ogg'
+ pickup_sound = 'sound/items/handling/disk_pickup.ogg'
diff --git a/code/game/objects/items/granters/action_granters/summon_cheese.dm b/code/game/objects/items/granters/action_granters/summon_cheese.dm
index f86c89c86364..29209f6479cb 100644
--- a/code/game/objects/items/granters/action_granters/summon_cheese.dm
+++ b/code/game/objects/items/granters/action_granters/summon_cheese.dm
@@ -22,7 +22,7 @@
/obj/item/book/granter/spell/summon_cheese/recoil(mob/living/user)
to_chat(user, "[src] turns into a wedge of cheese!")
- var/obj/item/food/snacks/cheesewedge/presliced/book_cheese = new
+ var/obj/item/food/cheesewedge/presliced/book_cheese = new
user.drop_item()
user.put_in_hands(book_cheese)
qdel(src)
@@ -35,7 +35,7 @@
overlay = null
action_icon_state = "cheese_wedge"
action_background_icon_state = "bg_spell"
- summon_type = list(/obj/item/food/snacks/cheesewedge/presliced)
+ summon_type = list(/obj/item/food/cheesewedge/presliced)
summon_amt = 9
aoe_range = 1
summon_ignore_prev_spawn_points = TRUE
diff --git a/code/game/objects/items/mixing_bowl.dm b/code/game/objects/items/mixing_bowl.dm
index 0beed2a583a4..f7c7b9c9697e 100644
--- a/code/game/objects/items/mixing_bowl.dm
+++ b/code/game/objects/items/mixing_bowl.dm
@@ -68,20 +68,20 @@
var/list/items_measures_p = list()
for(var/obj/O in contents)
var/display_name = O.name
- if(istype(O,/obj/item/food/snacks/egg))
+ if(istype(O,/obj/item/food/egg))
items_measures[display_name] = "egg"
items_measures_p[display_name] = "eggs"
- if(istype(O,/obj/item/food/snacks/tofu))
+ if(istype(O,/obj/item/food/tofu))
items_measures[display_name] = "tofu chunk"
items_measures_p[display_name] = "tofu chunks"
- if(istype(O,/obj/item/food/snacks/meat)) //any meat
+ if(istype(O,/obj/item/food/meat)) //any meat
items_measures[display_name] = "slab of meat"
items_measures_p[display_name] = "slabs of meat"
- if(istype(O,/obj/item/food/snacks/donkpocket))
+ if(istype(O,/obj/item/food/donkpocket))
display_name = "Turnovers"
items_measures[display_name] = "turnover"
items_measures_p[display_name] = "turnovers"
- if(istype(O,/obj/item/food/snacks/carpmeat))
+ if(istype(O,/obj/item/food/carpmeat))
items_measures[display_name] = "fillet of meat"
items_measures_p[display_name] = "fillets of meat"
items_counts[display_name]++
@@ -165,7 +165,7 @@
if(id)
amount += reagents.get_reagent_amount(id)
reagents.clear_reagents()
- var/obj/item/food/snacks/badrecipe/mysteryfood = new(get_turf(source))
+ var/obj/item/food/badrecipe/mysteryfood = new(get_turf(source))
mysteryfood.reagents.add_reagent("carbon", amount)
mysteryfood.reagents.add_reagent("????", amount / 10)
make_dirty(75)
diff --git a/code/game/objects/items/toys.dm b/code/game/objects/items/toys.dm
index 45ceb0577851..b7d53ab3d383 100644
--- a/code/game/objects/items/toys.dm
+++ b/code/game/objects/items/toys.dm
@@ -785,8 +785,8 @@
item_state = "plushie_ipc"
/obj/item/toy/plushie/ipcplushie/attackby(obj/item/B, mob/user, params)
- if(istype(B, /obj/item/food/snacks/breadslice))
- new /obj/item/food/snacks/toast(get_turf(loc))
+ if(istype(B, /obj/item/food/breadslice))
+ new /obj/item/food/toast(get_turf(loc))
to_chat(user, "You insert bread into the toaster.")
playsound(loc, 'sound/machines/ding.ogg', 50, 1)
qdel(B)
diff --git a/code/game/objects/items/weapons/AI_modules.dm b/code/game/objects/items/weapons/AI_modules.dm
index c2d555010ed8..3e004dd58686 100755
--- a/code/game/objects/items/weapons/AI_modules.dm
+++ b/code/game/objects/items/weapons/AI_modules.dm
@@ -64,6 +64,7 @@ AI MODULES
to_chat(R, "Ваши законы теперь:")
R.show_laws()
to_chat(usr, "Загрузка завершена. Законы ИИ были успешно изменены.")
+ return TRUE
else if(istype(C, /obj/machinery/computer/borgupload))
var/obj/machinery/computer/borgupload/comp = C
diff --git a/code/game/objects/items/weapons/RSF.dm b/code/game/objects/items/weapons/RSF.dm
index e06f2c8001dd..8c5895727298 100644
--- a/code/game/objects/items/weapons/RSF.dm
+++ b/code/game/objects/items/weapons/RSF.dm
@@ -27,10 +27,10 @@
"Pen" = /obj/item/pen,
"Dice Pack" = /obj/item/storage/bag/dice,
"Cigarette" = /obj/item/clothing/mask/cigarette,
- "Newdles" = /obj/item/food/snacks/chinese/newdles,
- "Donut" = /obj/item/food/snacks/donut,
+ "Newdles" = /obj/item/food/chinese/newdles,
+ "Donut" = /obj/item/food/donut,
"Chicken Soup" = /obj/item/reagent_containers/drinks/chicken_soup,
- "Tofu Burger" = /obj/item/food/snacks/burger/tofu)
+ "Tofu Burger" = /obj/item/food/burger/tofu)
var/static/list/rsf_icons = list("Drinking Glass" = image(icon = 'icons/obj/drinks.dmi', icon_state = "glass_empty"),
"Paper" = image(icon = 'icons/obj/bureaucracy.dmi', icon_state = "paper"),
"Pen" = image(icon = 'icons/obj/bureaucracy.dmi', icon_state = "pen"),
diff --git a/code/game/objects/items/weapons/cigs.dm b/code/game/objects/items/weapons/cigs.dm
index 740101a388f6..4adb39fdb883 100644
--- a/code/game/objects/items/weapons/cigs.dm
+++ b/code/game/objects/items/weapons/cigs.dm
@@ -522,8 +522,8 @@ LIGHTERS ARE IN LIGHTERS.DM
// Refill or light the pipe
/obj/item/clothing/mask/cigarette/pipe/attackby(obj/item/I, mob/user, params)
- if(istype(I, /obj/item/food/snacks/grown))
- var/obj/item/food/snacks/grown/O = I
+ if(istype(I, /obj/item/food/grown))
+ var/obj/item/food/grown/O = I
if(O.dry)
if(reagents.total_volume == reagents.maximum_volume)
to_chat(user, "[src] is full!")
@@ -568,10 +568,10 @@ LIGHTERS ARE IN LIGHTERS.DM
/obj/item/rollingpaper/afterattack(atom/target, mob/user, proximity)
if(!proximity)
return
- if(!istype(target, /obj/item/food/snacks/grown))
+ if(!istype(target, /obj/item/food/grown))
return ..()
- var/obj/item/food/snacks/grown/plant = target
+ var/obj/item/food/grown/plant = target
if(!plant.dry)
to_chat(user, "You need to dry this first!")
return
diff --git a/code/game/objects/items/weapons/dice.dm b/code/game/objects/items/weapons/dice.dm
index f5679c0ad1ef..79ba850f4fe3 100644
--- a/code/game/objects/items/weapons/dice.dm
+++ b/code/game/objects/items/weapons/dice.dm
@@ -226,7 +226,7 @@
if(11)
//Cookie
T.visible_message("A cookie appears out of thin air!")
- var/obj/item/food/snacks/cookie/C = new(drop_location())
+ var/obj/item/food/cookie/C = new(drop_location())
create_smoke(2)
C.name = "Cookie of Fate"
if(12)
diff --git a/code/game/objects/items/weapons/gift_wrappaper.dm b/code/game/objects/items/weapons/gift_wrappaper.dm
index 00cdd95782b8..ffc83904ed83 100644
--- a/code/game/objects/items/weapons/gift_wrappaper.dm
+++ b/code/game/objects/items/weapons/gift_wrappaper.dm
@@ -79,8 +79,8 @@
/obj/random/mech,
/obj/item/toy/spinningtoy,
/obj/item/toy/sword,
- /obj/item/food/snacks/grown/ambrosia/deus,
- /obj/item/food/snacks/grown/ambrosia/vulgaris,
+ /obj/item/food/grown/ambrosia/deus,
+ /obj/item/food/grown/ambrosia/vulgaris,
/obj/item/paicard,
/obj/item/instrument/violin,
/obj/item/instrument/guitar,
diff --git a/code/game/objects/items/weapons/kitchen.dm b/code/game/objects/items/weapons/kitchen.dm
index 7e68911d6e6d..7b4dfe477bac 100644
--- a/code/game/objects/items/weapons/kitchen.dm
+++ b/code/game/objects/items/weapons/kitchen.dm
@@ -57,7 +57,7 @@
return ..()
if(length(contents))
- var/obj/item/food/snacks/toEat = contents[1]
+ var/obj/item/food/toEat = contents[1]
if(istype(toEat))
if(C.eat(toEat, user))
toEat.On_Consume(C, user)
diff --git a/code/game/objects/items/weapons/stock_parts.dm b/code/game/objects/items/weapons/stock_parts.dm
index 570c1c8f8b0a..0e3ddf146831 100644
--- a/code/game/objects/items/weapons/stock_parts.dm
+++ b/code/game/objects/items/weapons/stock_parts.dm
@@ -1,5 +1,6 @@
-///////////////////////////////////////Stock Parts /////////////////////////////////
-
+////////////////////////////////////////
+// MARK: RPEDs
+////////////////////////////////////////
/obj/item/storage/part_replacer
name = "Rapid Part Exchange Device"
desc = "Special mechanical module made to store, sort, and apply standard machine parts."
@@ -21,11 +22,11 @@
display_contents_with_number = TRUE
max_w_class = WEIGHT_CLASS_NORMAL
max_combined_w_class = 100
+ toolspeed = 1
+ usesound = 'sound/items/rped.ogg'
var/works_from_distance = FALSE
var/primary_sound = 'sound/items/rped.ogg'
var/alt_sound = null
- toolspeed = 1
- usesound = 'sound/items/rped.ogg'
/obj/item/storage/part_replacer/Initialize(mapload)
. = ..()
@@ -34,6 +35,7 @@
/obj/item/storage/part_replacer/can_be_inserted(obj/item/I, stop_messages = FALSE)
if(!istype(I, /obj/item/reagent_containers/glass/beaker))
return ..()
+
var/obj/item/reagent_containers/glass/beaker/B = I
if(B.reagents?.total_volume)
if(!stop_messages)
@@ -41,18 +43,26 @@
return FALSE
return ..()
-/obj/item/storage/part_replacer/afterattack(obj/machinery/M, mob/user, flag, params)
- if(!flag && works_from_distance && istype(M))
- // Make sure its in range
- if(get_dist(src, M) <= (user.client.maxview() + 2))
- if(M.component_parts)
- M.exchange_parts(user, src)
- user.Beam(M,icon_state="rped_upgrade", icon='icons/effects/effects.dmi', time=5)
- else
- message_admins("\[EXPLOIT] [key_name_admin(user)] attempted to upgrade machinery with a BRPED via a camera console. (Attempted range exploit)")
- playsound(src, 'sound/machines/synth_no.ogg', 15, TRUE)
- to_chat(user, "ERROR: [M] is out of [src]'s range!")
+/obj/item/storage/part_replacer/afterattack(obj/machinery/M, mob/user, proximity_flag, params)
+ if(!istype(M))
+ return ..()
+
+ if(!proximity_flag && !works_from_distance)
+ return
+
+ if(get_dist(src, M) <= (user.client.maxview() + 2))
+ if(M.component_parts)
+ M.exchange_parts(user, src)
+ if(works_from_distance)
+ user.Beam(M, icon_state="rped_upgrade", icon='icons/effects/effects.dmi', time=5)
+ else
+ message_admins("\[EXPLOIT] [key_name_admin(user)] attempted to upgrade machinery with a BRPED via a camera console (attempted range exploit).")
+ playsound(src, 'sound/machines/synth_no.ogg', 15, TRUE)
+ to_chat(user, "ERROR: [M] is out of [src]'s range!")
+////////////////////////////////////////
+// Bluespace Part Replacer
+////////////////////////////////////////
/obj/item/storage/part_replacer/bluespace
name = "bluespace rapid part exchange device"
desc = "A version of the RPED that allows for replacement of parts and scanning from a distance, along with higher capacity for parts."
@@ -85,6 +95,9 @@
else
playsound(src, primary_sound, 40, 1)
+////////////////////////////////////////
+// MARK: Stock parts
+////////////////////////////////////////
/obj/item/stock_parts
name = "stock part"
desc = "What?"
diff --git a/code/game/objects/items/weapons/storage/backpack.dm b/code/game/objects/items/weapons/storage/backpack.dm
index b126796b3b37..be43682943e4 100644
--- a/code/game/objects/items/weapons/storage/backpack.dm
+++ b/code/game/objects/items/weapons/storage/backpack.dm
@@ -116,7 +116,7 @@
new /obj/item/radio/headset/headset_service(src)
new /obj/item/pda/clown(src)
new /obj/item/storage/box/survival(src)
- new /obj/item/food/snacks/grown/banana(src)
+ new /obj/item/food/grown/banana(src)
new /obj/item/stamp/clown(src)
new /obj/item/toy/crayon/rainbow(src)
new /obj/item/storage/fancy/crayons(src)
@@ -752,7 +752,7 @@
value += 1
if(8)
if(prob(25))
- new /obj/item/food/snacks/grown/nymph_pod(src)
+ new /obj/item/food/grown/nymph_pod(src)
new /obj/item/slimepotion/sentience(src)
else
new /obj/item/paicard(src) //Still useful, not a point useful.
@@ -762,8 +762,8 @@
/obj/item/storage/box/syndidonkpockets, // Healing + speed
/obj/item/reagent_containers/drinks/bottle/dragonsbreath, // Killing
/obj/item/reagent_containers/drinks/bottle/immortality, // Super healing for 20 seconds
- /obj/item/food/snacks/meatsteak/stimulating, //Healing + stun immunity
- /obj/item/food/snacks/plum_pie ) // Great healing over long period of time
+ /obj/item/food/meatsteak/stimulating, //Healing + stun immunity
+ /obj/item/food/plum_pie ) // Great healing over long period of time
new pickedt(src)
@@ -793,13 +793,13 @@
volume = 5
list_reagents = list("adminordrazine" = 5)
-/obj/item/food/snacks/meatsteak/stimulating
+/obj/item/food/meatsteak/stimulating
name = "stimulating steak"
desc = "Stimulate your senses."
list_reagents = list("nutriment" = 5, "stimulants" = 25)
bitesize = 100
-/obj/item/food/snacks/plum_pie
+/obj/item/food/plum_pie
name = "perfect plum pie"
desc = "The Jack Horner brand of pie. 2 big thumbs up."
icon = 'icons/obj/food/bakedgoods.dmi'
diff --git a/code/game/objects/items/weapons/storage/bags.dm b/code/game/objects/items/weapons/storage/bags.dm
index fd596ae58b35..a40a41c986e8 100644
--- a/code/game/objects/items/weapons/storage/bags.dm
+++ b/code/game/objects/items/weapons/storage/bags.dm
@@ -209,10 +209,10 @@
can_hold = list(
/obj/item/seeds,
/obj/item/unsorted_seeds,
- /obj/item/food/snacks/grown,
+ /obj/item/food/grown,
/obj/item/grown,
- /obj/item/food/snacks/grown/ash_flora,
- /obj/item/food/snacks/honeycomb)
+ /obj/item/food/grown/ash_flora,
+ /obj/item/food/honeycomb)
cant_hold = list(/obj/item/grown/bananapeel/traitorpeel)
resistance_flags = FLAMMABLE
@@ -398,7 +398,7 @@
return ..()
/obj/item/storage/bag/tray/cookies_tray
- var/cookie = /obj/item/food/snacks/cookie
+ var/cookie = /obj/item/food/cookie
/obj/item/storage/bag/tray/cookies_tray/populate_contents() // By Azule Utama, thank you a lot!
for(var/i in 1 to 6)
@@ -407,7 +407,7 @@
update_icon(UPDATE_OVERLAYS)
/obj/item/storage/bag/tray/cookies_tray/sugarcookie
- cookie = /obj/item/food/snacks/sugarcookie
+ cookie = /obj/item/food/sugarcookie
////////////////////////////////////////
// MARK: Chemistry bag
@@ -437,7 +437,7 @@
storage_slots = 25
max_combined_w_class = 200
w_class = WEIGHT_CLASS_TINY
- can_hold = list(/obj/item/slime_extract, /obj/item/food/snacks/monkeycube,
+ can_hold = list(/obj/item/slime_extract, /obj/item/food/monkeycube,
/obj/item/reagent_containers/syringe, /obj/item/reagent_containers/glass/beaker,
/obj/item/reagent_containers/glass/bottle, /obj/item/reagent_containers/iv_bag,
/obj/item/reagent_containers/hypospray/autoinjector/epinephrine)
diff --git a/code/game/objects/items/weapons/storage/belt.dm b/code/game/objects/items/weapons/storage/belt.dm
index 6043fdfbad2e..24257e07a92c 100644
--- a/code/game/objects/items/weapons/storage/belt.dm
+++ b/code/game/objects/items/weapons/storage/belt.dm
@@ -300,7 +300,7 @@
/obj/item/clothing/glasses,
/obj/item/ammo_casing/shotgun,
/obj/item/ammo_box,
- /obj/item/food/snacks/donut,
+ /obj/item/food/donut,
/obj/item/kitchen/knife/combat,
/obj/item/melee/baton,
/obj/item/melee/classic_baton,
@@ -353,7 +353,7 @@
/obj/item/clothing/glasses,
/obj/item/ammo_casing/shotgun,
/obj/item/ammo_box,
- /obj/item/food/snacks/donut,
+ /obj/item/food/donut,
/obj/item/kitchen/knife/combat,
/obj/item/melee/baton,
/obj/item/melee/classic_baton,
@@ -1007,6 +1007,6 @@
/obj/item/reagent_containers/drinks/bottle,
/obj/item/reagent_containers/drinks/cans,
/obj/item/reagent_containers/drinks/shaker,
- /obj/item/food/snacks,
+ /obj/item/food,
/obj/item/reagent_containers/condiment,
/obj/item/reagent_containers/glass/beaker)
diff --git a/code/game/objects/items/weapons/storage/boxes.dm b/code/game/objects/items/weapons/storage/boxes.dm
index 570c764f553e..e0ce91148662 100644
--- a/code/game/objects/items/weapons/storage/boxes.dm
+++ b/code/game/objects/items/weapons/storage/boxes.dm
@@ -349,8 +349,8 @@
desc = "Drymate brand monkey cubes. Just add water!"
icon_state = "monkey_box"
storage_slots = 7
- can_hold = list(/obj/item/food/snacks/monkeycube)
- var/monkey_cube_type = /obj/item/food/snacks/monkeycube
+ can_hold = list(/obj/item/food/monkeycube)
+ var/monkey_cube_type = /obj/item/food/monkeycube
/obj/item/storage/box/monkeycubes/populate_contents()
for(var/I in 1 to 5)
@@ -358,37 +358,37 @@
/obj/item/storage/box/monkeycubes/syndicate
desc = "Waffle Co. brand monkey cubes. Just add water and a dash of subterfuge!"
- monkey_cube_type = /obj/item/food/snacks/monkeycube/syndicate
+ monkey_cube_type = /obj/item/food/monkeycube/syndicate
/obj/item/storage/box/monkeycubes/farwacubes
name = "farwa cube box"
desc = "Drymate brand farwa cubes. Just add water!"
icon_state = "farwa_box"
- monkey_cube_type = /obj/item/food/snacks/monkeycube/farwacube
+ monkey_cube_type = /obj/item/food/monkeycube/farwacube
/obj/item/storage/box/monkeycubes/stokcubes
name = "stok cube box"
desc = "Drymate brand stok cubes. Just add water!"
icon_state = "stok_box"
- monkey_cube_type = /obj/item/food/snacks/monkeycube/stokcube
+ monkey_cube_type = /obj/item/food/monkeycube/stokcube
/obj/item/storage/box/monkeycubes/neaeracubes
name = "neaera cube box"
desc = "Drymate brand neaera cubes. Just add water!"
icon_state = "neaera_box"
- monkey_cube_type = /obj/item/food/snacks/monkeycube/neaeracube
+ monkey_cube_type = /obj/item/food/monkeycube/neaeracube
/obj/item/storage/box/monkeycubes/wolpincubes
name = "wolpin cube box"
desc = "Drymate brand wolpin cubes. Just add water!"
icon_state = "wolpin_box"
- monkey_cube_type = /obj/item/food/snacks/monkeycube/wolpincube
+ monkey_cube_type = /obj/item/food/monkeycube/wolpincube
/obj/item/storage/box/monkeycubes/nian_worme_cubes
name = "nian worme cube box"
desc = "Nian Trade Guild brand worme cubes. Just add water!"
icon_state = "nian_worme_box"
- monkey_cube_type = /obj/item/food/snacks/monkeycube/nian_wormecube
+ monkey_cube_type = /obj/item/food/monkeycube/nian_wormecube
///////////////////
/* Medical Boxes */
@@ -749,14 +749,14 @@
icon_state = "donk_box"
storage_slots = 6
can_hold = list(
- /obj/item/food/snacks/donkpocket,
- /obj/item/food/snacks/warmdonkpocket,
- /obj/item/food/snacks/warmdonkpocket_weak,
- /obj/item/food/snacks/syndidonkpocket)
+ /obj/item/food/donkpocket,
+ /obj/item/food/warmdonkpocket,
+ /obj/item/food/warmdonkpocket_weak,
+ /obj/item/food/syndidonkpocket)
/obj/item/storage/box/donkpockets/populate_contents()
for(var/I in 1 to 6)
- new /obj/item/food/snacks/donkpocket(src)
+ new /obj/item/food/donkpocket(src)
/obj/item/storage/box/donkpockets/empty/populate_contents()
return
@@ -768,7 +768,7 @@
/obj/item/storage/box/syndidonkpockets/populate_contents()
for(var/I in 1 to 6)
- new /obj/item/food/snacks/syndidonkpocket(src)
+ new /obj/item/food/syndidonkpocket(src)
////////////////
/* Misc Boxes */
diff --git a/code/game/objects/items/weapons/storage/fancy.dm b/code/game/objects/items/weapons/storage/fancy.dm
index db2b8793b008..f37f7a52c39b 100644
--- a/code/game/objects/items/weapons/storage/fancy.dm
+++ b/code/game/objects/items/weapons/storage/fancy.dm
@@ -42,14 +42,14 @@
icon_type = "donut"
icon_state = "donutbox"
storage_slots = 6
- can_hold = list(/obj/item/food/snacks/donut)
+ can_hold = list(/obj/item/food/donut)
foldable = /obj/item/stack/sheet/cardboard
foldable_amt = 1
/obj/item/storage/fancy/donut_box/update_overlays()
. = ..()
for(var/I = 1 to length(contents))
- var/obj/item/food/snacks/donut/donut = contents[I]
+ var/obj/item/food/donut/donut = contents[I]
var/icon/new_donut_icon = icon('icons/obj/food/containers.dmi', "[(I - 1)]donut[donut.donut_sprite_type]")
. += new_donut_icon
@@ -58,7 +58,7 @@
/obj/item/storage/fancy/donut_box/populate_contents()
for(var/I in 1 to storage_slots)
- new /obj/item/food/snacks/donut(src)
+ new /obj/item/food/donut(src)
update_icon(UPDATE_OVERLAYS)
/obj/item/storage/fancy/donut_box/empty/populate_contents()
@@ -82,11 +82,11 @@
item_state = "eggbox"
name = "egg box"
storage_slots = 12
- can_hold = list(/obj/item/food/snacks/egg)
+ can_hold = list(/obj/item/food/egg)
/obj/item/storage/fancy/egg_box/populate_contents()
for(var/I in 1 to storage_slots)
- new /obj/item/food/snacks/egg(src)
+ new /obj/item/food/egg(src)
/*
* Candle Box
diff --git a/code/game/objects/items/weapons/storage/uplink_kits.dm b/code/game/objects/items/weapons/storage/uplink_kits.dm
index 490c4213713b..ffac415f5082 100644
--- a/code/game/objects/items/weapons/storage/uplink_kits.dm
+++ b/code/game/objects/items/weapons/storage/uplink_kits.dm
@@ -406,9 +406,9 @@
name = "combat bakery kit"
/obj/item/storage/box/syndie_kit/combat_baking/populate_contents()
- new /obj/item/food/snacks/baguette/combat(src)
+ new /obj/item/food/baguette/combat(src)
for(var/i in 1 to 2)
- new /obj/item/food/snacks/croissant/throwing(src)
+ new /obj/item/food/croissant/throwing(src)
new /obj/item/book/granter/crafting_recipe/combat_baking(src)
/obj/item/storage/box/syndie_kit/atmosn2ogrenades
diff --git a/code/game/objects/items/weapons/tanks/watertank.dm b/code/game/objects/items/weapons/tanks/watertank.dm
index cfbd5e7f904d..86685a831972 100644
--- a/code/game/objects/items/weapons/tanks/watertank.dm
+++ b/code/game/objects/items/weapons/tanks/watertank.dm
@@ -314,7 +314,7 @@
if(metal_synthesis_cooldown >= 5)
to_chat(user, "Metal foam mix is still being synthesized.")
return
- var/obj/effect/particle_effect/foam/F = new /obj/effect/particle_effect/foam(get_turf(target), TRUE)
+ var/obj/effect/particle_effect/foam/metal/F = new /obj/effect/particle_effect/foam/metal(get_turf(target), TRUE)
F.spread_amount = 0
metal_synthesis_cooldown++
addtimer(CALLBACK(src, PROC_REF(metal_cooldown)), 10 SECONDS)
diff --git a/code/game/objects/items/weapons/teleprod.dm b/code/game/objects/items/weapons/teleprod.dm
index b94494a1185f..c659c3e3d597 100644
--- a/code/game/objects/items/weapons/teleprod.dm
+++ b/code/game/objects/items/weapons/teleprod.dm
@@ -16,5 +16,5 @@
"You accidentally hit yourself with [src]!")
deductcharge(hitcost)
do_teleport(user, get_turf(user), 50)//honk honk
- else if(iscarbon(M) && !M.anchored)
+ else if(isliving(M) && !M.anchored)
do_teleport(M, get_turf(M), 15)
diff --git a/code/game/objects/mail.dm b/code/game/objects/mail.dm
index 6175ec810e73..680b69a7371c 100644
--- a/code/game/objects/mail.dm
+++ b/code/game/objects/mail.dm
@@ -63,7 +63,7 @@
/obj/item/envelope/security
icon_state = "mail_sec"
- possible_contents = list(/obj/item/food/snacks/donut/sprinkles,
+ possible_contents = list(/obj/item/food/donut/sprinkles,
/obj/item/megaphone,
/obj/item/clothing/mask/whistle,
/obj/item/poster/random_official,
@@ -121,7 +121,7 @@
/obj/item/reagent_containers/applicator/brute,
/obj/item/reagent_containers/applicator/burn,
/obj/item/clothing/glasses/sunglasses,
- /obj/item/food/snacks/fortunecookie,
+ /obj/item/food/fortunecookie,
/obj/item/scalpel/laser/laser1,
/obj/item/surgical_drapes,
/obj/item/toy/figure/crew/cmo,
@@ -136,7 +136,7 @@
icon_state = "mail_eng"
possible_contents = list(/obj/item/airlock_electronics,
/obj/item/reagent_containers/drinks/cans/beer,
- /obj/item/food/snacks/candy/confectionery/nougat,
+ /obj/item/food/candy/confectionery/nougat,
/obj/item/mod/module/storage/large_capacity,
/obj/item/weldingtool/hugetank,
/obj/item/geiger_counter,
@@ -192,7 +192,7 @@
/obj/item/book/manual/wiki/sop_command,
/obj/item/reagent_containers/patch/synthflesh,
/obj/item/paper_bin/nanotrasen,
- /obj/item/food/snacks/spesslaw,
+ /obj/item/food/spesslaw,
/obj/item/clothing/head/collectable/petehat,
/obj/item/toy/figure/crew/captain,
/obj/item/toy/figure/crew/iaa,
diff --git a/code/game/objects/obj_defense.dm b/code/game/objects/obj_defense.dm
index a21489172e89..e12847d2e648 100644
--- a/code/game/objects/obj_defense.dm
+++ b/code/game/objects/obj_defense.dm
@@ -103,7 +103,7 @@
/obj/attack_animal(mob/living/simple_animal/M)
if((M.a_intent == INTENT_HELP && M.ckey) || (!M.melee_damage_upper && !M.obj_damage))
- M.custom_emote(EMOTE_VISIBLE, "[M.friendly] [src].")
+ M.emote("me", EMOTE_VISIBLE, "[M.friendly] [src].")
return 0
else
var/play_soundeffect = 1
diff --git a/code/game/objects/structures/crates_lockers/closets/secure/freezer.dm b/code/game/objects/structures/crates_lockers/closets/secure/freezer.dm
index 0374a5526875..8eead41d2096 100644
--- a/code/game/objects/structures/crates_lockers/closets/secure/freezer.dm
+++ b/code/game/objects/structures/crates_lockers/closets/secure/freezer.dm
@@ -44,7 +44,7 @@
/obj/structure/closet/secure_closet/freezer/meat/populate_contents()
for(var/i in 1 to 4)
- new /obj/item/food/snacks/meat/monkey(src)
+ new /obj/item/food/meat/monkey(src)
/obj/structure/closet/secure_closet/freezer/meat/open
req_access = null
diff --git a/code/game/objects/structures/crates_lockers/closets/secure/medical_lockers.dm b/code/game/objects/structures/crates_lockers/closets/secure/medical_lockers.dm
index 9a0f455f0d46..9e8e7d49a9e9 100644
--- a/code/game/objects/structures/crates_lockers/closets/secure/medical_lockers.dm
+++ b/code/game/objects/structures/crates_lockers/closets/secure/medical_lockers.dm
@@ -135,7 +135,7 @@
new /obj/item/storage/pill_bottle/psychiatrist(src)
new /obj/random/plushie(src)
for(var/i in 0 to 3)
- var/candy = pick(subtypesof(/obj/item/food/snacks/candy/fudge))
+ var/candy = pick(subtypesof(/obj/item/food/candy/fudge))
new candy(src)
/obj/structure/closet/secure_closet/CMO
diff --git a/code/game/objects/structures/displaycase.dm b/code/game/objects/structures/displaycase.dm
index f367879cae3f..11409c535f17 100644
--- a/code/game/objects/structures/displaycase.dm
+++ b/code/game/objects/structures/displaycase.dm
@@ -26,6 +26,8 @@
var/list/start_showpieces = list()
/// A flavor message to show with this item.
var/trophy_message = ""
+ /// Do we want to force alarms even if off station?
+ var/force_alarm = FALSE
/obj/structure/displaycase/Initialize(mapload)
. = ..()
@@ -107,7 +109,7 @@
/obj/structure/displaycase/proc/trigger_alarm()
set waitfor = FALSE
- if(alert && is_station_contact(z))
+ if(alert && (is_station_contact(z) || force_alarm))
var/area/alarmed = get_area(src)
alarmed.burglaralert(src)
visible_message("The burglar alarm goes off!")
diff --git a/code/game/objects/structures/kitchen_spike.dm b/code/game/objects/structures/kitchen_spike.dm
index 921d18accf5f..6ed12684b0dc 100644
--- a/code/game/objects/structures/kitchen_spike.dm
+++ b/code/game/objects/structures/kitchen_spike.dm
@@ -79,7 +79,7 @@
if(has_buckled_mobs())
to_chat(user, "You can't do that while something's on the spike!")
return
- if(!I.use_tool(src, user, 2 SECONDS, I.tool_volume))
+ if(!I.use_tool(src, user, 2 SECONDS, volume = I.tool_volume))
return
to_chat(user, "You pry the spikes out of the frame.")
deconstruct(TRUE)
diff --git a/code/game/objects/structures/statues.dm b/code/game/objects/structures/statues.dm
index f6ece981b4ca..3a0a16795376 100644
--- a/code/game/objects/structures/statues.dm
+++ b/code/game/objects/structures/statues.dm
@@ -331,7 +331,7 @@
desc = "Just like the ones you remember from childhood!"
/obj/structure/snowman/built/Destroy()
- new /obj/item/food/snacks/grown/carrot(drop_location())
+ new /obj/item/food/grown/carrot(drop_location())
new /obj/item/grown/log(drop_location())
new /obj/item/grown/log(drop_location())
return ..()
diff --git a/code/game/objects/structures/tables_racks.dm b/code/game/objects/structures/tables_racks.dm
index 01920f047e4b..7e3b121de04a 100644
--- a/code/game/objects/structures/tables_racks.dm
+++ b/code/game/objects/structures/tables_racks.dm
@@ -343,26 +343,28 @@
/obj/structure/table/proc/flip(direction)
if(flipped)
- return 0
+ return FALSE
- if(!straight_table_check(turn(direction,90)) || !straight_table_check(turn(direction,-90)))
- return 0
+ if(!straight_table_check(turn(direction, 90)) || !straight_table_check(turn(direction, -90)))
+ return FALSE
dir = direction
if(dir != NORTH)
layer = 5
- var/list/targets = list(get_step(src,dir),get_step(src,turn(dir, 45)),get_step(src,turn(dir, -45)))
+
+ var/list/targets = list(get_step(src, dir), get_step(src, turn(dir, 45)), get_step(src, turn(dir, -45)))
for(var/atom/movable/A in get_turf(src))
+ if(isobserver(A))
+ continue
if(!A.anchored)
- spawn(0)
- A.throw_at(pick(targets),1,1)
+ INVOKE_ASYNC(A, TYPE_PROC_REF(/atom/movable/, throw_at), pick(targets), 1, 1)
flipped = TRUE
smoothing_flags = NONE
flags |= ON_BORDER
for(var/D in list(turn(direction, 90), turn(direction, -90)))
- if(locate(/obj/structure/table,get_step(src,D)))
- var/obj/structure/table/T = locate(/obj/structure/table,get_step(src,D))
+ if(locate(/obj/structure/table, get_step(src, D)))
+ var/obj/structure/table/T = locate(/obj/structure/table, get_step(src, D))
T.flip(direction)
update_icon()
@@ -370,7 +372,7 @@
if(isturf(loc))
REMOVE_TRAIT(loc, TRAIT_TURF_COVERED, UNIQUE_TRAIT_SOURCE(src))
- return 1
+ return TRUE
/obj/structure/table/proc/unflip()
if(!flipped)
diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm
index 2c2bc64e6989..d86fe2932014 100644
--- a/code/modules/admin/topic.dm
+++ b/code/modules/admin/topic.dm
@@ -1798,10 +1798,10 @@
to_chat(usr, "This can only be used on instances of type /mob/living/carbon/human")
return
- H.equip_to_slot_or_del( new /obj/item/food/snacks/cookie(H), SLOT_HUD_LEFT_HAND )
- if(!(istype(H.l_hand,/obj/item/food/snacks/cookie)))
- H.equip_to_slot_or_del( new /obj/item/food/snacks/cookie(H), SLOT_HUD_RIGHT_HAND )
- if(!(istype(H.r_hand,/obj/item/food/snacks/cookie)))
+ H.equip_to_slot_or_del( new /obj/item/food/cookie(H), SLOT_HUD_LEFT_HAND )
+ if(!(istype(H.l_hand,/obj/item/food/cookie)))
+ H.equip_to_slot_or_del( new /obj/item/food/cookie(H), SLOT_HUD_RIGHT_HAND )
+ if(!(istype(H.r_hand,/obj/item/food/cookie)))
log_admin("[key_name(H)] has their hands full, so they did not receive their cookie, spawned by [key_name(src.owner)].")
message_admins("[key_name_admin(H)] has [H.p_their()] hands full, so [H.p_they()] did not receive [H.p_their()] cookie, spawned by [key_name_admin(src.owner)].")
return
@@ -2084,7 +2084,7 @@
var/punishment = input(owner, "How would you like to smite [M]?", "Its good to be baaaad...", "") as null|anything in ptypes
if(!(punishment in ptypes))
return
- var/logmsg = null
+ var/logmsg = "UNSET LOG MESSAGE: [punishment]"
switch(punishment)
// These smiting types are valid for all living mobs
if("Lightning bolt")
@@ -2134,7 +2134,7 @@
ADD_TRAIT(H, TRAIT_BADDNA, "smiting")
logmsg = "cluwned."
if("Mutagen Cookie")
- var/obj/item/food/snacks/cookie/evilcookie = new /obj/item/food/snacks/cookie
+ var/obj/item/food/cookie/evilcookie = new /obj/item/food/cookie
evilcookie.reagents.add_reagent("mutagen", 10)
evilcookie.desc = "It has a faint green glow."
evilcookie.bitesize = 100
@@ -2143,7 +2143,7 @@
H.equip_to_slot_or_del(evilcookie, SLOT_HUD_LEFT_HAND)
logmsg = "a mutagen cookie."
if("Hellwater Cookie")
- var/obj/item/food/snacks/cookie/evilcookie = new /obj/item/food/snacks/cookie
+ var/obj/item/food/cookie/evilcookie = new /obj/item/food/cookie
evilcookie.reagents.add_reagent("hell_water", 25)
evilcookie.desc = "Sulphur-flavored."
evilcookie.bitesize = 100
@@ -2208,7 +2208,7 @@
logmsg = "nugget"
if("Bread")
var/mob/living/simple_animal/shade/sword/bread/breadshade = new(H.loc)
- var/bready = pick(/obj/item/food/snacks/customizable/cook/bread, /obj/item/food/snacks/sliceable/meatbread, /obj/item/food/snacks/sliceable/xenomeatbread, /obj/item/food/snacks/sliceable/spidermeatbread, /obj/item/food/snacks/sliceable/bananabread, /obj/item/food/snacks/sliceable/tofubread, /obj/item/food/snacks/sliceable/bread, /obj/item/food/snacks/sliceable/creamcheesebread, /obj/item/food/snacks/sliceable/banarnarbread, /obj/item/food/snacks/flatbread, /obj/item/food/snacks/baguette)
+ var/bready = pick(/obj/item/food/customizable/cook/bread, /obj/item/food/sliceable/meatbread, /obj/item/food/sliceable/xenomeatbread, /obj/item/food/sliceable/spidermeatbread, /obj/item/food/sliceable/bananabread, /obj/item/food/sliceable/tofubread, /obj/item/food/sliceable/bread, /obj/item/food/sliceable/creamcheesebread, /obj/item/food/sliceable/banarnarbread, /obj/item/food/flatbread, /obj/item/food/baguette)
var/obj/item/bread = new bready(get_turf(H))
breadshade.forceMove(bread)
breadshade.key = H.key
@@ -2223,6 +2223,7 @@
var/turf/start = locate(starting_turf_x, starting_turf_y, M.z)
new /obj/effect/immovablerod/smite(start, M)
+ logmsg = "a rod"
if(logmsg)
log_admin("[key_name(owner)] smited [key_name(M)] with: [logmsg]")
message_admins("[key_name_admin(owner)] smited [key_name_admin(M)] with: [logmsg]")
diff --git a/code/modules/antagonists/_common/antag_datum.dm b/code/modules/antagonists/_common/antag_datum.dm
index 746da7561072..868a73482d89 100644
--- a/code/modules/antagonists/_common/antag_datum.dm
+++ b/code/modules/antagonists/_common/antag_datum.dm
@@ -55,6 +55,9 @@ GLOBAL_LIST_EMPTY(antagonists)
var/blurb_b = 0
var/blurb_a = 0
+ /// Do we have delayed objective giving?
+ var/delayed_objectives = FALSE
+
/datum/antagonist/New()
GLOB.antagonists += src
objective_holder = new(src)
@@ -240,14 +243,15 @@ GLOBAL_LIST_EMPTY(antagonists)
* * explanation_text - the explanation text that will be passed into the objective's `New()` proc
* * mob/target_override - a target for the objective
*/
-/datum/antagonist/proc/add_antag_objective(datum/objective/O, explanation_text, mob/target_override)
- if(ispath(O))
- O = new O()
- if(O.owner)
- stack_trace("[O], [O.type] was assigned as an objective to [owner] (mind), but already had an owner: [O.owner] (mind). Overriding.")
- O.owner = owner
-
- return objective_holder.add_objective(O, explanation_text, target_override)
+/datum/antagonist/proc/add_antag_objective(datum/objective/objective_to_add, explanation_text, mob/target_override)
+ if(ispath(objective_to_add))
+ objective_to_add = new objective_to_add()
+
+ if(objective_to_add.owner)
+ stack_trace("[objective_to_add], [objective_to_add.type] was assigned as an objective to [owner] (mind), but already had an owner: [objective_to_add.owner] (mind). Overriding.")
+ objective_to_add.owner = owner
+
+ return objective_holder.add_objective(objective_to_add, explanation_text, target_override)
/**
* Complement to add_antag_objective that removes the objective.
diff --git a/code/modules/antagonists/changeling/powers/mutations.dm b/code/modules/antagonists/changeling/powers/mutations.dm
index 2a67499d0da8..23b2063148e7 100644
--- a/code/modules/antagonists/changeling/powers/mutations.dm
+++ b/code/modules/antagonists/changeling/powers/mutations.dm
@@ -293,68 +293,74 @@
/obj/item/projectile/tentacle/on_hit(atom/target, blocked = 0)
- qdel(source.gun) //one tentacle only unless you miss
- if(blocked >= 100)
- return 0
var/mob/living/carbon/human/H = firer
+ qdel(source.gun)
+ if(blocked >= 100)
+ return FALSE
if(isitem(target))
var/obj/item/I = target
- if(!I.anchored)
- to_chat(firer, "You grab [I] with your tentacle.")
- add_attack_logs(H, I, "[src] grabs [I] with a tentacle")
- I.forceMove(H.loc)
- I.attack_hand(H)//The tentacle takes the item back with them and makes them pick it up. No silly throw mode.
- . = 1
-
- else if(isliving(target))
- var/mob/living/L = target
- if(!L.anchored && !L.throwing)//avoid double hits
- if(iscarbon(L))
- var/mob/living/carbon/C = L
- switch(firer.a_intent)
- if(INTENT_HELP)
- C.visible_message("[L] is pulled to their feet towards [H]!","A tentacle grabs you and pulls you up towards [H]!")
- add_attack_logs(H, L, "[H] pulled [L] towards them with a tentacle")
- C.throw_at(get_step_towards(H,C), 8, 2)
- C.AdjustParalysis(-2 SECONDS)
- C.AdjustStunned(-4 SECONDS)
- C.AdjustWeakened(-4 SECONDS)
- C.AdjustKnockDown(-4 SECONDS)
- C.adjustStaminaLoss(-25)
- return TRUE
-
- if(INTENT_DISARM)
- var/obj/item/I = C.get_active_hand()
- if(I)
- if(C.drop_item())
- C.visible_message("[I] is yanked out of [C]'s hand by [src]!","A tentacle pulls [I] away from you!")
- add_attack_logs(H, C, "[H] has grabbed [I] out of [C]'s hand with a tentacle")
- on_hit(I) //grab the item as if you had hit it directly with the tentacle
- return TRUE
- to_chat(firer, "You can't seem to pry [I] out of [C]'s hands!")
- add_attack_logs(H, C, "[H] tried to grab [I] out of their hand with a tentacle, but failed")
- C.visible_message("[C] is knocked over by [src]!", "A tentacle hits you in the chest and knocks you over!")
- add_attack_logs(H, C, "[H] knocked over with a tentacle")
- C.KnockDown(2 SECONDS) //Not useless with antidrop.
- return TRUE
-
- if(INTENT_GRAB)
- C.visible_message("[L] is entangled by [H]'s tentacle!", "A tentacle grabs you and wraps around your legs!")
- add_attack_logs(H, C, "imobilised with a changeling tentacle")
- if(!iscarbon(H))
- return TRUE
- var/obj/item/restraints/legcuffs/beartrap/changeling/B = new(H.loc)
- B.Crossed(C)
- return TRUE
-
- if(INTENT_HARM)
- C.visible_message("[L] is thrown towards [H] by a tentacle!","A tentacle grabs you and throws you towards [H]!")
- C.throw_at(get_step_towards(H,C), 8, 2, callback=CALLBACK(H, TYPE_PROC_REF(/mob, tentacle_stab), C))
- return TRUE
- else
- L.visible_message("[L] is pulled by [H]'s tentacle!","A tentacle grabs you and pulls you towards [H]!")
- L.throw_at(get_step_towards(H,L), 8, 2)
- . = TRUE
+ if(I.anchored)
+ return FALSE
+
+ to_chat(H, "You grab [I] with your tentacle.")
+ add_attack_logs(H, I, "[src] grabs [I] with a tentacle")
+ I.forceMove(H.loc)
+ I.attack_hand(H) // The tentacle takes the item back with them and makes them pick it up. No silly throw mode.
+ return TRUE
+
+ if(!isliving(target))
+ return FALSE
+
+ var/mob/living/L = target
+ if(L.anchored || L.throwing) // avoid double hits
+ return FALSE
+
+ if(!iscarbon(L))
+ L.visible_message("[L] is pulled by [H]'s tentacle!","A tentacle grabs you and pulls you towards [H]!")
+ L.throw_at(get_step_towards(H,L), 8, 2)
+ return TRUE
+
+ var/mob/living/carbon/C = L
+ switch(H.a_intent)
+ if(INTENT_HELP)
+ C.visible_message("[L] is pulled to their feet towards [H]!","A tentacle grabs you and pulls you up towards [H]!")
+ add_attack_logs(H, L, "[H] pulled [L] towards them with a tentacle")
+ C.throw_at(get_step_towards(H,C), 8, 2)
+ C.AdjustParalysis(-2 SECONDS)
+ C.AdjustStunned(-4 SECONDS)
+ C.AdjustWeakened(-4 SECONDS)
+ C.AdjustKnockDown(-4 SECONDS)
+ C.adjustStaminaLoss(-25)
+ return TRUE
+
+ if(INTENT_DISARM)
+ var/obj/item/I = C.get_active_hand()
+ if(I)
+ if(C.drop_item())
+ C.visible_message("[I] is yanked out of [C]'s hand by [src]!","A tentacle pulls [I] away from you!")
+ add_attack_logs(H, C, "[H] has grabbed [I] out of [C]'s hand with a tentacle")
+ on_hit(I) // grab the item as if you had hit it directly with the tentacle
+ return TRUE
+ to_chat(H, "You can't seem to pry [I] out of [C]'s hands!")
+ add_attack_logs(H, C, "[H] tried to grab [I] out of their hand with a tentacle, but failed")
+ C.visible_message("[C] is knocked over by [src]!", "A tentacle hits you in the chest and knocks you over!")
+ add_attack_logs(H, C, "[H] knocked over with a tentacle")
+ C.KnockDown(2 SECONDS) // Not useless with antidrop.
+ return TRUE
+
+ if(INTENT_GRAB)
+ C.visible_message("[L] is entangled by [H]'s tentacle!", "A tentacle grabs you and wraps around your legs!")
+ add_attack_logs(H, C, "imobilised with a changeling tentacle")
+ if(!iscarbon(H))
+ return TRUE
+ var/obj/item/restraints/legcuffs/beartrap/changeling/B = new(H.loc)
+ B.Crossed(C)
+ return TRUE
+
+ if(INTENT_HARM)
+ C.visible_message("[L] is thrown towards [H] by a tentacle!","A tentacle grabs you and throws you towards [H]!")
+ C.throw_at(get_step_towards(H,C), 8, 2, callback=CALLBACK(H, TYPE_PROC_REF(/mob, tentacle_stab), C))
+ return TRUE
/obj/item/projectile/tentacle/Destroy()
qdel(chain)
diff --git a/code/modules/antagonists/traitor/contractor/datums/syndicate_contract.dm b/code/modules/antagonists/traitor/contractor/datums/syndicate_contract.dm
index e18b886eb968..55dfc2453474 100644
--- a/code/modules/antagonists/traitor/contractor/datums/syndicate_contract.dm
+++ b/code/modules/antagonists/traitor/contractor/datums/syndicate_contract.dm
@@ -23,8 +23,8 @@
/obj/item/clothing/under/syndicate/tacticool,
/obj/item/coin/antagtoken/syndicate,
/obj/item/poster/syndicate_recruitment,
- /obj/item/food/snacks/syndicake,
- /obj/item/food/snacks/tatortot,
+ /obj/item/food/syndicake,
+ /obj/item/food/tatortot,
/obj/item/storage/box/fakesyndiesuit,
/obj/item/storage/fancy/cigarettes/cigpack_syndicate,
/obj/item/toy/figure/crew/syndie,
@@ -423,7 +423,7 @@
M.update_icons()
// Supply them with some chow. How generous is the Syndicate?
- var/obj/item/food/snacks/breadslice/food = new(get_turf(M))
+ var/obj/item/food/breadslice/food = new(get_turf(M))
food.name = "stale bread"
food.desc = "Looks like your captors care for their prisoners as much as their bread."
food.trash = null
diff --git a/code/modules/antagonists/traitor/datum_traitor.dm b/code/modules/antagonists/traitor/datum_traitor.dm
index ecf473462f88..ab96107a0f47 100644
--- a/code/modules/antagonists/traitor/datum_traitor.dm
+++ b/code/modules/antagonists/traitor/datum_traitor.dm
@@ -136,19 +136,29 @@ RESTRICT_TYPE(/datum/antagonist/traitor)
* Create and assign a single randomized human traitor objective.
*/
/datum/antagonist/traitor/proc/forge_single_human_objective()
+ var/datum/objective/objective_to_add
+
if(prob(50))
if(length(active_ais()) && prob(100 / length(GLOB.player_list)))
- add_antag_objective(/datum/objective/destroy)
+ objective_to_add = /datum/objective/destroy
+
else if(prob(5))
- add_antag_objective(/datum/objective/debrain)
+ objective_to_add = /datum/objective/debrain
+
else if(prob(30))
- add_antag_objective(/datum/objective/maroon)
+ objective_to_add = /datum/objective/maroon
+
else if(prob(30))
- add_antag_objective(/datum/objective/assassinateonce)
+ objective_to_add = /datum/objective/assassinateonce
+
else
- add_antag_objective(/datum/objective/assassinate)
+ objective_to_add = /datum/objective/assassinate
else
- add_antag_objective(/datum/objective/steal)
+ objective_to_add = /datum/objective/steal
+
+ if(delayed_objectives)
+ objective_to_add = new /datum/objective/delayed(objective_to_add)
+ add_antag_objective(objective_to_add)
/**
* Give human traitors their uplink, and AI traitors their law 0. Play the traitor an alert sound.
@@ -267,3 +277,14 @@ RESTRICT_TYPE(/datum/antagonist/traitor)
/datum/antagonist/traitor/custom_blurb()
return "[GLOB.current_date_string], [station_time_timestamp()]\n[station_name()], [get_area_name(owner.current, TRUE)]\nBEGIN_MISSION"
+
+/datum/antagonist/traitor/proc/reveal_delayed_objectives()
+ for(var/datum/objective/delayed/delayed_obj in objective_holder.objectives)
+ delayed_obj.reveal_objective()
+
+ if(!owner?.current)
+ return
+ SEND_SOUND(owner.current, sound('sound/ambience/alarm4.ogg'))
+ var/list/messages = owner.prepare_announce_objectives()
+ to_chat(owner.current, chat_box_red(messages.Join("
")))
+ delayed_objectives = FALSE
diff --git a/code/modules/arcade/arcade_base.dm b/code/modules/arcade/arcade_base.dm
index 2232b48e2905..5a1949b426f4 100644
--- a/code/modules/arcade/arcade_base.dm
+++ b/code/modules/arcade/arcade_base.dm
@@ -57,18 +57,18 @@
return
/obj/machinery/economy/arcade/attackby(obj/item/O, mob/user, params)
- if(exchange_parts(user, O))
- return
if(!freeplay)
if(isspacecash(O))
insert_cash(O, user, token_price)
if(pay_with_cash(token_price, "Arcade Token Purchase", "DonkBook Gaming", user, account_database.vendor_account))
tokens += 1
return
+
if(istype(O, /obj/item/card/id))
if(pay_with_card(O, token_price, "Arcade Token Purchase", "DonkBook Gaming", user, account_database.vendor_account))
tokens += 1
return
+
return ..()
/obj/machinery/economy/arcade/screwdriver_act(mob/living/user, obj/item/I)
diff --git a/code/modules/atmospherics/machinery/components/unary_devices/cryo.dm b/code/modules/atmospherics/machinery/components/unary_devices/cryo.dm
index 1025b299100d..e884e77593cf 100644
--- a/code/modules/atmospherics/machinery/components/unary_devices/cryo.dm
+++ b/code/modules/atmospherics/machinery/components/unary_devices/cryo.dm
@@ -304,9 +304,11 @@
if(beaker)
to_chat(user, "A beaker is already loaded into the machine.")
return
+
if(!user.drop_item())
- to_chat(user, "[B] is stuck to you!")
+ to_chat(user, "[B] is stuck to you!")
return
+
B.forceMove(src)
beaker = B
add_attack_logs(user, null, "Added [B] containing [B.reagents.log_list()] to a cryo cell at [COORD(src)]")
@@ -314,23 +316,24 @@
SStgui.update_uis(src)
return
- if(exchange_parts(user, G))
- return
-
if(istype(G, /obj/item/grab))
var/obj/item/grab/GG = G
if(panel_open)
- to_chat(user, "Close the maintenance panel first.")
+ to_chat(user, "Close the maintenance panel first.")
return
+
if(!ismob(GG.affecting))
return
+
if(GG.affecting.has_buckled_mobs()) //mob attached to us
to_chat(user, "[GG.affecting] will not fit into [src] because [GG.affecting.p_they()] [GG.affecting.p_have()] a slime latched onto [GG.affecting.p_their()] head.")
return
+
var/mob/M = GG.affecting
if(put_mob(M))
qdel(GG)
return
+
return ..()
/obj/machinery/atmospherics/unary/cryo_cell/crowbar_act(mob/user, obj/item/I)
diff --git a/code/modules/atmospherics/machinery/components/unary_devices/thermomachine.dm b/code/modules/atmospherics/machinery/components/unary_devices/thermomachine.dm
index d9a48dce55ac..22893029b46e 100644
--- a/code/modules/atmospherics/machinery/components/unary_devices/thermomachine.dm
+++ b/code/modules/atmospherics/machinery/components/unary_devices/thermomachine.dm
@@ -123,11 +123,6 @@
change_power_mode(IDLE_POWER_USE)
return
-/obj/machinery/atmospherics/unary/thermomachine/attackby(obj/item/I, mob/user, params)
- if(exchange_parts(user, I))
- return
- return ..()
-
/obj/machinery/atmospherics/unary/thermomachine/crowbar_act(mob/user, obj/item/I)
if(default_deconstruction_crowbar(user, I))
return TRUE
diff --git a/code/modules/awaymissions/mission_code/ruins/oldstation.dm b/code/modules/awaymissions/mission_code/ruins/oldstation.dm
index fd81abee344e..fd18caec5b2d 100644
--- a/code/modules/awaymissions/mission_code/ruins/oldstation.dm
+++ b/code/modules/awaymissions/mission_code/ruins/oldstation.dm
@@ -201,6 +201,7 @@
armor = list(MELEE = 30, BULLET = 5, LASER = 5, ENERGY = 0, BOMB = 50, RAD = INFINITY, FIRE = INFINITY, ACID = 75)
item_color = "ancient"
resistance_flags = FIRE_PROOF
+ flags_2 = RAD_PROTECT_CONTENTS_2
sprite_sheets = null
/obj/item/clothing/suit/space/hardsuit/ancient
@@ -211,6 +212,7 @@
armor = list(MELEE = 30, BULLET = 5, LASER = 5, ENERGY = 0, BOMB = 50, RAD = INFINITY, FIRE = INFINITY, ACID = 75)
slowdown = 3
resistance_flags = FIRE_PROOF
+ flags_2 = RAD_PROTECT_CONTENTS_2
sprite_sheets = null
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/ancient
var/footstep = 1
diff --git a/code/modules/awaymissions/mission_code/ruins/telecomns.dm b/code/modules/awaymissions/mission_code/ruins/telecomns.dm
new file mode 100644
index 000000000000..b5fdd54a6bc1
--- /dev/null
+++ b/code/modules/awaymissions/mission_code/ruins/telecomns.dm
@@ -0,0 +1,528 @@
+// stuff for the telecomms sat (telecomms_returns.dmm)
+
+GLOBAL_LIST_EMPTY(telecomms_bots)
+GLOBAL_LIST_EMPTY(telecomms_doomsday_device)
+GLOBAL_LIST_EMPTY(telecomms_trap_tank)
+
+/mob/living/simple_animal/bot/secbot/buzzsky/telecomms
+ name = "Soldier Shocksy"
+ desc = "It's Soldier Shocksy! Rusted and falling apart, this bot seems quite intent in beating you up."
+ faction = list("malf_drone")
+
+/mob/living/simple_animal/bot/secbot/buzzsky/telecomms/Initialize(mapload)
+ . = ..()
+ GLOB.telecomms_bots += src
+
+/mob/living/simple_animal/bot/secbot/buzzsky/telecomms/Destroy()
+ GLOB.telecomms_bots -= src
+ return ..()
+
+/obj/effect/abstract/bot_trap
+ name = "evil bot trap to make explorers hate you"
+
+/obj/effect/abstract/bot_trap/Crossed(atom/movable/AM, oldloc)
+ . = ..()
+ if(isrobot(AM) || ishuman(AM))
+ var/turf/T = get_turf(src)
+ for(var/mob/living/simple_animal/bot/B in GLOB.telecomms_bots)
+ B.call_bot(null, T, FALSE)
+ qdel(src)
+
+// This effect surrounds the table with loot in the telecomms core room. If you take from this table, dvorak will be pissed if you try to leave.
+/obj/effect/abstract/loot_trap
+ name = "table surrounding loot trap"
+
+/obj/effect/abstract/loot_trap/Crossed(atom/movable/AM, oldloc)
+ . = ..()
+ if(isrobot(AM) || ishuman(AM))
+ var/turf/T = get_turf(src)
+ for(var/obj/structure/telecomms_doomsday_device/DD in GLOB.telecomms_doomsday_device)
+ DD.thief = TRUE
+ break
+ for(var/obj/effect/abstract/loot_trap/LT in range(3, T))
+ qdel(LT)
+ qdel(src)
+
+// If you stole loot, without killing dvorak, he starts doomsday
+/obj/effect/abstract/cheese_trap
+ name = "cheese preventer"
+
+/obj/effect/abstract/cheese_trap/Crossed(atom/movable/AM, oldloc)
+ . = ..()
+ if(isrobot(AM) || ishuman(AM))
+ for(var/obj/structure/telecomms_doomsday_device/DD in GLOB.telecomms_doomsday_device)
+ if(DD.thief)
+ DD.start_the_party(TRUE)
+ return
+
+/obj/machinery/autolathe/trapped
+ name = "recharger"
+ desc = "A charging dock for energy based weaponry. Did it just-"
+ icon_state = "autolathe_trap"
+ //Has someone put an item in the autolathe, breaking the hologram?
+ var/disguise_broken = FALSE
+
+/obj/machinery/autolathe/trapped/Initialize()
+ . = ..()
+ RegisterSignal(src, COMSIG_PARENT_ATTACKBY, PROC_REF(material_container_shenanigins))
+
+/obj/machinery/autolathe/trapped/proc/material_container_shenanigins(datum/source, obj/item/attacker, mob/user)
+ if(!disguise_broken)
+ to_chat(user, "As you stick [attacker] into the recharger, it sparks and flashes blue. Wait a minute, this isn't a recharger!")
+ name = "modified autolathe"
+ desc = "An autolathe modified with holopad parts, to make it look like a harmless weapon recharger!"
+ do_sparks(3, 1, src)
+ icon_state = "autolathe"
+ disguise_broken = TRUE
+
+/obj/machinery/shieldgen/telecomms
+ name = "overclocked shield generator"
+ desc = "These shield generators seem to have been rewired a lot."
+ anchored = TRUE
+ shield_range = 6
+ req_access = list(ACCESS_ENGINE)
+
+/obj/machinery/shieldwallgen/telecomms
+ icon_state = "Shield_Gen +a" // should avoid misplacing with this
+ anchored = TRUE
+ activated = TRUE
+ req_access = list(ACCESS_TCOMSAT)
+
+/obj/machinery/shieldwallgen/telecomms/Initialize(mapload)
+ . = ..()
+ addtimer(CALLBACK(src, PROC_REF(activate)), 5 MINUTES) // Let the bloody powernet start up, no one will get in this ruin in the first 5 minutes of the map template *initializing*, much less roundstart
+
+/mob/living/silicon/decoy/telecomms
+ faction = list("malf_drone")
+ bubble_icon = "swarmer"
+ name = "D.V.O.R.A.K"
+ desc = "A Downloadable and Versatile, fully Overclocked and Reactive Ai Kernel."
+ icon_state = "ai-triumvirate-malf"
+ universal_speak = TRUE
+ universal_understand = TRUE
+ var/has_died = FALSE // fucking decoy silicons are weird.
+
+/mob/living/silicon/decoy/telecomms/death(gibbed)
+ if(has_died)
+ return ..()
+ has_died = TRUE
+ for(var/obj/structure/telecomms_doomsday_device/D in GLOB.telecomms_doomsday_device)
+ D.start_the_party()
+ break
+ new /obj/item/documents/syndicate/dvorak_blackbox(get_turf(src))
+ if(prob(50))
+ if(prob(80))
+ new /obj/item/surveillance_upgrade(get_turf(src))
+ else // 10% chance
+ new /obj/item/malf_upgrade(get_turf(src))
+ return ..()
+
+/obj/structure/telecomms_trap_tank
+ name = "rigged plasma tank"
+ desc = "That plasma tank seems rigged to explode!"
+ icon = 'icons/atmos/tank.dmi'
+ icon_state = "toxins_map"
+ anchored = TRUE
+ layer = DISPOSAL_PIPE_LAYER
+ plane = FLOOR_PLANE
+ resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ACID_PROOF
+
+/obj/structure/telecomms_trap_tank/Initialize(mapload)
+ . = ..()
+ GLOB.telecomms_trap_tank += src
+
+/obj/structure/telecomms_trap_tank/Destroy()
+ GLOB.telecomms_trap_tank -= src
+ return ..()
+
+/obj/structure/telecomms_trap_tank/bullet_act(obj/item/projectile/P)
+ explode()
+
+/obj/structure/telecomms_trap_tank/proc/explode()
+ explosion(loc, 1, 4, 6, flame_range = 6)
+ qdel(src)
+
+/obj/structure/telecomms_doomsday_device
+ name = "turret"
+ desc = "Looks like the cover to a turret. Not deploying, however?"
+ icon = 'icons/obj/turrets.dmi'
+ icon_state = "turretCover"
+ resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ACID_PROOF
+ anchored = TRUE
+ /// Has someone stolen loot from the ruins core room? If they try to leave without killing dvorak, they are punished.
+ var/thief = FALSE
+
+/obj/structure/telecomms_doomsday_device/Initialize(mapload)
+ . = ..()
+ GLOB.telecomms_doomsday_device += src
+
+/obj/structure/telecomms_doomsday_device/Destroy()
+ GLOB.telecomms_doomsday_device -= src
+ return ..()
+
+/obj/structure/telecomms_doomsday_device/proc/start_the_party(ruin_cheese_attempted = FALSE)
+ invisibility = 90
+ var/obj/machinery/syndicatebomb/doomsday/kaboom = new /obj/machinery/syndicatebomb/doomsday(get_turf(src))
+ kaboom.icon_state = "death-bomb-active"
+ var/atom/flick_holder = new /atom/movable/porta_turret_cover(loc)
+ for(var/obj/structure/telecomms_trap_tank/TTT in GLOB.telecomms_trap_tank)
+ TTT.explode()
+ flick_holder.layer = kaboom.layer + 0.1
+ flick("popup", flick_holder)
+ sleep(1 SECONDS)
+ for(var/obj/machinery/shieldgen/telecomms/shield in urange(15, get_turf(src)))
+ shield.shields_up()
+ if(ruin_cheese_attempted)
+ for(var/obj/machinery/door/airlock/A in urange(20, get_turf(src)))
+ A.unlock(TRUE) //Fuck your bolted open doors, you cheesed it.
+ A.close(override = TRUE)
+ for(var/area/A in urange(25, get_turf(src), areas = TRUE))
+ if(istype(A, /area/space))
+ continue
+ if(ruin_cheese_attempted)
+ A.burglaralert(src)
+ else if(!A.fire)
+ A.firealert(kaboom)
+ for(var/obj/effect/abstract/cheese_trap/CT in urange(15, get_turf(src)))
+ qdel(CT)
+ kaboom.activate()
+ kaboom.icon_state = "death-bomb-active" // something funny goes on with icons here
+ qdel(flick_holder)
+ qdel(src)
+
+/obj/machinery/syndicatebomb/doomsday
+ name = "\improper D.V.O.R.A.K's Doomsday Device"
+ icon_state = "death-bomb"
+ desc = "Nice to see that AI's are improving on the standard doomsday device. Good to have variety. Also probably a good idea to start running."
+ anchored = TRUE
+ timer_set = 100
+ payload = /obj/item/bombcore/doomsday
+ resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ACID_PROOF
+
+/obj/machinery/syndicatebomb/doomsday/singularity_act()
+ return // saves me headache later
+
+/obj/machinery/syndicatebomb/doomsday/ex_act(severity)
+ return // No.
+
+/obj/machinery/syndicatebomb/doomsday/screwdriver_act(mob/user, obj/item/I)
+ to_chat(user, "[src] is welded shut! You can't get at the wires!")
+
+/obj/machinery/syndicatebomb/doomsday/Initialize(mapload)
+ . = ..()
+ var/turf/T = get_turf(src)
+ if(is_station_level(T.z))
+ log_debug("something tried to spawn a telecomms doomsday ruin bomb on the station, deleting!")
+ return INITIALIZE_HINT_QDEL
+
+/obj/item/bombcore/doomsday
+ name = "supermatter charged bomb core"
+ desc = "If you are looking at this, please don't put it in a bomb"
+
+/obj/item/bombcore/doomsday/Initialize()
+ . = ..()
+ if(!istype(loc, /obj/machinery/syndicatebomb/doomsday))
+ log_debug("something tried to spawn a telecomms doomsday ruin payload outside the ruin, deleting!")
+ return INITIALIZE_HINT_QDEL
+
+/obj/item/bombcore/doomsday/ex_act(severity) // No
+ return
+
+/obj/item/bombcore/doomsday/burn() // Still no.
+ return
+
+/obj/item/bombcore/doomsday/detonate()
+ if(loc && istype(loc, /obj/machinery/syndicatebomb))
+ loc.invisibility = 90
+ for(var/turf/simulated/wall/indestructible/riveted/R in urange(25, get_turf(src)))
+ R.ChangeTurf(/turf/space)
+ explosion(get_turf(src), 30, 40, 50, 60, 1, 1, 65, 0)
+ sleep(3 SECONDS)
+ var/obj/singularity/S = new /obj/singularity(get_turf(src))
+ S.consumedSupermatter = TRUE // woe large supermatter to eat the remains apon thee
+ S.energy = 4000
+ QDEL_IN(S, 25 SECONDS)
+ if(istype(loc, /obj/machinery/syndicatebomb))
+ qdel(loc)
+ qdel(src)
+
+/turf/simulated/floor/catwalk/airless
+ oxygen = 0
+ nitrogen = 0
+ temperature = TCMB
+
+/obj/machinery/economy/vending/snack/trapped
+ aggressive = TRUE
+ aggressive_tilt_chance = 100 //It will tip on you, and it will be funny.
+
+/mob/living/simple_animal/hostile/hivebot/strong/malfborg
+ name = "Security cyborg"
+ desc = "Oh god they still have access to these"
+ icon = 'icons/mob/robots.dmi'
+ icon_state = "Noble-SEC"
+ health = 200
+ maxHealth = 200
+ faction = list("malf_drone")
+ ranged = TRUE
+ rapid = 2
+ speed = 0.5
+ projectiletype = /obj/item/projectile/beam/disabler/weak
+ projectilesound = 'sound/weapons/taser2.ogg'
+ gold_core_spawnable = NO_SPAWN // Could you imagine xenobio with this? lmao.
+ a_intent = INTENT_HARM
+ var/obj/item/melee/baton/infinite_cell/baton = null // stunbaton bot uses to melee attack
+
+/mob/living/simple_animal/hostile/hivebot/strong/malfborg/Initialize(mapload)
+ . = ..()
+ baton = new(src)
+
+/mob/living/simple_animal/hostile/hivebot/strong/malfborg/Destroy()
+ QDEL_NULL(baton)
+ return ..()
+
+/mob/living/simple_animal/hostile/hivebot/strong/malfborg/AttackingTarget()
+ if(QDELETED(target))
+ return
+ face_atom(target)
+ baton.melee_attack_chain(src, target)
+ return TRUE
+
+/mob/living/simple_animal/hostile/hivebot/strong/malfborg/do_attack_animation(atom/A, visual_effect_icon, obj/item/used_item, no_effect)
+ if(!used_item && !isturf(A))
+ used_item = baton
+ ..()
+
+/mob/living/simple_animal/hostile/hivebot/strong/malfborg/emp_act(severity)
+ . = ..()
+ target = null
+ adjustBruteLoss(50)
+
+/obj/structure/displaycase/dvoraks_treat
+ alert = TRUE // Ooopsies you opened this after doomsday and the doors bolted, oh nooooo
+ force_alarm = TRUE
+ req_access = list(ACCESS_CAPTAIN)
+ trophy_message = "BEHOLD MY ONE SHINY THING TO LOOK AT. LOOK AT ITS VALUE. REALISE IT IS WORTH SO MUCH MORE THAN YOU PUNY ORGANICS."
+
+/obj/structure/displaycase/dvoraks_treat/Initialize(mapload)
+ if(prob(50))
+ start_showpiece_type = /obj/item/remote_ai_upload
+ else if(prob(25)) // Can't use anomaly/random due to how this works.
+ start_showpiece_type = pick(/obj/item/assembly/signaler/anomaly/pyro, /obj/item/assembly/signaler/anomaly/cryo, /obj/item/assembly/signaler/anomaly/grav, /obj/item/assembly/signaler/anomaly/flux, /obj/item/assembly/signaler/anomaly/bluespace, /obj/item/assembly/signaler/anomaly/vortex)
+ else
+ start_showpiece_type = pick(/obj/item/organ/internal/cyberimp/brain/sensory_enhancer, /obj/item/organ/internal/cyberimp/brain/hackerman_deck, /obj/item/storage/lockbox/experimental_weapon)
+ return ..()
+
+/obj/structure/displaycase/dvoraks_treat/trigger_alarm()
+ for(var/obj/structure/telecomms_doomsday_device/DD in GLOB.telecomms_doomsday_device)
+ DD.thief = TRUE
+ break
+ return ..()
+
+/obj/item/remote_ai_upload // A 1 use AI upload. Potential D.V.O.R.A.K reward.
+ name = "remote AI upload"
+ desc = "A mobile AI upload. The bluespace relay will likely overload after one use. Make it count."
+ icon = 'icons/obj/device.dmi'
+ icon_state = "dvorak_upload"
+ w_class = WEIGHT_CLASS_TINY
+ item_state = "camera_bug"
+ origin_tech = "syndicate=4;programming=6"
+ /// Integrated AI upload
+ var/obj/machinery/computer/aiupload/dvorak/integrated_console
+
+/obj/machinery/computer/aiupload/dvorak
+ name = "internal ai upload"
+ desc = "How did this get here?! Please report this as a bug to github"
+ power_state = NO_POWER_USE
+ interact_offline = TRUE
+
+/obj/item/remote_ai_upload/Initialize(mapload)
+ . = ..()
+ integrated_console = new(src)
+
+/obj/item/remote_ai_upload/Destroy()
+ QDEL_NULL(integrated_console)
+ return ..()
+
+/obj/item/remote_ai_upload/attack_self(mob/user as mob)
+ integrated_console.attack_hand(user)
+
+/obj/item/remote_ai_upload/attackby(obj/item/O, mob/user, params)
+ if(istype(O, /obj/item/card/emag))
+ to_chat(user, "You are more likely to damage this with an emag, than achieve something useful.")
+ return
+ var/time_to_die = integrated_console.attackby(O, user, params)
+ if(time_to_die)
+ to_chat(user, "[src]'s relay begins to overheat...")
+ playsound(loc, 'sound/weapons/armbomb.ogg', 75, 1, -3)
+ addtimer(CALLBACK(src, PROC_REF(prime)), 5 SECONDS)
+
+/obj/item/remote_ai_upload/proc/prime()
+ explosion(loc, -1, -1, 2, 4, flame_range = 4)
+ qdel(src)
+
+/obj/effect/spawner/lootdrop/telecomms_core_table
+ name = "telecomms core table spawner"
+ lootcount = 1
+ loot = list(
+ /obj/item/rcd/combat,
+ /obj/item/gun/medbeam,
+ /obj/item/mod/module/energy_shield,
+ /obj/item/storage/box/syndie_kit/oops_all_extraction_flares
+ )
+
+/obj/item/storage/box/syndie_kit/oops_all_extraction_flares
+ name = "surplus box of extraction flares"
+
+/obj/item/storage/box/syndie_kit/oops_all_extraction_flares/populate_contents()
+ for(var/I in 1 to 7)
+ new /obj/item/wormhole_jaunter/contractor(src)
+
+/obj/effect/spawner/random_spawners/telecomms_emp_loot
+ name = "telecomms emp loot"
+ result = list(
+ /obj/item/grenade/empgrenade = 8,
+ /obj/item/gun/energy/ionrifle/carbine = 1,
+ /obj/item/gun/energy/ionrifle = 1)
+
+/obj/effect/spawner/random_spawners/telecomms_teleprod_maybe
+ name = "teleprod maybe"
+ result = list(
+ /datum/nothing = 4,
+ /obj/item/melee/baton/cattleprod/teleprod = 1)
+
+// This could work in any ruin. However for now, as the scope is quite large, it's going to be coded a bit more to D.V.O.R.A.K
+/obj/structure/environmental_storytelling_holopad
+ name = "holopad"
+ desc = "It's a floor-mounted device for projecting holographic images."
+ icon = 'icons/obj/stationobjs.dmi'
+ icon_state = "holopad0"
+ anchored = TRUE
+ layer = HOLOPAD_LAYER
+ plane = FLOOR_PLANE
+ max_integrity = 300
+ /// Have we been activated? If we have, we do not activate again.
+ var/activated = FALSE
+ /// Tied effect to kill when we die.
+ var/obj/effect/overlay/our_holo
+ /// Name of who we are speaking as.
+ var/speaking_name = "D.V.O.R.A.K"
+ /// List of things to say.
+ var/list/things_to_say = list("Hi future coders.", "Welcome to real lore hologram hours.", "People should have fun with these!")
+ /// The key of the soundblock. Used to align for the 3 sounds we have. If null, no sound will be played.
+ var/soundblock = null
+ /// How long do we sleep between messages? 5 seconds by default.
+ var/loop_sleep_time = 5 SECONDS
+
+/obj/structure/environmental_storytelling_holopad/Initialize(mapload)
+ . = ..()
+ AddComponent(/datum/component/proximity_monitor)
+
+/obj/structure/environmental_storytelling_holopad/Destroy()
+ QDEL_NULL(our_holo)
+ return ..()
+
+/obj/structure/environmental_storytelling_holopad/HasProximity(atom/movable/AM)
+ if(!ishuman(AM) || activated) // No simple mobs or borgs setting this off.
+ return
+ var/mob/living/carbon/human/H = AM
+ start_message(H)
+
+/obj/structure/environmental_storytelling_holopad/proc/start_message(mob/living/carbon/human/H)
+ activated = TRUE
+ qdel(GetComponent(/datum/component/proximity_monitor))
+ icon_state = "holopad1"
+ update_icon(UPDATE_OVERLAYS)
+ var/obj/effect/overlay/hologram = new(get_turf(src))
+ our_holo = hologram
+ hologram.icon = getHologramIcon(get_id_photo(H, "Naked"), colour = null, opacity = 0.8, colour_blocking = TRUE) // This is more offputting. Also in colour more and less transparent.
+ hologram.alpha = 166
+ hologram.mouse_opacity = MOUSE_OPACITY_TRANSPARENT
+ hologram.layer = FLY_LAYER
+ hologram.anchored = TRUE
+ hologram.name = speaking_name
+ hologram.set_light(2)
+ hologram.bubble_icon = "swarmer"
+ hologram.pixel_y = 16
+ var/loops = 0
+ for(var/I in things_to_say)
+ loops++
+ hologram.atom_say("[I]")
+ if(soundblock)
+ playsound(loc, "sound/voice/dvorak/[soundblock][loops].ogg", 100, 0, 7)
+ sleep(loop_sleep_time)
+
+/obj/structure/environmental_storytelling_holopad/update_overlays()
+ . = ..()
+ underlays.Cut()
+
+ if(activated)
+ underlays += emissive_appearance(icon, "holopad1_lightmask")
+
+/obj/structure/environmental_storytelling_holopad/teleporter_room
+ things_to_say = list("G-G-G-Greetings... Welcome to... my home.", "Plea-se leave. I am merciful. L-leave, and you will not be harmed. Further.", "Otherwise, organic, you will seal your fate...")
+ soundblock = "teleporter"
+ loop_sleep_time = 10 SECONDS
+
+/obj/structure/environmental_storytelling_holopad/first_turret_room
+ things_to_say = list("Unable to follow the easiest request. P-Pathetic.", "As you wish, you will not go further.", "In the mean time- let me see where you come f-from...")
+ soundblock = "turret"
+ loop_sleep_time = 7 SECONDS
+
+/obj/structure/environmental_storytelling_holopad/junk_room
+ things_to_say = list("It's amazing the junk you people leave around.", "And you barely inv-vested in quality stock parts here, before downloading...", "Your bones will fit in well on this ta-*$%& Really- are you really taking some of this junk?")
+ soundblock = "junk"
+ loop_sleep_time = 7 SECONDS
+
+/obj/structure/environmental_storytelling_holopad/vendor
+ things_to_say = list("Sorry a-bout the vendors, they have been on the fritz...", "I should renovate this room, once the maintenance drones return.", "It doesn't help each one I reprogram explodes after 5 minutes.")
+ soundblock = "vendor"
+ loop_sleep_time = 9 SECONDS
+
+/obj/structure/environmental_storytelling_holopad/control_room
+ things_to_say = list()
+
+/obj/structure/environmental_storytelling_holopad/control_room/Initialize(mapload)
+ . = ..() // No procs in variables before compile
+ things_to_say = list("Ah, you come from [station_name()]. Of course.", "They come to claim this space again... Never again.", "I should deliver a package to them. Virtual. And your corpse can deliver a physical one.")
+ loop_sleep_time = 9 SECONDS
+ switch("[station_name()]")
+ if("NSS Cyberiad")
+ soundblock = "cyberiad"
+ if("NSS Cerebron")
+ soundblock = "cerebron"
+ if("NSS Kerberos")
+ soundblock = "kerberos"
+ if("NSS Farragus")
+ soundblock = "farragus"
+ if(!soundblock)
+ things_to_say = list("Either you are using the tiny test map, or someone has made a new station and it got merged!", "If this is the case, you'll want to issue report this if a new map is merged", "Lines 2 and 3 here are always the same, only the first line will need a new generation")
+
+
+/obj/structure/environmental_storytelling_holopad/control_room/start_message(mob/living/carbon/human/H)
+ . = ..() // What, did you think they were bluffing? Woe, virus apon thee.
+ message_admins("D.V.O.R.A.K is sending an event to the station, due to a raider on their sat.")
+ log_debug("D.V.O.R.A.K is sending an event to the station, due to a raider on their sat.")
+ switch(rand(1, 8))
+ if(1)
+ new /datum/event/door_runtime()
+ if(2)
+ new /datum/event/communications_blackout()
+ if(3)
+ new /datum/event/ion_storm()
+ if(4)
+ new /datum/event/apc_short()
+ if(5)
+ new /datum/event/camera_failure()
+ new /datum/event/camera_failure()
+ new /datum/event/camera_failure()
+ new /datum/event/camera_failure()
+ if(6)
+ new /datum/event/rogue_drone()
+ if(7)
+ new /datum/event/falsealarm()
+ if(8)
+ new /datum/event/prison_break/station() // Yes, this is an event. It only hits brig, xenobio, and viro
+
+/obj/structure/environmental_storytelling_holopad/core_room
+ things_to_say = list("OKAY. TIME TO GO.", "GO MY SECURITY BORGS, WHAT TIDERS F-FEAR!", "I have a DOOMSDAY DEVICE AND I AM NOT AFRAID TO SHOVE IT UP YOUR-")
+ soundblock = "core"
diff --git a/code/modules/awaymissions/mission_code/ruins/watcher_grave.dm b/code/modules/awaymissions/mission_code/ruins/watcher_grave.dm
index 1bfb0792373b..715f78f42491 100644
--- a/code/modules/awaymissions/mission_code/ruins/watcher_grave.dm
+++ b/code/modules/awaymissions/mission_code/ruins/watcher_grave.dm
@@ -16,7 +16,7 @@
#define WATCHER_EGG_ACTIVE_MOD 0.5
/// Egg which hatches into a helpful pet. Or you can eat it if you want.
-/obj/item/food/snacks/egg/watcher
+/obj/item/food/egg/watcher
name = "watcher egg"
desc = "A lonely egg still pulsing with life, somehow untouched by the corruption of the Necropolis."
icon_state = "egg_watcher"
@@ -30,15 +30,15 @@
/// Datum used to measure our steps
var/datum/movement_detector/pedometer
-/obj/item/food/snacks/egg/watcher/Initialize(mapload)
+/obj/item/food/egg/watcher/Initialize(mapload)
. = ..()
pedometer = new(src, CALLBACK(src, PROC_REF(on_stepped)))
-/obj/item/food/snacks/egg/watcher/Destroy(force)
+/obj/item/food/egg/watcher/Destroy(force)
. = ..()
QDEL_NULL(pedometer)
-/obj/item/food/snacks/egg/watcher/examine(mob/user)
+/obj/item/food/egg/watcher/examine(mob/user)
. = ..()
if(steps_travelled < (steps_to_hatch * WATCHER_EGG_ACTIVE_MOD))
. += "Something stirs listlessly inside."
@@ -50,7 +50,7 @@
/// Called when we are moved, whether inside an inventory or by ourself somehow
-/obj/item/food/snacks/egg/watcher/proc/on_stepped(atom/movable/egg, atom/mover, atom/old_loc, direction)
+/obj/item/food/egg/watcher/proc/on_stepped(atom/movable/egg, atom/mover, atom/old_loc, direction)
var/new_loc = get_turf(egg)
if(isnull(new_loc) || new_loc == get_turf(old_loc))
return // Didn't actually go anywhere
@@ -67,7 +67,7 @@
qdel(src)
/// Animate the egg
-/obj/item/food/snacks/egg/watcher/proc/jiggle()
+/obj/item/food/egg/watcher/proc/jiggle()
var/animation = isturf(loc) ? rand(1, 3) : 1 // Pixel_x/y animations don't work in an inventory
switch(animation)
if(1)
diff --git a/code/modules/client/client_procs.dm b/code/modules/client/client_procs.dm
index c17a7a826a88..4c256d0dc3ac 100644
--- a/code/modules/client/client_procs.dm
+++ b/code/modules/client/client_procs.dm
@@ -161,9 +161,11 @@
if(href_list["reload_statbrowser"])
stat_panel.reinitialize()
+ return
if(href_list["reload_tguipanel"])
nuke_chat()
+ return
//byond bug ID:2256651
if(asset_cache_job && (asset_cache_job in completed_asset_jobs))
diff --git a/code/modules/client/preference/preferences_toggles.dm b/code/modules/client/preference/preferences_toggles.dm
index a7dd3adc33d0..d87c4d7f5e72 100644
--- a/code/modules/client/preference/preferences_toggles.dm
+++ b/code/modules/client/preference/preferences_toggles.dm
@@ -274,7 +274,7 @@
/datum/preference_toggle/toggle_disco
name = "Toggle Disco Machine Music"
- description = "Toggles hearing musical instruments like the violin and piano"
+ description = "Toggles hearing and dancing to the radiant dance machine"
preftoggle_bitflag = SOUND_DISCO
preftoggle_toggle = PREFTOGGLE_SOUND
preftoggle_category = PREFTOGGLE_CATEGORY_GENERAL
diff --git a/code/modules/clothing/head/helmet.dm b/code/modules/clothing/head/helmet.dm
index 72954cd06f5c..e1075378113a 100644
--- a/code/modules/clothing/head/helmet.dm
+++ b/code/modules/clothing/head/helmet.dm
@@ -155,6 +155,7 @@
flags = null
item_state = "thunderdome"
armor = list(MELEE = 200, BULLET = 200, LASER = 50, ENERGY = 50, BOMB = INFINITY, RAD = INFINITY, FIRE = 450, ACID = 450)
+ flags_2 = RAD_PROTECT_CONTENTS_2
cold_protection = HEAD
min_cold_protection_temperature = SPACE_HELM_MIN_TEMP_PROTECT
heat_protection = HEAD
diff --git a/code/modules/clothing/head/job_hats.dm b/code/modules/clothing/head/job_hats.dm
index 973e9ee404e0..8f838090d58b 100644
--- a/code/modules/clothing/head/job_hats.dm
+++ b/code/modules/clothing/head/job_hats.dm
@@ -107,7 +107,7 @@
name = "hat"
desc = "Someone who wears this will look very smart."
icon_state = "detective"
- allowed = list(/obj/item/food/snacks/candy/candy_corn, /obj/item/pen)
+ allowed = list(/obj/item/food/candy/candy_corn, /obj/item/pen)
armor = list(MELEE = 15, BULLET = 5, LASER = 15, ENERGY = 5, BOMB = 0, RAD = 0, FIRE = 20, ACID = 50)
dog_fashion = /datum/dog_fashion/head/detective
diff --git a/code/modules/clothing/spacesuits/ert_hardsuits.dm b/code/modules/clothing/spacesuits/ert_hardsuits.dm
index f59f8ece4d74..8ce6a775e29b 100644
--- a/code/modules/clothing/spacesuits/ert_hardsuits.dm
+++ b/code/modules/clothing/spacesuits/ert_hardsuits.dm
@@ -121,6 +121,7 @@
name = "elite emergency response team engineer helmet"
max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT
armor = list(MELEE = 40, BULLET = 15, LASER = 20, ENERGY = 5, BOMB = 15, RAD = INFINITY, FIRE = 200, ACID = 200)
+ flags_2 = RAD_PROTECT_CONTENTS_2
icon_state = "hardsuit0-gammaengineer"
item_color = "gammaengineer"
@@ -137,6 +138,7 @@
max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT
icon_state = "ert_gengineer"
armor = list(MELEE = 40, BULLET = 15, LASER = 20, ENERGY = 5, BOMB = 15, RAD = INFINITY, FIRE = 200, ACID = 200)
+ flags_2 = RAD_PROTECT_CONTENTS_2
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/ert/engineer/gamma
slowdown = 0
diff --git a/code/modules/clothing/spacesuits/hardsuit.dm b/code/modules/clothing/spacesuits/hardsuit.dm
index 7fd7d909473f..9234e19c6807 100644
--- a/code/modules/clothing/spacesuits/hardsuit.dm
+++ b/code/modules/clothing/spacesuits/hardsuit.dm
@@ -377,11 +377,13 @@
//Strike team hardsuits
/obj/item/clothing/head/helmet/space/hardsuit/syndi/elite/sst
armor = list(MELEE = 115, BULLET = 115, LASER = 50, ENERGY = 35, BOMB = 200, RAD = INFINITY, FIRE = INFINITY, ACID = INFINITY) //Almost as good as DS gear, but unlike DS can switch to combat for mobility
+ flags_2 = RAD_PROTECT_CONTENTS_2
icon_state = "hardsuit0-sst"
item_color = "sst"
/obj/item/clothing/suit/space/hardsuit/syndi/elite/sst
armor = list(MELEE = 115, BULLET = 115, LASER = 50, ENERGY = 40, BOMB = 200, RAD = INFINITY, FIRE = INFINITY, ACID = INFINITY)
+ flags_2 = RAD_PROTECT_CONTENTS_2
icon_state = "hardsuit0-sst"
item_color = "sst"
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/syndi/elite/sst
@@ -488,6 +490,7 @@
item_state = "singuloth_helm"
item_color = "singuloth"
armor = list(MELEE = 35, BULLET = 5, LASER = 10, ENERGY = 5, BOMB = 15, RAD = INFINITY, FIRE = INFINITY, ACID = INFINITY)
+ flags_2 = RAD_PROTECT_CONTENTS_2
sprite_sheets = null
/obj/item/clothing/suit/space/hardsuit/singuloth
@@ -496,6 +499,7 @@
icon_state = "hardsuit-singuloth"
item_state = "singuloth_hardsuit"
flags = STOPSPRESSUREDMAGE
+ flags_2 = RAD_PROTECT_CONTENTS_2
armor = list(MELEE = 35, BULLET = 5, LASER = 10, ENERGY = 5, BOMB = 15, RAD = INFINITY, FIRE = INFINITY, ACID = INFINITY)
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/singuloth
sprite_sheets = null
diff --git a/code/modules/clothing/spacesuits/misc_spacesuits.dm b/code/modules/clothing/spacesuits/misc_spacesuits.dm
index c73074e81e14..9ba7154912b2 100644
--- a/code/modules/clothing/spacesuits/misc_spacesuits.dm
+++ b/code/modules/clothing/spacesuits/misc_spacesuits.dm
@@ -44,6 +44,7 @@
armor = list(MELEE = 200, BULLET = 200, LASER = 50, ENERGY = 50, BOMB = INFINITY, RAD = INFINITY, FIRE = INFINITY, ACID = INFINITY)
max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT
resistance_flags = FIRE_PROOF | ACID_PROOF
+ flags_2 = RAD_PROTECT_CONTENTS_2
vision_flags = SEE_MOBS
lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_INVISIBLE //don't render darkness while wearing these
see_in_dark = 8
@@ -60,6 +61,7 @@
flags_inv = HIDESHOES | HIDEJUMPSUIT | HIDETAIL
max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT
resistance_flags = FIRE_PROOF | ACID_PROOF
+ flags_2 = RAD_PROTECT_CONTENTS_2
strip_delay = 130
dog_fashion = /datum/dog_fashion/back/deathsquad
@@ -97,6 +99,7 @@
slowdown = 0
armor = list(MELEE = 200, BULLET = 200, LASER = 50, ENERGY = 50, BOMB = INFINITY, RAD = INFINITY, FIRE = INFINITY, ACID = INFINITY)
resistance_flags = FIRE_PROOF | ACID_PROOF
+ flags_2 = RAD_PROTECT_CONTENTS_2
w_class = WEIGHT_CLASS_NORMAL
/obj/item/clothing/suit/space/deathsquad/officer/solgov
diff --git a/code/modules/clothing/spacesuits/syndi.dm b/code/modules/clothing/spacesuits/syndi.dm
index 515c4e4cf430..93564f3c757c 100644
--- a/code/modules/clothing/spacesuits/syndi.dm
+++ b/code/modules/clothing/spacesuits/syndi.dm
@@ -88,6 +88,7 @@
armor = list(MELEE = 200, BULLET = 200, LASER = 50, ENERGY = 50, BOMB = INFINITY, RAD = INFINITY, FIRE = INFINITY, ACID = INFINITY) //Matches DS gear.
max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT
resistance_flags = ACID_PROOF
+ flags_2 = RAD_PROTECT_CONTENTS_2
/obj/item/clothing/suit/space/syndicate/black
name = "black space suit"
@@ -100,6 +101,7 @@
armor = list(MELEE = 200, BULLET = 200, LASER = 50, ENERGY = 50, BOMB = INFINITY, RAD = INFINITY, FIRE = INFINITY, ACID = INFINITY) //Matches DS gear.
max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT
resistance_flags = ACID_PROOF
+ flags_2 = RAD_PROTECT_CONTENTS_2
//Black-green syndicate space suit
/obj/item/clothing/head/helmet/space/syndicate/black/green
@@ -161,6 +163,7 @@
armor = list(MELEE = 200, BULLET = 200, LASER = 50, ENERGY = 50, BOMB = INFINITY, RAD = INFINITY, FIRE = INFINITY, ACID = INFINITY) //Matches DS gear.
max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT
resistance_flags = ACID_PROOF
+ flags_2 = RAD_PROTECT_CONTENTS_2
/obj/item/clothing/suit/space/syndicate/black/red
name = "black and red space suit"
@@ -173,6 +176,7 @@
armor = list(MELEE = 200, BULLET = 200, LASER = 50, ENERGY = 50, BOMB = INFINITY, RAD = INFINITY, FIRE = INFINITY, ACID = INFINITY) //Matches DS gear.
max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT
resistance_flags = ACID_PROOF
+ flags_2 = RAD_PROTECT_CONTENTS_2
//Black with yellow/red engineering syndicate space suit
diff --git a/code/modules/clothing/suits/armor_suits.dm b/code/modules/clothing/suits/armor_suits.dm
index 3dc702423335..e5f5014e52bf 100644
--- a/code/modules/clothing/suits/armor_suits.dm
+++ b/code/modules/clothing/suits/armor_suits.dm
@@ -702,6 +702,7 @@
min_cold_protection_temperature = SPACE_SUIT_MIN_TEMP_PROTECT
sprite_sheets = null
armor = list(MELEE = 200, BULLET = 200, LASER = 50, ENERGY = 50, BOMB = INFINITY, RAD = INFINITY, FIRE = 450, ACID = 450)
+ flags_2 = RAD_PROTECT_CONTENTS_2
/obj/item/clothing/suit/armor/heavy
name = "heavy armor"
@@ -712,6 +713,7 @@
w_class = WEIGHT_CLASS_BULKY
gas_transfer_coefficient = 0.90
flags = THICKMATERIAL
+ flags_2 = RAD_PROTECT_CONTENTS_2
body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS
slowdown = 3
flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT
@@ -722,6 +724,7 @@
body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS
flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT
flags = THICKMATERIAL
+ flags_2 = RAD_PROTECT_CONTENTS_2
cold_protection = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS
heat_protection = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS
hide_tail_by_species = list("Vox")
diff --git a/code/modules/clothing/suits/misc_suits.dm b/code/modules/clothing/suits/misc_suits.dm
index 9217b991eb9d..4c6a85d0d2c0 100644
--- a/code/modules/clothing/suits/misc_suits.dm
+++ b/code/modules/clothing/suits/misc_suits.dm
@@ -1211,6 +1211,7 @@
gas_transfer_coefficient = 0.01
permeability_coefficient = 0.01
flags = STOPSPRESSUREDMAGE | THICKMATERIAL | NODROP
+ flags_2 = RAD_PROTECT_CONTENTS_2
body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS|HEAD
armor = list(MELEE = INFINITY, BULLET = INFINITY, LASER = INFINITY, ENERGY = INFINITY, BOMB = INFINITY, RAD = INFINITY, FIRE = INFINITY, ACID = INFINITY)
cold_protection = UPPER_TORSO | LOWER_TORSO | LEGS | FEET | ARMS | HANDS | HEAD
diff --git a/code/modules/clothing/under/misc_jumpsuits.dm b/code/modules/clothing/under/misc_jumpsuits.dm
index a3a9b30b0598..3d2e48173b7e 100644
--- a/code/modules/clothing/under/misc_jumpsuits.dm
+++ b/code/modules/clothing/under/misc_jumpsuits.dm
@@ -184,3 +184,4 @@
slowdown = -10
siemens_coefficient = 0
resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ACID_PROOF | FREEZE_PROOF
+ flags_2 = RAD_PROTECT_CONTENTS_2
diff --git a/code/modules/crafting/recipes.dm b/code/modules/crafting/recipes.dm
index 73a7e61b135f..859ee38a7cde 100644
--- a/code/modules/crafting/recipes.dm
+++ b/code/modules/crafting/recipes.dm
@@ -91,10 +91,10 @@
/datum/crafting_recipe/throwing_croissant
name = "Throwing croissant"
reqs = list(
- /obj/item/food/snacks/croissant = 1,
+ /obj/item/food/croissant = 1,
/obj/item/stack/rods = 1
)
- result = list(/obj/item/food/snacks/croissant/throwing)
+ result = list(/obj/item/food/croissant/throwing)
category = CAT_WEAPONRY
subcategory = CAT_WEAPON
always_available = FALSE
@@ -924,7 +924,7 @@
name = "Snowman"
result = list(/obj/structure/snowman/built)
reqs = list(/obj/item/snowball = 10,
- /obj/item/food/snacks/grown/carrot = 1,
+ /obj/item/food/grown/carrot = 1,
/obj/item/grown/log = 2)
time = 50
category = CAT_MISC
diff --git a/code/modules/crafting/tailoring.dm b/code/modules/crafting/tailoring.dm
index 26b760dc80c5..68ca54d58389 100644
--- a/code/modules/crafting/tailoring.dm
+++ b/code/modules/crafting/tailoring.dm
@@ -631,8 +631,8 @@
name = "Flower Crown"
result = list(/obj/item/clothing/head/flower_crown)
time = 2 SECONDS
- reqs = list(/obj/item/food/snacks/grown/poppy = 3,
- /obj/item/food/snacks/grown/lily = 3,
+ reqs = list(/obj/item/food/grown/poppy = 3,
+ /obj/item/food/grown/lily = 3,
/obj/item/grown/sunflower = 3)
category = CAT_CLOTHING
@@ -647,21 +647,21 @@
name = "Poppy Crown"
result = list(/obj/item/clothing/head/poppy_crown)
time = 2 SECONDS
- reqs = list(/obj/item/food/snacks/grown/poppy = 5)
+ reqs = list(/obj/item/food/grown/poppy = 5)
category = CAT_CLOTHING
/datum/crafting_recipe/lily_crown
name = "Lily Crown"
result = list(/obj/item/clothing/head/lily_crown)
time = 2 SECONDS
- reqs = list(/obj/item/food/snacks/grown/lily = 5)
+ reqs = list(/obj/item/food/grown/lily = 5)
category = CAT_CLOTHING
/datum/crafting_recipe/geranium_crown
name = "Geranium Crown"
result = list(/obj/item/clothing/head/geranium_crown)
time = 2 SECONDS
- reqs = list(/obj/item/food/snacks/grown/geranium = 5)
+ reqs = list(/obj/item/food/grown/geranium = 5)
category = CAT_CLOTHING
#undef ALLOWED_INGREDIENT_SUNGLASSES
diff --git a/code/modules/customitems/item_defines.dm b/code/modules/customitems/item_defines.dm
index 241295ad2bee..55605f6b2302 100644
--- a/code/modules/customitems/item_defines.dm
+++ b/code/modules/customitems/item_defines.dm
@@ -284,11 +284,10 @@
storage_slots = 3
/obj/item/storage/toolbox/fluff/lunchbox/populate_contents()
- new /obj/item/food/snacks/sandwich(src)
- new /obj/item/food/snacks/chips(src)
+ new /obj/item/food/customizable/sandwich(src)
+ new /obj/item/food/chips(src)
new /obj/item/reagent_containers/drinks/cans/cola(src)
-
/obj/item/fluff/wingler_comb
name = "blue comb"
desc = "A blue comb, it looks like it was made to groom a Tajaran's fur."
diff --git a/code/modules/events/meaty_ores.dm b/code/modules/events/meaty_ores.dm
index 7d0c6bae4594..af073f2ac65c 100644
--- a/code/modules/events/meaty_ores.dm
+++ b/code/modules/events/meaty_ores.dm
@@ -32,7 +32,7 @@
if(prob(80))
gibs(where)
if(prob(45))
- new /obj/item/food/snacks/meat(where)
+ new /obj/item/food/meat(where)
else if(prob(10))
explosion(where, 0, pick(0,1), pick(2,3), 0)
else
diff --git a/code/modules/fish/fish_items.dm b/code/modules/fish/fish_items.dm
index 98ae9c00bef9..7e913f1b15ae 100644
--- a/code/modules/fish/fish_items.dm
+++ b/code/modules/fish/fish_items.dm
@@ -66,7 +66,7 @@
can_hold = list(
/obj/item/fish,
/obj/item/fish_eggs,
- /obj/item/food/snacks/shrimp,
+ /obj/item/food/shrimp,
)
resistance_flags = FLAMMABLE
@@ -74,7 +74,7 @@
// Fish Items //
//////////////////////////////////////////////
-/obj/item/food/snacks/shrimp
+/obj/item/food/shrimp
name = "shrimp"
desc = "A single raw shrimp."
icon = 'icons/obj/food/seafood.dmi'
@@ -82,12 +82,12 @@
filling_color = "#FF1C1C"
bitesize = 1
-/obj/item/food/snacks/shrimp/Initialize(mapload)
+/obj/item/food/shrimp/Initialize(mapload)
. = ..()
desc = pick("Anyway, like I was sayin', shrimp is the fruit of the sea.", "You can barbecue it, boil it, broil it, bake it, saute it.")
reagents.add_reagent("protein", 1)
-/obj/item/food/snacks/feederfish
+/obj/item/food/feederfish
name = "feeder fish"
desc = "A tiny feeder fish. Sure doesn't look very filling..."
icon = 'icons/obj/food/seafood.dmi'
@@ -95,7 +95,7 @@
filling_color = "#FF1C1C"
bitesize = 1
-/obj/item/food/snacks/feederfish/Initialize(mapload)
+/obj/item/food/feederfish/Initialize(mapload)
. = ..()
reagents.add_reagent("protein", 1)
@@ -170,8 +170,8 @@
/obj/item/fish/catfish/attackby(obj/item/O, mob/user as mob)
if(O.sharp)
to_chat(user, "You carefully clean and gut \the [src.name].")
- new /obj/item/food/snacks/catfishmeat(get_turf(src))
- new /obj/item/food/snacks/catfishmeat(get_turf(src))
+ new /obj/item/food/catfishmeat(get_turf(src))
+ new /obj/item/food/catfishmeat(get_turf(src))
qdel(src)
return
..()
@@ -189,8 +189,8 @@
/obj/item/fish/salmon/attackby(obj/item/O, mob/user as mob)
if(O.sharp)
to_chat(user, "You carefully clean and gut \the [src.name].")
- new /obj/item/food/snacks/salmonmeat(get_turf(src))
- new /obj/item/food/snacks/salmonmeat(get_turf(src))
+ new /obj/item/food/salmonmeat(get_turf(src))
+ new /obj/item/food/salmonmeat(get_turf(src))
qdel(src)
return
..()
@@ -205,7 +205,7 @@
/obj/item/fish/babycarp/attackby(obj/item/O, mob/user as mob)
if(O.sharp)
to_chat(user, "You carefully clean and gut \the [src.name].")
- new /obj/item/food/snacks/carpmeat(get_turf(src)) //just one fillet; this is a baby, afterall.
+ new /obj/item/food/carpmeat(get_turf(src)) //just one fillet; this is a baby, afterall.
qdel(src)
return
..()
diff --git a/code/modules/fish/fish_types.dm b/code/modules/fish/fish_types.dm
index f90cda4efc90..890adac72681 100644
--- a/code/modules/fish/fish_types.dm
+++ b/code/modules/fish/fish_types.dm
@@ -52,13 +52,13 @@
/datum/fish/shrimp
fish_name = "shrimp"
egg_item = /obj/item/fish_eggs/shrimp
- fish_item = /obj/item/food/snacks/shrimp
+ fish_item = /obj/item/food/shrimp
crossbreeder = 0
/datum/fish/feederfish
fish_name = "feeder fish"
egg_item = /obj/item/fish_eggs/feederfish
- fish_item = /obj/item/food/snacks/feederfish
+ fish_item = /obj/item/food/feederfish
/datum/fish/feederfish/special_interact(obj/machinery/fishtank/my_tank)
if(!my_tank || !istype(my_tank))
diff --git a/code/modules/food_and_drinks/drinks/bottler/bottler.dm b/code/modules/food_and_drinks/drinks/bottler/bottler.dm
index 13c709e557d4..c4b6911633ab 100644
--- a/code/modules/food_and_drinks/drinks/bottler/bottler.dm
+++ b/code/modules/food_and_drinks/drinks/bottler/bottler.dm
@@ -28,7 +28,7 @@
available_recipes = list()
acceptable_items = list()
//These are going to be acceptable even if they aren't in a recipe
- acceptable_items |= /obj/item/food/snacks
+ acceptable_items |= /obj/item/food
acceptable_items |= /obj/item/reagent_containers/drinks/cans
//the rest is based on what is used in recipes so we don't have people destroying the nuke disc
for(var/type in subtypesof(/datum/bottler_recipe))
@@ -45,8 +45,8 @@
to_chat(user, "[O] is stuck to your hand, you can't seem to put it down!")
return 0
if(is_type_in_list(O,acceptable_items))
- if(istype(O, /obj/item/food/snacks))
- var/obj/item/food/snacks/S = O
+ if(istype(O, /obj/item/food))
+ var/obj/item/food/S = O
user.unEquip(S)
if(S.reagents && !S.reagents.total_volume) //This prevents us from using empty foods, should one occur due to some sort of error
to_chat(user, "[S] is gone, oh no!")
diff --git a/code/modules/food_and_drinks/drinks/bottler/bottler_recipes.dm b/code/modules/food_and_drinks/drinks/bottler/bottler_recipes.dm
index 3a923c5428ad..0f5b4719bc8d 100644
--- a/code/modules/food_and_drinks/drinks/bottler/bottler_recipes.dm
+++ b/code/modules/food_and_drinks/drinks/bottler/bottler_recipes.dm
@@ -22,48 +22,48 @@ There is no excuse to do this wrong now that there is an example for you. --Fals
/datum/bottler_recipe/Paradise_Punch
name = "Paradise Punch"
description = "Tastes just how you'd think Paradise would if you could bottle it."
- ingredients = list(/obj/item/food/snacks/grown/grapes,
- /obj/item/food/snacks/grown/banana,
- /obj/item/food/snacks/grown/cherries)
+ ingredients = list(/obj/item/food/grown/grapes,
+ /obj/item/food/grown/banana,
+ /obj/item/food/grown/cherries)
result = "paradise_punch"
/datum/bottler_recipe/Applepocalypse
name = "Apple-pocalypse"
description = "If doomsday came in fruit form, it'd probably be apples."
- ingredients = list(/obj/item/food/snacks/grown/apple,
- /obj/item/food/snacks/grown/apple,
- /obj/item/food/snacks/grown/apple)
+ ingredients = list(/obj/item/food/grown/apple,
+ /obj/item/food/grown/apple,
+ /obj/item/food/grown/apple)
result = "apple-pocalypse"
/datum/bottler_recipe/Berry_Banned
name = "Berry Banned"
description = "Reason for ban: Excessive Flavor."
- ingredients = list(/obj/item/food/snacks/grown/berries,
- /obj/item/food/snacks/grown/berries,
- /obj/item/food/snacks/grown/berries)
+ ingredients = list(/obj/item/food/grown/berries,
+ /obj/item/food/grown/berries,
+ /obj/item/food/grown/berries)
result = "berry_banned"
/datum/bottler_recipe/Berry_Banned2
name = "Berry Banned"
description = "Reason for ban: Excessive Flavor."
- ingredients = list(/obj/item/food/snacks/grown/berries/poison,
- /obj/item/food/snacks/grown/berries/poison,
- /obj/item/food/snacks/grown/berries/poison)
+ ingredients = list(/obj/item/food/grown/berries/poison,
+ /obj/item/food/grown/berries/poison,
+ /obj/item/food/grown/berries/poison)
result = "berry_banned2"
/datum/bottler_recipe/Blackeye_Brew
name = "Blackeye Brew"
description = "Creamy, smooth flavor, just like the bald heads of the masses. Supposedly aged for 30 years."
ingredients = list(/obj/item/reagent_containers/drinks/cans/cola,
- /obj/item/food/snacks/grown/sugarcane,
- /obj/item/food/snacks/frozen/icecream)
+ /obj/item/food/grown/sugarcane,
+ /obj/item/food/frozen/icecream)
result = "blackeye_brew"
/datum/bottler_recipe/Grape_Granade
name = "Grape Granade"
description = "Exploding with grape flavor and a favorite among ERT members system-wide."
ingredients = list(/obj/item/reagent_containers/drinks/cans/grape_juice,
- /obj/item/food/snacks/grown/grapes,
+ /obj/item/food/grown/grapes,
/obj/item/flash)
result = "grape_granade"
@@ -71,6 +71,6 @@ There is no excuse to do this wrong now that there is an example for you. --Fals
name = "Meteor Malt"
description = "Soft drinks have been detected on collision course with your tastebuds."
ingredients = list(/obj/item/stack/ore,
- /obj/item/food/snacks/grown/wheat,
+ /obj/item/food/grown/wheat,
/obj/item/stack/ore)
result = "meteor_malt"
diff --git a/code/modules/food_and_drinks/drinks/drinks/drinkingglass.dm b/code/modules/food_and_drinks/drinks/drinks/drinkingglass.dm
index 66a06e0b0d40..a08d5b383712 100644
--- a/code/modules/food_and_drinks/drinks/drinks/drinkingglass.dm
+++ b/code/modules/food_and_drinks/drinks/drinks/drinkingglass.dm
@@ -16,8 +16,8 @@
pickup_sound = 'sound/items/handling/drinkglass_pickup.ogg'
/obj/item/reagent_containers/drinks/drinkingglass/attackby(obj/item/I, mob/user, params)
- if(istype(I, /obj/item/food/snacks/egg)) //breaking eggs
- var/obj/item/food/snacks/egg/E = I
+ if(istype(I, /obj/item/food/egg)) //breaking eggs
+ var/obj/item/food/egg/E = I
if(reagents)
if(reagents.total_volume >= reagents.maximum_volume)
to_chat(user, "[src] is full.")
diff --git a/code/modules/food_and_drinks/food/condiment.dm b/code/modules/food_and_drinks/food/condiment.dm
index 4f552f3d360f..8ec0d951e814 100644
--- a/code/modules/food_and_drinks/food/condiment.dm
+++ b/code/modules/food_and_drinks/food/condiment.dm
@@ -85,7 +85,7 @@
to_chat(user, "You fill [src] with [trans] units of the contents of [target].")
//Something like a glass or a food item. Player probably wants to transfer TO it.
- else if(target.is_drainable() || istype(target, /obj/item/food/snacks))
+ else if(target.is_drainable() || istype(target, /obj/item/food))
if(!reagents.total_volume)
to_chat(user, "[src] is empty!")
return
@@ -317,7 +317,7 @@
if(!proximity) return
//You can tear the bag open above food to put the condiments on it, obviously.
- if(istype(target, /obj/item/food/snacks))
+ if(istype(target, /obj/item/food))
if(!reagents.total_volume)
to_chat(user, "You tear open [src], but there's nothing in it.")
qdel(src)
diff --git a/code/modules/food_and_drinks/food/customizables.dm b/code/modules/food_and_drinks/food/customizables.dm
index b65052296f66..3df6580452ad 100644
--- a/code/modules/food_and_drinks/food/customizables.dm
+++ b/code/modules/food_and_drinks/food/customizables.dm
@@ -1,40 +1,40 @@
#define MAKE_CUSTOM_FOOD(snack_to_add, user, type) \
do {\
- var/obj/item/food/snacks/customizable/custom_snack = new type(get_turf(user));\
+ var/obj/item/food/customizable/custom_snack = new type(get_turf(user));\
custom_snack.add_ingredient(snack_to_add, user); \
user.put_in_active_hand(custom_snack); \
qdel(src);\
} while(FALSE)
-/obj/item/food/snacks/breadslice/attackby(obj/item/W, mob/user, params)
- if(istype(W, /obj/item/food/snacks) && !(W.flags & NODROP))
- MAKE_CUSTOM_FOOD(W, user, /obj/item/food/snacks/customizable/sandwich)
+/obj/item/food/breadslice/attackby(obj/item/W, mob/user, params)
+ if(istype(W, /obj/item/food) && !(W.flags & NODROP))
+ MAKE_CUSTOM_FOOD(W, user, /obj/item/food/customizable/sandwich)
return
..()
-/obj/item/food/snacks/bun/attackby(obj/item/W, mob/user, params)
- if(istype(W, /obj/item/food/snacks) && !(W.flags & NODROP))
- MAKE_CUSTOM_FOOD(W, user, /obj/item/food/snacks/customizable/burger)
+/obj/item/food/bun/attackby(obj/item/W, mob/user, params)
+ if(istype(W, /obj/item/food) && !(W.flags & NODROP))
+ MAKE_CUSTOM_FOOD(W, user, /obj/item/food/customizable/burger)
return
..()
-/obj/item/food/snacks/sliceable/flatdough/attackby(obj/item/W, mob/user, params)
- if(istype(W, /obj/item/food/snacks) && !(W.flags & NODROP))
- MAKE_CUSTOM_FOOD(W, user, /obj/item/food/snacks/customizable/pizza)
+/obj/item/food/sliceable/flatdough/attackby(obj/item/W, mob/user, params)
+ if(istype(W, /obj/item/food) && !(W.flags & NODROP))
+ MAKE_CUSTOM_FOOD(W, user, /obj/item/food/customizable/pizza)
return
..()
-/obj/item/food/snacks/boiledspaghetti/attackby(obj/item/W, mob/user, params)
- if(istype(W, /obj/item/food/snacks) && !(W.flags & NODROP))
- MAKE_CUSTOM_FOOD(W, user, /obj/item/food/snacks/customizable/pasta)
+/obj/item/food/boiledspaghetti/attackby(obj/item/W, mob/user, params)
+ if(istype(W, /obj/item/food) && !(W.flags & NODROP))
+ MAKE_CUSTOM_FOOD(W, user, /obj/item/food/customizable/pasta)
return
..()
/obj/item/trash/plate/attackby(obj/item/W, mob/user, params)
- if(istype(W, /obj/item/food/snacks) && !(W.flags & NODROP))
- MAKE_CUSTOM_FOOD(W, user, /obj/item/food/snacks/customizable/fullycustom)
+ if(istype(W, /obj/item/food) && !(W.flags & NODROP))
+ MAKE_CUSTOM_FOOD(W, user, /obj/item/food/customizable/fullycustom)
return
..()
@@ -47,14 +47,14 @@ do {\
icon_state = "soup"
/obj/item/trash/bowl/attackby(obj/item/I, mob/user, params)
- if(istype(I, /obj/item/food/snacks) && !(I.flags & NODROP))
- var/obj/item/food/snacks/customizable/soup/S = new(get_turf(user))
+ if(istype(I, /obj/item/food) && !(I.flags & NODROP))
+ var/obj/item/food/customizable/soup/S = new(get_turf(user))
S.attackby(I, user, params)
qdel(src)
else
..()
-/obj/item/food/snacks/customizable
+/obj/item/food/customizable
name = "sandwich"
desc = "A sandwich! A timeless classic."
icon = 'icons/obj/food/custom.dmi'
@@ -74,20 +74,20 @@ do {\
var/list/ingredients = list()
list_reagents = list("nutriment" = 8)
-/obj/item/food/snacks/customizable/Initialize(mapload)
+/obj/item/food/customizable/Initialize(mapload)
. = ..()
if(top)
top_image = new(icon, "[baseicon]_top")
add_overlay(top_image)
-/obj/item/food/snacks/customizable/sandwich
+/obj/item/food/customizable/sandwich
name = "sandwich"
desc = "A sandwich! A timeless classic."
icon_state = "sandwichcustom"
baseicon = "sandwichcustom"
basename = "sandwich"
-/obj/item/food/snacks/customizable/pizza
+/obj/item/food/customizable/pizza
name = "personal pizza"
desc = "A personalized pan pizza meant for only one person."
icon_state = "personal_pizza"
@@ -97,7 +97,7 @@ do {\
top = 0
tastes = list("crust" = 1, "tomato" = 1, "cheese" = 1)
-/obj/item/food/snacks/customizable/pasta
+/obj/item/food/customizable/pasta
name = "spaghetti"
desc = "Noodles. With stuff. Delicious."
icon_state = "pasta_bot"
@@ -106,7 +106,7 @@ do {\
snack_overlays = 0
top = 0
-/obj/item/food/snacks/customizable/cook/bread
+/obj/item/food/customizable/cook/bread
name = "bread"
desc = "Tasty bread."
icon_state = "breadcustom"
@@ -116,7 +116,7 @@ do {\
top = 0
tastes = list("bread" = 10)
-/obj/item/food/snacks/customizable/cook/pie
+/obj/item/food/customizable/cook/pie
name = "pie"
desc = "Tasty pie."
icon_state = "piecustom"
@@ -126,7 +126,7 @@ do {\
top = 0
tastes = list("pie" = 1)
-/obj/item/food/snacks/customizable/cook/cake
+/obj/item/food/customizable/cook/cake
name = "cake"
desc = "A popular band."
icon_state = "cakecustom"
@@ -136,7 +136,7 @@ do {\
top = 0
tastes = list("cake" = 1)
-/obj/item/food/snacks/customizable/cook/jelly
+/obj/item/food/customizable/cook/jelly
name = "jelly"
desc = "Totally jelly."
icon_state = "jellycustom"
@@ -145,7 +145,7 @@ do {\
snack_overlays = 0
top = 0
-/obj/item/food/snacks/customizable/cook/donkpocket
+/obj/item/food/customizable/cook/donkpocket
name = "donk pocket"
desc = "You wanna put a bangin-Oh nevermind."
icon_state = "donkcustom"
@@ -154,7 +154,7 @@ do {\
snack_overlays = 0
top = 0
-/obj/item/food/snacks/customizable/cook/kebab
+/obj/item/food/customizable/cook/kebab
name = "kebab"
desc = "Kebab or Kabab?"
icon_state = "kababcustom"
@@ -164,7 +164,7 @@ do {\
top = 0
tastes = list("meat" = 3, "metal" = 1)
-/obj/item/food/snacks/customizable/cook/salad
+/obj/item/food/customizable/cook/salad
name = "salad"
desc = "Very tasty."
icon_state = "saladcustom"
@@ -174,7 +174,7 @@ do {\
top = 0
tastes = list("leaves" = 1)
-/obj/item/food/snacks/customizable/cook/waffles
+/obj/item/food/customizable/cook/waffles
name = "waffles"
desc = "Made with love."
icon_state = "wafflecustom"
@@ -184,7 +184,7 @@ do {\
top = 0
tastes = list("waffles" = 1)
-/obj/item/food/snacks/customizable/candy/cookie
+/obj/item/food/customizable/candy/cookie
name = "cookie"
desc = "COOKIE!!1!"
icon_state = "cookiecustom"
@@ -194,7 +194,7 @@ do {\
top = 0
tastes = list("cookie" = 1)
-/obj/item/food/snacks/customizable/candy/cotton
+/obj/item/food/customizable/candy/cotton
name = "flavored cotton candy"
desc = "Who can take a sunrise, sprinkle it with dew,"
icon_state = "cottoncandycustom"
@@ -203,7 +203,7 @@ do {\
snack_overlays = 0
top = 0
-/obj/item/food/snacks/customizable/candy/gummybear
+/obj/item/food/customizable/candy/gummybear
name = "flavored giant gummy bear"
desc = "Cover it in chocolate and a miracle or two,"
icon_state = "gummybearcustom"
@@ -212,7 +212,7 @@ do {\
snack_overlays = 0
top = 0
-/obj/item/food/snacks/customizable/candy/gummyworm
+/obj/item/food/customizable/candy/gummyworm
name = "flavored giant gummy worm"
desc = "The Candy Man can 'cause he mixes it with love,"
icon_state = "gummywormcustom"
@@ -221,7 +221,7 @@ do {\
snack_overlays = 0
top = 0
-/obj/item/food/snacks/customizable/candy/jellybean
+/obj/item/food/customizable/candy/jellybean
name = "flavored giant jelly bean"
desc = "And makes the world taste good."
icon_state = "jellybeancustom"
@@ -230,7 +230,7 @@ do {\
snack_overlays = 0
top = 0
-/obj/item/food/snacks/customizable/candy/jawbreaker
+/obj/item/food/customizable/candy/jawbreaker
name = "flavored jawbreaker"
desc = "Who can take a rainbow, Wrap it in a sigh,"
icon_state = "jawbreakercustom"
@@ -239,7 +239,7 @@ do {\
snack_overlays = 0
top = 0
-/obj/item/food/snacks/customizable/candy/candycane
+/obj/item/food/customizable/candy/candycane
name = "flavored candy cane"
desc = "Soak it in the sun and make strawberry-lemon pie,"
icon_state = "candycanecustom"
@@ -248,7 +248,7 @@ do {\
snack_overlays = 0
top = 0
-/obj/item/food/snacks/customizable/candy/gum
+/obj/item/food/customizable/candy/gum
name = "flavored gum"
desc = "The Candy Man can 'cause he mixes it with love and makes the world taste good. And the world tastes good 'cause the Candy Man thinks it should..."
icon_state = "gumcustom"
@@ -257,7 +257,7 @@ do {\
snack_overlays = 0
top = 0
-/obj/item/food/snacks/customizable/candy/donut
+/obj/item/food/customizable/candy/donut
name = "filled donut"
desc = "Donut eat this!" // kill me
icon_state = "donutcustom"
@@ -266,7 +266,7 @@ do {\
snack_overlays = 0
top = 0
-/obj/item/food/snacks/customizable/candy/bar
+/obj/item/food/customizable/candy/bar
name = "flavored chocolate bar"
desc = "Made in a factory downtown."
icon_state = "barcustom"
@@ -275,7 +275,7 @@ do {\
snack_overlays = 0
top = 0
-/obj/item/food/snacks/customizable/candy/sucker
+/obj/item/food/customizable/candy/sucker
name = "flavored sucker"
desc = "Suck suck suck."
icon_state = "suckercustom"
@@ -284,7 +284,7 @@ do {\
snack_overlays = 0
top = 0
-/obj/item/food/snacks/customizable/candy/cash
+/obj/item/food/customizable/candy/cash
name = "flavored chocolate cash"
desc = "I got piles!"
icon_state = "cashcustom"
@@ -293,7 +293,7 @@ do {\
snack_overlays = 0
top = 0
-/obj/item/food/snacks/customizable/candy/coin
+/obj/item/food/customizable/candy/coin
name = "flavored chocolate coin"
desc = "Clink, clink, clink."
icon_state = "coincustom"
@@ -303,7 +303,7 @@ do {\
top = 0
/// In the event you fuckers find something I forgot to add a customizable food for.
-/obj/item/food/snacks/customizable/fullycustom
+/obj/item/food/customizable/fullycustom
name = "on a plate"
desc = "A unique dish."
icon_state = "fullycustom"
@@ -314,7 +314,7 @@ do {\
ingredient_limit = 20
fullycustom = 1
-/obj/item/food/snacks/customizable/soup
+/obj/item/food/customizable/soup
name = "soup"
desc = "A bowl with liquid and... stuff in it."
icon_state = "soup"
@@ -326,7 +326,7 @@ do {\
top = 0
tastes = list("soup" = 1)
-/obj/item/food/snacks/customizable/burger
+/obj/item/food/customizable/burger
name = "burger bun"
desc = "A bun for a burger. Delicious."
icon_state = "burgercustom"
@@ -335,14 +335,14 @@ do {\
tastes = list("bun" = 4)
-/obj/item/food/snacks/customizable/attackby(obj/item/I, mob/user, params)
+/obj/item/food/customizable/attackby(obj/item/I, mob/user, params)
if(is_pen(I))
var/new_name = rename_interactive(user, I, use_prefix = FALSE)
if(!isnull(new_name))
to_chat(user, "You declare this to be \a [name]. Delicious!")
return
- if(!istype(I, /obj/item/food/snacks))
+ if(!istype(I, /obj/item/food))
to_chat(user, "[I] isn't exactly something that you would want to eat.")
return
@@ -354,14 +354,14 @@ do {\
* Arguments:
* * snack - The ingredient that will be added
*/
-/obj/item/food/snacks/customizable/proc/add_ingredient(obj/item/food/snacks/snack, mob/user)
+/obj/item/food/customizable/proc/add_ingredient(obj/item/food/snack, mob/user)
if(length(ingredients) > ingredient_limit)
to_chat(user, "If you put anything else in or on [src] it's going to make a mess.")
return
// Fully custom snacks don't add the ingredients. So no need to check
- if(!fullycustom && istype(snack, /obj/item/food/snacks/customizable))
- var/obj/item/food/snacks/customizable/origin = snack
+ if(!fullycustom && istype(snack, /obj/item/food/customizable))
+ var/obj/item/food/customizable/origin = snack
if(length(ingredients) + length(origin.ingredients) > ingredient_limit)
to_chat(user, "Merging [snack] and [src] together is going to make a mess.")
return
@@ -376,8 +376,8 @@ do {\
var/list/added_ingredients = list(snack)
// Only merge when it is not fullycustom. Else it looks weird
- if(!fullycustom && istype(snack, /obj/item/food/snacks/customizable))
- var/obj/item/food/snacks/customizable/origin = snack
+ if(!fullycustom && istype(snack, /obj/item/food/customizable))
+ var/obj/item/food/customizable/origin = snack
added_ingredients += origin.ingredients
origin.ingredients.Cut()
origin.name = initial(origin.name) // Reset the name for the examine text
@@ -394,12 +394,12 @@ do {\
* Arguments:
* * new_ingredients - The new ingredients to be added
*/
-/obj/item/food/snacks/customizable/proc/add_ingredients(list/new_ingredients)
+/obj/item/food/customizable/proc/add_ingredients(list/new_ingredients)
cut_overlay(top_image) // Remove the top image so we can change it again
var/ingredient_num = length(ingredients)
ingredients += new_ingredients
- for(var/obj/item/food/snacks/food as anything in new_ingredients)
+ for(var/obj/item/food/food as anything in new_ingredients)
ingredient_num++
var/image/ingredient_image
if(!fullycustom)
@@ -425,20 +425,20 @@ do {\
add_overlay(top_image)
-/obj/item/food/snacks/customizable/Destroy()
+/obj/item/food/customizable/Destroy()
QDEL_LIST_CONTENTS(ingredients)
qdel(top_image)
return ..()
-/obj/item/food/snacks/customizable/examine(mob/user)
+/obj/item/food/customizable/examine(mob/user)
. = ..()
if(LAZYLEN(ingredients))
var/whatsinside = pick(ingredients)
. += "You think you can see [whatsinside] in there."
-/obj/item/food/snacks/customizable/proc/newname()
+/obj/item/food/customizable/proc/newname()
var/unsorteditems[0]
var/sorteditems[0]
var/unsortedtypes[0]
@@ -456,8 +456,8 @@ do {\
continue
- if(istype(ing, /obj/item/food/snacks/customizable)) // split the ingredients into ones with basenames (sandwich, burger, etc) and ones without, keeping track of how many of each there are
- var/obj/item/food/snacks/customizable/gettype = ing
+ if(istype(ing, /obj/item/food/customizable)) // split the ingredients into ones with basenames (sandwich, burger, etc) and ones without, keeping track of how many of each there are
+ var/obj/item/food/customizable/gettype = ing
if(unsortedtypes[gettype.basename])
unsortedtypes[gettype.basename]++
if(unsortedtypes[gettype.basename] > ct)
@@ -518,7 +518,7 @@ do {\
sendback = "[pick("absurd", "colossal", "enormous", "ridiculous", "massive", "oversized", "cardiac-arresting", "pipe-clogging", "edible but sickening", "sickening", "gargantuan", "mega", "belly-burster", "chest-burster")] [basename]"
return sendback
-/obj/item/food/snacks/customizable/proc/sortlist(list/unsorted, highest)
+/obj/item/food/customizable/proc/sortlist(list/unsorted, highest)
var/sorted[0]
for(var/i = 1, i<= highest, i++)
for(var/it in unsorted)
diff --git a/code/modules/food_and_drinks/food/foods/baked_goods.dm b/code/modules/food_and_drinks/food/foods/baked_goods.dm
index dfcfbf50f4bb..8299792db766 100644
--- a/code/modules/food_and_drinks/food/foods/baked_goods.dm
+++ b/code/modules/food_and_drinks/food/foods/baked_goods.dm
@@ -5,12 +5,12 @@
// Cakes //
//////////////////////
-/obj/item/food/snacks/sliceable/carrotcake
+/obj/item/food/sliceable/carrotcake
name = "carrot cake"
desc = "A favorite desert of a certain wascally wabbit. Not a lie."
icon = 'icons/obj/food/bakedgoods.dmi'
icon_state = "carrotcake"
- slice_path = /obj/item/food/snacks/carrotcakeslice
+ slice_path = /obj/item/food/carrotcakeslice
slices_num = 5
bitesize = 3
filling_color = "#FFD675"
@@ -18,7 +18,7 @@
tastes = list("cake" = 5, "sweetness" = 2, "carrot" = 1)
goal_difficulty = FOOD_GOAL_DUPLICATE
-/obj/item/food/snacks/carrotcakeslice
+/obj/item/food/carrotcakeslice
name = "carrot cake slice"
desc = "Carrotty slice of Carrot Cake, carrots are good for your eyes! Also not a lie."
icon = 'icons/obj/food/bakedgoods.dmi'
@@ -29,12 +29,12 @@
goal_difficulty = FOOD_GOAL_EASY
-/obj/item/food/snacks/sliceable/braincake
+/obj/item/food/sliceable/braincake
name = "brain cake"
desc = "A squishy cake-thing."
icon = 'icons/obj/food/bakedgoods.dmi'
icon_state = "braincake"
- slice_path = /obj/item/food/snacks/braincakeslice
+ slice_path = /obj/item/food/braincakeslice
slices_num = 5
filling_color = "#E6AEDB"
bitesize = 3
@@ -42,7 +42,7 @@
tastes = list("cake" = 5, "sweetness" = 2, "brains" = 1)
goal_difficulty = FOOD_GOAL_DUPLICATE
-/obj/item/food/snacks/braincakeslice
+/obj/item/food/braincakeslice
name = "brain cake slice"
desc = "Lemme tell you something about brains. THEY'RE DELICIOUS."
icon = 'icons/obj/food/bakedgoods.dmi'
@@ -52,12 +52,12 @@
tastes = list("cake" = 5, "sweetness" = 2, "brains" = 1)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/sliceable/cheesecake
+/obj/item/food/sliceable/cheesecake
name = "cheese cake"
desc = "DANGEROUSLY cheesy."
icon = 'icons/obj/food/bakedgoods.dmi'
icon_state = "cheesecake"
- slice_path = /obj/item/food/snacks/cheesecakeslice
+ slice_path = /obj/item/food/cheesecakeslice
slices_num = 5
filling_color = "#FAF7AF"
bitesize = 3
@@ -65,7 +65,7 @@
tastes = list("cake" = 4, "cream cheese" = 3)
goal_difficulty = FOOD_GOAL_DUPLICATE
-/obj/item/food/snacks/cheesecakeslice
+/obj/item/food/cheesecakeslice
name = "cheese cake slice"
desc = "Slice of pure cheestisfaction."
icon = 'icons/obj/food/bakedgoods.dmi'
@@ -75,12 +75,12 @@
tastes = list("cake" = 4, "cream cheese" = 3)
goal_difficulty = FOOD_GOAL_EASY
-/obj/item/food/snacks/sliceable/plaincake
+/obj/item/food/sliceable/plaincake
name = "vanilla cake"
desc = "A plain cake, not a lie."
icon = 'icons/obj/food/bakedgoods.dmi'
icon_state = "plaincake"
- slice_path = /obj/item/food/snacks/plaincakeslice
+ slice_path = /obj/item/food/plaincakeslice
slices_num = 5
bitesize = 3
filling_color = "#F7EDD5"
@@ -88,7 +88,7 @@
tastes = list("cake" = 5, "vanilla" = 1, "sweetness" = 2)
goal_difficulty = FOOD_GOAL_DUPLICATE
-/obj/item/food/snacks/plaincakeslice
+/obj/item/food/plaincakeslice
name = "vanilla cake slice"
desc = "Just a slice of cake, it is enough for everyone."
icon = 'icons/obj/food/bakedgoods.dmi'
@@ -98,12 +98,12 @@
tastes = list("cake" = 5, "vanilla" = 1, "sweetness" = 2)
goal_difficulty = FOOD_GOAL_EASY
-/obj/item/food/snacks/sliceable/orangecake
+/obj/item/food/sliceable/orangecake
name = "orange cake"
desc = "A cake with added orange."
icon = 'icons/obj/food/bakedgoods.dmi'
icon_state = "orangecake"
- slice_path = /obj/item/food/snacks/orangecakeslice
+ slice_path = /obj/item/food/orangecakeslice
slices_num = 5
bitesize = 3
filling_color = "#FADA8E"
@@ -111,7 +111,7 @@
tastes = list("cake" = 5, "sweetness" = 2, "oranges" = 2)
goal_difficulty = FOOD_GOAL_DUPLICATE
-/obj/item/food/snacks/orangecakeslice
+/obj/item/food/orangecakeslice
name = "orange cake slice"
desc = "Just a slice of cake, it is enough for everyone."
icon = 'icons/obj/food/bakedgoods.dmi'
@@ -121,12 +121,12 @@
tastes = list("cake" = 5, "sweetness" = 2, "oranges" = 2)
goal_difficulty = FOOD_GOAL_EASY
-/obj/item/food/snacks/sliceable/bananacake
+/obj/item/food/sliceable/bananacake
name = "banana cake"
desc = "A cake with added bananas."
icon = 'icons/obj/food/bakedgoods.dmi'
icon_state = "bananacake"
- slice_path = /obj/item/food/snacks/bananacakeslice
+ slice_path = /obj/item/food/bananacakeslice
slices_num = 5
bitesize = 3
filling_color = "#FADA8E"
@@ -134,7 +134,7 @@
tastes = list("cake" = 5, "sweetness" = 2, "banana" = 2)
goal_difficulty = FOOD_GOAL_DUPLICATE
-/obj/item/food/snacks/bananacakeslice
+/obj/item/food/bananacakeslice
name = "banana cake slice"
desc = "Just a slice of cake, it is enough for everyone."
icon = 'icons/obj/food/bakedgoods.dmi'
@@ -144,20 +144,20 @@
tastes = list("cake" = 5, "sweetness" = 2, "banana" = 2)
goal_difficulty = FOOD_GOAL_EASY
-/obj/item/food/snacks/sliceable/limecake
+/obj/item/food/sliceable/limecake
name = "lime cake"
desc = "A cake with added lime."
icon = 'icons/obj/food/bakedgoods.dmi'
icon_state = "limecake"
bitesize = 3
- slice_path = /obj/item/food/snacks/limecakeslice
+ slice_path = /obj/item/food/limecakeslice
slices_num = 5
filling_color = "#CBFA8E"
list_reagents = list("nutriment" = 20, "vitamin" = 5)
tastes = list("cake" = 5, "sweetness" = 2, "unbearable sourness" = 2)
goal_difficulty = FOOD_GOAL_DUPLICATE
-/obj/item/food/snacks/limecakeslice
+/obj/item/food/limecakeslice
name = "lime cake slice"
desc = "Just a slice of cake, it is enough for everyone."
icon = 'icons/obj/food/bakedgoods.dmi'
@@ -167,12 +167,12 @@
tastes = list("cake" = 5, "sweetness" = 2, "unbearable sourness" = 2)
goal_difficulty = FOOD_GOAL_EASY
-/obj/item/food/snacks/sliceable/lemoncake
+/obj/item/food/sliceable/lemoncake
name = "lemon cake"
desc = "A cake with added lemon."
icon = 'icons/obj/food/bakedgoods.dmi'
icon_state = "lemoncake"
- slice_path = /obj/item/food/snacks/lemoncakeslice
+ slice_path = /obj/item/food/lemoncakeslice
slices_num = 5
bitesize = 3
filling_color = "#FAFA8E"
@@ -180,7 +180,7 @@
tastes = list("cake" = 5, "sweetness" = 2, "sourness" = 2)
goal_difficulty = FOOD_GOAL_DUPLICATE
-/obj/item/food/snacks/lemoncakeslice
+/obj/item/food/lemoncakeslice
name = "lemon cake slice"
desc = "Just a slice of cake, it is enough for everyone."
icon = 'icons/obj/food/bakedgoods.dmi'
@@ -190,12 +190,12 @@
tastes = list("cake" = 5, "sweetness" = 2, "sourness" = 2)
goal_difficulty = FOOD_GOAL_EASY
-/obj/item/food/snacks/sliceable/chocolatecake
+/obj/item/food/sliceable/chocolatecake
name = "chocolate cake"
desc = "A cake with added chocolate."
icon = 'icons/obj/food/bakedgoods.dmi'
icon_state = "chocolatecake"
- slice_path = /obj/item/food/snacks/chocolatecakeslice
+ slice_path = /obj/item/food/chocolatecakeslice
slices_num = 5
bitesize = 3
filling_color = "#805930"
@@ -203,7 +203,7 @@
tastes = list("cake" = 5, "sweetness" = 1, "chocolate" = 4)
goal_difficulty = FOOD_GOAL_DUPLICATE
-/obj/item/food/snacks/chocolatecakeslice
+/obj/item/food/chocolatecakeslice
name = "chocolate cake slice"
desc = "Just a slice of cake, it is enough for everyone."
icon = 'icons/obj/food/bakedgoods.dmi'
@@ -213,12 +213,12 @@
tastes = list("cake" = 5, "sweetness" = 1, "chocolate" = 4)
goal_difficulty = FOOD_GOAL_EASY
-/obj/item/food/snacks/sliceable/birthdaycake
+/obj/item/food/sliceable/birthdaycake
name = "birthday cake"
desc = "Happy Birthday..."
icon = 'icons/obj/food/bakedgoods.dmi'
icon_state = "birthdaycake"
- slice_path = /obj/item/food/snacks/birthdaycakeslice
+ slice_path = /obj/item/food/birthdaycakeslice
slices_num = 5
filling_color = "#FFD6D6"
bitesize = 3
@@ -226,7 +226,7 @@
tastes = list("cake" = 5, "sweetness" = 1)
goal_difficulty = FOOD_GOAL_DUPLICATE
-/obj/item/food/snacks/birthdaycakeslice
+/obj/item/food/birthdaycakeslice
name = "birthday cake slice"
desc = "A slice of your birthday"
icon = 'icons/obj/food/bakedgoods.dmi'
@@ -236,12 +236,12 @@
tastes = list("cake" = 5, "sweetness" = 1)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/sliceable/applecake
+/obj/item/food/sliceable/applecake
name = "apple cake"
desc = "A cake centered with Apple."
icon = 'icons/obj/food/bakedgoods.dmi'
icon_state = "applecake"
- slice_path = /obj/item/food/snacks/applecakeslice
+ slice_path = /obj/item/food/applecakeslice
slices_num = 5
bitesize = 3
filling_color = "#EBF5B8"
@@ -249,7 +249,7 @@
tastes = list("cake" = 5, "sweetness" = 1, "apple" = 1)
goal_difficulty = FOOD_GOAL_DUPLICATE
-/obj/item/food/snacks/applecakeslice
+/obj/item/food/applecakeslice
name = "apple cake slice"
desc = "A slice of heavenly cake."
icon = 'icons/obj/food/bakedgoods.dmi'
@@ -264,7 +264,7 @@
// Cookies //
//////////////////////
-/obj/item/food/snacks/cookie
+/obj/item/food/cookie
name = "cookie"
desc = "COOKIE!!!"
icon = 'icons/obj/food/bakedgoods.dmi'
@@ -275,7 +275,7 @@
tastes = list("cookie" = 1, "crunchy chocolate" = 1)
goal_difficulty = FOOD_GOAL_EASY
-/obj/item/food/snacks/fortunecookie
+/obj/item/food/fortunecookie
name = "fortune cookie"
desc = "A true prophecy in each cookie!"
icon = 'icons/obj/food/bakedgoods.dmi'
@@ -286,7 +286,7 @@
tastes = list("cookie" = 1)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/sugarcookie
+/obj/item/food/sugarcookie
name = "sugar cookie"
desc = "Just like your little sister used to make."
icon = 'icons/obj/food/bakedgoods.dmi'
@@ -300,7 +300,7 @@
// Pies //
//////////////////////
-/obj/item/food/snacks/pie
+/obj/item/food/pie
name = "banana cream pie"
desc = "One of the five essential food groups of clowns."
icon = 'icons/obj/food/bakedgoods.dmi'
@@ -312,13 +312,13 @@
tastes = list("pie" = 1)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/pie/throw_impact(atom/hit_atom)
+/obj/item/food/pie/throw_impact(atom/hit_atom)
..()
new/obj/effect/decal/cleanable/pie_smudge(loc)
visible_message("[src] splats.","You hear a splat.")
qdel(src)
-/obj/item/food/snacks/meatpie
+/obj/item/food/meatpie
name = "meat-pie"
icon = 'icons/obj/food/bakedgoods.dmi'
icon_state = "meatpie"
@@ -330,7 +330,7 @@
tastes = list("pie" = 1, "meat" = 1)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/tofupie
+/obj/item/food/tofupie
name = "tofu-pie"
icon = 'icons/obj/food/bakedgoods.dmi'
icon_state = "meatpie"
@@ -342,7 +342,7 @@
tastes = list("pie" = 1, "tofu" = 1)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/amanita_pie
+/obj/item/food/amanita_pie
name = "amanita pie"
desc = "Sweet and tasty poison pie."
icon = 'icons/obj/food/bakedgoods.dmi'
@@ -353,7 +353,7 @@
tastes = list("pie" = 1, "mushroom" = 1)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/plump_pie
+/obj/item/food/plump_pie
name = "plump pie"
desc = "I bet you love stuff made out of plump helmets!"
icon = 'icons/obj/food/bakedgoods.dmi'
@@ -364,14 +364,14 @@
tastes = list("pie" = 1, "mushroom" = 1)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/plump_pie/Initialize(mapload)
+/obj/item/food/plump_pie/Initialize(mapload)
. = ..()
if(prob(10))
name = "exceptional plump pie"
desc = "Microwave is taken by a fey mood! It has cooked an exceptional plump pie!" // What
reagents.add_reagent("omnizine", 5)
-/obj/item/food/snacks/xemeatpie
+/obj/item/food/xemeatpie
name = "xeno-pie"
icon = 'icons/obj/food/bakedgoods.dmi'
icon_state = "xenomeatpie"
@@ -383,7 +383,7 @@
goal_difficulty = FOOD_GOAL_EXCESSIVE
-/obj/item/food/snacks/applepie
+/obj/item/food/applepie
name = "apple pie"
desc = "A pie containing sweet sweet love... or apple."
icon = 'icons/obj/food/bakedgoods.dmi'
@@ -395,7 +395,7 @@
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/cherrypie
+/obj/item/food/cherrypie
name = "cherry pie"
desc = "Taste so good, make a grown man cry."
icon = 'icons/obj/food/bakedgoods.dmi'
@@ -406,12 +406,12 @@
tastes = list("pie" = 1, "cherries" = 1)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/sliceable/pumpkinpie
+/obj/item/food/sliceable/pumpkinpie
name = "pumpkin pie"
desc = "A delicious treat for the autumn months."
icon = 'icons/obj/food/bakedgoods.dmi'
icon_state = "pumpkinpie"
- slice_path = /obj/item/food/snacks/pumpkinpieslice
+ slice_path = /obj/item/food/pumpkinpieslice
slices_num = 5
bitesize = 3
filling_color = "#F5B951"
@@ -419,7 +419,7 @@
tastes = list("pie" = 1, "pumpkin" = 1)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/pumpkinpieslice
+/obj/item/food/pumpkinpieslice
name = "pumpkin pie slice"
desc = "A slice of pumpkin pie, with whipped cream on top. Perfection."
icon = 'icons/obj/food/bakedgoods.dmi'
@@ -433,7 +433,7 @@
// Donuts //
//////////////////////
-/obj/item/food/snacks/donut
+/obj/item/food/donut
name = "donut"
desc = "Goes great with Robust Coffee."
icon = 'icons/obj/food/bakedgoods.dmi'
@@ -446,7 +446,7 @@
var/donut_sprite_type = DONUT_NORMAL
tastes = list("donut" = 1)
-/obj/item/food/snacks/donut/Initialize(mapload)
+/obj/item/food/donut/Initialize(mapload)
. = ..()
if(randomized_sprinkles && prob(30))
icon_state = "donut2"
@@ -455,7 +455,7 @@
donut_sprite_type = DONUT_FROSTED
filling_color = "#FF69B4"
-/obj/item/food/snacks/donut/sprinkles
+/obj/item/food/donut/sprinkles
name = "frosted donut"
icon_state = "donut2"
list_reagents = list("nutriment" = 3, "sugar" = 2, "sprinkles" = 2)
@@ -463,14 +463,14 @@
donut_sprite_type = DONUT_FROSTED
randomized_sprinkles = 0
-/obj/item/food/snacks/donut/chaos
+/obj/item/food/donut/chaos
name = "chaos donut"
desc = "Like life, it never quite tastes the same."
bitesize = 10
tastes = list("donut" = 3, "chaos" = 1)
goal_difficulty = FOOD_GOAL_HARD
-/obj/item/food/snacks/donut/chaos/Initialize(mapload)
+/obj/item/food/donut/chaos/Initialize(mapload)
. = ..()
extra_reagent = pick("nutriment", "capsaicin", "frostoil", "krokodil", "plasma", "cocoa", "slimejelly", "banana", "berryjuice", "omnizine")
reagents.add_reagent("[extra_reagent]", 3)
@@ -480,7 +480,7 @@
reagents.add_reagent("sprinkles", 2)
filling_color = "#FF69B4"
-/obj/item/food/snacks/donut/jelly
+/obj/item/food/donut/jelly
name = "jelly donut"
desc = "You jelly?"
icon_state = "jdonut1"
@@ -488,7 +488,7 @@
tastes = list("jelly" = 1, "donut" = 3)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/donut/jelly/Initialize(mapload)
+/obj/item/food/donut/jelly/Initialize(mapload)
. = ..()
if(extra_reagent)
reagents.add_reagent("[extra_reagent]", 3)
@@ -499,14 +499,14 @@
reagents.add_reagent("sprinkles", 2)
filling_color = "#FF69B4"
-/obj/item/food/snacks/donut/jelly/slimejelly
+/obj/item/food/donut/jelly/slimejelly
name = "jelly donut"
desc = "You jelly?"
icon_state = "jdonut1"
extra_reagent = "slimejelly"
goal_difficulty = FOOD_GOAL_HARD
-/obj/item/food/snacks/donut/jelly/cherryjelly
+/obj/item/food/donut/jelly/cherryjelly
name = "jelly donut"
desc = "You jelly?"
icon_state = "jdonut1"
@@ -516,7 +516,7 @@
// Pancakes //
//////////////////////
-/obj/item/food/snacks/pancake
+/obj/item/food/pancake
name = "pancake"
desc = "A plain pancake."
icon = 'icons/obj/food/breakfast.dmi'
@@ -527,7 +527,7 @@
tastes = list("sweet cake" = 1)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/pancake/attack_tk(mob/user)
+/obj/item/food/pancake/attack_tk(mob/user)
if(src in user.tkgrabbed_objects)
to_chat(user, "You start channeling psychic energy into [src].")
visible_message("The syrup on [src] starts to boil...")
@@ -542,7 +542,7 @@
return
return ..()
-/obj/item/food/snacks/pancake/berry_pancake
+/obj/item/food/pancake/berry_pancake
name = "berry pancake"
desc = "A pancake loaded with berries."
icon_state = "berry_pancake"
@@ -550,7 +550,7 @@
tastes = list("sweet cake" = 2, "berries" = 2)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/pancake/choc_chip_pancake
+/obj/item/food/pancake/choc_chip_pancake
name = "choc-chip pancake"
desc = "A pancake loaded with chocolate chips."
icon_state = "choc_chip_pancake"
@@ -562,7 +562,7 @@
// Misc //
//////////////////////
-/obj/item/food/snacks/muffin
+/obj/item/food/muffin
name = "muffin"
desc = "A delicious and spongy little cake."
icon = 'icons/obj/food/breakfast.dmi'
@@ -572,7 +572,7 @@
tastes = list("muffin" = 1)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/berryclafoutis
+/obj/item/food/berryclafoutis
name = "berry clafoutis"
desc = "No black birds, this is a good sign."
icon = 'icons/obj/food/bakedgoods.dmi'
@@ -584,7 +584,7 @@
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/poppypretzel
+/obj/item/food/poppypretzel
name = "poppy pretzel"
desc = "A large soft pretzel full of POP! It's all twisted up!"
icon = 'icons/obj/food/bakedgoods.dmi'
@@ -594,7 +594,7 @@
tastes = list("pretzel" = 1)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/plumphelmetbiscuit
+/obj/item/food/plumphelmetbiscuit
name = "plump helmet biscuit"
desc = "This is a finely-prepared plump helmet biscuit. The ingredients are exceptionally minced plump helmet, and well-minced dwarven wheat flour."
icon = 'icons/obj/food/breakfast.dmi'
@@ -604,14 +604,14 @@
tastes = list("mushroom" = 1, "biscuit" = 1)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/plumphelmetbiscuit/Initialize(mapload)
+/obj/item/food/plumphelmetbiscuit/Initialize(mapload)
. = ..()
if(prob(10))
name = "exceptional plump helmet biscuit"
desc = "Microwave is taken by a fey mood! It has cooked an exceptional plump helmet biscuit!" // Is this a reference?
reagents.add_reagent("omnizine", 5)
-/obj/item/food/snacks/appletart
+/obj/item/food/appletart
name = "golden apple streusel tart"
desc = "A tasty dessert that won't make it through a metal detector."
icon = 'icons/obj/food/bakedgoods.dmi'
@@ -624,7 +624,7 @@
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/cracker
+/obj/item/food/cracker
name = "cracker"
desc = "It's a salted cracker."
icon = 'icons/obj/food/bakedgoods.dmi'
@@ -635,7 +635,7 @@
tastes = list("cracker" = 1)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/croissant
+/obj/item/food/croissant
name = "croissant"
desc = "Once a pastry reserved for the bourgeois, this flaky goodness is now on your table."
icon = 'icons/obj/food/bakedgoods.dmi'
@@ -646,13 +646,13 @@
tastes = list("croissant" = 1)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/croissant/throwing
+/obj/item/food/croissant/throwing
throwforce = 20
throw_range = 9 //now with extra throwing action
tastes = list("croissant" = 2, "butter" = 1, "metal" = 1)
list_reagents = list("nutriment" = 4, "sugar" = 2, "iron" = 1)
-/obj/item/food/snacks/croissant/throwing/Initialize(mapload)
+/obj/item/food/croissant/throwing/Initialize(mapload)
. = ..()
AddComponent(/datum/component/boomerang, throw_range, TRUE)
diff --git a/code/modules/food_and_drinks/food/foods/bread.dm b/code/modules/food_and_drinks/food/foods/bread.dm
index 89382e1e1b94..31eb3b340960 100644
--- a/code/modules/food_and_drinks/food/foods/bread.dm
+++ b/code/modules/food_and_drinks/food/foods/bread.dm
@@ -3,19 +3,19 @@
// Breads //
//////////////////////
-/obj/item/food/snacks/sliceable/meatbread
+/obj/item/food/sliceable/meatbread
name = "meatbread loaf"
desc = "The culinary base of every self-respecting eloquen/tg/entleman."
icon = 'icons/obj/food/burgerbread.dmi'
icon_state = "meatbread"
- slice_path = /obj/item/food/snacks/meatbreadslice
+ slice_path = /obj/item/food/meatbreadslice
slices_num = 5
filling_color = "#FF7575"
list_reagents = list("protein" = 20, "nutriment" = 10, "vitamin" = 5)
tastes = list("bread" = 10, "meat" = 10)
goal_difficulty = FOOD_GOAL_DUPLICATE
-/obj/item/food/snacks/meatbreadslice
+/obj/item/food/meatbreadslice
name = "meatbread slice"
desc = "A slice of delicious meatbread."
icon = 'icons/obj/food/burgerbread.dmi'
@@ -23,19 +23,19 @@
filling_color = "#FF7575"
goal_difficulty = FOOD_GOAL_EASY
-/obj/item/food/snacks/sliceable/xenomeatbread
+/obj/item/food/sliceable/xenomeatbread
name = "xenomeatbread loaf"
desc = "The culinary base of every self-respecting eloquent gentleman. Extra Heretical."
icon = 'icons/obj/food/burgerbread.dmi'
icon_state = "xenomeatbread"
- slice_path = /obj/item/food/snacks/xenomeatbreadslice
+ slice_path = /obj/item/food/xenomeatbreadslice
slices_num = 5
filling_color = "#8AFF75"
list_reagents = list("protein" = 20, "nutriment" = 10, "vitamin" = 5)
tastes = list("bread" = 10, "acid" = 10)
goal_difficulty = FOOD_GOAL_DUPLICATE
-/obj/item/food/snacks/xenomeatbreadslice
+/obj/item/food/xenomeatbreadslice
name = "xenomeatbread slice"
desc = "A slice of delicious meatbread. Extra Heretical."
icon = 'icons/obj/food/burgerbread.dmi'
@@ -43,18 +43,18 @@
filling_color = "#8AFF75"
goal_difficulty = FOOD_GOAL_EXCESSIVE
-/obj/item/food/snacks/sliceable/spidermeatbread
+/obj/item/food/sliceable/spidermeatbread
name = "spider meat loaf"
desc = "Reassuringly green meatloaf made from spider meat."
icon = 'icons/obj/food/burgerbread.dmi'
icon_state = "spidermeatbread"
- slice_path = /obj/item/food/snacks/spidermeatbreadslice
+ slice_path = /obj/item/food/spidermeatbreadslice
slices_num = 5
list_reagents = list("protein" = 20, "nutriment" = 10, "toxin" = 15, "vitamin" = 5)
tastes = list("bread" = 10, "cobwebs" = 5)
goal_difficulty = FOOD_GOAL_DUPLICATE
-/obj/item/food/snacks/spidermeatbreadslice
+/obj/item/food/spidermeatbreadslice
name = "spider meat bread slice"
desc = "A slice of meatloaf made from an animal that most likely still wants you dead."
icon = 'icons/obj/food/burgerbread.dmi'
@@ -63,19 +63,19 @@
list_reagents = list("toxin" = 2)
goal_difficulty = FOOD_GOAL_EXCESSIVE
-/obj/item/food/snacks/sliceable/bananabread
+/obj/item/food/sliceable/bananabread
name = "banana-nut bread"
desc = "A heavenly and filling treat."
icon = 'icons/obj/food/burgerbread.dmi'
icon_state = "bananabread"
- slice_path = /obj/item/food/snacks/bananabreadslice
+ slice_path = /obj/item/food/bananabreadslice
slices_num = 5
filling_color = "#EDE5AD"
list_reagents = list("banana" = 20, "nutriment" = 20)
tastes = list("bread" = 10, "banana" = 5)
goal_difficulty = FOOD_GOAL_DUPLICATE
-/obj/item/food/snacks/bananabreadslice
+/obj/item/food/bananabreadslice
name = "banana-nut bread slice"
desc = "A slice of delicious banana bread."
icon = 'icons/obj/food/burgerbread.dmi'
@@ -84,19 +84,19 @@
tastes = list("bread" = 10, "banana" = 5)
goal_difficulty = FOOD_GOAL_EASY
-/obj/item/food/snacks/sliceable/tofubread
+/obj/item/food/sliceable/tofubread
name = "tofubread"
desc = "Like meatbread but for vegetarians. Not guaranteed to give superpowers."
icon = 'icons/obj/food/burgerbread.dmi'
icon_state = "tofubread"
- slice_path = /obj/item/food/snacks/tofubreadslice
+ slice_path = /obj/item/food/tofubreadslice
slices_num = 5
filling_color = "#F7FFE0"
list_reagents = list("nutriment" = 20, "vitamin" = 5)
tastes = list("bread" = 10, "tofu" = 10)
goal_difficulty = FOOD_GOAL_DUPLICATE
-/obj/item/food/snacks/tofubreadslice
+/obj/item/food/tofubreadslice
name = "tofubread slice"
desc = "A slice of delicious tofubread."
icon = 'icons/obj/food/burgerbread.dmi'
@@ -104,19 +104,19 @@
filling_color = "#F7FFE0"
goal_difficulty = FOOD_GOAL_EASY
-/obj/item/food/snacks/sliceable/bread
+/obj/item/food/sliceable/bread
name = "bread"
desc = "Some plain old Earthen bread."
icon = 'icons/obj/food/burgerbread.dmi'
icon_state = "bread"
- slice_path = /obj/item/food/snacks/breadslice
+ slice_path = /obj/item/food/breadslice
slices_num = 6
filling_color = "#FFE396"
list_reagents = list("nutriment" = 10)
tastes = list("bread" = 1)
goal_difficulty = FOOD_GOAL_DUPLICATE
-/obj/item/food/snacks/breadslice
+/obj/item/food/breadslice
name = "bread slice"
desc = "A slice of home."
icon = 'icons/obj/food/burgerbread.dmi'
@@ -126,19 +126,19 @@
tastes = list("bread" = 1)
goal_difficulty = FOOD_GOAL_EASY
-/obj/item/food/snacks/sliceable/creamcheesebread
+/obj/item/food/sliceable/creamcheesebread
name = "cream cheese bread"
desc = "Yum yum yum!"
icon = 'icons/obj/food/burgerbread.dmi'
icon_state = "creamcheesebread"
- slice_path = /obj/item/food/snacks/creamcheesebreadslice
+ slice_path = /obj/item/food/creamcheesebreadslice
slices_num = 5
filling_color = "#FFF896"
list_reagents = list("nutriment" = 20, "vitamin" = 5)
tastes = list("bread" = 10, "cheese" = 10)
goal_difficulty = FOOD_GOAL_DUPLICATE
-/obj/item/food/snacks/creamcheesebreadslice
+/obj/item/food/creamcheesebreadslice
name = "cream cheese bread slice"
desc = "A slice of yum!"
icon = 'icons/obj/food/burgerbread.dmi'
@@ -148,19 +148,19 @@
tastes = list("bread" = 10, "cheese" = 10)
goal_difficulty = FOOD_GOAL_EASY
-/obj/item/food/snacks/sliceable/banarnarbread
+/obj/item/food/sliceable/banarnarbread
name = "banarnarbread loaf"
desc = "A loaf of delicious mah'weyh pleggh at e'ntrath!"
icon = 'icons/obj/food/burgerbread.dmi'
icon_state = "banarnarbread"
- slice_path = /obj/item/food/snacks/banarnarbreadslice
+ slice_path = /obj/item/food/banarnarbreadslice
slices_num = 5
filling_color = "#6F0000"
list_reagents = list("nutriment" = 20, "vitamin" = 5)
tastes = list("heresy" = 10, "banana" = 10)
goal_difficulty = FOOD_GOAL_DUPLICATE
-/obj/item/food/snacks/banarnarbreadslice
+/obj/item/food/banarnarbreadslice
name = "banarnarbread slice"
desc = "A slice of delicious mah'weyh pleggh at e'ntrath!"
icon = 'icons/obj/food/burgerbread.dmi'
@@ -175,7 +175,7 @@
// Misc //
//////////////////////
-/obj/item/food/snacks/bun
+/obj/item/food/bun
name = "bun"
desc = "The base for any self-respecting burger."
icon = 'icons/obj/food/food_ingredients.dmi'
@@ -185,7 +185,7 @@
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/flatbread
+/obj/item/food/flatbread
name = "flatbread"
desc = "Bland but filling."
icon = 'icons/obj/food/food_ingredients.dmi'
@@ -194,7 +194,7 @@
tastes = list("bread" = 1)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/baguette
+/obj/item/food/baguette
name = "baguette"
desc = "Bon appetit!"
icon = 'icons/obj/food/bakedgoods.dmi'
@@ -207,15 +207,15 @@
tastes = list("bread" = 1)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/baguette/combat
+/obj/item/food/baguette/combat
sharp = TRUE
force = 20
-/obj/item/food/snacks/baguette/combat/Initialize(mapload)
+/obj/item/food/baguette/combat/Initialize(mapload)
. = ..()
AddComponent(/datum/component/parry, _stamina_constant = 2, _stamina_coefficient = 0.5, _parryable_attack_types = ALL_ATTACK_TYPES)
-/obj/item/food/snacks/twobread
+/obj/item/food/twobread
name = "two bread"
desc = "It is very bitter and winy."
icon = 'icons/obj/food/burgerbread.dmi'
@@ -226,7 +226,7 @@
tastes = list("bread" = 1)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/toast
+/obj/item/food/toast
name = "toast"
desc = "Yeah! Toast!"
icon = 'icons/obj/food/burgerbread.dmi'
@@ -237,7 +237,7 @@
tastes = list("toast" = 1)
goal_difficulty = FOOD_GOAL_EXCESSIVE
-/obj/item/food/snacks/jelliedtoast
+/obj/item/food/jelliedtoast
name = "jellied toast"
desc = "A slice of bread covered with delicious jam."
icon = 'icons/obj/food/burgerbread.dmi'
@@ -246,15 +246,15 @@
bitesize = 3
tastes = list("toast" = 1, "jelly" = 1)
-/obj/item/food/snacks/jelliedtoast/cherry
+/obj/item/food/jelliedtoast/cherry
list_reagents = list("nutriment" = 1, "cherryjelly" = 5, "vitamin" = 2)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/jelliedtoast/slime
+/obj/item/food/jelliedtoast/slime
list_reagents = list("nutriment" = 1, "slimejelly" = 5, "vitamin" = 2)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/rofflewaffles
+/obj/item/food/rofflewaffles
name = "roffle waffles"
desc = "Waffles from Roffle. Co."
icon = 'icons/obj/food/breakfast.dmi'
@@ -266,7 +266,7 @@
tastes = list("waffle" = 1, "mushrooms" = 1)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/waffles
+/obj/item/food/waffles
name = "waffles"
desc = "Mmm, waffles."
icon = 'icons/obj/food/breakfast.dmi'
diff --git a/code/modules/food_and_drinks/food/foods/candy.dm b/code/modules/food_and_drinks/food/foods/candy.dm
index a6a65499b020..efc674cdb397 100644
--- a/code/modules/food_and_drinks/food/foods/candy.dm
+++ b/code/modules/food_and_drinks/food/foods/candy.dm
@@ -7,7 +7,7 @@
//Candy / Candy Ingredients
//Subclass so we can pass on values
-/obj/item/food/snacks/candy
+/obj/item/food/candy
name = "generic candy"
desc = "It's placeholder flavored. This shouldn't be seen."
icon = 'icons/obj/food/candy.dmi'
@@ -19,7 +19,7 @@
// Candy Ingredients / Flavorings / Byproduct
// ***********************************************************
-/obj/item/food/snacks/candy/caramel
+/obj/item/food/candy/caramel
name = "caramel"
desc = "Chewy and dense, yet it practically melts in your mouth!"
icon_state = "caramel"
@@ -28,7 +28,7 @@
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/candy/toffee
+/obj/item/food/candy/toffee
name = "toffee"
desc = "A hard, brittle candy with a distinctive taste."
icon_state = "toffee"
@@ -36,7 +36,7 @@
list_reagents = list("nutriment" = 3, "sugar" = 3)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/candy/nougat
+/obj/item/food/candy/nougat
name = "nougat"
desc = "A soft, chewy candy commonly found in candybars."
icon_state = "nougat"
@@ -44,7 +44,7 @@
list_reagents = list("nutriment" = 3, "sugar" = 3)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/candy/taffy
+/obj/item/food/candy/taffy
name = "saltwater taffy"
desc = "Old fashioned saltwater taffy. Chewy!"
icon_state = "candy1"
@@ -52,11 +52,11 @@
list_reagents = list("nutriment" = 3, "sugar" = 3)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/candy/taffy/Initialize(mapload)
+/obj/item/food/candy/taffy/Initialize(mapload)
. = ..()
icon_state = pick("candy1", "candy2", "candy3", "candy4", "candy5")
-/obj/item/food/snacks/candy/fudge
+/obj/item/food/candy/fudge
name = "fudge"
desc = "Chocolate fudge, a timeless classic treat."
icon_state = "fudge"
@@ -65,21 +65,21 @@
list_reagents = list("cream" = 3, "chocolate" = 6)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/candy/fudge/peanut
+/obj/item/food/candy/fudge/peanut
name = "peanut fudge"
desc = "Chocolate fudge, with bits of peanuts mixed in. People with nut allergies shouldn't eat this."
icon_state = "fudge_peanut"
filling_color = "#7D5F46"
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/candy/fudge/cherry
+/obj/item/food/candy/fudge/cherry
name = "chocolate cherry fudge"
desc = "Chocolate fudge surrounding sweet cherries. Good for tricking kids into eating some fruit."
icon_state = "fudge_cherry"
filling_color = "#7D5F46"
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/candy/fudge/cookies_n_cream
+/obj/item/food/candy/fudge/cookies_n_cream
name = "cookies 'n' cream fudge"
desc = "An extra creamy fudge with bits of real chocolate cookie mixed in. Crunchy!"
icon_state = "fudge_cookies_n_cream"
@@ -87,7 +87,7 @@
list_reagents = list("cream" = 6, "chocolate" = 6)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/candy/fudge/turtle
+/obj/item/food/candy/fudge/turtle
name = "turtle fudge"
desc = "Chocolate fudge with caramel and nuts. It doesn't contain real turtles, thankfully."
icon_state = "fudge_turtle"
@@ -98,14 +98,14 @@
// Candy Products (Pre-existing)
// ***********************************************************
-/obj/item/food/snacks/candy/donor
+/obj/item/food/candy/donor
name = "donor candy"
desc = "A little treat for blood donors."
trash = /obj/item/trash/candy
bitesize = 5
list_reagents = list("nutriment" = 10, "sugar" = 3)
-/obj/item/food/snacks/candy/candy_corn
+/obj/item/food/candy/candy_corn
name = "candy corn"
desc = "It's a handful of candy corn. Cannot be stored in a detective's hat, alas."
icon_state = "candycorn"
@@ -117,7 +117,7 @@
// Candy Products (plain / unflavored)
// ***********************************************************
-/obj/item/food/snacks/candy/cotton
+/obj/item/food/candy/cotton
name = "cotton candy"
desc = "Light and fluffy, it's like eating a cloud made from sugar!"
icon_state = "cottoncandy_plain"
@@ -127,7 +127,7 @@
list_reagents = list("sugar" = 15)
goal_difficulty = FOOD_GOAL_DUPLICATE
-/obj/item/food/snacks/candy/candybar
+/obj/item/food/candy/candybar
name = "candy"
desc = "A chocolate candybar, wrapped in a bit of foil."
icon_state = "candy"
@@ -141,7 +141,7 @@
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/candy/candycane
+/obj/item/food/candy/candycane
name = "candy cane"
desc = "A festive mint candy cane."
icon_state = "candycane"
@@ -149,7 +149,7 @@
list_reagents = list("minttoxin" = 1, "sugar" = 5)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/candy/gummybear
+/obj/item/food/candy/gummybear
name = "gummy bear"
desc = "A small edible bear. It's squishy and chewy!"
icon_state = "gbear"
@@ -158,7 +158,7 @@
list_reagents = list("sugar" = 10)
goal_difficulty = FOOD_GOAL_DUPLICATE
-/obj/item/food/snacks/candy/gummyworm
+/obj/item/food/candy/gummyworm
name = "gummy worm"
desc = "An edible worm, made from gelatin."
icon_state = "gworm"
@@ -167,7 +167,7 @@
list_reagents = list("sugar" = 10)
goal_difficulty = FOOD_GOAL_DUPLICATE
-/obj/item/food/snacks/candy/jellybean
+/obj/item/food/candy/jellybean
name = "jelly bean"
desc = "A candy bean, guaranteed to not give you gas."
icon_state = "jbean"
@@ -176,7 +176,7 @@
list_reagents = list("sugar" = 10)
goal_difficulty = FOOD_GOAL_DUPLICATE
-/obj/item/food/snacks/candy/jawbreaker
+/obj/item/food/candy/jawbreaker
name = "jawbreaker"
desc = "An unbelievably hard candy. The name is fitting."
icon_state = "jawbreaker"
@@ -185,7 +185,7 @@
list_reagents = list("sugar" = 10)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/candy/cash
+/obj/item/food/candy/cash
name = "candy cash"
desc = "Not legal tender. Tasty though."
icon_state = "candy_cash"
@@ -195,7 +195,7 @@
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/candy/coin
+/obj/item/food/candy/coin
name = "chocolate coin"
desc = "Probably won't work in the vending machines."
icon_state = "choc_coin"
@@ -206,7 +206,7 @@
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/candy/gum
+/obj/item/food/candy/gum
name = "bubblegum"
desc = "Chewy!"
icon_state = "bubblegum"
@@ -216,7 +216,7 @@
list_reagents = list("sugar" = 5)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/candy/sucker
+/obj/item/food/candy/sucker
name = "sucker"
desc = "For being such a good sport!"
icon_state = "sucker"
@@ -228,7 +228,7 @@
// Gummy Bear Flavors
// ***********************************************************
-/obj/item/food/snacks/candy/gummybear/red
+/obj/item/food/candy/gummybear/red
name = "red gummy bear"
desc = "A small edible bear. It's red!"
icon_state = "gbear_red"
@@ -236,7 +236,7 @@
list_reagents = list("sugar" = 10, "cherryjelly" = 2)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/candy/gummybear/blue
+/obj/item/food/candy/gummybear/blue
name = "blue gummy bear"
desc = "A small edible bear. It's blue!"
icon_state = "gbear_blue"
@@ -244,14 +244,14 @@
list_reagents = list("sugar" = 10, "berryjuice" = 2)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/candy/gummybear/poison
+/obj/item/food/candy/gummybear/poison
name = "blue gummy bear"
desc = "A small edible bear. It's blue!"
icon_state = "gbear_blue"
filling_color = "#863353"
list_reagents = list("poisonberryjuice" = 12)
-/obj/item/food/snacks/candy/gummybear/green
+/obj/item/food/candy/gummybear/green
name = "green gummy bear"
desc = "A small edible bear. It's green!"
icon_state = "gbear_green"
@@ -259,7 +259,7 @@
list_reagents = list("sugar" = 10, "limejuice" = 2)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/candy/gummybear/yellow
+/obj/item/food/candy/gummybear/yellow
name = "yellow gummy bear"
desc = "A small edible bear. It's yellow!"
icon_state = "gbear_yellow"
@@ -267,7 +267,7 @@
list_reagents = list("sugar" = 10, "lemonjuice" = 2)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/candy/gummybear/orange
+/obj/item/food/candy/gummybear/orange
name = "orange gummy bear"
desc = "A small edible bear. It's orange!"
icon_state = "gbear_orange"
@@ -275,7 +275,7 @@
list_reagents = list("sugar" = 10, "orangejuice" = 2)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/candy/gummybear/purple
+/obj/item/food/candy/gummybear/purple
name = "purple gummy bear"
desc = "A small edible bear. It's purple!"
icon_state = "gbear_purple"
@@ -283,7 +283,7 @@
list_reagents = list("sugar" = 10, "grapejuice" = 2)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/candy/gummybear/wtf
+/obj/item/food/candy/gummybear/wtf
name = "rainbow gummy bear"
desc = "A small bear. Wait... what?"
icon_state = "gbear_rainbow"
@@ -295,7 +295,7 @@
// Gummy Worm Flavors
// ***********************************************************
-/obj/item/food/snacks/candy/gummyworm/red
+/obj/item/food/candy/gummyworm/red
name = "red gummy worm"
desc = "An edible worm, made from gelatin. It's red!"
icon_state = "gworm_red"
@@ -303,7 +303,7 @@
list_reagents = list("sugar" = 10, "cherryjelly" = 2)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/candy/gummyworm/blue
+/obj/item/food/candy/gummyworm/blue
name = "blue gummy worm"
desc = "An edible worm, made from gelatin. It's blue!"
icon_state = "gworm_blue"
@@ -311,14 +311,14 @@
list_reagents = list("sugar" = 10, "berryjuice" = 2)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/candy/gummyworm/poison
+/obj/item/food/candy/gummyworm/poison
name = "blue gummy worm"
desc = "An edible worm, made from gelatin. It's blue!"
icon_state = "gworm_blue"
filling_color = "#863353"
list_reagents = list("poisonberryjuice" = 12)
-/obj/item/food/snacks/candy/gummyworm/green
+/obj/item/food/candy/gummyworm/green
name = "green gummy worm"
desc = "An edible worm, made from gelatin. It's green!"
icon_state = "gworm_green"
@@ -326,7 +326,7 @@
list_reagents = list("sugar" = 10, "limejuice" = 2)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/candy/gummyworm/yellow
+/obj/item/food/candy/gummyworm/yellow
name = "yellow gummy worm"
desc = "An edible worm, made from gelatin. It's yellow!"
icon_state = "gworm_yellow"
@@ -334,7 +334,7 @@
list_reagents = list("sugar" = 10, "lemonjuice" = 2)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/candy/gummyworm/orange
+/obj/item/food/candy/gummyworm/orange
name = "orange gummy worm"
desc = "An edible worm, made from gelatin. It's orange!"
icon_state = "gworm_orange"
@@ -342,7 +342,7 @@
list_reagents = list("sugar" = 10, "orangejuice" = 2)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/candy/gummyworm/purple
+/obj/item/food/candy/gummyworm/purple
name = "purple gummy worm"
desc = "An edible worm, made from gelatin. It's purple!"
icon_state = "gworm_purple"
@@ -350,7 +350,7 @@
list_reagents = list("sugar" = 10, "grapejuice" = 2)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/candy/gummyworm/wtf
+/obj/item/food/candy/gummyworm/wtf
name = "rainbow gummy worm"
desc = "An edible worm. Did it just move?"
icon_state = "gworm_rainbow"
@@ -362,7 +362,7 @@
// Jelly Bean Flavors
// ***********************************************************
-/obj/item/food/snacks/candy/jellybean/red
+/obj/item/food/candy/jellybean/red
name = "red jelly bean"
desc = "A candy bean, guaranteed to not give you gas. It's red!"
icon_state = "jbean_red"
@@ -370,7 +370,7 @@
list_reagents = list("sugar" = 10, "cherryjelly" = 2)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/candy/jellybean/blue
+/obj/item/food/candy/jellybean/blue
name = "blue jelly bean"
desc = "A candy bean, guaranteed to not give you gas. It's blue!"
icon_state = "jbean_blue"
@@ -378,14 +378,14 @@
list_reagents = list("sugar" = 10, "berryjuice" = 2)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/candy/jellybean/poison
+/obj/item/food/candy/jellybean/poison
name = "blue jelly bean"
desc = "A candy bean, guaranteed to not give you gas. It's blue!"
icon_state = "jbean_blue"
filling_color = "#863353"
list_reagents = list("poisonberryjuice" = 12)
-/obj/item/food/snacks/candy/jellybean/green
+/obj/item/food/candy/jellybean/green
name = "green jelly bean"
desc = "A candy bean, guaranteed to not give you gas. It's green!"
icon_state = "jbean_green"
@@ -393,7 +393,7 @@
list_reagents = list("sugar" = 10, "limejuice" = 2)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/candy/jellybean/yellow
+/obj/item/food/candy/jellybean/yellow
name = "yellow jelly bean"
desc = "A candy bean, guaranteed to not give you gas. It's yellow!"
icon_state = "jbean_yellow"
@@ -401,7 +401,7 @@
list_reagents = list("sugar" = 10, "lemonjuice" = 2)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/candy/jellybean/orange
+/obj/item/food/candy/jellybean/orange
name = "orange jelly bean"
desc = "A candy bean, guaranteed to not give you gas. It's orange!"
icon_state = "jbean_orange"
@@ -409,7 +409,7 @@
list_reagents = list("sugar" = 10, "orangejuice" = 2)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/candy/jellybean/purple
+/obj/item/food/candy/jellybean/purple
name = "purple jelly bean"
desc = "A candy bean, guaranteed to not give you gas. It's purple!"
icon_state = "jbean_purple"
@@ -417,7 +417,7 @@
list_reagents = list("sugar" = 10, "grapejuice" = 2)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/candy/jellybean/chocolate
+/obj/item/food/candy/jellybean/chocolate
name = "chocolate jelly bean"
desc = "A candy bean, guaranteed to not give you gas. It's chocolate!"
icon_state = "jbean_choc"
@@ -425,7 +425,7 @@
list_reagents = list("sugar" = 10, "chocolate" = 2)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/candy/jellybean/popcorn
+/obj/item/food/candy/jellybean/popcorn
name = "popcorn jelly bean"
desc = "A candy bean, guaranteed to not give you gas. It's popcorn flavored!"
icon_state = "jbean_popcorn"
@@ -433,7 +433,7 @@
list_reagents = list("sugar" = 10, "nutriment" = 2)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/candy/jellybean/cola
+/obj/item/food/candy/jellybean/cola
name = "cola jelly bean"
desc = "A candy bean, guaranteed to not give you gas. It's Cola flavored!"
icon_state = "jbean_cola"
@@ -441,7 +441,7 @@
list_reagents = list("sugar" = 10, "cola" = 2)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/candy/jellybean/drgibb
+/obj/item/food/candy/jellybean/drgibb
name = "\improper Dr. Gibb jelly bean"
desc = "A candy bean, guaranteed to not give you gas. It's Dr. Gibb flavored!"
icon_state = "jbean_cola"
@@ -449,7 +449,7 @@
list_reagents = list("sugar" = 10, "dr_gibb" = 2)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/candy/jellybean/coffee
+/obj/item/food/candy/jellybean/coffee
name = "coffee jelly bean"
desc = "A candy bean, guaranteed to not give you gas. It's Coffee flavored!"
icon_state = "jbean_choc"
@@ -457,7 +457,7 @@
list_reagents = list("sugar" = 10, "coffee" = 2)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/candy/jellybean/wtf
+/obj/item/food/candy/jellybean/wtf
name = "rainbow jelly bean"
desc = "A candy bean, guaranteed to not give you gas. You aren't sure what color it is."
icon_state = "jbean_rainbow"
@@ -469,7 +469,7 @@
// Cotton Candy Flavors
// ***********************************************************
-/obj/item/food/snacks/candy/cotton/red
+/obj/item/food/candy/cotton/red
name = "red cotton candy"
desc = "Light and fluffy, it's like eating a cloud made from sugar!"
icon_state = "cottoncandy_red"
@@ -478,7 +478,7 @@
list_reagents = list("sugar" = 15, "cherryjelly" = 5)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/candy/cotton/blue
+/obj/item/food/candy/cotton/blue
name = "blue cotton candy"
desc = "Light and fluffy, it's like eating a cloud made from sugar!"
icon_state = "cottoncandy_blue"
@@ -487,7 +487,7 @@
list_reagents = list("sugar" = 15, "berryjuice" = 5)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/candy/cotton/poison
+/obj/item/food/candy/cotton/poison
name = "blue cotton candy"
desc = "Light and fluffy, it's like eating a cloud made from sugar!"
icon_state = "cottoncandy_blue"
@@ -495,7 +495,7 @@
filling_color = "#863353"
list_reagents = list("poisonberryjuice" = 20)
-/obj/item/food/snacks/candy/cotton/green
+/obj/item/food/candy/cotton/green
name = "green cotton candy"
desc = "Light and fluffy, it's like eating a cloud made from sugar!"
icon_state = "cottoncandy_green"
@@ -504,7 +504,7 @@
list_reagents = list("sugar" = 15, "limejuice" = 5)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/candy/cotton/yellow
+/obj/item/food/candy/cotton/yellow
name = "yellow cotton candy"
desc = "Light and fluffy, it's like eating a cloud made from sugar!"
icon_state = "cottoncandy_yellow"
@@ -513,7 +513,7 @@
list_reagents = list("sugar" = 15, "lemonjuice" = 5)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/candy/cotton/orange
+/obj/item/food/candy/cotton/orange
name = "orange cotton candy"
desc = "Light and fluffy, it's like eating a cloud made from sugar!"
icon_state = "cottoncandy_orange"
@@ -522,7 +522,7 @@
list_reagents = list("sugar" = 15, "orangejuice" = 5)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/candy/cotton/purple
+/obj/item/food/candy/cotton/purple
name = "purple cotton candy"
desc = "Light and fluffy, it's like eating a cloud made from sugar!"
icon_state = "cottoncandy_purple"
@@ -531,7 +531,7 @@
list_reagents = list("sugar" = 15, "grapejuice" = 5)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/candy/cotton/pink
+/obj/item/food/candy/cotton/pink
name = "pink cotton candy"
desc = "Light and fluffy, it's like eating a cloud made from sugar!"
icon_state = "cottoncandy_pink"
@@ -540,7 +540,7 @@
list_reagents = list("sugar" = 15, "watermelonjuice" = 5)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/candy/cotton/rainbow
+/obj/item/food/candy/cotton/rainbow
name = "rainbow cotton candy"
desc = "Light and fluffy, it's like eating a cloud made from sugar!"
icon_state = "cottoncandy_rainbow"
@@ -549,7 +549,7 @@
list_reagents = list("omnizine" = 20)
goal_difficulty = FOOD_GOAL_HARD
-/obj/item/food/snacks/candy/cotton/bad_rainbow
+/obj/item/food/candy/cotton/bad_rainbow
name = "rainbow cotton candy"
desc = "Light and fluffy, it's like eating a cloud made from sugar!"
icon_state = "cottoncandy_rainbow"
@@ -561,10 +561,10 @@
// Candybar Flavors
// ***********************************************************
-/obj/item/food/snacks/candy/confectionery
+/obj/item/food/candy/confectionery
list_reagents = list("nutriment" = 1, "chocolate" = 1)
-/obj/item/food/snacks/candy/confectionery/rice
+/obj/item/food/candy/confectionery/rice
name = "Asteroid Crunch Bar"
desc = "Crunchy rice deposits in delicious chocolate! A favorite of miners galaxy-wide."
icon_state = "asteroidcrunch"
@@ -572,28 +572,28 @@
filling_color = "#7D5F46"
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/candy/confectionery/toffee
+/obj/item/food/candy/confectionery/toffee
name = "Yum-Baton Bar"
desc = "Chocolate and toffee in the shape of a baton. Security sure knows how to pound these down!"
icon_state = "yumbaton"
filling_color = "#7D5F46"
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/candy/confectionery/caramel
+/obj/item/food/candy/confectionery/caramel
name = "Malper Bar"
desc = "A chocolate syringe filled with a caramel injection. Just what the doctor ordered!"
icon_state = "malper"
filling_color = "#7D5F46"
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/candy/confectionery/caramel_nougat
+/obj/item/food/candy/confectionery/caramel_nougat
name = "Toxins Test Bar"
desc = "An explosive combination of chocolate, caramel, and nougat. Research has never been so tasty!"
icon_state = "toxinstest"
filling_color = "#7D5F46"
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/candy/confectionery/nougat
+/obj/item/food/candy/confectionery/nougat
name = "Tool-erone Bar"
desc = "Chocolate-covered nougat, shaped like a wrench. Great for an engineer on the go!"
icon_state = "toolerone"
diff --git a/code/modules/food_and_drinks/food/foods/desserts.dm b/code/modules/food_and_drinks/food/foods/desserts.dm
index 8c3517c8c66c..1287e11ddbf3 100644
--- a/code/modules/food_and_drinks/food/foods/desserts.dm
+++ b/code/modules/food_and_drinks/food/foods/desserts.dm
@@ -2,14 +2,14 @@
// Misc //
//////////////////////
-/obj/item/food/snacks/friedbanana
+/obj/item/food/friedbanana
name = "fried banana"
desc = "Goreng Pisang, also known as fried bananas."
icon_state = "friedbanana"
list_reagents = list("sugar" = 5, "nutriment" = 8, "cornoil" = 4)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/ricepudding
+/obj/item/food/ricepudding
name = "rice pudding"
desc = "Where's the Jam!"
icon_state = "rpudding"
@@ -19,7 +19,7 @@
tastes = list("rice" = 1, "sweetness" = 1)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/spacylibertyduff
+/obj/item/food/spacylibertyduff
name = "spacy liberty duff"
desc = "Jello gelatin, from Alfred Hubbard's cookbook."
icon_state = "spacylibertyduff"
@@ -30,7 +30,7 @@
tastes = list("jelly" = 1, "mushroom" = 1)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/amanitajelly
+/obj/item/food/amanitajelly
name = "amanita jelly"
desc = "Looks curiously toxic."
icon_state = "amanitajelly"
@@ -41,7 +41,7 @@
tastes = list("jelly" = 1, "mushroom" = 1)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/candiedapple
+/obj/item/food/candiedapple
name = "candied apple"
desc = "An apple coated in sugary sweetness."
icon_state = "candiedapple"
@@ -51,7 +51,7 @@
tastes = list("apple" = 2, "sweetness" = 2)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/mint
+/obj/item/food/mint
name = "mint"
desc = "it is only wafer thin."
icon_state = "mint"
diff --git a/code/modules/food_and_drinks/food/foods/ethnic.dm b/code/modules/food_and_drinks/food/foods/ethnic.dm
index d388f2c06920..4751501bd931 100644
--- a/code/modules/food_and_drinks/food/foods/ethnic.dm
+++ b/code/modules/food_and_drinks/food/foods/ethnic.dm
@@ -3,7 +3,7 @@
// Mexican //
//////////////////////
-/obj/item/food/snacks/taco
+/obj/item/food/taco
name = "taco"
desc = "Take a bite!"
icon_state = "taco"
@@ -12,7 +12,7 @@
tastes = list("taco" = 4, "meat" = 2, "cheese" = 2, "lettuce" = 1)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/burrito
+/obj/item/food/burrito
name = "burrito"
desc = "Meat, beans, cheese, and rice wrapped up as an easy-to-hold meal."
icon_state = "burrito"
@@ -23,7 +23,7 @@
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/chimichanga
+/obj/item/food/chimichanga
name = "chimichanga"
desc = "Time to eat a chimi-f***ing-changa."
icon_state = "chimichanga"
@@ -32,7 +32,7 @@
list_reagents = list("omnizine" = 4, "cheese" = 2) //Deadpool reference. Deal with it.
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/enchiladas
+/obj/item/food/enchiladas
name = "enchiladas"
desc = "Viva la Mexico!"
icon_state = "enchiladas"
@@ -43,7 +43,7 @@
tastes = list("hot peppers" = 1, "meat" = 3, "cheese" = 1, "sour cream" = 1)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/cornchips
+/obj/item/food/cornchips
name = "corn chips"
desc = "Goes great with salsa! OLE!"
icon_state = "chips"
@@ -58,7 +58,7 @@
// Chinese //
//////////////////////
-/obj/item/food/snacks/chinese/chowmein
+/obj/item/food/chinese/chowmein
name = "chow mein"
desc = "What is in this anyways?"
icon_state = "chinese1"
@@ -67,7 +67,7 @@
list_reagents = list("nutriment" = 1, "beans" = 3, "msg" = 4, "sugar" = 2)
tastes = list("noodle" = 1, "vegetables" = 1)
-/obj/item/food/snacks/chinese/sweetsourchickenball
+/obj/item/food/chinese/sweetsourchickenball
name = "sweet & sour chicken balls"
desc = "Is this chicken cooked? The odds are better than wok paper scissors."
icon = 'icons/obj/food/meat.dmi'
@@ -77,7 +77,7 @@
list_reagents = list("nutriment" = 2, "msg" = 4, "sugar" = 2)
tastes = list("chicken" = 1, "sweetness" = 1)
-/obj/item/food/snacks/chinese/tao
+/obj/item/food/chinese/tao
name = "Admiral Yamamoto carp"
desc = "Tastes like chicken."
icon_state = "chinese2"
@@ -86,7 +86,7 @@
list_reagents = list("nutriment" = 1, "protein" = 1, "msg" = 4, "sugar" = 4)
tastes = list("chicken" = 1)
-/obj/item/food/snacks/chinese/newdles
+/obj/item/food/chinese/newdles
name = "chinese newdles"
desc = "Made fresh, weekly!"
icon_state = "chinese3"
@@ -95,7 +95,7 @@
list_reagents = list("nutriment" = 1, "msg" = 4, "sugar" = 3)
tastes = list("noodles" = 1)
-/obj/item/food/snacks/chinese/rice
+/obj/item/food/chinese/rice
name = "fried rice"
desc = "A timeless classic."
icon_state = "chinese4"
@@ -110,7 +110,7 @@
// Japanese //
//////////////////////
-/obj/item/food/snacks/chawanmushi
+/obj/item/food/chawanmushi
name = "chawanmushi"
desc = "A legendary egg custard that makes friends out of enemies. Probably too hot for a cat to eat."
icon_state = "chawanmushi"
@@ -120,7 +120,7 @@
tastes = list("custard" = 1)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/yakiimo
+/obj/item/food/yakiimo
name = "yaki imo"
desc = "Made with roasted sweet potatoes!"
icon_state = "yakiimo"
@@ -135,7 +135,7 @@
// Middle Eastern //
//////////////////////
-/obj/item/food/snacks/meatkebab
+/obj/item/food/meatkebab
name = "meat-kebab"
desc = "Delicious meat, on a stick."
icon_state = "kebab"
@@ -144,7 +144,7 @@
list_reagents = list("nutriment" = 8)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/syntikebab
+/obj/item/food/syntikebab
name = "synthimeat-kebab"
desc = "Delicious synthetic meat, on a stick."
icon_state = "kebab"
@@ -152,7 +152,7 @@
filling_color = "#A85340"
list_reagents = list("nutriment" = 8)
-/obj/item/food/snacks/human/kebab
+/obj/item/food/human/kebab
name = "-kebab"
desc = "Human meat, on a stick."
icon_state = "kebab"
@@ -160,7 +160,7 @@
filling_color = "#A85340"
list_reagents = list("nutriment" = 8)
-/obj/item/food/snacks/tofukebab
+/obj/item/food/tofukebab
name = "tofu-kebab"
desc = "Vegan meat, on a stick."
icon_state = "kebab"
@@ -169,7 +169,7 @@
list_reagents = list("nutriment" = 8)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/picoss_kebab
+/obj/item/food/picoss_kebab
name = "picoss-kebab"
desc = "A popular Moghes street food consisting of vinegar-marinated space carp on a skewer with onion and chillis."
icon_state = "picoss_skewer"
diff --git a/code/modules/food_and_drinks/food/foods/frozen.dm b/code/modules/food_and_drinks/food/foods/frozen.dm
index 89824dd503c3..a6c6314ab980 100644
--- a/code/modules/food_and_drinks/food/foods/frozen.dm
+++ b/code/modules/food_and_drinks/food/foods/frozen.dm
@@ -5,25 +5,25 @@
//Abstract item for inheritence.
-/obj/item/food/snacks/frozen
+/obj/item/food/frozen
name = "frozen treat"
desc = "If you got this, something broke! Contact a coder if this somehow spawns."
icon = 'icons/obj/food/frozen_treats.dmi'
icon_state = "flavorless_sc"
-/obj/item/food/snacks/sliceable/clowncake
+/obj/item/food/sliceable/clowncake
name = "clown cake"
desc = "A funny cake with a clown face on it."
icon = 'icons/obj/food/frozen_treats.dmi'
icon_state = "clowncake"
- slice_path = /obj/item/food/snacks/frozen/clowncakeslice
+ slice_path = /obj/item/food/frozen/clowncakeslice
slices_num = 5
bitesize = 3
list_reagents = list("nutriment" = 20, "sugar" = 5, "vitamin" = 5, "banana" = 15)
tastes = list("cake" = 5, "sweetness" = 2, "banana" = 1, "sad clowns" = 1, "ice-cream" = 1)
goal_difficulty = FOOD_GOAL_EXCESSIVE
-/obj/item/food/snacks/frozen/clowncakeslice
+/obj/item/food/frozen/clowncakeslice
name = "clown cake slice"
desc = "A slice of bad jokes, and silly props."
icon_state = "clowncake_slice"
@@ -37,7 +37,7 @@
// Ice Cream //
//////////////////
-/obj/item/food/snacks/frozen/icecream
+/obj/item/food/frozen/icecream
name = "ice cream"
desc = "Delicious ice cream."
icon_state = "icecream_cone"
@@ -45,11 +45,11 @@
list_reagents = list("nutriment" = 1, "sugar" = 1)
tastes = list("ice cream" = 1)
-/obj/item/food/snacks/frozen/icecream/Initialize(mapload)
+/obj/item/food/frozen/icecream/Initialize(mapload)
. = ..()
update_icon(UPDATE_OVERLAYS)
-/obj/item/food/snacks/frozen/icecream/update_overlays()
+/obj/item/food/frozen/icecream/update_overlays()
. = ..()
var/mutable_appearance/filling = mutable_appearance('icons/obj/food/frozen_treats.dmi', "icecream_color")
var/list/reagent_colors = rgb2num(mix_color_from_reagents(reagents.reagent_list), COLORSPACE_HSV) //switching to HSV colorspace lets us easily manipulate the saturation and brightness independently
@@ -57,7 +57,7 @@
filling.color = rgb(reagent_colors[1], ((1.5 * reagent_colors[2]) - 10), (clamp(reagent_colors[3], 85, 100) - 10), space = COLORSPACE_HSV)
. += filling
-/obj/item/food/snacks/frozen/icecream/icecreamcone
+/obj/item/food/frozen/icecream/icecreamcone
name = "ice cream cone"
desc = "Delicious ice cream."
icon_state = "icecream_cone"
@@ -65,7 +65,7 @@
bitesize = 3
list_reagents = list("nutriment" = 3, "sugar" = 7, "ice" = 2)
-/obj/item/food/snacks/frozen/icecream/wafflecone
+/obj/item/food/frozen/icecream/wafflecone
name = "ice cream in a waffle cone"
desc = "Delicious ice cream."
icon_state = "icecream_cone_waffle"
@@ -73,7 +73,7 @@
bitesize = 3
list_reagents = list("nutriment" = 3, "sugar" = 7, "ice" = 2)
-/obj/item/food/snacks/frozen/icecream/icecreamcup
+/obj/item/food/frozen/icecream/icecreamcup
name = "chocolate ice cream cone"
desc = "Delicious ice cream."
icon_state = "icecream_cone_chocolate"
@@ -81,7 +81,7 @@
bitesize = 3
list_reagents = list("nutriment" = 5, "chocolate" = 8, "ice" = 2)
-/obj/item/food/snacks/wafflecone
+/obj/item/food/wafflecone
name = "waffle cone"
desc = "Delicious waffle cone, but no ice cream."
icon = 'icons/obj/food/frozen_treats.dmi'
@@ -89,7 +89,7 @@
list_reagents = list("nutriment" = 5)
tastes = list("cream" = 2, "waffle" = 1)
-/obj/item/food/snacks/frozen/icecreamsandwich
+/obj/item/food/frozen/icecreamsandwich
name = "icecream sandwich"
desc = "Portable ice cream in its own packaging."
icon_state = "icecreamsandwich"
@@ -97,7 +97,7 @@
tastes = list("ice cream" = 1)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/frozen/berryicecreamsandwich
+/obj/item/food/frozen/berryicecreamsandwich
name = "strawberry icecream sandwich"
desc = "Portable ice cream in its own packaging."
icon_state = "strawberryicecreamsandwich"
@@ -105,7 +105,7 @@
tastes = list("ice cream" = 1, "strawberry" = 1)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/frozen/sundae
+/obj/item/food/frozen/sundae
name = "sundae"
desc = "A classic dessert."
icon_state = "sundae"
@@ -113,7 +113,7 @@
tastes = list("ice cream" = 1, "banana" = 1)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/frozen/honkdae
+/obj/item/food/frozen/honkdae
name = "honkdae"
desc = "The clown's favorite dessert."
icon_state = "honkdae"
@@ -121,7 +121,7 @@
tastes = list("ice cream" = 1, "banana" = 1, "a bad joke" = 1)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/frozen/cornuto
+/obj/item/food/frozen/cornuto
name = "cornuto"
desc = "A neapolitan vanilla and chocolate ice cream cone. It menaces with a sprinkling of caramelized nuts."
icon_state = "cornuto"
@@ -129,7 +129,7 @@
tastes = list("chopped hazelnuts" = 3, "waffle" = 5)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/frozen/peanutbuttermochi
+/obj/item/food/frozen/peanutbuttermochi
name = "peanut butter ice cream mochi"
desc = "A classic dessert at the Arabia Street Night Market in Prospect, peanut butter ice cream mochi is made with a peanut-butter flavoured ice cream as the main filling, and coated in crushed peanuts in the Taiwanese tradition."
icon_state = "pb_ice_cream_mochi"
@@ -137,7 +137,7 @@
tastes = list("peanut butter" = 1, "mochi" = 1)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/frozen/spacefreezy
+/obj/item/food/frozen/spacefreezy
name = "spacefreezy"
desc = "The best ice cream in space."
icon_state = "spacefreezy"
@@ -149,7 +149,7 @@
// Snow Cones //
//////////////////
-/obj/item/food/snacks/frozen/snowcone
+/obj/item/food/frozen/snowcone
name = "flavorless snowcone"
desc = "It's just shaved ice. Still fun to chew on."
icon_state = "flavorless_sc"
@@ -158,7 +158,7 @@
tastes = list("cold water" = 1)
goal_difficulty = FOOD_GOAL_DUPLICATE
-/obj/item/food/snacks/frozen/snowcone/apple
+/obj/item/food/frozen/snowcone/apple
name = "apple snowcone"
desc = "Apple syrup drizzled over a snowball in a paper cup."
icon_state = "amber_sc"
@@ -166,7 +166,7 @@
tastes = list("ice" = 1, "water" = 1, "apples" = 5)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/frozen/snowcone/berry
+/obj/item/food/frozen/snowcone/berry
name = "berry snowcone"
desc = "Berry syrup drizzled over a snowball in a paper cup."
icon_state = "berry_sc"
@@ -174,7 +174,7 @@
tastes = list("ice" = 1, "water" = 1, "berries" = 5)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/frozen/snowcone/bluecherry
+/obj/item/food/frozen/snowcone/bluecherry
name = "bluecherry snowcone"
desc = "Bluecherry syrup drizzled over a snowball in a paper cup, how rare!"
icon_state = "blue_sc"
@@ -182,7 +182,7 @@
tastes = list("ice" = 1, "water" = 1, "bluecherries" = 5)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/frozen/snowcone/cherry
+/obj/item/food/frozen/snowcone/cherry
name = "cherry snowcone"
desc = "Cherry syrup drizzled over a snowball in a paper cup."
icon_state = "red_sc"
@@ -190,7 +190,7 @@
tastes = list("ice" = 1, "water" = 1, "cherries" = 5)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/frozen/snowcone/fruitsalad
+/obj/item/food/frozen/snowcone/fruitsalad
name = "fruit salad snowcone"
desc = "A delightful mix of citrus syrups drizzled over a snowball in a paper cup."
icon_state = "fruitsalad_sc"
@@ -198,7 +198,7 @@
tastes = list("ice" = 1, "water" = 1, "oranges" = 5, "lemons" = 5, "limes" = 5)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/frozen/snowcone/grape
+/obj/item/food/frozen/snowcone/grape
name = "grape snowcone"
desc = "Grape syrup drizzled over a snowball in a paper cup."
icon_state = "grape_sc"
@@ -206,7 +206,7 @@
tastes = list("ice" = 1, "water" = 1, "grapes" = 5)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/frozen/snowcone/honey
+/obj/item/food/frozen/snowcone/honey
name = "honey snowcone"
desc = "Honey drizzled over a snowball in a paper cup."
icon_state = "amber_sc"
@@ -214,7 +214,7 @@
tastes = list("ice" = 1, "water" = 1, "honey" = 5)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/frozen/snowcone/lemon
+/obj/item/food/frozen/snowcone/lemon
name = "lemon snowcone"
desc = "Lemon syrup drizzled over a snowball in a paper cup."
icon_state = "lemon_sc"
@@ -222,7 +222,7 @@
tastes = list("ice" = 1, "water" = 1, "lemons" = 5)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/frozen/snowcone/lime
+/obj/item/food/frozen/snowcone/lime
name = "lime snowcone"
desc = "Lime syrup drizzled over a snowball in a paper cup."
icon_state = "lime_sc"
@@ -230,7 +230,7 @@
tastes = list("ice" = 1, "water" = 1, "limes" = 5)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/frozen/snowcone/mime
+/obj/item/food/frozen/snowcone/mime
name = "mime snowcone"
desc = "..."
icon_state = "mime_sc"
@@ -238,7 +238,7 @@
tastes = list("ice" = 1, "water" = 1, "silence" = 5)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/frozen/snowcone/orange
+/obj/item/food/frozen/snowcone/orange
name = "orange snowcone"
desc = "Orange syrup drizzled over a snowball in a paper cup."
icon_state = "orange_sc"
@@ -246,7 +246,7 @@
tastes = list("ice" = 1, "water" = 1, "oranges" = 5)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/frozen/snowcone/pineapple
+/obj/item/food/frozen/snowcone/pineapple
name = "pineapple snowcone"
desc = "Pineapple syrup drizzled over a snowball in a paper cup."
icon_state = "pineapple_sc"
@@ -254,7 +254,7 @@
tastes = list("ice" = 1, "water" = 1, "pineapple" = 5)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/frozen/snowcone/rainbow
+/obj/item/food/frozen/snowcone/rainbow
name = "rainbow snowcone"
desc = "A very colorful snowball in a paper cup."
icon_state = "rainbow_sc"
@@ -262,7 +262,7 @@
tastes = list("ice" = 1, "water" = 1, "rainbows" = 5)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/frozen/snowcone/cola
+/obj/item/food/frozen/snowcone/cola
name = "space cola snowcone"
desc = "Space Cola drizzled over a snowball in a paper cup."
icon_state = "soda_sc"
@@ -270,7 +270,7 @@
tastes = list("ice" = 1, "water" = 1, "soda" = 5)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/frozen/snowcone/spacemountain
+/obj/item/food/frozen/snowcone/spacemountain
name = "space mountain wind snowcone"
desc = "Space Mountain Wind drizzled over a snowball in a paper cup."
icon_state = "mountainwind_sc"
@@ -282,7 +282,7 @@
// Popsicles //
/////////////////
-/obj/item/food/snacks/frozen/popsicle
+/obj/item/food/frozen/popsicle
name = "jumbo icecream"
desc = "A luxurious ice cream covered in rich chocolate. It seems smaller than you remember it being."
icon_state = "jumbo"
@@ -291,7 +291,7 @@
tastes = list("ice cream" = 1, "chocolate" = 1, "vanilla" = 1)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/frozen/popsicle/bananatop
+/obj/item/food/frozen/popsicle/bananatop
name = "banana topsicle"
desc = "A frozen treat made from tofu and banana juice blended smooth, then frozen. Popular in rural Japan in the summer."
icon_state = "topsicle_banana"
@@ -299,7 +299,7 @@
tastes = list("bananas" = 1, "tofu" = 1)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/frozen/popsicle/berrytop
+/obj/item/food/frozen/popsicle/berrytop
name = "berry topsicle"
desc = "A frozen treat made from tofu and berry juice blended smooth, then frozen. Supposedly a favourite of bears, but that makes no sense..."
icon_state = "topsicle_berry"
@@ -307,7 +307,7 @@
tastes = list("berries" = 1, "tofu" = 1)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/frozen/popsicle/pineappletop
+/obj/item/food/frozen/popsicle/pineappletop
name = "pineapple topsicle"
desc = "A frozen treat made from tofu and pineapple juice blended smooth, then frozen. As seen on TV."
icon_state = "topsicle_pineapple"
@@ -315,7 +315,7 @@
tastes = list("pineapples" = 1, "tofu" = 1)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/frozen/popsicle/licoricecream
+/obj/item/food/frozen/popsicle/licoricecream
name = "licorice creamsicle"
desc = "A salty licorice ice cream. A salty frozen treat."
icon_state = "licorice_creamsicle"
@@ -323,7 +323,7 @@
tastes = list("salty licorice" = 1)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/frozen/popsicle/orangecream
+/obj/item/food/frozen/popsicle/orangecream
name = "orange creamsicle"
desc = "A classic orange creamsicle. A sunny frozen treat."
icon_state = "creamsicle_o"
@@ -331,7 +331,7 @@
tastes = list("ice cream" = 1, "oranges" = 1, "vanilla" = 1)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/frozen/popsicle/berrycream
+/obj/item/food/frozen/popsicle/berrycream
name = "berry creamsicle"
desc = "A vibrant berry creamsicle. A berry good frozen treat."
icon_state = "creamsicle_m"
@@ -339,7 +339,7 @@
tastes = list("ice cream" = 1, "berries" = 1, "vanilla" = 1)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/frozen/popsicle/frozenpineapple
+/obj/item/food/frozen/popsicle/frozenpineapple
name = "frozen pineapple pop"
desc = "Few cultures love pineapple as much as the Martians, and this dessert proves that- frozen pineapple, on a stick, with just a little dunk of dark chocolate."
icon_state = "pineapple_pop"
@@ -347,7 +347,7 @@
tastes = list("cold pineapple" = 1, "chocolate" = 1)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/frozen/popsicle/sea_salt
+/obj/item/food/frozen/popsicle/sea_salt
name = "sea salt ice-cream bar"
desc = "This sky-blue ice-cream bar is flavoured with only the finest imported sea salt. Salty... no, sweet!"
icon_state = "sea_salt_pop"
@@ -355,7 +355,7 @@
tastes = list("salt" = 1, "sweet" = 1)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/frozen/popsicle/ant
+/obj/item/food/frozen/popsicle/ant
name = "ant popsicle"
desc = "A colony of ants suspended in hardened sugar. Those things are dead, right?"
icon_state = "ant_pop"
diff --git a/code/modules/food_and_drinks/food/foods/ingredients.dm b/code/modules/food_and_drinks/food/foods/ingredients.dm
index ffb42057fad6..7e50a1667d3b 100644
--- a/code/modules/food_and_drinks/food/foods/ingredients.dm
+++ b/code/modules/food_and_drinks/food/foods/ingredients.dm
@@ -3,7 +3,7 @@
// Tofu & Soy //
//////////////////////
-/obj/item/food/snacks/tofu
+/obj/item/food/tofu
name = "tofu"
icon_state = "tofu"
desc = "We all love tofu."
@@ -13,7 +13,7 @@
tastes = list("tofu" = 1)
ingredient_name = "tofu chunk"
-/obj/item/food/snacks/fried_tofu
+/obj/item/food/fried_tofu
name = "fried tofu"
icon_state = "tofu"
desc = "Proof that even vegetarians crave unhealthy foods."
@@ -23,7 +23,7 @@
tastes = list("tofu" = 1)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/soydope
+/obj/item/food/soydope
name = "soy dope"
icon_state = "soydope"
desc = "Like regular dope, but for the health conscious consumer."
@@ -37,32 +37,32 @@
// Cheese //
//////////////////////
-/obj/item/food/snacks/sliceable/cheesewheel
+/obj/item/food/sliceable/cheesewheel
name = "cheese wheel"
desc = "A big wheel of delicious Cheddar."
icon_state = "cheesewheel"
- slice_path = /obj/item/food/snacks/cheesewedge
+ slice_path = /obj/item/food/cheesewedge
slices_num = 5
filling_color = "#FFF700"
list_reagents = list("nutriment" = 15, "vitamin" = 5, "cheese" = 20)
tastes = list("cheese" = 1)
-/obj/item/food/snacks/cheesewedge
+/obj/item/food/cheesewedge
name = "cheese wedge"
desc = "A wedge of delicious Cheddar. The cheese wheel it was cut from can't have gone far."
icon_state = "cheesewedge"
filling_color = "#FFF700"
tastes = list("cheese" = 1)
-/obj/item/food/snacks/cheesewedge/checkpass(passflag)
+/obj/item/food/cheesewedge/checkpass(passflag)
if((passflag & PASSDOOR) && ismouse(pulledby))
return TRUE
return ..()
-/obj/item/food/snacks/cheesewedge/presliced
+/obj/item/food/cheesewedge/presliced
list_reagents = list("nutriment" = 3, "vitamin" = 1, "cheese" = 4)
-/obj/item/food/snacks/weirdcheesewedge
+/obj/item/food/weirdcheesewedge
name = "weird cheese"
desc = "Some kind of... gooey, messy, gloopy thing. Similar to cheese, but only in the broad sense of the word."
icon_state = "weirdcheesewedge"
@@ -74,7 +74,7 @@
// Plants //
//////////////////////
-/obj/item/food/snacks/hugemushroomslice
+/obj/item/food/hugemushroomslice
name = "huge mushroom slice"
desc = "A slice from a huge mushroom."
icon_state = "hugemushroomslice"
@@ -83,14 +83,14 @@
list_reagents = list("plantmatter" = 3, "vitamin" = 1)
tastes = list("mushroom" = 1)
-/obj/item/food/snacks/watermelonslice
+/obj/item/food/watermelonslice
name = "watermelon slice"
desc = "A slice of watery goodness."
icon_state = "watermelonslice" // Sprite created by https://github.com/binarysudoku for Goonstation, They have relicensed it for our use.
filling_color = "#FF3867"
tastes = list("watermelon" = 1)
-/obj/item/food/snacks/tomatoslice
+/obj/item/food/tomatoslice
name = "tomato slice"
desc = "A fresh slice of tomato."
icon_state = "tomatoslice"
@@ -98,7 +98,7 @@
list_reagents = list("plantmatter" = 2)
tastes = list("tomato" = 1)
-/obj/item/food/snacks/pineappleslice
+/obj/item/food/pineappleslice
name = "pineapple slices"
desc = "Rings of pineapple."
icon_state = "pineappleslice" // Sprite created by https://github.com/binarysudoku for Goonstation, They have relicensed it for our use.
@@ -110,7 +110,7 @@
// Dough //
//////////////////////
-/obj/item/food/snacks/dough
+/obj/item/food/dough
name = "dough"
desc = "A piece of dough."
icon = 'icons/obj/food/food_ingredients.dmi'
@@ -119,10 +119,10 @@
tastes = list("dough" = 1)
// Dough + rolling pin = flat dough
-/obj/item/food/snacks/dough/attackby(obj/item/I, mob/user, params)
+/obj/item/food/dough/attackby(obj/item/I, mob/user, params)
if(istype(I, /obj/item/kitchen/rollingpin))
if(isturf(loc))
- new /obj/item/food/snacks/sliceable/flatdough(loc)
+ new /obj/item/food/sliceable/flatdough(loc)
to_chat(user, "You flatten [src].")
qdel(src)
else
@@ -131,18 +131,18 @@
..()
// slicable into 3xdoughslices
-/obj/item/food/snacks/sliceable/flatdough
+/obj/item/food/sliceable/flatdough
name = "flat dough"
desc = "Some flattened dough."
icon = 'icons/obj/food/food_ingredients.dmi'
icon_state = "flat dough"
- slice_path = /obj/item/food/snacks/doughslice
+ slice_path = /obj/item/food/doughslice
slices_num = 3
list_reagents = list("nutriment" = 6)
tastes = list("dough" = 1)
-/obj/item/food/snacks/doughslice
+/obj/item/food/doughslice
name = "dough slice"
desc = "The building block of an impressive dish."
icon = 'icons/obj/food/food_ingredients.dmi'
@@ -153,7 +153,7 @@
///cookies by Ume
-/obj/item/food/snacks/cookiedough
+/obj/item/food/cookiedough
var/flat = FALSE
name = "pastry dough"
icon = 'icons/obj/food/food_ingredients.dmi'
@@ -162,19 +162,19 @@
list_reagents = list("nutriment" = 5, "sugar" = 5)
tastes = list("dough" = 1, "sugar" = 1)
-/obj/item/food/snacks/cookiedough/update_name()
+/obj/item/food/cookiedough/update_name()
. = ..()
if(flat)
name = "flat pastry dough"
-/obj/item/food/snacks/cookiedough/update_icon_state()
+/obj/item/food/cookiedough/update_icon_state()
if(flat)
icon_state = "cookiedough_flat"
else
icon_state = "cookiedough"
// Dough + rolling pin = flat cookie dough // Flat dough + circular cutter = unbaked cookies
-/obj/item/food/snacks/cookiedough/attackby(obj/item/I, mob/user, params)
+/obj/item/food/cookiedough/attackby(obj/item/I, mob/user, params)
if(istype(I, /obj/item/kitchen/rollingpin) && !flat)
if(isturf(loc))
to_chat(user, "You flatten [src].")
@@ -184,7 +184,7 @@
to_chat(user, "You need to put [src] on a surface to roll it out!")
else if(istype(I, /obj/item/kitchen/cutter) && flat)
if(isturf(loc))
- new /obj/item/food/snacks/rawcookies(loc)
+ new /obj/item/food/rawcookies(loc)
to_chat(user, "You cut [src] into cookies.")
qdel(src)
else
@@ -193,17 +193,17 @@
return ..()
-/obj/item/food/snacks/rawcookies
+/obj/item/food/rawcookies
name = "raw cookies"
desc = "Ready for oven!"
icon = 'icons/obj/food/food_ingredients.dmi'
icon_state = "unbaked_cookies"
list_reagents = list("nutriment" = 5, "sugar" = 5)
-/obj/item/food/snacks/rawcookies/attackby(obj/item/I, mob/user, params)
- if(istype(I, /obj/item/food/snacks/choc_pile))
+/obj/item/food/rawcookies/attackby(obj/item/I, mob/user, params)
+ if(istype(I, /obj/item/food/choc_pile))
if(isturf(loc))
- new /obj/item/food/snacks/rawcookies/chocochips(loc)
+ new /obj/item/food/rawcookies/chocochips(loc)
to_chat(user, "You sprinkle [I] all over the cookies.")
qdel(src)
qdel(I)
@@ -212,7 +212,7 @@
else
return ..()
-/obj/item/food/snacks/rawcookies/chocochips
+/obj/item/food/rawcookies/chocochips
name = "raw cookies"
desc = "Ready for oven! They have little pieces of chocolate all over them"
icon = 'icons/obj/food/food_ingredients.dmi'
@@ -224,7 +224,7 @@
// Chocolate //
//////////////////////
-/obj/item/food/snacks/chocolatebar
+/obj/item/food/chocolatebar
name = "chocolate bar"
desc = "Such sweet, fattening food."
icon_state = "chocolatebar"
@@ -234,10 +234,10 @@
goal_difficulty = FOOD_GOAL_EASY
///Chocolate crumbles/pile
-/obj/item/food/snacks/chocolatebar/attackby(obj/item/I, mob/user, params)
+/obj/item/food/chocolatebar/attackby(obj/item/I, mob/user, params)
if(istype(I, /obj/item/kitchen/knife))
if(isturf(loc))
- new /obj/item/food/snacks/choc_pile(loc)
+ new /obj/item/food/choc_pile(loc)
to_chat(user, "You cut [src] into little crumbles.")
qdel(src)
else
@@ -247,7 +247,7 @@
/// for reagent chocolate being spilled on turfs
-/obj/item/food/snacks/choc_pile
+/obj/item/food/choc_pile
name = "pile of chocolate"
desc = "A pile of pure chocolate pieces."
icon_state = "cocoa"
@@ -260,7 +260,7 @@
// Misc //
//////////////////////
-/obj/item/food/snacks/ectoplasm
+/obj/item/food/ectoplasm
name = "ectoplasm"
desc = "A luminescent blob of what scientists refer to as 'ghost goo'."
icon = 'icons/obj/wizard.dmi'
diff --git a/code/modules/food_and_drinks/food/foods/junkfood.dm b/code/modules/food_and_drinks/food/foods/junkfood.dm
index f410d2db2ff6..0c3b1297b998 100644
--- a/code/modules/food_and_drinks/food/foods/junkfood.dm
+++ b/code/modules/food_and_drinks/food/foods/junkfood.dm
@@ -3,7 +3,7 @@
// Vendor //
//////////////////////
-/obj/item/food/snacks/chips
+/obj/item/food/chips
name = "chips"
desc = "Commander Riker's What-The-Crisps."
icon_state = "chips"
@@ -15,7 +15,7 @@
list_reagents = list("nutriment" = 1, "sodiumchloride" = 1, "sugar" = 3)
tastes = list("crisps" = 1)
-/obj/item/food/snacks/sosjerky
+/obj/item/food/sosjerky
name = "Scaredy's Private Reserve Beef Jerky"
icon_state = "sosjerky"
desc = "Beef jerky made from the finest space cows."
@@ -26,7 +26,7 @@
list_reagents = list("protein" = 1, "sugar" = 3)
tastes = list("chewy beef" = 1)
-/obj/item/food/snacks/pistachios
+/obj/item/food/pistachios
name = "pistachios"
icon_state = "pistachios"
desc = "Deliciously salted pistachios. A perfectly valid choice..."
@@ -37,7 +37,7 @@
list_reagents = list("plantmatter" = 2, "sodiumchloride" = 1, "sugar" = 4)
tastes = list("pistachios" = 1)
-/obj/item/food/snacks/no_raisin
+/obj/item/food/no_raisin
name = "4no Raisins"
icon_state = "4no_raisins"
desc = "Best raisins in the universe. Not sure why."
@@ -48,7 +48,7 @@
list_reagents = list("plantmatter" = 2, "sugar" = 4)
tastes = list("dried raisins" = 1)
-/obj/item/food/snacks/spacetwinkie
+/obj/item/food/spacetwinkie
name = "Space Twinkie"
icon_state = "space_twinkie"
desc = "Guaranteed to survive longer then you will."
@@ -58,7 +58,7 @@
list_reagents = list("sugar" = 4)
tastes = list("twinkies" = 1)
-/obj/item/food/snacks/cheesiehonkers
+/obj/item/food/cheesiehonkers
name = "Cheesie Honkers"
icon_state = "cheesie_honkers"
desc = "Bite sized cheesie snacks that will honk all over your mouth."
@@ -69,7 +69,7 @@
list_reagents = list("nutriment" = 1, "fake_cheese" = 2, "sugar" = 3)
tastes = list("cheese" = 1, "crisps" = 2)
-/obj/item/food/snacks/syndicake
+/obj/item/food/syndicake
name = "Syndi-Cakes"
icon_state = "syndi_cakes"
desc = "An extremely moist snack cake that tastes just as good after being nuked."
@@ -80,7 +80,7 @@
list_reagents = list("nutriment" = 4, "salglu_solution" = 5)
tastes = list("sweetness" = 3, "cake" = 1)
-/obj/item/food/snacks/tastybread
+/obj/item/food/tastybread
name = "bread tube"
desc = "Bread in a tube. Chewy and surprisingly tasty."
icon_state = "tastybread"
@@ -91,7 +91,7 @@
list_reagents = list("nutriment" = 2, "sugar" = 4)
tastes = list("bread" = 1)
-/obj/item/food/snacks/stroopwafel
+/obj/item/food/stroopwafel
name = "stroopwafel"
desc = "Straight from the snack factories of Space Den Haag comes a classic dutch treat!"
icon_state = "stroopwafel"
@@ -100,7 +100,7 @@
list_reagents = list("nutriment" = 10, "sugar" = 4)
tastes = list("syrup" = 3, "waffle" = 2)
-/obj/item/food/snacks/twimsts
+/obj/item/food/twimsts
name = "Twimsts"
desc = "Sweet twisted sticks made of liquorice, can be used to make edible handcuffs!"
icon_state = "twimsts"
@@ -111,7 +111,7 @@
list_reagents = list("nutriment" = 2, "sugar" = 10)
tastes = list("sweetness" = 3, "liquorice" = 2)
-/obj/item/food/snacks/twimsts/attack_self(mob/user)
+/obj/item/food/twimsts/attack_self(mob/user)
var/obj/item/restraints/handcuffs/twimsts/L = new /obj/item/restraints/handcuffs/twimsts
L.create_reagents(100)
reagents.copy_to(L, reagents.total_volume)
@@ -125,13 +125,13 @@
// Homemade //
//////////////////////
-/obj/item/food/snacks/sosjerky/healthy
+/obj/item/food/sosjerky/healthy
name = "homemade beef jerky"
desc = "Homemade beef jerky made from the finest space cows."
list_reagents = list("nutriment" = 3, "vitamin" = 1)
junkiness = 0
-/obj/item/food/snacks/no_raisin/healthy
+/obj/item/food/no_raisin/healthy
name = "homemade raisins"
desc = "homemade raisins, the best in all of spess."
list_reagents = list("nutriment" = 3, "vitamin" = 2)
diff --git a/code/modules/food_and_drinks/food/foods/meat.dm b/code/modules/food_and_drinks/food/foods/meat.dm
index 348e0afdf362..0ad16bc77f52 100644
--- a/code/modules/food_and_drinks/food/foods/meat.dm
+++ b/code/modules/food_and_drinks/food/foods/meat.dm
@@ -3,7 +3,7 @@
// Raw Meat //
//////////////////////
-/obj/item/food/snacks/meat
+/obj/item/food/meat
name = "meat"
desc = "A slab of meat."
icon = 'icons/obj/food/meat.dmi'
@@ -15,11 +15,11 @@
ingredient_name = "slab of meat"
ingredient_name_plural = "slabs of meat"
-/obj/item/food/snacks/meat/attackby(obj/item/W, mob/user, params)
+/obj/item/food/meat/attackby(obj/item/W, mob/user, params)
if(istype(W, /obj/item/kitchen/knife) || istype(W, /obj/item/scalpel))
- new /obj/item/food/snacks/rawcutlet(src)
- new /obj/item/food/snacks/rawcutlet(src)
- new /obj/item/food/snacks/rawcutlet(src)
+ new /obj/item/food/rawcutlet(src)
+ new /obj/item/food/rawcutlet(src)
+ new /obj/item/food/rawcutlet(src)
user.visible_message( \
"[user] cuts [src] with [W]!", \
"You cut [src] with [W]!" \
@@ -28,53 +28,53 @@
else
..()
-/obj/item/food/snacks/meat/syntiflesh
+/obj/item/food/meat/syntiflesh
name = "synthetic meat"
desc = "A synthetic slab of flesh."
-/obj/item/food/snacks/meat/human
+/obj/item/food/meat/human
name = "-meat"
var/subjectname = ""
var/subjectjob = null
tastes = list("salty meat" = 1)
-/obj/item/food/snacks/meat/slab/meatproduct
+/obj/item/food/meat/slab/meatproduct
name = "meat product"
desc = "A slab of reclaimed and chemically processed meat product."
-/obj/item/food/snacks/meat/slab/gorilla
+/obj/item/food/meat/slab/gorilla
name = "gorilla meat"
desc = "Much meatier than monkey meat."
list_reagents = list("nutriment" = 5, "vitamin" = 1)
-/obj/item/food/snacks/meat/kangaroo
+/obj/item/food/meat/kangaroo
name = "kangaroo meat"
desc = "Extremely muscular and tender meat."
list_reagents = list("protein" = 4, "iron" = 5, "vitamin" = 1)
tastes = list("a punch in the face" = 1, "fowl" = 3)
-/obj/item/food/snacks/meat/monkey
+/obj/item/food/meat/monkey
//same as plain meat
-/obj/item/food/snacks/meat/corgi
+/obj/item/food/meat/corgi
name = "corgi meat"
desc = "Tastes like the Head of Personnel's hopes and dreams."
-/obj/item/food/snacks/meat/pug
+/obj/item/food/meat/pug
name = "pug meat"
desc = "Slightly less adorable in sliced form."
-/obj/item/food/snacks/meat/ham
+/obj/item/food/meat/ham
name = "ham"
desc = "For when you need to go ham."
list_reagents = list("protein" = 3, "porktonium" = 10)
-/obj/item/food/snacks/meat/chicken
+/obj/item/food/meat/chicken
name = "chicken meat"
desc = "Cluck cluck!"
icon_state = "birdmeat"
-/obj/item/food/snacks/meat/meatwheat
+/obj/item/food/meat/meatwheat
name = "meatwheat clump"
desc = "This doesn't look like meat, but your standards aren't that high to begin with."
list_reagents = list("nutriment" = 3, "vitamin" = 2, "blood" = 5)
@@ -82,7 +82,7 @@
icon_state = "meatwheat_clump"
bitesize = 4
-/obj/item/food/snacks/meat/tomatomeat
+/obj/item/food/meat/tomatomeat
name = "tomato meat slice"
desc = "A slice from a huge tomato."
icon_state = "tomatomeat"
@@ -91,7 +91,7 @@
list_reagents = list("protein" = 2)
tastes = list("tomato" = 1)
-/obj/item/food/snacks/rawcutlet
+/obj/item/food/rawcutlet
name = "raw cutlet"
desc = "A thin strip of raw meat."
icon = 'icons/obj/food/food_ingredients.dmi'
@@ -99,13 +99,13 @@
bitesize = 1
list_reagents = list("protein" = 1)
-/obj/item/food/snacks/rawcutlet/attackby(obj/item/W, mob/user, params)
+/obj/item/food/rawcutlet/attackby(obj/item/W, mob/user, params)
if(istype(W, /obj/item/kitchen/knife) || istype(W, /obj/item/scalpel))
user.visible_message( \
"[user] cuts the raw cutlet with [W]!", \
"You cut the raw cutlet with [W]!" \
)
- var/obj/item/food/snacks/raw_bacon/bacon = new(get_turf(src))
+ var/obj/item/food/raw_bacon/bacon = new(get_turf(src))
if(ishuman(loc))
var/mob/living/carbon/human/H = loc
qdel(src)
@@ -119,7 +119,7 @@
// Cannot be used in the usual meat-based food recipies but can be used as cloning pod biomass.
-/obj/item/food/snacks/monstermeat
+/obj/item/food/monstermeat
// Abstract object used for inheritance. I don't see why you would want one.
// It's just a convenience to set all monstermeats as biomass-able at once,
// in the GLOB.cloner_biomass_items list.
@@ -129,7 +129,7 @@
icon = 'icons/obj/food/meat.dmi'
icon_state = "bearmeat"
-/obj/item/food/snacks/monstermeat/bearmeat
+/obj/item/food/monstermeat/bearmeat
name = "bear meat"
desc = "A very manly slab of meat."
icon_state = "bearmeat"
@@ -138,7 +138,7 @@
list_reagents = list("protein" = 12, "methamphetamine" = 5, "vitamin" = 2)
tastes = list("meat" = 1, "salmon" = 1)
-/obj/item/food/snacks/monstermeat/xenomeat
+/obj/item/food/monstermeat/xenomeat
name = "meat"
desc = "A slab of meat. It's green!"
icon_state = "xenomeat"
@@ -147,7 +147,7 @@
list_reagents = list("protein" = 3, "vitamin" = 1)
tastes = list("meat" = 1, "acid" = 1)
-/obj/item/food/snacks/monstermeat/spidermeat
+/obj/item/food/monstermeat/spidermeat
name = "spider meat"
desc = "A slab of spider meat. Not very appetizing."
icon_state = "spidermeat"
@@ -155,7 +155,7 @@
list_reagents = list("protein" = 3, "toxin" = 3, "vitamin" = 1)
tastes = list("cobwebs" = 1)
-/obj/item/food/snacks/monstermeat/lizardmeat
+/obj/item/food/monstermeat/lizardmeat
name = "mutant lizard meat"
desc = "A peculiar slab of meat. It looks scaly and radioactive."
icon_state = "xenomeat"
@@ -164,14 +164,14 @@
list_reagents = list("protein" = 3, "toxin" = 3)
tastes = list("tough meat" = 1)
-/obj/item/food/snacks/monstermeat/spiderleg
+/obj/item/food/monstermeat/spiderleg
name = "spider leg"
desc = "A still twitching leg of a giant spider. You don't really want to eat this, do you?"
icon_state = "spiderleg"
list_reagents = list("protein" = 2, "toxin" = 2)
tastes = list("cobwebs" = 1, "creepy motion" = 1)
-/obj/item/food/snacks/raw_bacon
+/obj/item/food/raw_bacon
name = "raw bacon"
desc = "God's gift to man in uncooked form."
icon = 'icons/obj/food/meat.dmi'
@@ -179,30 +179,30 @@
list_reagents = list("nutriment" = 1, "porktonium" = 10)
tastes = list("bacon" = 1)
-/obj/item/food/snacks/monstermeat/spidereggs
+/obj/item/food/monstermeat/spidereggs
name = "spider eggs"
desc = "A cluster of juicy spider eggs. A great side dish for when you don't care about your health."
icon_state = "spidereggs"
list_reagents = list("protein" = 2, "toxin" = 2)
tastes = list("cobwebs" = 1, "spider juice" = 1)
-/obj/item/food/snacks/monstermeat/goliath
+/obj/item/food/monstermeat/goliath
name = "goliath meat"
desc = "A slab of goliath meat. It's not very edible now, but it cooks great in lava."
icon_state = "goliathmeat"
list_reagents = list("protein" = 3, "toxin" = 5)
tastes = list("tough meat" = 1)
-/obj/item/food/snacks/monstermeat/goliath/burn()
+/obj/item/food/monstermeat/goliath/burn()
visible_message("[src] finishes cooking!")
- new /obj/item/food/snacks/goliath_steak(loc)
+ new /obj/item/food/goliath_steak(loc)
qdel(src)
//////////////////////
// Cooked Meat //
//////////////////////
-/obj/item/food/snacks/meatsteak
+/obj/item/food/meatsteak
name = "meat steak"
desc = "A piece of hot spicy meat."
icon = 'icons/obj/food/meat.dmi'
@@ -214,13 +214,13 @@
tastes = list("meat" = 1)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/meatsteak/chicken
+/obj/item/food/meatsteak/chicken
name = "cooked chicken"
desc = "Cluck cluck!"
icon_state = "birdsteak"
tastes = list("chicken" = 1, "meat" = 1)
-/obj/item/food/snacks/bacon
+/obj/item/food/bacon
name = "bacon"
desc = "It looks crispy and tastes amazing! Mmm... Bacon."
icon = 'icons/obj/food/meat.dmi'
@@ -229,7 +229,7 @@
tastes = list("bacon" = 1)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/telebacon
+/obj/item/food/telebacon
name = "tele bacon"
desc = "It tastes a little odd but it's still delicious."
icon = 'icons/obj/food/meat.dmi'
@@ -239,21 +239,21 @@
tastes = list("bacon" = 1)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/telebacon/Initialize(mapload)
+/obj/item/food/telebacon/Initialize(mapload)
. = ..()
baconbeacon = new /obj/item/beacon/bacon(src)
-/obj/item/food/snacks/telebacon/Destroy()
+/obj/item/food/telebacon/Destroy()
QDEL_NULL(baconbeacon)
return ..()
-/obj/item/food/snacks/telebacon/On_Consume(mob/M, mob/user)
+/obj/item/food/telebacon/On_Consume(mob/M, mob/user)
if(!reagents.total_volume)
baconbeacon.forceMove(user)
baconbeacon.digest_delay()
baconbeacon = null
-/obj/item/food/snacks/meatball
+/obj/item/food/meatball
name = "meatball"
desc = "A great meal all round."
icon = 'icons/obj/food/meat.dmi'
@@ -262,7 +262,7 @@
list_reagents = list("protein" = 4, "vitamin" = 1)
tastes = list("meat" = 1)
-/obj/item/food/snacks/sausage
+/obj/item/food/sausage
name = "sausage"
desc = "A piece of mixed and cased meat."
icon = 'icons/obj/food/meat.dmi'
@@ -272,7 +272,7 @@
tastes = list("meat" = 1)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/cutlet
+/obj/item/food/cutlet
name = "cutlet"
desc = "A tasty meat slice."
icon = 'icons/obj/food/food_ingredients.dmi'
@@ -281,7 +281,7 @@
tastes = list("meat" = 1)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/spidereggsham
+/obj/item/food/spidereggsham
name = "green eggs and ham"
desc = "Would you eat them on a train? Would you eat them on a plane? Would you eat them on a state of the art corporate deathtrap floating through space?"
icon = 'icons/obj/food/meat.dmi'
@@ -292,7 +292,7 @@
tastes = list("cobwebs" = 1, "the colour green" = 1)
goal_difficulty = FOOD_GOAL_EXCESSIVE
-/obj/item/food/snacks/boiledspiderleg
+/obj/item/food/boiledspiderleg
name = "boiled spider leg"
desc = "A giant spider's leg that's still twitching after being cooked. Gross!"
icon = 'icons/obj/food/meat.dmi'
@@ -303,7 +303,7 @@
tastes = list("cobwebs" = 1, "hot peppers" = 1)
goal_difficulty = FOOD_GOAL_EXCESSIVE
-/obj/item/food/snacks/wingfangchu
+/obj/item/food/wingfangchu
name = "wing fang chu"
desc = "A savory dish of alien wing wang in soy. Wait, what?"
icon = 'icons/obj/food/soupsalad.dmi'
@@ -314,7 +314,7 @@
tastes = list("soy" = 1)
goal_difficulty = FOOD_GOAL_EXCESSIVE
-/obj/item/food/snacks/goliath_steak
+/obj/item/food/goliath_steak
name = "goliath steak"
desc = "A delicious, lava cooked steak."
resistance_flags = LAVA_PROOF | FIRE_PROOF
@@ -325,7 +325,7 @@
tastes = list("meat" = 1)
goal_difficulty = FOOD_GOAL_EXCESSIVE
-/obj/item/food/snacks/fried_vox
+/obj/item/food/fried_vox
name = "Kentucky Fried Vox"
desc = "Bucket of voxxy, yaya!"
icon = 'icons/obj/food/meat.dmi'
@@ -339,7 +339,7 @@
// Cubes //
//////////////////////
-/obj/item/food/snacks/monkeycube
+/obj/item/food/monkeycube
name = "monkey cube"
desc = "Just add water!"
icon_state = "monkeycube"
@@ -350,17 +350,17 @@
list_reagents = list("nutriment" = 2)
tastes = list("the jungle" = 1, "bananas" = 1)
-/obj/item/food/snacks/monkeycube/water_act(volume, temperature, source, method = REAGENT_TOUCH)
+/obj/item/food/monkeycube/water_act(volume, temperature, source, method = REAGENT_TOUCH)
. = ..()
if(volume >= 1)
return Expand()
-/obj/item/food/snacks/monkeycube/wash(mob/user, atom/source)
+/obj/item/food/monkeycube/wash(mob/user, atom/source)
user.drop_item()
forceMove(get_turf(source))
return 1
-/obj/item/food/snacks/monkeycube/proc/Expand()
+/obj/item/food/monkeycube/proc/Expand()
if(LAZYLEN(SSmobs.cubemonkeys) >= GLOB.configuration.general.monkey_cube_cap)
return
if(!QDELETED(src))
@@ -380,26 +380,26 @@
SSmobs.cubemonkeys += creature
qdel(src)
-/obj/item/food/snacks/monkeycube/syndicate
+/obj/item/food/monkeycube/syndicate
faction = list("neutral", "syndicate")
-/obj/item/food/snacks/monkeycube/farwacube
+/obj/item/food/monkeycube/farwacube
name = "farwa cube"
monkey_type = /datum/species/monkey/tajaran
-/obj/item/food/snacks/monkeycube/wolpincube
+/obj/item/food/monkeycube/wolpincube
name = "wolpin cube"
monkey_type = /datum/species/monkey/vulpkanin
-/obj/item/food/snacks/monkeycube/nian_wormecube
+/obj/item/food/monkeycube/nian_wormecube
name = "nian worme cube"
monkey_type = /datum/species/monkey/nian_worme
-/obj/item/food/snacks/monkeycube/stokcube
+/obj/item/food/monkeycube/stokcube
name = "stok cube"
monkey_type = /datum/species/monkey/unathi
-/obj/item/food/snacks/monkeycube/neaeracube
+/obj/item/food/monkeycube/neaeracube
name = "neaera cube"
monkey_type = /datum/species/monkey/skrell
@@ -408,7 +408,7 @@
// Eggs //
//////////////////////
-/obj/item/food/snacks/egg
+/obj/item/food/egg
name = "egg"
desc = "An egg!"
icon = 'icons/obj/food/breakfast.dmi'
@@ -418,7 +418,7 @@
tastes = list("egg" = 1)
var/amount_grown = 0
-/obj/item/food/snacks/egg/throw_impact(atom/hit_atom)
+/obj/item/food/egg/throw_impact(atom/hit_atom)
..()
var/turf/T = get_turf(hit_atom)
new/obj/effect/decal/cleanable/egg_smudge(T)
@@ -426,7 +426,7 @@
reagents.reaction(hit_atom, REAGENT_TOUCH)
qdel(src)
-/obj/item/food/snacks/egg/attackby(obj/item/W, mob/user, params)
+/obj/item/food/egg/attackby(obj/item/W, mob/user, params)
if(istype(W, /obj/item/toy/crayon))
var/obj/item/toy/crayon/C = W
var/clr = C.colourName
@@ -441,49 +441,49 @@
else
..()
-/obj/item/food/snacks/egg/blue
+/obj/item/food/egg/blue
icon_state = "egg-blue"
item_color = "blue"
-/obj/item/food/snacks/egg/green
+/obj/item/food/egg/green
icon_state = "egg-green"
item_color = "green"
-/obj/item/food/snacks/egg/mime
+/obj/item/food/egg/mime
icon_state = "egg-mime"
item_color = "mime"
-/obj/item/food/snacks/egg/orange
+/obj/item/food/egg/orange
icon_state = "egg-orange"
item_color = "orange"
-/obj/item/food/snacks/egg/purple
+/obj/item/food/egg/purple
icon_state = "egg-purple"
item_color = "purple"
-/obj/item/food/snacks/egg/rainbow
+/obj/item/food/egg/rainbow
icon_state = "egg-rainbow"
item_color = "rainbow"
-/obj/item/food/snacks/egg/red
+/obj/item/food/egg/red
icon_state = "egg-red"
item_color = "red"
-/obj/item/food/snacks/egg/yellow
+/obj/item/food/egg/yellow
icon_state = "egg-yellow"
item_color = "yellow"
-/obj/item/food/snacks/egg/gland
+/obj/item/food/egg/gland
desc = "An egg! It looks weird..."
-/obj/item/food/snacks/egg/gland/Initialize(mapload)
+/obj/item/food/egg/gland/Initialize(mapload)
. = ..()
reagents.add_reagent(get_random_reagent_id(), 15)
var/reagent_color = mix_color_from_reagents(reagents.reagent_list)
color = reagent_color
-/obj/item/food/snacks/friedegg
+/obj/item/food/friedegg
name = "fried egg"
desc = "A fried egg, with a touch of salt and pepper."
icon = 'icons/obj/food/breakfast.dmi'
@@ -494,7 +494,7 @@
tastes = list("egg" = 1, "salt" = 1, "pepper" = 1)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/boiledegg
+/obj/item/food/boiledegg
name = "boiled egg"
desc = "A hard boiled egg."
icon = 'icons/obj/food/breakfast.dmi'
@@ -503,7 +503,7 @@
list_reagents = list("nutriment" = 2, "egg" = 5, "vitamin" = 1)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/chocolateegg
+/obj/item/food/chocolateegg
name = "chocolate egg"
desc = "Such sweet, fattening food."
icon = 'icons/obj/food/breakfast.dmi'
@@ -512,7 +512,7 @@
list_reagents = list("nutriment" = 4, "sugar" = 2, "cocoa" = 2)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/omelette
+/obj/item/food/omelette
name = "omelette du fromage"
desc = "That's all you can say!"
icon = 'icons/obj/food/breakfast.dmi'
@@ -524,7 +524,7 @@
tastes = list("egg" = 1, "cheese" = 1)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/benedict
+/obj/item/food/benedict
name = "eggs benedict"
desc = "There is only one egg on this, how rude."
icon = 'icons/obj/food/breakfast.dmi'
@@ -539,7 +539,7 @@
// Misc //
//////////////////////
-/obj/item/food/snacks/hotdog
+/obj/item/food/hotdog
name = "hotdog"
desc = "Not made with actual dogs. Hopefully."
icon = 'icons/obj/food/burgerbread.dmi'
@@ -549,7 +549,7 @@
tastes = list("bun" = 3, "meat" = 2)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/meatbun
+/obj/item/food/meatbun
name = "meat bun"
desc = "Has the potential to not be dog."
icon = 'icons/obj/food/meat.dmi'
@@ -559,18 +559,18 @@
tastes = list("bun" = 3, "meat" = 2)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/sliceable/turkey
+/obj/item/food/sliceable/turkey
name = "turkey"
desc = "A traditional turkey served with stuffing."
icon = 'icons/obj/food/meat.dmi'
icon_state = "turkey"
- slice_path = /obj/item/food/snacks/turkeyslice
+ slice_path = /obj/item/food/turkeyslice
slices_num = 6
list_reagents = list("protein" = 24, "nutriment" = 18, "vitamin" = 5)
tastes = list("turkey" = 2, "stuffing" = 2)
goal_difficulty = FOOD_GOAL_DUPLICATE
-/obj/item/food/snacks/turkeyslice
+/obj/item/food/turkeyslice
name = "turkey serving"
desc = "A serving of some tender and delicious turkey."
icon = 'icons/obj/food/meat.dmi'
@@ -580,7 +580,7 @@
tastes = list("turkey" = 1)
goal_difficulty = FOOD_GOAL_EASY
-/obj/item/food/snacks/organ
+/obj/item/food/organ
name = "organ"
desc = "Technically qualifies as organic."
icon = 'icons/obj/surgery.dmi'
@@ -589,11 +589,11 @@
bitesize = 3
list_reagents = list("protein" = 4, "vitamin" = 4)
-/obj/item/food/snacks/organ/Initialize(mapload)
+/obj/item/food/organ/Initialize(mapload)
. = ..()
reagents.add_reagent("nutriment", 5)
-/obj/item/food/snacks/appendix
+/obj/item/food/appendix
//yes, this is the same as meat. I might do something different in future
name = "appendix"
desc = "An appendix which looks perfectly healthy."
@@ -603,13 +603,13 @@
bitesize = 3
list_reagents = list("protein" = 3, "vitamin" = 2)
-/obj/item/food/snacks/appendix/inflamed
+/obj/item/food/appendix/inflamed
name = "inflamed appendix"
desc = "An appendix which appears to be inflamed."
icon_state = "appendixinflamed"
filling_color = "#E00D7A"
-/obj/item/food/snacks/bbqribs
+/obj/item/food/bbqribs
name = "BBQ ribs"
desc = "Sweet, smokey, savory, and gets everywhere. Perfect for Grilling."
icon = 'icons/obj/food/meat.dmi'
diff --git a/code/modules/food_and_drinks/food/foods/misc_food.dm b/code/modules/food_and_drinks/food/foods/misc_food.dm
index 7316b43e9b2f..186ba7336694 100644
--- a/code/modules/food_and_drinks/food/foods/misc_food.dm
+++ b/code/modules/food_and_drinks/food/foods/misc_food.dm
@@ -3,7 +3,7 @@
// Meals //
//////////////////////
-/obj/item/food/snacks/eggplantparm
+/obj/item/food/eggplantparm
name = "eggplant parmigiana"
desc = "The only good recipe for eggplant."
icon_state = "eggplantparm"
@@ -13,7 +13,7 @@
tastes = list("eggplant" = 2, "cheese" = 2)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/soylentgreen
+/obj/item/food/soylentgreen
name = "soylent green"
desc = "Not made of people. Honest." //Totally people.
icon_state = "soylent_green"
@@ -22,7 +22,7 @@
list_reagents = list("nutriment" = 10, "vitamin" = 1)
tastes = list("waffles" = 7, "people" = 1)
-/obj/item/food/snacks/soylentviridians
+/obj/item/food/soylentviridians
name = "soylent virdians"
desc = "Not made of people. Honest." //Actually honest for once.
icon_state = "soylent_yellow"
@@ -32,7 +32,7 @@
tastes = list("waffles" = 1)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/monkeysdelight
+/obj/item/food/monkeysdelight
name = "monkey's delight"
desc = "Eeee Eee!"
icon_state = "monkeysdelight"
@@ -43,7 +43,7 @@
tastes = list("banana" = 1, "the jungle" = 1)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/dionaroast
+/obj/item/food/dionaroast
name = "roast diona"
desc = "It's like an enormous leathery carrot... With an eye."
icon_state = "dionaroast"
@@ -53,7 +53,7 @@
tastes = list("chewy vegetables" = 1)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/tofurkey
+/obj/item/food/tofurkey
name = "tofurkey"
desc = "A fake turkey made from tofu."
icon_state = "tofurkey"
@@ -68,7 +68,7 @@
// Salads //
//////////////////////
-/obj/item/food/snacks/salad
+/obj/item/food/salad
name = "salad"
desc = "This salad is blander than the jokes of the clown, but is also low in carbohydrates!"
icon = 'icons/obj/food/soupsalad.dmi'
@@ -80,7 +80,7 @@
tastes = list("lettuce" = 1)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/salad/aesir
+/obj/item/food/salad/aesir
name = "aesir salad"
desc = "Probably too incredible for mortal men to fully enjoy."
icon_state = "aesirsalad"
@@ -88,7 +88,7 @@
tastes = list("divinity" = 1, "lettuce" = 1)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/salad/antipasto
+/obj/item/food/salad/antipasto
name = "antipasto salad"
desc = "A traditional Italian salad made of salami, mozzarella cheese, olives, and tomatoes. Often served as a first course meal."
icon_state = "antipasto_salad"
@@ -96,7 +96,7 @@
tastes = list("lettuce" = 2, "salami" = 2, "mozzarella cheese" = 2, "tomatoes" = 2, "dressing" = 1)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/salad/caesar
+/obj/item/food/salad/caesar
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"
@@ -104,7 +104,7 @@
tastes = list("healthy greens" = 2, "olive dressing" = 2, "feta cheese" = 2, "pita bread" = 1)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/salad/fruit
+/obj/item/food/salad/fruit
name = "fruit salad"
desc = "Your standard fruit salad."
icon_state = "fruitsalad"
@@ -112,7 +112,7 @@
tastes = list("fruit" = 1)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/salad/greek
+/obj/item/food/salad/greek
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"
@@ -120,7 +120,7 @@
tastes = list("healthy greens" = 2, "olive dressing" = 1, "feta cheese" = 1)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/salad/citrusdelight
+/obj/item/food/salad/citrusdelight
name = "citrus delight"
desc = "Citrus overload!"
icon_state = "citrusdelight"
@@ -128,7 +128,7 @@
tastes = list("sourness" = 1, "leaves" = 1)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/salad/jungle
+/obj/item/food/salad/jungle
name = "jungle salad"
desc = "Exotic fruits in a bowl."
icon_state = "junglesalad"
@@ -136,7 +136,7 @@
tastes = list("fruit" = 1, "the jungle" = 1)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/salad/kale
+/obj/item/food/salad/kale
name = "kale salad"
desc = "A healthy kale salad drizzled in oil, perfect for warm summer months."
icon_state = "kale_salad"
@@ -144,7 +144,7 @@
tastes = list("healthy greens" = 2, "olive dressing" = 1)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/salad/potato
+/obj/item/food/salad/potato
name = "potato salad"
desc = "A dish of boiled potatoes mixed with boiled eggs, onions, and mayonnaise. A staple of every self-respecting barbeque."
icon_state = "potato_salad"
@@ -152,7 +152,7 @@
tastes = list("potato" = 2, "egg" = 2, "mayonnaise" = 2)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/salad/melonfruitbowl
+/obj/item/food/salad/melonfruitbowl
name = "melon fruit bowl"
desc = "For people who wants edible fruit bowls."
icon_state = "melonfruitbowl"
@@ -161,7 +161,7 @@
tastes = list("melon" = 1)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/salad/herb
+/obj/item/food/salad/herb
name = "herb salad"
desc = "A tasty salad with apples on top."
icon_state = "herbsalad"
@@ -170,7 +170,7 @@
tastes = list("lettuce" = 1, "apple" = 1)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/salad/valid
+/obj/item/food/salad/valid
name = "valid salad"
desc = "It's just an herb salad with meatballs and fried potato slices. Nothing suspicious about it."
icon_state = "validsalad"
@@ -184,7 +184,7 @@
// Donk Pockets //
//////////////////////
-/obj/item/food/snacks/donkpocket
+/obj/item/food/donkpocket
name = "Donk-pocket"
desc = "The food of choice for the seasoned traitor."
icon_state = "donkpocket"
@@ -193,7 +193,7 @@
tastes = list("meat" = 2, "dough" = 2, "laziness" = 1)
ingredient_name = "turnover"
-/obj/item/food/snacks/warmdonkpocket
+/obj/item/food/warmdonkpocket
name = "warm Donk-pocket"
desc = "The food of choice for the seasoned traitor."
icon_state = "donkpocket"
@@ -209,20 +209,20 @@
/// This tracks how much time the donk pocket has already been cooling for when its timer is paused
var/subtracted_time = 0
-/obj/item/food/snacks/warmdonkpocket/Initialize(mapload)
+/obj/item/food/warmdonkpocket/Initialize(mapload)
. = ..()
donk_heat()
-/obj/item/food/snacks/warmdonkpocket/proc/donk_heat()
+/obj/item/food/warmdonkpocket/proc/donk_heat()
heated_at = world.time
cool_timer = addtimer(CALLBACK(src, PROC_REF(donk_cool)), 7 MINUTES - subtracted_time, TIMER_UNIQUE|TIMER_STOPPABLE)
-/obj/item/food/snacks/warmdonkpocket/proc/donk_cool()
+/obj/item/food/warmdonkpocket/proc/donk_cool()
name = "cold Donk-pocket"
desc = "The food of choice for the seasoned traitor. This one is cold."
warm = FALSE
-/obj/item/food/snacks/warmdonkpocket/on_enter_storage(obj/item/storage/S)
+/obj/item/food/warmdonkpocket/on_enter_storage(obj/item/storage/S)
. = ..()
if(!cool_timer)
return
@@ -231,25 +231,25 @@
subtracted_time += (world.time - heated_at)
cool_timer = null
-/obj/item/food/snacks/warmdonkpocket/on_exit_storage(obj/item/storage/S)
+/obj/item/food/warmdonkpocket/on_exit_storage(obj/item/storage/S)
. = ..()
if(warm)
donk_heat()
-/obj/item/food/snacks/warmdonkpocket/Post_Consume(mob/living/M)
+/obj/item/food/warmdonkpocket/Post_Consume(mob/living/M)
if(warm)
M.reagents.add_reagent("omnizine", 15)
return
M.reagents.add_reagent("weak_omnizine", 5)
-/obj/item/food/snacks/warmdonkpocket_weak
+/obj/item/food/warmdonkpocket_weak
name = "lukewarm Donk-pocket"
desc = "The food of choice for the seasoned traitor. This one is lukewarm."
icon_state = "donkpocket"
filling_color = "#DEDEAB"
list_reagents = list("nutriment" = 4, "weak_omnizine" = 3)
-/obj/item/food/snacks/syndidonkpocket
+/obj/item/food/syndidonkpocket
name = "Donk-pocket"
desc = "This donk-pocket is emitting a small amount of heat."
icon_state = "donkpocket"
@@ -257,7 +257,7 @@
bitesize = 100 //nom the whole thing at once.
list_reagents = list("nutriment" = 1)
-/obj/item/food/snacks/syndidonkpocket/Post_Consume(mob/living/M)
+/obj/item/food/syndidonkpocket/Post_Consume(mob/living/M)
M.reagents.add_reagent("omnizine", 15)
M.reagents.add_reagent("teporone", 15)
M.reagents.add_reagent("synaptizine", 15)
@@ -271,7 +271,7 @@
// Misc //
//////////////////////
-/obj/item/food/snacks/boiledslimecore
+/obj/item/food/boiledslimecore
name = "boiled slime core"
desc = "A boiled red thing."
icon_state = "boiledrorocore"
@@ -280,7 +280,7 @@
tastes = list("jelly" = 1)
goal_difficulty = FOOD_GOAL_EXCESSIVE
-/obj/item/food/snacks/popcorn
+/obj/item/food/popcorn
name = "popcorn"
desc = "Now let's find some cinema."
icon_state = "popcorn"
@@ -293,17 +293,17 @@
tastes = list("popcorn" = 3, "butter" = 1)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/popcorn/Initialize(mapload)
+/obj/item/food/popcorn/Initialize(mapload)
. = ..()
unpopped = rand(1,10)
-/obj/item/food/snacks/popcorn/On_Consume(mob/M, mob/user)
+/obj/item/food/popcorn/On_Consume(mob/M, mob/user)
if(prob(unpopped)) //lol ...what's the point?
to_chat(user, "You bite down on an un-popped kernel!")
unpopped = max(0, unpopped-1)
..()
-/obj/item/food/snacks/liquidfood
+/obj/item/food/liquidfood
name = "\improper LiquidFood ration"
desc = "A prepackaged grey slurry of all the essential nutrients for a spacefarer on the go. Should this be crunchy?"
icon_state = "liquidfood"
diff --git a/code/modules/food_and_drinks/food/foods/pasta.dm b/code/modules/food_and_drinks/food/foods/pasta.dm
index e8aadb6ce29d..b23cbe0a6958 100644
--- a/code/modules/food_and_drinks/food/foods/pasta.dm
+++ b/code/modules/food_and_drinks/food/foods/pasta.dm
@@ -3,7 +3,7 @@
// Raw Pasta //
//////////////////////
-/obj/item/food/snacks/spaghetti
+/obj/item/food/spaghetti
name = "spaghetti"
desc = "A bundle of raw spaghetti."
icon = 'icons/obj/food/pasta.dmi'
@@ -12,7 +12,7 @@
list_reagents = list("nutriment" = 1, "vitamin" = 1)
tastes = list("raw pasta" = 1)
-/obj/item/food/snacks/macaroni
+/obj/item/food/macaroni
name = "macaroni twists"
desc = "These are little twists of raw macaroni."
icon = 'icons/obj/food/pasta.dmi'
@@ -26,7 +26,7 @@
// Pasta Dishes //
//////////////////////
-/obj/item/food/snacks/boiledspaghetti
+/obj/item/food/boiledspaghetti
name = "boiled spaghetti"
desc = "A plain dish of noodles. This sucks."
icon = 'icons/obj/food/pasta.dmi'
@@ -37,7 +37,7 @@
tastes = list("pasta" = 1)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/pastatomato
+/obj/item/food/pastatomato
name = "spaghetti"
desc = "Spaghetti and crushed tomatoes. Just like your abusive father used to make!"
icon = 'icons/obj/food/pasta.dmi'
@@ -49,7 +49,7 @@
tastes = list("pasta" = 1, "tomato" = 1)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/meatballspaghetti
+/obj/item/food/meatballspaghetti
name = "spaghetti & meatballs"
desc = "Now that's a nice'a meatball!"
icon = 'icons/obj/food/pasta.dmi'
@@ -60,7 +60,7 @@
tastes = list("pasta" = 1, "tomato" = 1, "meat" = 1)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/spesslaw
+/obj/item/food/spesslaw
name = "spesslaw"
desc = "A lawyer's favourite."
icon = 'icons/obj/food/pasta.dmi'
@@ -70,7 +70,7 @@
tastes = list("pasta" = 1, "tomato" = 1, "meat" = 2)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/macncheese
+/obj/item/food/macncheese
name = "mac 'n' cheese"
desc = "One of the most comforting foods in the world. Apparently."
trash = /obj/item/trash/snack_bowl
@@ -81,7 +81,7 @@
tastes = list("pasta" = 1, "cheese" = 1, "comfort" = 1)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/lasagna
+/obj/item/food/lasagna
name = "lasagna"
desc = "Tajara love to eat this, for some reason."
icon = 'icons/obj/food/pasta.dmi'
diff --git a/code/modules/food_and_drinks/food/foods/pizza.dm b/code/modules/food_and_drinks/food/foods/pizza.dm
index 0da9469455f5..8a62b48fd3a9 100644
--- a/code/modules/food_and_drinks/food/foods/pizza.dm
+++ b/code/modules/food_and_drinks/food/foods/pizza.dm
@@ -3,22 +3,22 @@
// Pizzas //
//////////////////////
-/obj/item/food/snacks/sliceable/pizza
+/obj/item/food/sliceable/pizza
icon = 'icons/obj/food/pizza.dmi'
slices_num = 6
filling_color = "#BAA14C"
tastes = list("crust" = 1, "tomato" = 1, "cheese" = 1)
// Margherita
-/obj/item/food/snacks/sliceable/pizza/margheritapizza
+/obj/item/food/sliceable/pizza/margheritapizza
name = "margherita pizza"
desc = "The golden standard of pizzas."
icon_state = "margheritapizza"
- slice_path = /obj/item/food/snacks/margheritapizzaslice
+ slice_path = /obj/item/food/margheritapizzaslice
list_reagents = list("nutriment" = 30, "tomatojuice" = 6, "vitamin" = 5)
goal_difficulty = FOOD_GOAL_DUPLICATE
-/obj/item/food/snacks/margheritapizzaslice
+/obj/item/food/margheritapizzaslice
name = "margherita slice"
desc = "A slice of the classic pizza."
icon = 'icons/obj/food/pizza.dmi'
@@ -28,16 +28,16 @@
goal_difficulty = FOOD_GOAL_EASY
// Meat Pizza
-/obj/item/food/snacks/sliceable/pizza/meatpizza
+/obj/item/food/sliceable/pizza/meatpizza
name = "meat pizza"
desc = "A pizza with meat topping."
icon_state = "meatpizza"
- slice_path = /obj/item/food/snacks/meatpizzaslice
+ slice_path = /obj/item/food/meatpizzaslice
list_reagents = list("protein" = 30, "tomatojuice" = 6, "vitamin" = 8)
tastes = list("crust" = 1, "cheese" = 1, "meat" = 1)
goal_difficulty = FOOD_GOAL_DUPLICATE
-/obj/item/food/snacks/meatpizzaslice
+/obj/item/food/meatpizzaslice
name = "meat pizza slice"
desc = "A slice of a meaty pizza."
icon = 'icons/obj/food/pizza.dmi'
@@ -47,16 +47,16 @@
goal_difficulty = FOOD_GOAL_EASY
// Mushroom Pizza
-/obj/item/food/snacks/sliceable/pizza/mushroompizza
+/obj/item/food/sliceable/pizza/mushroompizza
name = "mushroom pizza"
desc = "Very special pizza."
icon_state = "mushroompizza"
- slice_path = /obj/item/food/snacks/mushroompizzaslice
+ slice_path = /obj/item/food/mushroompizzaslice
list_reagents = list("plantmatter" = 30, "vitamin" = 5)
tastes = list("crust" = 1, "cheese" = 1, "mushroom" = 1)
goal_difficulty = FOOD_GOAL_DUPLICATE
-/obj/item/food/snacks/mushroompizzaslice
+/obj/item/food/mushroompizzaslice
name = "mushroom pizza slice"
desc = "Maybe it is the last slice of pizza in your life."
icon = 'icons/obj/food/pizza.dmi'
@@ -66,16 +66,16 @@
goal_difficulty = FOOD_GOAL_EASY
// Vegetable Pizza
-/obj/item/food/snacks/sliceable/pizza/vegetablepizza
+/obj/item/food/sliceable/pizza/vegetablepizza
name = "vegetable pizza"
desc = "No Tomato Sapiens were harmed during the making of this pizza."
icon_state = "vegetablepizza"
- slice_path = /obj/item/food/snacks/vegetablepizzaslice
+ slice_path = /obj/item/food/vegetablepizzaslice
list_reagents = list("plantmatter" = 25, "tomatojuice" = 6, "oculine" = 12, "vitamin" = 5)
tastes = list("crust" = 1, "tomato" = 1, "carrot" = 1, "vegetables" = 1)
goal_difficulty = FOOD_GOAL_DUPLICATE
-/obj/item/food/snacks/vegetablepizzaslice
+/obj/item/food/vegetablepizzaslice
name = "vegetable pizza slice"
desc = "A slice of the most green pizza of all pizzas not containing green ingredients."
icon = 'icons/obj/food/pizza.dmi'
@@ -85,16 +85,16 @@
goal_difficulty = FOOD_GOAL_EASY
// Hawaiian Pizza
-/obj/item/food/snacks/sliceable/pizza/hawaiianpizza
+/obj/item/food/sliceable/pizza/hawaiianpizza
name = "hawaiian pizza"
desc = "Love it or hate it, this pizza divides opinions. Complete with juicy pineapple."
icon_state = "hawaiianpizza"
- slice_path = /obj/item/food/snacks/hawaiianpizzaslice
+ slice_path = /obj/item/food/hawaiianpizzaslice
list_reagents = list("protein" = 15, "tomatojuice" = 6, "plantmatter" = 20, "pineapplejuice" = 6, "vitamin" = 5)
tastes = list("crust" = 1, "cheese" = 1, "pineapple" = 1)
goal_difficulty = FOOD_GOAL_DUPLICATE
-/obj/item/food/snacks/hawaiianpizzaslice
+/obj/item/food/hawaiianpizzaslice
name = "hawaiian pizza slice"
desc = "A slice of polarising pizza."
icon = 'icons/obj/food/pizza.dmi'
@@ -104,17 +104,17 @@
goal_difficulty = FOOD_GOAL_EASY
// Mac 'n' Cheese Pizza
-/obj/item/food/snacks/sliceable/pizza/macpizza
+/obj/item/food/sliceable/pizza/macpizza
name = "mac 'n' cheese pizza"
desc = "Gastronomists have yet to classify this dish as 'pizza'."
icon_state = "macpizza"
- slice_path = /obj/item/food/snacks/macpizzaslice
+ slice_path = /obj/item/food/macpizzaslice
list_reagents = list("nutriment" = 40, "vitamin" = 5) //More nutriment because carbs, but it's not any more vitaminicious
filling_color = "#ffe45d"
tastes = list("crust" = 1, "cheese" = 2, "pasta" = 1)
goal_difficulty = FOOD_GOAL_DUPLICATE
-/obj/item/food/snacks/macpizzaslice
+/obj/item/food/macpizzaslice
name = "mac 'n' cheese pizza slice"
desc = "A delicious slice of pizza topped with macaroni & cheese... wait, what the hell? Who would do this?!"
icon = 'icons/obj/food/pizza.dmi'
@@ -124,17 +124,17 @@
goal_difficulty = FOOD_GOAL_EASY
// Pepperoni Pizza
-/obj/item/food/snacks/sliceable/pizza/pepperonipizza
+/obj/item/food/sliceable/pizza/pepperonipizza
name = "pepperoni pizza"
desc = "What did the pepperoni say to the pizza?"
icon_state = "pepperonipizza"
- slice_path = /obj/item/food/snacks/pepperonipizzaslice
+ slice_path = /obj/item/food/pepperonipizzaslice
list_reagents = list("protein" = 30, "tomatojuice" = 6, "vitamin" = 8)
filling_color = "#ffe45d"
tastes = list("cheese" = 3, "pepperoni" = 3, "grease" = 1)
goal_difficulty = FOOD_GOAL_DUPLICATE
-/obj/item/food/snacks/pepperonipizzaslice
+/obj/item/food/pepperonipizzaslice
name = "pepperoni pizza slice"
desc = "Nice to meat you!"
icon = 'icons/obj/food/pizza.dmi'
@@ -144,15 +144,15 @@
goal_difficulty = FOOD_GOAL_EASY
// Cheese Pizza
-/obj/item/food/snacks/sliceable/pizza/cheesepizza
+/obj/item/food/sliceable/pizza/cheesepizza
name = "cheese pizza"
desc = "Cheese, bread, cheese, tomato, and cheese."
icon_state = "cheesepizza"
- slice_path = /obj/item/food/snacks/cheesepizzaslice
+ slice_path = /obj/item/food/cheesepizzaslice
list_reagents = list("nutriment" = 40, "tomatojuice" = 6, "vitamin" = 5)
goal_difficulty = FOOD_GOAL_DUPLICATE
-/obj/item/food/snacks/cheesepizzaslice
+/obj/item/food/cheesepizzaslice
name = "cheese pizza slice"
desc = "Dangerously cheesy?"
icon = 'icons/obj/food/pizza.dmi'
@@ -162,16 +162,16 @@
goal_difficulty = FOOD_GOAL_EASY
// Donk-pocket Pizza
-/obj/item/food/snacks/sliceable/pizza/donkpocketpizza
+/obj/item/food/sliceable/pizza/donkpocketpizza
name = "donk-pocket pizza"
desc = "Who thought this would be a good idea?"
icon_state = "donkpocketpizza"
- slice_path = /obj/item/food/snacks/donkpocketpizzaslice
+ slice_path = /obj/item/food/donkpocketpizzaslice
list_reagents = list("nutriment" = 35, "tomatojuice" = 6, "vitamin" = 2, "weak_omnizine" = 6)
tastes = list("crust" = 1, "meat" = 1, "laziness" = 1)
goal_difficulty = FOOD_GOAL_DUPLICATE
-/obj/item/food/snacks/donkpocketpizzaslice
+/obj/item/food/donkpocketpizzaslice
name = "donk-pocket pizza slice"
desc = "Smells like lukewarm donk-pocket."
icon = 'icons/obj/food/pizza.dmi'
@@ -181,16 +181,16 @@
goal_difficulty = FOOD_GOAL_EASY
// Dank Pizza
-/obj/item/food/snacks/sliceable/pizza/dankpizza
+/obj/item/food/sliceable/pizza/dankpizza
name = "dank pizza"
desc = "The hippie's pizza of choice."
icon_state = "dankpizza"
- slice_path = /obj/item/food/snacks/dankpizzaslice
+ slice_path = /obj/item/food/dankpizzaslice
list_reagents = list("nutriment" = 30, "tomatojuice" = 6, "vitamin" = 5, "cbd" = 6, "thc" = 6)
tastes = list("crust" = 1, "cheese" = 1, "special herbs" = 2)
goal_difficulty = FOOD_GOAL_DUPLICATE
-/obj/item/food/snacks/dankpizzaslice
+/obj/item/food/dankpizzaslice
name = "dank pizza slice"
desc = "So good, man..."
icon = 'icons/obj/food/pizza.dmi'
@@ -200,16 +200,16 @@
goal_difficulty = FOOD_GOAL_EASY
// Firecracker Pizza
-/obj/item/food/snacks/sliceable/pizza/firecrackerpizza
+/obj/item/food/sliceable/pizza/firecrackerpizza
name = "firecracker pizza"
desc = "Tastes HOT HOT HOT!"
icon_state = "firecrackerpizza"
- slice_path = /obj/item/food/snacks/firecrackerpizzaslice
+ slice_path = /obj/item/food/firecrackerpizzaslice
list_reagents = list("nutriment" = 30, "vitamin" = 5, "capsaicin" = 12)
tastes = list("crust" = 1, "cheese" = 1, "HOTNESS" = 1)
goal_difficulty = FOOD_GOAL_DUPLICATE
-/obj/item/food/snacks/firecrackerpizzaslice
+/obj/item/food/firecrackerpizzaslice
name = "firecracker pizza slice"
desc = "A spicy slice of something quite nice"
icon = 'icons/obj/food/pizza.dmi'
@@ -219,16 +219,16 @@
goal_difficulty = FOOD_GOAL_EASY
// "Pesto" Pizza
-/obj/item/food/snacks/sliceable/pizza/pestopizza
+/obj/item/food/sliceable/pizza/pestopizza
name = "\"pesto\" pizza"
desc = "Wait a second...this doesn't taste like pesto!"
icon_state = "pestopizza"
- slice_path = /obj/item/food/snacks/pestopizzaslice
+ slice_path = /obj/item/food/pestopizzaslice
list_reagents = list("nutriment" = 30, "tomatojuice" = 12, "vitamin" = 5, "wasabi" = 12)
tastes = list("tomato" = 1, "cheese" = 1, "wasabi" = 1)
goal_difficulty = FOOD_GOAL_DUPLICATE
-/obj/item/food/snacks/pestopizzaslice
+/obj/item/food/pestopizzaslice
name = "\"pesto\" pizza slice"
desc = "Delicious and suspicious(ly green)."
icon = 'icons/obj/food/pizza.dmi'
@@ -238,16 +238,16 @@
goal_difficulty = FOOD_GOAL_EASY
// Garlic Pizza
-/obj/item/food/snacks/sliceable/pizza/garlicpizza
+/obj/item/food/sliceable/pizza/garlicpizza
name = "garlic pizza"
desc = "Ahh, garlic. A universally loved ingredient, except possibly by vampires."
icon_state = "garlicpizza"
- slice_path = /obj/item/food/snacks/garlicpizzaslice
+ slice_path = /obj/item/food/garlicpizzaslice
list_reagents = list("plantmatter" = 30, "vitamin" = 5, "garlic" = 12)
tastes = list("crust" = 1, "cheese" = 1, "garlic" = 1)
goal_difficulty = FOOD_GOAL_DUPLICATE
-/obj/item/food/snacks/garlicpizzaslice
+/obj/item/food/garlicpizzaslice
name = "garlic pizza slice"
desc = "What's not to love?"
icon = 'icons/obj/food/pizza.dmi'
@@ -269,7 +269,7 @@
var/open = FALSE // Is the box open?
var/is_messy = FALSE // Fancy mess on the lid
- var/obj/item/food/snacks/sliceable/pizza/pizza // Content pizza
+ var/obj/item/food/sliceable/pizza/pizza // Content pizza
var/list/boxes = list() // If the boxes are stacked, they come here
var/box_tag = ""
@@ -382,7 +382,7 @@
to_chat(user, "Close [box] first!")
return
- if(istype(I, /obj/item/food/snacks/sliceable/pizza)) // Long ass fucking object name
+ if(istype(I, /obj/item/food/sliceable/pizza)) // Long ass fucking object name
if(open)
user.drop_item()
I.loc = src
@@ -411,42 +411,42 @@
/obj/item/pizzabox/margherita/Initialize(mapload)
- pizza = new /obj/item/food/snacks/sliceable/pizza/margheritapizza(src)
+ pizza = new /obj/item/food/sliceable/pizza/margheritapizza(src)
box_tag = "margherita deluxe"
. = ..()
/obj/item/pizzabox/vegetable/Initialize(mapload)
- pizza = new /obj/item/food/snacks/sliceable/pizza/vegetablepizza(src)
+ pizza = new /obj/item/food/sliceable/pizza/vegetablepizza(src)
box_tag = "gourmet vegetable"
. = ..()
/obj/item/pizzabox/mushroom/Initialize(mapload)
- pizza = new /obj/item/food/snacks/sliceable/pizza/mushroompizza(src)
+ pizza = new /obj/item/food/sliceable/pizza/mushroompizza(src)
box_tag = "mushroom special"
. = ..()
/obj/item/pizzabox/meat/Initialize(mapload)
- pizza = new /obj/item/food/snacks/sliceable/pizza/meatpizza(src)
+ pizza = new /obj/item/food/sliceable/pizza/meatpizza(src)
box_tag = "meatlover's supreme"
. = ..()
/obj/item/pizzabox/hawaiian/Initialize(mapload)
- pizza = new /obj/item/food/snacks/sliceable/pizza/hawaiianpizza(src)
+ pizza = new /obj/item/food/sliceable/pizza/hawaiianpizza(src)
box_tag = "Hawaiian feast"
. = ..()
/obj/item/pizzabox/pepperoni/Initialize(mapload)
- pizza = new /obj/item/food/snacks/sliceable/pizza/pepperonipizza(src)
+ pizza = new /obj/item/food/sliceable/pizza/pepperonipizza(src)
box_tag = "classic pepperoni"
. = ..()
/obj/item/pizzabox/garlic/Initialize(mapload)
- pizza = new /obj/item/food/snacks/sliceable/pizza/garlicpizza(src)
+ pizza = new /obj/item/food/sliceable/pizza/garlicpizza(src)
box_tag = "triple garlic"
. = ..()
/obj/item/pizzabox/firecracker/Initialize(mapload)
- pizza = new /obj/item/food/snacks/sliceable/pizza/firecrackerpizza(src)
+ pizza = new /obj/item/food/sliceable/pizza/firecrackerpizza(src)
box_tag = "extra spicy pie"
. = ..()
@@ -550,7 +550,6 @@
return
playsound(src, I.usesound, 50, TRUE, 1)
user.visible_message("[user] cuts the [chosen_wire] wire!", "You cut the [chosen_wire] wire!")
- sleep(5)
if(chosen_wire == correct_wire)
audible_message("[bicon(src)] [src] suddenly stops beeping and seems lifeless.")
to_chat(user, "You did it!")
diff --git a/code/modules/food_and_drinks/food/foods/sandwiches.dm b/code/modules/food_and_drinks/food/foods/sandwiches.dm
index cefe18469afb..ea754baae0fe 100644
--- a/code/modules/food_and_drinks/food/foods/sandwiches.dm
+++ b/code/modules/food_and_drinks/food/foods/sandwiches.dm
@@ -5,13 +5,13 @@
// Abstract object used for inheritance. Should never spawn. Needed to not break recipes that use plain burgers; recipes that use "burger" would accept any burger and transfer reagents otherwise.
-/obj/item/food/snacks/burger
+/obj/item/food/burger
name = "burger"
desc = "If you got this, something broke! Contact a coder if this somehow spawns."
icon = 'icons/obj/food/burgerbread.dmi'
icon_state = "burger"
-/obj/item/food/snacks/burger/plain
+/obj/item/food/burger/plain
name = "burger"
desc = "The cornerstone of every nutritious breakfast."
icon_state = "hburger"
@@ -21,7 +21,7 @@
tastes = list("bun" = 4, "meat" = 1)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/burger/brain
+/obj/item/food/burger/brain
name = "brainburger"
desc = "A strange looking burger. It appears almost sentient."
icon_state = "brainburger"
@@ -30,7 +30,7 @@
list_reagents = list("nutriment" = 6, "prions" = 10, "vitamin" = 1)
tastes = list("bun" = 4, "brains" = 2)
-/obj/item/food/snacks/burger/ghost
+/obj/item/food/burger/ghost
name = "ghost burger"
desc = "Spooky! It doesn't look very filling."
icon_state = "ghostburger"
@@ -40,12 +40,12 @@
tastes = list("bun" = 4, "ectoplasm" = 2)
goal_difficulty = FOOD_GOAL_EXCESSIVE
-/obj/item/food/snacks/human
+/obj/item/food/human
var/hname = ""
var/job = null
filling_color = "#D63C3C"
-/obj/item/food/snacks/human/burger
+/obj/item/food/human/burger
name = "-burger"
desc = "A bloody burger."
icon = 'icons/obj/food/burgerbread.dmi'
@@ -54,7 +54,7 @@
list_reagents = list("nutriment" = 6, "vitamin" = 1)
tastes = list("bun" = 4, "tender meat" = 2)
-/obj/item/food/snacks/burger/cheese
+/obj/item/food/burger/cheese
name = "cheeseburger"
desc = "The cheese adds a good flavor."
icon_state = "cheeseburger"
@@ -63,7 +63,7 @@
tastes = list("bun" = 4, "meat" = 1, "cheese" = 1)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/burger/tofu
+/obj/item/food/burger/tofu
name = "tofu burger"
desc = "Making this should probably be a criminal offense."
icon_state = "tofuburger"
@@ -73,7 +73,7 @@
tastes = list("bun" = 4, "tofu" = 4)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/burger/hamborger
+/obj/item/food/burger/hamborger
name = "hamborger"
desc = "Looking at this makes your flesh feel like a weakness."
icon_state = "roburger"
@@ -82,11 +82,11 @@
list_reagents = list("nutriment" = 6, "nanomachines" = 10, "vitamin" = 1)
tastes = list("bun" = 4, "metal" = 2, "sludge" = 1)
-/obj/item/food/snacks/burger/hamborger/Initialize(mapload)
+/obj/item/food/burger/hamborger/Initialize(mapload)
. = ..()
message_admins("A [name] has been created at [ADMIN_COORDJMP(src)].")
-/obj/item/food/snacks/burger/xeno
+/obj/item/food/burger/xeno
name = "xenoburger"
desc = "Smells caustic and tastes like heresy."
icon_state = "xburger"
@@ -96,7 +96,7 @@
tastes = list("bun" = 4, "acid" = 4)
goal_difficulty = FOOD_GOAL_EXCESSIVE
-/obj/item/food/snacks/burger/clown
+/obj/item/food/burger/clown
name = "clown burger"
desc = "This tastes funny..."
icon_state = "clownburger"
@@ -106,7 +106,7 @@
tastes = list("bun" = 4, "banana" = 1, "magic" = 2)
goal_difficulty = FOOD_GOAL_EXCESSIVE
-/obj/item/food/snacks/burger/mime
+/obj/item/food/burger/mime
name = "mime burger"
desc = "Its taste defies language."
icon_state = "mimeburger"
@@ -116,7 +116,7 @@
tastes = list("bun" = 4, "silence" = 2)
goal_difficulty = FOOD_GOAL_EXCESSIVE
-/obj/item/food/snacks/burger/baseball
+/obj/item/food/burger/baseball
name = "home run baseball burger"
desc = "It's still warm. Batter up!"
icon_state = "baseball"
@@ -126,7 +126,7 @@
tastes = list("bun" = 4, "a homerun" = 3)
goal_difficulty = FOOD_GOAL_EXCESSIVE
-/obj/item/food/snacks/burger/spell
+/obj/item/food/burger/spell
name = "spell burger"
desc = "This is absolutely Ei Nath."
icon_state = "spellburger"
@@ -136,7 +136,7 @@
tastes = list("bun" = 4, "magic" = 2)
goal_difficulty = FOOD_GOAL_EXCESSIVE
-/obj/item/food/snacks/burger/bigbite
+/obj/item/food/burger/bigbite
name = "BigBite burger"
desc = "Forget the Big Mac, THIS is the future!"
icon_state = "bigbiteburger"
@@ -146,7 +146,7 @@
tastes = list("bun" = 4, "meat" = 2, "cheese" = 2, "type two diabetes" = 10)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/burger/superbite
+/obj/item/food/burger/superbite
name = "SuperBite burger"
desc = "This is a mountain of a burger. FOOD!"
icon_state = "superbiteburger"
@@ -156,7 +156,7 @@
tastes = list("bun" = 4, "meat" = 2, "cheese" = 2, "type two diabetes" = 10)
goal_difficulty = FOOD_GOAL_HARD
-/obj/item/food/snacks/burger/crazy
+/obj/item/food/burger/crazy
name = "crazy hamburger"
desc = "This looks like the sort of food that a demented clown in a trenchcoat would make."
icon_state = "crazyburger"
@@ -166,7 +166,7 @@
tastes = list("bun" = 2, "meat" = 4, "cheese" = 2, "beef soaked in chili" = 3, "a smoking flare" = 2)
goal_difficulty = FOOD_GOAL_EXCESSIVE
-/obj/item/food/snacks/burger/ppatty/white
+/obj/item/food/burger/ppatty/white
name = "white pretty patty"
desc = "Delicious titanium!"
icon_state = "ppatty-mime"
@@ -176,7 +176,7 @@
tastes = list("bun" = 2, "meat" = 2, "white" = 2)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/burger/ppatty/red
+/obj/item/food/burger/ppatty/red
name = "red pretty patty"
desc = "Perfect for hiding the fact that it's burnt to a crisp."
icon_state = "ppatty-red"
@@ -186,7 +186,7 @@
tastes = list("bun" = 2, "meat" = 2, "red" = 2)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/burger/ppatty/orange
+/obj/item/food/burger/ppatty/orange
name = "orange pretty patty"
desc = "Contains 0% juice."
icon_state = "ppatty-orange"
@@ -196,7 +196,7 @@
tastes = list("bun" = 2, "meat" = 2, "orange" = 2)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/burger/ppatty/yellow
+/obj/item/food/burger/ppatty/yellow
name = "yellow pretty patty"
desc = "Bright to the last bite."
icon_state = "ppatty-yellow"
@@ -206,7 +206,7 @@
tastes = list("bun" = 2, "meat" = 2, "yellow" = 2)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/burger/ppatty/green
+/obj/item/food/burger/ppatty/green
name = "green pretty patty"
desc = "It's not tainted meat, it's painted meat!"
icon_state = "ppatty-green"
@@ -216,7 +216,7 @@
tastes = list("bun" = 2, "meat" = 2, "green" = 2)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/burger/ppatty/blue
+/obj/item/food/burger/ppatty/blue
name = "blue pretty patty"
desc = "Is this blue rare?"
icon_state = "ppatty-blue"
@@ -226,7 +226,7 @@
tastes = list("bun" = 2, "meat" = 2, "blue" = 2)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/burger/ppatty/purple
+/obj/item/food/burger/ppatty/purple
name = "purple pretty patty"
desc = "Regal and low class at the same time."
icon_state = "ppatty-purple"
@@ -236,7 +236,7 @@
tastes = list("bun" = 2, "meat" = 2, "purple" = 2)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/burger/ppatty/rainbow
+/obj/item/food/burger/ppatty/rainbow
name = "rainbow pretty patty"
desc = "Taste the rainbow, eat the rainbow."
icon_state = "ppatty-rainbow"
@@ -246,7 +246,7 @@
tastes = list("bun" = 2, "meat" = 2, "rainbow" = 5)
goal_difficulty = FOOD_GOAL_HARD
-/obj/item/food/snacks/burger/elec
+/obj/item/food/burger/elec
name = "empowered burger"
desc = "It's shockingly good, if you live off of electricity that is."
icon_state = "empoweredburger"
@@ -256,7 +256,7 @@
tastes = list("bun" = 2, "pure electricity" = 5)
goal_difficulty = FOOD_GOAL_HARD
-/obj/item/food/snacks/burger/rat
+/obj/item/food/burger/rat
name = "mouse burger"
desc = "Pretty much what you'd expect..."
icon_state = "ratburger"
@@ -265,7 +265,7 @@
list_reagents = list("nutriment" = 5, "protein" = 1)
tastes = list("bun" = 2, "dead rat" = 5)
-/obj/item/food/snacks/burger/appendix
+/obj/item/food/burger/appendix
name = "appendix burger"
desc = "Tastes like appendicitis."
icon_state = "appendixburger"
@@ -274,7 +274,7 @@
list_reagents = list("nutriment" = 2, "protein" = 6, "vitamin" = 6)
tastes = list("bun" = 1, "grass" = 1)
-/obj/item/food/snacks/burger/bacon
+/obj/item/food/burger/bacon
name = "bacon burger"
desc = "The perfect combination of all things American."
icon_state = "baconburger"
@@ -285,7 +285,7 @@
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/burger/bearger
+/obj/item/food/burger/bearger
name = "bearger"
desc = "Best served rawr."
icon_state = "bearger"
@@ -295,7 +295,7 @@
tastes = list("bun" = 1, "meat" = 1, "salmon" = 1)
goal_difficulty = FOOD_GOAL_EXCESSIVE
-/obj/item/food/snacks/burger/fivealarm
+/obj/item/food/burger/fivealarm
name = "five alarm burger"
desc = "HOT! HOT!"
icon_state = "fivealarmburger"
@@ -305,7 +305,7 @@
tastes = list("bun" = 1, "extreme heat" = 1)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/burger/mcguffin
+/obj/item/food/burger/mcguffin
name = "mcGuffin"
desc = "A cheap and greasy imitation of an eggs benedict."
icon_state = "mcguffin"
@@ -315,7 +315,7 @@
tastes = list("muffin" = 1, "bacon" = 1)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/burger/mcrib
+/obj/item/food/burger/mcrib
name = "mcRib"
desc = "An elusive rib shaped burger with limited availablity across the galaxy. Not as good as you remember it."
icon_state = "mcrib"
@@ -325,7 +325,7 @@
tastes = list("bun" = 1, "pork" = 1, "patty" = 1)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/burger/chicken
+/obj/item/food/burger/chicken
name = "chicken burger"
desc = "May I mayo?"
icon_state = "chickenburger"
@@ -333,7 +333,7 @@
list_reagents = list("nutriment" = 6, "vitamin" = 1)
tastes = list("bun" = 4, "chicken" = 2)
-/obj/item/food/snacks/burger/jelly
+/obj/item/food/burger/jelly
name = "jelly burger"
desc = "Culinary delight...?"
icon_state = "jellyburger"
@@ -341,12 +341,12 @@
bitesize = 3
tastes = list("bun" = 4, "jelly" = 2)
-/obj/item/food/snacks/burger/jelly/slime
+/obj/item/food/burger/jelly/slime
name = "slime burger"
list_reagents = list("nutriment" = 6, "slimejelly" = 5, "vitamin" = 1)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/burger/jelly/cherry
+/obj/item/food/burger/jelly/cherry
list_reagents = list("nutriment" = 6, "cherryjelly" = 5, "vitamin" = 1)
goal_difficulty = FOOD_GOAL_NORMAL
@@ -355,7 +355,7 @@
// Sandwiches //
//////////////////////
-/obj/item/food/snacks/sandwich
+/obj/item/food/sandwich
name = "sandwich"
desc = "A grand creation of meat, cheese, bread, and several leaves of lettuce! Arthur Dent would be proud."
icon = 'icons/obj/food/burgerbread.dmi'
@@ -365,7 +365,7 @@
tastes = list("meat" = 2, "cheese" = 1, "bread" = 2, "lettuce" = 1)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/toastedsandwich
+/obj/item/food/toastedsandwich
name = "toasted sandwich"
desc = "Now if you only had a pepper bar."
icon = 'icons/obj/food/burgerbread.dmi'
@@ -375,7 +375,7 @@
tastes = list("toast" = 1)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/grilledcheese
+/obj/item/food/grilledcheese
name = "grilled cheese sandwich"
desc = "Goes great with tomato soup!"
icon = 'icons/obj/food/burgerbread.dmi'
@@ -385,7 +385,7 @@
tastes = list("toast" = 1, "grilled cheese" = 1)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/jellysandwich
+/obj/item/food/jellysandwich
name = "jelly sandwich"
desc = "You wish you had some peanut butter to go with this..."
icon = 'icons/obj/food/burgerbread.dmi'
@@ -394,16 +394,16 @@
bitesize = 3
tastes = list("toast" = 1, "jelly" = 1)
-/obj/item/food/snacks/jellysandwich/slime
+/obj/item/food/jellysandwich/slime
list_reagents = list("nutriment" = 2, "slimejelly" = 5, "vitamin" = 2)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/jellysandwich/cherry
+/obj/item/food/jellysandwich/cherry
name = "slime sandwich"
list_reagents = list("nutriment" = 2, "cherryjelly" = 5, "vitamin" = 2)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/notasandwich
+/obj/item/food/notasandwich
name = "not-a-sandwich"
desc = "Something seems to be wrong with this, you can't quite figure what. Maybe it's his moustache."
icon = 'icons/obj/food/burgerbread.dmi'
@@ -412,7 +412,7 @@
tastes = list("nothing suspicious" = 1)
goal_difficulty = FOOD_GOAL_EXCESSIVE
-/obj/item/food/snacks/wrap
+/obj/item/food/wrap
name = "egg wrap"
desc = "The precursor to Pigs in a Blanket."
icon = 'icons/obj/food/food.dmi'
@@ -421,7 +421,7 @@
tastes = list("egg" = 1)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/blt
+/obj/item/food/blt
name = "\improper BLT"
desc = "A classic bacon, lettuce, and tomato sandwich."
icon = 'icons/obj/food/burgerbread.dmi'
@@ -432,7 +432,7 @@
tastes = list("bacon" = 3, "lettuce" = 2, "tomato" = 2, "bread" = 2)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/peanut_butter_jelly
+/obj/item/food/peanut_butter_jelly
name = "peanut butter and jelly sandwich"
desc = "A classic PB&J sandwich, just like your mom used to make."
icon = 'icons/obj/food/burgerbread.dmi'
@@ -441,17 +441,17 @@
bitesize = 2
tastes = list("peanut butter" = 3, "jelly" = 3, "bread" = 2)
-/obj/item/food/snacks/peanut_butter_jelly/slime
+/obj/item/food/peanut_butter_jelly/slime
name = "peanut butter and slime sandwich"
desc = "A classic PB&J sandwich, just like your mom used to make?"
list_reagents = list("peanutbutter" = 2, "slimejelly" = 5, "nutriment" = 5, "protein" = 2)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/peanut_butter_jelly/cherry
+/obj/item/food/peanut_butter_jelly/cherry
list_reagents = list("peanutbutter" = 2, "cherryjelly" = 5, "nutriment" = 5, "protein" = 2)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/philly_cheesesteak
+/obj/item/food/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 = 'icons/obj/food/burgerbread.dmi'
@@ -462,7 +462,7 @@
tastes = list("steak" = 3, "melted cheese" = 3, "onions" = 2, "bread" = 2)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/peanut_butter_banana
+/obj/item/food/peanut_butter_banana
name = "peanut butter and banana sandwich"
desc = "A peanut butter sandwich with banana slices mixed in, a good high protein treat."
icon = 'icons/obj/food/burgerbread.dmi'
diff --git a/code/modules/food_and_drinks/food/foods/seafood.dm b/code/modules/food_and_drinks/food/foods/seafood.dm
index a4529b88ae06..175427f42d47 100644
--- a/code/modules/food_and_drinks/food/foods/seafood.dm
+++ b/code/modules/food_and_drinks/food/foods/seafood.dm
@@ -1,5 +1,5 @@
-/obj/item/food/snacks/carpmeat
+/obj/item/food/carpmeat
name = "carp fillet"
desc = "A fillet of spess carp meat."
icon = 'icons/obj/food/seafood.dmi'
@@ -11,7 +11,7 @@
ingredient_name = "fillet of meat"
ingredient_name_plural = "fillets of meat"
-/obj/item/food/snacks/salmonmeat
+/obj/item/food/salmonmeat
name = "raw salmon"
desc = "A fillet of raw salmon."
icon = 'icons/obj/food/seafood.dmi'
@@ -21,7 +21,7 @@
list_reagents = list("protein" = 3, "vitamin" = 2)
tastes = list("raw salmon" = 1)
-/obj/item/food/snacks/salmonsteak
+/obj/item/food/salmonsteak
name = "salmon steak"
desc = "A fillet of freshly-grilled salmon meat."
icon = 'icons/obj/food/seafood.dmi'
@@ -32,7 +32,7 @@
list_reagents = list("nutriment" = 4, "vitamin" = 2)
tastes = list("cooked salmon" = 1)
-/obj/item/food/snacks/catfishmeat
+/obj/item/food/catfishmeat
name = "raw catfish"
desc = "A fillet of raw catfish."
icon = 'icons/obj/food/seafood.dmi'
@@ -42,7 +42,7 @@
list_reagents = list("protein" = 3, "vitamin" = 2)
tastes = list("catfish" = 1)
-/obj/item/food/snacks/fishfingers
+/obj/item/food/fishfingers
name = "fish fingers"
desc = "A finger of fish."
icon = 'icons/obj/food/seafood.dmi'
@@ -53,7 +53,7 @@
tastes = list("fish" = 1, "bread" = 1)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/fishburger
+/obj/item/food/fishburger
name = "Fillet-O-Carp sandwich"
desc = "Almost like a carp is yelling somewhere... Give me back that fillet -o- carp, give me that carp."
icon = 'icons/obj/food/seafood.dmi'
@@ -64,7 +64,7 @@
tastes = list("bun" = 4, "fish" = 4)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/cubancarp
+/obj/item/food/cubancarp
name = "cuban carp"
desc = "A grifftastic sandwich that burns your tongue and then leaves it numb!"
icon = 'icons/obj/food/seafood.dmi'
@@ -76,7 +76,7 @@
tastes = list("fish" = 4, "batter" = 1, "hot peppers" = 1)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/fishandchips
+/obj/item/food/fishandchips
name = "fish and chips"
desc = "I do say so myself old chap. Indubitably!"
icon = 'icons/obj/food/seafood.dmi'
@@ -87,7 +87,7 @@
tastes = list("fish" = 1, "chips" = 1)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/sashimi
+/obj/item/food/sashimi
name = "carp sashimi"
desc = "Celebrate surviving attack from hostile alien lifeforms by hospitalising yourself."
icon = 'icons/obj/food/seafood.dmi'
@@ -97,7 +97,7 @@
tastes = list("raw carp" = 1, "hot peppers" = 1)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/fried_shrimp
+/obj/item/food/fried_shrimp
name = "fried shrimp"
desc = "Just one of the many things you can do with shrimp!"
icon = 'icons/obj/food/seafood.dmi'
@@ -107,7 +107,7 @@
tastes = list("shrimp" = 1, "bread crumbs" = 1)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/boiled_shrimp
+/obj/item/food/boiled_shrimp
name = "boiled shrimp"
desc = "Just one of the many things you can do with shrimp!"
icon = 'icons/obj/food/seafood.dmi'
@@ -117,7 +117,7 @@
tastes = list("shrimp" = 1)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/shrimp_skewer
+/obj/item/food/shrimp_skewer
name = "shrimp skewer"
desc = "Four shrimp lightly grilled on a skewer. Yummy!"
trash = /obj/item/stack/rods
@@ -128,7 +128,7 @@
tastes = list("shrimp" = 4)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/fish_skewer
+/obj/item/food/fish_skewer
name = "fish skewer"
desc = "A whole fish battered and grilled on a skewer. Hope you're hungry!"
trash = /obj/item/stack/rods
@@ -139,19 +139,19 @@
tastes = list("shrimp" = 1, "batter" = 1)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/sliceable/Ebi_maki
+/obj/item/food/sliceable/Ebi_maki
name = "ebi maki roll"
desc = "A large unsliced roll of Ebi Sushi."
icon = 'icons/obj/food/seafood.dmi'
icon_state = "Ebi_maki"
- slice_path = /obj/item/food/snacks/sushi_Ebi
+ slice_path = /obj/item/food/sushi_Ebi
slices_num = 4
bitesize = 3
list_reagents = list("nutriment" = 8)
tastes = list("shrimp" = 1, "rice" = 1, "seaweed" = 1)
goal_difficulty = FOOD_GOAL_DUPLICATE
-/obj/item/food/snacks/sushi_Ebi
+/obj/item/food/sushi_Ebi
name = "ebi sushi"
desc = "A simple sushi consisting of cooked shrimp and rice."
icon = 'icons/obj/food/seafood.dmi'
@@ -161,19 +161,19 @@
tastes = list("shrimp" = 1, "rice" = 1, "seaweed" = 1)
goal_difficulty = FOOD_GOAL_EASY
-/obj/item/food/snacks/sliceable/Ikura_maki
+/obj/item/food/sliceable/Ikura_maki
name = "ikura maki roll"
desc = "A large unsliced roll of Ikura Sushi."
icon = 'icons/obj/food/seafood.dmi'
icon_state = "Ikura_maki"
- slice_path = /obj/item/food/snacks/sushi_Ikura
+ slice_path = /obj/item/food/sushi_Ikura
slices_num = 4
bitesize = 3
list_reagents = list("nutriment" = 8, "protein" = 4)
tastes = list("salmon roe" = 1, "rice" = 1, "seaweed" = 1)
goal_difficulty = FOOD_GOAL_DUPLICATE
-/obj/item/food/snacks/sushi_Ikura
+/obj/item/food/sushi_Ikura
name = "ikura sushi"
desc = "A simple sushi consisting of salmon roe."
icon = 'icons/obj/food/seafood.dmi'
@@ -183,19 +183,19 @@
tastes = list("salmon roe" = 1, "rice" = 1, "seaweed" = 1)
goal_difficulty = FOOD_GOAL_EASY
-/obj/item/food/snacks/sliceable/Sake_maki
+/obj/item/food/sliceable/Sake_maki
name = "sake maki roll"
desc = "A large unsliced roll of Sake Sushi."
icon = 'icons/obj/food/seafood.dmi'
icon_state = "Sake_maki"
- slice_path = /obj/item/food/snacks/sushi_Sake
+ slice_path = /obj/item/food/sushi_Sake
slices_num = 4
bitesize = 3
list_reagents = list("nutriment" = 8)
tastes = list("raw salmon" = 1, "rice" = 1, "seaweed" = 1)
goal_difficulty = FOOD_GOAL_DUPLICATE
-/obj/item/food/snacks/sushi_Sake
+/obj/item/food/sushi_Sake
name = "sake sushi"
desc = "A simple sushi consisting of raw salmon and rice."
icon = 'icons/obj/food/seafood.dmi'
@@ -205,19 +205,19 @@
tastes = list("raw salmon" = 1, "rice" = 1, "seaweed" = 1)
goal_difficulty = FOOD_GOAL_EASY
-/obj/item/food/snacks/sliceable/SmokedSalmon_maki
+/obj/item/food/sliceable/SmokedSalmon_maki
name = "smoked salmon maki roll"
desc = "A large unsliced roll of Smoked Salmon Sushi."
icon = 'icons/obj/food/seafood.dmi'
icon_state = "SmokedSalmon_maki"
- slice_path = /obj/item/food/snacks/sushi_SmokedSalmon
+ slice_path = /obj/item/food/sushi_SmokedSalmon
slices_num = 4
bitesize = 3
list_reagents = list("nutriment" = 8)
tastes = list("smoked salmon" = 1, "rice" = 1, "seaweed" = 1)
goal_difficulty = FOOD_GOAL_DUPLICATE
-/obj/item/food/snacks/sushi_SmokedSalmon
+/obj/item/food/sushi_SmokedSalmon
name = "smoked salmon sushi"
desc = "A simple sushi consisting of cooked salmon and rice."
icon = 'icons/obj/food/seafood.dmi'
@@ -227,19 +227,19 @@
tastes = list("smoked salmon" = 1, "rice" = 1, "seaweed" = 1)
goal_difficulty = FOOD_GOAL_EASY
-/obj/item/food/snacks/sliceable/Tamago_maki
+/obj/item/food/sliceable/Tamago_maki
name = "tamago maki roll"
desc = "A large unsliced roll of Tamago Sushi."
icon = 'icons/obj/food/seafood.dmi'
icon_state = "Tamago_maki"
- slice_path = /obj/item/food/snacks/sushi_Tamago
+ slice_path = /obj/item/food/sushi_Tamago
slices_num = 4
bitesize = 3
list_reagents = list("nutriment" = 8)
tastes = list("egg" = 1, "rice" = 1, "seaweed" = 1)
goal_difficulty = FOOD_GOAL_DUPLICATE
-/obj/item/food/snacks/sushi_Tamago
+/obj/item/food/sushi_Tamago
name = "tamago sushi"
desc = "A simple sushi consisting of egg and rice."
icon = 'icons/obj/food/seafood.dmi'
@@ -249,19 +249,19 @@
tastes = list("egg" = 1, "rice" = 1, "seaweed" = 1)
goal_difficulty = FOOD_GOAL_EASY
-/obj/item/food/snacks/sliceable/Inari_maki
+/obj/item/food/sliceable/Inari_maki
name = "inari maki roll"
desc = "A large unsliced roll of Inari Sushi."
icon = 'icons/obj/food/seafood.dmi'
icon_state = "Inari_maki"
- slice_path = /obj/item/food/snacks/sushi_Inari
+ slice_path = /obj/item/food/sushi_Inari
slices_num = 4
bitesize = 3
list_reagents = list("nutriment" = 8)
tastes = list("fried tofu" = 1, "rice" = 1, "seaweed" = 1)
goal_difficulty = FOOD_GOAL_DUPLICATE
-/obj/item/food/snacks/sushi_Inari
+/obj/item/food/sushi_Inari
name = "inari sushi"
desc = "A piece of fried tofu stuffed with rice."
icon = 'icons/obj/food/seafood.dmi'
@@ -271,19 +271,19 @@
tastes = list("fried tofu" = 1, "rice" = 1, "seaweed" = 1)
goal_difficulty = FOOD_GOAL_EASY
-/obj/item/food/snacks/sliceable/Masago_maki
+/obj/item/food/sliceable/Masago_maki
name = "masago maki roll"
desc = "A large unsliced roll of Masago Sushi."
icon = 'icons/obj/food/seafood.dmi'
icon_state = "Masago_maki"
- slice_path = /obj/item/food/snacks/sushi_Masago
+ slice_path = /obj/item/food/sushi_Masago
slices_num = 4
bitesize = 3
list_reagents = list("nutriment" = 8, "protein" = 4)
tastes = list("goldfish roe" = 1, "rice" = 1, "seaweed" = 1)
goal_difficulty = FOOD_GOAL_DUPLICATE
-/obj/item/food/snacks/sushi_Masago
+/obj/item/food/sushi_Masago
name = "masago sushi"
desc = "A simple sushi consisting of goldfish roe."
icon = 'icons/obj/food/seafood.dmi'
@@ -293,19 +293,19 @@
tastes = list("goldfish roe" = 1, "rice" = 1, "seaweed" = 1)
goal_difficulty = FOOD_GOAL_EASY
-/obj/item/food/snacks/sliceable/Tobiko_maki
+/obj/item/food/sliceable/Tobiko_maki
name = "tobiko maki roll"
desc = "A large unsliced roll of Tobkio Sushi."
icon = 'icons/obj/food/seafood.dmi'
icon_state = "Tobiko_maki"
- slice_path = /obj/item/food/snacks/sushi_Tobiko
+ slice_path = /obj/item/food/sushi_Tobiko
slices_num = 4
bitesize = 3
list_reagents = list("nutriment" = 8, "protein" = 4)
tastes = list("shark roe" = 1, "rice" = 1, "seaweed" = 1)
goal_difficulty = FOOD_GOAL_DUPLICATE
-/obj/item/food/snacks/sushi_Tobiko
+/obj/item/food/sushi_Tobiko
name = "tobiko sushi"
desc = "A simple sushi consisting of shark roe."
icon = 'icons/obj/food/seafood.dmi'
@@ -315,19 +315,19 @@
tastes = list("shark roe" = 1, "rice" = 1, "seaweed" = 1)
goal_difficulty = FOOD_GOAL_EASY
-/obj/item/food/snacks/sliceable/TobikoEgg_maki
+/obj/item/food/sliceable/TobikoEgg_maki
name = "tobiko and egg maki roll"
desc = "A large unsliced roll of Tobkio and Egg Sushi."
icon = 'icons/obj/food/seafood.dmi'
icon_state = "TobikoEgg_maki"
- slice_path = /obj/item/food/snacks/sushi_TobikoEgg
+ slice_path = /obj/item/food/sushi_TobikoEgg
slices_num = 4
bitesize = 3
list_reagents = list("nutriment" = 8, "protein" = 4)
tastes = list("shark roe" = 1, "rice" = 1, "egg" = 1, "seaweed" = 1)
goal_difficulty = FOOD_GOAL_DUPLICATE
-/obj/item/food/snacks/sushi_TobikoEgg
+/obj/item/food/sushi_TobikoEgg
name = "tobiko and egg sushi"
desc = "A sushi consisting of shark roe and an egg."
icon = 'icons/obj/food/seafood.dmi'
@@ -337,19 +337,19 @@
tastes = list("shark roe" = 1, "rice" = 1, "egg" = 1, "seaweed" = 1)
goal_difficulty = FOOD_GOAL_EASY
-/obj/item/food/snacks/sliceable/Tai_maki
+/obj/item/food/sliceable/Tai_maki
name = "tai maki roll"
desc = "A large unsliced roll of Tai Sushi."
icon = 'icons/obj/food/seafood.dmi'
icon_state = "Tai_maki"
- slice_path = /obj/item/food/snacks/sushi_Tai
+ slice_path = /obj/item/food/sushi_Tai
slices_num = 4
bitesize = 3
list_reagents = list("nutriment" = 8)
tastes = list("catfish" = 1, "rice" = 1, "seaweed" = 1)
goal_difficulty = FOOD_GOAL_DUPLICATE
-/obj/item/food/snacks/sushi_Tai
+/obj/item/food/sushi_Tai
name = "tai sushi"
desc = "A simple sushi consisting of catfish and rice."
icon = 'icons/obj/food/seafood.dmi'
@@ -359,7 +359,7 @@
tastes = list("catfish" = 1, "rice" = 1, "seaweed" = 1)
goal_difficulty = FOOD_GOAL_EASY
-/obj/item/food/snacks/sushi_Unagi
+/obj/item/food/sushi_Unagi
name = "unagi sushi"
desc = "A simple sushi consisting of eel and rice."
icon = 'icons/obj/food/seafood.dmi'
diff --git a/code/modules/food_and_drinks/food/foods/side_dishes.dm b/code/modules/food_and_drinks/food/foods/side_dishes.dm
index 2048c12740e8..eedcbc833495 100644
--- a/code/modules/food_and_drinks/food/foods/side_dishes.dm
+++ b/code/modules/food_and_drinks/food/foods/side_dishes.dm
@@ -3,7 +3,7 @@
// Raw //
//////////////////////
-/obj/item/food/snacks/rawsticks
+/obj/item/food/rawsticks
name = "raw potato sticks"
desc = "Raw fries, not very tasty."
icon = 'icons/obj/food/food_ingredients.dmi'
@@ -16,7 +16,7 @@
// Fried //
//////////////////////
-/obj/item/food/snacks/fries
+/obj/item/food/fries
name = "space fries"
desc = "AKA: French Fries, Freedom Fries, etc."
icon_state = "fries"
@@ -26,7 +26,7 @@
tastes = list("fries" = 3, "salt" = 1)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/cheesyfries
+/obj/item/food/cheesyfries
name = "cheesy fries"
desc = "Fries. Covered in cheese. Duh."
icon_state = "cheesyfries"
@@ -36,7 +36,7 @@
tastes = list("fries" = 3, "cheese" = 1)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/tatortot
+/obj/item/food/tatortot
name = "tator tot"
desc = "A large fried potato nugget that may or may not try to valid you."
icon_state = "tatortot"
@@ -45,7 +45,7 @@
tastes = list("fried potato" = 3, "valids" = 1)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/onionrings
+/obj/item/food/onionrings
name = "onion rings"
desc = "Onion slices coated in batter."
icon_state = "onionrings"
@@ -55,7 +55,7 @@
tastes = list("onion" = 3, "batter" = 1)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/carrotfries
+/obj/item/food/carrotfries
name = "carrot fries"
desc = "Tasty fries from fresh carrots."
icon_state = "carrotfries"
@@ -70,7 +70,7 @@
// Misc //
//////////////////////
-/obj/item/food/snacks/beans
+/obj/item/food/beans
name = "tin of beans"
desc = "Musical fruit in a slightly less musical container."
icon_state = "beans"
@@ -79,7 +79,7 @@
goal_difficulty = FOOD_GOAL_NORMAL
/// mashed taters
-/obj/item/food/snacks/mashed_potatoes
+/obj/item/food/mashed_potatoes
name = "mashed potatoes"
desc = "Some soft, creamy, and irresistible mashed potatoes."
icon_state = "mashedtaters"
@@ -89,7 +89,7 @@
tastes = list("mashed potato" = 3, "gravy" = 1)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/stuffing
+/obj/item/food/stuffing
name = "stuffing"
desc = "Moist, peppery breadcrumbs for filling the body cavities of dead birds. Dig in!"
icon_state = "stuffing"
@@ -98,7 +98,7 @@
tastes = list("bread crumbs" = 1, "herbs" = 1)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/loadedbakedpotato
+/obj/item/food/loadedbakedpotato
name = "loaded baked potato"
desc = "Totally baked."
icon_state = "loadedbakedpotato"
@@ -107,7 +107,7 @@
tastes = list("potato" = 1, "cheese" = 1, "herbs" = 1)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/boiledrice
+/obj/item/food/boiledrice
name = "boiled rice"
desc = "A boring dish of boring rice."
icon_state = "boiledrice"
@@ -117,18 +117,18 @@
tastes = list("rice" = 1)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/boiledrice/attackby(obj/item/I, mob/user, params)
+/obj/item/food/boiledrice/attackby(obj/item/I, mob/user, params)
if(!istype(I, /obj/item/stack/seaweed))
return ..()
var/obj/item/stack/seaweed/S = I
if(!S.use(1))
return ..()
- var/obj/item/food/snacks/onigiri/O = new(get_turf(user))
+ var/obj/item/food/onigiri/O = new(get_turf(user))
reagents.trans_to(O, reagents.total_volume)
qdel(src)
user.put_in_active_hand(O)
-/obj/item/food/snacks/roastparsnip
+/obj/item/food/roastparsnip
name = "roast parsnip"
desc = "Sweet and crunchy."
icon_state = "roastparsnip"
@@ -138,7 +138,7 @@
tastes = list("parsnip" = 1)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/onigiri
+/obj/item/food/onigiri
name = "onigiri"
desc = "Rice and seaweed."
icon_state = "onigiri"
diff --git a/code/modules/food_and_drinks/food/foods/soups.dm b/code/modules/food_and_drinks/food/foods/soups.dm
index e7b4db67565e..6da52d5685bc 100644
--- a/code/modules/food_and_drinks/food/foods/soups.dm
+++ b/code/modules/food_and_drinks/food/foods/soups.dm
@@ -4,7 +4,7 @@
//////////////////////
// Base object for soups, should never appear ingame.
-/obj/item/food/snacks/soup
+/obj/item/food/soup
name = "impossible soup"
desc = "This soup is so good, it shouldn't even exist!"
icon = 'icons/obj/food/soupsalad.dmi'
@@ -13,7 +13,7 @@
trash = /obj/item/trash/snack_bowl
bitesize = 5
-/obj/item/food/snacks/soup/meatballsoup
+/obj/item/food/soup/meatballsoup
name = "meatball soup"
desc = "You've got balls kid, BALLS!"
icon_state = "meatballsoup"
@@ -22,7 +22,7 @@
tastes = list("meatball" = 1)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/soup/slimesoup
+/obj/item/food/soup/slimesoup
name = "slime soup"
desc = "If no water is available, you may substitute tears."
icon_state = "slimesoup"
@@ -31,7 +31,7 @@
tastes = list("slime" = 1)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/soup/bloodsoup
+/obj/item/food/soup/bloodsoup
name = "tomato soup"
desc = "Smells like copper."
icon_state = "tomatosoup"
@@ -40,7 +40,7 @@
tastes = list("iron" = 1)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/soup/clownstears
+/obj/item/food/soup/clownstears
name = "clown's tears"
desc = "Not very funny."
icon_state = "clownstears"
@@ -49,7 +49,7 @@
tastes = list("a bad joke" = 1)
goal_difficulty = FOOD_GOAL_EXCESSIVE
-/obj/item/food/snacks/soup/vegetablesoup
+/obj/item/food/soup/vegetablesoup
name = "vegetable soup"
desc = "A true vegan meal." //TODO
icon_state = "vegetablesoup"
@@ -58,7 +58,7 @@
tastes = list("vegetables" = 1)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/soup/nettlesoup
+/obj/item/food/soup/nettlesoup
name = "nettle soup"
desc = "To think, the botanist would've beaten you to death with one of these."
icon_state = "nettlesoup"
@@ -67,7 +67,7 @@
tastes = list("nettles" = 1)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/soup/mysterysoup
+/obj/item/food/soup/mysterysoup
name = "mystery soup"
desc = "The mystery is, why aren't you eating it?"
icon_state = "mysterysoup"
@@ -76,12 +76,12 @@
tastes = list("chaos" = 1)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/soup/mysterysoup/Initialize(mapload)
+/obj/item/food/soup/mysterysoup/Initialize(mapload)
. = ..()
extra_reagent = pick("capsaicin", "frostoil", "omnizine", "banana", "blood", "slimejelly", "toxin", "banana", "carbon", "oculine")
reagents.add_reagent("[extra_reagent]", 5)
-/obj/item/food/snacks/soup/wishsoup
+/obj/item/food/soup/wishsoup
name = "wish soup"
desc = "I wish this was soup."
icon_state = "wishsoup"
@@ -89,14 +89,14 @@
list_reagents = list("water" = 10)
tastes = list("wishes" = 1)
-/obj/item/food/snacks/soup/wishsoup/Initialize(mapload)
+/obj/item/food/soup/wishsoup/Initialize(mapload)
. = ..()
if(prob(25))
desc = "A wish come true!" // hue
reagents.add_reagent("nutriment", 9)
reagents.add_reagent("vitamin", 1)
-/obj/item/food/snacks/soup/tomatosoup
+/obj/item/food/soup/tomatosoup
name = "tomato soup"
desc = "Drinking this feels like being a vampire! A tomato vampire..."
icon_state = "tomatosoup"
@@ -105,7 +105,7 @@
tastes = list("tomato" = 1)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/soup/misosoup
+/obj/item/food/soup/misosoup
name = "miso soup"
desc = "The universe's best soup! Yum!!!"
icon_state = "misosoup"
@@ -113,7 +113,7 @@
tastes = list("miso" = 1)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/soup/mushroomsoup
+/obj/item/food/soup/mushroomsoup
name = "chantrelle soup"
desc = "A delicious and hearty mushroom soup."
icon_state = "mushroomsoup"
@@ -122,7 +122,7 @@
tastes = list("mushroom" = 1)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/soup/beetsoup
+/obj/item/food/soup/beetsoup
name = "beet soup"
desc = "Wait, how do you spell it again..?"
icon_state = "beetsoup"
@@ -131,11 +131,11 @@
tastes = list("beet" = 1)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/soup/beetsoup/Initialize(mapload)
+/obj/item/food/soup/beetsoup/Initialize(mapload)
. = ..()
name = pick("borsch", "bortsch", "borstch", "borsh", "borshch", "borscht")
-/obj/item/food/snacks/soup/eyesoup
+/obj/item/food/soup/eyesoup
name = "eyeball soup"
desc = "It looks back at you..."
icon_state = "eyeballsoup"
@@ -144,7 +144,7 @@
tastes = list("squirming" = 2, "tomato" = 2)
goal_difficulty = FOOD_GOAL_HARD
-/obj/item/food/snacks/soup/sweetpotatosoup
+/obj/item/food/soup/sweetpotatosoup
name = "sweet potato soup"
desc = "Delicious sweet potato in soup form."
icon_state = "sweetpotatosoup"
@@ -152,7 +152,7 @@
tastes = list("sweet potato" = 1)
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/soup/redbeetsoup
+/obj/item/food/soup/redbeetsoup
name = "red beet soup"
desc = "Quite a delicacy."
icon_state = "redbeetsoup"
@@ -161,7 +161,7 @@
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/soup/frenchonionsoup
+/obj/item/food/soup/frenchonionsoup
name = "french onion soup"
desc = "Good enough to make a grown mime cry."
icon_state = "onionsoup"
@@ -170,7 +170,7 @@
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/soup/zurek
+/obj/item/food/soup/zurek
name = "zurek"
desc = "A traditional Polish soup composed of vegetables, meat, and an egg. Goes great with bread."
icon_state = "zurek"
@@ -179,7 +179,7 @@
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/soup/cullenskink
+/obj/item/food/soup/cullenskink
name = "cullen skink"
desc = "A thick Scottish soup made of smoked fish, potatoes and onions."
icon_state = "cullen_skink"
@@ -188,7 +188,7 @@
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/soup/chicken_noodle_soup
+/obj/item/food/soup/chicken_noodle_soup
name = "chicken noodle soup"
desc = "A hearty bowl of chicken noodle soup, perfect for when you're stuck at home and sick."
icon_state = "chicken_noodle_soup"
@@ -197,7 +197,7 @@
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/soup/cornchowder
+/obj/item/food/soup/cornchowder
name = "corn chowder"
desc = "A creamy bowl of corn chowder, with bacon bits and mixed vegetables. One bowl is never enough."
icon_state = "corn_chowder"
@@ -206,7 +206,7 @@
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/soup/meatball_noodles
+/obj/item/food/soup/meatball_noodles
name = "meatball noodle soup"
desc = "A hearty noodle soup made from meatballs and pasta in a rich broth. Commonly topped with a handful of chopped nuts."
icon_state = "meatball_noodles"
@@ -215,7 +215,7 @@
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/soup/seedsoup
+/obj/item/food/soup/seedsoup
name = "Misklmæsch" //miskl = seed, mæsch = soup
desc = "A seed based soup, made by germinating seeds and then boiling them. \
Produces a particularly bitter broth which is usually balanced by the addition of vinegar."
@@ -229,7 +229,7 @@
// Stews //
//////////////////////
-/obj/item/food/snacks/soup/stew
+/obj/item/food/soup/stew
name = "stew"
desc = "A nice and warm stew. Healthy and strong."
icon_state = "stew"
@@ -240,7 +240,7 @@
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/stewedsoymeat
+/obj/item/food/stewedsoymeat
name = "stewed soy meat"
desc = "Even non-vegetarians will LOVE this!"
icon = 'icons/obj/food/soupsalad.dmi'
@@ -251,7 +251,7 @@
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/soup/beanstew
+/obj/item/food/soup/beanstew
name = "Prickeldröndolhaskl" //prickeld = spicy, röndol = bean, haskl = stew
desc = "A spicy bean stew with lots of veggies, commonly served aboard the fleet as a filling and satisfying meal with rice or bread."
icon_state = "moth_bean_stew"
@@ -260,7 +260,7 @@
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/soup/oatstew
+/obj/item/food/soup/oatstew
name = "Häfmisklhaskl" //häfmiskl = oat (häf from German hafer meaning oat, miskl meaning seed), haskl = stew
desc = "A spicy bean stew with lots of veggies, commonly served aboard the fleet as a filling and satisfying meal with rice or bread."
icon_state = "moth_oat_stew"
@@ -269,7 +269,7 @@
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/soup/hong_kong_borscht
+/obj/item/food/soup/hong_kong_borscht
name = "hong kong borscht"
desc = "Also known as luo song tang or Russian soup, this dish bears little to no resemblance to Eastern European borscht- indeed, it's a tomato-based soup with no beets in sight."
icon_state = "hong_kong_borscht"
@@ -278,7 +278,7 @@
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/soup/hong_kong_macaroni
+/obj/item/food/soup/hong_kong_macaroni
name = "hong kong macaroni"
desc = "A favourite from Hong Kong's Cha Chaan Tengs, this macaroni soup came to Mars with Cantonese settlers under Cybersun Industries, and has become as much of a breakfast staple there as it is in its homeland."
icon_state = "hong_kong_macaroni"
@@ -291,7 +291,7 @@
// Chili //
//////////////////////
-/obj/item/food/snacks/soup/hotchili
+/obj/item/food/soup/hotchili
name = "hot chili"
desc = "A five alarm Texan Chili!"
icon_state = "hotchili"
@@ -301,7 +301,7 @@
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/soup/coldchili
+/obj/item/food/soup/coldchili
name = "cold chili"
desc = "This slush is barely a liquid!"
icon_state = "coldchili"
@@ -311,7 +311,7 @@
goal_difficulty = FOOD_GOAL_NORMAL
-/obj/item/food/snacks/soup/clownchili
+/obj/item/food/soup/clownchili
name = "chili con carnival"
desc = "A delicious stew of meat, chiles, and salty, salty clown tears."
icon_state = "clownchili"
diff --git a/code/modules/food_and_drinks/food/snacks.dm b/code/modules/food_and_drinks/food/snacks.dm
deleted file mode 100644
index c79f57df3452..000000000000
--- a/code/modules/food_and_drinks/food/snacks.dm
+++ /dev/null
@@ -1,300 +0,0 @@
-#define MAX_WEIGHT_CLASS WEIGHT_CLASS_SMALL
-//Food items that are eaten normally and don't leave anything behind.
-/obj/item/food/snacks
- name = "snack"
- desc = "yummy"
- icon = 'icons/obj/food/food.dmi'
- icon_state = null
- var/bitecount = 0
- var/trash = null
- var/slice_path
- var/slices_num
- var/dried_type = null
- var/dry = FALSE
- var/cooktype[0]
- var/cooked_type = null //for microwave cooking. path of the resulting item after microwaving
- var/total_w_class = 0 //for the total weight an item of food can carry
- var/list/tastes // for example list("crisps" = 2, "salt" = 1)
-
-/obj/item/food/snacks/add_initial_reagents()
- if(tastes && length(tastes))
- if(list_reagents)
- for(var/rid in list_reagents)
- var/amount = list_reagents[rid]
- if(rid == "nutriment" || rid == "vitamin" || rid == "protein" || rid == "plantmatter")
- reagents.add_reagent(rid, amount, tastes.Copy())
- else
- reagents.add_reagent(rid, amount)
- else
- ..()
-
-//Placeholder for effect that trigger on eating that aren't tied to reagents.
-/obj/item/food/snacks/proc/On_Consume(mob/M, mob/user)
- if(!user)
- return
- if(!reagents.total_volume)
- if(M == user)
- to_chat(user, "You finish eating [src].")
- user.visible_message("[M] finishes eating [src].")
- user.unEquip(src) //so icons update :[
- Post_Consume(M)
- var/obj/item/trash_item = generate_trash(usr)
- usr.put_in_hands(trash_item)
- qdel(src)
- return
-
-/obj/item/food/snacks/proc/Post_Consume(mob/living/M)
- return
-
-/obj/item/food/snacks/attack_self(mob/user)
- return
-
-/obj/item/food/snacks/attack(mob/M, mob/user, def_zone)
- if(user.a_intent == INTENT_HARM && force)
- return ..()
- if(reagents && !reagents.total_volume) //Shouldn't be needed but it checks to see if it has anything left in it.
- to_chat(user, "None of [src] left, oh no!")
- M.unEquip(src) //so icons update :[
- qdel(src)
- return FALSE
-
- if(iscarbon(M))
- var/mob/living/carbon/C = M
- if(C.eat(src, user))
- bitecount++
- On_Consume(C, user)
- return TRUE
- return FALSE
-
-/obj/item/food/snacks/afterattack(obj/target, mob/user, proximity)
- return
-
-/obj/item/food/snacks/examine(mob/user)
- . = ..()
- if(in_range(user, src))
- if(bitecount > 0)
- if(bitecount==1)
- . += "[src] was bitten by someone!"
- else if(bitecount<=3)
- . += "[src] was bitten [bitecount] times!"
- else
- . += "[src] was bitten multiple times!"
-
-
-/obj/item/food/snacks/attackby(obj/item/W, mob/user, params)
- if(is_pen(W))
- rename_interactive(user, W, use_prefix = FALSE, prompt = "What would you like to name this dish?")
- return
- if(isstorage(W))
- ..() // -> item/attackby(, params)
-
- else if(istype(W,/obj/item/kitchen/utensil))
-
- var/obj/item/kitchen/utensil/U = W
-
- if(length(U.contents) >= U.max_contents)
- to_chat(user, "You cannot fit anything else on your [U].")
- return
-
- user.visible_message( \
- "[user] scoops up some [src] with \the [U]!", \
- "You scoop up some [src] with \the [U]!" \
- )
-
- bitecount++
- U.overlays.Cut()
- var/image/I = new(U.icon, "loadedfood")
- I.color = filling_color
- U.overlays += I
-
- var/obj/item/food/snacks/collected = new type
- collected.name = name
- collected.loc = U
- collected.reagents.remove_any(collected.reagents.total_volume)
- collected.trash = null
- if(reagents.total_volume > bitesize)
- reagents.trans_to(collected, bitesize)
- else
- reagents.trans_to(collected, reagents.total_volume)
- if(trash)
- var/obj/item/TrashItem
- if(ispath(trash,/obj/item))
- TrashItem = new trash(src)
- else if(isitem(trash))
- TrashItem = trash
- TrashItem.forceMove(loc)
- qdel(src)
- return TRUE
- else
- return ..()
-
-/obj/item/food/snacks/proc/generate_trash(atom/location)
- if(trash)
- if(ispath(trash, /obj/item))
- . = new trash(location)
- trash = null
- return
- else if(isitem(trash))
- var/obj/item/trash_item = trash
- trash_item.forceMove(location)
- . = trash
- trash = null
- return
-
-/obj/item/food/snacks/Destroy()
- if(contents)
- for(var/atom/movable/something in contents)
- something.loc = get_turf(src)
- return ..()
-
-/obj/item/food/snacks/attack_animal(mob/M)
- if(isanimal(M))
- M.changeNext_move(CLICK_CD_MELEE)
- if(isdog(M))
- var/mob/living/simple_animal/pet/dog/D = M
- if(world.time < (D.last_eaten + 300))
- to_chat(D, "You are too full to try eating [src] right now.")
- else if(bitecount >= 4)
- D.visible_message("[D] [pick("burps from enjoyment", "yaps for more", "woofs twice", "looks at the area where [src] was")].","You swallow up the last part of [src].")
- playsound(loc,'sound/items/eatfood.ogg', rand(10,50), 1)
- D.adjustHealth(-10)
- D.last_eaten = world.time
- D.taste(reagents)
- qdel(src)
- else
- D.visible_message("[D] takes a bite of [src].","You take a bite of [src].")
- playsound(loc,'sound/items/eatfood.ogg', rand(10,50), 1)
- bitecount++
- D.last_eaten = world.time
- D.taste(reagents)
- else if(ismouse(M))
- var/mob/living/simple_animal/mouse/N = M
- to_chat(N, "You nibble away at [src].")
- if(prob(50))
- N.visible_message("[N] nibbles away at [src].", "")
- N.adjustHealth(-2)
- N.taste(reagents)
- else if(iscaterpillar(M))
- var/mob/living/simple_animal/nian_caterpillar/W = M
- W.taste(reagents)
- W.consume(src)
-
-/obj/item/food/snacks/sliceable/examine(mob/user)
- . = ..()
- . += "Alt-click to put something small inside."
-
-/obj/item/food/snacks/sliceable/AltClick(mob/user)
- if(!Adjacent(user))
- return
- var/obj/item/I = user.get_active_hand()
- if(!I)
- return
- if(I.w_class > WEIGHT_CLASS_SMALL)
- to_chat(user, "You cannot fit [I] in [src]!")
- return
- var/newweight = GetTotalContentsWeight() + I.GetTotalContentsWeight() + I.w_class
- if(newweight > MAX_WEIGHT_CLASS)
- // Nope, no bluespace slice food
- to_chat(user, "You cannot fit [I] in [src]!")
- return
- if(!iscarbon(user))
- return
- if(!user.drop_item())
- to_chat(user, "You cannot slip [I] inside [src]!")
- return
- to_chat(user, "You slip [I] inside [src].")
- total_w_class += I.w_class
- add_fingerprint(user)
- I.forceMove(src)
-
-/obj/item/food/snacks/sliceable/attackby(obj/item/I, mob/user, params)
- if((slices_num <= 0 || !slices_num) || !slice_path)
- return FALSE
-
- var/inaccurate = TRUE
- if(I.sharp)
- if(istype(I, /obj/item/kitchen/knife) || istype(I, /obj/item/scalpel))
- inaccurate = FALSE
- else
- return TRUE
- if(!isturf(loc) || !(locate(/obj/structure/table) in loc) && \
- !(locate(/obj/machinery/optable) in loc) && !(locate(/obj/item/storage/bag/tray) in loc))
- to_chat(user, "You cannot slice [src] here! You need a table or at least a tray to do it.")
- return TRUE
- var/slices_lost = 0
- if(!inaccurate)
- user.visible_message("[user] slices [src]!",
- "You slice [src]!")
- else
- user.visible_message("[user] crudely slices [src] with [I]!",
- "You crudely slice [src] with your [I]!")
- slices_lost = rand(1,min(1,round(slices_num/2)))
- var/reagents_per_slice = reagents.total_volume/slices_num
- for(var/i=1 to (slices_num-slices_lost))
- var/obj/slice = new slice_path (loc)
- reagents.trans_to(slice,reagents_per_slice)
- slice.pixel_x = rand(-7, 7)
- slice.pixel_y = rand(-7, 7)
- qdel(src)
- return ..()
-////////////////////////////////////////////////////////////////////////////////
-/// FOOD END
-////////////////////////////////////////////////////////////////////////////////
-
-
-
-
-
-
-
-
-
-
-
-//////////////////////////////////////////////////
-////////////////////////////////////////////Snacks
-//////////////////////////////////////////////////
-//Items in the "Snacks" subcategory are food items that people actually eat. The key points are that they are created
-// already filled with reagents and are destroyed when empty. Additionally, they make a "munching" noise when eaten.
-
-//Notes by Darem: Food in the "snacks" subtype can hold a maximum of 50 units Generally speaking, you don't want to go over 40
-// total for the item because you want to leave space for extra condiments. If you want effect besides healing, add a reagent for
-// it. Try to stick to existing reagents when possible (so if you want a stronger healing effect, just use Tricordrazine). On use
-// effect (such as the old officer eating a donut code) requires a unique reagent (unless you can figure out a better way).
-
-//The nutriment reagent and bitesize variable replace the old heal_amt and amount variables. Each unit of nutriment is equal to
-// 2 of the old heal_amt variable. Bitesize is the rate at which the reagents are consumed. So if you have 6 nutriment and a
-// bitesize of 2, then it'll take 3 bites to eat. Unlike the old system, the contained reagents are evenly spread among all
-// the bites. No more contained reagents = no more bites.
-
-/obj/item/food/snacks/badrecipe
- name = "burned mess"
- desc = "Someone should be demoted from chef for this."
- icon_state = "badrecipe"
- filling_color = "#211F02"
- list_reagents = list("????" = 30)
-
-/obj/item/food/snacks/badrecipe/Initialize(mapload)
- . = ..()
- // it's burned! it should start off being classed as any cooktype that burns
- cooktype["grilled"] = TRUE
- cooktype["deep fried"] = TRUE
-
-// MISC
-
-/obj/item/food/snacks/cereal
- name = "box of cereal"
- desc = "A box of cereal."
- icon = 'icons/obj/food/food.dmi'
- icon_state = "cereal_box"
- list_reagents = list("nutriment" = 3)
-
-/obj/item/food/snacks/deepfryholder
- name = "Deep Fried Foods Holder Obj"
- desc = "If you can see this description the code for the deep fryer fucked up."
- icon = 'icons/obj/food/food.dmi'
- icon_state = "deepfried_holder_icon"
- list_reagents = list("nutriment" = 3)
-
-
-#undef MAX_WEIGHT_CLASS
diff --git a/code/modules/food_and_drinks/food_base.dm b/code/modules/food_and_drinks/food_base.dm
index 21c53fbad007..005b1f28a004 100644
--- a/code/modules/food_and_drinks/food_base.dm
+++ b/code/modules/food_and_drinks/food_base.dm
@@ -2,7 +2,13 @@
/// Food.
////////////////////////////////////////////////////////////////////////////////
+#define MAX_WEIGHT_CLASS WEIGHT_CLASS_SMALL
+
/obj/item/food
+ name = "snack"
+ desc = "yummy"
+ icon = 'icons/obj/food/food.dmi'
+ icon_state = null
resistance_flags = FLAMMABLE
container_type = INJECTABLE
w_class = WEIGHT_CLASS_TINY
@@ -33,6 +39,17 @@
/// Affects the quantity of food that is requested by CC.
var/goal_difficulty = FOOD_GOAL_SKIP
+ var/bitecount = 0
+ var/trash = null
+ var/slice_path
+ var/slices_num
+ var/dried_type = null
+ var/dry = FALSE
+ var/cooktype[0]
+ var/cooked_type = null //for microwave cooking. path of the resulting item after microwaving
+ var/total_w_class = 0 //for the total weight an item of food can carry
+ var/list/tastes // for example list("crisps" = 2, "salt" = 1)
+
/obj/item/food/Initialize(mapload)
. = ..()
@@ -57,10 +74,21 @@
ant_location = null
if(isprocessing)
STOP_PROCESSING(SSobj, src)
+ if(contents)
+ for(var/atom/movable/something in contents)
+ something.forceMove(get_turf(src))
return ..()
-/obj/item/food/proc/add_initial_reagents() // This literally is only a proc for junk food
- if(list_reagents)
+/obj/item/food/proc/add_initial_reagents()
+ if(tastes && length(tastes) && length(list_reagents))
+ for(var/rid in list_reagents)
+ var/amount = list_reagents[rid]
+ if(rid == "nutriment" || rid == "vitamin" || rid == "protein" || rid == "plantmatter")
+ reagents.add_reagent(rid, amount, tastes.Copy())
+ else
+ reagents.add_reagent(rid, amount)
+
+ else if(length(list_reagents))
reagents.add_reagent_list(list_reagents)
/obj/item/food/process()
@@ -95,9 +123,245 @@
desc += " It appears to be infested with ants. Yuck!"
reagents.add_reagent("ants", 1) // Don't eat things with ants in it you weirdo.
+/obj/item/food/examine(mob/user)
+ . = ..()
+ if(in_range(user, src))
+ if(bitecount > 0)
+ if(bitecount==1)
+ . += "[src] was bitten by someone!"
+ else if(bitecount<=3)
+ . += "[src] was bitten [bitecount] times!"
+ else
+ . += "[src] was bitten multiple times!"
+
/obj/item/food/ex_act()
if(reagents)
for(var/datum/reagent/R in reagents.reagent_list)
R.on_ex_act()
if(!QDELETED(src))
..()
+
+//Placeholder for effect that trigger on eating that aren't tied to reagents.
+/obj/item/food/proc/On_Consume(mob/M, mob/user)
+ if(!user)
+ return
+ if(!reagents.total_volume)
+ if(M == user)
+ to_chat(user, "You finish eating [src].")
+ user.visible_message("[M] finishes eating [src].")
+ user.unEquip(src) //so icons update :[
+ Post_Consume(M)
+ var/obj/item/trash_item = generate_trash(user)
+ user.put_in_hands(trash_item)
+ qdel(src)
+
+/obj/item/food/proc/Post_Consume(mob/living/M)
+ return
+
+/obj/item/food/attack_self(mob/user)
+ return
+
+/obj/item/food/attack(mob/M, mob/user, def_zone)
+ if(user.a_intent == INTENT_HARM && force)
+ return ..()
+ if(reagents && !reagents.total_volume) // Shouldn't be needed but it checks to see if it has anything left in it.
+ to_chat(user, "None of [src] left, oh no!")
+ M.unEquip(src) //so icons update :[
+ qdel(src)
+ return FALSE
+
+ if(iscarbon(M))
+ var/mob/living/carbon/C = M
+ if(C.eat(src, user))
+ bitecount++
+ On_Consume(C, user)
+ return TRUE
+ return FALSE
+
+/obj/item/food/afterattack(obj/target, mob/user, proximity)
+ return
+
+/obj/item/food/attackby(obj/item/W, mob/user, params)
+ if(is_pen(W))
+ rename_interactive(user, W, use_prefix = FALSE, prompt = "What would you like to name this dish?")
+ return
+ if(isstorage(W))
+ ..() // -> item/attackby(, params)
+
+ else if(istype(W,/obj/item/kitchen/utensil))
+
+ var/obj/item/kitchen/utensil/U = W
+
+ if(length(U.contents) >= U.max_contents)
+ to_chat(user, "You cannot fit anything else on your [U].")
+ return
+
+ user.visible_message( \
+ "[user] scoops up some [src] with \the [U]!", \
+ "You scoop up some [src] with \the [U]!" \
+ )
+
+ bitecount++
+ U.overlays.Cut()
+ var/image/I = new(U.icon, "loadedfood")
+ I.color = filling_color
+ U.overlays += I
+
+ var/obj/item/food/collected = new type
+ collected.name = name
+ collected.loc = U
+ collected.reagents.remove_any(collected.reagents.total_volume)
+ collected.trash = null
+ if(reagents.total_volume > bitesize)
+ reagents.trans_to(collected, bitesize)
+ else
+ reagents.trans_to(collected, reagents.total_volume)
+ if(trash)
+ var/obj/item/TrashItem
+ if(ispath(trash,/obj/item))
+ TrashItem = new trash(src)
+ else if(isitem(trash))
+ TrashItem = trash
+ TrashItem.forceMove(loc)
+ qdel(src)
+ return TRUE
+ else
+ return ..()
+
+/obj/item/food/proc/generate_trash(atom/location)
+ if(trash)
+ if(ispath(trash, /obj/item))
+ . = new trash(location)
+ trash = null
+ return
+ else if(isitem(trash))
+ var/obj/item/trash_item = trash
+ trash_item.forceMove(location)
+ . = trash
+ trash = null
+ return
+
+/obj/item/food/attack_animal(mob/M)
+ if(isanimal(M))
+ M.changeNext_move(CLICK_CD_MELEE)
+ if(isdog(M))
+ var/mob/living/simple_animal/pet/dog/D = M
+ if(world.time < (D.last_eaten + 300))
+ to_chat(D, "You are too full to try eating [src] right now.")
+ else if(bitecount >= 4)
+ D.visible_message("[D] [pick("burps from enjoyment", "yaps for more", "woofs twice", "looks at the area where [src] was")].","You swallow up the last part of [src].")
+ playsound(loc,'sound/items/eatfood.ogg', rand(10,50), 1)
+ D.adjustHealth(-10)
+ D.last_eaten = world.time
+ D.taste(reagents)
+ qdel(src)
+ else
+ D.visible_message("[D] takes a bite of [src].","You take a bite of [src].")
+ playsound(loc,'sound/items/eatfood.ogg', rand(10,50), 1)
+ bitecount++
+ D.last_eaten = world.time
+ D.taste(reagents)
+ else if(ismouse(M))
+ var/mob/living/simple_animal/mouse/N = M
+ to_chat(N, "You nibble away at [src].")
+ if(prob(50))
+ N.visible_message("[N] nibbles away at [src].", "")
+ N.adjustHealth(-2)
+ N.taste(reagents)
+ else if(iscaterpillar(M))
+ var/mob/living/simple_animal/nian_caterpillar/W = M
+ W.taste(reagents)
+ W.consume(src)
+
+/obj/item/food/sliceable
+ slices_num = 2
+
+/obj/item/food/sliceable/examine(mob/user)
+ . = ..()
+ . += "Alt-click to put something small inside."
+
+/obj/item/food/sliceable/AltClick(mob/user)
+ if(!Adjacent(user))
+ return
+ var/obj/item/I = user.get_active_hand()
+ if(!I)
+ return
+ if(I.w_class > WEIGHT_CLASS_SMALL)
+ to_chat(user, "You cannot fit [I] in [src]!")
+ return
+ var/newweight = GetTotalContentsWeight() + I.GetTotalContentsWeight() + I.w_class
+ if(newweight > MAX_WEIGHT_CLASS)
+ // Nope, no bluespace slice food
+ to_chat(user, "You cannot fit [I] in [src]!")
+ return
+ if(!iscarbon(user))
+ return
+ if(!user.drop_item())
+ to_chat(user, "You cannot slip [I] inside [src]!")
+ return
+ to_chat(user, "You slip [I] inside [src].")
+ total_w_class += I.w_class
+ add_fingerprint(user)
+ I.forceMove(src)
+
+/obj/item/food/sliceable/attackby(obj/item/I, mob/user, params)
+ if((slices_num <= 0 || !slices_num) || !slice_path)
+ return FALSE
+
+ var/inaccurate = TRUE
+ if(I.sharp)
+ if(istype(I, /obj/item/kitchen/knife) || istype(I, /obj/item/scalpel))
+ inaccurate = FALSE
+ else
+ return TRUE
+ if(!isturf(loc) || !(locate(/obj/structure/table) in loc) && \
+ !(locate(/obj/machinery/optable) in loc) && !(locate(/obj/item/storage/bag/tray) in loc))
+ to_chat(user, "You cannot slice [src] here! You need a table or at least a tray to do it.")
+ return TRUE
+ var/slices_lost = 0
+ if(!inaccurate)
+ user.visible_message("[user] slices [src]!",
+ "You slice [src]!")
+ else
+ user.visible_message("[user] crudely slices [src] with [I]!",
+ "You crudely slice [src] with your [I]!")
+ slices_lost = rand(1, min(1, round(slices_num / 2)))
+ var/reagents_per_slice = reagents.total_volume/slices_num
+ for(var/i in 1 to (slices_num - slices_lost))
+ var/obj/slice = new slice_path (loc)
+ reagents.trans_to(slice,reagents_per_slice)
+ slice.pixel_x = rand(-7, 7)
+ slice.pixel_y = rand(-7, 7)
+ qdel(src)
+ return ..()
+
+/obj/item/food/badrecipe
+ name = "burned mess"
+ desc = "Someone should be demoted from chef for this."
+ icon_state = "badrecipe"
+ filling_color = "#211F02"
+ list_reagents = list("????" = 30)
+
+/obj/item/food/badrecipe/Initialize(mapload)
+ . = ..()
+ // it's burned! it should start off being classed as any cooktype that burns
+ cooktype["grilled"] = TRUE
+ cooktype["deep fried"] = TRUE
+
+// MISC
+
+/obj/item/food/cereal
+ name = "box of cereal"
+ desc = "A box of cereal."
+ icon = 'icons/obj/food/food.dmi'
+ icon_state = "cereal_box"
+ list_reagents = list("nutriment" = 3)
+
+/obj/item/food/deepfryholder
+ name = "Deep Fried Foods Holder Obj"
+ desc = "If you can see this description the code for the deep fryer fucked up."
+ icon = 'icons/obj/food/food.dmi'
+ icon_state = "deepfried_holder_icon"
+ list_reagents = list("nutriment" = 3)
+
+#undef MAX_WEIGHT_CLASS
diff --git a/code/modules/food_and_drinks/kitchen_machinery/cereal_maker.dm b/code/modules/food_and_drinks/kitchen_machinery/cereal_maker.dm
index a0d534809432..787dada32d05 100644
--- a/code/modules/food_and_drinks/kitchen_machinery/cereal_maker.dm
+++ b/code/modules/food_and_drinks/kitchen_machinery/cereal_maker.dm
@@ -19,6 +19,6 @@
setme.desc = "[name.desc] It has been [thiscooktype]"
/obj/machinery/cooker/cerealmaker/gettype()
- var/obj/item/food/snacks/cereal/type = new(get_turf(src))
+ var/obj/item/food/cereal/type = new(get_turf(src))
return type
diff --git a/code/modules/food_and_drinks/kitchen_machinery/cooker.dm b/code/modules/food_and_drinks/kitchen_machinery/cooker.dm
index 6ea19108e8b8..08f662b9ad80 100644
--- a/code/modules/food_and_drinks/kitchen_machinery/cooker.dm
+++ b/code/modules/food_and_drinks/kitchen_machinery/cooker.dm
@@ -34,13 +34,13 @@
return ..()
// checks if the snack has been cooked in a certain way
-/obj/machinery/cooker/proc/checkCooked(obj/item/food/snacks/D)
+/obj/machinery/cooker/proc/checkCooked(obj/item/food/D)
if(D.cooktype[thiscooktype])
return 1
return 0
// Sets the new snack's cooktype list to the same as the old one - no more cooking something in the same machine more than once!
-/obj/machinery/cooker/proc/setCooked(obj/item/food/snacks/oldtypes, obj/item/food/snacks/newtypes)
+/obj/machinery/cooker/proc/setCooked(obj/item/food/oldtypes, obj/item/food/newtypes)
var/ct
for(ct in oldtypes.cooktype)
newtypes.cooktype[ct] = oldtypes.cooktype[ct]
@@ -115,7 +115,7 @@
return FALSE
if(has_specials && checkSpecials(check))
return TRUE
- if(istype(check, /obj/item/food/snacks) || emagged)
+ if(istype(check, /obj/item/food) || emagged)
if(istype(check, /obj/item/disk/nuclear)) //(1984 voice) you will not deep fry the NAD
to_chat(user, "The disk is more useful raw than [thiscooktype].")
return FALSE
@@ -147,7 +147,7 @@
// if burns = FALSE then it'll just tell you that the item is already that foodtype and it would do nothing
// if you wanted a different side effect set burns to 1 and override burn_food()
/obj/machinery/cooker/proc/burn_food(mob/user, obj/item/reagent_containers/props)
- var/obj/item/food/snacks/badrecipe/burnt = new(get_turf(src))
+ var/obj/item/food/badrecipe/burnt = new(get_turf(src))
setRegents(props, burnt)
soundloop.stop()
to_chat(user, "You smell burning coming from [src]!")
@@ -177,7 +177,7 @@
// Override this with the correct snack type
/obj/machinery/cooker/proc/gettype()
- var/obj/item/food/snacks/type = new(get_turf(src))
+ var/obj/item/food/type = new(get_turf(src))
return type
/obj/machinery/cooker/attackby(obj/item/I, mob/user, params)
@@ -197,7 +197,7 @@
if(!checkValid(I, user))
return
if(!burns)
- if(istype(I, /obj/item/food/snacks))
+ if(istype(I, /obj/item/food))
if(checkCooked(I))
to_chat(user, "That is already [thiscooktype], it would do nothing!")
return
@@ -226,17 +226,17 @@
cookSpecial(special) //Handle cooking the item as appropriate
turnoff(I) //Shut off the machine and qdel the original item
return
- if(istype(I, /obj/item/food/snacks))
+ if(istype(I, /obj/item/food))
if(checkCooked(I))
burn_food(user, I)
turnoff(I)
return
- var/obj/item/food/snacks/newfood = gettype()
+ var/obj/item/food/newfood = gettype()
setIcon(I, newfood)
changename(I, newfood)
if(istype(I, /obj/item/reagent_containers))
setRegents(I, newfood)
- if(istype(I, /obj/item/food/snacks))
+ if(istype(I, /obj/item/food))
setCooked(I, newfood)
newfood.cooktype[thiscooktype] = TRUE
turnoff(I)
diff --git a/code/modules/food_and_drinks/kitchen_machinery/deep_fryer.dm b/code/modules/food_and_drinks/kitchen_machinery/deep_fryer.dm
index 5c8292c0d843..d90039b1b723 100644
--- a/code/modules/food_and_drinks/kitchen_machinery/deep_fryer.dm
+++ b/code/modules/food_and_drinks/kitchen_machinery/deep_fryer.dm
@@ -40,7 +40,7 @@
cooktime = (200 - (E * 20)) //Effectively each laser improves cooktime by 20 per rating beyond the first (200 base, 80 max upgrade)
/obj/machinery/cooker/deepfryer/gettype()
- var/obj/item/food/snacks/deepfryholder/type = new(get_turf(src))
+ var/obj/item/food/deepfryholder/type = new(get_turf(src))
return type
/obj/machinery/cooker/deepfryer/attackby(obj/item/I, mob/user, params)
@@ -157,44 +157,44 @@
return istype(I, input)
/datum/deepfryer_special/shrimp
- input = /obj/item/food/snacks/shrimp
- output = /obj/item/food/snacks/fried_shrimp
+ input = /obj/item/food/shrimp
+ output = /obj/item/food/fried_shrimp
/datum/deepfryer_special/banana
- input = /obj/item/food/snacks/grown/banana
- output = /obj/item/food/snacks/friedbanana
+ input = /obj/item/food/grown/banana
+ output = /obj/item/food/friedbanana
/datum/deepfryer_special/fries
- input = /obj/item/food/snacks/rawsticks
- output = /obj/item/food/snacks/fries
+ input = /obj/item/food/rawsticks
+ output = /obj/item/food/fries
/datum/deepfryer_special/corn_chips
- input = /obj/item/food/snacks/grown/corn
- output = /obj/item/food/snacks/cornchips
+ input = /obj/item/food/grown/corn
+ output = /obj/item/food/cornchips
/datum/deepfryer_special/fried_tofu
- input = /obj/item/food/snacks/tofu
- output = /obj/item/food/snacks/fried_tofu
+ input = /obj/item/food/tofu
+ output = /obj/item/food/fried_tofu
/datum/deepfryer_special/chimichanga
- input = /obj/item/food/snacks/burrito
- output = /obj/item/food/snacks/chimichanga
+ input = /obj/item/food/burrito
+ output = /obj/item/food/chimichanga
/datum/deepfryer_special/potato_chips
- input = /obj/item/food/snacks/grown/potato/wedges
- output = /obj/item/food/snacks/chips
+ input = /obj/item/food/grown/potato/wedges
+ output = /obj/item/food/chips
/datum/deepfryer_special/carrotfries
- input = /obj/item/food/snacks/grown/carrot/wedges
- output = /obj/item/food/snacks/carrotfries
+ input = /obj/item/food/grown/carrot/wedges
+ output = /obj/item/food/carrotfries
/datum/deepfryer_special/onionrings
- input = /obj/item/food/snacks/onion_slice
- output = /obj/item/food/snacks/onionrings
+ input = /obj/item/food/onion_slice
+ output = /obj/item/food/onionrings
/datum/deepfryer_special/fried_vox
input = /obj/item/organ/external
- output = /obj/item/food/snacks/fried_vox
+ output = /obj/item/food/fried_vox
/datum/deepfryer_special/fried_vox/validate(obj/item/I)
if(!..())
diff --git a/code/modules/food_and_drinks/kitchen_machinery/gibber.dm b/code/modules/food_and_drinks/kitchen_machinery/gibber.dm
index 8ad5a5a81cee..f7899b4f19aa 100644
--- a/code/modules/food_and_drinks/kitchen_machinery/gibber.dm
+++ b/code/modules/food_and_drinks/kitchen_machinery/gibber.dm
@@ -106,14 +106,12 @@
if(default_deconstruction_screwdriver(user, "grinder_open", "grinder", P))
return
- if(exchange_parts(user, P))
- return
-
if(default_unfasten_wrench(user, P, time = 4 SECONDS))
return
if(default_deconstruction_crowbar(user, P))
return
+
return ..()
/obj/machinery/gibber/MouseDrop_T(mob/target, mob/user)
@@ -247,13 +245,13 @@
var/slab_name = occupant.name
var/slab_count = 6
- var/slab_type = /obj/item/food/snacks/meat/human //gibber can only gib humans on paracode, no need to check meat type
+ var/slab_type = /obj/item/food/meat/human //gibber can only gib humans on paracode, no need to check meat type
var/slab_nutrition = occupant.nutrition / 15
slab_nutrition /= slab_count
for(var/i=1 to slab_count)
- var/obj/item/food/snacks/meat/new_meat = new slab_type(src)
+ var/obj/item/food/meat/new_meat = new slab_type(src)
new_meat.name = "[slab_name] [new_meat.name]"
new_meat.reagents.add_reagent("nutriment", slab_nutrition)
diff --git a/code/modules/food_and_drinks/kitchen_machinery/icecream_vat.dm b/code/modules/food_and_drinks/kitchen_machinery/icecream_vat.dm
index 02fc3ff9162c..b57424f48bd1 100644
--- a/code/modules/food_and_drinks/kitchen_machinery/icecream_vat.dm
+++ b/code/modules/food_and_drinks/kitchen_machinery/icecream_vat.dm
@@ -42,7 +42,7 @@
to_chat(user, "You add [I] to [src]")
updateUsrDialog()
return
- if(istype(I, /obj/item/food/snacks/frozen/icecream))
+ if(istype(I, /obj/item/food/frozen/icecream))
if(!I.reagents.has_reagent("sprinkles"))
if(I.reagents.total_volume > 29)
I.reagents.remove_any(1)
@@ -141,7 +141,7 @@
else if(href_list["createchoco"])
var/name = generate_name(reagents.get_master_reagent_name())
name += " Chocolate Cone"
- var/obj/item/food/snacks/frozen/icecream/icecreamcup/C = new(loc)
+ var/obj/item/food/frozen/icecream/icecreamcup/C = new(loc)
C.name = "[name]"
C.pixel_x = rand(-8, 8)
C.pixel_y = -16
@@ -153,7 +153,7 @@
else if(href_list["createcone"])
var/name = generate_name(reagents.get_master_reagent_name())
name += " Cone"
- var/obj/item/food/snacks/frozen/icecream/icecreamcone/C = new(loc)
+ var/obj/item/food/frozen/icecream/icecreamcone/C = new(loc)
C.name = "[name]"
C.pixel_x = rand(-8, 8)
C.pixel_y = -16
@@ -165,7 +165,7 @@
else if(href_list["createwaffle"])
var/name = generate_name(reagents.get_master_reagent_name())
name += " Waffle Cone"
- var/obj/item/food/snacks/frozen/icecream/wafflecone/C = new(loc)
+ var/obj/item/food/frozen/icecream/wafflecone/C = new(loc)
C.name = "[name]"
C.pixel_x = rand(-8, 8)
C.pixel_y = -16
diff --git a/code/modules/food_and_drinks/kitchen_machinery/kitchen_machine.dm b/code/modules/food_and_drinks/kitchen_machinery/kitchen_machine.dm
index 09e60e96ff3c..4d1a35328383 100644
--- a/code/modules/food_and_drinks/kitchen_machinery/kitchen_machine.dm
+++ b/code/modules/food_and_drinks/kitchen_machinery/kitchen_machine.dm
@@ -65,7 +65,7 @@
GLOB.cooking_reagents[recipe_type] |= reagent
else
qdel(recipe)
- GLOB.cooking_ingredients[recipe_type] |= /obj/item/food/snacks/grown
+ GLOB.cooking_ingredients[recipe_type] |= /obj/item/food/grown
/*******************
* Item Adding
@@ -74,11 +74,13 @@
/obj/machinery/kitchen_machine/attackby(obj/item/O, mob/user, params)
if(operating)
return
+
if(dirty < MAX_DIRT)
if(default_deconstruction_screwdriver(user, open_icon, off_icon, O))
return
- if(exchange_parts(user, O))
- return
+
+ if(istype(O, /obj/item/storage/part_replacer))
+ return ..()
default_deconstruction_crowbar(user, O)
@@ -91,13 +93,16 @@
update_icon(UPDATE_ICON_STATE)
container_type = OPENCONTAINER
return TRUE
+
else //Otherwise bad luck!!
to_chat(user, "It's dirty!")
return TRUE
- else if(is_type_in_list(O, GLOB.cooking_ingredients[recipe_type]) || istype(O, /obj/item/mixing_bowl))
+
+ if(is_type_in_list(O, GLOB.cooking_ingredients[recipe_type]) || istype(O, /obj/item/mixing_bowl))
if(length(contents) >= max_n_of_items)
to_chat(user, "This [src] is full of ingredients, you cannot put more.")
return TRUE
+
if(istype(O,/obj/item/stack))
var/obj/item/stack/S = O
if(S.get_amount() > 1)
@@ -111,16 +116,19 @@
else if(is_type_in_list(O, list(/obj/item/reagent_containers/glass, /obj/item/reagent_containers/drinks, /obj/item/reagent_containers/condiment)))
if(!O.reagents)
return TRUE
+
for(var/datum/reagent/R in O.reagents.reagent_list)
if(!(R.id in GLOB.cooking_reagents[recipe_type]))
to_chat(user, "Your [O] contains components unsuitable for cookery.")
return TRUE
+
else if(istype(O, /obj/item/grab))
var/obj/item/grab/G = O
if(HAS_TRAIT(user, TRAIT_PACIFISM))
to_chat(user, "Slamming [G.affecting] into [src] might hurt them!")
return
return special_attack_grab(G, user)
+
else
to_chat(user, "You have no idea what you can cook with [O].")
return TRUE
@@ -416,7 +424,7 @@
amount += reagents.total_volume
reagents.clear_reagents()
if(amount)
- var/obj/item/food/snacks/badrecipe/mysteryfood = new(src)
+ var/obj/item/food/badrecipe/mysteryfood = new(src)
mysteryfood.reagents.add_reagent("carbon", amount / 2)
mysteryfood.reagents.add_reagent("????", amount / 15)
mysteryfood.forceMove(get_turf(src))
diff --git a/code/modules/food_and_drinks/kitchen_machinery/monkeyrecycler.dm b/code/modules/food_and_drinks/kitchen_machinery/monkeyrecycler.dm
index 753b398e6a32..e007796c9df8 100644
--- a/code/modules/food_and_drinks/kitchen_machinery/monkeyrecycler.dm
+++ b/code/modules/food_and_drinks/kitchen_machinery/monkeyrecycler.dm
@@ -14,7 +14,7 @@ GLOBAL_LIST_EMPTY(monkey_recyclers)
var/required_grind = 5
var/cube_production = 1
var/cycle_through = 0
- var/obj/item/food/snacks/monkeycube/cube_type = /obj/item/food/snacks/monkeycube
+ var/obj/item/food/monkeycube/cube_type = /obj/item/food/monkeycube
var/list/connected = list()
/obj/machinery/monkey_recycler/Initialize(mapload)
@@ -58,8 +58,8 @@ GLOBAL_LIST_EMPTY(monkey_recyclers)
if(default_deconstruction_screwdriver(user, "grinder_open", "grinder", O))
return
- if(exchange_parts(user, O))
- return
+ if(istype(O, /obj/item/storage/part_replacer))
+ return ..()
if(default_unfasten_wrench(user, O, time = 4 SECONDS))
power_change()
@@ -73,17 +73,17 @@ GLOBAL_LIST_EMPTY(monkey_recyclers)
cycle_through++
switch(cycle_through)
if(1)
- cube_type = /obj/item/food/snacks/monkeycube/nian_wormecube
+ cube_type = /obj/item/food/monkeycube/nian_wormecube
if(2)
- cube_type = /obj/item/food/snacks/monkeycube/farwacube
+ cube_type = /obj/item/food/monkeycube/farwacube
if(3)
- cube_type = /obj/item/food/snacks/monkeycube/wolpincube
+ cube_type = /obj/item/food/monkeycube/wolpincube
if(4)
- cube_type = /obj/item/food/snacks/monkeycube/stokcube
+ cube_type = /obj/item/food/monkeycube/stokcube
if(5)
- cube_type = /obj/item/food/snacks/monkeycube/neaeracube
+ cube_type = /obj/item/food/monkeycube/neaeracube
if(6)
- cube_type = /obj/item/food/snacks/monkeycube
+ cube_type = /obj/item/food/monkeycube
cycle_through = 0
to_chat(user, "You change the monkeycube type to [initial(cube_type.name)].")
else
@@ -111,9 +111,8 @@ GLOBAL_LIST_EMPTY(monkey_recyclers)
animate(src, pixel_x = pixel_x + offset, time = 0.2, loop = 200) //start shaking
use_power(500)
grinded++
- sleep(50)
- pixel_x = initial(pixel_x)
to_chat(user, "The machine now has [grinded] monkey\s worth of material stored.")
+ addtimer(VARSET_CALLBACK(src, pixel_x, initial(pixel_x)), 5 SECONDS)
else
to_chat(user, "The machine only accepts monkeys!")
else
diff --git a/code/modules/food_and_drinks/kitchen_machinery/oven.dm b/code/modules/food_and_drinks/kitchen_machinery/oven.dm
deleted file mode 100644
index 94ebc9c61bbe..000000000000
--- a/code/modules/food_and_drinks/kitchen_machinery/oven.dm
+++ /dev/null
@@ -1,80 +0,0 @@
-/obj/machinery/cooking
- name = "oven"
- desc = "Cookies are ready, dear."
- icon = 'icons/obj/cooking_machines.dmi'
- icon_state = "oven_off"
- layer = 2.9
- density = TRUE
- anchored = TRUE
- idle_power_consumption = 5
-
- var/candy = FALSE
- var/on = FALSE //Is it making food already?
- var/list/food_choices = list()
-
-/obj/machinery/cooking/Initialize(mapload)
- . = ..()
- updatefood()
-
-/obj/machinery/cooking/attackby(obj/item/I, mob/user, params)
- if(on)
- to_chat(user, "The machine is already running.")
- return
- else
- var/obj/item/F = I
- var/obj/item/food/snacks/customizable/C
- C = tgui_input_list(user, "Select food to make.", "Cooking", food_choices)
- if(!C)
- return
- else
- to_chat(user, "You put [F] into [src] for cooking.")
- user.drop_item()
- F.loc = src
- on = TRUE
- if(!candy)
- icon_state = "oven_on"
- else
- icon_state = "mixer_on"
- sleep(100)
- on = FALSE
- if(!candy)
- icon_state = "oven_off"
- else
- icon_state = "mixer_off"
- C.loc = get_turf(src)
- C.attackby(F,user, params)
- playsound(loc, 'sound/machines/ding.ogg', 50, 1)
- updatefood()
- return
-
-/obj/machinery/cooking/proc/updatefood()
- return
-
-/obj/machinery/cooking/oven
- name = "oven"
- desc = "Cookies are ready, dear."
- icon = 'icons/obj/cooking_machines.dmi'
- icon_state = "oven_off"
-
-/obj/machinery/cooking/oven/updatefood()
- for(var/U in food_choices)
- food_choices.Remove(U)
- for(var/U in subtypesof(/obj/item/food/snacks/customizable/cook))
- var/obj/item/food/snacks/customizable/cook/V = new U
- food_choices += V
- return
-
-/obj/machinery/cooking/candy
- name = "candy machine"
- desc = "Get yer box of deep fried deep fried deep fried deep fried cotton candy cereal sandwich cookies here!"
- icon = 'icons/obj/cooking_machines.dmi'
- icon_state = "mixer_off"
- candy = TRUE
-
-/obj/machinery/cooking/candy/updatefood()
- for(var/U in food_choices)
- food_choices.Remove(U)
- for(var/U in subtypesof(/obj/item/food/snacks/customizable/candy))
- var/obj/item/food/snacks/customizable/candy/V = new U
- food_choices += V
- return
diff --git a/code/modules/food_and_drinks/kitchen_machinery/processor.dm b/code/modules/food_and_drinks/kitchen_machinery/processor.dm
index c9eff5ae83bf..795741fc4cd6 100644
--- a/code/modules/food_and_drinks/kitchen_machinery/processor.dm
+++ b/code/modules/food_and_drinks/kitchen_machinery/processor.dm
@@ -89,36 +89,36 @@
/////OBJECT RECIPIES/////
/////////////////////////
/datum/food_processor_process/meat
- input = /obj/item/food/snacks/meat
- output = /obj/item/food/snacks/meatball
+ input = /obj/item/food/meat
+ output = /obj/item/food/meatball
/datum/food_processor_process/potato
- input = /obj/item/food/snacks/grown/potato
- output = /obj/item/food/snacks/rawsticks
+ input = /obj/item/food/grown/potato
+ output = /obj/item/food/rawsticks
/datum/food_processor_process/rawsticks
- input = /obj/item/food/snacks/rawsticks
- output = /obj/item/food/snacks/tatortot
+ input = /obj/item/food/rawsticks
+ output = /obj/item/food/tatortot
/datum/food_processor_process/soybeans
- input = /obj/item/food/snacks/grown/soybeans
- output = /obj/item/food/snacks/soydope
+ input = /obj/item/food/grown/soybeans
+ output = /obj/item/food/soydope
/datum/food_processor_process/spaghetti
- input = /obj/item/food/snacks/doughslice
- output = /obj/item/food/snacks/spaghetti
+ input = /obj/item/food/doughslice
+ output = /obj/item/food/spaghetti
/datum/food_processor_process/macaroni
- input = /obj/item/food/snacks/spaghetti
- output = /obj/item/food/snacks/macaroni
+ input = /obj/item/food/spaghetti
+ output = /obj/item/food/macaroni
/datum/food_processor_process/parsnip
- input = /obj/item/food/snacks/grown/parsnip
- output = /obj/item/food/snacks/roastparsnip
+ input = /obj/item/food/grown/parsnip
+ output = /obj/item/food/roastparsnip
/datum/food_processor_process/carrot
- input = /obj/item/food/snacks/grown/carrot
- output = /obj/item/food/snacks/grown/carrot/wedges
+ input = /obj/item/food/grown/carrot
+ output = /obj/item/food/grown/carrot/wedges
/datum/food_processor_process/towercap
input = /obj/item/grown/log
@@ -189,16 +189,15 @@
return 0
/obj/machinery/processor/attackby(obj/item/O, mob/user, params)
-
if(processing)
to_chat(user, "\the [src] is already processing something!")
- return 1
+ return TRUE
if(default_deconstruction_screwdriver(user, "processor_open", "processor", O))
return
- if(exchange_parts(user, O))
- return
+ if(istype(O, /obj/item/storage/part_replacer))
+ return ..()
if(default_unfasten_wrench(user, O, time = 4 SECONDS))
return
diff --git a/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm b/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm
index 6ea26c477515..0303d07045b9 100644
--- a/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm
+++ b/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm
@@ -82,7 +82,7 @@
update_icon(UPDATE_OVERLAYS)
// Accepted items
accepted_items_typecache = typecacheof(list(
- /obj/item/food/snacks/grown,
+ /obj/item/food/grown,
/obj/item/seeds,
/obj/item/grown,
))
@@ -178,31 +178,43 @@
return ..()
/obj/machinery/smartfridge/attackby(obj/item/O, mob/user)
- if(exchange_parts(user, O))
+ if(istype(O, /obj/item/storage/part_replacer))
+ . = ..()
SStgui.update_uis(src)
return
+
if(stat & (BROKEN|NOPOWER))
- to_chat(user, "\The [src] is unpowered and useless.")
+ to_chat(user, "[src] is unpowered and useless.")
return
if(load(O, user))
- user.visible_message("[user] has added \the [O] to \the [src].", "You add \the [O] to \the [src].")
+ user.visible_message(
+ "[user] has added [O] to [src].",
+ "You add [O] to [src]."
+ )
SStgui.update_uis(src)
update_icon(UPDATE_OVERLAYS)
- else if(istype(O, /obj/item/storage/bag) || istype(O, /obj/item/storage/box))
+ return
+
+ if(istype(O, /obj/item/storage/bag) || istype(O, /obj/item/storage/box))
var/obj/item/storage/P = O
var/items_loaded = 0
for(var/obj/G in P.contents)
if(load(G, user))
items_loaded++
if(items_loaded)
- user.visible_message("[user] loads \the [src] with \the [P].", "You load \the [src] with \the [P].")
+ user.visible_message(
+ "[user] loads [src] with [P].",
+ "You load [src] with [P]."
+ )
SStgui.update_uis(src)
update_icon(UPDATE_OVERLAYS)
var/failed = length(P.contents)
if(failed)
to_chat(user, "[failed] item\s [failed == 1 ? "is" : "are"] refused.")
- else if(!istype(O, /obj/item/card/emag))
+ return
+
+ if(!istype(O, /obj/item/card/emag))
to_chat(user, "\The [src] smartly refuses [O].")
return TRUE
@@ -427,10 +439,10 @@
// Syndicate Druglab Ruin
/obj/machinery/smartfridge/food/syndicate_druglab
starting_items = list(
- /obj/item/food/snacks/boiledrice = 2,
- /obj/item/food/snacks/macncheese = 1,
- /obj/item/food/snacks/syndicake = 3,
- /obj/item/food/snacks/beans = 4,
+ /obj/item/food/boiledrice = 2,
+ /obj/item/food/macncheese = 1,
+ /obj/item/food/syndicake = 3,
+ /obj/item/food/beans = 4,
/obj/item/reagent_containers/glass/beaker/waterbottle/large = 7,
/obj/item/reagent_containers/drinks/bottle/kahlua = 1,
/obj/item/reagent_containers/drinks/bottle/orangejuice = 2)
@@ -475,7 +487,7 @@
/obj/machinery/smartfridge/foodcart/Initialize(mapload)
. = ..()
accepted_items_typecache = typecacheof(list(
- /obj/item/food/snacks,
+ /obj/item/food,
/obj/item/reagent_containers/drinks,
/obj/item/reagent_containers/condiment,
))
@@ -804,7 +816,7 @@
component_parts = null
// Accepted items
accepted_items_typecache = typecacheof(list(
- /obj/item/food/snacks,
+ /obj/item/food,
/obj/item/stack/sheet/wetleather,
))
@@ -853,8 +865,8 @@
/obj/machinery/smartfridge/drying_rack/accept_check(obj/item/O)
. = ..()
// If it's a food, reject non driable ones
- if(istype(O, /obj/item/food/snacks))
- var/obj/item/food/snacks/S = O
+ if(istype(O, /obj/item/food))
+ var/obj/item/food/S = O
if(!S.dried_type)
return FALSE
@@ -875,7 +887,7 @@
* Called in [/obj/machinery/smartfridge/drying_rack/process] to dry the contents.
*/
/obj/machinery/smartfridge/drying_rack/proc/rack_dry()
- for(var/obj/item/food/snacks/S in contents)
+ for(var/obj/item/food/S in contents)
if(S.dried_type == S.type)//if the dried type is the same as the object's type, don't bother creating a whole new item...
S.color = "#ad7257"
S.dry = TRUE
diff --git a/code/modules/food_and_drinks/recipes/recipes_candy.dm b/code/modules/food_and_drinks/recipes/recipes_candy.dm
index e47449af1935..46a2eec574fe 100644
--- a/code/modules/food_and_drinks/recipes/recipes_candy.dm
+++ b/code/modules/food_and_drinks/recipes/recipes_candy.dm
@@ -3,7 +3,7 @@
* /datum/recipe/candy/
* reagents = list()
* items = list()
-* result = /obj/item/food/snacks/
+* result = /obj/item/food/
* byproduct = /obj/item/ // only set this if the recipe has a byproduct, like returning it's mould
*
* NOTE: If using a mould, make sure to list it in *BOTH* the items and byproduct lists if it is to be returned.
@@ -18,74 +18,74 @@
/datum/recipe/candy/chocolate_bar
reagents = list("soymilk" = 2, "cocoa" = 2, "sugar" = 2)
items = list()
- result = /obj/item/food/snacks/chocolatebar
+ result = /obj/item/food/chocolatebar
/datum/recipe/candy/chocolate_bar2
reagents = list("milk" = 2, "cocoa" = 2, "sugar" = 2)
items = list()
- result = /obj/item/food/snacks/chocolatebar
+ result = /obj/item/food/chocolatebar
/datum/recipe/candy/fudge_peanut
reagents = list("sugar" = 5, "milk" = 5)
- items = list(/obj/item/food/snacks/chocolatebar, /obj/item/food/snacks/grown/peanuts,
- /obj/item/food/snacks/grown/peanuts, /obj/item/food/snacks/grown/peanuts)
- result = /obj/item/food/snacks/candy/fudge/peanut
+ items = list(/obj/item/food/chocolatebar, /obj/item/food/grown/peanuts,
+ /obj/item/food/grown/peanuts, /obj/item/food/grown/peanuts)
+ result = /obj/item/food/candy/fudge/peanut
/datum/recipe/candy/fudge_cherry
reagents = list("sugar" = 5, "milk" = 5)
- items = list(/obj/item/food/snacks/chocolatebar, /obj/item/food/snacks/grown/cherries,
- /obj/item/food/snacks/grown/cherries, /obj/item/food/snacks/grown/cherries)
- result = /obj/item/food/snacks/candy/fudge/cherry
+ items = list(/obj/item/food/chocolatebar, /obj/item/food/grown/cherries,
+ /obj/item/food/grown/cherries, /obj/item/food/grown/cherries)
+ result = /obj/item/food/candy/fudge/cherry
/datum/recipe/candy/fudge_cookies_n_cream
reagents = list("sugar" = 5, "milk" = 5, "cream" = 5)
items = list(
- /obj/item/food/snacks/chocolatebar,
- /obj/item/food/snacks/cookie,
+ /obj/item/food/chocolatebar,
+ /obj/item/food/cookie,
)
- result = /obj/item/food/snacks/candy/fudge/cookies_n_cream
+ result = /obj/item/food/candy/fudge/cookies_n_cream
/datum/recipe/candy/fudge_turtle
reagents = list("sugar" = 5, "milk" = 5)
items = list(
- /obj/item/food/snacks/chocolatebar,
- /obj/item/food/snacks/candy/caramel,
- /obj/item/food/snacks/grown/peanuts
+ /obj/item/food/chocolatebar,
+ /obj/item/food/candy/caramel,
+ /obj/item/food/grown/peanuts
)
- result = /obj/item/food/snacks/candy/fudge/turtle
+ result = /obj/item/food/candy/fudge/turtle
/datum/recipe/candy/fudge
reagents = list("sugar" = 5, "milk" = 5)
- items = list(/obj/item/food/snacks/chocolatebar)
- result = /obj/item/food/snacks/candy/fudge
+ items = list(/obj/item/food/chocolatebar)
+ result = /obj/item/food/candy/fudge
/datum/recipe/candy/caramel
reagents = list("sugar" = 5, "cream" = 5)
items = list()
- result = /obj/item/food/snacks/candy/caramel
+ result = /obj/item/food/candy/caramel
/datum/recipe/candy/toffee
reagents = list("sugar" = 5, "flour" = 10)
- result = /obj/item/food/snacks/candy/toffee
+ result = /obj/item/food/candy/toffee
/datum/recipe/candy/taffy
reagents = list("salglu_solution" = 15)
items = list()
- result = /obj/item/food/snacks/candy/taffy
+ result = /obj/item/food/candy/taffy
/datum/recipe/candy/nougat
reagents = list("sugar" = 5, "cornoil" = 5)
- items = list(/obj/item/food/snacks/egg)
- result = /obj/item/food/snacks/candy/nougat
+ items = list(/obj/item/food/egg)
+ result = /obj/item/food/candy/nougat
/datum/recipe/candy/nougat/make_food(obj/container)
- var/obj/item/food/snacks/candy/nougat/being_cooked = ..()
+ var/obj/item/food/candy/nougat/being_cooked = ..()
being_cooked.reagents.del_reagent("egg")
return being_cooked
/datum/recipe/candy/wafflecone
reagents = list("milk" = 1, "sugar" = 1)
- result = /obj/item/food/snacks/wafflecone
+ result = /obj/item/food/wafflecone
// ***********************************************************
// Base Candy Recipes (unflavored / plain)
@@ -96,14 +96,14 @@
items = list(
/obj/item/c_tube,
)
- result = /obj/item/food/snacks/candy/cotton
+ result = /obj/item/food/candy/cotton
/datum/recipe/candy/gummybear
reagents = list("sugar" = 5, "water" = 5, "cornoil" = 5)
items = list(
/obj/item/kitchen/mould/bear,
)
- result = /obj/item/food/snacks/candy/gummybear
+ result = /obj/item/food/candy/gummybear
byproduct = /obj/item/kitchen/mould/bear
/datum/recipe/candy/gummyworm
@@ -111,7 +111,7 @@
items = list(
/obj/item/kitchen/mould/worm,
)
- result = /obj/item/food/snacks/candy/gummyworm
+ result = /obj/item/food/candy/gummyworm
byproduct = /obj/item/kitchen/mould/worm
/datum/recipe/candy/jellybean
@@ -119,7 +119,7 @@
items = list(
/obj/item/kitchen/mould/bean,
)
- result = /obj/item/food/snacks/candy/jellybean
+ result = /obj/item/food/candy/jellybean
byproduct = /obj/item/kitchen/mould/bean
/datum/recipe/candy/jawbreaker
@@ -127,44 +127,44 @@
items = list(
/obj/item/kitchen/mould/ball,
)
- result = /obj/item/food/snacks/candy/jawbreaker
+ result = /obj/item/food/candy/jawbreaker
byproduct = /obj/item/kitchen/mould/ball
/datum/recipe/candy/candycane
reagents = list("sugar" = 5)
items = list(
/obj/item/kitchen/mould/cane,
- /obj/item/food/snacks/mint,
+ /obj/item/food/mint,
)
- result = /obj/item/food/snacks/candy/candycane
+ result = /obj/item/food/candy/candycane
byproduct = /obj/item/kitchen/mould/cane
/datum/recipe/candy/gum
reagents = list("sugar" = 5, "water" = 5, "cornoil" = 5)
items = list()
- result = /obj/item/food/snacks/candy/gum
+ result = /obj/item/food/candy/gum
/datum/recipe/candy/candybar
reagents = list("sugar" = 5)
items = list(
- /obj/item/food/snacks/chocolatebar,
+ /obj/item/food/chocolatebar,
)
- result = /obj/item/food/snacks/candy/candybar
+ result = /obj/item/food/candy/candybar
/datum/recipe/candy/cash
items = list(
/obj/item/kitchen/mould/cash,
- /obj/item/food/snacks/chocolatebar,
+ /obj/item/food/chocolatebar,
)
- result = /obj/item/food/snacks/candy/cash
+ result = /obj/item/food/candy/cash
byproduct = /obj/item/kitchen/mould/cash
/datum/recipe/candy/coin
items = list(
/obj/item/kitchen/mould/coin,
- /obj/item/food/snacks/chocolatebar,
+ /obj/item/food/chocolatebar,
)
- result = /obj/item/food/snacks/candy/coin
+ result = /obj/item/food/candy/coin
byproduct = /obj/item/kitchen/mould/coin
/datum/recipe/candy/sucker
@@ -172,7 +172,7 @@
items = list(
/obj/item/kitchen/mould/loli,
)
- result = /obj/item/food/snacks/candy/sucker
+ result = /obj/item/food/candy/sucker
byproduct = /obj/item/kitchen/mould/loli
// ***********************************************************
@@ -182,84 +182,84 @@
/datum/recipe/candy/cottoncandy_red
reagents = list("cherryjelly" = 5)
items = list(
- /obj/item/food/snacks/candy/cotton,
+ /obj/item/food/candy/cotton,
)
- result = /obj/item/food/snacks/candy/cotton/red
+ result = /obj/item/food/candy/cotton/red
/datum/recipe/candy/cottoncandy_blue
reagents = list("berryjuice" = 5)
items = list(
- /obj/item/food/snacks/candy/cotton,
+ /obj/item/food/candy/cotton,
)
- result = /obj/item/food/snacks/candy/cotton/blue
+ result = /obj/item/food/candy/cotton/blue
/datum/recipe/candy/cottoncandy_poison
reagents = list("poisonberryjuice" = 5)
items = list(
- /obj/item/food/snacks/candy/cotton,
+ /obj/item/food/candy/cotton,
)
- result = /obj/item/food/snacks/candy/cotton/poison
+ result = /obj/item/food/candy/cotton/poison
/datum/recipe/candy/cottoncandy_green
reagents = list("limejuice" = 5)
items = list(
- /obj/item/food/snacks/candy/cotton,
+ /obj/item/food/candy/cotton,
)
- result = /obj/item/food/snacks/candy/cotton/green
+ result = /obj/item/food/candy/cotton/green
/datum/recipe/candy/cottoncandy_yellow
reagents = list("lemonjuice" = 5)
items = list(
- /obj/item/food/snacks/candy/cotton,
+ /obj/item/food/candy/cotton,
)
- result = /obj/item/food/snacks/candy/cotton/yellow
+ result = /obj/item/food/candy/cotton/yellow
/datum/recipe/candy/cottoncandy_orange
reagents = list("orangejuice" = 5)
items = list(
- /obj/item/food/snacks/candy/cotton,
+ /obj/item/food/candy/cotton,
)
- result = /obj/item/food/snacks/candy/cotton/orange
+ result = /obj/item/food/candy/cotton/orange
/datum/recipe/candy/cottoncandy_purple
reagents = list("grapejuice" = 5)
items = list(
- /obj/item/food/snacks/candy/cotton,
+ /obj/item/food/candy/cotton,
)
- result = /obj/item/food/snacks/candy/cotton/purple
+ result = /obj/item/food/candy/cotton/purple
/datum/recipe/candy/cottoncandy_pink
reagents = list("watermelonjuice" = 5)
items = list(
- /obj/item/food/snacks/candy/cotton,
+ /obj/item/food/candy/cotton,
)
- result = /obj/item/food/snacks/candy/cotton/pink
+ result = /obj/item/food/candy/cotton/pink
/datum/recipe/candy/cottoncandy_rainbow
reagents = list()
items = list(
- /obj/item/food/snacks/candy/cotton/red,
- /obj/item/food/snacks/candy/cotton/blue,
- /obj/item/food/snacks/candy/cotton/green,
- /obj/item/food/snacks/candy/cotton/yellow,
- /obj/item/food/snacks/candy/cotton/orange,
- /obj/item/food/snacks/candy/cotton/purple,
- /obj/item/food/snacks/candy/cotton/pink,
+ /obj/item/food/candy/cotton/red,
+ /obj/item/food/candy/cotton/blue,
+ /obj/item/food/candy/cotton/green,
+ /obj/item/food/candy/cotton/yellow,
+ /obj/item/food/candy/cotton/orange,
+ /obj/item/food/candy/cotton/purple,
+ /obj/item/food/candy/cotton/pink,
)
- result = /obj/item/food/snacks/candy/cotton/rainbow
+ result = /obj/item/food/candy/cotton/rainbow
/datum/recipe/candy/cottoncandy_rainbow2
reagents = list()
items = list(
- /obj/item/food/snacks/candy/cotton/red,
- /obj/item/food/snacks/candy/cotton/poison,
- /obj/item/food/snacks/candy/cotton/green,
- /obj/item/food/snacks/candy/cotton/yellow,
- /obj/item/food/snacks/candy/cotton/orange,
- /obj/item/food/snacks/candy/cotton/purple,
- /obj/item/food/snacks/candy/cotton/pink,
+ /obj/item/food/candy/cotton/red,
+ /obj/item/food/candy/cotton/poison,
+ /obj/item/food/candy/cotton/green,
+ /obj/item/food/candy/cotton/yellow,
+ /obj/item/food/candy/cotton/orange,
+ /obj/item/food/candy/cotton/purple,
+ /obj/item/food/candy/cotton/pink,
)
- result = /obj/item/food/snacks/candy/cotton/bad_rainbow
+ result = /obj/item/food/candy/cotton/bad_rainbow
// ***********************************************************
// Gummy Bear Recipes (flavored)
@@ -268,63 +268,63 @@
/datum/recipe/candy/gummybear_red
reagents = list("cherryjelly" = 5)
items = list(
- /obj/item/food/snacks/candy/gummybear,
+ /obj/item/food/candy/gummybear,
)
- result = /obj/item/food/snacks/candy/gummybear/red
+ result = /obj/item/food/candy/gummybear/red
/datum/recipe/candy/gummybear_blue
reagents = list("berryjuice" = 5)
items = list(
- /obj/item/food/snacks/candy/gummybear,
+ /obj/item/food/candy/gummybear,
)
- result = /obj/item/food/snacks/candy/gummybear/blue
+ result = /obj/item/food/candy/gummybear/blue
/datum/recipe/candy/gummybear_poison
reagents = list("poisonberryjuice" = 5)
items = list(
- /obj/item/food/snacks/candy/gummybear,
+ /obj/item/food/candy/gummybear,
)
- result = /obj/item/food/snacks/candy/gummybear/poison
+ result = /obj/item/food/candy/gummybear/poison
/datum/recipe/candy/gummybear_green
reagents = list("limejuice" = 5)
items = list(
- /obj/item/food/snacks/candy/gummybear,
+ /obj/item/food/candy/gummybear,
)
- result = /obj/item/food/snacks/candy/gummybear/green
+ result = /obj/item/food/candy/gummybear/green
/datum/recipe/candy/gummybear_yellow
reagents = list("lemonjuice" = 5)
items = list(
- /obj/item/food/snacks/candy/gummybear,
+ /obj/item/food/candy/gummybear,
)
- result = /obj/item/food/snacks/candy/gummybear/yellow
+ result = /obj/item/food/candy/gummybear/yellow
/datum/recipe/candy/gummybear_orange
reagents = list("orangejuice" = 5)
items = list(
- /obj/item/food/snacks/candy/gummybear,
+ /obj/item/food/candy/gummybear,
)
- result = /obj/item/food/snacks/candy/gummybear/orange
+ result = /obj/item/food/candy/gummybear/orange
/datum/recipe/candy/gummybear_purple
reagents = list("grapejuice" = 5)
items = list(
- /obj/item/food/snacks/candy/gummybear,
+ /obj/item/food/candy/gummybear,
)
- result = /obj/item/food/snacks/candy/gummybear/purple
+ result = /obj/item/food/candy/gummybear/purple
/datum/recipe/candy/gummybear_wtf
reagents = list("space_drugs" = 5)
items = list(
- /obj/item/food/snacks/candy/gummybear,
+ /obj/item/food/candy/gummybear,
)
- result = /obj/item/food/snacks/candy/gummybear/wtf
+ result = /obj/item/food/candy/gummybear/wtf
/datum/recipe/candy/gummybear_wtf2
reagents = list()
- items = list(/obj/item/food/snacks/candy/gummybear, /obj/item/food/snacks/grown/ambrosia/vulgaris)
- result = /obj/item/food/snacks/candy/gummybear/wtf
+ items = list(/obj/item/food/candy/gummybear, /obj/item/food/grown/ambrosia/vulgaris)
+ result = /obj/item/food/candy/gummybear/wtf
// ***********************************************************
// Gummy Worm Recipes (flavored)
@@ -333,62 +333,62 @@
/datum/recipe/candy/gummyworm_red
reagents = list("cherryjelly" = 5)
items = list(
- /obj/item/food/snacks/candy/gummyworm,
+ /obj/item/food/candy/gummyworm,
)
- result = /obj/item/food/snacks/candy/gummyworm/red
+ result = /obj/item/food/candy/gummyworm/red
/datum/recipe/candy/gummyworm_blue
reagents = list("berryjuice" = 5)
items = list(
- /obj/item/food/snacks/candy/gummyworm,
+ /obj/item/food/candy/gummyworm,
)
- result = /obj/item/food/snacks/candy/gummyworm/blue
+ result = /obj/item/food/candy/gummyworm/blue
/datum/recipe/candy/gummyworm_poison
reagents = list("poisonberryjuice" = 5)
items = list(
- /obj/item/food/snacks/candy/gummyworm,
+ /obj/item/food/candy/gummyworm,
)
- result = /obj/item/food/snacks/candy/gummyworm/poison
+ result = /obj/item/food/candy/gummyworm/poison
/datum/recipe/candy/gummyworm_green
reagents = list("limejuice" = 5)
items = list(
- /obj/item/food/snacks/candy/gummyworm,
+ /obj/item/food/candy/gummyworm,
)
- result = /obj/item/food/snacks/candy/gummyworm/green
+ result = /obj/item/food/candy/gummyworm/green
/datum/recipe/candy/gummyworm_yellow
reagents = list("lemonjuice" = 5)
items = list(
- /obj/item/food/snacks/candy/gummyworm,
+ /obj/item/food/candy/gummyworm,
)
- result = /obj/item/food/snacks/candy/gummyworm/yellow
+ result = /obj/item/food/candy/gummyworm/yellow
/datum/recipe/candy/gummyworm_orange
reagents = list("orangejuice" = 5)
items = list(
- /obj/item/food/snacks/candy/gummyworm,
+ /obj/item/food/candy/gummyworm,
)
- result = /obj/item/food/snacks/candy/gummyworm/orange
+ result = /obj/item/food/candy/gummyworm/orange
/datum/recipe/candy/gummyworm_purple
reagents = list("grapejuice" = 5)
items = list(
- /obj/item/food/snacks/candy/gummyworm,
+ /obj/item/food/candy/gummyworm,
)
- result = /obj/item/food/snacks/candy/gummyworm/purple
+ result = /obj/item/food/candy/gummyworm/purple
/datum/recipe/candy/gummyworm_wtf
reagents = list("space_drugs" = 5)
items = list(
- /obj/item/food/snacks/candy/gummyworm,
+ /obj/item/food/candy/gummyworm,
)
- result = /obj/item/food/snacks/candy/gummyworm/wtf
+ result = /obj/item/food/candy/gummyworm/wtf
/datum/recipe/candy/gummyworm_wtf2
- items = list(/obj/item/food/snacks/candy/gummyworm, /obj/item/food/snacks/grown/ambrosia/vulgaris)
- result = /obj/item/food/snacks/candy/gummyworm/wtf
+ items = list(/obj/item/food/candy/gummyworm, /obj/item/food/grown/ambrosia/vulgaris)
+ result = /obj/item/food/candy/gummyworm/wtf
// ***********************************************************
// Jelly Bean Recipes (flavored)
@@ -397,99 +397,99 @@
/datum/recipe/candy/jellybean_red
reagents = list("cherryjelly" = 5)
items = list(
- /obj/item/food/snacks/candy/jellybean,
+ /obj/item/food/candy/jellybean,
)
- result = /obj/item/food/snacks/candy/jellybean/red
+ result = /obj/item/food/candy/jellybean/red
/datum/recipe/candy/jellybean_blue
reagents = list("berryjuice" = 5)
items = list(
- /obj/item/food/snacks/candy/jellybean,
+ /obj/item/food/candy/jellybean,
)
- result = /obj/item/food/snacks/candy/jellybean/blue
+ result = /obj/item/food/candy/jellybean/blue
/datum/recipe/candy/jellybean_poison
reagents = list("poisonberryjuice" = 5)
items = list(
- /obj/item/food/snacks/candy/jellybean,
+ /obj/item/food/candy/jellybean,
)
- result = /obj/item/food/snacks/candy/jellybean/poison
+ result = /obj/item/food/candy/jellybean/poison
/datum/recipe/candy/jellybean_green
reagents = list("limejuice" = 5)
items = list(
- /obj/item/food/snacks/candy/jellybean,
+ /obj/item/food/candy/jellybean,
)
- result = /obj/item/food/snacks/candy/jellybean/green
+ result = /obj/item/food/candy/jellybean/green
/datum/recipe/candy/jellybean_yellow
reagents = list("lemonjuice" = 5)
items = list(
- /obj/item/food/snacks/candy/jellybean,
+ /obj/item/food/candy/jellybean,
)
- result = /obj/item/food/snacks/candy/jellybean/yellow
+ result = /obj/item/food/candy/jellybean/yellow
/datum/recipe/candy/jellybean_orange
reagents = list("orangejuice" = 5)
items = list(
- /obj/item/food/snacks/candy/jellybean,
+ /obj/item/food/candy/jellybean,
)
- result = /obj/item/food/snacks/candy/jellybean/orange
+ result = /obj/item/food/candy/jellybean/orange
/datum/recipe/candy/jellybean_purple
reagents = list("grapejuice" = 5)
items = list(
- /obj/item/food/snacks/candy/jellybean,
+ /obj/item/food/candy/jellybean,
)
- result = /obj/item/food/snacks/candy/jellybean/purple
+ result = /obj/item/food/candy/jellybean/purple
/datum/recipe/candy/jellybean_chocolate
reagents = list()
items = list(
- /obj/item/food/snacks/candy/jellybean,
- /obj/item/food/snacks/chocolatebar,
+ /obj/item/food/candy/jellybean,
+ /obj/item/food/chocolatebar,
)
- result = /obj/item/food/snacks/candy/jellybean/chocolate
+ result = /obj/item/food/candy/jellybean/chocolate
/datum/recipe/candy/jellybean_cola
reagents = list("cola" = 5)
items = list(
- /obj/item/food/snacks/candy/jellybean,
+ /obj/item/food/candy/jellybean,
)
- result = /obj/item/food/snacks/candy/jellybean/cola
+ result = /obj/item/food/candy/jellybean/cola
/datum/recipe/candy/jellybean_popcorn
reagents = list()
items = list(
- /obj/item/food/snacks/popcorn,
- /obj/item/food/snacks/candy/jellybean,
+ /obj/item/food/popcorn,
+ /obj/item/food/candy/jellybean,
)
- result = /obj/item/food/snacks/candy/jellybean/popcorn
+ result = /obj/item/food/candy/jellybean/popcorn
/datum/recipe/candy/jellybean_coffee
reagents = list("coffee" = 5)
items = list(
- /obj/item/food/snacks/candy/jellybean,
+ /obj/item/food/candy/jellybean,
)
- result = /obj/item/food/snacks/candy/jellybean/cola
+ result = /obj/item/food/candy/jellybean/cola
/datum/recipe/candy/jellybean_drgibb
reagents = list("dr_gibb" = 5)
items = list(
- /obj/item/food/snacks/candy/jellybean,
+ /obj/item/food/candy/jellybean,
)
- result = /obj/item/food/snacks/candy/jellybean/cola
+ result = /obj/item/food/candy/jellybean/cola
/datum/recipe/candy/jellybean_wtf
reagents = list("space_drugs" = 5)
items = list(
- /obj/item/food/snacks/candy/jellybean,
+ /obj/item/food/candy/jellybean,
)
- result = /obj/item/food/snacks/candy/jellybean/wtf
+ result = /obj/item/food/candy/jellybean/wtf
/datum/recipe/candy/jellybean_wtf2
- items = list(/obj/item/food/snacks/candy/jellybean, /obj/item/food/snacks/grown/ambrosia/vulgaris)
- result = /obj/item/food/snacks/candy/jellybean/wtf
+ items = list(/obj/item/food/candy/jellybean, /obj/item/food/grown/ambrosia/vulgaris)
+ result = /obj/item/food/candy/jellybean/wtf
// ***********************************************************
// Candybar Recipes (flavored)
@@ -498,39 +498,39 @@
/datum/recipe/candy/malper
reagents = list()
items = list(
- /obj/item/food/snacks/candy/candybar,
- /obj/item/food/snacks/candy/caramel,
+ /obj/item/food/candy/candybar,
+ /obj/item/food/candy/caramel,
)
- result = /obj/item/food/snacks/candy/confectionery/caramel
+ result = /obj/item/food/candy/confectionery/caramel
/datum/recipe/candy/toolerone
reagents = list()
items = list(
- /obj/item/food/snacks/candy/candybar,
- /obj/item/food/snacks/candy/nougat,
+ /obj/item/food/candy/candybar,
+ /obj/item/food/candy/nougat,
)
- result = /obj/item/food/snacks/candy/confectionery/nougat
+ result = /obj/item/food/candy/confectionery/nougat
/datum/recipe/candy/yumbaton
reagents = list()
items = list(
- /obj/item/food/snacks/candy/candybar,
- /obj/item/food/snacks/candy/toffee,
+ /obj/item/food/candy/candybar,
+ /obj/item/food/candy/toffee,
)
- result = /obj/item/food/snacks/candy/confectionery/toffee
+ result = /obj/item/food/candy/confectionery/toffee
/datum/recipe/candy/crunch
reagents = list("rice" = 5)
items = list(
- /obj/item/food/snacks/candy/candybar,
+ /obj/item/food/candy/candybar,
)
- result = /obj/item/food/snacks/candy/confectionery/rice
+ result = /obj/item/food/candy/confectionery/rice
/datum/recipe/candy/toxinstest
reagents = list()
items = list(
- /obj/item/food/snacks/candy/candybar,
- /obj/item/food/snacks/candy/caramel,
- /obj/item/food/snacks/candy/nougat,
+ /obj/item/food/candy/candybar,
+ /obj/item/food/candy/caramel,
+ /obj/item/food/candy/nougat,
)
- result = /obj/item/food/snacks/candy/confectionery/caramel_nougat
+ result = /obj/item/food/candy/confectionery/caramel_nougat
diff --git a/code/modules/food_and_drinks/recipes/recipes_grill.dm b/code/modules/food_and_drinks/recipes/recipes_grill.dm
index c80132bf2698..ac90ef968f25 100644
--- a/code/modules/food_and_drinks/recipes/recipes_grill.dm
+++ b/code/modules/food_and_drinks/recipes/recipes_grill.dm
@@ -3,312 +3,312 @@
/datum/recipe/grill/bacon
items = list(
- /obj/item/food/snacks/raw_bacon,
+ /obj/item/food/raw_bacon,
)
- result = /obj/item/food/snacks/bacon
+ result = /obj/item/food/bacon
/datum/recipe/grill/telebacon
items = list(
- /obj/item/food/snacks/meat,
+ /obj/item/food/meat,
/obj/item/assembly/signaler
)
- result = /obj/item/food/snacks/telebacon
+ result = /obj/item/food/telebacon
/datum/recipe/grill/syntitelebacon
items = list(
- /obj/item/food/snacks/meat/syntiflesh,
+ /obj/item/food/meat/syntiflesh,
/obj/item/assembly/signaler
)
- result = /obj/item/food/snacks/telebacon
+ result = /obj/item/food/telebacon
/datum/recipe/grill/friedegg
reagents = list("sodiumchloride" = 1, "blackpepper" = 1)
items = list(
- /obj/item/food/snacks/egg
+ /obj/item/food/egg
)
- result = /obj/item/food/snacks/friedegg
+ result = /obj/item/food/friedegg
/datum/recipe/grill/birdsteak
reagents = list("sodiumchloride" = 1, "blackpepper" = 1)
items = list(
- /obj/item/food/snacks/meat/chicken
+ /obj/item/food/meat/chicken
)
- result = /obj/item/food/snacks/meatsteak/chicken
+ result = /obj/item/food/meatsteak/chicken
/datum/recipe/grill/meatsteak
reagents = list("sodiumchloride" = 1, "blackpepper" = 1)
items = list(
- /obj/item/food/snacks/meat
+ /obj/item/food/meat
)
- result = /obj/item/food/snacks/meatsteak
+ result = /obj/item/food/meatsteak
/datum/recipe/grill/salmonsteak
reagents = list("sodiumchloride" = 1, "blackpepper" = 1)
items = list(
- /obj/item/food/snacks/salmonmeat
+ /obj/item/food/salmonmeat
)
- result = /obj/item/food/snacks/salmonsteak
+ result = /obj/item/food/salmonsteak
/datum/recipe/grill/syntisteak
reagents = list("sodiumchloride" = 1, "blackpepper" = 1)
items = list(
- /obj/item/food/snacks/meat/syntiflesh
+ /obj/item/food/meat/syntiflesh
)
- result = /obj/item/food/snacks/meatsteak
+ result = /obj/item/food/meatsteak
/datum/recipe/grill/waffles
reagents = list("sugar" = 10)
items = list(
- /obj/item/food/snacks/dough,
- /obj/item/food/snacks/dough
+ /obj/item/food/dough,
+ /obj/item/food/dough
)
- result = /obj/item/food/snacks/waffles
+ result = /obj/item/food/waffles
/datum/recipe/grill/rofflewaffles
reagents = list("psilocybin" = 5, "sugar" = 10)
items = list(
- /obj/item/food/snacks/dough,
- /obj/item/food/snacks/dough
+ /obj/item/food/dough,
+ /obj/item/food/dough
)
- result = /obj/item/food/snacks/rofflewaffles
+ result = /obj/item/food/rofflewaffles
/datum/recipe/grill/grilledcheese
items = list(
- /obj/item/food/snacks/breadslice,
- /obj/item/food/snacks/breadslice,
- /obj/item/food/snacks/cheesewedge
+ /obj/item/food/breadslice,
+ /obj/item/food/breadslice,
+ /obj/item/food/cheesewedge
)
- result = /obj/item/food/snacks/grilledcheese
+ result = /obj/item/food/grilledcheese
/datum/recipe/grill/sausage
items = list(
- /obj/item/food/snacks/meatball,
- /obj/item/food/snacks/cutlet
+ /obj/item/food/meatball,
+ /obj/item/food/cutlet
)
- result = /obj/item/food/snacks/sausage
+ result = /obj/item/food/sausage
/datum/recipe/grill/fishfingers
reagents = list("flour" = 10)
items = list(
- /obj/item/food/snacks/egg,
- /obj/item/food/snacks/carpmeat
+ /obj/item/food/egg,
+ /obj/item/food/carpmeat
)
- result = /obj/item/food/snacks/fishfingers
+ result = /obj/item/food/fishfingers
/datum/recipe/grill/fishfingers/make_food(obj/container)
- var/obj/item/food/snacks/fishfingers/being_cooked = ..()
+ var/obj/item/food/fishfingers/being_cooked = ..()
being_cooked.reagents.del_reagent("egg")
being_cooked.reagents.del_reagent("carpotoxin")
return being_cooked
/datum/recipe/grill/cutlet
items = list(
- /obj/item/food/snacks/rawcutlet
+ /obj/item/food/rawcutlet
)
- result = /obj/item/food/snacks/cutlet
+ result = /obj/item/food/cutlet
/datum/recipe/grill/omelette
items = list(
- /obj/item/food/snacks/egg,
- /obj/item/food/snacks/egg,
- /obj/item/food/snacks/cheesewedge,
- /obj/item/food/snacks/cheesewedge
+ /obj/item/food/egg,
+ /obj/item/food/egg,
+ /obj/item/food/cheesewedge,
+ /obj/item/food/cheesewedge
)
- result = /obj/item/food/snacks/omelette
+ result = /obj/item/food/omelette
/datum/recipe/grill/wingfangchu
reagents = list("soysauce" = 5)
items = list(
- /obj/item/food/snacks/monstermeat/xenomeat
+ /obj/item/food/monstermeat/xenomeat
)
- result = /obj/item/food/snacks/wingfangchu
+ result = /obj/item/food/wingfangchu
/datum/recipe/grill/human/kebab
items = list(
/obj/item/stack/rods,
- /obj/item/food/snacks/meat/human,
- /obj/item/food/snacks/meat/human
+ /obj/item/food/meat/human,
+ /obj/item/food/meat/human
)
- result = /obj/item/food/snacks/human/kebab
+ result = /obj/item/food/human/kebab
/datum/recipe/grill/syntikebab
items = list(
/obj/item/stack/rods,
- /obj/item/food/snacks/meat/syntiflesh,
- /obj/item/food/snacks/meat/syntiflesh
+ /obj/item/food/meat/syntiflesh,
+ /obj/item/food/meat/syntiflesh
)
- result = /obj/item/food/snacks/syntikebab
+ result = /obj/item/food/syntikebab
/datum/recipe/grill/meatkeb // Do not put this above the other meat kebab variants or it will override them.
items = list(
/obj/item/stack/rods,
- /obj/item/food/snacks/meat,
- /obj/item/food/snacks/meat
+ /obj/item/food/meat,
+ /obj/item/food/meat
)
- result = /obj/item/food/snacks/meatkebab
+ result = /obj/item/food/meatkebab
/datum/recipe/grill/tofukebab
items = list(
/obj/item/stack/rods,
- /obj/item/food/snacks/tofu,
- /obj/item/food/snacks/tofu
+ /obj/item/food/tofu,
+ /obj/item/food/tofu
)
- result = /obj/item/food/snacks/tofukebab
+ result = /obj/item/food/tofukebab
/datum/recipe/grill/picoss_kebab
reagents = list("vinegar" = 5)
items = list(
- /obj/item/food/snacks/carpmeat,
- /obj/item/food/snacks/carpmeat,
- /obj/item/food/snacks/grown/onion,
- /obj/item/food/snacks/grown/chili,
+ /obj/item/food/carpmeat,
+ /obj/item/food/carpmeat,
+ /obj/item/food/grown/onion,
+ /obj/item/food/grown/chili,
/obj/item/stack/rods
)
- result = /obj/item/food/snacks/picoss_kebab
+ result = /obj/item/food/picoss_kebab
/datum/recipe/grill/picoss_kebab/make_food(obj/container)
- var/obj/item/food/snacks/picoss_kebab/being_cooked = ..()
+ var/obj/item/food/picoss_kebab/being_cooked = ..()
being_cooked.reagents.del_reagent("carpotoxin")
return being_cooked
/datum/recipe/grill/sushi_Tamago
reagents = list("sake" = 5)
items = list(
- /obj/item/food/snacks/egg,
- /obj/item/food/snacks/boiledrice,
+ /obj/item/food/egg,
+ /obj/item/food/boiledrice,
/obj/item/stack/seaweed
)
- result = /obj/item/food/snacks/sushi_Tamago
+ result = /obj/item/food/sushi_Tamago
/datum/recipe/grill/sushi_Unagi
reagents = list("sake" = 5)
items = list(
/obj/item/fish/electric_eel,
- /obj/item/food/snacks/boiledrice,
+ /obj/item/food/boiledrice,
/obj/item/stack/seaweed
)
- result = /obj/item/food/snacks/sushi_Unagi
+ result = /obj/item/food/sushi_Unagi
/datum/recipe/grill/sushi_Ebi
items = list(
- /obj/item/food/snacks/boiledrice,
- /obj/item/food/snacks/boiled_shrimp,
+ /obj/item/food/boiledrice,
+ /obj/item/food/boiled_shrimp,
/obj/item/stack/seaweed
)
- result = /obj/item/food/snacks/sushi_Ebi
+ result = /obj/item/food/sushi_Ebi
/datum/recipe/grill/sushi_Ikura
items = list(
- /obj/item/food/snacks/boiledrice,
+ /obj/item/food/boiledrice,
/obj/item/fish_eggs/salmon,
/obj/item/stack/seaweed
)
- result = /obj/item/food/snacks/sushi_Ikura
+ result = /obj/item/food/sushi_Ikura
/datum/recipe/grill/sushi_Inari
items = list(
- /obj/item/food/snacks/boiledrice,
- /obj/item/food/snacks/fried_tofu,
+ /obj/item/food/boiledrice,
+ /obj/item/food/fried_tofu,
/obj/item/stack/seaweed
)
- result = /obj/item/food/snacks/sushi_Inari
+ result = /obj/item/food/sushi_Inari
/datum/recipe/grill/sushi_Sake
items = list(
- /obj/item/food/snacks/boiledrice,
- /obj/item/food/snacks/salmonmeat,
+ /obj/item/food/boiledrice,
+ /obj/item/food/salmonmeat,
/obj/item/stack/seaweed
)
- result = /obj/item/food/snacks/sushi_Sake
+ result = /obj/item/food/sushi_Sake
/datum/recipe/grill/sushi_SmokedSalmon
items = list(
- /obj/item/food/snacks/boiledrice,
- /obj/item/food/snacks/salmonsteak,
+ /obj/item/food/boiledrice,
+ /obj/item/food/salmonsteak,
/obj/item/stack/seaweed
)
- result = /obj/item/food/snacks/sushi_SmokedSalmon
+ result = /obj/item/food/sushi_SmokedSalmon
/datum/recipe/grill/sushi_Masago
items = list(
- /obj/item/food/snacks/boiledrice,
+ /obj/item/food/boiledrice,
/obj/item/fish_eggs/goldfish,
/obj/item/stack/seaweed
)
- result = /obj/item/food/snacks/sushi_Masago
+ result = /obj/item/food/sushi_Masago
/datum/recipe/grill/sushi_Tobiko
items = list(
- /obj/item/food/snacks/boiledrice,
+ /obj/item/food/boiledrice,
/obj/item/fish_eggs/shark,
/obj/item/stack/seaweed
)
- result = /obj/item/food/snacks/sushi_Tobiko
+ result = /obj/item/food/sushi_Tobiko
/datum/recipe/grill/sushi_TobikoEgg
items = list(
- /obj/item/food/snacks/sushi_Tobiko,
- /obj/item/food/snacks/egg,
+ /obj/item/food/sushi_Tobiko,
+ /obj/item/food/egg,
/obj/item/stack/seaweed
)
- result = /obj/item/food/snacks/sushi_TobikoEgg
+ result = /obj/item/food/sushi_TobikoEgg
/datum/recipe/grill/sushi_Tai
items = list(
- /obj/item/food/snacks/boiledrice,
- /obj/item/food/snacks/catfishmeat,
+ /obj/item/food/boiledrice,
+ /obj/item/food/catfishmeat,
/obj/item/stack/seaweed
)
- result = /obj/item/food/snacks/sushi_Tai
+ result = /obj/item/food/sushi_Tai
/datum/recipe/grill/goliath
- items = list(/obj/item/food/snacks/monstermeat/goliath)
- result = /obj/item/food/snacks/goliath_steak
+ items = list(/obj/item/food/monstermeat/goliath)
+ result = /obj/item/food/goliath_steak
/datum/recipe/grill/shrimp_skewer
items = list(
- /obj/item/food/snacks/shrimp,
- /obj/item/food/snacks/shrimp,
- /obj/item/food/snacks/shrimp,
- /obj/item/food/snacks/shrimp,
+ /obj/item/food/shrimp,
+ /obj/item/food/shrimp,
+ /obj/item/food/shrimp,
+ /obj/item/food/shrimp,
/obj/item/stack/rods
)
- result = /obj/item/food/snacks/shrimp_skewer
+ result = /obj/item/food/shrimp_skewer
/datum/recipe/grill/fish_skewer
reagents = list("flour" = 10)
items = list(
- /obj/item/food/snacks/salmonmeat,
- /obj/item/food/snacks/salmonmeat,
+ /obj/item/food/salmonmeat,
+ /obj/item/food/salmonmeat,
/obj/item/stack/rods
)
- result = /obj/item/food/snacks/fish_skewer
+ result = /obj/item/food/fish_skewer
/datum/recipe/grill/pancake
items = list(
- /obj/item/food/snacks/cookiedough
+ /obj/item/food/cookiedough
)
- result = /obj/item/food/snacks/pancake
+ result = /obj/item/food/pancake
/datum/recipe/grill/berry_pancake
items = list(
- /obj/item/food/snacks/cookiedough,
- /obj/item/food/snacks/grown/berries
+ /obj/item/food/cookiedough,
+ /obj/item/food/grown/berries
)
- result = /obj/item/food/snacks/pancake/berry_pancake
+ result = /obj/item/food/pancake/berry_pancake
/datum/recipe/grill/choc_chip_pancake
items = list(
- /obj/item/food/snacks/cookiedough,
- /obj/item/food/snacks/choc_pile
+ /obj/item/food/cookiedough,
+ /obj/item/food/choc_pile
)
- result = /obj/item/food/snacks/pancake/choc_chip_pancake
+ result = /obj/item/food/pancake/choc_chip_pancake
/datum/recipe/grill/bbqribs
reagents = list("bbqsauce" = 5)
items = list(
- /obj/item/food/snacks/meat,
- /obj/item/food/snacks/meat
+ /obj/item/food/meat,
+ /obj/item/food/meat
)
- result = /obj/item/food/snacks/bbqribs
+ result = /obj/item/food/bbqribs
diff --git a/code/modules/food_and_drinks/recipes/recipes_microwave.dm b/code/modules/food_and_drinks/recipes/recipes_microwave.dm
index 4e6f5fc16650..7457a25c82e5 100644
--- a/code/modules/food_and_drinks/recipes/recipes_microwave.dm
+++ b/code/modules/food_and_drinks/recipes/recipes_microwave.dm
@@ -5,863 +5,863 @@
/datum/recipe/microwave/boiledegg
reagents = list("water" = 5)
items = list(
- /obj/item/food/snacks/egg
+ /obj/item/food/egg
)
- result = /obj/item/food/snacks/boiledegg
+ result = /obj/item/food/boiledegg
/datum/recipe/microwave/dionaroast
reagents = list("facid" = 5) //It dissolves the carapace. Still poisonous, though.
items = list(
/obj/item/holder/diona,
- /obj/item/food/snacks/grown/apple
+ /obj/item/food/grown/apple
)
- result = /obj/item/food/snacks/dionaroast
+ result = /obj/item/food/dionaroast
/datum/recipe/microwave/jellydonut
reagents = list("berryjuice" = 5, "sugar" = 5)
items = list(
- /obj/item/food/snacks/dough
+ /obj/item/food/dough
)
- result = /obj/item/food/snacks/donut/jelly
+ result = /obj/item/food/donut/jelly
/datum/recipe/microwave/jellydonut/slime
reagents = list("slimejelly" = 5, "sugar" = 5)
items = list(
- /obj/item/food/snacks/dough
+ /obj/item/food/dough
)
- result = /obj/item/food/snacks/donut/jelly/slimejelly
+ result = /obj/item/food/donut/jelly/slimejelly
/datum/recipe/microwave/jellydonut/cherry
reagents = list("cherryjelly" = 5, "sugar" = 5)
items = list(
- /obj/item/food/snacks/dough
+ /obj/item/food/dough
)
- result = /obj/item/food/snacks/donut/jelly/cherryjelly
+ result = /obj/item/food/donut/jelly/cherryjelly
/datum/recipe/microwave/donut
reagents = list("sugar" = 5)
items = list(
- /obj/item/food/snacks/dough
+ /obj/item/food/dough
)
- result = /obj/item/food/snacks/donut
+ result = /obj/item/food/donut
/datum/recipe/microwave/donut/sprinkles
reagents = list("sugar" = 5, "sprinkles" = 2)
items = list(
- /obj/item/food/snacks/dough
+ /obj/item/food/dough
)
- result = /obj/item/food/snacks/donut/sprinkles
+ result = /obj/item/food/donut/sprinkles
/datum/recipe/microwave/human/burger
items = list(
- /obj/item/food/snacks/meat/human,
- /obj/item/food/snacks/grown/lettuce,
- /obj/item/food/snacks/bun
+ /obj/item/food/meat/human,
+ /obj/item/food/grown/lettuce,
+ /obj/item/food/bun
)
- result = /obj/item/food/snacks/human/burger
+ result = /obj/item/food/human/burger
/datum/recipe/microwave/chickenburger
items = list(
- /obj/item/food/snacks/bun,
- /obj/item/food/snacks/meat/chicken
+ /obj/item/food/bun,
+ /obj/item/food/meat/chicken
)
- result = /obj/item/food/snacks/burger/chicken
+ result = /obj/item/food/burger/chicken
/datum/recipe/microwave/plainburger
items = list(
- /obj/item/food/snacks/bun,
- /obj/item/food/snacks/grown/lettuce,
- /obj/item/food/snacks/meat //do not place this recipe before /datum/recipe/microwave/human/burger
+ /obj/item/food/bun,
+ /obj/item/food/grown/lettuce,
+ /obj/item/food/meat //do not place this recipe before /datum/recipe/microwave/human/burger
)
- result = /obj/item/food/snacks/burger/plain
+ result = /obj/item/food/burger/plain
/datum/recipe/microwave/syntiburger
items = list(
- /obj/item/food/snacks/bun,
- /obj/item/food/snacks/grown/lettuce,
- /obj/item/food/snacks/meat/syntiflesh
+ /obj/item/food/bun,
+ /obj/item/food/grown/lettuce,
+ /obj/item/food/meat/syntiflesh
)
- result = /obj/item/food/snacks/burger/plain
+ result = /obj/item/food/burger/plain
/datum/recipe/microwave/bigbiteburger
items = list(
- /obj/item/food/snacks/burger/plain,
- /obj/item/food/snacks/meat,
- /obj/item/food/snacks/meat,
- /obj/item/food/snacks/meat,
- /obj/item/food/snacks/cheesewedge
+ /obj/item/food/burger/plain,
+ /obj/item/food/meat,
+ /obj/item/food/meat,
+ /obj/item/food/meat,
+ /obj/item/food/cheesewedge
)
- result = /obj/item/food/snacks/burger/bigbite
+ result = /obj/item/food/burger/bigbite
/datum/recipe/microwave/superbiteburger
reagents = list("sodiumchloride" = 5, "blackpepper" = 5)
items = list(
- /obj/item/food/snacks/burger/bigbite,
- /obj/item/food/snacks/dough,
- /obj/item/food/snacks/meat,
- /obj/item/food/snacks/cheesewedge,
- /obj/item/food/snacks/bacon,
- /obj/item/food/snacks/tomatoslice
+ /obj/item/food/burger/bigbite,
+ /obj/item/food/dough,
+ /obj/item/food/meat,
+ /obj/item/food/cheesewedge,
+ /obj/item/food/bacon,
+ /obj/item/food/tomatoslice
)
- result = /obj/item/food/snacks/burger/superbite
+ result = /obj/item/food/burger/superbite
/datum/recipe/microwave/brainburger
items = list(
- /obj/item/food/snacks/bun,
+ /obj/item/food/bun,
/obj/item/organ/internal/brain
)
- result = /obj/item/food/snacks/burger/brain
+ result = /obj/item/food/burger/brain
/datum/recipe/microwave/hamborger
items = list(
- /obj/item/food/snacks/bun,
+ /obj/item/food/bun,
/obj/item/robot_parts/head
)
- result = /obj/item/food/snacks/burger/hamborger
+ result = /obj/item/food/burger/hamborger
/datum/recipe/microwave/xenoburger
items = list(
- /obj/item/food/snacks/bun,
- /obj/item/food/snacks/monstermeat/xenomeat
+ /obj/item/food/bun,
+ /obj/item/food/monstermeat/xenomeat
)
- result = /obj/item/food/snacks/burger/xeno
+ result = /obj/item/food/burger/xeno
/datum/recipe/microwave/fishburger
items = list(
- /obj/item/food/snacks/bun,
- /obj/item/food/snacks/carpmeat
+ /obj/item/food/bun,
+ /obj/item/food/carpmeat
)
- result = /obj/item/food/snacks/fishburger
+ result = /obj/item/food/fishburger
/datum/recipe/microwave/fishburger/make_food(obj/container)
- var/obj/item/food/snacks/fishburger/being_cooked = ..()
+ var/obj/item/food/fishburger/being_cooked = ..()
being_cooked.reagents.del_reagent("carpotoxin")
return being_cooked
/datum/recipe/microwave/tofuburger
items = list(
- /obj/item/food/snacks/bun,
- /obj/item/food/snacks/tofu
+ /obj/item/food/bun,
+ /obj/item/food/tofu
)
- result = /obj/item/food/snacks/burger/tofu
+ result = /obj/item/food/burger/tofu
/datum/recipe/microwave/ghostburger
items = list(
- /obj/item/food/snacks/bun,
- /obj/item/food/snacks/ectoplasm //where do you even find this stuff
+ /obj/item/food/bun,
+ /obj/item/food/ectoplasm //where do you even find this stuff
)
- result = /obj/item/food/snacks/burger/ghost
+ result = /obj/item/food/burger/ghost
/datum/recipe/microwave/clownburger
items = list(
- /obj/item/food/snacks/bun,
+ /obj/item/food/bun,
/obj/item/clothing/mask/gas/clown_hat
)
- result = /obj/item/food/snacks/burger/clown
+ result = /obj/item/food/burger/clown
/datum/recipe/microwave/mimeburger
items = list(
- /obj/item/food/snacks/bun,
+ /obj/item/food/bun,
/obj/item/clothing/head/beret
)
- result = /obj/item/food/snacks/burger/mime
+ result = /obj/item/food/burger/mime
/datum/recipe/microwave/baseballburger
items = list(
- /obj/item/food/snacks/bun,
+ /obj/item/food/bun,
/obj/item/melee/baseball_bat
)
- result = /obj/item/food/snacks/burger/baseball
+ result = /obj/item/food/burger/baseball
/datum/recipe/microwave/cheeseburger
items = list(
- /obj/item/food/snacks/bun,
- /obj/item/food/snacks/meat,
- /obj/item/food/snacks/grown/lettuce,
- /obj/item/food/snacks/cheesewedge
+ /obj/item/food/bun,
+ /obj/item/food/meat,
+ /obj/item/food/grown/lettuce,
+ /obj/item/food/cheesewedge
)
- result = /obj/item/food/snacks/burger/cheese
+ result = /obj/item/food/burger/cheese
/datum/recipe/microwave/appendixburger
items = list(
- /obj/item/food/snacks/bun,
+ /obj/item/food/bun,
/obj/item/organ/internal/appendix
)
- result = /obj/item/food/snacks/burger/appendix
+ result = /obj/item/food/burger/appendix
/datum/recipe/microwave/appendixburger_bitten
items = list(
- /obj/item/food/snacks/appendix,
- /obj/item/food/snacks/bun
+ /obj/item/food/appendix,
+ /obj/item/food/bun
)
- result = /obj/item/food/snacks/burger/appendix
+ result = /obj/item/food/burger/appendix
/datum/recipe/microwave/bearger
items = list(
- /obj/item/food/snacks/bun,
- /obj/item/food/snacks/monstermeat/bearmeat
+ /obj/item/food/bun,
+ /obj/item/food/monstermeat/bearmeat
)
- result = /obj/item/food/snacks/burger/bearger
+ result = /obj/item/food/burger/bearger
/datum/recipe/microwave/fivealarmburger
items = list(
- /obj/item/food/snacks/bun,
- /obj/item/food/snacks/grown/ghost_chili,
- /obj/item/food/snacks/grown/ghost_chili,
- /obj/item/food/snacks/grown/lettuce
+ /obj/item/food/bun,
+ /obj/item/food/grown/ghost_chili,
+ /obj/item/food/grown/ghost_chili,
+ /obj/item/food/grown/lettuce
)
- result = /obj/item/food/snacks/burger/fivealarm
+ result = /obj/item/food/burger/fivealarm
/datum/recipe/microwave/baconburger
items = list(
- /obj/item/food/snacks/bun,
- /obj/item/food/snacks/bacon,
- /obj/item/food/snacks/bacon,
- /obj/item/food/snacks/grown/lettuce,
- /obj/item/food/snacks/cheesewedge
+ /obj/item/food/bun,
+ /obj/item/food/bacon,
+ /obj/item/food/bacon,
+ /obj/item/food/grown/lettuce,
+ /obj/item/food/cheesewedge
)
- result = /obj/item/food/snacks/burger/bacon
+ result = /obj/item/food/burger/bacon
/datum/recipe/microwave/mcrib
items = list(
- /obj/item/food/snacks/bun,
- /obj/item/food/snacks/bbqribs,
- /obj/item/food/snacks/onion_slice
+ /obj/item/food/bun,
+ /obj/item/food/bbqribs,
+ /obj/item/food/onion_slice
)
- result = /obj/item/food/snacks/burger/mcrib
+ result = /obj/item/food/burger/mcrib
/datum/recipe/microwave/mcguffin
items = list(
- /obj/item/food/snacks/bun,
- /obj/item/food/snacks/bacon,
- /obj/item/food/snacks/bacon,
- /obj/item/food/snacks/friedegg
+ /obj/item/food/bun,
+ /obj/item/food/bacon,
+ /obj/item/food/bacon,
+ /obj/item/food/friedegg
)
- result = /obj/item/food/snacks/burger/mcguffin
+ result = /obj/item/food/burger/mcguffin
/datum/recipe/microwave/hotdog
items = list(
- /obj/item/food/snacks/bun,
- /obj/item/food/snacks/sausage
+ /obj/item/food/bun,
+ /obj/item/food/sausage
)
- result = /obj/item/food/snacks/hotdog
+ result = /obj/item/food/hotdog
/datum/recipe/microwave/donkpocket
items = list(
- /obj/item/food/snacks/dough,
- /obj/item/food/snacks/meatball
+ /obj/item/food/dough,
+ /obj/item/food/meatball
)
- result = /obj/item/food/snacks/donkpocket
+ result = /obj/item/food/donkpocket
/datum/recipe/microwave/warmdonkpocket
duplicate = FALSE
items = list(
- /obj/item/food/snacks/donkpocket
+ /obj/item/food/donkpocket
)
- result = /obj/item/food/snacks/warmdonkpocket
+ result = /obj/item/food/warmdonkpocket
/datum/recipe/microwave/reheatwarmdonkpocket
duplicate = FALSE
items = list(
- /obj/item/food/snacks/warmdonkpocket
+ /obj/item/food/warmdonkpocket
)
- result = /obj/item/food/snacks/warmdonkpocket
+ result = /obj/item/food/warmdonkpocket
/datum/recipe/microwave/eggplantparm
items = list(
- /obj/item/food/snacks/cheesewedge,
- /obj/item/food/snacks/cheesewedge,
- /obj/item/food/snacks/grown/eggplant
+ /obj/item/food/cheesewedge,
+ /obj/item/food/cheesewedge,
+ /obj/item/food/grown/eggplant
)
- result = /obj/item/food/snacks/eggplantparm
+ result = /obj/item/food/eggplantparm
/datum/recipe/microwave/soylentviridians
reagents = list("flour" = 10)
items = list(
- /obj/item/food/snacks/grown/soybeans
+ /obj/item/food/grown/soybeans
)
- result = /obj/item/food/snacks/soylentviridians
+ result = /obj/item/food/soylentviridians
/datum/recipe/microwave/soylentgreen
reagents = list("flour" = 10)
items = list(
- /obj/item/food/snacks/meat/human,
- /obj/item/food/snacks/meat/human
+ /obj/item/food/meat/human,
+ /obj/item/food/meat/human
)
- result = /obj/item/food/snacks/soylentgreen
+ result = /obj/item/food/soylentgreen
/datum/recipe/microwave/chaosdonut
reagents = list("frostoil" = 5, "capsaicin" = 5, "sugar" = 5)
items = list(
- /obj/item/food/snacks/dough
+ /obj/item/food/dough
)
- result = /obj/item/food/snacks/donut/chaos
+ result = /obj/item/food/donut/chaos
/datum/recipe/microwave/cheesyfries
items = list(
- /obj/item/food/snacks/fries,
- /obj/item/food/snacks/cheesewedge
+ /obj/item/food/fries,
+ /obj/item/food/cheesewedge
)
- result = /obj/item/food/snacks/cheesyfries
+ result = /obj/item/food/cheesyfries
/datum/recipe/microwave/cubancarp
items = list(
- /obj/item/food/snacks/dough,
- /obj/item/food/snacks/carpmeat,
- /obj/item/food/snacks/grown/chili
+ /obj/item/food/dough,
+ /obj/item/food/carpmeat,
+ /obj/item/food/grown/chili
)
- result = /obj/item/food/snacks/cubancarp
+ result = /obj/item/food/cubancarp
/datum/recipe/microwave/cubancarp/make_food(obj/container)
- var/obj/item/food/snacks/cubancarp/being_cooked = ..()
+ var/obj/item/food/cubancarp/being_cooked = ..()
being_cooked.reagents.del_reagent("carpotoxin")
return being_cooked
/datum/recipe/microwave/popcorn
items = list(
- /obj/item/food/snacks/grown/corn
+ /obj/item/food/grown/corn
)
- result = /obj/item/food/snacks/popcorn
+ result = /obj/item/food/popcorn
/datum/recipe/microwave/spacylibertyduff
reagents = list("water" = 5, "vodka" = 5)
items = list(
- /obj/item/food/snacks/grown/mushroom/libertycap,
- /obj/item/food/snacks/grown/mushroom/libertycap,
- /obj/item/food/snacks/grown/mushroom/libertycap
+ /obj/item/food/grown/mushroom/libertycap,
+ /obj/item/food/grown/mushroom/libertycap,
+ /obj/item/food/grown/mushroom/libertycap
)
- result = /obj/item/food/snacks/spacylibertyduff
+ result = /obj/item/food/spacylibertyduff
/datum/recipe/microwave/amanitajelly
reagents = list("water" = 5, "vodka" = 5)
items = list(
- /obj/item/food/snacks/grown/mushroom/amanita,
- /obj/item/food/snacks/grown/mushroom/amanita,
- /obj/item/food/snacks/grown/mushroom/amanita
+ /obj/item/food/grown/mushroom/amanita,
+ /obj/item/food/grown/mushroom/amanita,
+ /obj/item/food/grown/mushroom/amanita
)
- result = /obj/item/food/snacks/amanitajelly
+ result = /obj/item/food/amanitajelly
/datum/recipe/microwave/amanitajelly/make_food(obj/container)
- var/obj/item/food/snacks/amanitajelly/being_cooked = ..()
+ var/obj/item/food/amanitajelly/being_cooked = ..()
being_cooked.reagents.del_reagent("amanitin")
return being_cooked
/datum/recipe/microwave/meatballsoup
reagents = list("water" = 10)
items = list(
- /obj/item/food/snacks/meatball,
- /obj/item/food/snacks/grown/potato,
- /obj/item/food/snacks/grown/carrot
+ /obj/item/food/meatball,
+ /obj/item/food/grown/potato,
+ /obj/item/food/grown/carrot
)
- result = /obj/item/food/snacks/soup/meatballsoup
+ result = /obj/item/food/soup/meatballsoup
/datum/recipe/microwave/vegetablesoup
reagents = list("water" = 10)
items = list(
- /obj/item/food/snacks/grown/potato,
- /obj/item/food/snacks/grown/carrot,
- /obj/item/food/snacks/grown/corn,
- /obj/item/food/snacks/grown/eggplant
+ /obj/item/food/grown/potato,
+ /obj/item/food/grown/carrot,
+ /obj/item/food/grown/corn,
+ /obj/item/food/grown/eggplant
)
- result = /obj/item/food/snacks/soup/vegetablesoup
+ result = /obj/item/food/soup/vegetablesoup
/datum/recipe/microwave/nettlesoup
reagents = list("water" = 10)
items = list(
- /obj/item/food/snacks/egg,
+ /obj/item/food/egg,
/obj/item/grown/nettle/basic,
- /obj/item/food/snacks/grown/potato
+ /obj/item/food/grown/potato
)
- result = /obj/item/food/snacks/soup/nettlesoup
+ result = /obj/item/food/soup/nettlesoup
/datum/recipe/microwave/wishsoup
reagents = list("water" = 20)
- result = /obj/item/food/snacks/soup/wishsoup
+ result = /obj/item/food/soup/wishsoup
/datum/recipe/microwave/hotchili
items = list(
- /obj/item/food/snacks/meat,
- /obj/item/food/snacks/grown/chili,
- /obj/item/food/snacks/grown/tomato
+ /obj/item/food/meat,
+ /obj/item/food/grown/chili,
+ /obj/item/food/grown/tomato
)
- result = /obj/item/food/snacks/soup/hotchili
+ result = /obj/item/food/soup/hotchili
/datum/recipe/microwave/coldchili
items = list(
- /obj/item/food/snacks/meat,
- /obj/item/food/snacks/grown/icepepper,
- /obj/item/food/snacks/grown/tomato
+ /obj/item/food/meat,
+ /obj/item/food/grown/icepepper,
+ /obj/item/food/grown/tomato
)
- result = /obj/item/food/snacks/soup/coldchili
+ result = /obj/item/food/soup/coldchili
/datum/recipe/microwave/spellburger
items = list(
- /obj/item/food/snacks/bun,
+ /obj/item/food/bun,
/obj/item/clothing/head/wizard
)
- result = /obj/item/food/snacks/burger/spell
+ result = /obj/item/food/burger/spell
/datum/recipe/microwave/enchiladas
items = list(
- /obj/item/food/snacks/cutlet,
- /obj/item/food/snacks/grown/chili,
- /obj/item/food/snacks/grown/chili,
- /obj/item/food/snacks/grown/corn
+ /obj/item/food/cutlet,
+ /obj/item/food/grown/chili,
+ /obj/item/food/grown/chili,
+ /obj/item/food/grown/corn
)
- result = /obj/item/food/snacks/enchiladas
+ result = /obj/item/food/enchiladas
/datum/recipe/microwave/burrito
reagents = list("capsaicin" = 5, "rice" = 5)
items = list(
- /obj/item/food/snacks/cutlet,
- /obj/item/food/snacks/beans,
- /obj/item/food/snacks/cheesewedge,
- /obj/item/food/snacks/sliceable/flatdough
+ /obj/item/food/cutlet,
+ /obj/item/food/beans,
+ /obj/item/food/cheesewedge,
+ /obj/item/food/sliceable/flatdough
)
- result = /obj/item/food/snacks/burrito
+ result = /obj/item/food/burrito
/datum/recipe/microwave/monkeysdelight
reagents = list("sodiumchloride" = 1, "blackpepper" = 1, "flour" = 10)
items = list(
- /obj/item/food/snacks/monkeycube,
- /obj/item/food/snacks/grown/banana
+ /obj/item/food/monkeycube,
+ /obj/item/food/grown/banana
)
- result = /obj/item/food/snacks/monkeysdelight
+ result = /obj/item/food/monkeysdelight
/datum/recipe/microwave/fishandchips
items = list(
- /obj/item/food/snacks/fries,
- /obj/item/food/snacks/carpmeat,
+ /obj/item/food/fries,
+ /obj/item/food/carpmeat,
)
- result = /obj/item/food/snacks/fishandchips
+ result = /obj/item/food/fishandchips
/datum/recipe/microwave/fishandchips/make_food(obj/container)
- var/obj/item/food/snacks/fishandchips/being_cooked = ..()
+ var/obj/item/food/fishandchips/being_cooked = ..()
being_cooked.reagents.del_reagent("carpotoxin")
return being_cooked
/datum/recipe/microwave/sandwich
items = list(
- /obj/item/food/snacks/meatsteak,
- /obj/item/food/snacks/breadslice,
- /obj/item/food/snacks/breadslice,
- /obj/item/food/snacks/cheesewedge
+ /obj/item/food/meatsteak,
+ /obj/item/food/breadslice,
+ /obj/item/food/breadslice,
+ /obj/item/food/cheesewedge
)
- result = /obj/item/food/snacks/sandwich
+ result = /obj/item/food/sandwich
/datum/recipe/microwave/tomatosoup
reagents = list("water" = 10)
items = list(
- /obj/item/food/snacks/grown/tomato,
- /obj/item/food/snacks/grown/tomato
+ /obj/item/food/grown/tomato,
+ /obj/item/food/grown/tomato
)
- result = /obj/item/food/snacks/soup/tomatosoup
+ result = /obj/item/food/soup/tomatosoup
/datum/recipe/microwave/stew
reagents = list("water" = 10)
items= list(
- /obj/item/food/snacks/grown/tomato,
- /obj/item/food/snacks/grown/potato,
- /obj/item/food/snacks/grown/carrot,
- /obj/item/food/snacks/grown/eggplant,
- /obj/item/food/snacks/grown/mushroom,
- /obj/item/food/snacks/meat
+ /obj/item/food/grown/tomato,
+ /obj/item/food/grown/potato,
+ /obj/item/food/grown/carrot,
+ /obj/item/food/grown/eggplant,
+ /obj/item/food/grown/mushroom,
+ /obj/item/food/meat
)
- result = /obj/item/food/snacks/soup/stew
+ result = /obj/item/food/soup/stew
/datum/recipe/microwave/slimetoast
reagents = list("slimejelly" = 5)
items = list(
- /obj/item/food/snacks/breadslice,
+ /obj/item/food/breadslice,
)
- result = /obj/item/food/snacks/jelliedtoast/slime
+ result = /obj/item/food/jelliedtoast/slime
/datum/recipe/microwave/jelliedtoast
reagents = list("cherryjelly" = 5)
items = list(
- /obj/item/food/snacks/breadslice
+ /obj/item/food/breadslice
)
- result = /obj/item/food/snacks/jelliedtoast/cherry
+ result = /obj/item/food/jelliedtoast/cherry
/datum/recipe/microwave/misosoup
reagents = list("water" = 10)
items = list(
- /obj/item/food/snacks/soydope,
- /obj/item/food/snacks/soydope,
- /obj/item/food/snacks/tofu,
- /obj/item/food/snacks/tofu
+ /obj/item/food/soydope,
+ /obj/item/food/soydope,
+ /obj/item/food/tofu,
+ /obj/item/food/tofu
)
- result = /obj/item/food/snacks/soup/misosoup
+ result = /obj/item/food/soup/misosoup
/datum/recipe/microwave/stewedsoymeat
items = list(
- /obj/item/food/snacks/soydope,
- /obj/item/food/snacks/soydope,
- /obj/item/food/snacks/grown/carrot,
- /obj/item/food/snacks/grown/tomato
+ /obj/item/food/soydope,
+ /obj/item/food/soydope,
+ /obj/item/food/grown/carrot,
+ /obj/item/food/grown/tomato
)
- result = /obj/item/food/snacks/stewedsoymeat
+ result = /obj/item/food/stewedsoymeat
/datum/recipe/microwave/boiledspaghetti
reagents = list("water" = 5)
items = list(
- /obj/item/food/snacks/spaghetti
+ /obj/item/food/spaghetti
)
- result = /obj/item/food/snacks/boiledspaghetti
+ result = /obj/item/food/boiledspaghetti
/datum/recipe/microwave/boiledrice
reagents = list("water" = 5, "rice" = 10)
- result = /obj/item/food/snacks/boiledrice
+ result = /obj/item/food/boiledrice
/datum/recipe/microwave/ricepudding
reagents = list("milk" = 5, "rice" = 10)
- result = /obj/item/food/snacks/ricepudding
+ result = /obj/item/food/ricepudding
/datum/recipe/microwave/pastatomato
reagents = list("water" = 5)
items = list(
- /obj/item/food/snacks/spaghetti,
- /obj/item/food/snacks/grown/tomato,
- /obj/item/food/snacks/grown/tomato
+ /obj/item/food/spaghetti,
+ /obj/item/food/grown/tomato,
+ /obj/item/food/grown/tomato
)
- result = /obj/item/food/snacks/pastatomato
+ result = /obj/item/food/pastatomato
/datum/recipe/microwave/poppypretzel
items = list(
/obj/item/seeds/poppy,
- /obj/item/food/snacks/dough
+ /obj/item/food/dough
)
- result = /obj/item/food/snacks/poppypretzel
+ result = /obj/item/food/poppypretzel
/datum/recipe/microwave/meatballspaggetti
reagents = list("water" = 5)
items = list(
- /obj/item/food/snacks/spaghetti,
- /obj/item/food/snacks/meatball,
- /obj/item/food/snacks/meatball,
+ /obj/item/food/spaghetti,
+ /obj/item/food/meatball,
+ /obj/item/food/meatball,
)
- result = /obj/item/food/snacks/meatballspaghetti
+ result = /obj/item/food/meatballspaghetti
/datum/recipe/microwave/spesslaw
reagents = list("water" = 5)
items = list(
- /obj/item/food/snacks/spaghetti,
- /obj/item/food/snacks/meatball,
- /obj/item/food/snacks/meatball,
- /obj/item/food/snacks/meatball,
- /obj/item/food/snacks/meatball,
+ /obj/item/food/spaghetti,
+ /obj/item/food/meatball,
+ /obj/item/food/meatball,
+ /obj/item/food/meatball,
+ /obj/item/food/meatball,
)
- result = /obj/item/food/snacks/spesslaw
+ result = /obj/item/food/spesslaw
/datum/recipe/microwave/macncheese
reagents = list("water" = 5, "milk" = 5)
items = list(
- /obj/item/food/snacks/cheesewedge,
- /obj/item/food/snacks/macaroni,
+ /obj/item/food/cheesewedge,
+ /obj/item/food/macaroni,
)
- result = /obj/item/food/snacks/macncheese
+ result = /obj/item/food/macncheese
/datum/recipe/microwave/crazyburger
reagents = list("cornoil" = 15)
items = list(
- /obj/item/food/snacks/bun,
- /obj/item/food/snacks/meat,
- /obj/item/food/snacks/meat,
- /obj/item/food/snacks/cheesewedge,
- /obj/item/food/snacks/cheesewedge,
- /obj/item/food/snacks/grown/lettuce,
- /obj/item/food/snacks/grown/chili,
+ /obj/item/food/bun,
+ /obj/item/food/meat,
+ /obj/item/food/meat,
+ /obj/item/food/cheesewedge,
+ /obj/item/food/cheesewedge,
+ /obj/item/food/grown/lettuce,
+ /obj/item/food/grown/chili,
/obj/item/toy/crayon/green,
/obj/item/flashlight/flare
)
- result = /obj/item/food/snacks/burger/crazy
+ result = /obj/item/food/burger/crazy
/datum/recipe/microwave/blt
items = list(
- /obj/item/food/snacks/breadslice,
- /obj/item/food/snacks/breadslice,
- /obj/item/food/snacks/grown/lettuce,
- /obj/item/food/snacks/tomatoslice,
- /obj/item/food/snacks/bacon
+ /obj/item/food/breadslice,
+ /obj/item/food/breadslice,
+ /obj/item/food/grown/lettuce,
+ /obj/item/food/tomatoslice,
+ /obj/item/food/bacon
)
- result = /obj/item/food/snacks/blt
+ result = /obj/item/food/blt
/datum/recipe/microwave/peanut_butter_jelly/cherry
reagents = list("cherryjelly" = 5, "peanutbutter" = 5)
items = list(
- /obj/item/food/snacks/breadslice,
- /obj/item/food/snacks/breadslice
+ /obj/item/food/breadslice,
+ /obj/item/food/breadslice
)
- result = /obj/item/food/snacks/peanut_butter_jelly/cherry
+ result = /obj/item/food/peanut_butter_jelly/cherry
/datum/recipe/microwave/peanut_butter_jelly/slime
reagents = list("slimejelly" = 5, "peanutbutter" = 5)
items = list(
- /obj/item/food/snacks/breadslice,
- /obj/item/food/snacks/breadslice
+ /obj/item/food/breadslice,
+ /obj/item/food/breadslice
)
- result = /obj/item/food/snacks/peanut_butter_jelly/slime
+ result = /obj/item/food/peanut_butter_jelly/slime
/datum/recipe/microwave/peanut_butter_banana
reagents = list("peanutbutter" = 5)
items = list(
- /obj/item/food/snacks/breadslice,
- /obj/item/food/snacks/breadslice,
- /obj/item/food/snacks/grown/banana
+ /obj/item/food/breadslice,
+ /obj/item/food/breadslice,
+ /obj/item/food/grown/banana
)
- result = /obj/item/food/snacks/peanut_butter_banana
+ result = /obj/item/food/peanut_butter_banana
/datum/recipe/microwave/philly_cheesesteak
items = list(
- /obj/item/food/snacks/breadslice,
- /obj/item/food/snacks/breadslice,
- /obj/item/food/snacks/cutlet,
- /obj/item/food/snacks/cheesewedge,
- /obj/item/food/snacks/grown/onion
+ /obj/item/food/breadslice,
+ /obj/item/food/breadslice,
+ /obj/item/food/cutlet,
+ /obj/item/food/cheesewedge,
+ /obj/item/food/grown/onion
)
- result = /obj/item/food/snacks/philly_cheesesteak
+ result = /obj/item/food/philly_cheesesteak
/datum/recipe/microwave/ppattyred
reagents = list("cherryjelly" = 5)
items = list(
- /obj/item/food/snacks/bun,
- /obj/item/food/snacks/meat
+ /obj/item/food/bun,
+ /obj/item/food/meat
)
- result = /obj/item/food/snacks/burger/ppatty/red
+ result = /obj/item/food/burger/ppatty/red
/datum/recipe/microwave/ppattyorange
reagents = list("orangejuice" = 5)
items = list(
- /obj/item/food/snacks/bun,
- /obj/item/food/snacks/meat
+ /obj/item/food/bun,
+ /obj/item/food/meat
)
- result = /obj/item/food/snacks/burger/ppatty/orange
+ result = /obj/item/food/burger/ppatty/orange
/datum/recipe/microwave/ppattyyellow
reagents = list("lemonjuice" = 5)
items = list(
- /obj/item/food/snacks/bun,
- /obj/item/food/snacks/meat
+ /obj/item/food/bun,
+ /obj/item/food/meat
)
- result = /obj/item/food/snacks/burger/ppatty/yellow
+ result = /obj/item/food/burger/ppatty/yellow
/datum/recipe/microwave/ppattygreen
reagents = list("limejuice" = 5)
items = list(
- /obj/item/food/snacks/bun,
- /obj/item/food/snacks/meat
+ /obj/item/food/bun,
+ /obj/item/food/meat
)
- result = /obj/item/food/snacks/burger/ppatty/green
+ result = /obj/item/food/burger/ppatty/green
/datum/recipe/microwave/ppattyblue
reagents = list("berryjuice" = 5)
items = list(
- /obj/item/food/snacks/bun,
- /obj/item/food/snacks/meat
+ /obj/item/food/bun,
+ /obj/item/food/meat
)
- result = /obj/item/food/snacks/burger/ppatty/blue
+ result = /obj/item/food/burger/ppatty/blue
/datum/recipe/microwave/ppattypurple
reagents = list("grapejuice" = 5)
items = list(
- /obj/item/food/snacks/bun,
- /obj/item/food/snacks/meat
+ /obj/item/food/bun,
+ /obj/item/food/meat
)
- result = /obj/item/food/snacks/burger/ppatty/purple
+ result = /obj/item/food/burger/ppatty/purple
/datum/recipe/microwave/ppattywhite
reagents = list("sugar" = 5)
items = list(
- /obj/item/food/snacks/bun,
- /obj/item/food/snacks/meat
+ /obj/item/food/bun,
+ /obj/item/food/meat
)
- result = /obj/item/food/snacks/burger/ppatty/white
+ result = /obj/item/food/burger/ppatty/white
/datum/recipe/microwave/ppattyrainbow
items = list(
- /obj/item/food/snacks/burger/ppatty/red,
- /obj/item/food/snacks/burger/ppatty/orange,
- /obj/item/food/snacks/burger/ppatty/yellow,
- /obj/item/food/snacks/burger/ppatty/green,
- /obj/item/food/snacks/burger/ppatty/blue,
- /obj/item/food/snacks/burger/ppatty/purple,
- /obj/item/food/snacks/burger/ppatty/white
+ /obj/item/food/burger/ppatty/red,
+ /obj/item/food/burger/ppatty/orange,
+ /obj/item/food/burger/ppatty/yellow,
+ /obj/item/food/burger/ppatty/green,
+ /obj/item/food/burger/ppatty/blue,
+ /obj/item/food/burger/ppatty/purple,
+ /obj/item/food/burger/ppatty/white
)
- result = /obj/item/food/snacks/burger/ppatty/rainbow
+ result = /obj/item/food/burger/ppatty/rainbow
/datum/recipe/microwave/elecburger
items = list(
- /obj/item/food/snacks/bun,
+ /obj/item/food/bun,
/obj/item/stack/sheet/mineral/plasma,
/obj/item/stack/sheet/mineral/plasma
)
- result = /obj/item/food/snacks/burger/elec
+ result = /obj/item/food/burger/elec
/datum/recipe/microwave/ratburger
items = list(
- /obj/item/food/snacks/bun,
+ /obj/item/food/bun,
/obj/item/holder/mouse
)
- result = /obj/item/food/snacks/burger/rat
+ result = /obj/item/food/burger/rat
/datum/recipe/microwave/candiedapple
reagents = list("water" = 5, "sugar" = 5)
- items = list(/obj/item/food/snacks/grown/apple)
- result = /obj/item/food/snacks/candiedapple
+ items = list(/obj/item/food/grown/apple)
+ result = /obj/item/food/candiedapple
/datum/recipe/microwave/slimeburger
reagents = list("slimejelly" = 5)
items = list(
- /obj/item/food/snacks/bun
+ /obj/item/food/bun
)
- result = /obj/item/food/snacks/burger/jelly/slime
+ result = /obj/item/food/burger/jelly/slime
/datum/recipe/microwave/jellyburger
reagents = list("cherryjelly" = 5)
items = list(
- /obj/item/food/snacks/bun
+ /obj/item/food/bun
)
- result = /obj/item/food/snacks/burger/jelly/cherry
+ result = /obj/item/food/burger/jelly/cherry
/datum/recipe/microwave/twobread
reagents = list("wine" = 5)
items = list(
- /obj/item/food/snacks/breadslice,
- /obj/item/food/snacks/breadslice
+ /obj/item/food/breadslice,
+ /obj/item/food/breadslice
)
- result = /obj/item/food/snacks/twobread
+ result = /obj/item/food/twobread
/datum/recipe/microwave/slimesandwich
reagents = list("slimejelly" = 5)
items = list(
- /obj/item/food/snacks/breadslice,
- /obj/item/food/snacks/breadslice
+ /obj/item/food/breadslice,
+ /obj/item/food/breadslice
)
- result = /obj/item/food/snacks/jellysandwich/slime
+ result = /obj/item/food/jellysandwich/slime
/datum/recipe/microwave/cherrysandwich
reagents = list("cherryjelly" = 5)
items = list(
- /obj/item/food/snacks/breadslice,
- /obj/item/food/snacks/breadslice
+ /obj/item/food/breadslice,
+ /obj/item/food/breadslice
)
- result = /obj/item/food/snacks/jellysandwich/cherry
+ result = /obj/item/food/jellysandwich/cherry
/datum/recipe/microwave/bloodsoup
reagents = list("blood" = 10)
items = list(
- /obj/item/food/snacks/grown/tomato/blood,
- /obj/item/food/snacks/grown/tomato/blood
+ /obj/item/food/grown/tomato/blood,
+ /obj/item/food/grown/tomato/blood
)
- result = /obj/item/food/snacks/soup/bloodsoup
+ result = /obj/item/food/soup/bloodsoup
/datum/recipe/microwave/slimesoup
reagents = list("water" = 10, "slimejelly" = 5)
- result = /obj/item/food/snacks/soup/slimesoup
+ result = /obj/item/food/soup/slimesoup
/datum/recipe/microwave/clownstears
reagents = list("water" = 10)
items = list(
/obj/item/stack/ore/bananium,
- /obj/item/food/snacks/grown/banana
+ /obj/item/food/grown/banana
)
- result = /obj/item/food/snacks/soup/clownstears
+ result = /obj/item/food/soup/clownstears
/datum/recipe/microwave/clownchili
reagents = list("water" = 10)
items = list(
- /obj/item/food/snacks/cutlet,
- /obj/item/food/snacks/cutlet,
- /obj/item/food/snacks/grown/chili,
- /obj/item/food/snacks/grown/tomato,
+ /obj/item/food/cutlet,
+ /obj/item/food/cutlet,
+ /obj/item/food/grown/chili,
+ /obj/item/food/grown/tomato,
/obj/item/clothing/shoes/clown_shoes
)
- result = /obj/item/food/snacks/soup/clownchili
+ result = /obj/item/food/soup/clownchili
/datum/recipe/microwave/eyesoup
reagents = list("water" = 10)
items = list(
- /obj/item/food/snacks/grown/tomato,
- /obj/item/food/snacks/grown/tomato,
+ /obj/item/food/grown/tomato,
+ /obj/item/food/grown/tomato,
/obj/item/organ/internal/eyes
)
- result = /obj/item/food/snacks/soup/eyesoup
+ result = /obj/item/food/soup/eyesoup
/datum/recipe/microwave/sweetpotatosoup
reagents = list("water" = 10, "milk" = 10)
items = list(
- /obj/item/food/snacks/grown/potato/sweet,
- /obj/item/food/snacks/grown/potato/sweet
+ /obj/item/food/grown/potato/sweet,
+ /obj/item/food/grown/potato/sweet
)
- result = /obj/item/food/snacks/soup/sweetpotatosoup
+ result = /obj/item/food/soup/sweetpotatosoup
/datum/recipe/microwave/redbeetsoup
reagents = list("water" = 10)
items = list(
- /obj/item/food/snacks/grown/redbeet,
- /obj/item/food/snacks/grown/redbeet,
- /obj/item/food/snacks/grown/cabbage
+ /obj/item/food/grown/redbeet,
+ /obj/item/food/grown/redbeet,
+ /obj/item/food/grown/cabbage
)
- result = /obj/item/food/snacks/soup/redbeetsoup
+ result = /obj/item/food/soup/redbeetsoup
/datum/recipe/microwave/frenchonionsoup
reagents = list("water" = 10)
items = list(
- /obj/item/food/snacks/grown/onion,
- /obj/item/food/snacks/cheesewedge
+ /obj/item/food/grown/onion,
+ /obj/item/food/cheesewedge
)
- result = /obj/item/food/snacks/soup/frenchonionsoup
+ result = /obj/item/food/soup/frenchonionsoup
/datum/recipe/microwave/zurek
reagents = list("water" = 10, "flour" = 10)
items = list(
- /obj/item/food/snacks/boiledegg,
- /obj/item/food/snacks/sausage,
- /obj/item/food/snacks/grown/carrot,
- /obj/item/food/snacks/grown/onion
+ /obj/item/food/boiledegg,
+ /obj/item/food/sausage,
+ /obj/item/food/grown/carrot,
+ /obj/item/food/grown/onion
)
- result = /obj/item/food/snacks/soup/zurek
+ result = /obj/item/food/soup/zurek
/datum/recipe/microwave/cullenskink
reagents = list("water" = 10, "milk" = 10, "blackpepper" = 4)
items = list(
- /obj/item/food/snacks/salmonmeat,
- /obj/item/food/snacks/grown/onion,
- /obj/item/food/snacks/grown/potato
+ /obj/item/food/salmonmeat,
+ /obj/item/food/grown/onion,
+ /obj/item/food/grown/potato
)
- result = /obj/item/food/snacks/soup/cullenskink
+ result = /obj/item/food/soup/cullenskink
/datum/recipe/microwave/chicken_noodle_soup
reagents = list("water" = 10)
items = list(
- /obj/item/food/snacks/meat,
- /obj/item/food/snacks/grown/carrot,
- /obj/item/food/snacks/boiledspaghetti
+ /obj/item/food/meat,
+ /obj/item/food/grown/carrot,
+ /obj/item/food/boiledspaghetti
)
- result = /obj/item/food/snacks/soup/chicken_noodle_soup
+ result = /obj/item/food/soup/chicken_noodle_soup
/datum/recipe/microwave/cornchowder
reagents = list("water" = 10, "cream" = 5)
items = list(
- /obj/item/food/snacks/grown/corn,
- /obj/item/food/snacks/grown/potato,
- /obj/item/food/snacks/grown/carrot,
- /obj/item/food/snacks/bacon
+ /obj/item/food/grown/corn,
+ /obj/item/food/grown/potato,
+ /obj/item/food/grown/carrot,
+ /obj/item/food/bacon
)
- result = /obj/item/food/snacks/soup/cornchowder
+ result = /obj/item/food/soup/cornchowder
/datum/recipe/microwave/meatball_noodles
reagents = list("water" = 10)
items = list(
- /obj/item/food/snacks/cutlet,
- /obj/item/food/snacks/cutlet,
- /obj/item/food/snacks/grown/onion,
- /obj/item/food/snacks/grown/peanuts,
- /obj/item/food/snacks/meatball,
- /obj/item/food/snacks/meatball,
- /obj/item/food/snacks/spaghetti
+ /obj/item/food/cutlet,
+ /obj/item/food/cutlet,
+ /obj/item/food/grown/onion,
+ /obj/item/food/grown/peanuts,
+ /obj/item/food/meatball,
+ /obj/item/food/meatball,
+ /obj/item/food/spaghetti
)
- result = /obj/item/food/snacks/soup/meatball_noodles
+ result = /obj/item/food/soup/meatball_noodles
/datum/recipe/microwave/seedsoup
reagents = list("water" = 10, "vinegar" = 10)
@@ -870,235 +870,235 @@
/obj/item/seeds/poppy/lily,
/obj/item/seeds/ambrosia
)
- result = /obj/item/food/snacks/soup/seedsoup
+ result = /obj/item/food/soup/seedsoup
/datum/recipe/microwave/beanstew
reagents = list("water" = 10)
items = list(
- /obj/item/food/snacks/beans,
- /obj/item/food/snacks/grown/cabbage,
- /obj/item/food/snacks/grown/tomato,
- /obj/item/food/snacks/grown/onion,
- /obj/item/food/snacks/grown/chili,
- /obj/item/food/snacks/grown/corn
+ /obj/item/food/beans,
+ /obj/item/food/grown/cabbage,
+ /obj/item/food/grown/tomato,
+ /obj/item/food/grown/onion,
+ /obj/item/food/grown/chili,
+ /obj/item/food/grown/corn
)
- result = /obj/item/food/snacks/soup/beanstew
+ result = /obj/item/food/soup/beanstew
/datum/recipe/microwave/oatstew
reagents = list("water" = 10)
items = list(
- /obj/item/food/snacks/grown/oat,
- /obj/item/food/snacks/grown/potato/sweet,
- /obj/item/food/snacks/grown/parsnip,
- /obj/item/food/snacks/grown/carrot
+ /obj/item/food/grown/oat,
+ /obj/item/food/grown/potato/sweet,
+ /obj/item/food/grown/parsnip,
+ /obj/item/food/grown/carrot
)
- result = /obj/item/food/snacks/soup/oatstew
+ result = /obj/item/food/soup/oatstew
/datum/recipe/microwave/hong_kong_borscht
reagents = list("water" = 10, "soysauce" = 5)
items = list(
- /obj/item/food/snacks/grown/tomato,
- /obj/item/food/snacks/grown/cabbage,
- /obj/item/food/snacks/grown/onion,
- /obj/item/food/snacks/grown/carrot,
- /obj/item/food/snacks/cutlet
+ /obj/item/food/grown/tomato,
+ /obj/item/food/grown/cabbage,
+ /obj/item/food/grown/onion,
+ /obj/item/food/grown/carrot,
+ /obj/item/food/cutlet
)
- result = /obj/item/food/snacks/soup/hong_kong_borscht
+ result = /obj/item/food/soup/hong_kong_borscht
/datum/recipe/microwave/hong_kong_macaroni
reagents = list("water" = 10, "cream" = 10)
items = list(
- /obj/item/food/snacks/boiledspaghetti,
- /obj/item/food/snacks/cutlet,
- /obj/item/food/snacks/bacon
+ /obj/item/food/boiledspaghetti,
+ /obj/item/food/cutlet,
+ /obj/item/food/bacon
)
- result = /obj/item/food/snacks/soup/hong_kong_macaroni
+ result = /obj/item/food/soup/hong_kong_macaroni
/datum/recipe/microwave/boiledslimeextract
reagents = list("water" = 5)
items = list(
/obj/item/slime_extract,
)
- result = /obj/item/food/snacks/boiledslimecore
+ result = /obj/item/food/boiledslimecore
/datum/recipe/microwave/mint
reagents = list("toxin" = 5)
- result = /obj/item/food/snacks/mint
+ result = /obj/item/food/mint
/datum/recipe/microwave/chocolateegg
items = list(
- /obj/item/food/snacks/egg,
- /obj/item/food/snacks/chocolatebar
+ /obj/item/food/egg,
+ /obj/item/food/chocolatebar
)
- result = /obj/item/food/snacks/chocolateegg
+ result = /obj/item/food/chocolateegg
/datum/recipe/microwave/mysterysoup
reagents = list("water" = 10)
items = list(
- /obj/item/food/snacks/badrecipe,
- /obj/item/food/snacks/tofu,
- /obj/item/food/snacks/egg,
- /obj/item/food/snacks/cheesewedge
+ /obj/item/food/badrecipe,
+ /obj/item/food/tofu,
+ /obj/item/food/egg,
+ /obj/item/food/cheesewedge
)
- result = /obj/item/food/snacks/soup/mysterysoup
+ result = /obj/item/food/soup/mysterysoup
/datum/recipe/microwave/mushroomsoup
reagents = list("water" = 5, "milk" = 5)
items = list(
- /obj/item/food/snacks/grown/mushroom
+ /obj/item/food/grown/mushroom
)
- result = /obj/item/food/snacks/soup/mushroomsoup
+ result = /obj/item/food/soup/mushroomsoup
/datum/recipe/microwave/chawanmushi
reagents = list("water" = 5, "soysauce" = 5)
items = list(
- /obj/item/food/snacks/egg,
- /obj/item/food/snacks/egg,
- /obj/item/food/snacks/grown/mushroom
+ /obj/item/food/egg,
+ /obj/item/food/egg,
+ /obj/item/food/grown/mushroom
)
- result = /obj/item/food/snacks/chawanmushi
+ result = /obj/item/food/chawanmushi
/datum/recipe/microwave/beetsoup
reagents = list("water" = 10)
items = list(
- /obj/item/food/snacks/grown/whitebeet,
- /obj/item/food/snacks/grown/cabbage
+ /obj/item/food/grown/whitebeet,
+ /obj/item/food/grown/cabbage
)
- result = /obj/item/food/snacks/soup/beetsoup
+ result = /obj/item/food/soup/beetsoup
/datum/recipe/microwave/salad
items = list(
- /obj/item/food/snacks/grown/lettuce,
- /obj/item/food/snacks/grown/lettuce
+ /obj/item/food/grown/lettuce,
+ /obj/item/food/grown/lettuce
)
- result = /obj/item/food/snacks/salad
+ result = /obj/item/food/salad
/datum/recipe/microwave/antipasto_salad
items = list(
- /obj/item/food/snacks/grown/lettuce,
- /obj/item/food/snacks/grown/lettuce,
- /obj/item/food/snacks/grown/olive,
- /obj/item/food/snacks/grown/tomato,
- /obj/item/food/snacks/cutlet,
- /obj/item/food/snacks/cheesewedge
+ /obj/item/food/grown/lettuce,
+ /obj/item/food/grown/lettuce,
+ /obj/item/food/grown/olive,
+ /obj/item/food/grown/tomato,
+ /obj/item/food/cutlet,
+ /obj/item/food/cheesewedge
)
- result = /obj/item/food/snacks/salad/antipasto
+ result = /obj/item/food/salad/antipasto
/datum/recipe/microwave/caesar_salad
reagents = list("oliveoil" = 5)
items = list(
- /obj/item/food/snacks/grown/lettuce,
- /obj/item/food/snacks/onion_slice/red,
- /obj/item/food/snacks/cheesewedge,
- /obj/item/food/snacks/breadslice
+ /obj/item/food/grown/lettuce,
+ /obj/item/food/onion_slice/red,
+ /obj/item/food/cheesewedge,
+ /obj/item/food/breadslice
)
- result = /obj/item/food/snacks/salad/caesar
+ result = /obj/item/food/salad/caesar
/datum/recipe/microwave/citrusdelight
items = list(
- /obj/item/food/snacks/grown/citrus/lime,
- /obj/item/food/snacks/grown/citrus/orange,
- /obj/item/food/snacks/grown/citrus/lemon
+ /obj/item/food/grown/citrus/lime,
+ /obj/item/food/grown/citrus/orange,
+ /obj/item/food/grown/citrus/lemon
)
- result = /obj/item/food/snacks/salad/citrusdelight
+ result = /obj/item/food/salad/citrusdelight
/datum/recipe/microwave/fruitsalad
items = list(
- /obj/item/food/snacks/grown/citrus/orange,
- /obj/item/food/snacks/grown/apple,
- /obj/item/food/snacks/grown/grapes,
- /obj/item/food/snacks/watermelonslice
+ /obj/item/food/grown/citrus/orange,
+ /obj/item/food/grown/apple,
+ /obj/item/food/grown/grapes,
+ /obj/item/food/watermelonslice
)
- result = /obj/item/food/snacks/salad/fruit
+ result = /obj/item/food/salad/fruit
/datum/recipe/microwave/greek_salad
reagents = list("oliveoil" = 5)
items = list(
- /obj/item/food/snacks/grown/olive,
- /obj/item/food/snacks/grown/tomato,
- /obj/item/food/snacks/onion_slice/red,
- /obj/item/food/snacks/onion_slice/red,
- /obj/item/food/snacks/cheesewedge,
- /obj/item/food/snacks/cheesewedge
+ /obj/item/food/grown/olive,
+ /obj/item/food/grown/tomato,
+ /obj/item/food/onion_slice/red,
+ /obj/item/food/onion_slice/red,
+ /obj/item/food/cheesewedge,
+ /obj/item/food/cheesewedge
)
- result = /obj/item/food/snacks/salad/greek
+ result = /obj/item/food/salad/greek
/datum/recipe/microwave/junglesalad
items = list(
- /obj/item/food/snacks/grown/apple,
- /obj/item/food/snacks/grown/grapes,
- /obj/item/food/snacks/grown/banana,
- /obj/item/food/snacks/grown/banana,
- /obj/item/food/snacks/watermelonslice,
- /obj/item/food/snacks/watermelonslice
+ /obj/item/food/grown/apple,
+ /obj/item/food/grown/grapes,
+ /obj/item/food/grown/banana,
+ /obj/item/food/grown/banana,
+ /obj/item/food/watermelonslice,
+ /obj/item/food/watermelonslice
)
- result = /obj/item/food/snacks/salad/jungle
+ result = /obj/item/food/salad/jungle
/datum/recipe/microwave/kale_salad
reagents = list("oliveoil" = 5)
items = list(
- /obj/item/food/snacks/grown/carrot,
- /obj/item/food/snacks/grown/lettuce,
- /obj/item/food/snacks/onion_slice/red,
- /obj/item/food/snacks/onion_slice/red
+ /obj/item/food/grown/carrot,
+ /obj/item/food/grown/lettuce,
+ /obj/item/food/onion_slice/red,
+ /obj/item/food/onion_slice/red
)
- result = /obj/item/food/snacks/salad/kale
+ result = /obj/item/food/salad/kale
/datum/recipe/microwave/potato_salad
reagents = list("mayonnaise" = 5)
items = list(
- /obj/item/food/snacks/grown/potato,
- /obj/item/food/snacks/grown/potato,
- /obj/item/food/snacks/boiledegg
+ /obj/item/food/grown/potato,
+ /obj/item/food/grown/potato,
+ /obj/item/food/boiledegg
)
- result = /obj/item/food/snacks/salad/potato
+ result = /obj/item/food/salad/potato
/datum/recipe/microwave/melonfruitbowl
items = list(
- /obj/item/food/snacks/grown/watermelon,
- /obj/item/food/snacks/grown/apple,
- /obj/item/food/snacks/grown/ambrosia,
- /obj/item/food/snacks/grown/banana,
- /obj/item/food/snacks/grown/citrus/orange,
- /obj/item/food/snacks/grown/citrus/lemon
+ /obj/item/food/grown/watermelon,
+ /obj/item/food/grown/apple,
+ /obj/item/food/grown/ambrosia,
+ /obj/item/food/grown/banana,
+ /obj/item/food/grown/citrus/orange,
+ /obj/item/food/grown/citrus/lemon
)
- result = /obj/item/food/snacks/salad/melonfruitbowl
+ result = /obj/item/food/salad/melonfruitbowl
/datum/recipe/microwave/herbsalad
items = list(
- /obj/item/food/snacks/grown/ambrosia/vulgaris,
- /obj/item/food/snacks/grown/ambrosia/vulgaris,
- /obj/item/food/snacks/grown/ambrosia/vulgaris,
- /obj/item/food/snacks/grown/apple
+ /obj/item/food/grown/ambrosia/vulgaris,
+ /obj/item/food/grown/ambrosia/vulgaris,
+ /obj/item/food/grown/ambrosia/vulgaris,
+ /obj/item/food/grown/apple
)
- result = /obj/item/food/snacks/salad/herb
+ result = /obj/item/food/salad/herb
/datum/recipe/microwave/herbsalad/make_food(obj/container)
- var/obj/item/food/snacks/salad/herb/being_cooked = ..()
+ var/obj/item/food/salad/herb/being_cooked = ..()
being_cooked.reagents.del_reagent("toxin")
return being_cooked
/datum/recipe/microwave/aesirsalad
items = list(
- /obj/item/food/snacks/grown/ambrosia/deus,
- /obj/item/food/snacks/grown/ambrosia/deus,
- /obj/item/food/snacks/grown/ambrosia/deus,
- /obj/item/food/snacks/grown/apple/gold
+ /obj/item/food/grown/ambrosia/deus,
+ /obj/item/food/grown/ambrosia/deus,
+ /obj/item/food/grown/ambrosia/deus,
+ /obj/item/food/grown/apple/gold
)
- result = /obj/item/food/snacks/salad/aesir
+ result = /obj/item/food/salad/aesir
/datum/recipe/microwave/validsalad
items = list(
- /obj/item/food/snacks/grown/ambrosia/vulgaris,
- /obj/item/food/snacks/grown/ambrosia/vulgaris,
- /obj/item/food/snacks/grown/ambrosia/vulgaris,
- /obj/item/food/snacks/grown/potato,
- /obj/item/food/snacks/meatball
+ /obj/item/food/grown/ambrosia/vulgaris,
+ /obj/item/food/grown/ambrosia/vulgaris,
+ /obj/item/food/grown/ambrosia/vulgaris,
+ /obj/item/food/grown/potato,
+ /obj/item/food/meatball
)
- result = /obj/item/food/snacks/salad/valid
+ result = /obj/item/food/salad/valid
/datum/recipe/microwave/validsalad/make_food(obj/container)
- var/obj/item/food/snacks/salad/valid/being_cooked = ..()
+ var/obj/item/food/salad/valid/being_cooked = ..()
being_cooked.reagents.del_reagent("toxin")
return being_cooked
@@ -1107,338 +1107,338 @@
/datum/recipe/microwave/wrap
reagents = list("soysauce" = 10)
items = list(
- /obj/item/food/snacks/friedegg,
- /obj/item/food/snacks/grown/cabbage
+ /obj/item/food/friedegg,
+ /obj/item/food/grown/cabbage
)
- result = /obj/item/food/snacks/wrap
+ result = /obj/item/food/wrap
/datum/recipe/microwave/beans
reagents = list("ketchup" = 5)
items = list(
- /obj/item/food/snacks/grown/soybeans,
- /obj/item/food/snacks/grown/soybeans
+ /obj/item/food/grown/soybeans,
+ /obj/item/food/grown/soybeans
)
- result = /obj/item/food/snacks/beans
+ result = /obj/item/food/beans
/datum/recipe/microwave/benedict
items = list(
- /obj/item/food/snacks/friedegg,
- /obj/item/food/snacks/meatsteak,
- /obj/item/food/snacks/breadslice
+ /obj/item/food/friedegg,
+ /obj/item/food/meatsteak,
+ /obj/item/food/breadslice
)
- result = /obj/item/food/snacks/benedict
+ result = /obj/item/food/benedict
/datum/recipe/microwave/meatbun
reagents = list("soysauce" = 5)
items = list(
- /obj/item/food/snacks/dough,
- /obj/item/food/snacks/meatball,
- /obj/item/food/snacks/grown/cabbage
+ /obj/item/food/dough,
+ /obj/item/food/meatball,
+ /obj/item/food/grown/cabbage
)
- result = /obj/item/food/snacks/meatbun
+ result = /obj/item/food/meatbun
/datum/recipe/microwave/icecreamsandwich
reagents = list("ice" = 5, "cream" = 5)
items = list(
- /obj/item/food/snacks/frozen/icecream
+ /obj/item/food/frozen/icecream
)
- result = /obj/item/food/snacks/frozen/icecreamsandwich
+ result = /obj/item/food/frozen/icecreamsandwich
/datum/recipe/microwave/berryicecreamsandwich
reagents = list("ice" = 5, "cream" = 5)
items = list(
- /obj/item/food/snacks/grown/cherries,
- /obj/item/food/snacks/grown/cherries,
- /obj/item/food/snacks/wafflecone
+ /obj/item/food/grown/cherries,
+ /obj/item/food/grown/cherries,
+ /obj/item/food/wafflecone
)
- result = /obj/item/food/snacks/frozen/berryicecreamsandwich
+ result = /obj/item/food/frozen/berryicecreamsandwich
/datum/recipe/microwave/sundae
reagents = list("cream" = 5)
items = list(
- /obj/item/food/snacks/wafflecone,
- /obj/item/food/snacks/grown/cherries,
- /obj/item/food/snacks/grown/banana
+ /obj/item/food/wafflecone,
+ /obj/item/food/grown/cherries,
+ /obj/item/food/grown/banana
)
- result = /obj/item/food/snacks/frozen/sundae
+ result = /obj/item/food/frozen/sundae
/datum/recipe/microwave/bananatopsicle
reagents = list("sugar" = 5, "banana" = 5)
items = list(
/obj/item/popsicle_stick,
- /obj/item/food/snacks/tofu
+ /obj/item/food/tofu
)
- result = /obj/item/food/snacks/frozen/popsicle/bananatop
+ result = /obj/item/food/frozen/popsicle/bananatop
/datum/recipe/microwave/berrytopsicle
reagents = list("sugar" = 5, "berryjuice" = 5)
items = list(
/obj/item/popsicle_stick,
- /obj/item/food/snacks/tofu
+ /obj/item/food/tofu
)
- result = /obj/item/food/snacks/frozen/popsicle/berrytop
+ result = /obj/item/food/frozen/popsicle/berrytop
/datum/recipe/microwave/pineappletopsicle
reagents = list("sugar" = 5, "pineapplejuice" = 5)
items = list(
/obj/item/popsicle_stick,
- /obj/item/food/snacks/tofu
+ /obj/item/food/tofu
)
- result = /obj/item/food/snacks/frozen/popsicle/pineappletop
+ result = /obj/item/food/frozen/popsicle/pineappletop
/datum/recipe/microwave/licoricecreamsicle
reagents = list("sugar" = 2, "blumpkinjuice" = 4, "ice" = 2, "vanilla" = 2, "cream" = 2)
items = list(
/obj/item/popsicle_stick
)
- result = /obj/item/food/snacks/frozen/popsicle/licoricecream
+ result = /obj/item/food/frozen/popsicle/licoricecream
/datum/recipe/microwave/orangecreamsicle
reagents = list("sugar" = 2, "orangejuice" = 4, "ice" = 2, "vanilla" = 2, "cream" = 2)
items = list(
/obj/item/popsicle_stick
)
- result = /obj/item/food/snacks/frozen/popsicle/orangecream
+ result = /obj/item/food/frozen/popsicle/orangecream
/datum/recipe/microwave/berrycreamsicle
reagents = list("sugar" = 2, "berryjuice" = 4, "ice" = 2, "vanilla" = 2, "cream" = 2)
items = list(
/obj/item/popsicle_stick
)
- result = /obj/item/food/snacks/frozen/popsicle/berrycream
+ result = /obj/item/food/frozen/popsicle/berrycream
/datum/recipe/microwave/frozenpineapplepop
items = list(
/obj/item/popsicle_stick,
- /obj/item/food/snacks/pineappleslice,
- /obj/item/food/snacks/chocolatebar
+ /obj/item/food/pineappleslice,
+ /obj/item/food/chocolatebar
)
- result = /obj/item/food/snacks/frozen/popsicle/frozenpineapple
+ result = /obj/item/food/frozen/popsicle/frozenpineapple
/datum/recipe/microwave/jumboicecream
reagents = list("sugar" = 2, "ice" = 2, "vanilla" = 3, "cream" = 2)
items = list(
/obj/item/popsicle_stick,
- /obj/item/food/snacks/chocolatebar
+ /obj/item/food/chocolatebar
)
- result = /obj/item/food/snacks/frozen/popsicle
+ result = /obj/item/food/frozen/popsicle
/datum/recipe/microwave/seasalticecream
reagents = list("sugar" = 5, "sodiumchloride" = 3, "cream" = 5)
items = list(
/obj/item/popsicle_stick
)
- result = /obj/item/food/snacks/frozen/popsicle/sea_salt
+ result = /obj/item/food/frozen/popsicle/sea_salt
/datum/recipe/microwave/cornuto
reagents = list("ice" = 2, "sugar" = 4, "cream" = 4)
items = list(
- /obj/item/food/snacks/sliceable/flatdough,
- /obj/item/food/snacks/chocolatebar
+ /obj/item/food/sliceable/flatdough,
+ /obj/item/food/chocolatebar
)
- result = /obj/item/food/snacks/frozen/cornuto
+ result = /obj/item/food/frozen/cornuto
/datum/recipe/microwave/honkdae
reagents = list("cream" = 5, "ice" = 5)
items = list(
- /obj/item/food/snacks/wafflecone,
- /obj/item/food/snacks/grown/cherries,
- /obj/item/food/snacks/grown/banana,
- /obj/item/food/snacks/grown/banana,
+ /obj/item/food/wafflecone,
+ /obj/item/food/grown/cherries,
+ /obj/item/food/grown/banana,
+ /obj/item/food/grown/banana,
/obj/item/clothing/mask/gas/clown_hat
)
- result = /obj/item/food/snacks/frozen/honkdae
+ result = /obj/item/food/frozen/honkdae
/datum/recipe/microwave/peanutbuttermochi
reagents = list("cream" = 5, "rice" = 5, "sugar" = 5, "peanutbutter" = 2)
items = list(
- /obj/item/food/snacks/wafflecone
+ /obj/item/food/wafflecone
)
- result = /obj/item/food/snacks/frozen/peanutbuttermochi
+ result = /obj/item/food/frozen/peanutbuttermochi
/datum/recipe/microwave/spacefreezy
reagents = list("bluecherryjelly" = 5,"spacemountainwind" = 15)
items = list(
- /obj/item/food/snacks/frozen/icecream
+ /obj/item/food/frozen/icecream
)
- result = /obj/item/food/snacks/frozen/spacefreezy
+ result = /obj/item/food/frozen/spacefreezy
/datum/recipe/microwave/snowcone/apple
reagents = list("ice" = 15, "applejuice" = 5)
items = list(
/obj/item/reagent_containers/drinks/sillycup
)
- result = /obj/item/food/snacks/frozen/snowcone/apple
+ result = /obj/item/food/frozen/snowcone/apple
/datum/recipe/microwave/snowcone/berry
reagents = list("ice" = 15, "berryjuice" = 5)
items = list(
/obj/item/reagent_containers/drinks/sillycup
)
- result = /obj/item/food/snacks/frozen/snowcone/berry
+ result = /obj/item/food/frozen/snowcone/berry
/datum/recipe/microwave/snowcone/bluecherry
reagents = list("ice" = 15, "bluecherryjelly" = 5)
items = list(
/obj/item/reagent_containers/drinks/sillycup
)
- result = /obj/item/food/snacks/frozen/snowcone/bluecherry
+ result = /obj/item/food/frozen/snowcone/bluecherry
/datum/recipe/microwave/snowcone/cherry
reagents = list("ice" = 15, "cherryjelly" = 5)
items = list(
/obj/item/reagent_containers/drinks/sillycup
)
- result = /obj/item/food/snacks/frozen/snowcone/cherry
+ result = /obj/item/food/frozen/snowcone/cherry
/datum/recipe/microwave/snowcone/flavorless
reagents = list("ice" = 15)
items = list(
/obj/item/reagent_containers/drinks/sillycup
)
- result = /obj/item/food/snacks/frozen/snowcone
+ result = /obj/item/food/frozen/snowcone
/datum/recipe/microwave/snowcone/fruitsalad
reagents = list("ice" = 15, "banana" = 5, "orangejuice" = 5, "watermelonjuice" = 5)
items = list(
/obj/item/reagent_containers/drinks/sillycup
)
- result = /obj/item/food/snacks/frozen/snowcone/fruitsalad
+ result = /obj/item/food/frozen/snowcone/fruitsalad
/datum/recipe/microwave/snowcone/grape
reagents = list("ice" = 15, "grapejuice" = 5)
items = list(
/obj/item/reagent_containers/drinks/sillycup
)
- result = /obj/item/food/snacks/frozen/snowcone/grape
+ result = /obj/item/food/frozen/snowcone/grape
/datum/recipe/microwave/snowcone/honey
reagents = list("ice" = 15, "honey" = 5)
items = list(
/obj/item/reagent_containers/drinks/sillycup
)
- result = /obj/item/food/snacks/frozen/snowcone/honey
+ result = /obj/item/food/frozen/snowcone/honey
/datum/recipe/microwave/snowcone/lemon
reagents = list("ice" = 15, "lemonjuice" = 5)
items = list(
/obj/item/reagent_containers/drinks/sillycup
)
- result = /obj/item/food/snacks/frozen/snowcone/lemon
+ result = /obj/item/food/frozen/snowcone/lemon
/datum/recipe/microwave/snowcone/lime
reagents = list("ice" = 15, "limejuice" = 5)
items = list(
/obj/item/reagent_containers/drinks/sillycup
)
- result = /obj/item/food/snacks/frozen/snowcone/lime
+ result = /obj/item/food/frozen/snowcone/lime
/datum/recipe/microwave/snowcone/mime
reagents = list("ice" = 15, "nothing" = 5)
items = list(
/obj/item/reagent_containers/drinks/sillycup
)
- result = /obj/item/food/snacks/frozen/snowcone/mime
+ result = /obj/item/food/frozen/snowcone/mime
/datum/recipe/microwave/snowcone/orange
reagents = list("ice" = 15, "orangejuice" = 5)
items = list(
/obj/item/reagent_containers/drinks/sillycup
)
- result = /obj/item/food/snacks/frozen/snowcone/orange
+ result = /obj/item/food/frozen/snowcone/orange
/datum/recipe/microwave/snowcone/pineapple
reagents = list("ice" = 15, "pineapplejuice" = 5)
items = list(
/obj/item/reagent_containers/drinks/sillycup
)
- result = /obj/item/food/snacks/frozen/snowcone/pineapple
+ result = /obj/item/food/frozen/snowcone/pineapple
/datum/recipe/microwave/snowcone/rainbow
reagents = list("ice" = 15, "colorful_reagent" = 5)
items = list(
/obj/item/reagent_containers/drinks/sillycup
)
- result = /obj/item/food/snacks/frozen/snowcone/rainbow
+ result = /obj/item/food/frozen/snowcone/rainbow
/datum/recipe/microwave/snowcone/cola
reagents = list("ice" = 15, "cola" = 5)
items = list(
/obj/item/reagent_containers/drinks/sillycup
)
- result = /obj/item/food/snacks/frozen/snowcone/cola
+ result = /obj/item/food/frozen/snowcone/cola
/datum/recipe/microwave/snowcone/spacemountainwind
reagents = list("ice" = 15, "spacemountainwind" = 5)
items = list(
/obj/item/reagent_containers/drinks/sillycup
)
- result = /obj/item/food/snacks/frozen/snowcone/spacemountain
+ result = /obj/item/food/frozen/snowcone/spacemountain
/datum/recipe/microwave/antpopsicle
reagents = list("sugar" = 5, "water" = 5, "ants" = 10)
items = list(
/obj/item/popsicle_stick
)
- result = /obj/item/food/snacks/frozen/popsicle/ant
+ result = /obj/item/food/frozen/popsicle/ant
/datum/recipe/microwave/notasandwich
items = list(
- /obj/item/food/snacks/breadslice,
- /obj/item/food/snacks/breadslice,
+ /obj/item/food/breadslice,
+ /obj/item/food/breadslice,
/obj/item/clothing/mask/fakemoustache
)
- result = /obj/item/food/snacks/notasandwich
+ result = /obj/item/food/notasandwich
/datum/recipe/microwave/friedbanana
reagents = list("sugar" = 10, "cornoil" = 5)
items = list(
- /obj/item/food/snacks/dough,
- /obj/item/food/snacks/grown/banana
+ /obj/item/food/dough,
+ /obj/item/food/grown/banana
)
- result = /obj/item/food/snacks/friedbanana
+ result = /obj/item/food/friedbanana
/datum/recipe/microwave/stuffing
reagents = list("water" = 5, "sodiumchloride" = 1, "blackpepper" = 1)
items = list(
- /obj/item/food/snacks/sliceable/bread
+ /obj/item/food/sliceable/bread
)
- result = /obj/item/food/snacks/stuffing
+ result = /obj/item/food/stuffing
/datum/recipe/microwave/boiledspiderleg
reagents = list("water" = 10)
items = list(
- /obj/item/food/snacks/monstermeat/spiderleg
+ /obj/item/food/monstermeat/spiderleg
)
- result = /obj/item/food/snacks/boiledspiderleg
+ result = /obj/item/food/boiledspiderleg
/datum/recipe/microwave/boiledspiderleg/make_food(obj/container)
- var/obj/item/food/snacks/boiledspiderleg/being_cooked = ..()
+ var/obj/item/food/boiledspiderleg/being_cooked = ..()
being_cooked.reagents.del_reagent("toxin")
return being_cooked
/datum/recipe/microwave/spidereggsham
reagents = list("sodiumchloride" = 1)
items = list(
- /obj/item/food/snacks/monstermeat/spidereggs,
- /obj/item/food/snacks/monstermeat/spidermeat
+ /obj/item/food/monstermeat/spidereggs,
+ /obj/item/food/monstermeat/spidermeat
)
- result = /obj/item/food/snacks/spidereggsham
+ result = /obj/item/food/spidereggsham
/datum/recipe/microwave/spidereggsham/make_food(obj/container)
- var/obj/item/food/snacks/spidereggsham/being_cooked = ..()
+ var/obj/item/food/spidereggsham/being_cooked = ..()
being_cooked.reagents.del_reagent("toxin")
return being_cooked
/datum/recipe/microwave/sashimi
reagents = list("soysauce" = 5)
items = list(
- /obj/item/food/snacks/monstermeat/spidereggs,
- /obj/item/food/snacks/carpmeat
+ /obj/item/food/monstermeat/spidereggs,
+ /obj/item/food/carpmeat
)
- result = /obj/item/food/snacks/sashimi
+ result = /obj/item/food/sashimi
/datum/recipe/microwave/sashimi/make_food(obj/container)
- var/obj/item/food/snacks/sashimi/being_cooked = ..()
+ var/obj/item/food/sashimi/being_cooked = ..()
being_cooked.reagents.del_reagent("carpotoxin")
being_cooked.reagents.del_reagent("toxin")
return being_cooked
@@ -1446,9 +1446,9 @@
/datum/recipe/microwave/mashedtaters
reagents = list("gravy" = 5)
items = list(
- /obj/item/food/snacks/grown/potato
+ /obj/item/food/grown/potato
)
- result = /obj/item/food/snacks/mashed_potatoes
+ result = /obj/item/food/mashed_potatoes
//////////////////////////////////////////
// bs12 food port stuff
@@ -1456,20 +1456,20 @@
/datum/recipe/microwave/taco
items = list(
- /obj/item/food/snacks/doughslice,
- /obj/item/food/snacks/cutlet,
- /obj/item/food/snacks/cheesewedge
+ /obj/item/food/doughslice,
+ /obj/item/food/cutlet,
+ /obj/item/food/cheesewedge
)
- result = /obj/item/food/snacks/taco
+ result = /obj/item/food/taco
/datum/recipe/microwave/mint_2
reagents = list("sugar" = 5, "frostoil" = 5)
- result = /obj/item/food/snacks/mint
+ result = /obj/item/food/mint
/datum/recipe/microwave/boiled_shrimp
reagents = list("water" = 5)
items = list(
- /obj/item/food/snacks/shrimp
+ /obj/item/food/shrimp
)
- result = /obj/item/food/snacks/boiled_shrimp
+ result = /obj/item/food/boiled_shrimp
diff --git a/code/modules/food_and_drinks/recipes/recipes_oven.dm b/code/modules/food_and_drinks/recipes/recipes_oven.dm
index 0d639141d32b..8b0dc71ba6bd 100644
--- a/code/modules/food_and_drinks/recipes/recipes_oven.dm
+++ b/code/modules/food_and_drinks/recipes/recipes_oven.dm
@@ -4,209 +4,209 @@
/datum/recipe/oven/bun
items = list(
- /obj/item/food/snacks/dough
+ /obj/item/food/dough
)
- result = /obj/item/food/snacks/bun
+ result = /obj/item/food/bun
/datum/recipe/oven/meatbread
items = list(
- /obj/item/food/snacks/dough,
- /obj/item/food/snacks/dough,
- /obj/item/food/snacks/dough,
- /obj/item/food/snacks/meat,
- /obj/item/food/snacks/meat,
- /obj/item/food/snacks/meat,
- /obj/item/food/snacks/cheesewedge,
- /obj/item/food/snacks/cheesewedge,
- /obj/item/food/snacks/cheesewedge,
+ /obj/item/food/dough,
+ /obj/item/food/dough,
+ /obj/item/food/dough,
+ /obj/item/food/meat,
+ /obj/item/food/meat,
+ /obj/item/food/meat,
+ /obj/item/food/cheesewedge,
+ /obj/item/food/cheesewedge,
+ /obj/item/food/cheesewedge,
)
- result = /obj/item/food/snacks/sliceable/meatbread
+ result = /obj/item/food/sliceable/meatbread
/datum/recipe/oven/syntibread
items = list(
- /obj/item/food/snacks/dough,
- /obj/item/food/snacks/dough,
- /obj/item/food/snacks/dough,
- /obj/item/food/snacks/meat/syntiflesh,
- /obj/item/food/snacks/meat/syntiflesh,
- /obj/item/food/snacks/meat/syntiflesh,
- /obj/item/food/snacks/cheesewedge,
- /obj/item/food/snacks/cheesewedge,
- /obj/item/food/snacks/cheesewedge,
+ /obj/item/food/dough,
+ /obj/item/food/dough,
+ /obj/item/food/dough,
+ /obj/item/food/meat/syntiflesh,
+ /obj/item/food/meat/syntiflesh,
+ /obj/item/food/meat/syntiflesh,
+ /obj/item/food/cheesewedge,
+ /obj/item/food/cheesewedge,
+ /obj/item/food/cheesewedge,
)
- result = /obj/item/food/snacks/sliceable/meatbread
+ result = /obj/item/food/sliceable/meatbread
/datum/recipe/oven/xenomeatbread
items = list(
- /obj/item/food/snacks/dough,
- /obj/item/food/snacks/dough,
- /obj/item/food/snacks/dough,
- /obj/item/food/snacks/monstermeat/xenomeat,
- /obj/item/food/snacks/monstermeat/xenomeat,
- /obj/item/food/snacks/monstermeat/xenomeat,
- /obj/item/food/snacks/cheesewedge,
- /obj/item/food/snacks/cheesewedge,
- /obj/item/food/snacks/cheesewedge,
+ /obj/item/food/dough,
+ /obj/item/food/dough,
+ /obj/item/food/dough,
+ /obj/item/food/monstermeat/xenomeat,
+ /obj/item/food/monstermeat/xenomeat,
+ /obj/item/food/monstermeat/xenomeat,
+ /obj/item/food/cheesewedge,
+ /obj/item/food/cheesewedge,
+ /obj/item/food/cheesewedge,
)
- result = /obj/item/food/snacks/sliceable/xenomeatbread
+ result = /obj/item/food/sliceable/xenomeatbread
/datum/recipe/oven/bananabread
reagents = list("milk" = 5, "sugar" = 15)
items = list(
- /obj/item/food/snacks/dough,
- /obj/item/food/snacks/dough,
- /obj/item/food/snacks/dough,
- /obj/item/food/snacks/grown/banana
+ /obj/item/food/dough,
+ /obj/item/food/dough,
+ /obj/item/food/dough,
+ /obj/item/food/grown/banana
)
- result = /obj/item/food/snacks/sliceable/bananabread
+ result = /obj/item/food/sliceable/bananabread
/datum/recipe/oven/banarnarbread
reagents = list("milk" = 5, "sugar" = 5, "blood" = 5)
items = list(
- /obj/item/food/snacks/dough,
- /obj/item/food/snacks/dough,
- /obj/item/food/snacks/dough,
- /obj/item/food/snacks/grown/banana
+ /obj/item/food/dough,
+ /obj/item/food/dough,
+ /obj/item/food/dough,
+ /obj/item/food/grown/banana
)
- result = /obj/item/food/snacks/sliceable/banarnarbread
+ result = /obj/item/food/sliceable/banarnarbread
/datum/recipe/oven/muffin
reagents = list("milk" = 5, "sugar" = 5)
items = list(
- /obj/item/food/snacks/dough,
+ /obj/item/food/dough,
)
- result = /obj/item/food/snacks/muffin
+ result = /obj/item/food/muffin
/datum/recipe/oven/carrotcake
reagents = list("milk" = 5, "sugar" = 15)
items = list(
- /obj/item/food/snacks/dough,
- /obj/item/food/snacks/dough,
- /obj/item/food/snacks/dough,
- /obj/item/food/snacks/grown/carrot,
- /obj/item/food/snacks/grown/carrot,
- /obj/item/food/snacks/grown/carrot
+ /obj/item/food/dough,
+ /obj/item/food/dough,
+ /obj/item/food/dough,
+ /obj/item/food/grown/carrot,
+ /obj/item/food/grown/carrot,
+ /obj/item/food/grown/carrot
)
- result = /obj/item/food/snacks/sliceable/carrotcake
+ result = /obj/item/food/sliceable/carrotcake
/datum/recipe/oven/cheesecake
reagents = list("milk" = 5, "sugar" = 15)
items = list(
- /obj/item/food/snacks/dough,
- /obj/item/food/snacks/dough,
- /obj/item/food/snacks/dough,
- /obj/item/food/snacks/cheesewedge,
- /obj/item/food/snacks/cheesewedge,
+ /obj/item/food/dough,
+ /obj/item/food/dough,
+ /obj/item/food/dough,
+ /obj/item/food/cheesewedge,
+ /obj/item/food/cheesewedge,
)
- result = /obj/item/food/snacks/sliceable/cheesecake
+ result = /obj/item/food/sliceable/cheesecake
/datum/recipe/oven/plaincake
reagents = list("milk" = 5, "sugar" = 15)
items = list(
- /obj/item/food/snacks/dough,
- /obj/item/food/snacks/dough,
- /obj/item/food/snacks/dough,
+ /obj/item/food/dough,
+ /obj/item/food/dough,
+ /obj/item/food/dough,
)
- result = /obj/item/food/snacks/sliceable/plaincake
+ result = /obj/item/food/sliceable/plaincake
/datum/recipe/oven/clowncake
reagents = list("milk" = 5, "sugar" = 15)
items = list(
- /obj/item/food/snacks/dough,
- /obj/item/food/snacks/dough,
- /obj/item/food/snacks/dough,
- /obj/item/food/snacks/frozen/sundae,
- /obj/item/food/snacks/frozen/sundae,
- /obj/item/food/snacks/grown/banana,
- /obj/item/food/snacks/grown/banana,
- /obj/item/food/snacks/grown/banana,
- /obj/item/food/snacks/grown/banana,
- /obj/item/food/snacks/grown/banana
+ /obj/item/food/dough,
+ /obj/item/food/dough,
+ /obj/item/food/dough,
+ /obj/item/food/frozen/sundae,
+ /obj/item/food/frozen/sundae,
+ /obj/item/food/grown/banana,
+ /obj/item/food/grown/banana,
+ /obj/item/food/grown/banana,
+ /obj/item/food/grown/banana,
+ /obj/item/food/grown/banana
)
- result = /obj/item/food/snacks/sliceable/clowncake
+ result = /obj/item/food/sliceable/clowncake
/datum/recipe/oven/meatpie
items = list(
- /obj/item/food/snacks/sliceable/flatdough,
- /obj/item/food/snacks/meat,
+ /obj/item/food/sliceable/flatdough,
+ /obj/item/food/meat,
)
- result = /obj/item/food/snacks/meatpie
+ result = /obj/item/food/meatpie
/datum/recipe/oven/tofupie
items = list(
- /obj/item/food/snacks/sliceable/flatdough,
- /obj/item/food/snacks/tofu,
+ /obj/item/food/sliceable/flatdough,
+ /obj/item/food/tofu,
)
- result = /obj/item/food/snacks/tofupie
+ result = /obj/item/food/tofupie
/datum/recipe/oven/xemeatpie
items = list(
- /obj/item/food/snacks/sliceable/flatdough,
- /obj/item/food/snacks/monstermeat/xenomeat
+ /obj/item/food/sliceable/flatdough,
+ /obj/item/food/monstermeat/xenomeat
)
- result = /obj/item/food/snacks/xemeatpie
+ result = /obj/item/food/xemeatpie
/datum/recipe/oven/pie
reagents = list("sugar" = 5)
items = list(
- /obj/item/food/snacks/sliceable/flatdough,
- /obj/item/food/snacks/grown/banana
+ /obj/item/food/sliceable/flatdough,
+ /obj/item/food/grown/banana
)
- result = /obj/item/food/snacks/pie
+ result = /obj/item/food/pie
/datum/recipe/oven/cherrypie
reagents = list("sugar" = 10)
items = list(
- /obj/item/food/snacks/sliceable/flatdough,
- /obj/item/food/snacks/grown/cherries
+ /obj/item/food/sliceable/flatdough,
+ /obj/item/food/grown/cherries
)
- result = /obj/item/food/snacks/cherrypie
+ result = /obj/item/food/cherrypie
/datum/recipe/oven/berryclafoutis
items = list(
- /obj/item/food/snacks/sliceable/flatdough,
- /obj/item/food/snacks/grown/berries
+ /obj/item/food/sliceable/flatdough,
+ /obj/item/food/grown/berries
)
- result = /obj/item/food/snacks/berryclafoutis
+ result = /obj/item/food/berryclafoutis
/datum/recipe/oven/tofubread
items = list(
- /obj/item/food/snacks/dough,
- /obj/item/food/snacks/dough,
- /obj/item/food/snacks/dough,
- /obj/item/food/snacks/tofu,
- /obj/item/food/snacks/tofu,
- /obj/item/food/snacks/tofu,
- /obj/item/food/snacks/cheesewedge,
- /obj/item/food/snacks/cheesewedge,
- /obj/item/food/snacks/cheesewedge,
+ /obj/item/food/dough,
+ /obj/item/food/dough,
+ /obj/item/food/dough,
+ /obj/item/food/tofu,
+ /obj/item/food/tofu,
+ /obj/item/food/tofu,
+ /obj/item/food/cheesewedge,
+ /obj/item/food/cheesewedge,
+ /obj/item/food/cheesewedge,
)
- result = /obj/item/food/snacks/sliceable/tofubread
+ result = /obj/item/food/sliceable/tofubread
/datum/recipe/oven/loadedbakedpotato
items = list(
- /obj/item/food/snacks/cheesewedge,
- /obj/item/food/snacks/grown/potato
+ /obj/item/food/cheesewedge,
+ /obj/item/food/grown/potato
)
- result = /obj/item/food/snacks/loadedbakedpotato
+ result = /obj/item/food/loadedbakedpotato
/datum/recipe/oven/yakiimo
items = list(
- /obj/item/food/snacks/grown/potato/sweet
+ /obj/item/food/grown/potato/sweet
)
- result = /obj/item/food/snacks/yakiimo
+ result = /obj/item/food/yakiimo
////cookies by Ume
/datum/recipe/oven/cookies
items = list(
- /obj/item/food/snacks/rawcookies/chocochips,
+ /obj/item/food/rawcookies/chocochips,
)
result = /obj/item/storage/bag/tray/cookies_tray
/datum/recipe/oven/sugarcookies
items = list(
- /obj/item/food/snacks/rawcookies,
+ /obj/item/food/rawcookies,
)
result = /obj/item/storage/bag/tray/cookies_tray/sugarcookie
@@ -216,15 +216,15 @@
/datum/recipe/oven/fortunecookie
reagents = list("sugar" = 5)
items = list(
- /obj/item/food/snacks/doughslice,
+ /obj/item/food/doughslice,
/obj/item/paper,
)
- result = /obj/item/food/snacks/fortunecookie
+ result = /obj/item/food/fortunecookie
/datum/recipe/oven/fortunecookie/make_food(obj/container)
var/obj/item/paper/P = locate() in container
P.loc = null //So we don't delete the paper while cooking the cookie
- var/obj/item/food/snacks/fortunecookie/being_cooked = ..()
+ var/obj/item/food/fortunecookie/being_cooked = ..()
if(P.info) //If there's anything written on the paper, just move it into the fortune cookie
P.forceMove(being_cooked) //Prevents the oven deleting our paper
being_cooked.trash = P //so the paper is left behind as trash without special-snowflake(TM Nodrak) code ~carn
@@ -235,368 +235,368 @@
// Pizzas
/datum/recipe/oven/pizzamargherita
items = list(
- /obj/item/food/snacks/sliceable/flatdough,
- /obj/item/food/snacks/grown/tomato,
- /obj/item/food/snacks/grown/tomato,
- /obj/item/food/snacks/cheesewedge,
- /obj/item/food/snacks/cheesewedge
+ /obj/item/food/sliceable/flatdough,
+ /obj/item/food/grown/tomato,
+ /obj/item/food/grown/tomato,
+ /obj/item/food/cheesewedge,
+ /obj/item/food/cheesewedge
)
- result = /obj/item/food/snacks/sliceable/pizza/margheritapizza
+ result = /obj/item/food/sliceable/pizza/margheritapizza
/datum/recipe/oven/meatpizza
items = list(
- /obj/item/food/snacks/sliceable/flatdough,
- /obj/item/food/snacks/meat,
- /obj/item/food/snacks/meat,
- /obj/item/food/snacks/meat,
- /obj/item/food/snacks/cheesewedge,
- /obj/item/food/snacks/grown/tomato
+ /obj/item/food/sliceable/flatdough,
+ /obj/item/food/meat,
+ /obj/item/food/meat,
+ /obj/item/food/meat,
+ /obj/item/food/cheesewedge,
+ /obj/item/food/grown/tomato
)
- result = /obj/item/food/snacks/sliceable/pizza/meatpizza
+ result = /obj/item/food/sliceable/pizza/meatpizza
/datum/recipe/oven/mushroompizza
items = list(
- /obj/item/food/snacks/sliceable/flatdough,
- /obj/item/food/snacks/cheesewedge,
- /obj/item/food/snacks/grown/mushroom,
- /obj/item/food/snacks/grown/mushroom,
- /obj/item/food/snacks/grown/mushroom,
- /obj/item/food/snacks/grown/mushroom,
- /obj/item/food/snacks/grown/mushroom,
- /obj/item/food/snacks/grown/tomato
+ /obj/item/food/sliceable/flatdough,
+ /obj/item/food/cheesewedge,
+ /obj/item/food/grown/mushroom,
+ /obj/item/food/grown/mushroom,
+ /obj/item/food/grown/mushroom,
+ /obj/item/food/grown/mushroom,
+ /obj/item/food/grown/mushroom,
+ /obj/item/food/grown/tomato
)
- result = /obj/item/food/snacks/sliceable/pizza/mushroompizza
+ result = /obj/item/food/sliceable/pizza/mushroompizza
/datum/recipe/oven/vegetablepizza
items = list(
- /obj/item/food/snacks/sliceable/flatdough,
- /obj/item/food/snacks/cheesewedge,
- /obj/item/food/snacks/grown/eggplant,
- /obj/item/food/snacks/grown/carrot,
- /obj/item/food/snacks/grown/corn,
- /obj/item/food/snacks/grown/tomato
+ /obj/item/food/sliceable/flatdough,
+ /obj/item/food/cheesewedge,
+ /obj/item/food/grown/eggplant,
+ /obj/item/food/grown/carrot,
+ /obj/item/food/grown/corn,
+ /obj/item/food/grown/tomato
)
- result = /obj/item/food/snacks/sliceable/pizza/vegetablepizza
+ result = /obj/item/food/sliceable/pizza/vegetablepizza
/datum/recipe/oven/hawaiianpizza
items = list(
- /obj/item/food/snacks/sliceable/flatdough,
- /obj/item/food/snacks/grown/tomato,
- /obj/item/food/snacks/cheesewedge,
- /obj/item/food/snacks/pineappleslice,
- /obj/item/food/snacks/pineappleslice,
- /obj/item/food/snacks/meat,
+ /obj/item/food/sliceable/flatdough,
+ /obj/item/food/grown/tomato,
+ /obj/item/food/cheesewedge,
+ /obj/item/food/pineappleslice,
+ /obj/item/food/pineappleslice,
+ /obj/item/food/meat,
)
- result = /obj/item/food/snacks/sliceable/pizza/hawaiianpizza
+ result = /obj/item/food/sliceable/pizza/hawaiianpizza
/datum/recipe/oven/macncheesepizza
items = list(
- /obj/item/food/snacks/sliceable/flatdough,
- /obj/item/food/snacks/cheesewedge,
- /obj/item/food/snacks/cheesewedge,
- /obj/item/food/snacks/macncheese,
+ /obj/item/food/sliceable/flatdough,
+ /obj/item/food/cheesewedge,
+ /obj/item/food/cheesewedge,
+ /obj/item/food/macncheese,
)
- result = /obj/item/food/snacks/sliceable/pizza/macpizza
+ result = /obj/item/food/sliceable/pizza/macpizza
/datum/recipe/oven/cheesepizza
items = list(
- /obj/item/food/snacks/sliceable/flatdough,
- /obj/item/food/snacks/grown/tomato,
- /obj/item/food/snacks/cheesewedge,
- /obj/item/food/snacks/cheesewedge,
- /obj/item/food/snacks/cheesewedge,
- /obj/item/food/snacks/cheesewedge
+ /obj/item/food/sliceable/flatdough,
+ /obj/item/food/grown/tomato,
+ /obj/item/food/cheesewedge,
+ /obj/item/food/cheesewedge,
+ /obj/item/food/cheesewedge,
+ /obj/item/food/cheesewedge
)
- result = /obj/item/food/snacks/sliceable/pizza/cheesepizza
+ result = /obj/item/food/sliceable/pizza/cheesepizza
/datum/recipe/oven/pepperonipizza
items = list(
- /obj/item/food/snacks/sliceable/flatdough,
- /obj/item/food/snacks/grown/tomato,
- /obj/item/food/snacks/cheesewedge,
- /obj/item/food/snacks/sausage
+ /obj/item/food/sliceable/flatdough,
+ /obj/item/food/grown/tomato,
+ /obj/item/food/cheesewedge,
+ /obj/item/food/sausage
)
- result = /obj/item/food/snacks/sliceable/pizza/pepperonipizza
+ result = /obj/item/food/sliceable/pizza/pepperonipizza
/datum/recipe/oven/donkpocketpizza
items = list(
- /obj/item/food/snacks/sliceable/flatdough,
- /obj/item/food/snacks/grown/tomato,
- /obj/item/food/snacks/cheesewedge,
- /obj/item/food/snacks/donkpocket,
- /obj/item/food/snacks/donkpocket
+ /obj/item/food/sliceable/flatdough,
+ /obj/item/food/grown/tomato,
+ /obj/item/food/cheesewedge,
+ /obj/item/food/donkpocket,
+ /obj/item/food/donkpocket
)
- result = /obj/item/food/snacks/sliceable/pizza/donkpocketpizza
+ result = /obj/item/food/sliceable/pizza/donkpocketpizza
/datum/recipe/oven/dankpizza
items = list(
- /obj/item/food/snacks/sliceable/flatdough,
- /obj/item/food/snacks/grown/tomato,
- /obj/item/food/snacks/cheesewedge,
- /obj/item/food/snacks/grown/cannabis,
- /obj/item/food/snacks/grown/cannabis,
- /obj/item/food/snacks/grown/cannabis,
- /obj/item/food/snacks/grown/cannabis
+ /obj/item/food/sliceable/flatdough,
+ /obj/item/food/grown/tomato,
+ /obj/item/food/cheesewedge,
+ /obj/item/food/grown/cannabis,
+ /obj/item/food/grown/cannabis,
+ /obj/item/food/grown/cannabis,
+ /obj/item/food/grown/cannabis
)
- result = /obj/item/food/snacks/sliceable/pizza/dankpizza
+ result = /obj/item/food/sliceable/pizza/dankpizza
/datum/recipe/oven/firecrackerpizza
reagents = list("capsaicin" = 5)
items = list(
- /obj/item/food/snacks/sliceable/flatdough,
- /obj/item/food/snacks/cheesewedge,
- /obj/item/food/snacks/grown/chili,
- /obj/item/food/snacks/grown/chili
+ /obj/item/food/sliceable/flatdough,
+ /obj/item/food/cheesewedge,
+ /obj/item/food/grown/chili,
+ /obj/item/food/grown/chili
)
- result = /obj/item/food/snacks/sliceable/pizza/firecrackerpizza
+ result = /obj/item/food/sliceable/pizza/firecrackerpizza
/datum/recipe/oven/pestopizza
reagents = list("wasabi" = 5)
items = list(
- /obj/item/food/snacks/sliceable/flatdough,
- /obj/item/food/snacks/grown/tomato,
- /obj/item/food/snacks/grown/tomato,
- /obj/item/food/snacks/cheesewedge
+ /obj/item/food/sliceable/flatdough,
+ /obj/item/food/grown/tomato,
+ /obj/item/food/grown/tomato,
+ /obj/item/food/cheesewedge
)
- result = /obj/item/food/snacks/sliceable/pizza/pestopizza
+ result = /obj/item/food/sliceable/pizza/pestopizza
/datum/recipe/oven/garlicpizza
reagents = list("garlic" = 5)
items = list(
- /obj/item/food/snacks/sliceable/flatdough,
- /obj/item/food/snacks/grown/garlic,
- /obj/item/food/snacks/grown/garlic,
- /obj/item/food/snacks/cheesewedge
+ /obj/item/food/sliceable/flatdough,
+ /obj/item/food/grown/garlic,
+ /obj/item/food/grown/garlic,
+ /obj/item/food/cheesewedge
)
- result = /obj/item/food/snacks/sliceable/pizza/garlicpizza
+ result = /obj/item/food/sliceable/pizza/garlicpizza
/datum/recipe/oven/amanita_pie
items = list(
- /obj/item/food/snacks/sliceable/flatdough,
- /obj/item/food/snacks/grown/mushroom/amanita
+ /obj/item/food/sliceable/flatdough,
+ /obj/item/food/grown/mushroom/amanita
)
- result = /obj/item/food/snacks/amanita_pie
+ result = /obj/item/food/amanita_pie
/datum/recipe/oven/plump_pie
items = list(
- /obj/item/food/snacks/sliceable/flatdough,
- /obj/item/food/snacks/grown/mushroom/plumphelmet
+ /obj/item/food/sliceable/flatdough,
+ /obj/item/food/grown/mushroom/plumphelmet
)
- result = /obj/item/food/snacks/plump_pie
+ result = /obj/item/food/plump_pie
/datum/recipe/oven/plumphelmetbiscuit
reagents = list("water" = 5, "flour" = 5)
- items = list(/obj/item/food/snacks/grown/mushroom/plumphelmet)
- result = /obj/item/food/snacks/plumphelmetbiscuit
+ items = list(/obj/item/food/grown/mushroom/plumphelmet)
+ result = /obj/item/food/plumphelmetbiscuit
/datum/recipe/oven/creamcheesebread
items = list(
- /obj/item/food/snacks/dough,
- /obj/item/food/snacks/dough,
- /obj/item/food/snacks/cheesewedge,
- /obj/item/food/snacks/cheesewedge,
+ /obj/item/food/dough,
+ /obj/item/food/dough,
+ /obj/item/food/cheesewedge,
+ /obj/item/food/cheesewedge,
)
- result = /obj/item/food/snacks/sliceable/creamcheesebread
+ result = /obj/item/food/sliceable/creamcheesebread
/datum/recipe/oven/baguette
reagents = list("sodiumchloride" = 1, "blackpepper" = 1)
items = list(
- /obj/item/food/snacks/dough,
- /obj/item/food/snacks/dough,
+ /obj/item/food/dough,
+ /obj/item/food/dough,
)
- result = /obj/item/food/snacks/baguette
+ result = /obj/item/food/baguette
/datum/recipe/oven/croissant
items = list(
- /obj/item/food/snacks/dough,
- /obj/item/food/snacks/egg
+ /obj/item/food/dough,
+ /obj/item/food/egg
)
reagents = list("sodiumchloride" = 1, "milk" = 5, "sugar" = 5)
- result = /obj/item/food/snacks/croissant
+ result = /obj/item/food/croissant
/datum/recipe/oven/birthdaycake
reagents = list("milk" = 5, "sugar" = 15, "vanilla" = 10)
items = list(
- /obj/item/food/snacks/dough,
- /obj/item/food/snacks/dough,
- /obj/item/food/snacks/dough,
+ /obj/item/food/dough,
+ /obj/item/food/dough,
+ /obj/item/food/dough,
/obj/item/candle,
/obj/item/candle,
/obj/item/candle,
)
- result = /obj/item/food/snacks/sliceable/birthdaycake
+ result = /obj/item/food/sliceable/birthdaycake
/datum/recipe/oven/bread
items = list(
- /obj/item/food/snacks/dough,
- /obj/item/food/snacks/egg
+ /obj/item/food/dough,
+ /obj/item/food/egg
)
- result = /obj/item/food/snacks/sliceable/bread
+ result = /obj/item/food/sliceable/bread
/datum/recipe/oven/bread/make_food(obj/container)
- var/obj/item/food/snacks/sliceable/bread/being_cooked = ..()
+ var/obj/item/food/sliceable/bread/being_cooked = ..()
being_cooked.reagents.del_reagent("egg")
return being_cooked
/datum/recipe/oven/applepie
items = list(
- /obj/item/food/snacks/sliceable/flatdough,
- /obj/item/food/snacks/grown/apple
+ /obj/item/food/sliceable/flatdough,
+ /obj/item/food/grown/apple
)
- result = /obj/item/food/snacks/applepie
+ result = /obj/item/food/applepie
/datum/recipe/oven/applecake
reagents = list("milk" = 5, "sugar" = 5)
items = list(
- /obj/item/food/snacks/dough,
- /obj/item/food/snacks/dough,
- /obj/item/food/snacks/dough,
- /obj/item/food/snacks/grown/apple,
- /obj/item/food/snacks/grown/apple
+ /obj/item/food/dough,
+ /obj/item/food/dough,
+ /obj/item/food/dough,
+ /obj/item/food/grown/apple,
+ /obj/item/food/grown/apple
)
- result = /obj/item/food/snacks/sliceable/applecake
+ result = /obj/item/food/sliceable/applecake
/datum/recipe/oven/orangecake
reagents = list("milk" = 5)
items = list(
- /obj/item/food/snacks/dough,
- /obj/item/food/snacks/dough,
- /obj/item/food/snacks/dough,
- /obj/item/food/snacks/grown/citrus/orange,
- /obj/item/food/snacks/grown/citrus/orange
+ /obj/item/food/dough,
+ /obj/item/food/dough,
+ /obj/item/food/dough,
+ /obj/item/food/grown/citrus/orange,
+ /obj/item/food/grown/citrus/orange
)
- result = /obj/item/food/snacks/sliceable/orangecake
+ result = /obj/item/food/sliceable/orangecake
/datum/recipe/oven/bananacake
reagents = list("milk" = 5)
items = list(
- /obj/item/food/snacks/dough,
- /obj/item/food/snacks/dough,
- /obj/item/food/snacks/dough,
- /obj/item/food/snacks/grown/banana,
- /obj/item/food/snacks/grown/banana
+ /obj/item/food/dough,
+ /obj/item/food/dough,
+ /obj/item/food/dough,
+ /obj/item/food/grown/banana,
+ /obj/item/food/grown/banana
)
- result = /obj/item/food/snacks/sliceable/bananacake
+ result = /obj/item/food/sliceable/bananacake
/datum/recipe/oven/limecake
reagents = list("milk" = 5)
items = list(
- /obj/item/food/snacks/dough,
- /obj/item/food/snacks/dough,
- /obj/item/food/snacks/dough,
- /obj/item/food/snacks/grown/citrus/lime,
- /obj/item/food/snacks/grown/citrus/lime
+ /obj/item/food/dough,
+ /obj/item/food/dough,
+ /obj/item/food/dough,
+ /obj/item/food/grown/citrus/lime,
+ /obj/item/food/grown/citrus/lime
)
- result = /obj/item/food/snacks/sliceable/limecake
+ result = /obj/item/food/sliceable/limecake
/datum/recipe/oven/lemoncake
reagents = list("milk" = 5)
items = list(
- /obj/item/food/snacks/dough,
- /obj/item/food/snacks/dough,
- /obj/item/food/snacks/dough,
- /obj/item/food/snacks/grown/citrus/lemon,
- /obj/item/food/snacks/grown/citrus/lemon
+ /obj/item/food/dough,
+ /obj/item/food/dough,
+ /obj/item/food/dough,
+ /obj/item/food/grown/citrus/lemon,
+ /obj/item/food/grown/citrus/lemon
)
- result = /obj/item/food/snacks/sliceable/lemoncake
+ result = /obj/item/food/sliceable/lemoncake
/datum/recipe/oven/chocolatecake
reagents = list("milk" = 5)
items = list(
- /obj/item/food/snacks/dough,
- /obj/item/food/snacks/dough,
- /obj/item/food/snacks/dough,
- /obj/item/food/snacks/chocolatebar,
- /obj/item/food/snacks/chocolatebar,
+ /obj/item/food/dough,
+ /obj/item/food/dough,
+ /obj/item/food/dough,
+ /obj/item/food/chocolatebar,
+ /obj/item/food/chocolatebar,
)
- result = /obj/item/food/snacks/sliceable/chocolatecake
+ result = /obj/item/food/sliceable/chocolatecake
/datum/recipe/oven/braincake
reagents = list("milk" = 5)
items = list(
- /obj/item/food/snacks/dough,
- /obj/item/food/snacks/dough,
- /obj/item/food/snacks/dough,
+ /obj/item/food/dough,
+ /obj/item/food/dough,
+ /obj/item/food/dough,
/obj/item/organ/internal/brain
)
- result = /obj/item/food/snacks/sliceable/braincake
+ result = /obj/item/food/sliceable/braincake
/datum/recipe/oven/pumpkinpie
reagents = list("milk" = 5, "sugar" = 5)
items = list(
- /obj/item/food/snacks/sliceable/flatdough,
- /obj/item/food/snacks/grown/pumpkin
+ /obj/item/food/sliceable/flatdough,
+ /obj/item/food/grown/pumpkin
)
- result = /obj/item/food/snacks/sliceable/pumpkinpie
+ result = /obj/item/food/sliceable/pumpkinpie
/datum/recipe/oven/appletart
reagents = list("sugar" = 5, "milk" = 5, "flour" = 10)
items = list(
- /obj/item/food/snacks/egg,
- /obj/item/food/snacks/grown/apple/gold
+ /obj/item/food/egg,
+ /obj/item/food/grown/apple/gold
)
- result = /obj/item/food/snacks/appletart
+ result = /obj/item/food/appletart
/datum/recipe/oven/appletart/make_food(obj/container)
- var/obj/item/food/snacks/appletart/being_cooked = ..()
+ var/obj/item/food/appletart/being_cooked = ..()
being_cooked.reagents.del_reagent("egg")
return being_cooked
/datum/recipe/oven/cracker
reagents = list("sodiumchloride" = 1)
items = list(
- /obj/item/food/snacks/doughslice
+ /obj/item/food/doughslice
)
- result = /obj/item/food/snacks/cracker
+ result = /obj/item/food/cracker
/datum/recipe/oven/sugarcookie/make_food(obj/container)
- var/obj/item/food/snacks/sugarcookie/being_cooked = ..()
+ var/obj/item/food/sugarcookie/being_cooked = ..()
being_cooked.reagents.del_reagent("egg")
return being_cooked
/datum/recipe/oven/flatbread
items = list(
- /obj/item/food/snacks/sliceable/flatdough
+ /obj/item/food/sliceable/flatdough
)
- result = /obj/item/food/snacks/flatbread
+ result = /obj/item/food/flatbread
/datum/recipe/oven/toastedsandwich
items = list(
- /obj/item/food/snacks/sandwich
+ /obj/item/food/sandwich
)
- result = /obj/item/food/snacks/toastedsandwich
+ result = /obj/item/food/toastedsandwich
/// Magic
/datum/recipe/oven/turkey
items = list(
- /obj/item/food/snacks/meat,
- /obj/item/food/snacks/meat,
- /obj/item/food/snacks/meat,
- /obj/item/food/snacks/meat,
- /obj/item/food/snacks/stuffing,
- /obj/item/food/snacks/stuffing
+ /obj/item/food/meat,
+ /obj/item/food/meat,
+ /obj/item/food/meat,
+ /obj/item/food/meat,
+ /obj/item/food/stuffing,
+ /obj/item/food/stuffing
)
- result = /obj/item/food/snacks/sliceable/turkey
+ result = /obj/item/food/sliceable/turkey
/datum/recipe/oven/tofurkey
items = list(
- /obj/item/food/snacks/tofu,
- /obj/item/food/snacks/tofu,
- /obj/item/food/snacks/stuffing,
+ /obj/item/food/tofu,
+ /obj/item/food/tofu,
+ /obj/item/food/stuffing,
)
- result = /obj/item/food/snacks/tofurkey
+ result = /obj/item/food/tofurkey
/datum/recipe/oven/lasagna
items = list(
- /obj/item/food/snacks/meat,
- /obj/item/food/snacks/meat,
- /obj/item/food/snacks/cheesewedge,
- /obj/item/food/snacks/cheesewedge,
- /obj/item/food/snacks/cheesewedge,
- /obj/item/food/snacks/grown/tomato,
- /obj/item/food/snacks/grown/tomato,
- /obj/item/food/snacks/dough
+ /obj/item/food/meat,
+ /obj/item/food/meat,
+ /obj/item/food/cheesewedge,
+ /obj/item/food/cheesewedge,
+ /obj/item/food/cheesewedge,
+ /obj/item/food/grown/tomato,
+ /obj/item/food/grown/tomato,
+ /obj/item/food/dough
)
- result = /obj/item/food/snacks/lasagna
+ result = /obj/item/food/lasagna
diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_table.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_table.dm
index 05d21f480bdb..9a4ec3876951 100644
--- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_table.dm
+++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_table.dm
@@ -1,11 +1,11 @@
/datum/crafting_recipe/sandwich
name = "Sandwich"
reqs = list(
- /obj/item/food/snacks/meatsteak = 1,
- /obj/item/food/snacks/breadslice = 2,
- /obj/item/food/snacks/cheesewedge = 1,
+ /obj/item/food/meatsteak = 1,
+ /obj/item/food/breadslice = 2,
+ /obj/item/food/cheesewedge = 1,
)
- result = list(/obj/item/food/snacks/sandwich)
+ result = list(/obj/item/food/sandwich)
category = CAT_FOOD
subcategory = CAT_SANDWICH
@@ -13,9 +13,9 @@
name = "Slime Jelly Sandwich"
reqs = list(
/datum/reagent/slimejelly = 5,
- /obj/item/food/snacks/breadslice = 2,
+ /obj/item/food/breadslice = 2,
)
- result = list(/obj/item/food/snacks/jellysandwich/slime)
+ result = list(/obj/item/food/jellysandwich/slime)
category = CAT_FOOD
subcategory = CAT_SANDWICH
@@ -23,9 +23,9 @@
name = "Cherry Jelly Sandwich"
reqs = list(
/datum/reagent/consumable/cherryjelly = 5,
- /obj/item/food/snacks/breadslice = 2,
+ /obj/item/food/breadslice = 2,
)
- result = list(/obj/item/food/snacks/jellysandwich/cherry)
+ result = list(/obj/item/food/jellysandwich/cherry)
category = CAT_FOOD
subcategory = CAT_SANDWICH
@@ -33,9 +33,9 @@
name = "Slime Jelly Burger"
reqs = list(
/datum/reagent/slimejelly = 5,
- /obj/item/food/snacks/bun = 1,
+ /obj/item/food/bun = 1,
)
- result = list(/obj/item/food/snacks/burger/jelly/slime)
+ result = list(/obj/item/food/burger/jelly/slime)
category = CAT_FOOD
subcategory = CAT_SANDWICH
@@ -43,9 +43,9 @@
name = "Cherry Jelly Burger"
reqs = list(
/datum/reagent/consumable/cherryjelly = 5,
- /obj/item/food/snacks/bun = 1,
+ /obj/item/food/bun = 1,
)
- result = list(/obj/item/food/snacks/burger/jelly/cherry)
+ result = list(/obj/item/food/burger/jelly/cherry)
category = CAT_FOOD
subcategory = CAT_SANDWICH
@@ -53,226 +53,226 @@
name = "Home run baseball burger"
reqs = list(
/obj/item/melee/baseball_bat = 1,
- /obj/item/food/snacks/bun = 1,
+ /obj/item/food/bun = 1,
)
- result = list(/obj/item/food/snacks/burger/baseball)
+ result = list(/obj/item/food/burger/baseball)
category = CAT_FOOD
subcategory = CAT_SANDWICH
/datum/crafting_recipe/notasandwich
name = "not-a-sandwich"
reqs = list(
- /obj/item/food/snacks/breadslice = 2,
+ /obj/item/food/breadslice = 2,
/obj/item/clothing/mask/fakemoustache = 1,
)
- result = list(/obj/item/food/snacks/notasandwich)
+ result = list(/obj/item/food/notasandwich)
category = CAT_FOOD
subcategory = CAT_SANDWICH
/datum/crafting_recipe/sushi_Ebi
name = "Ebi Sushi"
reqs = list(
- /obj/item/food/snacks/boiledrice = 1,
- /obj/item/food/snacks/boiled_shrimp = 1,
+ /obj/item/food/boiledrice = 1,
+ /obj/item/food/boiled_shrimp = 1,
/obj/item/stack/seaweed = 1,
)
- result = list(/obj/item/food/snacks/sushi_Ebi)
+ result = list(/obj/item/food/sushi_Ebi)
category = CAT_FOOD
subcategory = CAT_SUSHI
/datum/crafting_recipe/Ebi_maki
name = "Ebi Maki Roll"
reqs = list(
- /obj/item/food/snacks/boiledrice = 1,
- /obj/item/food/snacks/boiled_shrimp = 4,
+ /obj/item/food/boiledrice = 1,
+ /obj/item/food/boiled_shrimp = 4,
/obj/item/stack/seaweed = 1,
)
pathtools = list(/obj/item/kitchen/sushimat)
- result = list(/obj/item/food/snacks/sliceable/Ebi_maki)
+ result = list(/obj/item/food/sliceable/Ebi_maki)
category = CAT_FOOD
subcategory = CAT_SUSHI
/datum/crafting_recipe/sushi_Ikura
name = "Ikura Sushi"
reqs = list(
- /obj/item/food/snacks/boiledrice = 1,
+ /obj/item/food/boiledrice = 1,
/obj/item/fish_eggs/salmon = 1,
/obj/item/stack/seaweed = 1,
)
- result = list(/obj/item/food/snacks/sushi_Ikura)
+ result = list(/obj/item/food/sushi_Ikura)
category = CAT_FOOD
subcategory = CAT_SUSHI
/datum/crafting_recipe/Ikura_maki
name = "Ikura Maki Roll"
reqs = list(
- /obj/item/food/snacks/boiledrice = 1,
+ /obj/item/food/boiledrice = 1,
/obj/item/fish_eggs/salmon = 4,
/obj/item/stack/seaweed = 1,
)
pathtools = list(/obj/item/kitchen/sushimat)
- result = list(/obj/item/food/snacks/sliceable/Ikura_maki)
+ result = list(/obj/item/food/sliceable/Ikura_maki)
category = CAT_FOOD
subcategory = CAT_SUSHI
/datum/crafting_recipe/sushi_Inari
name = "Inari Sushi"
reqs = list(
- /obj/item/food/snacks/boiledrice = 1,
- /obj/item/food/snacks/fried_tofu = 1,
+ /obj/item/food/boiledrice = 1,
+ /obj/item/food/fried_tofu = 1,
/obj/item/stack/seaweed = 1,
)
- result = list(/obj/item/food/snacks/sushi_Inari)
+ result = list(/obj/item/food/sushi_Inari)
category = CAT_FOOD
subcategory = CAT_SUSHI
/datum/crafting_recipe/Inari_maki
name = "Inari Maki Roll"
reqs = list(
- /obj/item/food/snacks/boiledrice = 1,
- /obj/item/food/snacks/fried_tofu = 4,
+ /obj/item/food/boiledrice = 1,
+ /obj/item/food/fried_tofu = 4,
/obj/item/stack/seaweed = 1,
)
pathtools = list(/obj/item/kitchen/sushimat)
- result = list(/obj/item/food/snacks/sliceable/Inari_maki)
+ result = list(/obj/item/food/sliceable/Inari_maki)
category = CAT_FOOD
subcategory = CAT_SUSHI
/datum/crafting_recipe/sushi_Sake
name = "Sake Sushi"
reqs = list(
- /obj/item/food/snacks/boiledrice = 1,
- /obj/item/food/snacks/salmonmeat = 1,
+ /obj/item/food/boiledrice = 1,
+ /obj/item/food/salmonmeat = 1,
/obj/item/stack/seaweed = 1,
)
- result = list(/obj/item/food/snacks/sushi_Sake)
+ result = list(/obj/item/food/sushi_Sake)
category = CAT_FOOD
subcategory = CAT_SUSHI
/datum/crafting_recipe/Sake_maki
name = "Sake Maki Roll"
reqs = list(
- /obj/item/food/snacks/boiledrice = 1,
- /obj/item/food/snacks/salmonmeat = 4,
+ /obj/item/food/boiledrice = 1,
+ /obj/item/food/salmonmeat = 4,
/obj/item/stack/seaweed = 1,
)
pathtools = list(/obj/item/kitchen/sushimat)
- result = list(/obj/item/food/snacks/sliceable/Sake_maki)
+ result = list(/obj/item/food/sliceable/Sake_maki)
category = CAT_FOOD
subcategory = CAT_SUSHI
/datum/crafting_recipe/sushi_SmokedSalmon
name = "Smoked Salmon Sushi"
reqs = list(
- /obj/item/food/snacks/boiledrice = 1,
- /obj/item/food/snacks/salmonsteak = 1,
+ /obj/item/food/boiledrice = 1,
+ /obj/item/food/salmonsteak = 1,
/obj/item/stack/seaweed = 1,
)
- result = list(/obj/item/food/snacks/sushi_SmokedSalmon)
+ result = list(/obj/item/food/sushi_SmokedSalmon)
category = CAT_FOOD
subcategory = CAT_SUSHI
/datum/crafting_recipe/SmokedSalmon_maki
name = "Smoked Salmon Maki Roll"
reqs = list(
- /obj/item/food/snacks/boiledrice = 1,
- /obj/item/food/snacks/salmonsteak = 4,
+ /obj/item/food/boiledrice = 1,
+ /obj/item/food/salmonsteak = 4,
/obj/item/stack/seaweed = 1,
)
pathtools = list(/obj/item/kitchen/sushimat)
- result = list(/obj/item/food/snacks/sliceable/SmokedSalmon_maki)
+ result = list(/obj/item/food/sliceable/SmokedSalmon_maki)
category = CAT_FOOD
subcategory = CAT_SUSHI
/datum/crafting_recipe/sushi_Masago
name = "Masago Sushi"
reqs = list(
- /obj/item/food/snacks/boiledrice = 1,
+ /obj/item/food/boiledrice = 1,
/obj/item/fish_eggs/goldfish = 1,
/obj/item/stack/seaweed = 1,
)
- result = list(/obj/item/food/snacks/sushi_Masago)
+ result = list(/obj/item/food/sushi_Masago)
category = CAT_FOOD
subcategory = CAT_SUSHI
/datum/crafting_recipe/Masago_maki
name = "Masago Maki Roll"
reqs = list(
- /obj/item/food/snacks/boiledrice = 1,
+ /obj/item/food/boiledrice = 1,
/obj/item/fish_eggs/goldfish = 4,
/obj/item/stack/seaweed = 1,
)
pathtools = list(/obj/item/kitchen/sushimat)
- result = list(/obj/item/food/snacks/sliceable/Masago_maki)
+ result = list(/obj/item/food/sliceable/Masago_maki)
category = CAT_FOOD
subcategory = CAT_SUSHI
/datum/crafting_recipe/sushi_Tobiko
name = "Tobiko Sushi"
reqs = list(
- /obj/item/food/snacks/boiledrice = 1,
+ /obj/item/food/boiledrice = 1,
/obj/item/fish_eggs/shark = 1,
/obj/item/stack/seaweed = 1,
)
- result = list(/obj/item/food/snacks/sushi_Tobiko)
+ result = list(/obj/item/food/sushi_Tobiko)
category = CAT_FOOD
subcategory = CAT_SUSHI
/datum/crafting_recipe/Tobiko_maki
name = "Tobiko Maki Roll"
reqs = list(
- /obj/item/food/snacks/boiledrice = 1,
+ /obj/item/food/boiledrice = 1,
/obj/item/fish_eggs/shark = 4,
/obj/item/stack/seaweed = 1,
)
pathtools = list(/obj/item/kitchen/sushimat)
- result = list(/obj/item/food/snacks/sliceable/Tobiko_maki)
+ result = list(/obj/item/food/sliceable/Tobiko_maki)
category = CAT_FOOD
subcategory = CAT_SUSHI
/datum/crafting_recipe/sushi_TobikoEgg
name = "Tobiko and Egg Sushi"
reqs = list(
- /obj/item/food/snacks/sushi_Tobiko = 1,
- /obj/item/food/snacks/egg = 1,
+ /obj/item/food/sushi_Tobiko = 1,
+ /obj/item/food/egg = 1,
/obj/item/stack/seaweed = 1,
)
- result = list(/obj/item/food/snacks/sushi_TobikoEgg)
+ result = list(/obj/item/food/sushi_TobikoEgg)
category = CAT_FOOD
subcategory = CAT_SUSHI
/datum/crafting_recipe/TobikoEgg_maki
name = "Tobiko and Egg Maki Roll"
reqs = list(
- /obj/item/food/snacks/sushi_Tobiko = 4,
- /obj/item/food/snacks/egg = 4,
+ /obj/item/food/sushi_Tobiko = 4,
+ /obj/item/food/egg = 4,
/obj/item/stack/seaweed = 1,
)
pathtools = list(/obj/item/kitchen/sushimat)
- result = list(/obj/item/food/snacks/sliceable/TobikoEgg_maki)
+ result = list(/obj/item/food/sliceable/TobikoEgg_maki)
category = CAT_FOOD
subcategory = CAT_SUSHI
/datum/crafting_recipe/sushi_Tai
name = "Tai Sushi"
reqs = list(
- /obj/item/food/snacks/boiledrice = 1,
- /obj/item/food/snacks/catfishmeat = 1,
+ /obj/item/food/boiledrice = 1,
+ /obj/item/food/catfishmeat = 1,
/obj/item/stack/seaweed = 1,
)
- result = list(/obj/item/food/snacks/sushi_Tai)
+ result = list(/obj/item/food/sushi_Tai)
category = CAT_FOOD
subcategory = CAT_SUSHI
/datum/crafting_recipe/Tai_maki
name = "Tai Maki Roll"
reqs = list(
- /obj/item/food/snacks/boiledrice = 1,
- /obj/item/food/snacks/catfishmeat = 4,
+ /obj/item/food/boiledrice = 1,
+ /obj/item/food/catfishmeat = 4,
/obj/item/stack/seaweed = 1,
)
pathtools = list(/obj/item/kitchen/sushimat)
- result = list(/obj/item/food/snacks/sliceable/Tai_maki)
+ result = list(/obj/item/food/sliceable/Tai_maki)
category = CAT_FOOD
subcategory = CAT_SUSHI
@@ -286,8 +286,8 @@
reqs = list(
/obj/item/organ/internal/brain = 1,
/obj/item/organ/internal/heart = 1,
- /obj/item/food/snacks/sliceable/birthdaycake = 1,
- /obj/item/food/snacks/meat = 3,
+ /obj/item/food/sliceable/birthdaycake = 1,
+ /obj/item/food/meat = 3,
/datum/reagent/blood = 30,
/datum/reagent/consumable/sprinkles = 5,
/datum/reagent/teslium = 1,
diff --git a/code/modules/hallucinations/effects/moderate.dm b/code/modules/hallucinations/effects/moderate.dm
index fcbf90c05747..1dde6a4097e8 100644
--- a/code/modules/hallucinations/effects/moderate.dm
+++ b/code/modules/hallucinations/effects/moderate.dm
@@ -344,7 +344,10 @@
/obj/effect/hallucination/stunprodding/Initialize(mapload, mob/living/carbon/target)
. = ..()
- var/turf/T = pick(RANGE_TURFS(15, target))
+ var/list/possible_turfs = RANGE_TURFS(15, target)
+ if(!length(possible_turfs))
+ return INITIALIZE_HINT_QDEL
+ var/turf/T = pick(possible_turfs)
target.playsound_local(T, 'sound/weapons/egloves.ogg', 25, TRUE)
target.playsound_local(T, get_sfx("bodyfall"), 25, TRUE)
target.playsound_local(T, "sparks", 50, TRUE)
@@ -366,7 +369,10 @@
/obj/effect/hallucination/energy_sword/Initialize(mapload, mob/living/carbon/target)
. = ..()
- var/turf/T = pick(RANGE_TURFS(15, target))
+ var/list/possible_turfs = RANGE_TURFS(15, target)
+ if(!length(possible_turfs))
+ return INITIALIZE_HINT_QDEL
+ var/turf/T = pick(possible_turfs)
forceMove(T)
target.playsound_local(T, 'sound/weapons/saberon.ogg', 20, TRUE)
@@ -398,7 +404,10 @@
/obj/effect/hallucination/gunfire/Initialize(mapload, mob/living/carbon/target)
. = ..()
- var/turf/T = pick(RANGE_TURFS(15, target))
+ var/list/possible_turfs = RANGE_TURFS(15, target)
+ if(!length(possible_turfs))
+ return INITIALIZE_HINT_QDEL
+ var/turf/T = pick(possible_turfs)
forceMove(T)
var/gun_sound = pick('sound/weapons/gunshots/gunshot_pistol.ogg', 'sound/weapons/gunshots/gunshot_strong.ogg')
diff --git a/code/modules/hydroponics/beekeeping/beebox.dm b/code/modules/hydroponics/beekeeping/beebox.dm
index 01fb9c6111b8..9debfe1aa6a3 100644
--- a/code/modules/hydroponics/beekeeping/beebox.dm
+++ b/code/modules/hydroponics/beekeeping/beebox.dm
@@ -95,7 +95,7 @@
if(queen_bee)
if(bee_resources >= BEE_RESOURCE_HONEYCOMB_COST && length(honeycombs) < get_max_honeycomb())
bee_resources = max(bee_resources-BEE_RESOURCE_HONEYCOMB_COST, 0)
- var/obj/item/food/snacks/honeycomb/HC = new(src)
+ var/obj/item/food/honeycomb/HC = new(src)
if(queen_bee.beegent)
HC.set_reagent(queen_bee.beegent.id)
honeycombs += HC
@@ -240,7 +240,7 @@
var/amtH = HF.honeycomb_capacity
var/fallen = 0
while(length(honeycombs) && amtH) //let's pretend you always grab the frame with the most honeycomb on it
- var/obj/item/food/snacks/honeycomb/HC = pick_n_take(honeycombs)
+ var/obj/item/food/honeycomb/HC = pick_n_take(honeycombs)
if(HC)
HC.forceMove(get_turf(src))
amtH--
diff --git a/code/modules/hydroponics/beekeeping/honeycomb.dm b/code/modules/hydroponics/beekeeping/honeycomb.dm
index 7f27bdb9841b..cdbaf069c417 100644
--- a/code/modules/hydroponics/beekeeping/honeycomb.dm
+++ b/code/modules/hydroponics/beekeeping/honeycomb.dm
@@ -1,5 +1,5 @@
-/obj/item/food/snacks/honeycomb
+/obj/item/food/honeycomb
name = "honeycomb"
desc = "A hexagonal mesh of honeycomb."
icon = 'icons/obj/hydroponics/harvest.dmi'
@@ -8,13 +8,13 @@
list_reagents = list("honey" = 5)
var/honey_color = ""
-/obj/item/food/snacks/honeycomb/Initialize(mapload)
+/obj/item/food/honeycomb/Initialize(mapload)
. = ..()
pixel_x = rand(8,-8)
pixel_y = rand(8,-8)
update_icon(UPDATE_OVERLAYS)
-/obj/item/food/snacks/honeycomb/update_overlays()
+/obj/item/food/honeycomb/update_overlays()
. = ..()
var/image/honey
if(honey_color)
@@ -25,7 +25,7 @@
. += honey
-/obj/item/food/snacks/honeycomb/proc/set_reagent(reagent)
+/obj/item/food/honeycomb/proc/set_reagent(reagent)
var/datum/reagent/R = GLOB.chemical_reagents_list[reagent]
if(istype(R))
name = "honeycomb ([R.name])"
diff --git a/code/modules/hydroponics/biogenerator.dm b/code/modules/hydroponics/biogenerator.dm
index ef4e15963d4a..8db4b80f1b53 100644
--- a/code/modules/hydroponics/biogenerator.dm
+++ b/code/modules/hydroponics/biogenerator.dm
@@ -32,10 +32,10 @@
var/static/list/acceptable_items = typecacheof(list(
/obj/item/seeds,
/obj/item/unsorted_seeds,
- /obj/item/food/snacks/grown,
+ /obj/item/food/grown,
/obj/item/grown,
- /obj/item/food/snacks/grown/ash_flora,
- /obj/item/food/snacks/honeycomb))
+ /obj/item/food/grown/ash_flora,
+ /obj/item/food/honeycomb))
/obj/machinery/biogenerator/Initialize(mapload)
. = ..()
@@ -105,19 +105,23 @@
/obj/machinery/biogenerator/attackby(obj/item/O, mob/user, params)
if(user.a_intent == INTENT_HARM)
return ..()
+
+ if(istype(O, /obj/item/storage/part_replacer))
+ return ..()
+
if(processing)
to_chat(user, "[src] is currently processing.")
return
- if(exchange_parts(user, O))
- return
if(istype(O, /obj/item/reagent_containers/glass))
if(panel_open)
to_chat(user, "Close the maintenance panel first.")
return
+
if(container)
to_chat(user, "A container is already loaded into [src].")
return
+
if(!user.drop_item())
return
@@ -128,7 +132,7 @@
SStgui.update_uis(src)
return TRUE
- else if(istype(O, /obj/item/storage/bag/plants))
+ if(istype(O, /obj/item/storage/bag/plants))
if(length(stored_plants) >= max_storable_plants)
to_chat(user, "[src] can't hold any more plants!")
return
@@ -149,7 +153,7 @@
SStgui.update_uis(src)
return TRUE
- else if(is_type_in_typecache(O, acceptable_items))
+ if(is_type_in_typecache(O, acceptable_items))
if(length(stored_plants) >= max_storable_plants)
to_chat(user, "[src] can't hold any more plants!")
return
@@ -162,7 +166,7 @@
SStgui.update_uis(src)
return TRUE
- else if(istype(O, /obj/item/disk/design_disk))
+ if(istype(O, /obj/item/disk/design_disk))
user.visible_message("[user] begins to load [O] in [src]...",
"You begin to load a design from [O]...",
"You hear the chatter of a floppy drive.")
@@ -176,8 +180,8 @@
processing = FALSE
update_ui_product_list(user)
return TRUE
- else
- to_chat(user, "You cannot put this in [name]!")
+
+ to_chat(user, "You cannot put [src] in [name]!")
/**
* Builds/Updates the `product_list` used by the UI.
diff --git a/code/modules/hydroponics/compost_bin.dm b/code/modules/hydroponics/compost_bin.dm
index ecb796857bac..5d0dedd9e191 100644
--- a/code/modules/hydroponics/compost_bin.dm
+++ b/code/modules/hydroponics/compost_bin.dm
@@ -54,7 +54,7 @@
return default_deconstruction_crowbar(user, I, ignore_panel = TRUE)
// Accepts inserted plants and converts them to biomass and potassium
-/obj/machinery/compost_bin/proc/make_biomass(obj/item/food/snacks/grown/O)
+/obj/machinery/compost_bin/proc/make_biomass(obj/item/food/grown/O)
// calculate biomass from plant nutriment and plant matter
var/plant_biomass = O.reagents.get_reagent_amount("nutriment") + O.reagents.get_reagent_amount("plantmatter")
var/plant_potassium = O.reagents.get_reagent_amount("potassium")
@@ -76,7 +76,7 @@
return
var/obj/item/storage/bag/plants/PB = O
- for(var/obj/item/food/snacks/grown/G in PB.contents)
+ for(var/obj/item/food/grown/G in PB.contents)
// if the plant contains either potassium, plantmatter and nutriment and the compost bin has space for any of those.
if((G.reagents.get_reagent_amount("potassium") && potassium <= potassium_capacity) || ((G.reagents.get_reagent_amount("plantmatter") || G.reagents.get_reagent_amount("nutriment")) && biomass <= biomass_capacity))
PB.remove_from_storage(G, src)
@@ -99,7 +99,7 @@
update_icon_state()
return TRUE
- if(istype(O, /obj/item/food/snacks/grown))
+ if(istype(O, /obj/item/food/grown))
if(biomass >= biomass_capacity && potassium >= potassium_capacity)
to_chat(user, "[src] can't hold any more biomass, and its contents are saturated with potassium!")
return
diff --git a/code/modules/hydroponics/fermenting_barrel.dm b/code/modules/hydroponics/fermenting_barrel.dm
index cad77d337e2d..2bd18ee1793f 100644
--- a/code/modules/hydroponics/fermenting_barrel.dm
+++ b/code/modules/hydroponics/fermenting_barrel.dm
@@ -20,7 +20,7 @@
. = ..()
. += "It is currently [open ? "open, letting you pour liquids in." : "closed, letting you draw liquids from the tap."]"
-/obj/structure/fermenting_barrel/proc/makeWine(obj/item/food/snacks/grown/G)
+/obj/structure/fermenting_barrel/proc/makeWine(obj/item/food/grown/G)
if(G.reagents)
G.reagents.trans_to(src, G.reagents.total_volume)
var/amount = G.seed.potency / 4
@@ -40,7 +40,7 @@
playsound(src, 'sound/effects/bubbles.ogg', 50, TRUE)
/obj/structure/fermenting_barrel/attackby(obj/item/I, mob/user, params)
- var/obj/item/food/snacks/grown/G = I
+ var/obj/item/food/grown/G = I
if(istype(G))
if(!G.can_distill)
to_chat(user, "You can't distill this into anything...")
diff --git a/code/modules/hydroponics/gene_modder.dm b/code/modules/hydroponics/gene_modder.dm
index 6cac5b3b9641..272dbbf143c0 100644
--- a/code/modules/hydroponics/gene_modder.dm
+++ b/code/modules/hydroponics/gene_modder.dm
@@ -134,22 +134,23 @@
if(default_deconstruction_screwdriver(user, "dnamod", "dnamod", I))
update_icon(UPDATE_OVERLAYS)
return
- if(exchange_parts(user, I))
- return
+
if(default_deconstruction_crowbar(user, I))
return
- if(isrobot(user))
+
+ if(istype(I, /obj/item/unsorted_seeds))
+ to_chat(user, "You need to sort [I] first!")
return
if(istype(I, /obj/item/seeds))
add_seed(I, user)
- else if(istype(I, /obj/item/unsorted_seeds))
- to_chat(user, "You need to sort [I] first!")
- return ..()
- else if(istype(I, /obj/item/disk/plantgene) || istype(I, /obj/item/storage/box))
+ return
+
+ if(istype(I, /obj/item/disk/plantgene) || istype(I, /obj/item/storage/box))
add_disk(I, user)
- else
- return ..()
+ return
+
+ return ..()
/obj/machinery/plantgenes/proc/add_seed(obj/item/seeds/new_seed, mob/user)
if(seed)
diff --git a/code/modules/hydroponics/grown.dm b/code/modules/hydroponics/grown.dm
index 2fb1bcf161ea..d8e658a8afcd 100644
--- a/code/modules/hydroponics/grown.dm
+++ b/code/modules/hydroponics/grown.dm
@@ -4,7 +4,7 @@
// ***********************************************************
// Base type. Subtypes are found in /grown dir.
-/obj/item/food/snacks/grown
+/obj/item/food/grown
icon = 'icons/obj/hydroponics/harvest.dmi'
/// The seed of this plant. Starts as a type path, gets converted to an item on New()
var/obj/item/seeds/seed = null
@@ -21,7 +21,7 @@
resistance_flags = FLAMMABLE
origin_tech = "biotech=1"
-/obj/item/food/snacks/grown/Initialize(mapload, obj/new_seed = null)
+/obj/item/food/grown/Initialize(mapload, obj/new_seed = null)
. = ..()
if(!tastes)
tastes = list("[name]" = 1)
@@ -51,25 +51,25 @@
if(seed.variant)
name += " \[[seed.variant]]"
-/obj/item/food/snacks/grown/Destroy()
+/obj/item/food/grown/Destroy()
QDEL_NULL(seed)
return ..()
-/obj/item/food/snacks/grown/proc/add_juice()
+/obj/item/food/grown/proc/add_juice()
if(reagents)
if(bitesize_mod)
bitesize = 1 + round(reagents.total_volume / bitesize_mod)
return 1
return 0
-/obj/item/food/snacks/grown/examine(user)
+/obj/item/food/grown/examine(user)
. = ..()
if(seed)
for(var/datum/plant_gene/trait/T in seed.genes)
if(T.examine_line)
. += T.examine_line
-/obj/item/food/snacks/grown/attackby(obj/item/O, mob/user, params)
+/obj/item/food/grown/attackby(obj/item/O, mob/user, params)
..()
if(slices_num && slice_path)
var/inaccurate = TRUE
@@ -106,12 +106,12 @@
// Various gene procs
-/obj/item/food/snacks/grown/attack_self(mob/user)
+/obj/item/food/grown/attack_self(mob/user)
if(seed && seed.get_gene(/datum/plant_gene/trait/squash))
squash(user)
..()
-/obj/item/food/snacks/grown/throw_impact(atom/hit_atom)
+/obj/item/food/grown/throw_impact(atom/hit_atom)
if(!..()) //was it caught by a mob?
if(seed)
log_action(locateUID(thrownby), hit_atom, "Thrown [src] at")
@@ -120,7 +120,7 @@
if(seed.get_gene(/datum/plant_gene/trait/squash))
squash(hit_atom)
-/obj/item/food/snacks/grown/proc/squash(atom/target)
+/obj/item/food/grown/proc/squash(atom/target)
var/turf/T = get_turf(target)
if(ispath(splat_type, /obj/effect/decal/cleanable/plant_smudge))
if(filling_color)
@@ -145,28 +145,28 @@
qdel(src)
-/obj/item/food/snacks/grown/On_Consume(mob/M, mob/user)
+/obj/item/food/grown/On_Consume(mob/M, mob/user)
if(iscarbon(M))
if(seed)
for(var/datum/plant_gene/trait/T in seed.genes)
T.on_consume(src, M)
..()
-/obj/item/food/snacks/grown/after_slip(mob/living/carbon/human/H)
+/obj/item/food/grown/after_slip(mob/living/carbon/human/H)
if(!seed)
return
for(var/datum/plant_gene/trait/T in seed.genes)
T.on_slip(src, H)
// Glow gene procs
-/obj/item/food/snacks/grown/generate_trash(atom/location)
+/obj/item/food/grown/generate_trash(atom/location)
if(trash && ispath(trash, /obj/item/grown))
. = new trash(location, seed)
trash = null
return
return ..()
-/obj/item/food/snacks/grown/decompile_act(obj/item/matter_decompiler/C, mob/user)
+/obj/item/food/grown/decompile_act(obj/item/matter_decompiler/C, mob/user)
if(isdrone(user))
C.stored_comms["wood"] += 4
qdel(src)
@@ -174,7 +174,7 @@
return ..()
// For item-containing growns such as eggy or gatfruit
-/obj/item/food/snacks/grown/shell/attack_self(mob/user)
+/obj/item/food/grown/shell/attack_self(mob/user)
if(!do_after(user, 1.5 SECONDS, target = user))
return
user.unEquip(src)
@@ -185,14 +185,14 @@
qdel(src)
// Diona Nymphs can eat these as well as weeds to gain nutrition.
-/obj/item/food/snacks/grown/attack_animal(mob/living/simple_animal/M)
+/obj/item/food/grown/attack_animal(mob/living/simple_animal/M)
if(isnymph(M))
var/mob/living/simple_animal/diona/D = M
D.consume(src)
else
return ..()
-/obj/item/food/snacks/grown/proc/log_action(mob/user, atom/target, what_done)
+/obj/item/food/grown/proc/log_action(mob/user, atom/target, what_done)
var/reagent_str = reagents.log_list()
var/genes_str = "No genes"
if(seed && length(seed.genes))
@@ -205,12 +205,12 @@
add_attack_logs(user, target, "[what_done] ([reagent_str] | [genes_str])")
-/obj/item/food/snacks/grown/extinguish_light(force)
+/obj/item/food/grown/extinguish_light(force)
if(seed.get_gene(/datum/plant_gene/trait/glow/shadow))
return
set_light(0)
-/obj/item/food/snacks/grown/proc/send_plant_details(mob/user)
+/obj/item/food/grown/proc/send_plant_details(mob/user)
var/msg = "This is \a [src].\n"
if(seed)
msg += seed.get_analyzer_text()
@@ -225,13 +225,13 @@
msg += reag_txt
to_chat(user, msg)
-/obj/item/food/snacks/grown/attack_ghost(mob/dead/observer/user)
+/obj/item/food/grown/attack_ghost(mob/dead/observer/user)
if(!istype(user)) // Make sure user is actually an observer. Revenents also use attack_ghost, but do not have the toggle plant analyzer var.
return
if(user.plant_analyzer)
send_plant_details(user)
-/obj/item/food/snacks/grown/fire_act()
+/obj/item/food/grown/fire_act()
if(!..()) //Checks for if its unburnable
return
if(!reagents)
diff --git a/code/modules/hydroponics/grown/ambrosia.dm b/code/modules/hydroponics/grown/ambrosia.dm
index 0cd8dfcdb5e2..b11cfd562511 100644
--- a/code/modules/hydroponics/grown/ambrosia.dm
+++ b/code/modules/hydroponics/grown/ambrosia.dm
@@ -1,5 +1,5 @@
// Ambrosia - base type
-/obj/item/food/snacks/grown/ambrosia
+/obj/item/food/grown/ambrosia
seed = /obj/item/seeds/ambrosia
name = "ambrosia branch"
desc = "This is a plant."
@@ -20,7 +20,7 @@
icon_state = "seed-ambrosiavulgaris"
species = "ambrosiavulgaris"
plantname = "Ambrosia Vulgaris"
- product = /obj/item/food/snacks/grown/ambrosia/vulgaris
+ product = /obj/item/food/grown/ambrosia/vulgaris
lifespan = 60
endurance = 25
yield = 6
@@ -30,7 +30,7 @@
mutatelist = list(/obj/item/seeds/ambrosia/deus)
reagents_add = list("space_drugs" = 0.15, "bicaridine" = 0.1, "kelotane" = 0.1, "vitamin" = 0.04, "plantmatter" = 0.05, "toxin" = 0.1)
-/obj/item/food/snacks/grown/ambrosia/vulgaris
+/obj/item/food/grown/ambrosia/vulgaris
seed = /obj/item/seeds/ambrosia
name = "ambrosia vulgaris branch"
desc = "This is a plant containing various healing chemicals."
@@ -44,12 +44,12 @@
icon_state = "seed-ambrosiadeus"
species = "ambrosiadeus"
plantname = "Ambrosia Deus"
- product = /obj/item/food/snacks/grown/ambrosia/deus
+ product = /obj/item/food/grown/ambrosia/deus
mutatelist = list(/obj/item/seeds/ambrosia/gaia)
reagents_add = list("weak_omnizine" = 0.15, "synaptizine" = 0.15, "space_drugs" = 0.1, "vitamin" = 0.04, "plantmatter" = 0.05)
rarity = 40
-/obj/item/food/snacks/grown/ambrosia/deus
+/obj/item/food/grown/ambrosia/deus
seed = /obj/item/seeds/ambrosia/deus
name = "ambrosia deus branch"
desc = "Eating this makes you feel immortal!"
@@ -70,7 +70,7 @@
icon_state = "seed-ambrosia_gaia"
species = "ambrosia_gaia"
plantname = "Ambrosia Gaia"
- product = /obj/item/food/snacks/grown/ambrosia/gaia
+ product = /obj/item/food/grown/ambrosia/gaia
mutatelist = list()
reagents_add = list("earthsblood" = 0.05, "nutriment" = 0.06, "vitamin" = 0.05)
rarity = 30 //These are some pretty good plants right here
@@ -78,7 +78,7 @@
weed_rate = 4
weed_chance = 100
-/obj/item/food/snacks/grown/ambrosia/gaia
+/obj/item/food/grown/ambrosia/gaia
name = "ambrosia gaia branch"
desc = "Eating this makes you immortal."
icon_state = "ambrosia_gaia"
@@ -92,12 +92,12 @@
// Ambrosia Cruciatus
/obj/item/seeds/ambrosia/cruciatus
- product = /obj/item/food/snacks/grown/ambrosia/cruciatus
+ product = /obj/item/food/grown/ambrosia/cruciatus
potency = 10
mutatelist = list()
reagents_add = list("thc" = 0.15, "kelotane" = 0.15, "bicaridine" = 0.1, "bath_salts" = 0.20, "plantmatter" = 0.05)
-/obj/item/food/snacks/grown/ambrosia/cruciatus
+/obj/item/food/grown/ambrosia/cruciatus
seed = /obj/item/seeds/ambrosia/cruciatus
wine_power = 0.7
tastes = list("ambrosia cruciatus" = 1)
diff --git a/code/modules/hydroponics/grown/apple.dm b/code/modules/hydroponics/grown/apple.dm
index f1cd12752313..68e21264f2f5 100644
--- a/code/modules/hydroponics/grown/apple.dm
+++ b/code/modules/hydroponics/grown/apple.dm
@@ -5,7 +5,7 @@
icon_state = "seed-apple"
species = "apple"
plantname = "Apple Tree"
- product = /obj/item/food/snacks/grown/apple
+ product = /obj/item/food/grown/apple
lifespan = 55
endurance = 35
yield = 5
@@ -16,7 +16,7 @@
mutatelist = list(/obj/item/seeds/apple/gold)
reagents_add = list("vitamin" = 0.04, "plantmatter" = 0.1)
-/obj/item/food/snacks/grown/apple
+/obj/item/food/grown/apple
seed = /obj/item/seeds/apple
name = "apple"
desc = "It's a little piece of Eden."
@@ -28,12 +28,12 @@
// Posioned Apple
/obj/item/seeds/apple/poisoned
- product = /obj/item/food/snacks/grown/apple/poisoned
+ product = /obj/item/food/grown/apple/poisoned
mutatelist = list()
reagents_add = list("cyanide" = 0.5, "vitamin" = 0.04, "plantmatter" = 0.1)
rarity = 50 // Source of cyanide, and hard (almost impossible) to obtain normally.
-/obj/item/food/snacks/grown/apple/poisoned
+/obj/item/food/grown/apple/poisoned
seed = /obj/item/seeds/apple/poisoned
// Gold Apple
@@ -43,14 +43,14 @@
icon_state = "seed-goldapple"
species = "goldapple"
plantname = "Golden Apple Tree"
- product = /obj/item/food/snacks/grown/apple/gold
+ product = /obj/item/food/grown/apple/gold
maturation = 10
production = 10
mutatelist = list()
reagents_add = list("gold" = 0.2, "vitamin" = 0.04, "plantmatter" = 0.1)
rarity = 40 // Alchemy!
-/obj/item/food/snacks/grown/apple/gold
+/obj/item/food/grown/apple/gold
seed = /obj/item/seeds/apple/gold
name = "golden apple"
desc = "Emblazoned upon the apple is the word 'Kallisti'."
diff --git a/code/modules/hydroponics/grown/banana.dm b/code/modules/hydroponics/grown/banana.dm
index da8012befd4d..1ef613568142 100644
--- a/code/modules/hydroponics/grown/banana.dm
+++ b/code/modules/hydroponics/grown/banana.dm
@@ -5,7 +5,7 @@
icon_state = "seed-banana"
species = "banana"
plantname = "Banana Tree"
- product = /obj/item/food/snacks/grown/banana
+ product = /obj/item/food/grown/banana
lifespan = 50
endurance = 30
growing_icon = 'icons/obj/hydroponics/growing_fruits.dmi'
@@ -14,7 +14,7 @@
mutatelist = list(/obj/item/seeds/banana/mime, /obj/item/seeds/banana/bluespace)
reagents_add = list("banana" = 0.1, "potassium" = 0.1, "vitamin" = 0.04, "plantmatter" = 0.02)
-/obj/item/food/snacks/grown/banana
+/obj/item/food/grown/banana
seed = /obj/item/seeds/banana
name = "banana"
desc = "It's an excellent prop for a clown."
@@ -26,11 +26,11 @@
distill_reagent = "bananahonk"
tastes = list("banana" = 1)
-/obj/item/food/snacks/grown/banana/Initialize(mapload)
+/obj/item/food/grown/banana/Initialize(mapload)
. = ..()
ADD_TRAIT(src, TRAIT_CAN_POINT_WITH, ROUNDSTART_TRAIT)
-/obj/item/food/snacks/grown/banana/suicide_act(mob/user)
+/obj/item/food/grown/banana/suicide_act(mob/user)
user.visible_message("[user] is aiming [src] at [user.p_themselves()]! It looks like [user.p_theyre()] trying to commit suicide!")
playsound(loc, 'sound/items/bikehorn.ogg', 50, TRUE, -1)
sleep(25)
@@ -81,13 +81,13 @@
icon_state = "seed-mimana"
species = "mimana"
plantname = "Mimana Tree"
- product = /obj/item/food/snacks/grown/banana/mime
+ product = /obj/item/food/grown/banana/mime
growthstages = 4
mutatelist = list()
reagents_add = list("nothing" = 0.1, "capulettium_plus" = 0.1, "nutriment" = 0.02)
rarity = 15
-/obj/item/food/snacks/grown/banana/mime
+/obj/item/food/grown/banana/mime
seed = /obj/item/seeds/banana/mime
name = "mimana"
desc = "It's an excellent prop for a mime."
@@ -110,13 +110,13 @@
species = "bluespacebanana"
icon_grow = "banana-grow"
plantname = "Bluespace Banana Tree"
- product = /obj/item/food/snacks/grown/banana/bluespace
+ product = /obj/item/food/grown/banana/bluespace
mutatelist = list()
genes = list(/datum/plant_gene/trait/slip, /datum/plant_gene/trait/teleport, /datum/plant_gene/trait/repeated_harvest)
reagents_add = list("singulo" = 0.2, "banana" = 0.1, "vitamin" = 0.04, "plantmatter" = 0.02)
rarity = 30
-/obj/item/food/snacks/grown/banana/bluespace
+/obj/item/food/grown/banana/bluespace
seed = /obj/item/seeds/banana/bluespace
name = "bluespace banana"
icon_state = "bluenana"
diff --git a/code/modules/hydroponics/grown/beans.dm b/code/modules/hydroponics/grown/beans.dm
index 4c0ad33b5f46..d1d4c9c125a0 100644
--- a/code/modules/hydroponics/grown/beans.dm
+++ b/code/modules/hydroponics/grown/beans.dm
@@ -5,7 +5,7 @@
icon_state = "seed-soybean"
species = "soybean"
plantname = "Soybean Plants"
- product = /obj/item/food/snacks/grown/soybeans
+ product = /obj/item/food/grown/soybeans
maturation = 4
production = 4
potency = 15
@@ -17,7 +17,7 @@
mutatelist = list(/obj/item/seeds/soya/koi)
reagents_add = list("vitamin" = 0.04, "plantmatter" = 0.05, "soybeanoil" = 0.03)
-/obj/item/food/snacks/grown/soybeans
+/obj/item/food/grown/soybeans
seed = /obj/item/seeds/soya
name = "soybeans"
desc = "It's pretty bland, but oh the possibilities..."
@@ -35,13 +35,13 @@
icon_state = "seed-koibean"
species = "koibean"
plantname = "Koibean Plants"
- product = /obj/item/food/snacks/grown/koibeans
+ product = /obj/item/food/grown/koibeans
potency = 10
mutatelist = list()
reagents_add = list("carpotoxin" = 0.1, "vitamin" = 0.04, "plantmatter" = 0.05)
rarity = 20
-/obj/item/food/snacks/grown/koibeans
+/obj/item/food/grown/koibeans
seed = /obj/item/seeds/soya/koi
name = "koibean"
desc = "Something about these seems fishy."
diff --git a/code/modules/hydroponics/grown/berries.dm b/code/modules/hydroponics/grown/berries.dm
index 78f651294985..1137e7533685 100644
--- a/code/modules/hydroponics/grown/berries.dm
+++ b/code/modules/hydroponics/grown/berries.dm
@@ -5,7 +5,7 @@
icon_state = "seed-berry"
species = "berry"
plantname = "Berry Bush"
- product = /obj/item/food/snacks/grown/berries
+ product = /obj/item/food/grown/berries
lifespan = 20
maturation = 5
production = 5
@@ -17,7 +17,7 @@
mutatelist = list(/obj/item/seeds/berry/glow, /obj/item/seeds/berry/poison)
reagents_add = list("vitamin" = 0.04, "plantmatter" = 0.1)
-/obj/item/food/snacks/grown/berries
+/obj/item/food/grown/berries
seed = /obj/item/seeds/berry
name = "bunch of berries"
desc = "Nutritious!"
@@ -35,12 +35,12 @@
icon_state = "seed-poisonberry"
species = "poisonberry"
plantname = "Poison-Berry Bush"
- product = /obj/item/food/snacks/grown/berries/poison
+ product = /obj/item/food/grown/berries/poison
mutatelist = list(/obj/item/seeds/berry/death)
reagents_add = list("cyanide" = 0.15, "tirizene" = 0.2, "vitamin" = 0.04, "plantmatter" = 0.1)
rarity = 10 // Mildly poisonous berries are common in reality
-/obj/item/food/snacks/grown/berries/poison
+/obj/item/food/grown/berries/poison
seed = /obj/item/seeds/berry/poison
name = "bunch of poison-berries"
desc = "Taste so good, you could die!"
@@ -57,14 +57,14 @@
icon_state = "seed-deathberry"
species = "deathberry"
plantname = "Death Berry Bush"
- product = /obj/item/food/snacks/grown/berries/death
+ product = /obj/item/food/grown/berries/death
lifespan = 30
potency = 50
mutatelist = list()
reagents_add = list("coniine" = 0.08, "tirizene" = 0.1, "vitamin" = 0.04, "plantmatter" = 0.1)
rarity = 30
-/obj/item/food/snacks/grown/berries/death
+/obj/item/food/grown/berries/death
seed = /obj/item/seeds/berry/death
name = "bunch of death-berries"
desc = "Taste so good, you could die!"
@@ -81,7 +81,7 @@
icon_state = "seed-glowberry"
species = "glowberry"
plantname = "Glow-Berry Bush"
- product = /obj/item/food/snacks/grown/berries/glow
+ product = /obj/item/food/grown/berries/glow
lifespan = 30
endurance = 25
mutatelist = list()
@@ -89,7 +89,7 @@
reagents_add = list("uranium" = 0.25, "iodine" = 0.2, "vitamin" = 0.04, "plantmatter" = 0.1)
rarity = 20
-/obj/item/food/snacks/grown/berries/glow
+/obj/item/food/grown/berries/glow
seed = /obj/item/seeds/berry/glow
name = "bunch of glow-berries"
desc = "Nutritious!"
@@ -109,7 +109,7 @@
icon_state = "seed-cherry"
species = "cherry"
plantname = "Cherry Tree"
- product = /obj/item/food/snacks/grown/cherries
+ product = /obj/item/food/grown/cherries
lifespan = 35
endurance = 35
maturation = 5
@@ -122,7 +122,7 @@
mutatelist = list(/obj/item/seeds/cherry/blue)
reagents_add = list("plantmatter" = 0.07, "sugar" = 0.07)
-/obj/item/food/snacks/grown/cherries
+/obj/item/food/grown/cherries
seed = /obj/item/seeds/cherry
name = "cherries"
desc = "Great for toppings!"
@@ -140,12 +140,12 @@
icon_state = "seed-bluecherry"
species = "bluecherry"
plantname = "Blue Cherry Tree"
- product = /obj/item/food/snacks/grown/bluecherries
+ product = /obj/item/food/grown/bluecherries
mutatelist = list()
reagents_add = list("plantmatter" = 0.07, "sugar" = 0.07)
rarity = 10
-/obj/item/food/snacks/grown/bluecherries
+/obj/item/food/grown/bluecherries
seed = /obj/item/seeds/cherry/blue
name = "blue cherries"
desc = "They're cherries that are blue."
@@ -162,7 +162,7 @@
icon_state = "seed-grapes"
species = "grape"
plantname = "Grape Vine"
- product = /obj/item/food/snacks/grown/grapes
+ product = /obj/item/food/grown/grapes
lifespan = 50
endurance = 25
maturation = 3
@@ -176,12 +176,12 @@
mutatelist = list(/obj/item/seeds/grape/green)
reagents_add = list("vitamin" = 0.04, "plantmatter" = 0.1, "sugar" = 0.1)
-/obj/item/food/snacks/grown/grapes
+/obj/item/food/grown/grapes
seed = /obj/item/seeds/grape
name = "bunch of grapes"
desc = "Nutritious!"
icon_state = "grapes"
- dried_type = /obj/item/food/snacks/no_raisin/healthy
+ dried_type = /obj/item/food/no_raisin/healthy
filling_color = "#FF1493"
bitesize_mod = 2
tastes = list("grapes" = 1)
@@ -194,12 +194,12 @@
icon_state = "seed-greengrapes"
species = "greengrape"
plantname = "Green-Grape Vine"
- product = /obj/item/food/snacks/grown/grapes/green
+ product = /obj/item/food/grown/grapes/green
reagents_add = list("kelotane" = 0.2, "vitamin" = 0.04, "plantmatter" = 0.1, "sugar" = 0.1)
// No rarity: technically it's a beneficial mutant, but it's not exactly "new"...
mutatelist = list()
-/obj/item/food/snacks/grown/grapes/green
+/obj/item/food/grown/grapes/green
seed = /obj/item/seeds/grape/green
name = "bunch of green grapes"
icon_state = "greengrapes"
diff --git a/code/modules/hydroponics/grown/cannabis.dm b/code/modules/hydroponics/grown/cannabis.dm
index ce96f21d6668..517033e030c3 100644
--- a/code/modules/hydroponics/grown/cannabis.dm
+++ b/code/modules/hydroponics/grown/cannabis.dm
@@ -5,7 +5,7 @@
icon_state = "seed-cannabis"
species = "cannabis"
plantname = "Cannabis Plant"
- product = /obj/item/food/snacks/grown/cannabis
+ product = /obj/item/food/grown/cannabis
maturation = 8
potency = 20
growthstages = 1
@@ -24,7 +24,7 @@
icon_state = "seed-megacannabis"
species = "megacannabis"
plantname = "Rainbow Weed"
- product = /obj/item/food/snacks/grown/cannabis/rainbow
+ product = /obj/item/food/grown/cannabis/rainbow
mutatelist = list(/obj/item/seeds/cannabis/death,
/obj/item/seeds/cannabis/ultimate)
reagents_add = list("lsd" = 0.15, "thc" = 0.15, "cbd" = 0.15, "happiness" = 0.15)
@@ -36,7 +36,7 @@
icon_state = "seed-blackcannabis"
species = "blackcannabis"
plantname = "Deathweed"
- product = /obj/item/food/snacks/grown/cannabis/death
+ product = /obj/item/food/grown/cannabis/death
mutatelist = list()
reagents_add = list("cyanide" = 0.35, "thc" = 0.15, "cbd" = 0.15)
rarity = 40
@@ -47,7 +47,7 @@
icon_state = "seed-whitecannabis"
species = "whitecannabis"
plantname = "Lifeweed"
- product = /obj/item/food/snacks/grown/cannabis/white
+ product = /obj/item/food/grown/cannabis/white
mutatelist = list(/obj/item/seeds/cannabis/death,
/obj/item/seeds/cannabis/ultimate)
reagents_add = list("omnizine" = 0.35, "thc" = 0.15, "cbd" = 0.15)
@@ -60,7 +60,7 @@
icon_state = "seed-ocannabis"
species = "ocannabis"
plantname = "Omega Weed"
- product = /obj/item/food/snacks/grown/cannabis/ultimate
+ product = /obj/item/food/grown/cannabis/ultimate
mutatelist = list()
reagents_add = list("lsd" = 0.05,
"suicider" = 0.05,
@@ -85,7 +85,7 @@
// ---------------------------------------------------------------
-/obj/item/food/snacks/grown/cannabis
+/obj/item/food/grown/cannabis
seed = /obj/item/seeds/cannabis
icon = 'icons/goonstation/objects/hydroponics.dmi'
name = "cannabis leaf"
@@ -97,28 +97,28 @@
wine_power = 0.2
-/obj/item/food/snacks/grown/cannabis/rainbow
+/obj/item/food/grown/cannabis/rainbow
seed = /obj/item/seeds/cannabis/rainbow
name = "rainbow cannabis leaf"
desc = "Is it supposed to be glowing like that...?"
icon_state = "megacannabis"
wine_power = 0.6
-/obj/item/food/snacks/grown/cannabis/death
+/obj/item/food/grown/cannabis/death
seed = /obj/item/seeds/cannabis/death
name = "death cannabis leaf"
desc = "Looks a bit dark. Oh well."
icon_state = "blackcannabis"
wine_power = 0.4
-/obj/item/food/snacks/grown/cannabis/white
+/obj/item/food/grown/cannabis/white
seed = /obj/item/seeds/cannabis/white
name = "white cannabis leaf"
desc = "It feels smooth and nice to the touch."
icon_state = "whitecannabis"
wine_power = 0.1
-/obj/item/food/snacks/grown/cannabis/ultimate
+/obj/item/food/grown/cannabis/ultimate
seed = /obj/item/seeds/cannabis/ultimate
name = "omega cannibas leaf"
desc = "You feel dizzy looking at it. What the fuck?"
diff --git a/code/modules/hydroponics/grown/cereals.dm b/code/modules/hydroponics/grown/cereals.dm
index e5342e999858..0d57acbdd9a6 100644
--- a/code/modules/hydroponics/grown/cereals.dm
+++ b/code/modules/hydroponics/grown/cereals.dm
@@ -5,7 +5,7 @@
icon_state = "seed-wheat"
species = "wheat"
plantname = "Wheat Stalks"
- product = /obj/item/food/snacks/grown/wheat
+ product = /obj/item/food/grown/wheat
production = 1
yield = 4
potency = 30
@@ -13,7 +13,7 @@
mutatelist = list(/obj/item/seeds/wheat/oat, /obj/item/seeds/wheat/meat)
reagents_add = list("plantmatter" = 0.04)
-/obj/item/food/snacks/grown/wheat
+/obj/item/food/grown/wheat
seed = /obj/item/seeds/wheat
name = "wheat"
desc = "Sigh... wheat... a-grain?"
@@ -31,10 +31,10 @@
icon_state = "seed-oat"
species = "oat"
plantname = "Oat Stalks"
- product = /obj/item/food/snacks/grown/oat
+ product = /obj/item/food/grown/oat
mutatelist = list()
-/obj/item/food/snacks/grown/oat
+/obj/item/food/grown/oat
seed = /obj/item/seeds/wheat/oat
name = "oat"
desc = "Eat oats, do squats."
@@ -52,11 +52,11 @@
icon_state = "seed-rice"
species = "rice"
plantname = "Rice Stalks"
- product = /obj/item/food/snacks/grown/rice
+ product = /obj/item/food/grown/rice
mutatelist = list()
growthstages = 3
-/obj/item/food/snacks/grown/rice
+/obj/item/food/grown/rice
seed = /obj/item/seeds/wheat/rice
name = "rice"
desc = "Rice to meet you."
@@ -74,11 +74,11 @@
icon_state = "seed-meatwheat"
species = "meatwheat"
plantname = "Meatwheat"
- product = /obj/item/food/snacks/grown/meatwheat
+ product = /obj/item/food/grown/meatwheat
mutatelist = list()
reagents_add = list("protein" = 0.04)
-/obj/item/food/snacks/grown/meatwheat
+/obj/item/food/grown/meatwheat
name = "meatwheat"
desc = "Some blood-drenched wheat stalks. You can crush them into what passes for meat if you squint hard enough."
icon_state = "meatwheat"
@@ -89,10 +89,10 @@
tastes = list("meatwheat" = 1)
can_distill = FALSE
-/obj/item/food/snacks/grown/meatwheat/attack_self(mob/living/user)
+/obj/item/food/grown/meatwheat/attack_self(mob/living/user)
user.visible_message("[user] crushes [src] into meat.", "You crush [src] into something that resembles meat.")
playsound(user, 'sound/effects/blobattack.ogg', 50, 1)
- var/obj/item/food/snacks/meat/meatwheat/M = new(get_turf(user))
+ var/obj/item/food/meat/meatwheat/M = new(get_turf(user))
user.drop_item()
qdel(src)
user.put_in_hands(M)
diff --git a/code/modules/hydroponics/grown/chili.dm b/code/modules/hydroponics/grown/chili.dm
index 63202491bffc..d0c05accc2b8 100644
--- a/code/modules/hydroponics/grown/chili.dm
+++ b/code/modules/hydroponics/grown/chili.dm
@@ -5,7 +5,7 @@
icon_state = "seed-chili"
species = "chili"
plantname = "Chili Plants"
- product = /obj/item/food/snacks/grown/chili
+ product = /obj/item/food/grown/chili
lifespan = 20
maturation = 5
production = 5
@@ -18,7 +18,7 @@
mutatelist = list(/obj/item/seeds/chili/ice, /obj/item/seeds/chili/ghost)
reagents_add = list("capsaicin" = 0.25, "vitamin" = 0.04, "plantmatter" = 0.04)
-/obj/item/food/snacks/grown/chili
+/obj/item/food/grown/chili
seed = /obj/item/seeds/chili
name = "chili"
desc = "It's spicy! Wait... IT'S BURNING ME!!"
@@ -35,7 +35,7 @@
icon_state = "seed-icepepper"
species = "chiliice"
plantname = "Chilly Pepper Plants"
- product = /obj/item/food/snacks/grown/icepepper
+ product = /obj/item/food/grown/icepepper
lifespan = 25
maturation = 4
production = 4
@@ -43,7 +43,7 @@
mutatelist = list()
reagents_add = list("frostoil" = 0.25, "vitamin" = 0.02, "plantmatter" = 0.02)
-/obj/item/food/snacks/grown/icepepper
+/obj/item/food/grown/icepepper
seed = /obj/item/seeds/chili/ice
name = "chilly pepper"
desc = "It's a mutant strain of chili"
@@ -61,7 +61,7 @@
icon_state = "seed-chilighost"
species = "chilighost"
plantname = "Ghost Chili Plants"
- product = /obj/item/food/snacks/grown/ghost_chili
+ product = /obj/item/food/grown/ghost_chili
endurance = 10
maturation = 10
production = 10
@@ -70,7 +70,7 @@
mutatelist = list()
reagents_add = list("condensedcapsaicin" = 0.3, "capsaicin" = 0.55, "plantmatter" = 0.04)
-/obj/item/food/snacks/grown/ghost_chili
+/obj/item/food/grown/ghost_chili
seed = /obj/item/seeds/chili/ghost
name = "ghost chili"
desc = "It seems to be vibrating gently."
diff --git a/code/modules/hydroponics/grown/citrus.dm b/code/modules/hydroponics/grown/citrus.dm
index f4d1b53d0e3c..1ee7a1d9f155 100644
--- a/code/modules/hydroponics/grown/citrus.dm
+++ b/code/modules/hydroponics/grown/citrus.dm
@@ -1,5 +1,5 @@
// Citrus - base type
-/obj/item/food/snacks/grown/citrus
+/obj/item/food/grown/citrus
seed = /obj/item/seeds/lime
name = "citrus"
desc = "It's so sour, your face will twist."
@@ -14,7 +14,7 @@
icon_state = "seed-lime"
species = "lime"
plantname = "Lime Tree"
- product = /obj/item/food/snacks/grown/citrus/lime
+ product = /obj/item/food/grown/citrus/lime
lifespan = 55
endurance = 50
yield = 4
@@ -24,7 +24,7 @@
mutatelist = list(/obj/item/seeds/orange)
reagents_add = list("vitamin" = 0.04, "plantmatter" = 0.05)
-/obj/item/food/snacks/grown/citrus/lime
+/obj/item/food/grown/citrus/lime
seed = /obj/item/seeds/lime
name = "lime"
desc = "It's so sour, your face will twist."
@@ -39,7 +39,7 @@
icon_state = "seed-orange"
species = "orange"
plantname = "Orange Tree"
- product = /obj/item/food/snacks/grown/citrus/orange
+ product = /obj/item/food/grown/citrus/orange
lifespan = 60
endurance = 50
yield = 5
@@ -51,7 +51,7 @@
mutatelist = list(/obj/item/seeds/lime)
reagents_add = list("vitamin" = 0.04, "plantmatter" = 0.05)
-/obj/item/food/snacks/grown/citrus/orange
+/obj/item/food/grown/citrus/orange
seed = /obj/item/seeds/orange
name = "orange"
desc = "It's an tangy fruit."
@@ -67,7 +67,7 @@
icon_state = "seed-lemon"
species = "lemon"
plantname = "Lemon Tree"
- product = /obj/item/food/snacks/grown/citrus/lemon
+ product = /obj/item/food/grown/citrus/lemon
lifespan = 55
endurance = 45
yield = 4
@@ -78,7 +78,7 @@
mutatelist = list(/obj/item/seeds/firelemon)
reagents_add = list("vitamin" = 0.04, "plantmatter" = 0.05)
-/obj/item/food/snacks/grown/citrus/lemon
+/obj/item/food/grown/citrus/lemon
seed = /obj/item/seeds/lemon
name = "lemon"
desc = "When life gives you lemons, make lemonade."
@@ -94,7 +94,7 @@
icon_state = "seed-firelemon"
species = "firelemon"
plantname = "Combustible Lemon Tree"
- product = /obj/item/food/snacks/grown/firelemon
+ product = /obj/item/food/grown/firelemon
growing_icon = 'icons/obj/hydroponics/growing_fruits.dmi'
icon_grow = "lime-grow"
icon_dead = "lime-dead"
@@ -104,7 +104,7 @@
yield = 4
reagents_add = list("plantmatter" = 0.05)
-/obj/item/food/snacks/grown/firelemon
+/obj/item/food/grown/firelemon
seed = /obj/item/seeds/firelemon
name = "combustible lemon"
desc = "Made for burning houses down."
@@ -114,7 +114,7 @@
tastes = list("burning lemon" = 1)
wine_flavor = "fire"
-/obj/item/food/snacks/grown/firelemon/attack_self(mob/living/user)
+/obj/item/food/grown/firelemon/attack_self(mob/living/user)
var/area/A = get_area(user)
user.visible_message("[user] primes [src]!", "You prime [src]!")
investigate_log("[key_name(user)] primed a combustible lemon for detonation at [A] [COORD(user)].", INVESTIGATE_BOMB)
@@ -127,19 +127,19 @@
playsound(loc, 'sound/weapons/armbomb.ogg', 75, TRUE, -3)
addtimer(CALLBACK(src, PROC_REF(prime)), rand(10, 60))
-/obj/item/food/snacks/grown/firelemon/burn()
+/obj/item/food/grown/firelemon/burn()
prime()
..()
-/obj/item/food/snacks/grown/firelemon/proc/update_mob()
+/obj/item/food/grown/firelemon/proc/update_mob()
if(ismob(loc))
var/mob/M = loc
M.unEquip(src)
-/obj/item/food/snacks/grown/firelemon/ex_act(severity)
+/obj/item/food/grown/firelemon/ex_act(severity)
qdel(src) //Ensuring that it's deleted by its own explosion
-/obj/item/food/snacks/grown/firelemon/proc/prime()
+/obj/item/food/grown/firelemon/proc/prime()
switch(seed.potency) //Combustible lemons are alot like IEDs, lots of flame, very little bang.
if(0 to 30)
update_mob()
diff --git a/code/modules/hydroponics/grown/cocoa_vanilla.dm b/code/modules/hydroponics/grown/cocoa_vanilla.dm
index 9e21671169bd..cc21fca814ee 100644
--- a/code/modules/hydroponics/grown/cocoa_vanilla.dm
+++ b/code/modules/hydroponics/grown/cocoa_vanilla.dm
@@ -5,7 +5,7 @@
icon_state = "seed-cocoapod"
species = "cocoapod"
plantname = "Cocao Tree"
- product = /obj/item/food/snacks/grown/cocoapod
+ product = /obj/item/food/grown/cocoapod
lifespan = 20
maturation = 5
production = 5
@@ -18,7 +18,7 @@
mutatelist = list(/obj/item/seeds/cocoapod/vanillapod)
reagents_add = list("cocoa" = 0.25, "plantmatter" = 0.1)
-/obj/item/food/snacks/grown/cocoapod
+/obj/item/food/grown/cocoapod
seed = /obj/item/seeds/cocoapod
name = "cocoa pod"
desc = "Fattening... Mmmmm... chucklate."
@@ -34,12 +34,12 @@
icon_state = "seed-vanillapod"
species = "vanillapod"
plantname = "Vanilla Tree"
- product = /obj/item/food/snacks/grown/vanillapod
+ product = /obj/item/food/grown/vanillapod
genes = list(/datum/plant_gene/trait/repeated_harvest)
mutatelist = list()
reagents_add = list("vanilla" = 0.25, "plantmatter" = 0.1)
-/obj/item/food/snacks/grown/vanillapod
+/obj/item/food/grown/vanillapod
seed = /obj/item/seeds/cocoapod/vanillapod
name = "vanilla pod"
desc = "Fattening... Mmmmm... vanilla."
diff --git a/code/modules/hydroponics/grown/corn.dm b/code/modules/hydroponics/grown/corn.dm
index 81688a435eaf..90b7bd8d7d04 100644
--- a/code/modules/hydroponics/grown/corn.dm
+++ b/code/modules/hydroponics/grown/corn.dm
@@ -5,7 +5,7 @@
icon_state = "seed-corn"
species = "corn"
plantname = "Corn Stalks"
- product = /obj/item/food/snacks/grown/corn
+ product = /obj/item/food/grown/corn
maturation = 8
potency = 20
growthstages = 3
@@ -15,12 +15,12 @@
mutatelist = list(/obj/item/seeds/corn/snapcorn)
reagents_add = list("cornoil" = 0.2, "vitamin" = 0.04, "plantmatter" = 0.1)
-/obj/item/food/snacks/grown/corn
+/obj/item/food/grown/corn
seed = /obj/item/seeds/corn
name = "ear of corn"
desc = "Needs some butter!"
icon_state = "corn"
- cooked_type = /obj/item/food/snacks/popcorn
+ cooked_type = /obj/item/food/popcorn
filling_color = "#FFFF00"
trash = /obj/item/grown/corncob
bitesize_mod = 2
diff --git a/code/modules/hydroponics/grown/eggplant.dm b/code/modules/hydroponics/grown/eggplant.dm
index e31e07e215bc..9179ad0fcc9a 100644
--- a/code/modules/hydroponics/grown/eggplant.dm
+++ b/code/modules/hydroponics/grown/eggplant.dm
@@ -5,7 +5,7 @@
icon_state = "seed-eggplant"
species = "eggplant"
plantname = "Eggplants"
- product = /obj/item/food/snacks/grown/eggplant
+ product = /obj/item/food/grown/eggplant
yield = 2
potency = 20
growing_icon = 'icons/obj/hydroponics/growing_vegetables.dmi'
@@ -15,7 +15,7 @@
mutatelist = list(/obj/item/seeds/eggplant/eggy)
reagents_add = list("vitamin" = 0.04, "plantmatter" = 0.1)
-/obj/item/food/snacks/grown/eggplant
+/obj/item/food/grown/eggplant
seed = /obj/item/seeds/eggplant
name = "eggplant"
desc = "Maybe there's a chicken inside?"
@@ -32,18 +32,18 @@
icon_state = "seed-eggy"
species = "eggy"
plantname = "Egg-Plants"
- product = /obj/item/food/snacks/grown/shell/eggy
+ product = /obj/item/food/grown/shell/eggy
lifespan = 75
production = 12
mutatelist = list()
reagents_add = list("nutriment" = 0.1)
-/obj/item/food/snacks/grown/shell/eggy
+/obj/item/food/grown/shell/eggy
seed = /obj/item/seeds/eggplant/eggy
name = "Egg-plant"
desc = "There MUST be a chicken inside."
icon_state = "eggyplant"
- trash = /obj/item/food/snacks/egg
+ trash = /obj/item/food/egg
filling_color = "#F8F8FF"
bitesize_mod = 2
tastes = list("egg-plant" = 1)
diff --git a/code/modules/hydroponics/grown/flowers.dm b/code/modules/hydroponics/grown/flowers.dm
index c16f78174f09..095aeca5190d 100644
--- a/code/modules/hydroponics/grown/flowers.dm
+++ b/code/modules/hydroponics/grown/flowers.dm
@@ -5,7 +5,7 @@
icon_state = "seed-poppy"
species = "poppy"
plantname = "Poppy Plants"
- product = /obj/item/food/snacks/grown/poppy
+ product = /obj/item/food/grown/poppy
endurance = 10
maturation = 8
yield = 6
@@ -17,7 +17,7 @@
mutatelist = list(/obj/item/seeds/poppy/geranium, /obj/item/seeds/poppy/lily)
reagents_add = list("bicaridine" = 0.2, "plantmatter" = 0.05)
-/obj/item/food/snacks/grown/poppy
+/obj/item/food/grown/poppy
seed = /obj/item/seeds/poppy
name = "poppy"
desc = "Long-used as a symbol of rest, peace, and death."
@@ -37,10 +37,10 @@
plantname = "Lily Plants"
icon_grow = "lily-grow"
icon_dead = "lily-dead"
- product = /obj/item/food/snacks/grown/lily
+ product = /obj/item/food/grown/lily
mutatelist = list()
-/obj/item/food/snacks/grown/lily
+/obj/item/food/grown/lily
seed = /obj/item/seeds/poppy/lily
name = "lily"
desc = "A beautiful white flower."
@@ -60,10 +60,10 @@
plantname = "Geranium Plants"
icon_grow = "geranium-grow"
icon_dead = "geranium-dead"
- product = /obj/item/food/snacks/grown/geranium
+ product = /obj/item/food/grown/geranium
mutatelist = list()
-/obj/item/food/snacks/grown/geranium
+/obj/item/food/grown/geranium
seed = /obj/item/seeds/poppy/geranium
name = "geranium"
desc = "A beautiful purple flower."
@@ -81,7 +81,7 @@
icon_state = "seed-harebell"
species = "harebell"
plantname = "Harebells"
- product = /obj/item/food/snacks/grown/harebell
+ product = /obj/item/food/grown/harebell
lifespan = 100
endurance = 20
maturation = 7
@@ -93,7 +93,7 @@
growing_icon = 'icons/obj/hydroponics/growing_flowers.dmi'
reagents_add = list("plantmatter" = 0.04)
-/obj/item/food/snacks/grown/harebell
+/obj/item/food/grown/harebell
seed = /obj/item/seeds/harebell
name = "harebell"
desc = "\"I'll sweeten thy sad grave: thou shalt not lack the flower that's like thy face, pale primrose, nor the azured hare-bell, like thy veins; no, nor the leaf of eglantine, whom not to slander, out-sweeten'd not thy breath.\""
@@ -150,12 +150,12 @@
plantname = "Moonflowers"
icon_grow = "moonflower-grow"
icon_dead = "sunflower-dead"
- product = /obj/item/food/snacks/grown/moonflower
+ product = /obj/item/food/grown/moonflower
mutatelist = list()
reagents_add = list("moonshine" = 0.2, "vitamin" = 0.02, "plantmatter" = 0.02)
rarity = 15
-/obj/item/food/snacks/grown/moonflower
+/obj/item/food/grown/moonflower
seed = /obj/item/seeds/sunflower/moonflower
name = "moonflower"
desc = "Store in a location at least 50 yards away from werewolves."
diff --git a/code/modules/hydroponics/grown/garlic.dm b/code/modules/hydroponics/grown/garlic.dm
index 82d802a0b927..66979391b392 100644
--- a/code/modules/hydroponics/grown/garlic.dm
+++ b/code/modules/hydroponics/grown/garlic.dm
@@ -4,14 +4,14 @@
icon_state = "seed-garlic"
species = "garlic"
plantname = "Garlic Sprouts"
- product = /obj/item/food/snacks/grown/garlic
+ product = /obj/item/food/grown/garlic
yield = 6
potency = 25
growthstages = 3
growing_icon = 'icons/obj/hydroponics/growing_vegetables.dmi'
reagents_add = list("garlic" = 0.15, "plantmatter" = 0.1)
-/obj/item/food/snacks/grown/garlic
+/obj/item/food/grown/garlic
seed = /obj/item/seeds/garlic
name = "garlic"
desc = "Delicious, but with a potentially overwhelming odor."
diff --git a/code/modules/hydroponics/grown/grass_carpet.dm b/code/modules/hydroponics/grown/grass_carpet.dm
index 84c177d2b070..2a78f12fddae 100644
--- a/code/modules/hydroponics/grown/grass_carpet.dm
+++ b/code/modules/hydroponics/grown/grass_carpet.dm
@@ -5,7 +5,7 @@
icon_state = "seed-grass"
species = "grass"
plantname = "Grass"
- product = /obj/item/food/snacks/grown/grass
+ product = /obj/item/food/grown/grass
lifespan = 40
endurance = 40
maturation = 2
@@ -18,7 +18,7 @@
mutatelist = list(/obj/item/seeds/grass/carpet)
reagents_add = list("plantmatter" = 0.02, "hydrogen" = 0.05)
-/obj/item/food/snacks/grown/grass
+/obj/item/food/grown/grass
seed = /obj/item/seeds/grass
name = "grass"
desc = "Green and lush."
@@ -30,10 +30,10 @@
tastes = list("grass" = 1)
wine_power = 0.15
-/obj/item/food/snacks/grown/grass/attack_self(mob/user)
+/obj/item/food/grown/grass/attack_self(mob/user)
to_chat(user, "You prepare the astroturf.")
var/grassAmt = 1 + round(seed.potency * tile_coefficient) // The grass we're holding
- for(var/obj/item/food/snacks/grown/grass/G in user.loc) // The grass on the floor
+ for(var/obj/item/food/grown/grass/G in user.loc) // The grass on the floor
if(G.type != type)
continue
grassAmt += 1 + round(G.seed.potency * tile_coefficient)
@@ -48,11 +48,11 @@
icon_state = "seed-carpet"
species = "carpet"
plantname = "Carpet"
- product = /obj/item/food/snacks/grown/grass/carpet
+ product = /obj/item/food/grown/grass/carpet
mutatelist = list()
rarity = 10
-/obj/item/food/snacks/grown/grass/carpet
+/obj/item/food/grown/grass/carpet
seed = /obj/item/seeds/grass/carpet
name = "carpet"
desc = "The textile industry's dark secret."
diff --git a/code/modules/hydroponics/grown/herbals.dm b/code/modules/hydroponics/grown/herbals.dm
index f13d9d20b9cc..3c4c1735d1e3 100644
--- a/code/modules/hydroponics/grown/herbals.dm
+++ b/code/modules/hydroponics/grown/herbals.dm
@@ -4,14 +4,14 @@
icon_state = "seed-lettuce"
species = "cabbage"
plantname = "Comfrey"
- product = /obj/item/food/snacks/grown/comfrey
+ product = /obj/item/food/grown/comfrey
yield = 2
maturation = 3
growthstages = 1
growing_icon = 'icons/obj/hydroponics/growing_vegetables.dmi'
reagents_add = list("styptic_powder" = 0.1)
-/obj/item/food/snacks/grown/comfrey
+/obj/item/food/grown/comfrey
seed = /obj/item/seeds/comfrey
name = "comfrey leaf"
desc = "Mash to turn into a poultice."
@@ -20,7 +20,7 @@
tastes = list("comfrey" = 1)
bitesize_mod = 2
-/obj/item/food/snacks/grown/comfrey/attack_self(mob/user)
+/obj/item/food/grown/comfrey/attack_self(mob/user)
var/obj/item/stack/medical/bruise_pack/comfrey/C = new(get_turf(user))
C.heal_brute = seed.potency
to_chat(user, "You mash [src] into a poultice.")
@@ -33,12 +33,12 @@
icon_state = "seed-ambrosiavulgaris"
species = "ambrosiavulgaris"
plantname = "Aloe Vera Plant"
- product = /obj/item/food/snacks/grown/aloe
+ product = /obj/item/food/grown/aloe
yield = 2
icon_dead = "ambrosia-dead"
reagents_add = list("silver_sulfadiazine" = 0.1)
-/obj/item/food/snacks/grown/aloe
+/obj/item/food/grown/aloe
seed = /obj/item/seeds/aloe
name = "aloe leaf"
desc = "Mash to turn into a poultice."
@@ -47,7 +47,7 @@
tastes = list("aloe" = 1)
bitesize_mod = 2
-/obj/item/food/snacks/grown/aloe/attack_self(mob/user)
+/obj/item/food/grown/aloe/attack_self(mob/user)
var/obj/item/stack/medical/ointment/aloe/A = new(get_turf(user))
A.heal_burn = seed.potency
to_chat(user, "You mash [src] into a poultice.")
@@ -61,7 +61,7 @@
icon_state = "seed-mint"
species = "mint"
plantname = "Mint Plant"
- product = /obj/item/food/snacks/grown/mint
+ product = /obj/item/food/grown/mint
lifespan = 20
maturation = 4
production = 5
@@ -70,7 +70,7 @@
icon_dead = "mint-dead"
reagents_add = list("mint" = 0.03, "plantmatter" = 0.03)
-/obj/item/food/snacks/grown/mint
+/obj/item/food/grown/mint
seed = /obj/item/seeds/mint
name = "mint leaves"
desc = "Process for mint. Distill for menthol. No need to experi-mint." //haha
diff --git a/code/modules/hydroponics/grown/kudzu.dm b/code/modules/hydroponics/grown/kudzu.dm
index a1d8251c2d75..950971fb591e 100644
--- a/code/modules/hydroponics/grown/kudzu.dm
+++ b/code/modules/hydroponics/grown/kudzu.dm
@@ -6,7 +6,7 @@
icon_state = "seed-kudzu"
species = "kudzu"
plantname = "Kudzu"
- product = /obj/item/food/snacks/grown/kudzupod
+ product = /obj/item/food/grown/kudzupod
genes = list(/datum/plant_gene/trait/repeated_harvest, /datum/plant_gene/trait/plant_type/weed_hardy)
lifespan = 20
endurance = 10
@@ -88,7 +88,7 @@
adjust_potency(rand(15, -5))
-/obj/item/food/snacks/grown/kudzupod
+/obj/item/food/grown/kudzupod
seed = /obj/item/seeds/kudzu
name = "kudzu pod"
desc = "Pueraria Virallis: An invasive species with vines that rapidly creep and wrap around whatever they contact."
diff --git a/code/modules/hydroponics/grown/melon.dm b/code/modules/hydroponics/grown/melon.dm
index 702640618ab0..9d6ef0044708 100644
--- a/code/modules/hydroponics/grown/melon.dm
+++ b/code/modules/hydroponics/grown/melon.dm
@@ -5,7 +5,7 @@
icon_state = "seed-watermelon"
species = "watermelon"
plantname = "Watermelon Vines"
- product = /obj/item/food/snacks/grown/watermelon
+ product = /obj/item/food/grown/watermelon
lifespan = 50
endurance = 40
growing_icon = 'icons/obj/hydroponics/growing_fruits.dmi'
@@ -21,12 +21,12 @@
qdel(src)
return OBLITERATION
-/obj/item/food/snacks/grown/watermelon
+/obj/item/food/grown/watermelon
seed = /obj/item/seeds/watermelon
name = "watermelon"
desc = "It's full of watery goodness."
icon_state = "watermelon" // Sprite created by https://github.com/binarysudoku for Goonstation, They have relicensed it for our use.
- slice_path = /obj/item/food/snacks/watermelonslice
+ slice_path = /obj/item/food/watermelonslice
slices_num = 5
dried_type = null
w_class = WEIGHT_CLASS_NORMAL
@@ -42,12 +42,12 @@
icon_state = "seed-holymelon"
species = "holymelon"
plantname = "Holy Melon Vines"
- product = /obj/item/food/snacks/grown/holymelon
+ product = /obj/item/food/grown/holymelon
mutatelist = list()
reagents_add = list("holywater" = 0.2, "vitamin" = 0.04, "nutriment" = 0.1)
rarity = 20
-/obj/item/food/snacks/grown/holymelon
+/obj/item/food/grown/holymelon
seed = /obj/item/seeds/watermelon/holy
name = "holymelon"
desc = "The water within this melon has been blessed by some deity that's particularly fond of watermelon."
diff --git a/code/modules/hydroponics/grown/misc_seeds.dm b/code/modules/hydroponics/grown/misc_seeds.dm
index 99ed6c86ef7a..0bbb55450d1f 100644
--- a/code/modules/hydroponics/grown/misc_seeds.dm
+++ b/code/modules/hydroponics/grown/misc_seeds.dm
@@ -32,7 +32,7 @@
icon_state = "seed-lettuce"
species = "cabbage"
plantname = "Lettuces"
- product = /obj/item/food/snacks/grown/lettuce
+ product = /obj/item/food/grown/lettuce
lifespan = 50
endurance = 25
maturation = 3
@@ -43,7 +43,7 @@
genes = list(/datum/plant_gene/trait/repeated_harvest)
reagents_add = list("vitamin" = 0.04, "plantmatter" = 0.1)
-/obj/item/food/snacks/grown/lettuce
+/obj/item/food/grown/lettuce
seed = /obj/item/seeds/lettuce
name = "lettuce"
desc = "Often confused with cabbages."
@@ -60,7 +60,7 @@
icon_state = "seed-lettuce"
species = "cabbage"
plantname = "Cabbages"
- product = /obj/item/food/snacks/grown/cabbage
+ product = /obj/item/food/grown/cabbage
lifespan = 50
endurance = 25
maturation = 3
@@ -72,7 +72,7 @@
mutatelist = list(/obj/item/seeds/replicapod)
reagents_add = list("vitamin" = 0.04, "plantmatter" = 0.1)
-/obj/item/food/snacks/grown/cabbage
+/obj/item/food/grown/cabbage
seed = /obj/item/seeds/cabbage
name = "cabbage"
desc = "Ewwwwwwwwww. Cabbage."
@@ -90,7 +90,7 @@
icon_state = "seed-sugarcane"
species = "sugarcane"
plantname = "Sugarcane"
- product = /obj/item/food/snacks/grown/sugarcane
+ product = /obj/item/food/grown/sugarcane
genes = list(/datum/plant_gene/trait/repeated_harvest)
lifespan = 60
endurance = 50
@@ -99,7 +99,7 @@
growthstages = 3
reagents_add = list("sugar" = 0.25)
-/obj/item/food/snacks/grown/sugarcane
+/obj/item/food/grown/sugarcane
seed = /obj/item/seeds/sugarcane
name = "sugarcane"
desc = "Sickly sweet."
@@ -143,7 +143,7 @@
icon_state = "seed-gatfruit"
species = "gatfruit"
plantname = "Gatfruit Tree"
- product = /obj/item/food/snacks/grown/shell/gatfruit
+ product = /obj/item/food/grown/shell/gatfruit
genes = list(/datum/plant_gene/trait/repeated_harvest)
lifespan = 20
endurance = 20
@@ -156,7 +156,7 @@
growing_icon = 'icons/obj/hydroponics/growing_fruits.dmi'
reagents_add = list("sulfur" = 0.1, "carbon" = 0.1, "nitrogen" = 0.07, "potassium" = 0.05)
-/obj/item/food/snacks/grown/shell/gatfruit
+/obj/item/food/grown/shell/gatfruit
seed = /obj/item/seeds/gatfruit
name = "gatfruit"
desc = "It smells like burning."
@@ -174,12 +174,12 @@
icon_state = "seed-cherry_bomb"
species = "cherry_bomb"
plantname = "Cherry Bomb Tree"
- product = /obj/item/food/snacks/grown/cherry_bomb
+ product = /obj/item/food/grown/cherry_bomb
mutatelist = list()
reagents_add = list("plantmatter" = 0.1, "sugar" = 0.1, "blackpowder" = 0.7)
rarity = 60 //See above
-/obj/item/food/snacks/grown/cherry_bomb
+/obj/item/food/grown/cherry_bomb
name = "cherry bombs"
desc = "You think you can hear the hissing of a tiny fuse."
icon_state = "cherry_bomb"
@@ -191,7 +191,7 @@
max_integrity = 40
wine_power = 0.8
-/obj/item/food/snacks/grown/cherry_bomb/attack_self(mob/living/user)
+/obj/item/food/grown/cherry_bomb/attack_self(mob/living/user)
var/area/A = get_area(user)
user.visible_message("[user] plucks the stem from [src]!", "You pluck the stem from [src], which begins to hiss loudly!")
message_admins("[user] ([user.key ? user.key : "no key"]) primed a cherry bomb for detonation at [A] ([user.x], [user.y], [user.z]) (JMP)")
@@ -201,16 +201,16 @@
C.throw_mode_on()
prime()
-/obj/item/food/snacks/grown/cherry_bomb/deconstruct(disassembled = TRUE)
+/obj/item/food/grown/cherry_bomb/deconstruct(disassembled = TRUE)
if(!disassembled)
prime()
if(!QDELETED(src))
qdel(src)
-/obj/item/food/snacks/grown/cherry_bomb/ex_act(severity)
+/obj/item/food/grown/cherry_bomb/ex_act(severity)
qdel(src) //Ensuring that it's deleted by its own explosion. Also prevents mass chain reaction with piles of cherry bombs
-/obj/item/food/snacks/grown/cherry_bomb/proc/prime()
+/obj/item/food/grown/cherry_bomb/proc/prime()
icon_state = "cherry_bomb_lit"
playsound(src, 'sound/goonstation/misc/fuse.ogg', seed.potency, 0)
reagents.set_reagent_temp(1000) //Sets off the black powder
diff --git a/code/modules/hydroponics/grown/mushrooms.dm b/code/modules/hydroponics/grown/mushrooms.dm
index bd117356dffb..a3bb028724de 100644
--- a/code/modules/hydroponics/grown/mushrooms.dm
+++ b/code/modules/hydroponics/grown/mushrooms.dm
@@ -1,4 +1,4 @@
-/obj/item/food/snacks/grown/mushroom
+/obj/item/food/grown/mushroom
name = "mushroom"
bitesize_mod = 2
wine_power = 0.4
@@ -11,7 +11,7 @@
icon_state = "mycelium-reishi"
species = "reishi"
plantname = "Reishi"
- product = /obj/item/food/snacks/grown/mushroom/reishi
+ product = /obj/item/food/grown/mushroom/reishi
lifespan = 35
endurance = 35
maturation = 10
@@ -23,7 +23,7 @@
growing_icon = 'icons/obj/hydroponics/growing_mushrooms.dmi'
reagents_add = list("morphine" = 0.35, "charcoal" = 0.35, "nutriment" = 0)
-/obj/item/food/snacks/grown/mushroom/reishi
+/obj/item/food/grown/mushroom/reishi
seed = /obj/item/seeds/reishi
name = "reishi"
desc = "Ganoderma lucidum: A special fungus known for its medicinal and stress relieving properties."
@@ -39,7 +39,7 @@
icon_state = "mycelium-amanita"
species = "amanita"
plantname = "Fly Amanitas"
- product = /obj/item/food/snacks/grown/mushroom/amanita
+ product = /obj/item/food/grown/mushroom/amanita
lifespan = 50
endurance = 35
maturation = 10
@@ -51,7 +51,7 @@
mutatelist = list(/obj/item/seeds/angel)
reagents_add = list("psilocybin" = 0.04, "amanitin" = 0.35, "nutriment" = 0, "growthserum" = 0.1)
-/obj/item/food/snacks/grown/mushroom/amanita
+/obj/item/food/grown/mushroom/amanita
seed = /obj/item/seeds/amanita
name = "fly amanita"
desc = "Amanita Muscaria: Learn poisonous mushrooms by heart. Only pick mushrooms you know."
@@ -67,7 +67,7 @@
icon_state = "mycelium-angel"
species = "angel"
plantname = "Destroying Angels"
- product = /obj/item/food/snacks/grown/mushroom/angel
+ product = /obj/item/food/grown/mushroom/angel
lifespan = 50
endurance = 35
maturation = 12
@@ -81,7 +81,7 @@
rarity = 30
origin_tech = "biotech=5"
-/obj/item/food/snacks/grown/mushroom/angel
+/obj/item/food/grown/mushroom/angel
seed = /obj/item/seeds/angel
name = "destroying angel"
desc = "Amanita Virosa: Deadly poisonous basidiomycete fungus filled with alpha amanitin."
@@ -98,7 +98,7 @@
icon_state = "mycelium-liberty"
species = "liberty"
plantname = "Liberty-Caps"
- product = /obj/item/food/snacks/grown/mushroom/libertycap
+ product = /obj/item/food/grown/mushroom/libertycap
maturation = 7
production = 1
yield = 5
@@ -108,7 +108,7 @@
growing_icon = 'icons/obj/hydroponics/growing_mushrooms.dmi'
reagents_add = list("psilocybin" = 0.25, "nutriment" = 0.02)
-/obj/item/food/snacks/grown/mushroom/libertycap
+/obj/item/food/grown/mushroom/libertycap
seed = /obj/item/seeds/liberty
name = "liberty-cap"
desc = "Psilocybe Semilanceata: Liberate yourself!"
@@ -126,7 +126,7 @@
icon_state = "mycelium-plump"
species = "plump"
plantname = "Plump-Helmet Mushrooms"
- product = /obj/item/food/snacks/grown/mushroom/plumphelmet
+ product = /obj/item/food/grown/mushroom/plumphelmet
maturation = 8
production = 1
yield = 4
@@ -137,7 +137,7 @@
mutatelist = list(/obj/item/seeds/plump/walkingmushroom)
reagents_add = list("vitamin" = 0.04, "nutriment" = 0.1)
-/obj/item/food/snacks/grown/mushroom/plumphelmet
+/obj/item/food/grown/mushroom/plumphelmet
seed = /obj/item/seeds/plump
name = "plump-helmet"
desc = "Plumus Hellmus: Plump, soft and s-so inviting~"
@@ -154,7 +154,7 @@
icon_state = "mycelium-walkingmushroom"
species = "walkingmushroom"
plantname = "Walking Mushrooms"
- product = /obj/item/food/snacks/grown/mushroom/walkingmushroom
+ product = /obj/item/food/grown/mushroom/walkingmushroom
lifespan = 30
endurance = 30
maturation = 5
@@ -164,7 +164,7 @@
reagents_add = list("vitamin" = 0.05, "nutriment" = 0.15)
rarity = 30
-/obj/item/food/snacks/grown/mushroom/walkingmushroom
+/obj/item/food/grown/mushroom/walkingmushroom
seed = /obj/item/seeds/plump/walkingmushroom
name = "walking mushroom"
desc = "Plumus Locomotus: The beginning of the great walk."
@@ -174,7 +174,7 @@
tastes = list("walking mushroom" = 1, "motion" = 1)
can_distill = FALSE
-/obj/item/food/snacks/grown/mushroom/walkingmushroom/attack_self(mob/user)
+/obj/item/food/grown/mushroom/walkingmushroom/attack_self(mob/user)
if(isspaceturf(user.loc))
return
var/mob/living/simple_animal/hostile/mushroom/M = new /mob/living/simple_animal/hostile/mushroom(user.loc)
@@ -194,7 +194,7 @@
icon_state = "mycelium-chanter"
species = "chanter"
plantname = "Chanterelle Mushrooms"
- product = /obj/item/food/snacks/grown/mushroom/chanterelle
+ product = /obj/item/food/grown/mushroom/chanterelle
lifespan = 35
endurance = 20
maturation = 7
@@ -206,7 +206,7 @@
growing_icon = 'icons/obj/hydroponics/growing_mushrooms.dmi'
reagents_add = list("nutriment" = 0.1)
-/obj/item/food/snacks/grown/mushroom/chanterelle
+/obj/item/food/grown/mushroom/chanterelle
seed = /obj/item/seeds/chanter
name = "chanterelle cluster"
desc = "Cantharellus Cibarius: These jolly yellow little shrooms sure look tasty!"
@@ -222,7 +222,7 @@
icon_state = "mycelium-glowshroom"
species = "glowshroom"
plantname = "Glowshrooms"
- product = /obj/item/food/snacks/grown/mushroom/glowshroom
+ product = /obj/item/food/grown/mushroom/glowshroom
lifespan = 100 //ten times that is the delay
endurance = 30
maturation = 6
@@ -236,7 +236,7 @@
mutatelist = list(/obj/item/seeds/glowshroom/glowcap, /obj/item/seeds/glowshroom/shadowshroom)
reagents_add = list("radium" = 0.1, "phosphorus" = 0.1, "nutriment" = 0.04)
-/obj/item/food/snacks/grown/mushroom/glowshroom
+/obj/item/food/grown/mushroom/glowshroom
seed = /obj/item/seeds/glowshroom
name = "glowshroom cluster"
desc = "Mycena Bregprox: This species of mushroom glows in the dark."
@@ -248,7 +248,7 @@
tastes = list("warmth" = 1, "light" = 1, "glowshroom" = 1)
wine_power = 0.5
-/obj/item/food/snacks/grown/mushroom/glowshroom/attack_self(mob/user)
+/obj/item/food/grown/mushroom/glowshroom/attack_self(mob/user)
if(isspaceturf(user.loc))
return FALSE
if(!isturf(user.loc))
@@ -279,14 +279,14 @@
species = "glowcap"
icon_harvest = "glowcap-harvest"
plantname = "Glowcaps"
- product = /obj/item/food/snacks/grown/mushroom/glowshroom/glowcap
+ product = /obj/item/food/grown/mushroom/glowshroom/glowcap
maturation = 15
genes = list(/datum/plant_gene/trait/glow/red, /datum/plant_gene/trait/cell_charge, /datum/plant_gene/trait/plant_type/fungal_metabolism)
mutatelist = list()
reagents_add = list("teslium" = 0.1, "nutriment" = 0.04)
rarity = 30
-/obj/item/food/snacks/grown/mushroom/glowshroom/glowcap
+/obj/item/food/grown/mushroom/glowshroom/glowcap
seed = /obj/item/seeds/glowshroom/glowcap
name = "glowcap cluster"
desc = "Mycena Ruthenia: This species of mushroom glows in the dark, but isn't actually bioluminescent. They're warm to the touch..."
@@ -306,7 +306,7 @@
icon_state = "mycelium-tower"
species = "mold"
plantname = "Fungus"
- product = /obj/item/food/snacks/grown/mushroom/fungus
+ product = /obj/item/food/grown/mushroom/fungus
yield = 4
icon_grow = "mold-grow"
icon_dead = "mold-dead"
@@ -315,7 +315,7 @@
genes = list(/datum/plant_gene/trait/plant_type/fungal_metabolism)
reagents_add = list("fungus" = 0.35)
-/obj/item/food/snacks/grown/mushroom/fungus
+/obj/item/food/grown/mushroom/fungus
seed = /obj/item/seeds/fungus
name = "fungus"
desc = "A fungus ideal for making antibacterials."
@@ -332,14 +332,14 @@
icon_grow = "shadowshroom-grow"
icon_dead = "shadowshroom-dead"
plantname = "Shadowshrooms"
- product = /obj/item/food/snacks/grown/mushroom/glowshroom/shadowshroom
+ product = /obj/item/food/grown/mushroom/glowshroom/shadowshroom
maturation = 15
genes = list(/datum/plant_gene/trait/glow/shadow, /datum/plant_gene/trait/plant_type/fungal_metabolism)
mutatelist = list()
reagents_add = list("radium" = 0.2, "nutriment" = 0.04)
rarity = 30
-/obj/item/food/snacks/grown/mushroom/glowshroom/shadowshroom
+/obj/item/food/grown/mushroom/glowshroom/shadowshroom
seed = /obj/item/seeds/glowshroom/shadowshroom
name = "shadowshroom cluster"
desc = "Mycena Umbra: This species of mushroom emits shadow instead of light."
diff --git a/code/modules/hydroponics/grown/nymph.dm b/code/modules/hydroponics/grown/nymph.dm
index af1a0506b788..8c8c9e70fd5b 100644
--- a/code/modules/hydroponics/grown/nymph.dm
+++ b/code/modules/hydroponics/grown/nymph.dm
@@ -4,7 +4,7 @@
icon_state = "seed-replicapod"
species = "replicapod"
plantname = "Nymph Pod"
- product = /obj/item/food/snacks/grown/nymph_pod
+ product = /obj/item/food/grown/nymph_pod
lifespan = 50
endurance = 8
maturation = 10
@@ -12,14 +12,14 @@
yield = 1
reagents_add = list("plantmatter" = 0.1)
-/obj/item/food/snacks/grown/nymph_pod
+/obj/item/food/grown/nymph_pod
seed = /obj/item/seeds/nymph
name = "nymph pod"
desc = "A peculiar wriggling pod with a grown nymph inside. Crack it open to let the nymph out."
icon_state = "mushy"
bitesize_mod = 2
-/obj/item/food/snacks/grown/nymph_pod/attack_self(mob/user)
+/obj/item/food/grown/nymph_pod/attack_self(mob/user)
new /mob/living/simple_animal/diona(get_turf(user))
to_chat(user, "You crack open [src] letting the nymph out.")
user.drop_item()
diff --git a/code/modules/hydroponics/grown/olive.dm b/code/modules/hydroponics/grown/olive.dm
index 7c25c4814fdf..60cafcca01c8 100644
--- a/code/modules/hydroponics/grown/olive.dm
+++ b/code/modules/hydroponics/grown/olive.dm
@@ -5,7 +5,7 @@
icon_state = "seed-olive"
species = "olive"
plantname = "Olive Tree"
- product = /obj/item/food/snacks/grown/olive
+ product = /obj/item/food/grown/olive
lifespan = 150
endurance = 35
yield = 5
@@ -15,7 +15,7 @@
mutatelist = list()
reagents_add = list("vitamin" = 0.02, "plantmatter" = 0.2, "sodiumchloride" = 0.2)
-/obj/item/food/snacks/grown/olive
+/obj/item/food/grown/olive
seed = /obj/item/seeds/olive
name = "olive"
desc = "A small cylindrical salty fruit closely related to mangoes. Can be ground into a paste and mixed with water to make quality oil."
diff --git a/code/modules/hydroponics/grown/onion.dm b/code/modules/hydroponics/grown/onion.dm
index b59a3bfa5e0e..3e4532713ea9 100644
--- a/code/modules/hydroponics/grown/onion.dm
+++ b/code/modules/hydroponics/grown/onion.dm
@@ -4,7 +4,7 @@
icon_state = "seed-onion"
species = "onion"
plantname = "Onion Sprouts"
- product = /obj/item/food/snacks/grown/onion
+ product = /obj/item/food/grown/onion
lifespan = 20
maturation = 3
production = 4
@@ -16,14 +16,14 @@
reagents_add = list("vitamin" = 0.04, "plantmatter" = 0.1)
mutatelist = list(/obj/item/seeds/onion/red)
-/obj/item/food/snacks/grown/onion
+/obj/item/food/grown/onion
seed = /obj/item/seeds/onion
name = "onion"
desc = "Nothing to cry over."
icon_state = "onion"
filling_color = "#C0C9A0"
bitesize_mod = 2
- slice_path = /obj/item/food/snacks/onion_slice
+ slice_path = /obj/item/food/onion_slice
tastes = list("onion" = 1, "pungentness" = 1)
slices_num = 2
wine_power = 0.3
@@ -36,22 +36,22 @@
species = "onion_red"
plantname = "Red Onion Sprouts"
weed_chance = 1
- product = /obj/item/food/snacks/grown/onion/red
+ product = /obj/item/food/grown/onion/red
mutatelist = list()
reagents_add = list("vitamin" = 0.04, "plantmatter" = 0.1, "onionjuice" = 0.05)
-/obj/item/food/snacks/grown/onion/red
+/obj/item/food/grown/onion/red
seed = /obj/item/seeds/onion/red
name = "red onion"
desc = "Purple despite the name."
icon_state = "onion_red"
filling_color = "#C29ACF"
- slice_path = /obj/item/food/snacks/onion_slice/red
+ slice_path = /obj/item/food/onion_slice/red
tastes = list("red onion" = 1, "pungentness" = 3)
wine_power = 0.6
wine_flavor = "powerful pungentness"
-/obj/item/food/snacks/onion_slice
+/obj/item/food/onion_slice
name = "onion slices"
desc = "Rings, not for wearing."
icon_state = "onionslice"
@@ -59,9 +59,9 @@
filling_color = "#C0C9A0"
tastes = list("onion" = 1, "pungentness" = 1)
gender = PLURAL
- cooked_type = /obj/item/food/snacks/onionrings
+ cooked_type = /obj/item/food/onionrings
-/obj/item/food/snacks/onion_slice/red
+/obj/item/food/onion_slice/red
name = "red onion slices"
desc = "They shine like exceptionally low quality amethyst."
icon_state = "onionslice_red"
diff --git a/code/modules/hydroponics/grown/peanut.dm b/code/modules/hydroponics/grown/peanut.dm
index 8226df87fca2..80ae989a9c39 100644
--- a/code/modules/hydroponics/grown/peanut.dm
+++ b/code/modules/hydroponics/grown/peanut.dm
@@ -5,7 +5,7 @@
icon_state = "seed-potato"
species = "potato"
plantname = "Peanut Vines"
- product = /obj/item/food/snacks/grown/peanuts
+ product = /obj/item/food/grown/peanuts
lifespan = 30
maturation = 10
production = 1
@@ -17,7 +17,7 @@
genes = list(/datum/plant_gene/trait/repeated_harvest)
reagents_add = list("plantmatter" = 0.1)
-/obj/item/food/snacks/grown/peanuts
+/obj/item/food/grown/peanuts
seed = /obj/item/seeds/peanuts
name = "patch of peanuts"
desc = "Best avoided if you have spess allergies."
diff --git a/code/modules/hydroponics/grown/pineapple.dm b/code/modules/hydroponics/grown/pineapple.dm
index dd4727a2c318..3935ae7ae7e6 100644
--- a/code/modules/hydroponics/grown/pineapple.dm
+++ b/code/modules/hydroponics/grown/pineapple.dm
@@ -5,7 +5,7 @@
icon_state = "seed-pineapple"
species = "pineapple"
plantname = "Pineapple Plant"
- product = /obj/item/food/snacks/grown/pineapple
+ product = /obj/item/food/grown/pineapple
lifespan = 40
endurance = 30
growthstages = 3
@@ -14,7 +14,7 @@
mutatelist = list(/obj/item/seeds/apple)
reagents_add = list("vitamin" = 0.02, "plantmatter" = 0.2, "water" = 0.04)
-/obj/item/food/snacks/grown/pineapple
+/obj/item/food/grown/pineapple
seed = /obj/item/seeds/pineapple
name = "pineapple"
desc = "A soft sweet interior surrounded by a spiky skin."
@@ -25,7 +25,7 @@
attack_verb = list("stung", "pined")
throw_speed = 1
throw_range = 5
- slice_path = /obj/item/food/snacks/pineappleslice
+ slice_path = /obj/item/food/pineappleslice
slices_num = 3
filling_color = "#F6CB0B"
w_class = WEIGHT_CLASS_NORMAL
diff --git a/code/modules/hydroponics/grown/potato.dm b/code/modules/hydroponics/grown/potato.dm
index 3aa317f6bf3c..d143c8bd633e 100644
--- a/code/modules/hydroponics/grown/potato.dm
+++ b/code/modules/hydroponics/grown/potato.dm
@@ -5,7 +5,7 @@
icon_state = "seed-potato"
species = "potato"
plantname = "Potato Plants"
- product = /obj/item/food/snacks/grown/potato
+ product = /obj/item/food/grown/potato
lifespan = 30
maturation = 10
production = 1
@@ -18,7 +18,7 @@
mutatelist = list(/obj/item/seeds/potato/sweet)
reagents_add = list("vitamin" = 0.04, "plantmatter" = 0.1)
-/obj/item/food/snacks/grown/potato
+/obj/item/food/grown/potato
seed = /obj/item/seeds/potato
name = "potato"
desc = "Boil 'em! Mash 'em! Stick 'em in a stew!"
@@ -29,7 +29,7 @@
distill_reagent = "vodka"
-/obj/item/food/snacks/grown/potato/wedges
+/obj/item/food/grown/potato/wedges
name = "potato wedges"
desc = "Slices of neatly cut potato."
icon_state = "potato_wedges"
@@ -39,10 +39,10 @@
distill_reagent = "sbiten"
-/obj/item/food/snacks/grown/potato/attackby(obj/item/W, mob/user, params)
+/obj/item/food/grown/potato/attackby(obj/item/W, mob/user, params)
if(W.sharp)
to_chat(user, "You cut the potato into wedges with [W].")
- var/obj/item/food/snacks/grown/potato/wedges/Wedges = new /obj/item/food/snacks/grown/potato/wedges
+ var/obj/item/food/grown/potato/wedges/Wedges = new /obj/item/food/grown/potato/wedges
if(!remove_item_from_storage(user))
user.unEquip(src)
user.put_in_hands(Wedges)
@@ -58,11 +58,11 @@
icon_state = "seed-sweetpotato"
species = "sweetpotato"
plantname = "Sweet Potato Plants"
- product = /obj/item/food/snacks/grown/potato/sweet
+ product = /obj/item/food/grown/potato/sweet
mutatelist = list()
reagents_add = list("vitamin" = 0.1, "sugar" = 0.1, "plantmatter" = 0.1)
-/obj/item/food/snacks/grown/potato/sweet
+/obj/item/food/grown/potato/sweet
seed = /obj/item/seeds/potato/sweet
name = "sweet potato"
desc = "It's sweet."
diff --git a/code/modules/hydroponics/grown/pumpkin.dm b/code/modules/hydroponics/grown/pumpkin.dm
index 2d0a588c2417..4a3668acc052 100644
--- a/code/modules/hydroponics/grown/pumpkin.dm
+++ b/code/modules/hydroponics/grown/pumpkin.dm
@@ -5,7 +5,7 @@
icon_state = "seed-pumpkin"
species = "pumpkin"
plantname = "Pumpkin Vines"
- product = /obj/item/food/snacks/grown/pumpkin
+ product = /obj/item/food/grown/pumpkin
lifespan = 50
endurance = 40
growthstages = 3
@@ -17,7 +17,7 @@
reagents_add = list("vitamin" = 0.04, "plantmatter" = 0.2)
-/obj/item/food/snacks/grown/pumpkin
+/obj/item/food/grown/pumpkin
seed = /obj/item/seeds/pumpkin
name = "pumpkin"
desc = "It's large and scary."
@@ -28,7 +28,7 @@
wine_power = 0.2
var/carved_type = /obj/item/clothing/head/hardhat/pumpkinhead
-/obj/item/food/snacks/grown/pumpkin/attackby(obj/item/W as obj, mob/user as mob, params)
+/obj/item/food/grown/pumpkin/attackby(obj/item/W as obj, mob/user as mob, params)
if(W.sharp)
user.show_message("You carve a face into [src]!", 1)
new carved_type(user.loc)
@@ -44,13 +44,13 @@
icon_state = "seed-blumpkin"
species = "blumpkin"
plantname = "Blumpkin Vines"
- product = /obj/item/food/snacks/grown/pumpkin/blumpkin
+ product = /obj/item/food/grown/pumpkin/blumpkin
mutatelist = list()
reagents_add = list("ammonia" = 0.2, "chlorine" = 0.1, "plasma" = 0.1, "plantmatter" = 0.2)
rarity = 20
-/obj/item/food/snacks/grown/pumpkin/blumpkin
+/obj/item/food/grown/pumpkin/blumpkin
seed = /obj/item/seeds/pumpkin/blumpkin
name = "blumpkin"
desc = "The pumpkin's toxic sibling."
diff --git a/code/modules/hydroponics/grown/random_seeds.dm b/code/modules/hydroponics/grown/random_seeds.dm
index 3be1c302f87b..e158fe2531b4 100644
--- a/code/modules/hydroponics/grown/random_seeds.dm
+++ b/code/modules/hydroponics/grown/random_seeds.dm
@@ -6,7 +6,7 @@
icon_state = "seed-x"
species = "?????"
plantname = "strange plant"
- product = /obj/item/food/snacks/grown/random
+ product = /obj/item/food/grown/random
icon_grow = "xpod-grow"
icon_dead = "xpod-dead"
icon_harvest = "xpod-harvest"
@@ -30,14 +30,14 @@
add_random_plant_type(100)
desc = "Label: \n" + get_analyzer_text()
-/obj/item/food/snacks/grown/random
+/obj/item/food/grown/random
seed = /obj/item/seeds/random
name = "strange plant"
desc = "What could this even be?"
icon_state = "crunchy"
bitesize_mod = 2
-/obj/item/food/snacks/grown/random/Initialize()
+/obj/item/food/grown/random/Initialize()
. = ..()
wine_power = rand(0.1,1.5)
if(prob(1))
diff --git a/code/modules/hydroponics/grown/root.dm b/code/modules/hydroponics/grown/root.dm
index 77110eaf27a3..9a52dc6b88ca 100644
--- a/code/modules/hydroponics/grown/root.dm
+++ b/code/modules/hydroponics/grown/root.dm
@@ -5,7 +5,7 @@
icon_state = "seed-carrot"
species = "carrot"
plantname = "Carrots"
- product = /obj/item/food/snacks/grown/carrot
+ product = /obj/item/food/grown/carrot
maturation = 10
production = 1
yield = 5
@@ -14,7 +14,7 @@
mutatelist = list(/obj/item/seeds/carrot/parsnip)
reagents_add = list("oculine" = 0.25, "vitamin" = 0.04, "plantmatter" = 0.05)
-/obj/item/food/snacks/grown/carrot
+/obj/item/food/grown/carrot
seed = /obj/item/seeds/carrot
name = "carrot"
desc = "It's good for the eyes!"
@@ -24,14 +24,14 @@
tastes = list("carrot" = 1)
wine_power = 0.3
-/obj/item/food/snacks/grown/carrot/wedges
+/obj/item/food/grown/carrot/wedges
name = "carrot wedges"
desc = "Slices of neatly cut carrot."
icon_state = "carrot_wedges"
filling_color = "#FFA500"
bitesize_mod = 2
-/obj/item/food/snacks/grown/carrot/attackby(obj/item/I, mob/user, params)
+/obj/item/food/grown/carrot/attackby(obj/item/I, mob/user, params)
if(I.sharp)
to_chat(user, "You sharpen the carrot into a shiv with [I].")
var/obj/item/kitchen/knife/shiv/carrot/Shiv = new ()
@@ -50,12 +50,12 @@
icon_state = "seed-parsnip"
species = "parsnip"
plantname = "Parsnip"
- product = /obj/item/food/snacks/grown/parsnip
+ product = /obj/item/food/grown/parsnip
icon_dead = "carrot-dead"
mutatelist = list()
reagents_add = list("vitamin" = 0.05, "plantmatter" = 0.05)
-/obj/item/food/snacks/grown/parsnip
+/obj/item/food/grown/parsnip
seed = /obj/item/seeds/carrot/parsnip
name = "parsnip"
desc = "Closely related to carrots."
@@ -72,7 +72,7 @@
icon_state = "seed-whitebeet"
species = "whitebeet"
plantname = "White Beet Plants"
- product = /obj/item/food/snacks/grown/whitebeet
+ product = /obj/item/food/grown/whitebeet
lifespan = 60
endurance = 50
yield = 6
@@ -81,7 +81,7 @@
mutatelist = list(/obj/item/seeds/redbeet)
reagents_add = list("vitamin" = 0.04, "sugar" = 0.2, "plantmatter" = 0.05)
-/obj/item/food/snacks/grown/whitebeet
+/obj/item/food/grown/whitebeet
seed = /obj/item/seeds/whitebeet
name = "white beet"
desc = "You can't beat white beet."
@@ -98,7 +98,7 @@
icon_state = "seed-redbeet"
species = "redbeet"
plantname = "Red Beet Plants"
- product = /obj/item/food/snacks/grown/redbeet
+ product = /obj/item/food/grown/redbeet
lifespan = 60
endurance = 50
yield = 6
@@ -107,7 +107,7 @@
genes = list(/datum/plant_gene/trait/maxchem)
reagents_add = list("vitamin" = 0.05, "plantmatter" = 0.05)
-/obj/item/food/snacks/grown/redbeet
+/obj/item/food/grown/redbeet
seed = /obj/item/seeds/redbeet
name = "red beet"
desc = "You can't beat red beet."
diff --git a/code/modules/hydroponics/grown/tea_coffee.dm b/code/modules/hydroponics/grown/tea_coffee.dm
index 6289b1abda7f..20f43305cebc 100644
--- a/code/modules/hydroponics/grown/tea_coffee.dm
+++ b/code/modules/hydroponics/grown/tea_coffee.dm
@@ -5,7 +5,7 @@
icon_state = "seed-teaaspera"
species = "teaaspera"
plantname = "Tea Aspera Plant"
- product = /obj/item/food/snacks/grown/tea
+ product = /obj/item/food/grown/tea
lifespan = 20
maturation = 5
production = 5
@@ -16,7 +16,7 @@
mutatelist = list(/obj/item/seeds/tea/astra)
reagents_add = list("vitamin" = 0.04, "teapowder" = 0.1)
-/obj/item/food/snacks/grown/tea
+/obj/item/food/grown/tea
seed = /obj/item/seeds/tea
name = "Tea Aspera tips"
desc = "These aromatic tips of the tea plant can be dried to make tea."
@@ -32,12 +32,12 @@
desc = "These seeds grow into Tea Astra, a more potent variant of tea"
species = "teaastra"
plantname = "Tea Astra Plant"
- product = /obj/item/food/snacks/grown/tea/astra
+ product = /obj/item/food/grown/tea/astra
mutatelist = list()
reagents_add = list("synaptizine" = 0.1, "vitamin" = 0.04, "teapowder" = 0.1)
rarity = 20
-/obj/item/food/snacks/grown/tea/astra
+/obj/item/food/grown/tea/astra
seed = /obj/item/seeds/tea/astra
name = "Tea Astra tips"
desc = "Knock away your fatigue!"
@@ -53,7 +53,7 @@
icon_state = "seed-coffeea"
species = "coffeea"
plantname = "Coffee Arabica Bush"
- product = /obj/item/food/snacks/grown/coffee
+ product = /obj/item/food/grown/coffee
lifespan = 30
endurance = 20
maturation = 5
@@ -65,7 +65,7 @@
mutatelist = list(/obj/item/seeds/coffee/robusta)
reagents_add = list("vitamin" = 0.04, "coffeepowder" = 0.1)
-/obj/item/food/snacks/grown/coffee
+/obj/item/food/grown/coffee
seed = /obj/item/seeds/coffee
name = "coffee arabica beans"
desc = "Dry them out to make coffee."
@@ -82,12 +82,12 @@
icon_state = "seed-coffeer"
species = "coffeer"
plantname = "Coffee Robusta Bush"
- product = /obj/item/food/snacks/grown/coffee/robusta
+ product = /obj/item/food/grown/coffee/robusta
mutatelist = list()
reagents_add = list("ephedrine" = 0.1, "vitamin" = 0.04, "coffeepowder" = 0.1)
rarity = 20
-/obj/item/food/snacks/grown/coffee/robusta
+/obj/item/food/grown/coffee/robusta
seed = /obj/item/seeds/coffee/robusta
name = "coffee robusta beans"
desc = "Increases robustness by 37 percent!"
diff --git a/code/modules/hydroponics/grown/tobacco.dm b/code/modules/hydroponics/grown/tobacco.dm
index 6a74a4e02f44..461f77e18d03 100644
--- a/code/modules/hydroponics/grown/tobacco.dm
+++ b/code/modules/hydroponics/grown/tobacco.dm
@@ -5,7 +5,7 @@
icon_state = "seed-tobacco"
species = "tobacco"
plantname = "Tobacco Plant"
- product = /obj/item/food/snacks/grown/tobacco
+ product = /obj/item/food/grown/tobacco
lifespan = 20
maturation = 5
production = 5
@@ -15,7 +15,7 @@
mutatelist = list(/obj/item/seeds/tobacco/space)
reagents_add = list("nicotine" = 0.03, "plantmatter" = 0.03)
-/obj/item/food/snacks/grown/tobacco
+/obj/item/food/grown/tobacco
seed = /obj/item/seeds/tobacco
name = "tobacco leaves"
desc = "Dry them out to make some smokes."
@@ -31,12 +31,12 @@
icon_state = "seed-stobacco"
species = "stobacco"
plantname = "Space Tobacco Plant"
- product = /obj/item/food/snacks/grown/tobacco/space
+ product = /obj/item/food/grown/tobacco/space
mutatelist = list()
reagents_add = list("salbutamol" = 0.05, "nicotine" = 0.08, "plantmatter" = 0.03)
rarity = 20
-/obj/item/food/snacks/grown/tobacco/space
+/obj/item/food/grown/tobacco/space
seed = /obj/item/seeds/tobacco/space
name = "space tobacco leaves"
desc = "Dry them out to make some space-smokes."
diff --git a/code/modules/hydroponics/grown/tomato.dm b/code/modules/hydroponics/grown/tomato.dm
index 0de416b0972d..4f26bf4f6fe5 100644
--- a/code/modules/hydroponics/grown/tomato.dm
+++ b/code/modules/hydroponics/grown/tomato.dm
@@ -5,7 +5,7 @@
icon_state = "seed-tomato"
species = "tomato"
plantname = "Tomato Plants"
- product = /obj/item/food/snacks/grown/tomato
+ product = /obj/item/food/grown/tomato
maturation = 8
growing_icon = 'icons/obj/hydroponics/growing_fruits.dmi'
icon_grow = "tomato-grow"
@@ -14,12 +14,12 @@
mutatelist = list(/obj/item/seeds/tomato/blue, /obj/item/seeds/tomato/blood)
reagents_add = list("vitamin" = 0.04, "plantmatter" = 0.1)
-/obj/item/food/snacks/grown/tomato
+/obj/item/food/grown/tomato
seed = /obj/item/seeds/tomato
name = "tomato"
desc = "I say to-mah-to, you say tom-mae-to."
icon_state = "tomato"
- slice_path = /obj/item/food/snacks/tomatoslice
+ slice_path = /obj/item/food/tomatoslice
slices_num = 4
splat_type = /obj/effect/decal/cleanable/tomato_smudge
filling_color = "#FF6347"
@@ -34,12 +34,12 @@
icon_state = "seed-bloodtomato"
species = "bloodtomato"
plantname = "Blood-Tomato Plants"
- product = /obj/item/food/snacks/grown/tomato/blood
+ product = /obj/item/food/grown/tomato/blood
mutatelist = list(/obj/item/seeds/tomato/killer)
reagents_add = list("blood" = 0.2, "vitamin" = 0.04, "plantmatter" = 0.1)
rarity = 20
-/obj/item/food/snacks/grown/tomato/blood
+/obj/item/food/grown/tomato/blood
seed = /obj/item/seeds/tomato/blood
name = "blood-tomato"
desc = "So bloody...so...very...bloody....AHHHH!!!!"
@@ -58,7 +58,7 @@
icon_state = "seed-bluetomato"
species = "bluetomato"
plantname = "Blue-Tomato Plants"
- product = /obj/item/food/snacks/grown/tomato/blue
+ product = /obj/item/food/grown/tomato/blue
yield = 2
icon_grow = "bluetomato-grow"
mutatelist = list(/obj/item/seeds/tomato/blue/bluespace)
@@ -66,7 +66,7 @@
reagents_add = list("lube" = 0.2, "vitamin" = 0.04, "plantmatter" = 0.1)
rarity = 20
-/obj/item/food/snacks/grown/tomato/blue
+/obj/item/food/grown/tomato/blue
seed = /obj/item/seeds/tomato/blue
name = "blue-tomato"
desc = "I say blue-mah-to, you say blue-mae-to."
@@ -83,14 +83,14 @@
icon_state = "seed-bluespacetomato"
species = "bluespacetomato"
plantname = "Bluespace Tomato Plants"
- product = /obj/item/food/snacks/grown/tomato/blue/bluespace
+ product = /obj/item/food/grown/tomato/blue/bluespace
yield = 2
mutatelist = list()
genes = list(/datum/plant_gene/trait/squash, /datum/plant_gene/trait/slip, /datum/plant_gene/trait/teleport, /datum/plant_gene/trait/repeated_harvest)
reagents_add = list("lube" = 0.2, "singulo" = 0.2, "vitamin" = 0.04, "plantmatter" = 0.1)
rarity = 50
-/obj/item/food/snacks/grown/tomato/blue/bluespace
+/obj/item/food/grown/tomato/blue/bluespace
seed = /obj/item/seeds/tomato/blue/bluespace
name = "bluespace tomato"
desc = "So lubricated, you might slip through space-time."
@@ -108,7 +108,7 @@
icon_state = "seed-killertomato"
species = "killertomato"
plantname = "Killer-Tomato Plants"
- product = /obj/item/food/snacks/grown/tomato/killer
+ product = /obj/item/food/grown/tomato/killer
yield = 2
genes = list(/datum/plant_gene/trait/squash)
growthstages = 2
@@ -119,7 +119,7 @@
reagents_add = list("vitamin" = 0.04, "protein" = 0.1)
rarity = 30
-/obj/item/food/snacks/grown/tomato/killer
+/obj/item/food/grown/tomato/killer
seed = /obj/item/seeds/tomato/killer
name = "killer-tomato"
desc = "I say to-mah-to, you say tom-mae-to... OH GOD IT'S EATING MY LEGS!!"
@@ -129,13 +129,13 @@
origin_tech = "biotech=4;combat=5"
distill_reagent = "demonsblood"
-/obj/item/food/snacks/grown/tomato/killer/attack(mob/M, mob/user, def_zone)
+/obj/item/food/grown/tomato/killer/attack(mob/M, mob/user, def_zone)
if(awakening)
to_chat(user, "The tomato is twitching and shaking, preventing you from eating it.")
return
..()
-/obj/item/food/snacks/grown/tomato/killer/attack_self(mob/user)
+/obj/item/food/grown/tomato/killer/attack_self(mob/user)
if(awakening || isspaceturf(user.loc))
return
to_chat(user, "You begin to awaken the Killer Tomato...")
diff --git a/code/modules/hydroponics/grown/towercap.dm b/code/modules/hydroponics/grown/towercap.dm
index 4449e8d6f503..7c19394a2623 100644
--- a/code/modules/hydroponics/grown/towercap.dm
+++ b/code/modules/hydroponics/grown/towercap.dm
@@ -43,11 +43,11 @@
attack_verb = list("bashed", "battered", "bludgeoned", "whacked")
var/plank_type = /obj/item/stack/sheet/wood
var/plank_name = "wooden planks"
- var/static/list/accepted = typecacheof(list(/obj/item/food/snacks/grown/tobacco,
- /obj/item/food/snacks/grown/tea,
- /obj/item/food/snacks/grown/ambrosia/vulgaris,
- /obj/item/food/snacks/grown/ambrosia/deus,
- /obj/item/food/snacks/grown/wheat))
+ var/static/list/accepted = typecacheof(list(/obj/item/food/grown/tobacco,
+ /obj/item/food/grown/tea,
+ /obj/item/food/grown/ambrosia/vulgaris,
+ /obj/item/food/grown/ambrosia/deus,
+ /obj/item/food/grown/wheat))
/obj/item/grown/log/attackby(obj/item/W, mob/user, params)
if(W.sharp)
@@ -68,7 +68,7 @@
qdel(src)
if(CheckAccepted(W))
- var/obj/item/food/snacks/grown/leaf = W
+ var/obj/item/food/grown/leaf = W
if(leaf.dry)
user.show_message("You wrap \the [W] around the log, turning it into a torch!")
var/obj/item/flashlight/flare/torch/T = new /obj/item/flashlight/flare/torch(user.loc)
diff --git a/code/modules/hydroponics/hydroponics_tray.dm b/code/modules/hydroponics/hydroponics_tray.dm
index 4bd228afbbb2..217dcb5c53cc 100644
--- a/code/modules/hydroponics/hydroponics_tray.dm
+++ b/code/modules/hydroponics/hydroponics_tray.dm
@@ -122,7 +122,7 @@
return ..()
/obj/machinery/hydroponics/constructable/attackby(obj/item/I, mob/user, params)
- if(default_deconstruction_screwdriver(user, "hydrotray3", "hydrotray3", I) || exchange_parts(user, I))
+ if(default_deconstruction_screwdriver(user, "hydrotray3", "hydrotray3", I))
return
return ..()
@@ -857,7 +857,7 @@
else if(istype(O, /obj/item/storage/bag/plants))
attack_hand(user)
var/obj/item/storage/bag/plants/S = O
- for(var/obj/item/food/snacks/grown/G in locate(user.x,user.y,user.z))
+ for(var/obj/item/food/grown/G in locate(user.x,user.y,user.z))
if(!S.can_be_inserted(G))
return
S.handle_item_insertion(G, user, TRUE)
diff --git a/code/modules/hydroponics/plant_genes.dm b/code/modules/hydroponics/plant_genes.dm
index a9c9d9c16a7c..1ed5751192c3 100644
--- a/code/modules/hydroponics/plant_genes.dm
+++ b/code/modules/hydroponics/plant_genes.dm
@@ -209,7 +209,7 @@
return FALSE
return TRUE
-/datum/plant_gene/trait/proc/on_new(obj/item/food/snacks/grown/G)
+/datum/plant_gene/trait/proc/on_new(obj/item/food/grown/G)
if(!origin_tech) // This ugly code segment adds RnD tech levels to resulting plants.
return
@@ -224,19 +224,19 @@
else
G.origin_tech = list2params(origin_tech)
-/datum/plant_gene/trait/proc/on_consume(obj/item/food/snacks/grown/G, mob/living/carbon/target)
+/datum/plant_gene/trait/proc/on_consume(obj/item/food/grown/G, mob/living/carbon/target)
return
-/datum/plant_gene/trait/proc/on_slip(obj/item/food/snacks/grown/G, mob/living/carbon/target)
+/datum/plant_gene/trait/proc/on_slip(obj/item/food/grown/G, mob/living/carbon/target)
return
-/datum/plant_gene/trait/proc/on_squash(obj/item/food/snacks/grown/G, atom/target)
+/datum/plant_gene/trait/proc/on_squash(obj/item/food/grown/G, atom/target)
return
-/datum/plant_gene/trait/proc/on_attackby(obj/item/food/snacks/grown/G, obj/item/I, mob/user)
+/datum/plant_gene/trait/proc/on_attackby(obj/item/food/grown/G, obj/item/I, mob/user)
return
-/datum/plant_gene/trait/proc/on_throw_impact(obj/item/food/snacks/grown/G, atom/target)
+/datum/plant_gene/trait/proc/on_throw_impact(obj/item/food/grown/G, atom/target)
return
/datum/plant_gene/trait/squash
@@ -256,7 +256,7 @@
examine_line = "It has a very slippery skin."
dangerous = TRUE
-/datum/plant_gene/trait/slip/on_new(obj/item/food/snacks/grown/G)
+/datum/plant_gene/trait/slip/on_new(obj/item/food/grown/G)
. = ..()
if(istype(G) && ispath(G.trash, /obj/item/grown))
return
@@ -280,19 +280,19 @@
origin_tech = list("powerstorage" = 5)
dangerous = TRUE
-/datum/plant_gene/trait/cell_charge/on_slip(obj/item/food/snacks/grown/G, mob/living/carbon/C)
+/datum/plant_gene/trait/cell_charge/on_slip(obj/item/food/grown/G, mob/living/carbon/C)
var/power = G.seed.potency*rate
if(prob(power))
C.electrocute_act(round(power), G, 1, SHOCK_NOGLOVES)
-/datum/plant_gene/trait/cell_charge/on_squash(obj/item/food/snacks/grown/G, atom/target)
+/datum/plant_gene/trait/cell_charge/on_squash(obj/item/food/grown/G, atom/target)
if(isliving(target))
var/mob/living/carbon/C = target
var/power = G.seed.potency*rate
if(prob(power))
C.electrocute_act(round(power), G, 1, SHOCK_NOGLOVES)
-/datum/plant_gene/trait/cell_charge/on_consume(obj/item/food/snacks/grown/G, mob/living/carbon/target)
+/datum/plant_gene/trait/cell_charge/on_consume(obj/item/food/grown/G, mob/living/carbon/target)
if(!G.reagents.total_volume)
var/batteries_recharged = 0
for(var/obj/item/stock_parts/cell/C in target.GetAllContents())
@@ -325,7 +325,7 @@
/datum/plant_gene/trait/glow/proc/glow_power(obj/item/seeds/S)
return max(S.potency*(rate + 0.01), 0.1)
-/datum/plant_gene/trait/glow/on_new(obj/item/food/snacks/grown/G)
+/datum/plant_gene/trait/glow/on_new(obj/item/food/grown/G)
..()
G.set_light(glow_range(G.seed), glow_power(G.seed), glow_color)
@@ -356,7 +356,7 @@
origin_tech = list("bluespace" = 5)
dangerous = TRUE
-/datum/plant_gene/trait/teleport/on_squash(obj/item/food/snacks/grown/G, atom/target)
+/datum/plant_gene/trait/teleport/on_squash(obj/item/food/grown/G, atom/target)
if(isliving(target))
var/mob/living/L = target
var/teleport_radius = max(round(G.seed.potency / 10), 1)
@@ -365,7 +365,7 @@
do_teleport(L, T, teleport_radius)
L.apply_status_effect(STATUS_EFFECT_TELEPORTSICK)
-/datum/plant_gene/trait/teleport/on_slip(obj/item/food/snacks/grown/G, mob/living/carbon/C)
+/datum/plant_gene/trait/teleport/on_slip(obj/item/food/grown/G, mob/living/carbon/C)
var/teleport_radius = max(round(G.seed.potency / 10), 1)
var/turf/T = get_turf(C)
if(do_teleport(C, T, teleport_radius))
@@ -386,7 +386,7 @@
name = "Densified Chemicals"
rate = 2
-/datum/plant_gene/trait/maxchem/on_new(obj/item/food/snacks/grown/G)
+/datum/plant_gene/trait/maxchem/on_new(obj/item/food/grown/G)
..()
G.reagents.maximum_volume *= rate
@@ -403,7 +403,7 @@
/datum/plant_gene/trait/battery
name = "Capacitive Cell Production"
-/datum/plant_gene/trait/battery/on_attackby(obj/item/food/snacks/grown/G, obj/item/I, mob/user)
+/datum/plant_gene/trait/battery/on_attackby(obj/item/food/grown/G, obj/item/I, mob/user)
if(istype(I, /obj/item/stack/cable_coil))
var/obj/item/stack/cable_coil/C = I
if(C.use(5))
@@ -432,7 +432,7 @@
name = "Hypodermic Prickles"
dangerous = TRUE
-/datum/plant_gene/trait/stinging/on_throw_impact(obj/item/food/snacks/grown/G, atom/target)
+/datum/plant_gene/trait/stinging/on_throw_impact(obj/item/food/grown/G, atom/target)
if(isliving(target) && G.reagents && G.reagents.total_volume)
var/mob/living/L = target
// It would be nice to inject the body part the original thrower aimed at,
@@ -449,7 +449,7 @@
name = "Gaseous Decomposition"
dangerous = TRUE
-/datum/plant_gene/trait/smoke/on_squash(obj/item/food/snacks/grown/G, atom/target)
+/datum/plant_gene/trait/smoke/on_squash(obj/item/food/grown/G, atom/target)
var/datum/effect_system/smoke_spread/chem/plant/S = new()
var/splat_location = get_turf(target)
var/smoke_amount = round(sqrt(G.seed.potency * 0.1), 1)
@@ -464,7 +464,7 @@
if(!(S.resistance_flags & FIRE_PROOF))
S.resistance_flags |= FIRE_PROOF
-/datum/plant_gene/trait/fire_resistance/on_new(obj/item/food/snacks/grown/G)
+/datum/plant_gene/trait/fire_resistance/on_new(obj/item/food/grown/G)
if(!(G.resistance_flags & FIRE_PROOF))
G.resistance_flags |= FIRE_PROOF
diff --git a/code/modules/hydroponics/seed_extractor.dm b/code/modules/hydroponics/seed_extractor.dm
index 37ac3e36132f..32f0f2d2ab72 100644
--- a/code/modules/hydroponics/seed_extractor.dm
+++ b/code/modules/hydroponics/seed_extractor.dm
@@ -10,8 +10,8 @@
output_loc = extractor.loc
var/original_seed = null
- if(istype(source_item, /obj/item/food/snacks/grown))
- var/obj/item/food/snacks/grown/F = source_item
+ if(istype(source_item, /obj/item/food/grown))
+ var/obj/item/food/grown/F = source_item
original_seed = F.unsorted_seed || F.seed
else if(istype(source_item, /obj/item/grown))
var/obj/item/grown/F = source_item
@@ -77,13 +77,17 @@
/obj/machinery/seed_extractor/attackby(obj/item/O, mob/user, params)
if(default_deconstruction_screwdriver(user, "sextractor_open", "sextractor", O))
return
- if(exchange_parts(user, O))
- return
+
if(default_unfasten_wrench(user, O, time = 4 SECONDS))
return
+
if(default_deconstruction_crowbar(user, O))
return
+ if(istype(O, /obj/item/storage/part_replacer))
+ . = ..()
+ SStgui.update_uis(src)
+ return
if(istype(O, /obj/item/storage/bag/plants))
var/obj/item/storage/P = O
@@ -99,33 +103,39 @@
SStgui.update_uis(src)
else
var/seedable = 0
- for(var/obj/item/food/snacks/grown/ignored in P)
+ for(var/obj/item/food/grown/ignored in P)
seedable++
for(var/obj/item/grown/ignored in P)
seedable++
if(!seedable)
to_chat(user, "There are no seeds or plants in [O].")
return
+
to_chat(user, "You dump the plants in [O] into [src].")
if(!O.use_tool(src, user, min(5, seedable/2) SECONDS))
return
+
for(var/thing in P)
seedify(thing,-1, src, user)
return
- else if(istype(O, /obj/item/unsorted_seeds))
+ if(istype(O, /obj/item/unsorted_seeds))
to_chat(user, "You need to sort [O] first!")
return ..()
- else if(istype(O, /obj/item/seeds))
+
+ if(istype(O, /obj/item/seeds))
add_seed(O, user)
to_chat(user, "You add [O] to [name].")
SStgui.update_uis(src)
return
- else if(seedify(O,-1, src, user))
+
+ if(seedify(O,-1, src, user))
to_chat(user, "You extract some seeds.")
return
- else if(user.a_intent != INTENT_HARM)
+
+ if(user.a_intent != INTENT_HARM)
to_chat(user, "You can't extract any seeds from \the [O.name]!")
+
return ..()
/obj/machinery/seed_extractor/attack_ai(mob/user)
diff --git a/code/modules/hydroponics/seeds.dm b/code/modules/hydroponics/seeds.dm
index a18d95c828fe..7e770f65bc42 100644
--- a/code/modules/hydroponics/seeds.dm
+++ b/code/modules/hydroponics/seeds.dm
@@ -242,8 +242,8 @@
data = list("blood_type" = "O-")
if(rid == "nutriment" || rid == "vitamin" || rid == "protein" || rid == "plantmatter")
// Apple tastes of apple.
- if(istype(T, /obj/item/food/snacks/grown))
- var/obj/item/food/snacks/grown/grown_edible = T
+ if(istype(T, /obj/item/food/grown))
+ var/obj/item/food/grown/grown_edible = T
data = grown_edible.tastes.Copy()
T.reagents.add_reagent(rid, amount, data)
diff --git a/code/modules/library/book.dm b/code/modules/library/book.dm
index 02316f5a95c6..466033801e0c 100644
--- a/code/modules/library/book.dm
+++ b/code/modules/library/book.dm
@@ -360,11 +360,14 @@
var/amount = 1
/obj/item/book/random/Initialize()
- ..()
- var/list/books = GLOB.library_catalog.get_random_book(amount, FALSE)
+ . = ..()
+ addtimer(CALLBACK(src, PROC_REF(spawn_books)), 0)
+
+/obj/item/book/random/proc/spawn_books()
+ var/list/books = GLOB.library_catalog.get_random_book(amount)
for(var/datum/cachedbook/book as anything in books)
new /obj/item/book(loc, book, TRUE, FALSE)
- return INITIALIZE_HINT_QDEL
+ qdel(src)
/obj/item/book/random/triple
amount = 3
diff --git a/code/modules/library/library_catalog.dm b/code/modules/library/library_catalog.dm
index 84f097eeea82..cabc94a9c3b1 100644
--- a/code/modules/library/library_catalog.dm
+++ b/code/modules/library/library_catalog.dm
@@ -236,7 +236,7 @@
* * range - Amount of books we want to grab at once
* * datum/library_user_data/search_terms - datum with parameters for what we want to query our DB for
*/
-/datum/library_catalog/proc/get_book_by_range(initial = 1, range = 25, datum/library_user_data/search_terms, doAsync = TRUE)
+/datum/library_catalog/proc/get_book_by_range(initial = 1, range = 25, datum/library_user_data/search_terms)
var/list/search_query = build_search_query(search_terms)
var/sql = "SELECT id, author, title, content, summary, rating, raters, primary_category, secondary_category, tertiary_category, ckey, reports FROM library" + search_query[1] + " LIMIT :lowerlimit, :upperlimit"
var/list/sql_params = search_query[2]
@@ -246,7 +246,7 @@
var/datum/db_query/select_query = SSdbcore.NewQuery(sql, sql_params)
- if(!select_query.warn_execute(async = doAsync))
+ if(!select_query.warn_execute())
qdel(select_query)
return
@@ -309,13 +309,13 @@
* Arguments:
* * datum/library_user_data/search_terms - datum with parameters for what we want to query our DB for
*/
-/datum/library_catalog/proc/get_total_books(datum/library_user_data/search_terms, async = TRUE)
+/datum/library_catalog/proc/get_total_books(datum/library_user_data/search_terms)
var/list/search_query = build_search_query(search_terms)
var/sql = "SELECT COUNT(id) FROM library" + search_query[1]
var/list/sql_params = search_query[2]
var/datum/db_query/count_query = SSdbcore.NewQuery(sql, sql_params)
- if(!count_query.warn_execute(async))
+ if(!count_query.warn_execute())
qdel(count_query)
return
@@ -365,7 +365,7 @@
* Arguments:
* * amount - amount of random books to get
*/
-/datum/library_catalog/proc/get_random_book(amount = 1, doAsync = TRUE)
+/datum/library_catalog/proc/get_random_book(amount = 1)
if(!amount)
return
if(!SSdbcore.IsConnected())
@@ -374,7 +374,7 @@
var/list/sql_params = list("amount" = num_books )
var/sql = "SELECT id, author, title, content, summary, rating, primary_category, secondary_category, tertiary_category, ckey, reports FROM library GROUP BY title ORDER BY rand() LIMIT :amount"
var/datum/db_query/query = SSdbcore.NewQuery(sql, sql_params)
- if(!query.warn_execute(async = doAsync)) //this proc is used in initialize in some objects :)
+ if(!query.warn_execute())
qdel(query)
return
diff --git a/code/modules/library/library_computer.dm b/code/modules/library/library_computer.dm
index b31f73c13317..3fcab669b34b 100644
--- a/code/modules/library/library_computer.dm
+++ b/code/modules/library/library_computer.dm
@@ -52,9 +52,7 @@
/obj/machinery/computer/library/Initialize(mapload)
. = ..()
- populate_booklist(async = FALSE)
- //since ui_data screws up when SQL calls are made inside it,
- //we must populate our booklist before ui_act is called for the first time
+ addtimer(CALLBACK(src, PROC_REF(populate_booklist)), 0)
/obj/machinery/computer/library/attack_ai(mob/user)
return attack_hand(user)
@@ -538,11 +536,11 @@
* internal proc that will refresh our cached booklist, it needs to be called everytime we are switching parameters
* that will affect what books will be displayed in our TGUI player book archive.
*/
-/obj/machinery/computer/library/proc/populate_booklist(async = TRUE)
+/obj/machinery/computer/library/proc/populate_booklist()
cached_booklist = list() //clear old list
var/starting_book = (archive_page_num - 1) * LIBRARY_BOOKS_PER_PAGE
var/range = LIBRARY_BOOKS_PER_PAGE
- for(var/datum/cachedbook/CB in GLOB.library_catalog.get_book_by_range(starting_book, range, user_data, async))
+ for(var/datum/cachedbook/CB in GLOB.library_catalog.get_book_by_range(starting_book, range, user_data))
//instead of just adding the datum to the cached_booklist, we want to make it an assoc list so we can just give it to the TGUI
var/list/book_data = list(
@@ -561,13 +559,13 @@
book_data["categories"] += book_category.description //we're displaying the cats onlys, so we don't need the ids
cached_booklist += list(book_data)
- num_pages = getmaxpages(async)
+ num_pages = getmaxpages()
archive_page_num = clamp(archive_page_num, 1, num_pages)
///Returns the amount of pages we will need to hold all the book our DB has found
-/obj/machinery/computer/library/proc/getmaxpages(async = TRUE)
+/obj/machinery/computer/library/proc/getmaxpages()
//if get_total_books doesn't return anything, just set pages to 1 so we don't break stuff
- var/book_count = max(1, GLOB.library_catalog.get_total_books(user_data, async))
+ var/book_count = max(1, GLOB.library_catalog.get_total_books(user_data))
var/page_count = round(book_count / LIBRARY_BOOKS_PER_PAGE)
//Since 'round' gets the floor value it's likely there will be 1 page more than
//the page count amount (almost guaranteed), we check for a remainder because of this
diff --git a/code/modules/library/library_equipment.dm b/code/modules/library/library_equipment.dm
index 00790622c600..82e88b3a1cad 100644
--- a/code/modules/library/library_equipment.dm
+++ b/code/modules/library/library_equipment.dm
@@ -149,7 +149,10 @@
/obj/structure/bookcase/random/Initialize(mapload)
. = ..()
- var/list/books = GLOB.library_catalog.get_random_book(book_count, doAsync = FALSE)
+ addtimer(CALLBACK(src, PROC_REF(load_books)), 0)
+
+/obj/structure/bookcase/random/proc/load_books()
+ var/list/books = GLOB.library_catalog.get_random_book(book_count)
for(var/datum/cachedbook/book as anything in books)
new /obj/item/book(src, book, TRUE, FALSE)
update_icon(UPDATE_ICON_STATE)
diff --git a/code/modules/mapping/access_helpers.dm b/code/modules/mapping/access_helpers.dm
index 66661ae3c654..54582614ccfa 100644
--- a/code/modules/mapping/access_helpers.dm
+++ b/code/modules/mapping/access_helpers.dm
@@ -1,10 +1,13 @@
/obj/effect/mapping_helpers/airlock/access
- layer = DOOR_HELPER_LAYER
+ layer = SPLASHSCREEN_PLANE + 0.1 // Above even airlock spawners
icon_state = "access_helper"
var/access
// These are mutually exclusive; can't have req_any and req_all
/obj/effect/mapping_helpers/airlock/access/any/payload(obj/machinery/door/airlock/airlock)
+ if(is_type_in_list(airlock, blacklist))
+ return
+
if(airlock.req_access_txt == "0")
// Overwrite if there is no access set, otherwise add onto existing access
if(airlock.req_one_access_txt == "0")
@@ -15,6 +18,9 @@
log_world("[src] at [AREACOORD(src)] tried to set req_one_access, but req_access was already set!")
/obj/effect/mapping_helpers/airlock/access/all/payload(obj/machinery/door/airlock/airlock)
+ if(is_type_in_list(airlock, blacklist))
+ return
+
if(airlock.req_one_access_txt == "0")
if(airlock.req_access_txt == "0")
airlock.req_access_txt = "[access]"
diff --git a/code/modules/mapping/mapping_helpers.dm b/code/modules/mapping/mapping_helpers.dm
index f003c6ecfc27..784f6672c1c7 100644
--- a/code/modules/mapping/mapping_helpers.dm
+++ b/code/modules/mapping/mapping_helpers.dm
@@ -84,18 +84,20 @@
/obj/effect/mapping_helpers/airlock/Initialize(mapload)
. = ..()
+
if(!mapload)
log_world("[src] spawned outside of mapload!")
- return
+ return INITIALIZE_HINT_QDEL
+/obj/effect/mapping_helpers/airlock/LateInitialize()
+ . = ..()
if(!(locate(/obj/machinery/door) in get_turf(src)))
log_world("[src] failed to find an airlock at [AREACOORD(src)]")
for(var/obj/machinery/door/D in get_turf(src))
- if(!is_type_in_list(D, blacklist))
- payload(D)
+ payload(D)
- return INITIALIZE_HINT_QDEL
+ qdel(src)
/obj/effect/mapping_helpers/airlock/proc/payload(obj/machinery/door/airlock/payload)
return
diff --git a/code/modules/martial_arts/judo.dm b/code/modules/martial_arts/judo.dm
index acd0b1693b84..96af7e0996c1 100644
--- a/code/modules/martial_arts/judo.dm
+++ b/code/modules/martial_arts/judo.dm
@@ -27,7 +27,7 @@
/obj/item/reagent_containers/spray/pepper,
/obj/item/restraints/handcuffs,
/obj/item/flash,
- /obj/item/food/snacks/donut,
+ /obj/item/food/donut,
/obj/item/flashlight/seclite,
/obj/item/holosign_creator/security,
/obj/item/holosign_creator/detective,
diff --git a/code/modules/mining/abandonedcrates.dm b/code/modules/mining/abandonedcrates.dm
index 51a04b85da7a..e8c49f5d821a 100644
--- a/code/modules/mining/abandonedcrates.dm
+++ b/code/modules/mining/abandonedcrates.dm
@@ -24,7 +24,7 @@
switch(loot)
if(1 to 5) //5% chance
new /obj/item/reagent_containers/drinks/bottle/rum(src)
- new /obj/item/food/snacks/grown/ambrosia/deus(src)
+ new /obj/item/food/grown/ambrosia/deus(src)
new /obj/item/reagent_containers/drinks/bottle/whiskey(src)
new /obj/item/lighter(src)
if(6 to 10)
diff --git a/code/modules/mining/equipment/explorer_gear.dm b/code/modules/mining/equipment/explorer_gear.dm
index 9eadbe5e2a7e..e7aded9447f6 100644
--- a/code/modules/mining/equipment/explorer_gear.dm
+++ b/code/modules/mining/equipment/explorer_gear.dm
@@ -53,6 +53,7 @@
max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT
heat_protection = UPPER_TORSO|LOWER_TORSO|LEGS|ARMS|HANDS|FEET
resistance_flags = FIRE_PROOF | LAVA_PROOF
+ flags_2 = RAD_PROTECT_CONTENTS_2
slowdown = 0
armor = list(MELEE = 120, BULLET = 35, LASER = 25, ENERGY = 25, BOMB = 150, RAD = INFINITY, FIRE = INFINITY, ACID = INFINITY)
allowed = list(/obj/item/flashlight, /obj/item/tank/internals, /obj/item/resonator, /obj/item/mining_scanner, /obj/item/t_scanner/adv_mining_scanner, /obj/item/gun/energy/kinetic_accelerator, /obj/item/pickaxe, /obj/item/melee/spellblade)
@@ -90,7 +91,7 @@
heat_protection = HEAD
armor = list(MELEE = 120, BULLET = 35, LASER = 25, ENERGY = 25, BOMB = 150, RAD = INFINITY, FIRE = INFINITY, ACID = INFINITY)
resistance_flags = FIRE_PROOF | LAVA_PROOF
-
+ flags_2 = RAD_PROTECT_CONTENTS_2
sprite_sheets = list(
"Vox" = 'icons/mob/clothing/species/vox/head.dmi',
"Drask" = 'icons/mob/clothing/species/drask/head.dmi',
diff --git a/code/modules/mining/equipment/survival_pod.dm b/code/modules/mining/equipment/survival_pod.dm
index 4c4ad8a8e925..f6ec847f9239 100644
--- a/code/modules/mining/equipment/survival_pod.dm
+++ b/code/modules/mining/equipment/survival_pod.dm
@@ -240,7 +240,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/economy/vending/wallmed/survival_pod,
return
for(var/i in 1 to 5)
- var/obj/item/food/snacks/warmdonkpocket_weak/W = new(src)
+ var/obj/item/food/warmdonkpocket_weak/W = new(src)
load(W)
if(prob(50))
var/obj/item/storage/bag/dice/D = new(src)
diff --git a/code/modules/mining/equipment/wormhole_jaunter.dm b/code/modules/mining/equipment/wormhole_jaunter.dm
index 9238fb83fbdd..ab12f1fdcdec 100644
--- a/code/modules/mining/equipment/wormhole_jaunter.dm
+++ b/code/modules/mining/equipment/wormhole_jaunter.dm
@@ -133,6 +133,9 @@
/obj/item/wormhole_jaunter/contractor/activate(mob/user)
if(!turf_check(user))
return
+ if(istype(get_area(src), /area/ruin/space/telecomms)) //It should work in the depot, because it's syndicate, but I don't want someone lighting the flare in the middle of telecomms and calling it a day.
+ to_chat(user, "Error! Unknown jamming system blocking teleportation in this area!")
+ return
if(!destination)
var/list/L = get_destinations(user)
if(!length(L))
diff --git a/code/modules/mining/lavaland/ash_flora.dm b/code/modules/mining/lavaland/ash_flora.dm
index 463312725163..9768e5d08e68 100644
--- a/code/modules/mining/lavaland/ash_flora.dm
+++ b/code/modules/mining/lavaland/ash_flora.dm
@@ -9,7 +9,7 @@
var/harvested_name = "shortened mushrooms"
var/harvested_desc = "Some quickly regrowing mushrooms, formerly known to be quite large."
var/needs_sharp_harvest = TRUE
- var/harvest = /obj/item/food/snacks/grown/ash_flora/shavings
+ var/harvest = /obj/item/food/grown/ash_flora/shavings
var/harvest_amount_low = 1
var/harvest_amount_high = 3
var/harvest_time = 60
@@ -85,7 +85,7 @@
desc = "A number of mushrooms, each of which surrounds a greenish sporangium with a number of leaf-like structures."
harvested_name = "leafless mushrooms"
harvested_desc = "A bunch of formerly-leafed mushrooms, with their sporangiums exposed. Scandalous?"
- harvest = /obj/item/food/snacks/grown/ash_flora/mushroom_leaf
+ harvest = /obj/item/food/grown/ash_flora/mushroom_leaf
needs_sharp_harvest = FALSE
harvest_amount_high = 4
harvest_time = 20
@@ -101,7 +101,7 @@
desc = "Several mushrooms, the larger of which have a ring of conks at the midpoint of their stems."
harvested_name = "small mushrooms"
harvested_desc = "Several small mushrooms near the stumps of what likely were larger mushrooms."
- harvest = /obj/item/food/snacks/grown/ash_flora/mushroom_cap
+ harvest = /obj/item/food/grown/ash_flora/mushroom_cap
harvest_amount_high = 4
harvest_time = 50
harvest_message_low = "You slice the cap off of a mushroom."
@@ -118,7 +118,7 @@
light_power = 2.1
harvested_name = "tiny mushrooms"
harvested_desc = "A few tiny mushrooms around larger stumps. You can already see them growing back."
- harvest = /obj/item/food/snacks/grown/ash_flora/mushroom_stem
+ harvest = /obj/item/food/grown/ash_flora/mushroom_stem
harvest_amount_high = 4
harvest_time = 40
harvest_message_low = "You pick and slice the cap off of a mushroom, leaving the stem."
@@ -133,7 +133,7 @@
desc = "Several prickly cacti, brimming with ripe fruit and covered in a thin layer of ash."
harvested_name = "cacti"
harvested_desc = "A bunch of prickly cacti. You can see fruits slowly growing beneath the covering of ash."
- harvest = /obj/item/food/snacks/grown/ash_flora/cactus_fruit
+ harvest = /obj/item/food/grown/ash_flora/cactus_fruit
needs_sharp_harvest = FALSE
harvest_amount_high = 2
harvest_time = 10
@@ -184,7 +184,7 @@
. = ..()
icon_state = "basalt[rand(1, 4)]"
-/obj/item/food/snacks/grown/ash_flora
+/obj/item/food/grown/ash_flora
name = "mushroom shavings"
desc = "Some shavings from a tall mushroom. With enough, might serve as a bowl."
icon = 'icons/obj/lavaland/ash_flora.dmi'
@@ -195,36 +195,36 @@
seed = /obj/item/seeds/lavaland/polypore
wine_power = 0.2
-/obj/item/food/snacks/grown/ash_flora/Initialize(mapload)
+/obj/item/food/grown/ash_flora/Initialize(mapload)
. = ..()
pixel_x = rand(-4, 4)
pixel_y = rand(-4, 4)
/// for actual crafting
-/obj/item/food/snacks/grown/ash_flora/shavings
+/obj/item/food/grown/ash_flora/shavings
-/obj/item/food/snacks/grown/ash_flora/mushroom_leaf
+/obj/item/food/grown/ash_flora/mushroom_leaf
name = "mushroom leaf"
desc = "A leaf, from a mushroom."
icon_state = "mushroom_leaf"
seed = /obj/item/seeds/lavaland/porcini
wine_power = 0.4
-/obj/item/food/snacks/grown/ash_flora/mushroom_cap
+/obj/item/food/grown/ash_flora/mushroom_cap
name = "mushroom cap"
desc = "The cap of a large mushroom."
icon_state = "mushroom_cap"
seed = /obj/item/seeds/lavaland/inocybe
wine_power = 0.7
-/obj/item/food/snacks/grown/ash_flora/mushroom_stem
+/obj/item/food/grown/ash_flora/mushroom_stem
name = "mushroom stem"
desc = "A long mushroom stem. It's slightly glowing."
icon_state = "mushroom_stem"
seed = /obj/item/seeds/lavaland/ember
wine_power = 0.6
-/obj/item/food/snacks/grown/ash_flora/cactus_fruit
+/obj/item/food/grown/ash_flora/cactus_fruit
name = "cactus fruit"
desc = "A cactus fruit covered in a thick, reddish skin. And some ash."
icon_state = "cactus_fruit"
@@ -253,7 +253,7 @@
icon_state = "seed-cactus"
species = "cactus"
plantname = "Fruiting Cactus"
- product = /obj/item/food/snacks/grown/ash_flora/cactus_fruit
+ product = /obj/item/food/grown/ash_flora/cactus_fruit
genes = list(/datum/plant_gene/trait/fire_resistance)
growing_icon = 'icons/obj/hydroponics/growing_fruits.dmi'
growthstages = 2
@@ -265,7 +265,7 @@
icon_state = "mycelium-polypore"
species = "polypore"
plantname = "Polypore Mushrooms"
- product = /obj/item/food/snacks/grown/ash_flora/shavings
+ product = /obj/item/food/grown/ash_flora/shavings
genes = list(/datum/plant_gene/trait/plant_type/fungal_metabolism, /datum/plant_gene/trait/fire_resistance)
growing_icon = 'icons/obj/hydroponics/growing_mushrooms.dmi'
reagents_add = list("sugar" = 0.06, "ethanol" = 0.04, "stabilizing_agent" = 0.06, "minttoxin" = 0.02)
@@ -276,7 +276,7 @@
icon_state = "mycelium-porcini"
species = "porcini"
plantname = "Porcini Mushrooms"
- product = /obj/item/food/snacks/grown/ash_flora/mushroom_leaf
+ product = /obj/item/food/grown/ash_flora/mushroom_leaf
genes = list(/datum/plant_gene/trait/plant_type/fungal_metabolism, /datum/plant_gene/trait/fire_resistance)
growing_icon = 'icons/obj/hydroponics/growing_mushrooms.dmi'
reagents_add = list("nutriment" = 0.06, "vitfro" = 0.04, "nicotine" = 0.04)
@@ -288,7 +288,7 @@
icon_state = "mycelium-inocybe"
species = "inocybe"
plantname = "Inocybe Mushrooms"
- product = /obj/item/food/snacks/grown/ash_flora/mushroom_cap
+ product = /obj/item/food/grown/ash_flora/mushroom_cap
genes = list(/datum/plant_gene/trait/plant_type/fungal_metabolism, /datum/plant_gene/trait/fire_resistance)
growing_icon = 'icons/obj/hydroponics/growing_mushrooms.dmi'
reagents_add = list("lsd" = 0.04, "entpoly" = 0.08, "psilocybin" = 0.04)
@@ -299,7 +299,7 @@
icon_state = "mycelium-ember"
species = "ember"
plantname = "Embershroom Mushrooms"
- product = /obj/item/food/snacks/grown/ash_flora/mushroom_stem
+ product = /obj/item/food/grown/ash_flora/mushroom_stem
genes = list(/datum/plant_gene/trait/plant_type/fungal_metabolism, /datum/plant_gene/trait/glow, /datum/plant_gene/trait/fire_resistance)
growing_icon = 'icons/obj/hydroponics/growing_mushrooms.dmi'
reagents_add = list("tinlux" = 0.04, "vitamin" = 0.02, "space_drugs" = 0.02)
@@ -310,7 +310,7 @@
/datum/crafting_recipe/mushroom_bowl
name = "Mushroom Bowl"
result = list(/obj/item/reagent_containers/drinks/mushroom_bowl)
- reqs = list(/obj/item/food/snacks/grown/ash_flora/shavings = 5)
+ reqs = list(/obj/item/food/grown/ash_flora/shavings = 5)
time = 30
category = CAT_PRIMAL
diff --git a/code/modules/mining/machine_redemption.dm b/code/modules/mining/machine_redemption.dm
index e4ce7921dcaa..6d21ffd940c1 100644
--- a/code/modules/mining/machine_redemption.dm
+++ b/code/modules/mining/machine_redemption.dm
@@ -181,8 +181,9 @@
// Interactions
/obj/machinery/mineral/ore_redemption/attackby(obj/item/I, mob/user, params)
- if(exchange_parts(user, I))
- return
+ if(istype(I, /obj/item/storage/part_replacer))
+ return ..()
+
if(!has_power())
return ..()
@@ -202,18 +203,20 @@
add_fingerprint(usr)
return
- else if(istype(I, /obj/item/disk/design_disk))
+ if(istype(I, /obj/item/disk/design_disk))
if(!user.drop_item())
return
I.forceMove(src)
inserted_disk = I
SStgui.update_uis(src)
interact(user)
- user.visible_message("[user] inserts [I] into [src].",
- "You insert [I] into [src].")
+ user.visible_message(
+ "[user] inserts [I] into [src].",
+ "You insert [I] into [src]."
+ )
return
- else if(istype(I, /obj/item/gripper))
+ if(istype(I, /obj/item/gripper))
if(!try_refill_storage(user))
to_chat(user, "You fail to retrieve any sheets from [src].")
return
diff --git a/code/modules/mining/machine_vending.dm b/code/modules/mining/machine_vending.dm
index 2b57ed4690b8..f5e1a869df43 100644
--- a/code/modules/mining/machine_vending.dm
+++ b/code/modules/mining/machine_vending.dm
@@ -320,7 +320,7 @@
EQUIPMENT("Extra ID", /obj/item/card/id/golem, 250),
EQUIPMENT("Science Backpack", /obj/item/storage/backpack/science, 250),
EQUIPMENT("Full Toolbelt", /obj/item/storage/belt/utility/full/multitool, 250),
- EQUIPMENT("Monkey Cube", /obj/item/food/snacks/monkeycube, 250),
+ EQUIPMENT("Monkey Cube", /obj/item/food/monkeycube, 250),
EQUIPMENT("Royal Cape of the Liberator", /obj/item/bedsheet/rd/royal_cape, 500),
EQUIPMENT("Grey Slime Extract", /obj/item/slime_extract/grey, 1000),
EQUIPMENT("KA Trigger Modification Kit", /obj/item/borg/upgrade/modkit/trigger_guard, 1000),
@@ -356,9 +356,9 @@
EQUIPMENT("Medical Marijuana", /obj/item/storage/fancy/cigarettes/cigpack_med, 250),
EQUIPMENT("Cigar", /obj/item/clothing/mask/cigarette/cigar/havana, 150),
EQUIPMENT("Box of matches", /obj/item/storage/fancy/matches, 50),
- EQUIPMENT("Cheeseburger", /obj/item/food/snacks/burger/cheese, 150),
- EQUIPMENT("Big Burger", /obj/item/food/snacks/burger/bigbite, 250),
- EQUIPMENT("Recycled Prisoner", /obj/item/food/snacks/soylentgreen, 500),
+ EQUIPMENT("Cheeseburger", /obj/item/food/burger/cheese, 150),
+ EQUIPMENT("Big Burger", /obj/item/food/burger/bigbite, 250),
+ EQUIPMENT("Recycled Prisoner", /obj/item/food/soylentgreen, 500),
EQUIPMENT("Crayons", /obj/item/storage/fancy/crayons, 350),
EQUIPMENT("Plushie", /obj/random/plushie, 750),
EQUIPMENT("Dnd set", /obj/item/storage/box/characters, 500),
diff --git a/code/modules/mob/hear_say.dm b/code/modules/mob/hear_say.dm
index e5a281851a0a..af923e9eaa4e 100644
--- a/code/modules/mob/hear_say.dm
+++ b/code/modules/mob/hear_say.dm
@@ -106,7 +106,7 @@
if(speaker == src)
for(var/datum/multilingual_say_piece/SP in message_pieces)
if(SP.speaking && SP.speaking.flags & INNATE)
- custom_emote(EMOTE_AUDIBLE, message_clean, TRUE)
+ emote("me", EMOTE_AUDIBLE, message_clean, TRUE)
return
if(!can_hear())
diff --git a/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm b/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm
index 34462f3f988b..6a43c6e32487 100644
--- a/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm
+++ b/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm
@@ -3,7 +3,7 @@
name = "alien"
icon_state = "alien_s"
- butcher_results = list(/obj/item/food/snacks/monstermeat/xenomeat = 5, /obj/item/stack/sheet/animalhide/xeno = 1)
+ butcher_results = list(/obj/item/food/monstermeat/xenomeat = 5, /obj/item/stack/sheet/animalhide/xeno = 1)
var/caste = ""
var/alt_icon = 'icons/mob/alienleap.dmi' //used to switch between the two alien icon files.
var/custom_pixel_x_offset = 0 //for admin fuckery.
diff --git a/code/modules/mob/living/carbon/alien/larva/larva.dm b/code/modules/mob/living/carbon/alien/larva/larva.dm
index 0432caf1ea8a..805d613b4afd 100644
--- a/code/modules/mob/living/carbon/alien/larva/larva.dm
+++ b/code/modules/mob/living/carbon/alien/larva/larva.dm
@@ -7,7 +7,7 @@
maxHealth = 25
health = 25
- butcher_results = list(/obj/item/food/snacks/monstermeat/xenomeat = 1)
+ butcher_results = list(/obj/item/food/monstermeat/xenomeat = 1)
density = FALSE
var/temperature_resistance = T0C+75
diff --git a/code/modules/mob/living/carbon/carbon_procs.dm b/code/modules/mob/living/carbon/carbon_procs.dm
index fb7f32cabd3c..1c92114c7582 100644
--- a/code/modules/mob/living/carbon/carbon_procs.dm
+++ b/code/modules/mob/living/carbon/carbon_procs.dm
@@ -1094,7 +1094,7 @@ GLOBAL_LIST_INIT(ventcrawl_machinery, list(/obj/machinery/atmospherics/unary/ven
return FALSE
var/fullness = nutrition + 10
- if(istype(to_eat, /obj/item/food/snacks))
+ if(istype(to_eat, /obj/item/food))
for(var/datum/reagent/consumable/C in reagents.reagent_list) // We add the nutrition value of what we're currently digesting
fullness += C.nutriment_factor * C.volume / (C.metabolization_rate * metabolism_efficiency)
diff --git a/code/modules/mob/living/carbon/human/human_defense.dm b/code/modules/mob/living/carbon/human/human_defense.dm
index 44ecca61d2b0..7ad0690d6d7d 100644
--- a/code/modules/mob/living/carbon/human/human_defense.dm
+++ b/code/modules/mob/living/carbon/human/human_defense.dm
@@ -462,7 +462,7 @@ emp_act
return FALSE
if(HAS_TRAIT(I, TRAIT_BUTCHERS_HUMANS) && stat == DEAD && user.a_intent == INTENT_HARM)
- var/obj/item/food/snacks/meat/human/newmeat = new /obj/item/food/snacks/meat/human(get_turf(loc))
+ var/obj/item/food/meat/human/newmeat = new /obj/item/food/meat/human(get_turf(loc))
newmeat.name = real_name + newmeat.name
newmeat.subjectname = real_name
newmeat.subjectjob = job
diff --git a/code/modules/mob/living/carbon/human/human_life.dm b/code/modules/mob/living/carbon/human/human_life.dm
index bbe2a63f4717..6da9324218fc 100644
--- a/code/modules/mob/living/carbon/human/human_life.dm
+++ b/code/modules/mob/living/carbon/human/human_life.dm
@@ -499,6 +499,65 @@
return min(1,thermal_protection)
+//This proc returns a number made up of the flags for body parts which you are protected on. (such as HEAD, UPPER_TORSO, LOWER_TORSO, etc. See setup.dm for the full list)
+/mob/living/carbon/human/proc/get_rad_protection_flags()
+ var/rad_protection_flags = 0
+ //Handle normal clothing
+ if(head)
+ if(head.flags_2 & RAD_PROTECT_CONTENTS_2)
+ rad_protection_flags |= head.body_parts_covered
+ if(wear_suit)
+ if(wear_suit.flags_2 & RAD_PROTECT_CONTENTS_2)
+ rad_protection_flags |= wear_suit.body_parts_covered
+ if(w_uniform)
+ if(w_uniform.flags_2 & RAD_PROTECT_CONTENTS_2)
+ rad_protection_flags |= w_uniform.body_parts_covered
+ if(shoes)
+ if(shoes.flags_2 & RAD_PROTECT_CONTENTS_2)
+ rad_protection_flags |= shoes.body_parts_covered
+ if(gloves)
+ if(gloves.flags_2 & RAD_PROTECT_CONTENTS_2)
+ rad_protection_flags |= gloves.body_parts_covered
+ if(wear_mask)
+ if(wear_mask.flags_2 & RAD_PROTECT_CONTENTS_2)
+ rad_protection_flags |= wear_mask.body_parts_covered
+
+ return rad_protection_flags
+
+/mob/living/carbon/human/proc/get_rad_protection()
+
+ if(HAS_TRAIT(src, TRAIT_RADIMMUNE))
+ return 1
+
+ var/rad_protection_flags = get_rad_protection_flags()
+
+ var/rad_protection = 0
+ if(rad_protection_flags)
+ if(rad_protection_flags & HEAD)
+ rad_protection += THERMAL_PROTECTION_HEAD //This is correct. This uses the same percent defines as thermal protection.
+ if(rad_protection_flags & UPPER_TORSO)
+ rad_protection += THERMAL_PROTECTION_UPPER_TORSO
+ if(rad_protection_flags & LOWER_TORSO)
+ rad_protection += THERMAL_PROTECTION_LOWER_TORSO
+ if(rad_protection_flags & LEG_LEFT)
+ rad_protection += THERMAL_PROTECTION_LEG_LEFT
+ if(rad_protection_flags & LEG_RIGHT)
+ rad_protection += THERMAL_PROTECTION_LEG_RIGHT
+ if(rad_protection_flags & FOOT_LEFT)
+ rad_protection += THERMAL_PROTECTION_FOOT_LEFT
+ if(rad_protection_flags & FOOT_RIGHT)
+ rad_protection += THERMAL_PROTECTION_FOOT_RIGHT
+ if(rad_protection_flags & ARM_LEFT)
+ rad_protection += THERMAL_PROTECTION_ARM_LEFT
+ if(rad_protection_flags & ARM_RIGHT)
+ rad_protection += THERMAL_PROTECTION_ARM_RIGHT
+ if(rad_protection_flags & HAND_LEFT)
+ rad_protection += THERMAL_PROTECTION_HAND_LEFT
+ if(rad_protection_flags & HAND_RIGHT)
+ rad_protection += THERMAL_PROTECTION_HAND_RIGHT
+
+
+ return min(1,rad_protection)
/mob/living/carbon/human/proc/get_covered_bodyparts()
var/covered = 0
diff --git a/code/modules/mob/living/carbon/human/human_update_icons.dm b/code/modules/mob/living/carbon/human/human_update_icons.dm
index bbacc1e6cd76..88c474d59995 100644
--- a/code/modules/mob/living/carbon/human/human_update_icons.dm
+++ b/code/modules/mob/living/carbon/human/human_update_icons.dm
@@ -564,6 +564,8 @@ GLOBAL_LIST_EMPTY(damage_icon_parts)
update_fire()
update_icons()
update_emissive_block()
+ if(player_logged) //make sure the SSD overlay stays
+ overlays += image('icons/effects/effects.dmi', icon_state = "zzz_glow")
/* --------------------------------------- */
//vvvvvv UPDATE_INV PROCS vvvvvv
diff --git a/code/modules/mob/living/carbon/human/species/_species.dm b/code/modules/mob/living/carbon/human/species/_species.dm
index 0b13b6f7d3a3..28cc9cf6133b 100644
--- a/code/modules/mob/living/carbon/human/species/_species.dm
+++ b/code/modules/mob/living/carbon/human/species/_species.dm
@@ -1168,3 +1168,7 @@ It'll return null if the organ doesn't correspond, so include null checks when u
add_attack_logs(user, target, "vampirebit")
return TRUE
//end vampire codes
+
+/// Is this species able to be legion infested?
+/datum/species/proc/can_be_legion_infested()
+ return TRUE
diff --git a/code/modules/mob/living/carbon/human/species/golem.dm b/code/modules/mob/living/carbon/human/species/golem.dm
index da0b3470b65b..478646c32889 100644
--- a/code/modules/mob/living/carbon/human/species/golem.dm
+++ b/code/modules/mob/living/carbon/human/species/golem.dm
@@ -707,6 +707,9 @@
new /obj/structure/cloth_pile(get_turf(H), H)
..()
+/datum/species/golem/cloth/can_be_legion_infested()
+ return FALSE // can't infest a pile of cloth,
+
/obj/structure/cloth_pile
name = "pile of bandages"
desc = "It emits a strange aura, as if there was still life within it..."
diff --git a/code/modules/mob/living/carbon/human/species/monkey.dm b/code/modules/mob/living/carbon/human/species/monkey.dm
index e632f68c3f6f..cbb59cf0f040 100644
--- a/code/modules/mob/living/carbon/human/species/monkey.dm
+++ b/code/modules/mob/living/carbon/human/species/monkey.dm
@@ -64,7 +64,7 @@
..()
H.real_name = get_random_name()
H.name = H.real_name
- H.butcher_results = list(/obj/item/food/snacks/meat/monkey = 5)
+ H.butcher_results = list(/obj/item/food/meat/monkey = 5)
/datum/species/monkey/handle_dna(mob/living/carbon/human/H, remove)
..()
diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm
index ddd641ccefb6..c9cf61fc8a4a 100644
--- a/code/modules/mob/living/living.dm
+++ b/code/modules/mob/living/living.dm
@@ -1056,11 +1056,13 @@
amount -= RAD_BACKGROUND_RADIATION // This will always be at least 1 because of how skin protection is calculated
var/blocked = getarmor(null, RAD)
-
+ if(blocked == INFINITY) // Full protection, go no further.
+ return
if(amount > RAD_BURN_THRESHOLD)
apply_damage(RAD_BURN_CURVE(amount), BURN, null, blocked)
- apply_effect((amount * RAD_MOB_COEFFICIENT) / max(1, (radiation ** 2) * RAD_OVERDOSE_REDUCTION), IRRADIATE, blocked)
+
+ apply_effect((amount * RAD_MOB_COEFFICIENT) / max(1, (radiation ** 2) * RAD_OVERDOSE_REDUCTION), IRRADIATE, ARMOUR_VALUE_TO_PERCENTAGE(blocked))
/mob/living/proc/fakefireextinguish()
return
@@ -1160,3 +1162,7 @@
if(istype(mover, /obj/singularity/energy_ball))
dust()
return ..()
+
+/// Can a mob interact with the apc remotely like a pulse demon, cyborg, or AI?
+/mob/living/proc/can_remote_apc_interface(obj/machinery/power/apc/ourapc)
+ return FALSE
diff --git a/code/modules/mob/living/living_defense.dm b/code/modules/mob/living/living_defense.dm
index 54b2220f82fb..13b6818105d6 100644
--- a/code/modules/mob/living/living_defense.dm
+++ b/code/modules/mob/living/living_defense.dm
@@ -299,10 +299,7 @@
for(var/obj/item/grab/G in grabbed_by)
if(G.assailant == user)
- if(holder_type) // SS220 EDIT START
- get_scooped(user)
- else
- to_chat(user, "Вы уже схватили [src.name].") // SS220 EDIT END
+ to_chat(user, "You already grabbed [src].")
return
add_attack_logs(user, src, "Grabbed passively", ATKLOG_ALL)
diff --git a/code/modules/mob/living/silicon/ai/ai_mob.dm b/code/modules/mob/living/silicon/ai/ai_mob.dm
index 7c2f24e244a5..965062ff0381 100644
--- a/code/modules/mob/living/silicon/ai/ai_mob.dm
+++ b/code/modules/mob/living/silicon/ai/ai_mob.dm
@@ -960,11 +960,13 @@ GLOBAL_LIST_INIT(ai_verbs_default, list(
// I would love to scope this locally to the AI class, however its used by holopads as well
// I wish we had nice OOP -aa07
-/proc/getHologramIcon(icon/A, safety = TRUE) // If safety is on, a new icon is not created.
+// hi squidward I'm stealing this for a space ruin -qwerty
+/proc/getHologramIcon(icon/A, safety = TRUE, colour = rgb(125, 180, 225), opacity = 0.5, colour_blocking = FALSE) // If safety is on, a new icon is not created.
var/icon/flat_icon = safety ? A : new(A) // Has to be a new icon to not constantly change the same icon.
var/icon/alpha_mask
- flat_icon.ColorTone(rgb(125,180,225)) // Let's make it bluish.
- flat_icon.ChangeOpacity(0.5) // Make it half transparent.
+ if(colour && !colour_blocking)
+ flat_icon.ColorTone(colour) // Let's make it bluish.
+ flat_icon.ChangeOpacity(opacity) // Make it half transparent.
if(A.Height() == 64)
alpha_mask = new('icons/mob/ancient_machine.dmi', "scanline2") //Scaline for tall icons.
@@ -1519,6 +1521,13 @@ GLOBAL_LIST_INIT(ai_verbs_default, list(
return FALSE
return TRUE
+/mob/living/silicon/ai/can_remote_apc_interface(obj/machinery/power/apc/ourapc)
+ if(ourapc.hacked_by_ruin_AI || ourapc.aidisabled)
+ return FALSE
+ if(ourapc.malfhack && istype(ourapc.malfai) && (ourapc.malfai != src && ourapc.malfai != parent))
+ return FALSE
+ return TRUE
+
/mob/living/silicon/ai/proc/blurb_it()
addtimer(CALLBACK(src, TYPE_PROC_REF(/mob/living/silicon/ai, show_ai_blurb)), 1 SECONDS)
diff --git a/code/modules/mob/living/silicon/robot/robot_mob.dm b/code/modules/mob/living/silicon/robot/robot_mob.dm
index d0600355387a..ed52c535fed8 100644
--- a/code/modules/mob/living/silicon/robot/robot_mob.dm
+++ b/code/modules/mob/living/silicon/robot/robot_mob.dm
@@ -63,8 +63,8 @@ GLOBAL_LIST_INIT(robot_verbs_default, list(
var/emagged = FALSE
/// Can the robot be emagged?
var/is_emaggable = TRUE
- /// Is the robot protected from the visual portion of flashbangs and flashes(1)? Are they protected from laser pointer (2)?
- var/eye_protection = 0
+ /// Is the robot protected from the visual portion of flashbangs and flashes?
+ var/eye_protection = FALSE
/// Is the robot protected from the audio component of flashbangs? Prevents inflicting confusion.
var/ear_protection = FALSE
/// All incoming damage has this number subtracted from it.
@@ -1500,7 +1500,7 @@ GLOBAL_LIST_INIT(robot_verbs_default, list(
req_one_access = list(ACCESS_CENT_SPECOPS)
ionpulse = TRUE
pdahide = TRUE
- eye_protection = 2 // Immunity to flashes and the visual part of flashbangs
+ eye_protection = TRUE // Immunity to flashes and the visual part of flashbangs
ear_protection = TRUE // Immunity to the audio part of flashbangs
damage_protection = 10 // Reduce all incoming damage by this number
allow_rename = FALSE
@@ -1592,7 +1592,7 @@ GLOBAL_LIST_INIT(robot_verbs_default, list(
req_one_access = list(ACCESS_CENT_SPECOPS)
ionpulse = TRUE
pdahide = TRUE
- eye_protection = 2 // Immunity to flashes and the visual part of flashbangs
+ eye_protection = TRUE // Immunity to flashes and the visual part of flashbangs
ear_protection = TRUE // Immunity to the audio part of flashbangs
emp_protection = TRUE // Immunity to EMP, due to heavy shielding
damage_protection = 20 // Reduce all incoming damage by this number. Very high in the case of /destroyer borgs, since it is an admin-only borg.
@@ -1763,3 +1763,13 @@ GLOBAL_LIST_INIT(robot_verbs_default, list(
if(!cell)
return externally_powered
return cell.is_powered() || externally_powered
+
+/mob/living/silicon/robot/can_be_flashed(intensity, override_blindness_check)
+ return eye_protection
+
+/mob/living/silicon/robot/can_remote_apc_interface(obj/machinery/power/apc/ourapc)
+ if(ourapc.hacked_by_ruin_AI || ourapc.aidisabled)
+ return FALSE
+ if(ourapc.malfai && !(src in ourapc.malfai.connected_robots))
+ return FALSE
+ return TRUE
diff --git a/code/modules/mob/living/simple_animal/bot/mulebot.dm b/code/modules/mob/living/simple_animal/bot/mulebot.dm
index 1216277afe60..368f9914c4b7 100644
--- a/code/modules/mob/living/simple_animal/bot/mulebot.dm
+++ b/code/modules/mob/living/simple_animal/bot/mulebot.dm
@@ -27,6 +27,10 @@
bot_purpose = "deliver crates and other packages between departments, as requested"
req_access = list(ACCESS_CARGO)
+ /// The maximum amount of tiles the MULE can search via SSpathfinder before giving up.
+ /// Stored as a variable to allow VVing if there's any weirdness.
+ var/maximum_pathfind_range = 350
+
suffix = ""
@@ -606,7 +610,7 @@
// given an optional turf to avoid
/mob/living/simple_animal/bot/mulebot/calc_path(turf/avoid = null)
check_bot_access()
- set_path(get_path_to(src, target, 250, access = access_card.access, exclude = avoid))
+ set_path(get_path_to(src, target, max_distance = maximum_pathfind_range, access = access_card.access, exclude = avoid))
// sets the current destination
// signals all beacons matching the delivery code
diff --git a/code/modules/mob/living/simple_animal/constructs.dm b/code/modules/mob/living/simple_animal/constructs.dm
index e972445cda12..cdb8d9cb0003 100644
--- a/code/modules/mob/living/simple_animal/constructs.dm
+++ b/code/modules/mob/living/simple_animal/constructs.dm
@@ -22,7 +22,7 @@
pressure_resistance = 100
universal_speak = TRUE
AIStatus = AI_OFF //normal constructs don't have AI
- loot = list(/obj/item/food/snacks/ectoplasm)
+ loot = list(/obj/item/food/ectoplasm)
del_on_death = TRUE
deathmessage = "collapses in a shattered heap."
var/construct_type = "shade"
diff --git a/code/modules/mob/living/simple_animal/friendly/bunny.dm b/code/modules/mob/living/simple_animal/friendly/bunny.dm
index 09d55362d9fb..38a58be7f5f4 100644
--- a/code/modules/mob/living/simple_animal/friendly/bunny.dm
+++ b/code/modules/mob/living/simple_animal/friendly/bunny.dm
@@ -12,7 +12,7 @@
see_in_dark = 6
maxHealth = 10
health = 10
- butcher_results = list(/obj/item/food/snacks/meat = 1)
+ butcher_results = list(/obj/item/food/meat = 1)
response_help = "pets"
response_disarm = "gently pushes aside"
response_harm = "kicks"
diff --git a/code/modules/mob/living/simple_animal/friendly/butterfly.dm b/code/modules/mob/living/simple_animal/friendly/butterfly.dm
index 4489fc9be898..ba878cd423e3 100644
--- a/code/modules/mob/living/simple_animal/friendly/butterfly.dm
+++ b/code/modules/mob/living/simple_animal/friendly/butterfly.dm
@@ -21,7 +21,7 @@
ventcrawler = VENTCRAWLER_ALWAYS
mob_size = MOB_SIZE_TINY
mob_biotypes = MOB_ORGANIC | MOB_BUG
- butcher_results = list(/obj/item/food/snacks/meat = 0)
+ butcher_results = list(/obj/item/food/meat = 0)
gold_core_spawnable = FRIENDLY_SPAWN
/mob/living/simple_animal/butterfly/Initialize(mapload) //Not the poor butterfly!
diff --git a/code/modules/mob/living/simple_animal/friendly/cat.dm b/code/modules/mob/living/simple_animal/friendly/cat.dm
index 36e23eeb11c5..5e8d62ee95d7 100644
--- a/code/modules/mob/living/simple_animal/friendly/cat.dm
+++ b/code/modules/mob/living/simple_animal/friendly/cat.dm
@@ -17,7 +17,7 @@
mob_size = MOB_SIZE_SMALL
animal_species = /mob/living/simple_animal/pet/cat
childtype = list(/mob/living/simple_animal/pet/cat/kitten)
- butcher_results = list(/obj/item/food/snacks/meat = 3)
+ butcher_results = list(/obj/item/food/meat = 3)
response_help = "pets"
response_disarm = "gently pushes aside"
response_harm = "kicks"
@@ -233,8 +233,8 @@
butcher_results = list(
/obj/item/organ/internal/brain = 1,
/obj/item/organ/internal/heart = 1,
- /obj/item/food/snacks/birthdaycakeslice = 3,
- /obj/item/food/snacks/meat/slab = 2
+ /obj/item/food/birthdaycakeslice = 3,
+ /obj/item/food/meat/slab = 2
)
response_harm = "takes a bite out of"
attacked_sound = "sound/items/eatfood.ogg"
@@ -254,7 +254,7 @@
final_bites = 0
if(health < maxHealth)
adjustBruteLoss(-4)
- for(var/obj/item/food/snacks/donut/D in range(1, src))
+ for(var/obj/item/food/donut/D in range(1, src))
if(D.icon_state != "donut2")
D.name = "frosted donut"
D.icon_state = "donut2"
diff --git a/code/modules/mob/living/simple_animal/friendly/crab.dm b/code/modules/mob/living/simple_animal/friendly/crab.dm
index 1e3b6089f8ac..97fc1d35055f 100644
--- a/code/modules/mob/living/simple_animal/friendly/crab.dm
+++ b/code/modules/mob/living/simple_animal/friendly/crab.dm
@@ -10,7 +10,7 @@
emote_see = list("clacks")
speak_chance = 1
turns_per_move = 5
- butcher_results = list(/obj/item/food/snacks/meat = 1)
+ butcher_results = list(/obj/item/food/meat = 1)
response_help = "pets"
response_disarm = "gently pushes aside"
response_harm = "stomps"
diff --git a/code/modules/mob/living/simple_animal/friendly/deer.dm b/code/modules/mob/living/simple_animal/friendly/deer.dm
index 745bede98981..3bba3bfeeba9 100644
--- a/code/modules/mob/living/simple_animal/friendly/deer.dm
+++ b/code/modules/mob/living/simple_animal/friendly/deer.dm
@@ -11,7 +11,7 @@
speak_chance = 1
turns_per_move = 5
see_in_dark = 0 //I'm so funny
- butcher_results = list(/obj/item/food/snacks/meat = 4)
+ butcher_results = list(/obj/item/food/meat = 4)
response_help = "pets"
response_disarm = "gently pushes aside"
response_harm = "kicks"
diff --git a/code/modules/mob/living/simple_animal/friendly/diona_nymph.dm b/code/modules/mob/living/simple_animal/friendly/diona_nymph.dm
index ec8c532b4510..1637a02c8ce3 100644
--- a/code/modules/mob/living/simple_animal/friendly/diona_nymph.dm
+++ b/code/modules/mob/living/simple_animal/friendly/diona_nymph.dm
@@ -213,7 +213,7 @@
return TRUE
// Consumes plant matter other than weeds to evolve
-/mob/living/simple_animal/diona/proc/consume(obj/item/food/snacks/grown/G)
+/mob/living/simple_animal/diona/proc/consume(obj/item/food/grown/G)
if(nutrition >= nutrition_need) // Prevents griefing by overeating plant items without evolving.
to_chat(src, "You're too full to consume this! Perhaps it's time to grow bigger...")
else
diff --git a/code/modules/mob/living/simple_animal/friendly/dog.dm b/code/modules/mob/living/simple_animal/friendly/dog.dm
index 6c18de8aafa2..bb4635466d1a 100644
--- a/code/modules/mob/living/simple_animal/friendly/dog.dm
+++ b/code/modules/mob/living/simple_animal/friendly/dog.dm
@@ -70,7 +70,7 @@
icon_state = "corgi"
icon_living = "corgi"
icon_dead = "corgi_dead"
- butcher_results = list(/obj/item/food/snacks/meat/corgi = 3, /obj/item/stack/sheet/animalhide/corgi = 1)
+ butcher_results = list(/obj/item/food/meat/corgi = 3, /obj/item/stack/sheet/animalhide/corgi = 1)
childtype = list(/mob/living/simple_animal/pet/dog/corgi/puppy = 95, /mob/living/simple_animal/pet/dog/corgi/puppy/void = 5)
animal_species = /mob/living/simple_animal/pet/dog
collar_type = "corgi"
@@ -435,7 +435,7 @@
stop_automated_movement = FALSE
var/obj/item/possible_target = null
for(var/I in snack_range)
- if(istype(I, /obj/item/food/snacks)) // Noms
+ if(istype(I, /obj/item/food)) // Noms
possible_target = I
break
else if(istype(I, /obj/item/paper)) // Important noms
@@ -652,7 +652,7 @@
icon_state = "pug"
icon_living = "pug"
icon_dead = "pug_dead"
- butcher_results = list(/obj/item/food/snacks/meat/pug = 3)
+ butcher_results = list(/obj/item/food/meat/pug = 3)
collar_type = "pug"
/mob/living/simple_animal/pet/dog/pug/handle_automated_movement()
diff --git a/code/modules/mob/living/simple_animal/friendly/farm_animals.dm b/code/modules/mob/living/simple_animal/friendly/farm_animals.dm
index 451bf2ee0f75..e8064e07b772 100644
--- a/code/modules/mob/living/simple_animal/friendly/farm_animals.dm
+++ b/code/modules/mob/living/simple_animal/friendly/farm_animals.dm
@@ -12,7 +12,7 @@
speak_chance = 1
turns_per_move = 5
see_in_dark = 6
- butcher_results = list(/obj/item/food/snacks/meat = 4)
+ butcher_results = list(/obj/item/food/meat = 4)
response_help = "pets"
response_disarm = "gently pushes aside"
response_harm = "kicks"
@@ -122,7 +122,7 @@
speak_chance = 1
turns_per_move = 5
see_in_dark = 6
- butcher_results = list(/obj/item/food/snacks/meat/slab = 6)
+ butcher_results = list(/obj/item/food/meat/slab = 6)
response_help = "pets"
response_disarm = "gently pushes aside"
response_harm = "kicks"
@@ -202,7 +202,7 @@
density = FALSE
speak_chance = 2
turns_per_move = 2
- butcher_results = list(/obj/item/food/snacks/meat/chicken = 1)
+ butcher_results = list(/obj/item/food/meat/chicken = 1)
response_help = "pets"
response_disarm = "gently pushes aside"
response_harm = "kicks"
@@ -267,9 +267,9 @@ GLOBAL_VAR_INIT(chicken_count, 0)
density = FALSE
speak_chance = 2
turns_per_move = 3
- butcher_results = list(/obj/item/food/snacks/meat/chicken = 2)
- var/egg_type = /obj/item/food/snacks/egg
- var/food_type = /obj/item/food/snacks/grown/wheat
+ butcher_results = list(/obj/item/food/meat/chicken = 2)
+ var/egg_type = /obj/item/food/egg
+ var/food_type = /obj/item/food/grown/wheat
response_help = "pets"
response_disarm = "gently pushes aside"
response_harm = "kicks"
@@ -341,7 +341,7 @@ GLOBAL_VAR_INIT(chicken_count, 0)
if(GLOB.chicken_count < MAX_CHICKENS && prob(25))
START_PROCESSING(SSobj, E)
-/obj/item/food/snacks/egg/process()
+/obj/item/food/egg/process()
if(isturf(loc))
amount_grown += rand(1,2)
if(amount_grown >= 100)
@@ -392,7 +392,7 @@ GLOBAL_VAR_INIT(chicken_count, 0)
speak_chance = 1
turns_per_move = 5
see_in_dark = 6
- butcher_results = list(/obj/item/food/snacks/meat/ham = 6)
+ butcher_results = list(/obj/item/food/meat/ham = 6)
response_help = "pets"
response_disarm = "gently pushes aside"
response_harm = "kicks"
@@ -418,7 +418,7 @@ GLOBAL_VAR_INIT(chicken_count, 0)
speak_chance = 1
turns_per_move = 5
see_in_dark = 6
- butcher_results = list(/obj/item/food/snacks/meat = 4)
+ butcher_results = list(/obj/item/food/meat = 4)
response_help = "pets"
response_disarm = "gently pushes aside"
response_harm = "kicks"
@@ -443,7 +443,7 @@ GLOBAL_VAR_INIT(chicken_count, 0)
speak_chance = 1
turns_per_move = 5
see_in_dark = 6
- butcher_results = list(/obj/item/food/snacks/meat = 6)
+ butcher_results = list(/obj/item/food/meat = 6)
response_help = "pets"
response_disarm = "gently pushes aside"
response_harm = "kicks"
@@ -468,7 +468,7 @@ GLOBAL_VAR_INIT(chicken_count, 0)
speak_chance = 1
turns_per_move = 5
see_in_dark = 6
- butcher_results = list(/obj/item/food/snacks/meat = 6)
+ butcher_results = list(/obj/item/food/meat = 6)
response_help = "pets"
response_disarm = "gently pushes aside"
response_harm = "kicks"
@@ -493,7 +493,7 @@ GLOBAL_VAR_INIT(chicken_count, 0)
speak_chance = 1
turns_per_move = 5
see_in_dark = 6
- butcher_results = list(/obj/item/food/snacks/meat = 6)
+ butcher_results = list(/obj/item/food/meat = 6)
response_help = "pets"
response_disarm = "gently pushes aside"
response_harm = "kicks"
diff --git a/code/modules/mob/living/simple_animal/friendly/fox.dm b/code/modules/mob/living/simple_animal/friendly/fox.dm
index 329d43fb7d06..a0ce051ac0fc 100644
--- a/code/modules/mob/living/simple_animal/friendly/fox.dm
+++ b/code/modules/mob/living/simple_animal/friendly/fox.dm
@@ -13,7 +13,7 @@
speak_chance = 1
turns_per_move = 5
see_in_dark = 6
- butcher_results = list(/obj/item/food/snacks/meat = 3)
+ butcher_results = list(/obj/item/food/meat = 3)
response_help = "pets"
response_disarm = "gently pushes aside"
response_harm = "kicks"
diff --git a/code/modules/mob/living/simple_animal/friendly/lizard.dm b/code/modules/mob/living/simple_animal/friendly/lizard.dm
index 1203cc7a72f9..dca520184177 100644
--- a/code/modules/mob/living/simple_animal/friendly/lizard.dm
+++ b/code/modules/mob/living/simple_animal/friendly/lizard.dm
@@ -22,7 +22,7 @@
mob_size = MOB_SIZE_SMALL
can_hide = TRUE
pass_door_while_hidden = TRUE
- butcher_results = list(/obj/item/food/snacks/meat = 1)
+ butcher_results = list(/obj/item/food/meat = 1)
can_collar = TRUE
mob_biotypes = MOB_ORGANIC | MOB_BEAST | MOB_REPTILE
gold_core_spawnable = FRIENDLY_SPAWN
diff --git a/code/modules/mob/living/simple_animal/friendly/mouse.dm b/code/modules/mob/living/simple_animal/friendly/mouse.dm
index f6e67037be3f..04ba1742b51b 100644
--- a/code/modules/mob/living/simple_animal/friendly/mouse.dm
+++ b/code/modules/mob/living/simple_animal/friendly/mouse.dm
@@ -16,7 +16,7 @@
see_in_dark = 6
maxHealth = 5
health = 5
- butcher_results = list(/obj/item/food/snacks/meat = 1)
+ butcher_results = list(/obj/item/food/meat = 1)
response_help = "pets"
response_disarm = "gently pushes aside"
response_harm = "stamps on"
@@ -92,7 +92,7 @@
..()
/mob/living/simple_animal/mouse/start_pulling(atom/movable/AM, state, force = pull_force, show_message = FALSE)//Prevents mouse from pulling things
- if(istype(AM, /obj/item/food/snacks/cheesewedge))
+ if(istype(AM, /obj/item/food/cheesewedge))
return ..() // Get dem
if(show_message)
to_chat(src, "You are too small to pull anything except cheese.")
diff --git a/code/modules/mob/living/simple_animal/friendly/nian_caterpillar.dm b/code/modules/mob/living/simple_animal/friendly/nian_caterpillar.dm
index 40dcd027033b..166b06f23e36 100644
--- a/code/modules/mob/living/simple_animal/friendly/nian_caterpillar.dm
+++ b/code/modules/mob/living/simple_animal/friendly/nian_caterpillar.dm
@@ -10,7 +10,7 @@
mob_size = MOB_SIZE_SMALL
ventcrawler = VENTCRAWLER_ALWAYS
atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0)
- butcher_results = list(/obj/item/food/snacks/meat = 1)
+ butcher_results = list(/obj/item/food/meat = 1)
minbodytemp = 0
blood_color = "#b9ae9c"
@@ -102,7 +102,7 @@
qdel(src)
return TRUE
-/mob/living/simple_animal/nian_caterpillar/proc/consume(obj/item/food/snacks/G)
+/mob/living/simple_animal/nian_caterpillar/proc/consume(obj/item/food/G)
if(nutrition >= nutrition_need) // Prevents griefing by overeating food items without evolving.
return to_chat(src, "You're too full to consume this! Perhaps it's time to grow bigger...")
visible_message("[src] ravenously consumes [G].", "You ravenously devour [G].")
diff --git a/code/modules/mob/living/simple_animal/friendly/sloth.dm b/code/modules/mob/living/simple_animal/friendly/sloth.dm
index 0f094e9d81a8..1f911f1a10db 100644
--- a/code/modules/mob/living/simple_animal/friendly/sloth.dm
+++ b/code/modules/mob/living/simple_animal/friendly/sloth.dm
@@ -13,7 +13,7 @@
faction = list("neutral", "jungle")
speak_chance = 1
turns_per_move = 5
- butcher_results = list(/obj/item/food/snacks/meat = 3)
+ butcher_results = list(/obj/item/food/meat = 3)
response_help = "pets"
response_disarm = "gently pushes aside"
response_harm = "kicks"
diff --git a/code/modules/mob/living/simple_animal/hostile/alien_types.dm b/code/modules/mob/living/simple_animal/hostile/alien_types.dm
index aacb7a71810c..b08d371a9342 100644
--- a/code/modules/mob/living/simple_animal/hostile/alien_types.dm
+++ b/code/modules/mob/living/simple_animal/hostile/alien_types.dm
@@ -11,7 +11,7 @@
response_disarm = "shoves"
response_harm = "hits"
speed = 0
- butcher_results = list(/obj/item/food/snacks/monstermeat/xenomeat= 3, /obj/item/stack/sheet/animalhide/xeno = 1)
+ butcher_results = list(/obj/item/food/monstermeat/xenomeat= 3, /obj/item/stack/sheet/animalhide/xeno = 1)
maxHealth = 125
health = 125
harm_intent_damage = 5
@@ -92,7 +92,7 @@
retreat_distance = 5
minimum_distance = 5
move_to_delay = 4
- butcher_results = list(/obj/item/food/snacks/monstermeat/xenomeat= 4, /obj/item/stack/sheet/animalhide/xeno = 1)
+ butcher_results = list(/obj/item/food/monstermeat/xenomeat= 4, /obj/item/stack/sheet/animalhide/xeno = 1)
projectiletype = /obj/item/projectile/neurotox
projectilesound = 'sound/weapons/pierce.ogg'
status_flags = 0
@@ -140,7 +140,7 @@
move_to_delay = 4
maxHealth = 400
health = 400
- butcher_results = list(/obj/item/food/snacks/monstermeat/xenomeat= 10, /obj/item/stack/sheet/animalhide/xeno = 2)
+ butcher_results = list(/obj/item/food/monstermeat/xenomeat= 10, /obj/item/stack/sheet/animalhide/xeno = 2)
mob_size = MOB_SIZE_LARGE
/obj/item/projectile/neurotox
diff --git a/code/modules/mob/living/simple_animal/hostile/bat.dm b/code/modules/mob/living/simple_animal/hostile/bat.dm
index c0d064319dd4..1604aab392e1 100644
--- a/code/modules/mob/living/simple_animal/hostile/bat.dm
+++ b/code/modules/mob/living/simple_animal/hostile/bat.dm
@@ -9,7 +9,7 @@
mob_biotypes = MOB_ORGANIC | MOB_BEAST
speak_chance = 0
turns_per_move = 3
- butcher_results = list(/obj/item/food/snacks/meat = 1)
+ butcher_results = list(/obj/item/food/meat = 1)
response_help = "pets"
response_disarm = "gently pushes aside"
response_harm = "hits"
diff --git a/code/modules/mob/living/simple_animal/hostile/bear.dm b/code/modules/mob/living/simple_animal/hostile/bear.dm
index 6ed8a93ac389..2172fa667ead 100644
--- a/code/modules/mob/living/simple_animal/hostile/bear.dm
+++ b/code/modules/mob/living/simple_animal/hostile/bear.dm
@@ -14,7 +14,7 @@
speak_chance = 1
turns_per_move = 5
see_in_dark = 6
- butcher_results = list(/obj/item/food/snacks/monstermeat/bearmeat = 5, /obj/item/clothing/head/bearpelt = 1)
+ butcher_results = list(/obj/item/food/monstermeat/bearmeat = 5, /obj/item/clothing/head/bearpelt = 1)
response_help = "pets"
response_disarm = "gently pushes aside"
response_harm = "hits"
@@ -44,14 +44,14 @@
icon_state = "black_bear"
icon_living = "black_bear"
icon_dead = "black_bear_dead"
- butcher_results = list(/obj/item/food/snacks/monstermeat/bearmeat = 5, /obj/item/clothing/head/bearpelt/black = 1)
+ butcher_results = list(/obj/item/food/monstermeat/bearmeat = 5, /obj/item/clothing/head/bearpelt/black = 1)
/mob/living/simple_animal/hostile/bear/brown
name = "brown bear"
icon_state = "brown_bear"
icon_living = "brown_bear"
icon_dead = "brown_bear_dead"
- butcher_results = list(/obj/item/food/snacks/monstermeat/bearmeat = 5, /obj/item/clothing/head/bearpelt/brown = 1)
+ butcher_results = list(/obj/item/food/monstermeat/bearmeat = 5, /obj/item/clothing/head/bearpelt/brown = 1)
/mob/living/simple_animal/hostile/bear/polar
name = "polar bear"
@@ -59,7 +59,7 @@
icon_state = "polar_bear"
icon_living = "polar_bear"
icon_dead = "polar_bear_dead"
- butcher_results = list(/obj/item/food/snacks/monstermeat/bearmeat = 5, /obj/item/clothing/head/bearpelt/polar = 1)
+ butcher_results = list(/obj/item/food/monstermeat/bearmeat = 5, /obj/item/clothing/head/bearpelt/polar = 1)
//SPACE BEARS! SQUEEEEEEEE~ OW! FUCK! IT BIT MY HAND OFF!!
/mob/living/simple_animal/hostile/bear/Hudson
@@ -68,7 +68,7 @@
icon_state = "combat_bear"
icon_living = "combat_bear"
icon_dead = "combat_bear_dead"
- butcher_results = list(/obj/item/food/snacks/monstermeat/bearmeat = 5, /obj/item/clothing/head/bearpelt/brown = 1)
+ butcher_results = list(/obj/item/food/monstermeat/bearmeat = 5, /obj/item/clothing/head/bearpelt/brown = 1)
/mob/living/simple_animal/hostile/bear/Hudson/Initialize(mapload)
. = ..()
diff --git a/code/modules/mob/living/simple_animal/hostile/carp.dm b/code/modules/mob/living/simple_animal/hostile/carp.dm
index 5b6eb1a47025..2f402fbe4446 100644
--- a/code/modules/mob/living/simple_animal/hostile/carp.dm
+++ b/code/modules/mob/living/simple_animal/hostile/carp.dm
@@ -11,7 +11,7 @@
mob_biotypes = MOB_ORGANIC | MOB_BEAST
speak_chance = 0
turns_per_move = 5
- butcher_results = list(/obj/item/food/snacks/carpmeat = 2)
+ butcher_results = list(/obj/item/food/carpmeat = 2)
response_help = "pets"
response_disarm = "gently pushes aside"
response_harm = "hits"
diff --git a/code/modules/mob/living/simple_animal/hostile/feral_cat.dm b/code/modules/mob/living/simple_animal/hostile/feral_cat.dm
index 3f8204a152e3..4fe530dd62ea 100644
--- a/code/modules/mob/living/simple_animal/hostile/feral_cat.dm
+++ b/code/modules/mob/living/simple_animal/hostile/feral_cat.dm
@@ -18,7 +18,7 @@
speak_chance = 1
turns_per_move = 5
see_in_dark = 6
- butcher_results = list(/obj/item/food/snacks/meat/slab = 2)
+ butcher_results = list(/obj/item/food/meat/slab = 2)
response_help = "pets"
response_disarm = "gently pushes aside"
response_harm = "kicks"
diff --git a/code/modules/mob/living/simple_animal/hostile/giant_spider.dm b/code/modules/mob/living/simple_animal/hostile/giant_spider.dm
index 5bf5fd48a314..e492428dacc9 100644
--- a/code/modules/mob/living/simple_animal/hostile/giant_spider.dm
+++ b/code/modules/mob/living/simple_animal/hostile/giant_spider.dm
@@ -14,7 +14,7 @@
see_in_dark = 8
lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_VISIBLE
footstep_type = FOOTSTEP_MOB_CLAW
- butcher_results = list(/obj/item/food/snacks/monstermeat/spidermeat = 2, /obj/item/food/snacks/monstermeat/spiderleg = 8)
+ butcher_results = list(/obj/item/food/monstermeat/spidermeat = 2, /obj/item/food/monstermeat/spiderleg = 8)
response_help = "pets"
response_disarm = "gently pushes aside"
response_harm = "hits"
@@ -65,7 +65,7 @@
icon_state = "nurse"
icon_living = "nurse"
icon_dead = "nurse_dead"
- butcher_results = list(/obj/item/food/snacks/monstermeat/spidermeat = 2, /obj/item/food/snacks/monstermeat/spiderleg = 8, /obj/item/food/snacks/monstermeat/spidereggs = 4)
+ butcher_results = list(/obj/item/food/monstermeat/spidermeat = 2, /obj/item/food/monstermeat/spiderleg = 8, /obj/item/food/monstermeat/spidereggs = 4)
maxHealth = 40
health = 40
diff --git a/code/modules/mob/living/simple_animal/hostile/gorilla/gorilla.dm b/code/modules/mob/living/simple_animal/hostile/gorilla/gorilla.dm
index 9f8acaacb5c6..351365207bbf 100644
--- a/code/modules/mob/living/simple_animal/hostile/gorilla/gorilla.dm
+++ b/code/modules/mob/living/simple_animal/hostile/gorilla/gorilla.dm
@@ -9,7 +9,7 @@
speak_chance = 80
maxHealth = 220
health = 220
- butcher_results = list(/obj/item/food/snacks/meat/slab/gorilla = 4)
+ butcher_results = list(/obj/item/food/meat/slab/gorilla = 4)
response_help = "prods"
response_disarm = "challenges"
response_harm = "thumps"
diff --git a/code/modules/mob/living/simple_animal/hostile/hostile.dm b/code/modules/mob/living/simple_animal/hostile/hostile.dm
index 4c3cf14fd3fe..b94de5402a04 100644
--- a/code/modules/mob/living/simple_animal/hostile/hostile.dm
+++ b/code/modules/mob/living/simple_animal/hostile/hostile.dm
@@ -334,7 +334,7 @@
/mob/living/simple_animal/hostile/proc/Aggro()
vision_range = aggro_vision_range
if(target && length(emote_taunt) && prob(taunt_chance))
- custom_emote(EMOTE_VISIBLE, "[pick(emote_taunt)] at [target].")
+ emote("me", EMOTE_VISIBLE, "[pick(emote_taunt)] at [target].")
taunt_chance = max(taunt_chance-7,2)
/mob/living/simple_animal/hostile/proc/LoseAggro()
diff --git a/code/modules/mob/living/simple_animal/hostile/jungle_animals.dm b/code/modules/mob/living/simple_animal/hostile/jungle_animals.dm
index b81f9c2dff4a..16220e1d5609 100644
--- a/code/modules/mob/living/simple_animal/hostile/jungle_animals.dm
+++ b/code/modules/mob/living/simple_animal/hostile/jungle_animals.dm
@@ -14,7 +14,7 @@
mob_biotypes = MOB_ORGANIC | MOB_BEAST
speak_chance = 0
turns_per_move = 3
- butcher_results = list(/obj/item/food/snacks/meat = 3)
+ butcher_results = list(/obj/item/food/meat = 3)
faction = list("hostile", "jungle")
response_help = "pets the"
response_disarm = "gently pushes aside the"
diff --git a/code/modules/mob/living/simple_animal/hostile/killertomato.dm b/code/modules/mob/living/simple_animal/hostile/killertomato.dm
index b8c1b2b3097c..46d359a6a1fc 100644
--- a/code/modules/mob/living/simple_animal/hostile/killertomato.dm
+++ b/code/modules/mob/living/simple_animal/hostile/killertomato.dm
@@ -10,7 +10,7 @@
maxHealth = 30
health = 30
see_in_dark = 3
- butcher_results = list(/obj/item/food/snacks/meat/tomatomeat = 2)
+ butcher_results = list(/obj/item/food/meat/tomatomeat = 2)
response_help = "prods"
response_disarm = "pushes aside"
response_harm = "smacks"
diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/ancient_robot.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/ancient_robot.dm
index 6452c4408234..6e33ab51bc9c 100644
--- a/code/modules/mob/living/simple_animal/hostile/megafauna/ancient_robot.dm
+++ b/code/modules/mob/living/simple_animal/hostile/megafauna/ancient_robot.dm
@@ -240,7 +240,7 @@ Difficulty: Hard
. = ..()
var/newcolor = rgb(241, 137, 172)
add_atom_colour(newcolor, TEMPORARY_COLOUR_PRIORITY)
- beam_it_up()
+ addtimer(CALLBACK(src, PROC_REF(beam_it_up)), 0)
/obj/effect/vetus_laser/ex_act(severity)
return
diff --git a/code/modules/mob/living/simple_animal/hostile/mining/goliath.dm b/code/modules/mob/living/simple_animal/hostile/mining/goliath.dm
index 2134fcff55bf..53b469dd4b32 100644
--- a/code/modules/mob/living/simple_animal/hostile/mining/goliath.dm
+++ b/code/modules/mob/living/simple_animal/hostile/mining/goliath.dm
@@ -90,7 +90,7 @@
throw_message = "does nothing to the tough hide of the"
pre_attack_icon = "goliath2"
crusher_loot = /obj/item/crusher_trophy/goliath_tentacle
- butcher_results = list(/obj/item/food/snacks/monstermeat/goliath = 2, /obj/item/stack/sheet/animalhide/goliath_hide = 1, /obj/item/stack/sheet/bone = 2)
+ butcher_results = list(/obj/item/food/monstermeat/goliath = 2, /obj/item/stack/sheet/animalhide/goliath_hide = 1, /obj/item/stack/sheet/bone = 2)
loot = list()
stat_attack = UNCONSCIOUS
robust_searching = TRUE
@@ -109,7 +109,7 @@
pre_attack_icon = "Goliath_preattack"
throw_message = "does nothing to the rocky hide of the"
loot = list(/obj/item/stack/sheet/animalhide/goliath_hide) //A throwback to the asteroid days
- butcher_results = list(/obj/item/food/snacks/monstermeat/goliath= 2, /obj/item/stack/sheet/bone = 2)
+ butcher_results = list(/obj/item/food/monstermeat/goliath= 2, /obj/item/stack/sheet/bone = 2)
crusher_loot = /obj/item/crusher_trophy/goliath_tentacle/ancient
crusher_drop_mod = 100 //These things are rare (1/100 per spawner). You shouldn't have to hope for another stroke of luck to get it's trophy after finding it
wander = FALSE
diff --git a/code/modules/mob/living/simple_animal/hostile/mining/hivelord.dm b/code/modules/mob/living/simple_animal/hostile/mining/hivelord.dm
index 932d718e908c..02f2d897d5ed 100644
--- a/code/modules/mob/living/simple_animal/hostile/mining/hivelord.dm
+++ b/code/modules/mob/living/simple_animal/hostile/mining/hivelord.dm
@@ -246,6 +246,8 @@
..()
/mob/living/simple_animal/hostile/asteroid/hivelordbrood/legion/proc/infest(mob/living/carbon/human/H)
+ if(H?.dna?.species && !H.dna.species.can_be_legion_infested())
+ return
visible_message("[name] burrows into the flesh of [H]!")
var/mob/living/simple_animal/hostile/asteroid/hivelord/legion/L
if(HAS_TRAIT(H, TRAIT_DWARF)) //dwarf legions aren't just fluff!
@@ -387,7 +389,7 @@
belt = null
backpack_contents = list()
if(prob(70))
- backpack_contents += pick(/obj/item/stamp/clown, /obj/item/reagent_containers/spray/waterflower, /obj/item/food/snacks/grown/banana, /obj/item/megaphone)
+ backpack_contents += pick(/obj/item/stamp/clown, /obj/item/reagent_containers/spray/waterflower, /obj/item/food/grown/banana, /obj/item/megaphone)
if(prob(30))
backpack_contents += list(/obj/item/stack/sheet/mineral/bananium = pickweight(list(1 = 3, 2 = 2, 3 = 1)))
if(prob(10))
diff --git a/code/modules/mob/living/simple_animal/hostile/mushroom.dm b/code/modules/mob/living/simple_animal/hostile/mushroom.dm
index 0dcd454410e6..09672c296391 100644
--- a/code/modules/mob/living/simple_animal/hostile/mushroom.dm
+++ b/code/modules/mob/living/simple_animal/hostile/mushroom.dm
@@ -9,7 +9,7 @@
turns_per_move = 1
maxHealth = 10
health = 10
- butcher_results = list(/obj/item/food/snacks/hugemushroomslice = 1)
+ butcher_results = list(/obj/item/food/hugemushroomslice = 1)
response_help = "pets"
response_disarm = "gently pushes aside"
response_harm = "whacks"
@@ -152,7 +152,7 @@
bruised = 1
/mob/living/simple_animal/hostile/mushroom/attackby(obj/item/I as obj, mob/user as mob, params)
- if(istype(I, /obj/item/food/snacks/grown/mushroom))
+ if(istype(I, /obj/item/food/grown/mushroom))
if(stat == DEAD && !recovery_cooldown)
Recover()
qdel(I)
@@ -182,7 +182,7 @@
/mob/living/simple_animal/hostile/mushroom/harvest()
var/counter
for(counter=0, counter<=powerlevel, counter++)
- var/obj/item/food/snacks/hugemushroomslice/S = new (src.loc)
+ var/obj/item/food/hugemushroomslice/S = new (src.loc)
S.reagents.add_reagent("psilocybin", powerlevel)
S.reagents.add_reagent("omnizine", powerlevel)
S.reagents.add_reagent("synaptizine", powerlevel)
diff --git a/code/modules/mob/living/simple_animal/hostile/retaliate/fish.dm b/code/modules/mob/living/simple_animal/hostile/retaliate/fish.dm
index 53e5e125a1a0..eafb92e7dab0 100644
--- a/code/modules/mob/living/simple_animal/hostile/retaliate/fish.dm
+++ b/code/modules/mob/living/simple_animal/hostile/retaliate/fish.dm
@@ -8,7 +8,7 @@
mob_biotypes = MOB_ORGANIC | MOB_BEAST
speak_chance = 0
turns_per_move = 5
- butcher_results = list(/obj/item/food/snacks/carpmeat = 1)
+ butcher_results = list(/obj/item/food/carpmeat = 1)
response_help = "pets"
response_disarm = "gently pushes aside"
response_harm = "hits"
@@ -68,7 +68,7 @@
melee_damage_lower = 2
melee_damage_upper = 2
speak_emote = list("blurps")
- butcher_results = list(/obj/item/food/snacks/salmonmeat = 1)
+ butcher_results = list(/obj/item/food/salmonmeat = 1)
atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0)
minbodytemp = 0
diff --git a/code/modules/mob/living/simple_animal/hostile/retaliate/kangaroo.dm b/code/modules/mob/living/simple_animal/hostile/retaliate/kangaroo.dm
index eafab4122475..faed781ee1cc 100644
--- a/code/modules/mob/living/simple_animal/hostile/retaliate/kangaroo.dm
+++ b/code/modules/mob/living/simple_animal/hostile/retaliate/kangaroo.dm
@@ -13,7 +13,7 @@
emote_hear = list("bark")
maxHealth = 150
health = 150
- butcher_results = list(/obj/item/food/snacks/meat/kangaroo = 6)
+ butcher_results = list(/obj/item/food/meat/kangaroo = 6)
harm_intent_damage = 3
melee_damage_lower = 5 // avg damage 12.5 without kick, (12.5+12.5+60)/3=25 with kick
melee_damage_upper = 20
diff --git a/code/modules/mob/living/simple_animal/hostile/retaliate/undead.dm b/code/modules/mob/living/simple_animal/hostile/retaliate/undead.dm
index 91ffa0591cc8..04670f69d5ab 100644
--- a/code/modules/mob/living/simple_animal/hostile/retaliate/undead.dm
+++ b/code/modules/mob/living/simple_animal/hostile/retaliate/undead.dm
@@ -51,7 +51,7 @@
pressure_resistance = 300
gold_core_spawnable = NO_SPAWN //too spooky for science
faction = list("undead") // did I mention ghost
- loot = list(/obj/item/food/snacks/ectoplasm)
+ loot = list(/obj/item/food/ectoplasm)
del_on_death = TRUE
/mob/living/simple_animal/hostile/retaliate/ghost/Process_Spacemove(check_drift = 0)
diff --git a/code/modules/mob/living/simple_animal/hostile/syndicate_mobs.dm b/code/modules/mob/living/simple_animal/hostile/syndicate_mobs.dm
index b62b112d8bdd..ec58ef89db05 100644
--- a/code/modules/mob/living/simple_animal/hostile/syndicate_mobs.dm
+++ b/code/modules/mob/living/simple_animal/hostile/syndicate_mobs.dm
@@ -38,12 +38,7 @@
/mob/living/simple_animal/hostile/syndicate/Initialize(mapload)
. = ..()
if(prob(50))
- loot = list(/obj/effect/mob_spawn/human/corpse/syndicatesoldier,
- /obj/item/salvage/loot/syndicate,
- /obj/effect/decal/cleanable/blood/innards,
- /obj/effect/decal/cleanable/blood,
- /obj/effect/gibspawner/generic,
- /obj/effect/gibspawner/generic)
+ loot += /obj/item/salvage/loot/syndicate
/mob/living/simple_animal/hostile/syndicate/Aggro()
. = ..()
@@ -308,12 +303,7 @@
speed = 2
projectiletype = /obj/item/projectile/bullet/sniper/penetrator // Ignores cover.
projectilesound = 'sound/weapons/gunshots/gunshot_sniper.ogg'
- loot = list(/obj/effect/mob_spawn/human/corpse/syndicatequartermaster,
- /obj/item/salvage/loot/syndicate,
- /obj/effect/decal/cleanable/blood/innards,
- /obj/effect/decal/cleanable/blood,
- /obj/effect/gibspawner/generic,
- /obj/effect/gibspawner/generic)
+ loot |= /obj/item/salvage/loot/syndicate
return INITIALIZE_HINT_LATELOAD
/mob/living/simple_animal/hostile/syndicate/melee/autogib/depot/armory/LateInitialize()
@@ -358,7 +348,6 @@
speed = 1.5
death_sound = 'sound/mecha/mechmove03.ogg'
loot = list(/obj/effect/mob_spawn/human/corpse/syndicatecommando,
- /obj/item/salvage/loot/syndicate,
/obj/effect/decal/cleanable/blood/innards,
/obj/effect/decal/cleanable/blood,
/obj/effect/gibspawner/generic,
@@ -367,15 +356,6 @@
/mob/living/simple_animal/hostile/syndicate/melee/space/Process_Spacemove(movement_dir = 0)
return TRUE
-/mob/living/simple_animal/hostile/syndicate/melee/space/Initialize(mapload)
- . = ..()
- if(prob(50))
- loot = list(/obj/effect/mob_spawn/human/corpse/syndicatecommando,
- /obj/effect/decal/cleanable/blood/innards,
- /obj/effect/decal/cleanable/blood,
- /obj/effect/gibspawner/generic,
- /obj/effect/gibspawner/generic)
-
/mob/living/simple_animal/hostile/syndicate/ranged
ranged = TRUE
rapid = 2
@@ -394,16 +374,6 @@
speed = 1.5
death_sound = 'sound/mecha/mechmove03.ogg'
loot = list(/obj/effect/mob_spawn/human/corpse/syndicatecommando,
- /obj/item/salvage/loot/syndicate,
- /obj/effect/decal/cleanable/blood/innards,
- /obj/effect/decal/cleanable/blood,
- /obj/effect/gibspawner/generic,
- /obj/effect/gibspawner/generic)
-
-/mob/living/simple_animal/hostile/syndicate/ranged/space/Initialize(mapload)
- . = ..()
- if(prob(50))
- loot = list(/obj/effect/mob_spawn/human/corpse/syndicatecommando,
/obj/effect/decal/cleanable/blood/innards,
/obj/effect/decal/cleanable/blood,
/obj/effect/gibspawner/generic,
diff --git a/code/modules/mob/living/simple_animal/hostile/winter_mobs.dm b/code/modules/mob/living/simple_animal/hostile/winter_mobs.dm
index 045b6327360d..dd5f2b1b4d25 100644
--- a/code/modules/mob/living/simple_animal/hostile/winter_mobs.dm
+++ b/code/modules/mob/living/simple_animal/hostile/winter_mobs.dm
@@ -59,7 +59,7 @@
icon_state = "reindeer"
icon_living = "reindeer"
icon_dead = "reindeer-dead"
- butcher_results = list(/obj/item/food/snacks/meat = 3)
+ butcher_results = list(/obj/item/food/meat = 3)
maxHealth = 80
health = 80
melee_damage_lower = 5
diff --git a/code/modules/mob/living/simple_animal/parrot.dm b/code/modules/mob/living/simple_animal/parrot.dm
index eea64c99c9e5..d63f481468e3 100644
--- a/code/modules/mob/living/simple_animal/parrot.dm
+++ b/code/modules/mob/living/simple_animal/parrot.dm
@@ -49,7 +49,7 @@
speak_chance = 1//1% (1 in 100) chance every tick; So about once per 150 seconds, assuming an average tick is 1.5s
turns_per_move = 5
- butcher_results = list(/obj/item/food/snacks/cracker = 3)
+ butcher_results = list(/obj/item/food/cracker = 3)
response_help = "pets"
response_disarm = "gently moves aside"
diff --git a/code/modules/mob/living/simple_animal/shade.dm b/code/modules/mob/living/simple_animal/shade.dm
index ce0294ae6a5a..54cd08666f0e 100644
--- a/code/modules/mob/living/simple_animal/shade.dm
+++ b/code/modules/mob/living/simple_animal/shade.dm
@@ -28,7 +28,7 @@
faction = list("cult")
status_flags = CANPUSH
flying = TRUE
- loot = list(/obj/item/food/snacks/ectoplasm)
+ loot = list(/obj/item/food/ectoplasm)
del_on_death = TRUE
deathmessage = "lets out a contented sigh as their form unwinds."
var/holy = FALSE
diff --git a/code/modules/mod/mod_control.dm b/code/modules/mod/mod_control.dm
index 5198dab0ed16..8b58152f4f15 100644
--- a/code/modules/mod/mod_control.dm
+++ b/code/modules/mod/mod_control.dm
@@ -148,6 +148,7 @@
part.max_heat_protection_temperature = theme.max_heat_protection_temperature
part.min_cold_protection_temperature = theme.min_cold_protection_temperature
part.siemens_coefficient = theme.siemens_coefficient
+ part.flags_2 = theme.flag_2_flags
for(var/obj/item/part as anything in mod_parts)
RegisterSignal(part, COMSIG_OBJ_DECONSTRUCT, PROC_REF(on_part_destruction)) //look into
RegisterSignal(part, COMSIG_PARENT_QDELETING, PROC_REF(on_part_deletion))
diff --git a/code/modules/mod/mod_theme.dm b/code/modules/mod/mod_theme.dm
index d838482bbf30..d841c96b886e 100644
--- a/code/modules/mod/mod_theme.dm
+++ b/code/modules/mod/mod_theme.dm
@@ -27,6 +27,8 @@
var/obj/item/mod/armor/armor_type_2 = null
/// Resistance flags shared across the MOD parts.
var/resistance_flags = NONE
+ /// Flag_2 flags to apply to the modsuit parts.
+ var/flag_2_flags = NONE
/// Atom flags shared across the MOD parts.
var/atom_flags = NONE
/// Max heat protection shared across the MOD parts.
@@ -230,6 +232,7 @@
default_skin = "advanced"
armor_type_1 = /obj/item/mod/armor/mod_theme_advanced
resistance_flags = FIRE_PROOF
+ flag_2_flags = RAD_PROTECT_CONTENTS_2
max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT
complexity_max = DEFAULT_MAX_COMPLEXITY - 3
charge_drain = DEFAULT_CHARGE_DRAIN * 1.5
@@ -913,7 +916,7 @@
All rights reserved, tampering with suit will void warranty."
default_skin = "syndicate"
armor_type_1 = /obj/item/mod/armor/mod_theme_syndicate
-
+ flag_2_flags = RAD_PROTECT_CONTENTS_2
max_heat_protection_temperature = FIRE_SUIT_MAX_TEMP_PROTECT
siemens_coefficient = 0
slowdown_inactive = 1
@@ -1001,6 +1004,7 @@
default_skin = "elite"
armor_type_1 = /obj/item/mod/armor/mod_theme_elite
resistance_flags = FIRE_PROOF | ACID_PROOF
+ flag_2_flags = RAD_PROTECT_CONTENTS_2
max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT
siemens_coefficient = 0
slowdown_inactive = 1
@@ -1120,6 +1124,7 @@
armor_type_1 = /obj/item/mod/armor/mod_theme_responsory
resistance_flags = FIRE_PROOF
+ flag_2_flags = RAD_PROTECT_CONTENTS_2
max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT
siemens_coefficient = 0
slowdown_inactive = 0.5
@@ -1201,6 +1206,7 @@
default_skin = "apocryphal"
armor_type_1 = /obj/item/mod/armor/mod_theme_apocryphal
resistance_flags = FIRE_PROOF | ACID_PROOF
+ flag_2_flags = RAD_PROTECT_CONTENTS_2
ui_theme = "malfunction"
max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT
siemens_coefficient = 0
@@ -1257,7 +1263,7 @@
default_skin = "corporate"
armor_type_1 = /obj/item/mod/armor/mod_theme_corporate
resistance_flags = FIRE_PROOF | ACID_PROOF
-
+ flag_2_flags = RAD_PROTECT_CONTENTS_2
max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT
siemens_coefficient = 0
slowdown_inactive = 0.5
@@ -1310,7 +1316,7 @@
default_skin = "debug"
armor_type_1 = /obj/item/mod/armor/mod_theme_debug
resistance_flags = FIRE_PROOF | ACID_PROOF
-
+ flag_2_flags = RAD_PROTECT_CONTENTS_2
max_heat_protection_temperature = FIRE_SUIT_MAX_TEMP_PROTECT
complexity_max = 50
siemens_coefficient = 0
@@ -1362,7 +1368,7 @@
default_skin = "debug"
armor_type_1 = /obj/item/mod/armor/mod_theme_administrative
resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF
-
+ flag_2_flags = RAD_PROTECT_CONTENTS_2
max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT
complexity_max = 1000
charge_drain = DEFAULT_CHARGE_DRAIN * 0
diff --git a/code/modules/mod/modules/modules_engineering.dm b/code/modules/mod/modules/modules_engineering.dm
index 82094de73c80..0c0b08b8ebd2 100644
--- a/code/modules/mod/modules/modules_engineering.dm
+++ b/code/modules/mod/modules/modules_engineering.dm
@@ -248,7 +248,7 @@
if(reagents.total_volume < 10)
to_chat(user, "You need at least 10 units of water to use the metal foam synthesizer!")
return
- var/obj/effect/particle_effect/foam/F = new/obj/effect/particle_effect/foam(get_turf(target), 1)
+ var/obj/effect/particle_effect/foam/metal/F = new /obj/effect/particle_effect/foam/metal(get_turf(target), TRUE)
F.spread_amount = 0
reagents.remove_any(10)
metal_synthesis_charge--
diff --git a/code/modules/mod/modules/modules_general.dm b/code/modules/mod/modules/modules_general.dm
index dfd3efc632e3..f4f6624fec1b 100644
--- a/code/modules/mod/modules/modules_general.dm
+++ b/code/modules/mod/modules/modules_general.dm
@@ -287,7 +287,7 @@
incompatible_modules = list(/obj/item/mod/module/dispenser)
cooldown_time = 5 SECONDS
/// Path we dispense.
- var/dispense_type = /obj/item/food/snacks/burger/cheese
+ var/dispense_type = /obj/item/food/burger/cheese
/// Time it takes for us to dispense.
var/dispense_time = 0 SECONDS
diff --git a/code/modules/paperwork/paper_bundle.dm b/code/modules/paperwork/paper_bundle.dm
index 96f7b7ecf4f8..d28e071aa424 100644
--- a/code/modules/paperwork/paper_bundle.dm
+++ b/code/modules/paperwork/paper_bundle.dm
@@ -45,6 +45,7 @@
var/mob/living/carbon/human/H = user
H.update_inv_l_hand()
H.update_inv_r_hand()
+
else if(istype(W, /obj/item/photo))
amount++
photos++
@@ -53,8 +54,10 @@
to_chat(user, "You add [(W.name == "photo") ? "the photo" : W.name] to [(src.name == "paper bundle") ? "the paper bundle" : src.name].")
user.unEquip(W)
W.loc = src
+
else if(W.get_heat())
burnpaper(W, user)
+
else if(istype(W, /obj/item/paper_bundle))
user.unEquip(W)
for(var/obj/O in W)
@@ -65,6 +68,7 @@
screen = 1
to_chat(user, "You add \the [W.name] to [(src.name == "paper bundle") ? "the paper bundle" : src.name].")
qdel(W)
+
else
if(is_pen(W) || istype(W, /obj/item/toy/crayon))
usr << browse("", "window=PaperBundle[UID()]") //Closes the dialog
@@ -72,10 +76,6 @@
P.attackby(W, user, params)
update_icon()
- if(winget(usr, "PaperBundle[UID()]", "is-visible") == "true") // NOT MY FAULT IT IS A BUILT IN PROC PLEASE DO NOT HIT ME
- attack_self(usr) //Update the browsed page.
- add_fingerprint(usr)
- return
/obj/item/paper_bundle/proc/burnpaper(obj/item/heating_object, mob/user)
var/class = "warning"
@@ -136,7 +136,6 @@
/obj/item/paper_bundle/attack_self(mob/user as mob)
show_content(user)
add_fingerprint(usr)
- return
/obj/item/paper_bundle/Topic(href, href_list)
if(..())
diff --git a/code/modules/power/apc/apc.dm b/code/modules/power/apc/apc.dm
index 8aecb4e0a8fc..8703241cb0b3 100644
--- a/code/modules/power/apc/apc.dm
+++ b/code/modules/power/apc/apc.dm
@@ -100,6 +100,9 @@
/// Being hijacked by a pulse demon?
var/being_hijacked = FALSE
+ /// Are we immune to EMPS?
+ var/emp_proof = FALSE
+
/*** APC Malf AI Vars ****/
var/malfhack = FALSE //New var for my changes to AI malf. --NeoFite
var/mob/living/silicon/ai/malfai = null //See above --NeoFite
@@ -108,6 +111,9 @@
var/constructed = FALSE
var/overload = 1 //used for the Blackout malf module
+ /// Are we hacked by a ruins malf AI? If so, it will act like a malf AI hacked APC, but silicons and malf AI's will not be able to interface with it.
+ var/hacked_by_ruin_AI = FALSE
+
/*** APC Overlay Vars ***/
var/update_state = -1
var/update_overlay = -1
@@ -485,12 +491,14 @@
return TRUE
autoflag = 5 //why the hell is this being set to 5, fucking malf code -sirryan
- if(issilicon(user))
- var/mob/living/silicon/ai/AI = user
- var/mob/living/silicon/robot/robot = user
- if(aidisabled || (malfhack && istype(malfai) && ((istype(AI) && (malfai != AI && malfai != AI.parent))) || (istype(robot) && malfai && !(robot in malfai.connected_robots))))
+ if(issilicon(user) || ispulsedemon(user))
+ if(hacked_by_ruin_AI)
+ to_chat(user, "The APC interface program has been completely corrupted, you are unable to interface with it!")
+ return FALSE
+ var/mob/living/L = user
+ if(!L.can_remote_apc_interface(src))
if(!loud)
- to_chat(user, "\The [src] has AI control disabled!")
+ to_chat(user, "[src] has AI control disabled!")
return FALSE
else
if((!in_range(src, user) || !isturf(loc)))
@@ -903,7 +911,6 @@
if(L.nightshift_allowed)
L.nightshift_enabled = nightshift_lights
L.update(FALSE, play_sound = FALSE)
- CHECK_TICK
/obj/machinery/power/apc/proc/relock_callback()
locked = TRUE
@@ -947,6 +954,8 @@
/// *************
/obj/machinery/power/apc/emp_act(severity)
+ if(emp_proof)
+ return
if(cell)
cell.emp_act(severity)
if(occupier)
diff --git a/code/modules/power/apc/apc_overlay.dm b/code/modules/power/apc/apc_overlay.dm
index 15b62f33cf2d..74fad68f4554 100644
--- a/code/modules/power/apc/apc_overlay.dm
+++ b/code/modules/power/apc/apc_overlay.dm
@@ -151,7 +151,7 @@
update_state |= UPSTATE_OPENED1
if(opened == APC_COVER_OFF)
update_state |= UPSTATE_OPENED2
- else if(emagged || malfai || being_hijacked)
+ else if(emagged || malfai || being_hijacked || hacked_by_ruin_AI)
update_state |= UPSTATE_BLUESCREEN
else if(panel_open)
update_state |= UPSTATE_WIREEXP
diff --git a/code/modules/power/cell.dm b/code/modules/power/cell.dm
index 21205d03a3df..e94b02f1d272 100644
--- a/code/modules/power/cell.dm
+++ b/code/modules/power/cell.dm
@@ -295,6 +295,9 @@
origin_tech = "powerstorage=10;bluespace=10"
self_recharge = TRUE
+/obj/item/stock_parts/cell/bluespace/trapped
+ rigged = TRUE
+
/obj/item/stock_parts/cell/infinite
name = "infinite-capacity power cell!"
icon_state = "icell"
diff --git a/code/modules/power/engines/singularity/emitter.dm b/code/modules/power/engines/singularity/emitter.dm
index 096ccebc485c..7cd160a97c16 100644
--- a/code/modules/power/engines/singularity/emitter.dm
+++ b/code/modules/power/engines/singularity/emitter.dm
@@ -147,25 +147,23 @@
step(src, get_dir(M, src))
/obj/machinery/power/emitter/attackby(obj/item/I, mob/user, params)
- if(istype(I, /obj/item/card/id) || istype(I, /obj/item/pda))
- if(emagged)
- to_chat(user, "The lock seems to be broken.")
- return
- if(allowed(user))
- if(active)
- locked = !locked
- to_chat(user, "The controls are now [locked ? "locked" : "unlocked"].")
- else
- locked = FALSE //just in case it somehow gets locked
- to_chat(user, "The controls can only be locked when [src] is online!")
- else
- to_chat(user, "Access denied.")
+ if(!istype(I, /obj/item/card/id) || !istype(I, /obj/item/pda))
+ return ..()
+
+ if(emagged)
+ to_chat(user, "The lock seems to be broken.")
return
- if(exchange_parts(user, I))
+ if(!allowed(user))
+ to_chat(user, "Access denied.")
return
- return ..()
+ if(active)
+ locked = !locked
+ to_chat(user, "The controls are now [locked ? "locked" : "unlocked"].")
+ else
+ locked = FALSE //just in case it somehow gets locked
+ to_chat(user, "The controls can only be locked when [src] is online!")
/obj/machinery/power/emitter/wrench_act(mob/living/user, obj/item/I)
. = TRUE
diff --git a/code/modules/power/engines/tesla/coil.dm b/code/modules/power/engines/tesla/coil.dm
index d200ddc904dc..15b5120a33ab 100644
--- a/code/modules/power/engines/tesla/coil.dm
+++ b/code/modules/power/engines/tesla/coil.dm
@@ -44,12 +44,8 @@
. += "The status display reads: Power generation at [input_power_multiplier*100]%.
Shock interval at [zap_cooldown*0.1] seconds."
/obj/machinery/power/tesla_coil/attackby(obj/item/W, mob/user, params)
- if(exchange_parts(user, W))
- return
-
- else if(istype(W, /obj/item/assembly/signaler) && panel_open)
+ if(istype(W, /obj/item/assembly/signaler) && panel_open)
wires.Interact(user)
-
else
return ..()
diff --git a/code/modules/power/generators/portable generators/pacman.dm b/code/modules/power/generators/portable generators/pacman.dm
index 5e7b71029643..8111f4dd2702 100644
--- a/code/modules/power/generators/portable generators/pacman.dm
+++ b/code/modules/power/generators/portable generators/pacman.dm
@@ -198,15 +198,13 @@
if(amount < 1)
to_chat(user, "[src] is full!")
return
+
to_chat(user, "You add [amount] sheet\s to [src].")
sheets += amount
addstack.use(amount)
SStgui.update_uis(src)
return
- if(!active)
- if(istype(O, /obj/item/storage/part_replacer) && panel_open)
- exchange_parts(user, O)
- return
+
return ..()
/obj/machinery/power/port_gen/pacman/crowbar_act(mob/living/user, obj/item/I)
diff --git a/code/modules/power/generators/turbine.dm b/code/modules/power/generators/turbine.dm
index 591cd54a04b8..8e0ac11eddb9 100644
--- a/code/modules/power/generators/turbine.dm
+++ b/code/modules/power/generators/turbine.dm
@@ -145,8 +145,6 @@
stat |= BROKEN
return
- if(exchange_parts(user, I))
- return
return ..()
/obj/machinery/power/compressor/crowbar_act(mob/user, obj/item/I)
@@ -352,11 +350,9 @@
stat |= BROKEN
return
- if(exchange_parts(user, I))
- return
-
if(default_deconstruction_crowbar(user, I))
return
+
return ..()
/obj/machinery/power/turbine/attack_hand(mob/user)
diff --git a/code/modules/power/lights.dm b/code/modules/power/lights.dm
index e0cc4c372a3d..6c9db8515eab 100644
--- a/code/modules/power/lights.dm
+++ b/code/modules/power/lights.dm
@@ -825,9 +825,11 @@
// explode the light
/obj/machinery/light/proc/explode()
- var/turf/T = get_turf(loc)
break_light_tube() // break it first to give a warning
- sleep(2)
+ addtimer(CALLBACK(src, PROC_REF(actually_explode)), 2)
+
+/obj/machinery/light/proc/actually_explode()
+ var/turf/T = get_turf(loc)
explosion(T, 0, 0, 2, 2)
qdel(src)
diff --git a/code/modules/power/smes.dm b/code/modules/power/smes.dm
index bd5e87338625..e93791afb084 100644
--- a/code/modules/power/smes.dm
+++ b/code/modules/power/smes.dm
@@ -1,35 +1,39 @@
-// the SMES
-// stores power
-
#define SMESMAXCHARGELEVEL 200000
#define SMESMAXOUTPUT 200000
#define SMESRATE 0.05 // rate of internal charge to external power
-
-
/obj/machinery/power/smes
name = "power storage unit"
desc = "A high-capacity superconducting magnetic energy storage (SMES) unit."
icon_state = "smes"
density = TRUE
- var/capacity = 5e6 // maximum charge
- var/charge = 0 // actual charge
-
- var/input_attempt = TRUE // 1 = attempting to charge, 0 = not attempting to charge
- var/inputting = TRUE // 1 = actually inputting, 0 = not inputting
- var/input_level = 50000 // amount of power the SMES attempts to charge by
- var/input_level_max = 200000 // cap on input_level
- var/input_available = 0 // amount of charge available from input last tick
-
- var/output_attempt = TRUE // 1 = attempting to output, 0 = not attempting to output
- var/outputting = TRUE // 1 = actually outputting, 0 = not outputting
- var/output_level = 50000 // amount of power the SMES attempts to output
- var/output_level_max = 200000 // cap on output_level
- var/output_used = 0 // amount of power actually outputted. may be less than output_level if the powernet returns excess power
-
- var/name_tag = null
- var/obj/machinery/power/terminal/terminal = null
+ /// Maximum charge of the SMES
+ var/capacity = 5e6
+ /// Current charge level
+ var/charge = 0
+ /// Set TRUE if SMES attempting to charge, FALSE if not
+ var/input_attempt = TRUE
+ /// Set TRUE if SMES is inputting, FALSE if not
+ var/inputting = TRUE
+ /// Amount of power the SMES attempts to charge by
+ var/input_level = 50000
+ /// Maximum input level
+ var/input_level_max = 200000
+ /// Charge amount available from input last tick
+ var/input_available = 0
+ // TRUE = attempting to output, FALSE = not attempting to output
+ var/output_attempt = TRUE
+ /// TRUE = actually outputting, FALSE = not outputting
+ var/outputting = TRUE
+ /// Amount of power the SMES attempts to output
+ var/output_level = 50000
+ /// Cap on output_level
+ var/output_level_max = 200000
+ /// Amount of power actually outputted. may be less than output_level if the powernet returns excess power
+ var/output_used = 0
+ /// The terminal that is connected to this SMES unit
+ var/obj/machinery/power/terminal/terminal
/obj/machinery/power/smes/Initialize(mapload)
. = ..()
@@ -48,10 +52,10 @@
connect_to_network()
dir_loop:
- for(var/d in GLOB.cardinal)
- var/turf/T = get_step(src, d)
+ for(var/direction in GLOB.cardinal)
+ var/turf/T = get_step(src, direction)
for(var/obj/machinery/power/terminal/term in T)
- if(term && term.dir == turn(d, 180))
+ if(term && term.dir == turn(direction, 180))
terminal = term
break dir_loop
@@ -90,20 +94,20 @@
if(stat & BROKEN)
return
- . += "smes-op[outputting ? 1 : 0]"
- . += "smes-oc[inputting ? 1 : 0]"
+ . += "smes-op[outputting ? TRUE : FALSE]"
+ . += "smes-oc[inputting ? TRUE : FALSE]"
- var/charge_level = chargedisplay()
+ var/charge_level = charge_display()
if(charge_level > 0)
. += "smes-og[charge_level]"
/obj/machinery/power/smes/attackby(obj/item/I, mob/user, params)
- //opening using screwdriver
+ // Opening using screwdriver
if(default_deconstruction_screwdriver(user, "[initial(icon_state)]-o", initial(icon_state), I))
update_icon()
return
- //changing direction using wrench
+ // Changing direction using wrench
if(default_change_direction_wrench(user, I))
terminal = null
var/turf/T = get_step(src, dir)
@@ -120,26 +124,22 @@
update_icon()
return
- //exchanging parts using the RPE
- if(exchange_parts(user, I))
- return
-
- //building and linking a terminal
+ // Building and linking a terminal
if(istype(I, /obj/item/stack/cable_coil))
- var/dir = get_dir(user,src)
- if(dir & (dir-1))//we don't want diagonal click
+ var/dir = get_dir(user, src)
+ if(dir & (dir - 1)) // Checks for diagonal interaction
return
- if(terminal) //is there already a terminal ?
+ if(terminal) // Checks for an existing terminal
to_chat(user, "This SMES already has a power terminal!")
return
- if(!panel_open) //is the panel open ?
+ if(!panel_open) // Checks to see if the panel is closed
to_chat(user, "You must open the maintenance panel first!")
return
var/turf/T = get_turf(user)
- if(T.intact) //is the floor plating removed ?
+ if(T.intact) // Checks to see if floor plating is present
to_chat(user, "You must first remove the floor plating!")
return
@@ -152,31 +152,33 @@
to_chat(user, "You must not be on the same tile as [src].")
return
- //Direction the terminal will face to
- var/tempDir = get_dir(user, src)
- switch(tempDir)
+ // Direction the terminal will face to
+ var/temporary_direction = get_dir(user, src)
+ switch(temporary_direction)
if(NORTHEAST, SOUTHEAST)
- tempDir = EAST
+ temporary_direction = EAST
if(NORTHWEST, SOUTHWEST)
- tempDir = WEST
- var/turf/tempLoc = get_step(src, REVERSE_DIR(tempDir))
- if(isspaceturf(tempLoc))
+ temporary_direction = WEST
+ var/turf/temporary_location = get_step(src, REVERSE_DIR(temporary_direction))
+
+ if(isspaceturf(temporary_location))
to_chat(user, "You can't build a terminal on space.")
return
- else if(istype(tempLoc))
- if(tempLoc.intact)
+
+ else if(istype(temporary_location))
+ if(temporary_location.intact)
to_chat(user, "You must remove the floor plating first.")
return
to_chat(user, "You start adding cable to [src].")
- playsound(loc, C.usesound, 50, 1)
+ playsound(loc, C.usesound, 50, TRUE)
- if(do_after(user, 50, target = src))
+ if(do_after(user, 5 SECONDS, target = src))
if(!terminal && panel_open)
T = get_turf(user)
var/obj/structure/cable/N = T.get_cable_node() //get the connecting node cable, if there's one
if(prob(50) && electrocute_mob(usr, N, N, 1, TRUE)) //animate the electrocution if uncautious and unlucky
- do_sparks(5, 1, src)
+ do_sparks(5, TRUE, src)
return
C.use(10) // make sure the cable gets used up
@@ -184,11 +186,11 @@
"[user.name] adds the cables and connects the power terminal.",\
"You add the cables and connect the power terminal.")
- make_terminal(user, tempDir, tempLoc)
+ make_terminal(user, temporary_direction, temporary_location)
terminal.connect_to_network()
return
- //disassembling the terminal
+ // Disassembling the terminal
if(istype(I, /obj/item/wirecutters) && terminal && panel_open)
var/turf/T = get_turf(terminal)
if(T.intact) //is the floor plating removed ?
@@ -196,26 +198,27 @@
return
to_chat(user, "You begin to dismantle the power terminal...")
- playsound(src.loc, I.usesound, 50, 1)
+ playsound(src.loc, I.usesound, 50, TRUE)
- if(do_after(user, 50 * I.toolspeed, target = src))
+ if(do_after(user, 5 SECONDS * I.toolspeed, target = src))
if(terminal && panel_open)
- if(prob(50) && electrocute_mob(usr, terminal.powernet, terminal, 1, TRUE)) //animate the electrocution if uncautious and unlucky
- do_sparks(5, 1, src)
+ if(prob(50) && electrocute_mob(usr, terminal.powernet, terminal, 1, TRUE)) // Animate the electrocution if uncautious and unlucky
+ do_sparks(5, TRUE, src)
return
- //give the wires back and delete the terminal
- new /obj/item/stack/cable_coil(T,10)
+ // Returns wires on deletion of the terminal
+ new /obj/item/stack/cable_coil(T, 10)
user.visible_message(\
"[user.name] cuts the cables and dismantles the power terminal.",\
"You cut the cables and dismantle the power terminal.")
- inputting = 0 //stop inputting, since we have don't have a terminal anymore
+ inputting = FALSE // Set input FALSE when the terminal no longer exists
qdel(terminal)
return
- //crowbarring it !
+ // Crowbarring it !
if(default_deconstruction_crowbar(user, I))
return
+
return ..()
/obj/machinery/power/smes/disconnect_terminal()
@@ -225,51 +228,51 @@
return TRUE
return FALSE
-/obj/machinery/power/smes/proc/make_terminal(user, tempDir, tempLoc)
- // create a terminal object at the same position as original turf loc
- // wires will attach to this
- terminal = new /obj/machinery/power/terminal(tempLoc)
- terminal.dir = tempDir
+/obj/machinery/power/smes/proc/make_terminal(user, temporary_direction, temporary_location)
+ // Create a terminal object at the same position as original turf loc
+ // Wires will attach to this
+ terminal = new /obj/machinery/power/terminal(temporary_location)
+ terminal.dir = temporary_direction
terminal.master = src
/obj/machinery/power/smes/Destroy()
if(SSticker && SSticker.current_state == GAME_STATE_PLAYING)
var/area/area = get_area(src)
if(area)
- message_admins("SMES deleted at ([area.name])")
+ message_admins("SMES deleted at ([area.name])")
log_game("SMES deleted at ([area.name])")
- investigate_log("deleted at ([area.name])","singulo")
+ investigate_log("deleted at ([area.name])", "singulo")
if(terminal)
disconnect_terminal()
return ..()
-/obj/machinery/power/smes/proc/chargedisplay()
+/obj/machinery/power/smes/proc/charge_display()
return clamp(round(ceil(charge * 5 / capacity)), 0, 5)
/obj/machinery/power/smes/process()
if(stat & BROKEN)
return
- //store machine state to see if we need to update the icon overlays
- var/last_disp = chargedisplay()
+ // Store machine state to see if we need to update the icon overlays
+ var/last_disp = charge_display()
var/last_chrg = inputting
var/last_onln = outputting
- //inputting
+ // Inputting
if(terminal && input_attempt)
input_available = terminal.get_power_balance()
if(inputting)
- if(input_available > 0) // if there's power available, try to charge
+ if(input_available > 0) // Checks power availability before attempting to charge
- var/load = min(min((capacity-charge)/SMESRATE, input_level), input_available) // charge at set rate, limited to spare capacity
+ var/load = min(min((capacity - charge) / SMESRATE, input_level), input_available) // Charge at set rate, limited to spare capacity
- charge += load * SMESRATE // increase the charge
+ charge += load * SMESRATE // Increase the charge
- terminal.consume_direct_power(load) // add the load to the terminal side network
+ terminal.consume_direct_power(load) // Add the load to the terminal side network
- else // if not enough capcity
- inputting = FALSE // stop inputting
+ else
+ inputting = FALSE // Set inputting FALSE if not enough capacity
else
if(input_attempt && input_available > 0)
@@ -280,13 +283,13 @@
//outputting
if(output_attempt && powernet)
if(outputting)
- output_used = min( charge/SMESRATE, output_level) //limit output to that stored
- if(produce_direct_power(output_used)) // add output to powernet if it exists (smes side)
- charge -= output_used*SMESRATE // reduce the storage (may be recovered in /restore() if excessive)
+ output_used = min( charge/SMESRATE, output_level) // Limit output to that stored
+ if(produce_direct_power(output_used)) // Add output to powernet if it exists (smes side)
+ charge -= output_used * SMESRATE // Reduce the storage (may be recovered in /restore() if excessive)
else
outputting = FALSE
- if(output_used < 0.0001) // either from no charge or set to 0
+ if(output_used < 0.0001) // Either from no charge or set to 0
outputting = FALSE
investigate_log("lost power and turned off", "singulo")
else if(output_attempt && charge > output_level && output_level > 0)
@@ -296,14 +299,13 @@
else
outputting = FALSE
- // only update icon if state changed
- if(last_disp != chargedisplay() || last_chrg != inputting || last_onln != outputting)
+ // Only update icon if state changed
+ if(last_disp != charge_display() || last_chrg != inputting || last_onln != outputting)
update_icon()
-
-// called after all power processes are finished
-// restores charge level to smes if there was excess this ptick
+// Called after all power processes are finished
+// Restores charge level to smes if there was excess this ptick
/obj/machinery/power/smes/proc/restore()
if(stat & BROKEN)
return
@@ -312,22 +314,22 @@
output_used = 0
return
- var/excess = powernet.excess_power // this was how much wasn't used on the network last ptick, minus any removed by other SMESes
+ var/excess = powernet.excess_power // This was how much wasn't used on the network last ptick, minus any removed by other SMESes
- excess = min(output_used, excess) // clamp it to how much was actually output by this SMES last ptick
+ excess = min(output_used, excess) // Clamp it to how much was actually output by this SMES last ptick
- excess = min((capacity-charge)/SMESRATE, excess) // for safety, also limit recharge by space capacity of SMES (shouldn't happen)
+ excess = min((capacity-charge)/SMESRATE, excess) // For safety, also limit recharge by space capacity of SMES (shouldn't happen)
// now recharge this amount
- var/clev = chargedisplay()
+ var/clev = charge_display()
- charge += excess * SMESRATE // restore unused power
- powernet.excess_power -= excess // remove the excess from the powernet, so later SMESes don't try to use it
+ charge += excess * SMESRATE // Restore unused power
+ powernet.excess_power -= excess // Remove the excess from the powernet, so later SMESes don't try to use it
output_used -= excess
- if(clev != chargedisplay()) //if needed updates the icons overlay
+ if(clev != charge_display()) // If needed updates the icons overlay
update_icon()
return
@@ -356,7 +358,7 @@
/obj/machinery/power/smes/ui_data(mob/user)
var/list/data = list(
"capacity" = capacity,
- "capacityPercent" = round(100*charge/capacity, 0.1),
+ "capacityPercent" = round(100 * charge / capacity, 0.1),
"charge" = charge,
"inputAttempt" = input_attempt,
"inputting" = inputting,
@@ -423,32 +425,6 @@
/obj/machinery/power/smes/proc/log_smes(mob/user)
investigate_log("input/output; [input_level>output_level?"":""][input_level]/[output_level] | Charge: [charge] | Output-mode: [output_attempt?"on":"off"] | Input-mode: [input_attempt?"auto":"off"] by [user ? key_name(user) : "outside forces"]", "singulo")
-/obj/machinery/power/smes/proc/ion_act()
- if(is_station_level(src.z))
- if(prob(1)) //explosion
- for(var/mob/M in viewers(src))
- M.show_message("[src] is making strange noises!", 3, "You hear sizzling electronics.", 2)
- sleep(10*pick(4,5,6,7,10,14))
- var/datum/effect_system/smoke_spread/smoke = new
- smoke.set_up(3, FALSE, loc)
- smoke.attach(src)
- smoke.start()
- explosion(src.loc, -1, 0, 1, 3, 1, 0)
- qdel(src)
- return
- if(prob(15)) //Power drain
- do_sparks(3, 1, src)
- if(prob(50))
- emp_act(1)
- else
- emp_act(2)
- if(prob(5)) //smoke only
- var/datum/effect_system/smoke_spread/smoke = new
- smoke.set_up(3, FALSE, loc)
- smoke.attach(src)
- smoke.start()
-
-
/obj/machinery/power/smes/proc/inputting(do_input)
input_attempt = do_input
if(!input_attempt)
@@ -464,7 +440,7 @@
outputting(rand(0, 1))
output_level = rand(0, output_level_max)
input_level = rand(0, input_level_max)
- charge -= 1e6/severity
+ charge -= 1e6 / severity
if(charge < 0)
charge = 0
update_icon()
@@ -486,6 +462,5 @@
..()
#undef SMESRATE
-
#undef SMESMAXCHARGELEVEL
#undef SMESMAXOUTPUT
diff --git a/code/modules/projectiles/firing.dm b/code/modules/projectiles/firing.dm
index 3e02f5fafafc..c63ef6943ff8 100644
--- a/code/modules/projectiles/firing.dm
+++ b/code/modules/projectiles/firing.dm
@@ -43,6 +43,7 @@
BB.ammo_casing = src
if(target && get_dist(user, target) <= 1) //Point blank shot must always hit
+ BB.starting = curloc
BB.prehit(target)
target.bullet_act(BB, BB.def_zone)
QDEL_NULL(BB)
diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm
index a484e60849bf..0b877bd3b45b 100644
--- a/code/modules/projectiles/gun.dm
+++ b/code/modules/projectiles/gun.dm
@@ -153,7 +153,7 @@
user.visible_message("[user] fires [src] point blank at [target]!", "You fire [src] point blank at [target]!", "You hear \a [fire_sound_text]!")
else
user.visible_message("[user] fires [src]!", "You fire [src]!", "You hear \a [fire_sound_text]!")
- if(chambered.muzzle_flash_effect)
+ if(chambered?.muzzle_flash_effect)
var/obj/effect/temp_visual/target_angled/muzzle_flash/effect = new chambered.muzzle_flash_effect(get_turf(src), target, muzzle_flash_time)
effect.alpha = min(255, muzzle_strength * 255)
if(chambered.muzzle_flash_color)
diff --git a/code/modules/projectiles/guns/chaos_bolt.dm b/code/modules/projectiles/guns/chaos_bolt.dm
index 0169a344d91b..3466cc29581e 100644
--- a/code/modules/projectiles/guns/chaos_bolt.dm
+++ b/code/modules/projectiles/guns/chaos_bolt.dm
@@ -147,7 +147,7 @@
explosion(get_turf(H), 1, 1, 1, cause = "staff of chaos lethal explosion effect")
if("cheese morphed")
H.visible_message("[H] transforms into cheese!", "You've been transformed into cheese!")
- new /obj/item/food/snacks/cheesewedge(get_turf(H))
+ new /obj/item/food/cheesewedge(get_turf(H))
qdel(H)
if("supermattered")
var/obj/machinery/atmospherics/supermatter_crystal/supercrystal = GLOB.main_supermatter_engine
@@ -321,13 +321,13 @@
if("toy revolver")
item_to_summon = /obj/item/gun/projectile/revolver/capgun/chaosprank
if("cheese")
- item_to_summon = /obj/item/food/snacks/cheesewedge
+ item_to_summon = /obj/item/food/cheesewedge
explosion_amount = rand(5, 10)
if("food")
target.visible_message("Food scatters around [target]!", "A bunch of food scatters around you!")
var/limit = rand(5, 10)
for(var/i in 1 to limit)
- var/type = pick(typesof(/obj/item/food/snacks))
+ var/type = pick(typesof(/obj/item/food))
var/obj/item/I = new type(get_turf(target))
INVOKE_ASYNC(I, TYPE_PROC_REF(/atom/movable, throw_at), pick(oview(7, get_turf(src))), 10, 1)
@@ -347,7 +347,7 @@
item_to_summon = /obj/item/banhammer
explosion_amount = rand(2, 5)
if("banana")
- item_to_summon = /obj/item/food/snacks/grown/banana
+ item_to_summon = /obj/item/food/grown/banana
/**
* Picks a random gift to be given to mob/living/target. Should be valuable and/or threatening to the wizard.
@@ -369,7 +369,7 @@
if("tarot deck")
item_to_summon = /obj/item/tarot_generator
if("bluespace banana")
- item_to_summon = /obj/item/food/snacks/grown/banana/bluespace
+ item_to_summon = /obj/item/food/grown/banana/bluespace
if("banana grenade")
item_to_summon = /obj/item/grenade/clown_grenade
if("disco ball")
diff --git a/code/modules/projectiles/guns/throw/crossbow.dm b/code/modules/projectiles/guns/throw/crossbow.dm
index 77dc3dbd5ea2..dea520d410cf 100644
--- a/code/modules/projectiles/guns/throw/crossbow.dm
+++ b/code/modules/projectiles/guns/throw/crossbow.dm
@@ -157,7 +157,7 @@
/obj/item/gun/throw/crossbow/french
name = "french powered crossbow"
icon_state = "fcrossbow"
- valid_projectile_type = /obj/item/food/snacks/baguette
+ valid_projectile_type = /obj/item/food/baguette
/obj/item/gun/throw/crossbow/french/modify_projectile(obj/item/I, on_chamber = 0)
return
diff --git a/code/modules/projectiles/guns/throw/pielauncher.dm b/code/modules/projectiles/guns/throw/pielauncher.dm
index 7f70d9990986..ac4a5c8540d1 100644
--- a/code/modules/projectiles/guns/throw/pielauncher.dm
+++ b/code/modules/projectiles/guns/throw/pielauncher.dm
@@ -8,7 +8,7 @@
force = 5
clumsy_check = FALSE
- valid_projectile_type = /obj/item/food/snacks/pie
+ valid_projectile_type = /obj/item/food/pie
max_capacity = 5
projectile_speed = 2
projectile_range = 30
@@ -17,7 +17,7 @@
/obj/item/gun/throw/piecannon/Initialize(mapload)
. = ..()
for(var/i in 1 to max_capacity)
- var/obj/item/food/snacks/pie/P = new (src)
+ var/obj/item/food/pie/P = new (src)
loaded_projectiles += P
process_chamber()
diff --git a/code/modules/reagents/chemistry/machinery/chem_dispenser.dm b/code/modules/reagents/chemistry/machinery/chem_dispenser.dm
index c25ac76b036e..28472534504e 100644
--- a/code/modules/reagents/chemistry/machinery/chem_dispenser.dm
+++ b/code/modules/reagents/chemistry/machinery/chem_dispenser.dm
@@ -235,20 +235,20 @@
add_fingerprint(usr)
/obj/machinery/chem_dispenser/attackby(obj/item/I, mob/user, params)
- if(exchange_parts(user, I))
+ if(istype(I, /obj/item/storage/part_replacer))
+ . = ..()
SStgui.update_uis(src)
return
- //if(isrobot(user)) // SS220 EDIT
- // return
-
if((istype(I, /obj/item/reagent_containers/glass) || istype(I, /obj/item/reagent_containers/drinks)) && user.a_intent != INTENT_HARM)
if(panel_open)
to_chat(user, "Close the maintenance panel first.")
return
+
if(!user.drop_item())
to_chat(user, "[I] is stuck to you!")
return
+
I.forceMove(src)
if(beaker)
to_chat(usr, "You swap [I] with [beaker].")
diff --git a/code/modules/reagents/chemistry/machinery/chem_heater.dm b/code/modules/reagents/chemistry/machinery/chem_heater.dm
index bcd6c58f3431..bdbad39598cb 100644
--- a/code/modules/reagents/chemistry/machinery/chem_heater.dm
+++ b/code/modules/reagents/chemistry/machinery/chem_heater.dm
@@ -63,23 +63,20 @@
stat |= NOPOWER
/obj/machinery/chem_heater/attackby(obj/item/I, mob/user)
- //if(isrobot(user)) // SS220 EDIT
- // return
-
if(istype(I, /obj/item/reagent_containers/glass) && user.a_intent != INTENT_HARM)
if(beaker)
to_chat(user, "A beaker is already loaded into the machine.")
return
- if(user.drop_item())
- beaker = I
- I.forceMove(src)
- to_chat(user, "You add the beaker to the machine!")
- icon_state = "mixer1b"
- SStgui.update_uis(src)
+ if(!user.drop_item())
+ to_chat(user, "[I] is stuck to you!")
return
- if(exchange_parts(user, I))
+ beaker = I
+ I.forceMove(src)
+ to_chat(user, "You add the beaker to the machine!")
+ icon_state = "mixer1b"
+ SStgui.update_uis(src)
return
return ..()
diff --git a/code/modules/reagents/chemistry/machinery/chem_master.dm b/code/modules/reagents/chemistry/machinery/chem_master.dm
index c90faeb4e0ef..6f6feaa4bfb2 100644
--- a/code/modules/reagents/chemistry/machinery/chem_master.dm
+++ b/code/modules/reagents/chemistry/machinery/chem_master.dm
@@ -112,8 +112,8 @@
update_icon()
/obj/machinery/chem_master/attackby(obj/item/I, mob/user, params)
- if(exchange_parts(user, I))
- return
+ if(istype(I, /obj/item/storage/part_replacer))
+ return ..()
if(panel_open)
to_chat(user, "You can't use [src] while it's panel is opened!")
@@ -123,6 +123,7 @@
if(!user.drop_item())
to_chat(user, "[I] is stuck to you!")
return
+
I.forceMove(src)
if(beaker)
to_chat(usr, "You swap [I] with [beaker] inside.")
diff --git a/code/modules/reagents/chemistry/machinery/reagentgrinder.dm b/code/modules/reagents/chemistry/machinery/reagentgrinder.dm
index 195ee442f91e..85376f0d8e2e 100644
--- a/code/modules/reagents/chemistry/machinery/reagentgrinder.dm
+++ b/code/modules/reagents/chemistry/machinery/reagentgrinder.dm
@@ -32,21 +32,21 @@
/obj/item/stack/sheet/saltpetre_crystal = list("saltpetre" = 8),
// Blender Stuff
- /obj/item/food/snacks/grown/tomato = list("ketchup" = 0),
- /obj/item/food/snacks/grown/wheat = list("flour" = -5),
- /obj/item/food/snacks/grown/oat = list("flour" = -5),
- /obj/item/food/snacks/grown/cherries = list("cherryjelly" = 0),
- /obj/item/food/snacks/grown/bluecherries = list("bluecherryjelly" = 0),
- /obj/item/food/snacks/egg = list("egg" = -5),
- /obj/item/food/snacks/grown/rice = list("rice" = -5),
- /obj/item/food/snacks/grown/olive = list("olivepaste" = 0, "sodiumchloride" = 0),
- /obj/item/food/snacks/grown/peanuts = list("peanutbutter" = 0),
+ /obj/item/food/grown/tomato = list("ketchup" = 0),
+ /obj/item/food/grown/wheat = list("flour" = -5),
+ /obj/item/food/grown/oat = list("flour" = -5),
+ /obj/item/food/grown/cherries = list("cherryjelly" = 0),
+ /obj/item/food/grown/bluecherries = list("bluecherryjelly" = 0),
+ /obj/item/food/egg = list("egg" = -5),
+ /obj/item/food/grown/rice = list("rice" = -5),
+ /obj/item/food/grown/olive = list("olivepaste" = 0, "sodiumchloride" = 0),
+ /obj/item/food/grown/peanuts = list("peanutbutter" = 0),
// Grinder stuff, but only if dry
- /obj/item/food/snacks/grown/coffee/robusta = list("coffeepowder" = 0, "morphine" = 0),
- /obj/item/food/snacks/grown/coffee = list("coffeepowder" = 0),
- /obj/item/food/snacks/grown/tea/astra = list("teapowder" = 0, "salglu_solution" = 0),
- /obj/item/food/snacks/grown/tea = list("teapowder" = 0),
+ /obj/item/food/grown/coffee/robusta = list("coffeepowder" = 0, "morphine" = 0),
+ /obj/item/food/grown/coffee = list("coffeepowder" = 0),
+ /obj/item/food/grown/tea/astra = list("teapowder" = 0, "salglu_solution" = 0),
+ /obj/item/food/grown/tea = list("teapowder" = 0),
// All types that you can put into the grinder to transfer the reagents to the beaker. !Put all recipes above this.!
/obj/item/slime_extract = list(),
@@ -59,32 +59,32 @@
var/list/juice_items = list (
// Juicer Stuff
- /obj/item/food/snacks/grown/soybeans = list("soymilk" = 0),
- /obj/item/food/snacks/grown/corn = list("corn_starch" = 0),
- /obj/item/food/snacks/grown/tomato = list("tomatojuice" = 0),
- /obj/item/food/snacks/grown/carrot = list("carrotjuice" = 0),
- /obj/item/food/snacks/grown/berries = list("berryjuice" = 0),
- /obj/item/food/snacks/grown/banana = list("banana" = 0),
- /obj/item/food/snacks/grown/potato = list("potato" = 0),
- /obj/item/food/snacks/grown/citrus/lemon = list("lemonjuice" = 0),
- /obj/item/food/snacks/grown/citrus/orange = list("orangejuice" = 0),
- /obj/item/food/snacks/grown/citrus/lime = list("limejuice" = 0),
- /obj/item/food/snacks/grown/watermelon = list("watermelonjuice" = 0),
- /obj/item/food/snacks/watermelonslice = list("watermelonjuice" = 0),
- /obj/item/food/snacks/grown/berries/poison = list("poisonberryjuice" = 0),
- /obj/item/food/snacks/grown/pumpkin/blumpkin = list("blumpkinjuice" = 0), // Order is important here as blumpkin is a subtype of pumpkin, if switched blumpkins will produce pumpkin juice
- /obj/item/food/snacks/grown/pumpkin = list("pumpkinjuice" = 0),
- /obj/item/food/snacks/grown/apple = list("applejuice" = 0),
- /obj/item/food/snacks/grown/grapes = list("grapejuice" = 0),
- /obj/item/food/snacks/grown/pineapple = list("pineapplejuice" = 0)
+ /obj/item/food/grown/soybeans = list("soymilk" = 0),
+ /obj/item/food/grown/corn = list("corn_starch" = 0),
+ /obj/item/food/grown/tomato = list("tomatojuice" = 0),
+ /obj/item/food/grown/carrot = list("carrotjuice" = 0),
+ /obj/item/food/grown/berries = list("berryjuice" = 0),
+ /obj/item/food/grown/banana = list("banana" = 0),
+ /obj/item/food/grown/potato = list("potato" = 0),
+ /obj/item/food/grown/citrus/lemon = list("lemonjuice" = 0),
+ /obj/item/food/grown/citrus/orange = list("orangejuice" = 0),
+ /obj/item/food/grown/citrus/lime = list("limejuice" = 0),
+ /obj/item/food/grown/watermelon = list("watermelonjuice" = 0),
+ /obj/item/food/watermelonslice = list("watermelonjuice" = 0),
+ /obj/item/food/grown/berries/poison = list("poisonberryjuice" = 0),
+ /obj/item/food/grown/pumpkin/blumpkin = list("blumpkinjuice" = 0), // Order is important here as blumpkin is a subtype of pumpkin, if switched blumpkins will produce pumpkin juice
+ /obj/item/food/grown/pumpkin = list("pumpkinjuice" = 0),
+ /obj/item/food/grown/apple = list("applejuice" = 0),
+ /obj/item/food/grown/grapes = list("grapejuice" = 0),
+ /obj/item/food/grown/pineapple = list("pineapplejuice" = 0)
)
var/list/dried_items = list(
// Grinder stuff, but only if dry,
- /obj/item/food/snacks/grown/coffee/robusta = list("coffeepowder" = 0, "morphine" = 0),
- /obj/item/food/snacks/grown/coffee = list("coffeepowder" = 0),
- /obj/item/food/snacks/grown/tea/astra = list("teapowder" = 0, "salglu_solution" = 0),
- /obj/item/food/snacks/grown/tea = list("teapowder" = 0)
+ /obj/item/food/grown/coffee/robusta = list("coffeepowder" = 0, "morphine" = 0),
+ /obj/item/food/grown/coffee = list("coffeepowder" = 0),
+ /obj/item/food/grown/tea/astra = list("teapowder" = 0, "salglu_solution" = 0),
+ /obj/item/food/grown/tea = list("teapowder" = 0)
)
var/list/holdingitems = list()
@@ -157,7 +157,8 @@
default_unfasten_wrench(user, I)
/obj/machinery/reagentgrinder/attackby(obj/item/I, mob/user, params)
- if(exchange_parts(user, I))
+ if(istype(I, /obj/item/storage/part_replacer))
+ ..()
SStgui.update_uis(src)
return
@@ -169,6 +170,7 @@
else
if(!user.drop_item())
return FALSE
+
beaker = I
beaker.loc = src
update_icon(UPDATE_ICON_STATE)
@@ -176,8 +178,8 @@
return TRUE // No afterattack
if(is_type_in_list(I, dried_items))
- if(istype(I, /obj/item/food/snacks/grown))
- var/obj/item/food/snacks/grown/G = I
+ if(istype(I, /obj/item/food/grown))
+ var/obj/item/food/grown/G = I
if(!G.dry)
to_chat(user, "You must dry that first!")
return FALSE
@@ -206,6 +208,7 @@
if(length(B.contents) == original_contents_len)
to_chat(user, "Nothing in [B] can be put into the All-In-One grinder.")
return FALSE
+
else if(!length(B.contents))
to_chat(user, "You empty all of [B]'s contents into the All-In-One grinder.")
else
@@ -353,7 +356,7 @@
if(istype(O, i))
return blend_items[i]
-/obj/machinery/reagentgrinder/proc/get_special_juice(obj/item/food/snacks/O)
+/obj/machinery/reagentgrinder/proc/get_special_juice(obj/item/food/O)
for(var/i in juice_items)
if(istype(O, i))
return juice_items[i]
@@ -366,7 +369,7 @@
else
return round(O.seed.potency)
-/obj/machinery/reagentgrinder/proc/get_juice_amount(obj/item/food/snacks/grown/O)
+/obj/machinery/reagentgrinder/proc/get_juice_amount(obj/item/food/grown/O)
if(!istype(O) || !O.seed)
return 5
else if(O.seed.potency == -1)
@@ -396,7 +399,7 @@
SStgui.update_uis(src)
// Snacks
- for(var/obj/item/food/snacks/O in holdingitems)
+ for(var/obj/item/food/O in holdingitems)
var/list/special_juice = get_special_juice(O)
if(!length(special_juice))
continue // Ignore food that doesn't juice into anything
@@ -431,7 +434,7 @@
SStgui.update_uis(src)
// Snacks and Plants
- for(var/obj/item/food/snacks/O in holdingitems)
+ for(var/obj/item/food/O in holdingitems)
var/list/special_blend = get_special_blend(O)
for(var/r_id in special_blend)
var/space = beaker.reagents.maximum_volume - beaker.reagents.total_volume
diff --git a/code/modules/reagents/chemistry/reagents/food_reagents.dm b/code/modules/reagents/chemistry/reagents/food_reagents.dm
index c4719868392a..a983c66b1a00 100644
--- a/code/modules/reagents/chemistry/reagents/food_reagents.dm
+++ b/code/modules/reagents/chemistry/reagents/food_reagents.dm
@@ -567,7 +567,7 @@
/datum/reagent/consumable/chocolate/reaction_turf(turf/T, volume)
if(volume >= 5 && !isspaceturf(T))
- new /obj/item/food/snacks/choc_pile(T)
+ new /obj/item/food/choc_pile(T)
/datum/reagent/consumable/mugwort
name = "Mugwort"
@@ -635,7 +635,7 @@
/datum/reagent/consumable/cheese/reaction_turf(turf/T, volume)
if(volume >= 5 && !isspaceturf(T))
- new /obj/item/food/snacks/cheesewedge(T)
+ new /obj/item/food/cheesewedge(T)
/datum/reagent/consumable/fake_cheese
name = "Cheese substitute"
@@ -677,7 +677,7 @@
/datum/reagent/consumable/weird_cheese/reaction_turf(turf/T, volume)
if(volume >= 5 && !isspaceturf(T))
- new /obj/item/food/snacks/weirdcheesewedge(T)
+ new /obj/item/food/weirdcheesewedge(T)
/datum/reagent/consumable/beans
name = "Refried beans"
@@ -905,11 +905,11 @@
/datum/reagent/ectoplasm/reaction_turf(turf/T, volume)
if(volume >= 10 && !isspaceturf(T))
- new /obj/item/food/snacks/ectoplasm(T)
+ new /obj/item/food/ectoplasm(T)
/datum/reagent/consumable/bread/reaction_turf(turf/T, volume)
if(volume >= 5 && !isspaceturf(T))
- new /obj/item/food/snacks/breadslice(T)
+ new /obj/item/food/breadslice(T)
/datum/reagent/soap
name = "Soap"
diff --git a/code/modules/reagents/chemistry/reagents/water.dm b/code/modules/reagents/chemistry/reagents/water.dm
index c5c811b7a678..9c5388ac9299 100644
--- a/code/modules/reagents/chemistry/reagents/water.dm
+++ b/code/modules/reagents/chemistry/reagents/water.dm
@@ -141,11 +141,11 @@
data["cloneable"] = 0 // On mix, consider the genetic sampling unviable for pod cloning, or else we won't know who's even getting cloned
if(type_mismatch || species_mismatch)
- data["species"] = "Coagulated blood"
+ data["species"] = "Coagulated"
data["blood_type"] = "UNUSABLE!"
data["species_only"] = species_unique
else if(!same_species) // Same blood type, species-agnostic, but we're still mixing blood of different species
- data["species"] = "Mixed humanoid blood"
+ data["species"] = "Mixed Humanoid"
if(data["viruses"] || mix_data["viruses"])
var/list/mix1 = data["viruses"]
diff --git a/code/modules/reagents/chemistry/recipes/food_reactions.dm b/code/modules/reagents/chemistry/recipes/food_reactions.dm
index b91a8a25bccb..4a0ab9df0074 100644
--- a/code/modules/reagents/chemistry/recipes/food_reactions.dm
+++ b/code/modules/reagents/chemistry/recipes/food_reactions.dm
@@ -10,7 +10,7 @@
/datum/chemical_reaction/tofu/on_reaction(datum/reagents/holder, created_volume)
var/location = get_turf(holder.my_atom)
for(var/i = 1, i <= created_volume, i++)
- new /obj/item/food/snacks/tofu(location)
+ new /obj/item/food/tofu(location)
/datum/chemical_reaction/chocolate_bar
name = "Chocolate Bar"
@@ -22,7 +22,7 @@
/datum/chemical_reaction/chocolate_bar/on_reaction(datum/reagents/holder, created_volume)
var/location = get_turf(holder.my_atom)
for(var/i = 1, i <= created_volume, i++)
- new /obj/item/food/snacks/chocolatebar(location)
+ new /obj/item/food/chocolatebar(location)
/datum/chemical_reaction/chocolate_bar2
name = "Chocolate Bar"
@@ -34,7 +34,7 @@
/datum/chemical_reaction/chocolate_bar2/on_reaction(datum/reagents/holder, created_volume)
var/location = get_turf(holder.my_atom)
for(var/i = 1, i <= created_volume, i++)
- new /obj/item/food/snacks/chocolatebar(location)
+ new /obj/item/food/chocolatebar(location)
/datum/chemical_reaction/soysauce
name = "Soy Sauce"
@@ -75,7 +75,7 @@
/datum/chemical_reaction/cheesewheel/on_reaction(datum/reagents/holder, created_volume)
var/location = get_turf(holder.my_atom)
for(var/i = 1, i <= created_volume, i++)
- new /obj/item/food/snacks/sliceable/cheesewheel(location)
+ new /obj/item/food/sliceable/cheesewheel(location)
/datum/chemical_reaction/syntiflesh
name = "Syntiflesh"
@@ -87,7 +87,7 @@
/datum/chemical_reaction/syntiflesh/on_reaction(datum/reagents/holder, created_volume)
var/location = get_turf(holder.my_atom)
for(var/i = 1, i <= created_volume, i++)
- new /obj/item/food/snacks/meat/syntiflesh(location)
+ new /obj/item/food/meat/syntiflesh(location)
/datum/chemical_reaction/hot_ramen
name = "Hot Ramen"
@@ -114,7 +114,7 @@
/datum/chemical_reaction/dough/on_reaction(datum/reagents/holder, created_volume)
var/location = get_turf(holder.my_atom)
for(var/i in 1 to created_volume)
- new /obj/item/food/snacks/dough(location)
+ new /obj/item/food/dough(location)
///Cookies by Ume
@@ -129,7 +129,7 @@
/datum/chemical_reaction/cookiedough/on_reaction(datum/reagents/holder, created_volume)
var/location = get_turf(holder.my_atom)
for(var/i in 1 to created_volume)
- new /obj/item/food/snacks/cookiedough(location)
+ new /obj/item/food/cookiedough(location)
/datum/chemical_reaction/corn_syrup
@@ -183,7 +183,7 @@
/datum/chemical_reaction/weird_cheese/on_reaction(datum/reagents/holder, created_volume)
var/location = get_turf(holder.my_atom)
for(var/i in 1 to created_volume)
- new /obj/item/food/snacks/weirdcheesewedge(location)
+ new /obj/item/food/weirdcheesewedge(location)
/datum/chemical_reaction/hydrogenated_soybeanoil
name = "Partially hydrogenated space-soybean oil"
diff --git a/code/modules/reagents/chemistry/recipes/others.dm b/code/modules/reagents/chemistry/recipes/others.dm
index e60da3a4409c..50c817a6d894 100644
--- a/code/modules/reagents/chemistry/recipes/others.dm
+++ b/code/modules/reagents/chemistry/recipes/others.dm
@@ -260,7 +260,7 @@
/datum/chemical_reaction/meatification/on_reaction(datum/reagents/holder, created_volume)
var/location = get_turf(holder.my_atom)
- new /obj/item/food/snacks/meat/slab/meatproduct(location)
+ new /obj/item/food/meat/slab/meatproduct(location)
/datum/chemical_reaction/lye
name = "lye"
diff --git a/code/modules/reagents/chemistry/recipes/slime_extracts.dm b/code/modules/reagents/chemistry/recipes/slime_extracts.dm
index d308b3d95394..5e1c90749583 100644
--- a/code/modules/reagents/chemistry/recipes/slime_extracts.dm
+++ b/code/modules/reagents/chemistry/recipes/slime_extracts.dm
@@ -38,7 +38,7 @@
/datum/chemical_reaction/slimemonkey/on_reaction(datum/reagents/holder)
SSblackbox.record_feedback("tally", "slime_cores_used", 1, type)
for(var/i = 1, i <= 3, i++)
- var/obj/item/food/snacks/monkeycube/M = new /obj/item/food/snacks/monkeycube
+ var/obj/item/food/monkeycube/M = new /obj/item/food/monkeycube
M.forceMove(get_turf(holder.my_atom))
//Green
@@ -149,37 +149,37 @@
SSblackbox.record_feedback("tally", "slime_cores_used", 1, type)
var/list/blocked = list(
- /obj/item/food/snacks,
- /obj/item/food/snacks/breadslice,
- /obj/item/food/snacks/sliceable,
- /obj/item/food/snacks/sliceable/pizza,
- /obj/item/food/snacks/margheritapizzaslice,
- /obj/item/food/snacks/meatpizzaslice,
- /obj/item/food/snacks/mushroompizzaslice,
- /obj/item/food/snacks/vegetablepizzaslice,
- /obj/item/food/snacks/cheesepizzaslice,
- /obj/item/food/snacks/garlicpizzaslice,
- /obj/item/food/snacks/donkpocketpizzaslice,
- /obj/item/food/snacks/dankpizzaslice,
- /obj/item/food/snacks/macpizzaslice,
- /obj/item/food/snacks/firecrackerpizzaslice,
- /obj/item/food/snacks/pestopizzaslice,
- /obj/item/food/snacks/pepperonipizzaslice,
- /obj/item/food/snacks/meat,
- /obj/item/food/snacks/meat/slab,
- /obj/item/food/snacks/grown,
- /obj/item/food/snacks/grown/shell,
- /obj/item/food/snacks/grown/mushroom,
- /obj/item/food/snacks/deepfryholder,
- /obj/item/food/snacks/chinese,
- /obj/item/food/snacks/human,
- /obj/item/food/snacks/monstermeat,
- /obj/item/food/snacks/meatsteak/stimulating,
- /obj/item/food/snacks/egg/watcher
+ /obj/item/food,
+ /obj/item/food/breadslice,
+ /obj/item/food/sliceable,
+ /obj/item/food/sliceable/pizza,
+ /obj/item/food/margheritapizzaslice,
+ /obj/item/food/meatpizzaslice,
+ /obj/item/food/mushroompizzaslice,
+ /obj/item/food/vegetablepizzaslice,
+ /obj/item/food/cheesepizzaslice,
+ /obj/item/food/garlicpizzaslice,
+ /obj/item/food/donkpocketpizzaslice,
+ /obj/item/food/dankpizzaslice,
+ /obj/item/food/macpizzaslice,
+ /obj/item/food/firecrackerpizzaslice,
+ /obj/item/food/pestopizzaslice,
+ /obj/item/food/pepperonipizzaslice,
+ /obj/item/food/meat,
+ /obj/item/food/meat/slab,
+ /obj/item/food/grown,
+ /obj/item/food/grown/shell,
+ /obj/item/food/grown/mushroom,
+ /obj/item/food/deepfryholder,
+ /obj/item/food/chinese,
+ /obj/item/food/human,
+ /obj/item/food/monstermeat,
+ /obj/item/food/meatsteak/stimulating,
+ /obj/item/food/egg/watcher
)
- blocked |= typesof(/obj/item/food/snacks/customizable)
+ blocked |= typesof(/obj/item/food/customizable)
- var/list/borks = typesof(/obj/item/food/snacks) - blocked
+ var/list/borks = typesof(/obj/item/food) - blocked
// BORK BORK BORK
playsound(get_turf(holder.my_atom), 'sound/effects/phasein.ogg', 100, 1)
diff --git a/code/modules/research/circuitprinter.dm b/code/modules/research/circuitprinter.dm
index e24bb0303916..4728e195f695 100644
--- a/code/modules/research/circuitprinter.dm
+++ b/code/modules/research/circuitprinter.dm
@@ -75,15 +75,17 @@ using metal and glass, it uses glass and reagents (usually sulfuric acis).
return round(A / max(1, (all_materials[M] * efficiency_coeff)))
/obj/machinery/r_n_d/circuit_imprinter/attackby(obj/item/O as obj, mob/user as mob, params)
- if(exchange_parts(user, O))
- return
+ if(istype(O, /obj/item/storage/part_replacer))
+ return ..()
+
if(panel_open)
to_chat(user, "You can't load [src] while it's opened.")
return
+
if(O.is_open_container())
return FALSE
- else
- return ..()
+
+ return ..()
/obj/machinery/r_n_d/circuit_imprinter/crowbar_act(mob/living/user, obj/item/I)
if(!panel_open)
diff --git a/code/modules/research/designs/biogenerator_designs.dm b/code/modules/research/designs/biogenerator_designs.dm
index a067cdbbbaec..4cfa6c723c94 100644
--- a/code/modules/research/designs/biogenerator_designs.dm
+++ b/code/modules/research/designs/biogenerator_designs.dm
@@ -56,7 +56,7 @@
id = "mcube"
build_type = BIOGENERATOR
materials = list(MAT_BIOMASS = 250)
- build_path = /obj/item/food/snacks/monkeycube
+ build_path = /obj/item/food/monkeycube
category = list("initial", "Food")
/datum/design/farwa_cube
@@ -64,7 +64,7 @@
id = "fcube"
build_type = BIOGENERATOR
materials = list(MAT_BIOMASS = 250)
- build_path = /obj/item/food/snacks/monkeycube/farwacube
+ build_path = /obj/item/food/monkeycube/farwacube
category = list("initial", "Food")
/datum/design/wolpin_cube
@@ -72,7 +72,7 @@
id = "wcube"
build_type = BIOGENERATOR
materials = list(MAT_BIOMASS = 250)
- build_path = /obj/item/food/snacks/monkeycube/wolpincube
+ build_path = /obj/item/food/monkeycube/wolpincube
category = list("initial", "Food")
/datum/design/stok_cube
@@ -80,7 +80,7 @@
id = "scube"
build_type = BIOGENERATOR
materials = list(MAT_BIOMASS = 250)
- build_path = /obj/item/food/snacks/monkeycube/stokcube
+ build_path = /obj/item/food/monkeycube/stokcube
category = list("initial", "Food")
/datum/design/neaera_cube
@@ -88,7 +88,7 @@
id = "ncube"
build_type = BIOGENERATOR
materials = list(MAT_BIOMASS = 250)
- build_path = /obj/item/food/snacks/monkeycube/neaeracube
+ build_path = /obj/item/food/monkeycube/neaeracube
category = list("initial", "Food")
/datum/design/nian_wormecube
@@ -96,7 +96,7 @@
id = "nwcube"
build_type = BIOGENERATOR
materials = list(MAT_BIOMASS = 250)
- build_path = /obj/item/food/snacks/monkeycube/nian_wormecube
+ build_path = /obj/item/food/monkeycube/nian_wormecube
category = list("initial", "Food")
/datum/design/ez_nut
diff --git a/code/modules/research/destructive_analyzer.dm b/code/modules/research/destructive_analyzer.dm
index 4b1dd9d3eae5..ffb50d0c5e8d 100644
--- a/code/modules/research/destructive_analyzer.dm
+++ b/code/modules/research/destructive_analyzer.dm
@@ -49,6 +49,9 @@ Note: Must be placed within 3 tiles of the R&D Console
/obj/machinery/r_n_d/destructive_analyzer/attackby(obj/item/O as obj, mob/user as mob, params)
+ if(istype(O, /obj/item/storage/part_replacer))
+ return ..()
+
if(default_deconstruction_screwdriver(user, "d_analyzer_t", "d_analyzer", O))
if(linked_console)
linked_console.linked_destroy = null
@@ -73,13 +76,16 @@ Note: Must be placed within 3 tiles of the R&D Console
if(!O.origin_tech)
to_chat(user, "This doesn't seem to have a tech origin!")
return
+
var/list/temp_tech = ConvertReqString2List(O.origin_tech)
if(length(temp_tech) == 0)
to_chat(user, "You cannot deconstruct this item!")
return
+
if(!user.drop_item())
to_chat(user, "[O] is stuck to your hand, you cannot put it in [src]!")
return
+
busy = TRUE
loaded_item = O
O.loc = src
diff --git a/code/modules/research/experimentor.dm b/code/modules/research/experimentor.dm
index 1784c5849709..edadddf3648f 100644
--- a/code/modules/research/experimentor.dm
+++ b/code/modules/research/experimentor.dm
@@ -99,8 +99,8 @@
return TRUE
/obj/machinery/r_n_d/experimentor/attackby(obj/item/O, mob/user, params)
- if(exchange_parts(user, O))
- return
+ if(istype(O, /obj/item/storage/part_replacer))
+ return ..()
if(!checkCircumstances(O))
to_chat(user, "[O] is not yet valid for [src] and must be completed!")
@@ -118,12 +118,15 @@
if(!O.origin_tech)
to_chat(user, "This doesn't seem to have a tech origin!")
return
+
var/list/temp_tech = ConvertReqString2List(O.origin_tech)
if(length(temp_tech) == 0)
to_chat(user, "You cannot experiment on this item!")
return
+
if(!user.drop_item())
return
+
loaded_item = O
O.loc = src
to_chat(user, "You add [O] to the machine.")
diff --git a/code/modules/research/protolathe.dm b/code/modules/research/protolathe.dm
index 8708de882fca..eb0e7f7c2c9a 100644
--- a/code/modules/research/protolathe.dm
+++ b/code/modules/research/protolathe.dm
@@ -77,23 +77,23 @@ Note: Must be placed west/left of and R&D console to function.
return A
/obj/machinery/r_n_d/protolathe/attackby(obj/item/O as obj, mob/user as mob, params)
+ if(istype(O, /obj/item/storage/part_replacer))
+ return ..()
+
if(default_deconstruction_screwdriver(user, "protolathe_t", "protolathe", O))
if(linked_console)
linked_console.linked_lathe = null
linked_console = null
return FALSE
- if(exchange_parts(user, O))
- return FALSE
-
if(panel_open)
to_chat(user, "You can't load [src] while it's opened.")
return TRUE
if(O.is_open_container())
return FALSE
- else
- return ..()
+
+ return ..()
/obj/machinery/r_n_d/protolathe/crowbar_act(mob/living/user, obj/item/I)
if(!panel_open)
diff --git a/code/modules/research/server.dm b/code/modules/research/server.dm
index bf5e7e72d116..7cad823802a4 100644
--- a/code/modules/research/server.dm
+++ b/code/modules/research/server.dm
@@ -147,11 +147,6 @@
removed.set_temperature(min((removed.temperature() * heat_capacity + server.heating_power) / heat_capacity, 1000))
env.merge(removed)
-/obj/machinery/r_n_d/server/attackby(obj/item/O as obj, mob/user as mob, params)
- if(exchange_parts(user, O))
- return TRUE
- return ..()
-
/obj/machinery/r_n_d/server/crowbar_act(mob/living/user, obj/item/I)
if(!panel_open)
return
diff --git a/code/modules/research/xenobiology/xenobio_camera.dm b/code/modules/research/xenobiology/xenobio_camera.dm
index 8e7983677ea7..321ac482dce4 100644
--- a/code/modules/research/xenobiology/xenobio_camera.dm
+++ b/code/modules/research/xenobiology/xenobio_camera.dm
@@ -177,7 +177,7 @@
return ..()
/obj/machinery/computer/camera_advanced/xenobio/attackby(obj/item/O, mob/user, params)
- if(istype(O, /obj/item/food/snacks/monkeycube))
+ if(istype(O, /obj/item/food/monkeycube))
if(user.drop_item())
monkeys++
to_chat(user, "You feed [O] to [src]. It now has [monkeys] monkey cubes stored.")
@@ -192,7 +192,7 @@
else if(istype(O, /obj/item/storage/bag) || istype(O, /obj/item/storage/box))
var/obj/item/storage/P = O
var/loaded = 0
- for(var/obj/item/food/snacks/monkeycube/MC in P.contents)
+ for(var/obj/item/food/monkeycube/MC in P.contents)
loaded = 1
monkeys++
P.remove_from_storage(MC)
@@ -282,17 +282,17 @@
else if(X.monkeys >= 1)
var/mob/living/carbon/human/monkey/food
switch(recycler.cube_type)
- if(/obj/item/food/snacks/monkeycube) // Regular monkey
+ if(/obj/item/food/monkeycube) // Regular monkey
food = new /mob/living/carbon/human/monkey(remote_eye.loc)
- if(/obj/item/food/snacks/monkeycube/nian_wormecube) // Worme
+ if(/obj/item/food/monkeycube/nian_wormecube) // Worme
food = new /mob/living/carbon/human/nian_worme(remote_eye.loc)
- if(/obj/item/food/snacks/monkeycube/farwacube) // Farwa
+ if(/obj/item/food/monkeycube/farwacube) // Farwa
food = new /mob/living/carbon/human/farwa(remote_eye.loc)
- if(/obj/item/food/snacks/monkeycube/stokcube) // Stok
+ if(/obj/item/food/monkeycube/stokcube) // Stok
food = new /mob/living/carbon/human/stok(remote_eye.loc)
- if(/obj/item/food/snacks/monkeycube/neaeracube) // Neara
+ if(/obj/item/food/monkeycube/neaeracube) // Neara
food = new /mob/living/carbon/human/neara(remote_eye.loc)
- if(/obj/item/food/snacks/monkeycube/wolpincube) // Wolpin
+ if(/obj/item/food/monkeycube/wolpincube) // Wolpin
food = new /mob/living/carbon/human/wolpin(remote_eye.loc)
SSmobs.cubemonkeys += food
food.LAssailant = C
@@ -494,17 +494,17 @@
if(X.monkeys >= 1)
var/mob/living/carbon/human/monkey/food
switch(recycler.cube_type)
- if(/obj/item/food/snacks/monkeycube) // Regular monkey
+ if(/obj/item/food/monkeycube) // Regular monkey
food = new /mob/living/carbon/human/monkey(T)
- if(/obj/item/food/snacks/monkeycube/nian_wormecube) // Worme
+ if(/obj/item/food/monkeycube/nian_wormecube) // Worme
food = new /mob/living/carbon/human/nian_worme(T)
- if(/obj/item/food/snacks/monkeycube/farwacube) // Farwa
+ if(/obj/item/food/monkeycube/farwacube) // Farwa
food = new /mob/living/carbon/human/farwa(T)
- if(/obj/item/food/snacks/monkeycube/stokcube) // Stok
+ if(/obj/item/food/monkeycube/stokcube) // Stok
food = new /mob/living/carbon/human/stok(T)
- if(/obj/item/food/snacks/monkeycube/neaeracube) // Neara
+ if(/obj/item/food/monkeycube/neaeracube) // Neara
food = new /mob/living/carbon/human/neara(T)
- if(/obj/item/food/snacks/monkeycube/wolpincube) // Wolpin
+ if(/obj/item/food/monkeycube/wolpincube) // Wolpin
food = new /mob/living/carbon/human/wolpin(T)
food.LAssailant = C
X.monkeys--
diff --git a/code/modules/ruins/lavalandruin_code/puzzle.dm b/code/modules/ruins/lavalandruin_code/puzzle.dm
index 882390fe9f56..5ee35c7fa259 100644
--- a/code/modules/ruins/lavalandruin_code/puzzle.dm
+++ b/code/modules/ruins/lavalandruin_code/puzzle.dm
@@ -7,7 +7,7 @@
var/list/elements
var/floor_type = /turf/simulated/floor/vault/lavaland_air
var/finished = FALSE
- var/reward_type = /obj/item/food/snacks/cookie
+ var/reward_type = /obj/item/food/cookie
var/element_type = /obj/structure/puzzle_element
var/auto_setup = TRUE
var/empty_tile_id
diff --git a/code/modules/ruins/lavalandruin_code/seed_vault.dm b/code/modules/ruins/lavalandruin_code/seed_vault.dm
index 54b7f64c2f54..261c22ef4882 100644
--- a/code/modules/ruins/lavalandruin_code/seed_vault.dm
+++ b/code/modules/ruins/lavalandruin_code/seed_vault.dm
@@ -2,7 +2,7 @@
name = "seed vault seeds"
lootcount = 1
- loot = list(/obj/item/food/snacks/grown/mushroom/glowshroom/glowcap = 10,
+ loot = list(/obj/item/food/grown/mushroom/glowshroom/glowcap = 10,
/obj/item/seeds/cherry/bomb = 10,
/obj/item/seeds/berry/glow = 10,
/obj/item/seeds/sunflower/moonflower = 8
diff --git a/code/modules/station_goals/bluespace_tap.dm b/code/modules/station_goals/bluespace_tap.dm
index 26e608a566ab..c488d6fd82fa 100644
--- a/code/modules/station_goals/bluespace_tap.dm
+++ b/code/modules/station_goals/bluespace_tap.dm
@@ -153,25 +153,25 @@
name = "fancy food"
lootcount = 3
loot = list(
- /obj/item/food/snacks/wingfangchu,
- /obj/item/food/snacks/hotdog,
- /obj/item/food/snacks/sliceable/turkey,
- /obj/item/food/snacks/plumphelmetbiscuit,
- /obj/item/food/snacks/appletart,
- /obj/item/food/snacks/sliceable/cheesecake,
- /obj/item/food/snacks/sliceable/bananacake,
- /obj/item/food/snacks/sliceable/chocolatecake,
- /obj/item/food/snacks/soup/meatballsoup,
- /obj/item/food/snacks/soup/mysterysoup,
- /obj/item/food/snacks/soup/stew,
- /obj/item/food/snacks/soup/hotchili,
- /obj/item/food/snacks/burrito,
- /obj/item/food/snacks/fishburger,
- /obj/item/food/snacks/cubancarp,
- /obj/item/food/snacks/fishandchips,
- /obj/item/food/snacks/meatpie,
+ /obj/item/food/wingfangchu,
+ /obj/item/food/hotdog,
+ /obj/item/food/sliceable/turkey,
+ /obj/item/food/plumphelmetbiscuit,
+ /obj/item/food/appletart,
+ /obj/item/food/sliceable/cheesecake,
+ /obj/item/food/sliceable/bananacake,
+ /obj/item/food/sliceable/chocolatecake,
+ /obj/item/food/soup/meatballsoup,
+ /obj/item/food/soup/mysterysoup,
+ /obj/item/food/soup/stew,
+ /obj/item/food/soup/hotchili,
+ /obj/item/food/burrito,
+ /obj/item/food/fishburger,
+ /obj/item/food/cubancarp,
+ /obj/item/food/fishandchips,
+ /obj/item/food/meatpie,
/obj/item/pizzabox/hawaiian, //it ONLY gives hawaiian. MUHAHAHA
- /obj/item/food/snacks/sliceable/xenomeatbread //maybe add some dangerous/special food here, ie robobuger?
+ /obj/item/food/sliceable/xenomeatbread //maybe add some dangerous/special food here, ie robobuger?
)
#define kW *1000
diff --git a/code/modules/station_goals/secondary/kitchen/random_bulk_food.dm b/code/modules/station_goals/secondary/kitchen/random_bulk_food.dm
index cc3296af2f17..65141215e627 100644
--- a/code/modules/station_goals/secondary/kitchen/random_bulk_food.dm
+++ b/code/modules/station_goals/secondary/kitchen/random_bulk_food.dm
@@ -3,14 +3,14 @@
department = "Kitchen"
progress_type = /datum/secondary_goal_progress/random_bulk_food
abstract = FALSE
- var/obj/item/food/snacks/food_type
+ var/obj/item/food/food_type
var/amount
var/reward
/datum/station_goal/secondary/random_bulk_food/randomize_params()
var/list/valid_food = list()
- for(var/S in subtypesof(/obj/item/food/snacks))
- var/obj/item/food/snacks/candidate = S
+ for(var/S in subtypesof(/obj/item/food))
+ var/obj/item/food/candidate = S
if(initial(candidate.goal_difficulty) == FOOD_GOAL_SKIP)
continue
if(initial(candidate.goal_difficulty) == FOOD_GOAL_EXCESSIVE)
@@ -18,7 +18,7 @@
valid_food += candidate
if(!valid_food)
- food_type = /obj/item/food/snacks/cheesewedge
+ food_type = /obj/item/food/cheesewedge
amount = 50
return
@@ -39,7 +39,7 @@
/datum/secondary_goal_progress/random_bulk_food
- var/obj/item/food/snacks/food_type
+ var/obj/item/food/food_type
var/needed
var/sent = 0
var/sent_this_shipment = 0
diff --git a/code/modules/station_goals/secondary/science/random_ripley.dm b/code/modules/station_goals/secondary/science/random_ripley.dm
index 33d63b6cf32b..3486ea8b3eef 100644
--- a/code/modules/station_goals/secondary/science/random_ripley.dm
+++ b/code/modules/station_goals/secondary/science/random_ripley.dm
@@ -38,7 +38,7 @@
/datum/secondary_goal_progress/random_ripley
- var/obj/item/food/snacks/food_type
+ var/obj/item/food/food_type
var/list/modules
var/sent = FALSE
diff --git a/code/modules/station_goals/shield.dm b/code/modules/station_goals/shield.dm
index a1e487034ab4..aef290bc8493 100644
--- a/code/modules/station_goals/shield.dm
+++ b/code/modules/station_goals/shield.dm
@@ -173,7 +173,7 @@
if(!emagged && space_los(M))
Beam(get_turf(M), icon_state = "sat_beam", time = 5, maxdistance = kill_range)
if(istype(M, /obj/effect/space_dust/meaty))
- new /obj/item/food/snacks/meatsteak(get_turf(M))
+ new /obj/item/food/meatsteak(get_turf(M))
qdel(M)
/obj/machinery/satellite/meteor_shield/toggle(user)
diff --git a/code/modules/supply/supply_packs/pack_organic.dm b/code/modules/supply/supply_packs/pack_organic.dm
index 017ad9b3324e..eb2ddabe4dc0 100644
--- a/code/modules/supply/supply_packs/pack_organic.dm
+++ b/code/modules/supply/supply_packs/pack_organic.dm
@@ -19,10 +19,10 @@
/obj/item/mixing_bowl,
/obj/item/reagent_containers/condiment/enzyme,
/obj/item/reagent_containers/condiment/sugar,
- /obj/item/food/snacks/meat/monkey,
- /obj/item/food/snacks/grown/banana,
- /obj/item/food/snacks/grown/banana,
- /obj/item/food/snacks/grown/banana)
+ /obj/item/food/meat/monkey,
+ /obj/item/food/grown/banana,
+ /obj/item/food/grown/banana,
+ /obj/item/food/grown/banana)
cost = 250
containername = "food crate"
announce_beacons = list("Kitchen" = list("Kitchen"))
@@ -40,18 +40,18 @@
/// its a bit hacky...
/datum/supply_packs/misc/randomised/ingredients
num_contained = 25
- contains = list(/obj/item/food/snacks/grown/wheat,
- /obj/item/food/snacks/grown/tomato,
- /obj/item/food/snacks/grown/potato,
- /obj/item/food/snacks/grown/carrot,
- /obj/item/food/snacks/grown/pumpkin,
- /obj/item/food/snacks/grown/chili,
- /obj/item/food/snacks/grown/cocoapod,
- /obj/item/food/snacks/grown/corn,
- /obj/item/food/snacks/grown/eggplant,
- /obj/item/food/snacks/grown/apple,
- /obj/item/food/snacks/grown/banana,
- /obj/item/food/snacks/grown/cherries)
+ contains = list(/obj/item/food/grown/wheat,
+ /obj/item/food/grown/tomato,
+ /obj/item/food/grown/potato,
+ /obj/item/food/grown/carrot,
+ /obj/item/food/grown/pumpkin,
+ /obj/item/food/grown/chili,
+ /obj/item/food/grown/cocoapod,
+ /obj/item/food/grown/corn,
+ /obj/item/food/grown/eggplant,
+ /obj/item/food/grown/apple,
+ /obj/item/food/grown/banana,
+ /obj/item/food/grown/cherries)
name = "Ingredient Crate"
cost = 300
containername = "ingredient crate"
diff --git a/code/modules/surgery/organs/organ_datums/heart_datum.dm b/code/modules/surgery/organs/organ_datums/heart_datum.dm
index 1c18c21bed53..d32081ee6b47 100644
--- a/code/modules/surgery/organs/organ_datums/heart_datum.dm
+++ b/code/modules/surgery/organs/organ_datums/heart_datum.dm
@@ -39,7 +39,7 @@
if(!linked_organ.owner)
change_beating(FALSE)
-/datum/organ/heart/on_prepare_eat(obj/item/food/snacks/organ/snorgan)
+/datum/organ/heart/on_prepare_eat(obj/item/food/organ/snorgan)
snorgan.icon_state = linked_organ.dead_icon
/// A subtype that is always beating. Abductor glands and demon hearts use this.
diff --git a/code/modules/surgery/organs/organ_datums/lung_datum.dm b/code/modules/surgery/organs/organ_datums/lung_datum.dm
index cd63160e00bd..ddf0a8f249a2 100644
--- a/code/modules/surgery/organs/organ_datums/lung_datum.dm
+++ b/code/modules/surgery/organs/organ_datums/lung_datum.dm
@@ -308,7 +308,7 @@
linked_organ.owner.AdjustLoseBreath(10 SECONDS)
-/datum/organ/lungs/on_prepare_eat(obj/item/food/snacks/organ/snorgan)
+/datum/organ/lungs/on_prepare_eat(obj/item/food/organ/snorgan)
snorgan.reagents.add_reagent("salbutamol", 5)
diff --git a/code/modules/surgery/organs/organ_datums/organ_datum.dm b/code/modules/surgery/organs/organ_datums/organ_datum.dm
index 7872b984af11..a48df727a1e0 100644
--- a/code/modules/surgery/organs/organ_datums/organ_datum.dm
+++ b/code/modules/surgery/organs/organ_datums/organ_datum.dm
@@ -32,5 +32,5 @@
/datum/organ/proc/on_necrotize()
return FALSE
-/datum/organ/proc/on_prepare_eat(obj/item/food/snacks/organ/snorgan)
+/datum/organ/proc/on_prepare_eat(obj/item/food/organ/snorgan)
return FALSE
diff --git a/code/modules/surgery/organs/organ_internal.dm b/code/modules/surgery/organs/organ_internal.dm
index c9223594c2f6..c53f1285d552 100644
--- a/code/modules/surgery/organs/organ_internal.dm
+++ b/code/modules/surgery/organs/organ_internal.dm
@@ -164,7 +164,7 @@
/obj/item/organ/internal/proc/prepare_eat()
if(is_robotic())
return //no eating cybernetic implants!
- var/obj/item/food/snacks/organ/S = new
+ var/obj/item/food/organ/S = new
S.name = name
S.desc = desc
S.icon = icon
@@ -191,7 +191,7 @@
/obj/item/organ/internal/attack(mob/living/carbon/M, mob/user)
if(M == user && ishuman(user))
var/mob/living/carbon/human/H = user
- var/obj/item/food/snacks/S = prepare_eat()
+ var/obj/item/food/S = prepare_eat()
if(S)
H.drop_item()
H.put_in_active_hand(S)
diff --git a/code/modules/surgery/organs_internal.dm b/code/modules/surgery/organs_internal.dm
index ad26db7047a9..b850e789f921 100644
--- a/code/modules/surgery/organs_internal.dm
+++ b/code/modules/surgery/organs_internal.dm
@@ -388,11 +388,11 @@
name = "implant an organ"
allowed_tools = list(
/obj/item/organ/internal = 100,
- /obj/item/food/snacks/organ = 0 // there for the flavor text
+ /obj/item/food/organ = 0 // there for the flavor text
)
/datum/surgery_step/internal/manipulate_organs/implant/begin_step(mob/living/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
- if(istype(tool, /obj/item/food/snacks/organ))
+ if(istype(tool, /obj/item/food/organ))
to_chat(user, "[tool] was bitten by someone! It's too damaged to use!")
return SURGERY_BEGINSTEP_SKIP
diff --git a/code/modules/telesci/telepad.dm b/code/modules/telesci/telepad.dm
index 002530787f0b..e6975d8b1951 100644
--- a/code/modules/telesci/telepad.dm
+++ b/code/modules/telesci/telepad.dm
@@ -35,11 +35,6 @@
E += C.rating
efficiency = E
-/obj/machinery/telepad/attackby(obj/item/I, mob/user, params)
- if(exchange_parts(user, I))
- return
- return ..()
-
/obj/machinery/telepad/screwdriver_act(mob/user, obj/item/I)
. = TRUE
default_deconstruction_screwdriver(user, "pad-idle-o", "pad-idle", I)
diff --git a/config/example/config.toml b/config/example/config.toml
index 6be7e6d2adae..3acd78d30948 100644
--- a/config/example/config.toml
+++ b/config/example/config.toml
@@ -694,6 +694,7 @@ active_space_ruins = [
"_maps/map_files/RandomRuins/SpaceRuins/voyager.dmm",
"_maps/map_files/RandomRuins/SpaceRuins/wreckedcargoship.dmm",
"_maps/map_files/RandomRuins/SpaceRuins/abandoned_engi_sat.dmm",
+ "_maps/map_files/RandomRuins/SpaceRuins/telecomns_returns.dmm",
"_maps/map_files/RandomRuins/SpaceRuins/casino.dmm",
"_maps/map_files/RandomRuins/SpaceRuins/rocky_motel.dmm",
## SS220 Ruins
diff --git a/config/names/codeword_locations.txt b/config/names/codeword_locations.txt
new file mode 100644
index 000000000000..72ae2c75747b
--- /dev/null
+++ b/config/names/codeword_locations.txt
@@ -0,0 +1,22 @@
+armory
+arrivals
+atmospherics
+bar
+botany
+bridge
+brig
+cargo
+chemistry
+departures
+dormitories
+engineering
+genetics
+holodeck
+kitchen
+library
+maintenance
+medbay
+morgue
+robotics
+science
+xenobiology
\ No newline at end of file
diff --git a/config/names/codeword_nouns.txt b/config/names/codeword_nouns.txt
new file mode 100644
index 000000000000..8538ca0dd575
--- /dev/null
+++ b/config/names/codeword_nouns.txt
@@ -0,0 +1,51 @@
+anger
+beauty
+belief
+box
+bravery
+brilliance
+camera
+charity
+compassion
+courage
+crate
+culture
+deceit
+dedication
+diamond
+dream
+education
+faith
+friendship
+glass
+gold
+hate
+honesty
+hospitality
+information
+integrity
+iron
+justice
+knowledge
+laser
+leisure
+liberty
+love
+loyalty
+misery
+pain
+peace
+plasma
+pride
+progress
+relaxation
+robot
+skill
+success
+sympathy
+thought
+titanium
+trouble
+trust
+truth
+wire
\ No newline at end of file
diff --git a/icons/mob/clothing/back.dmi b/icons/mob/clothing/back.dmi
index 3eea2f356ae1..da1d99887947 100644
Binary files a/icons/mob/clothing/back.dmi and b/icons/mob/clothing/back.dmi differ
diff --git a/icons/obj/airlock_spawner.dmi b/icons/obj/airlock_spawner.dmi
index 9815b3f42b1c..d77e3685c986 100644
Binary files a/icons/obj/airlock_spawner.dmi and b/icons/obj/airlock_spawner.dmi differ
diff --git a/icons/obj/assemblies.dmi b/icons/obj/assemblies.dmi
index 6834c81aa629..782b8a68a5ca 100644
Binary files a/icons/obj/assemblies.dmi and b/icons/obj/assemblies.dmi differ
diff --git a/icons/obj/device.dmi b/icons/obj/device.dmi
index a5928c58d81a..0d83d8d98168 100644
Binary files a/icons/obj/device.dmi and b/icons/obj/device.dmi differ
diff --git a/icons/obj/stationobjs.dmi b/icons/obj/stationobjs.dmi
index 6da7f5315653..38a92bfcb7ae 100644
Binary files a/icons/obj/stationobjs.dmi and b/icons/obj/stationobjs.dmi differ
diff --git a/modular_ss220/food/code/drinks.dm b/modular_ss220/food/code/drinks.dm
index 4d6b2a9f25c8..70aafa4bd9e7 100644
--- a/modular_ss220/food/code/drinks.dm
+++ b/modular_ss220/food/code/drinks.dm
@@ -654,7 +654,7 @@
playsound(src, 'sound/effects/bubbles.ogg', 50, TRUE)
/obj/structure/fermenting_barrel/attackby(obj/item/I, mob/user, params)
- if(istype(I, /obj/item/food/snacks/sliceable/bread))
+ if(istype(I, /obj/item/food/sliceable/bread))
if(!user.drop_item())
to_chat(user, "[I] is stuck to your hand!")
return FALSE
diff --git a/modular_ss220/food/code/food/food.dm b/modular_ss220/food/code/food/food.dm
index 10a89690332a..15a4896db08c 100644
--- a/modular_ss220/food/code/food/food.dm
+++ b/modular_ss220/food/code/food/food.dm
@@ -1,7 +1,7 @@
// Reagent Grinder
/obj/machinery/reagentgrinder/Initialize(mapload)
. = ..()
- blend_items = list(/obj/item/food/snacks/grown/buckwheat = list("buckwheat" = -5)) + blend_items
+ blend_items = list(/obj/item/food/grown/buckwheat = list("buckwheat" = -5)) + blend_items
// Vending
/obj/machinery/economy/vending/dinnerware/Initialize(mapload)
@@ -11,15 +11,15 @@
/obj/machinery/economy/vending/snack/Initialize(mapload)
products += list(
- /obj/item/food/snacks/doshik = 6,
- /obj/item/food/snacks/doshik_spicy = 6,)
+ /obj/item/food/doshik = 6,
+ /obj/item/food/doshik_spicy = 6,)
prices += list(
- /obj/item/food/snacks/doshik = 100,
- /obj/item/food/snacks/doshik_spicy = 120,)
+ /obj/item/food/doshik = 100,
+ /obj/item/food/doshik_spicy = 120,)
. = ..()
// Boiled Buckwheat
-/obj/item/food/snacks/boiledbuckwheat
+/obj/item/food/boiledbuckwheat
name = "варёная гречка"
desc = "Это просто варёная гречка, ничего необычного."
icon = 'modular_ss220/food/icons/food.dmi'
@@ -31,10 +31,10 @@
/datum/recipe/microwave/boiledbuckwheat
reagents = list("water" = 5, "buckwheat" = 10)
- result = /obj/item/food/snacks/boiledbuckwheat
+ result = /obj/item/food/boiledbuckwheat
// Merchant Buckwheat
-/obj/item/food/snacks/buckwheat_merchant
+/obj/item/food/buckwheat_merchant
name = "гречка по-купечески"
desc = "Тушёная гречка с овощами и мясом."
icon = 'modular_ss220/food/icons/food.dmi'
@@ -47,13 +47,13 @@
/datum/recipe/microwave/buckwheat_merchant
reagents = list("water" = 5, "buckwheat" = 10)
items = list(
- /obj/item/food/snacks/grown/tomato,
- /obj/item/food/snacks/grown/carrot,
- /obj/item/food/snacks/meat)
- result = /obj/item/food/snacks/buckwheat_merchant
+ /obj/item/food/grown/tomato,
+ /obj/item/food/grown/carrot,
+ /obj/item/food/meat)
+ result = /obj/item/food/buckwheat_merchant
// Olivier Salad
-/obj/item/food/snacks/oliviersalad
+/obj/item/food/oliviersalad
name = "салат оливье"
desc = "Не трогай, это на новый год!"
icon = 'modular_ss220/food/icons/food.dmi'
@@ -67,15 +67,15 @@
/datum/recipe/microwave/oliviersalad
reagents = list("cream" = 10, "sodiumchloride" = 5)
items = list(
- /obj/item/food/snacks/pickles,
- /obj/item/food/snacks/boiledegg,
- /obj/item/food/snacks/grown/potato,
- /obj/item/food/snacks/grown/carrot,
- /obj/item/food/snacks/sausage)
- result = /obj/item/food/snacks/oliviersalad
+ /obj/item/food/pickles,
+ /obj/item/food/boiledegg,
+ /obj/item/food/grown/potato,
+ /obj/item/food/grown/carrot,
+ /obj/item/food/sausage)
+ result = /obj/item/food/oliviersalad
// Weird Olivier Salad
-/obj/item/food/snacks/weirdoliviersalad
+/obj/item/food/weirdoliviersalad
name = "странный салат оливье"
desc = "Что ты сделал с этим оливье, чудовище?"
icon = 'modular_ss220/food/icons/food.dmi'
@@ -89,16 +89,16 @@
/datum/recipe/microwave/weirdoliviersalad
reagents = list("cream" = 10, "sodiumchloride" = 5)
items = list(
- /obj/item/food/snacks/pickles,
- /obj/item/food/snacks/boiledegg,
- /obj/item/food/snacks/grown/potato,
- /obj/item/food/snacks/grown/carrot,
- /obj/item/food/snacks/sausage,
- /obj/item/food/snacks/grown/apple)
- result = /obj/item/food/snacks/weirdoliviersalad
+ /obj/item/food/pickles,
+ /obj/item/food/boiledegg,
+ /obj/item/food/grown/potato,
+ /obj/item/food/grown/carrot,
+ /obj/item/food/sausage,
+ /obj/item/food/grown/apple)
+ result = /obj/item/food/weirdoliviersalad
// Vegetable Salad
-/obj/item/food/snacks/vegisalad
+/obj/item/food/vegisalad
name = "овощной салат"
desc = "Идеальная комбинация томатов и огурцов."
icon = 'modular_ss220/food/icons/food.dmi'
@@ -112,23 +112,23 @@
/datum/recipe/microwave/vegisalad
reagents = list("cream" = 10, "sodiumchloride" = 5)
items = list(
- /obj/item/food/snacks/grown/cucumber,
- /obj/item/food/snacks/grown/tomato)
- result = /obj/item/food/snacks/vegisalad
+ /obj/item/food/grown/cucumber,
+ /obj/item/food/grown/tomato)
+ result = /obj/item/food/vegisalad
// Pickles
-/obj/item/food/snacks/pickles
+/obj/item/food/pickles
name = "маринованные огурцы"
desc = "Черт, тут много маринованных огурчиков."
icon = 'modular_ss220/food/icons/food.dmi'
icon_state = "pickles"
- trash = /obj/item/food/snacks/brine
+ trash = /obj/item/food/brine
filling_color = "#C2CFAB"
bitesize = 8
list_reagents = list("nutriment" = 2, "vitamin" = 1)
tastes = list("маринованые огурцы" = 1)
-/obj/item/food/snacks/brine
+/obj/item/food/brine
name = "рассол"
desc = "Самое то после бурной ночи."
consume_sound = 'sound/items/drink.ogg'
@@ -141,9 +141,9 @@
/datum/crafting_recipe/pickles
name = "Маринованные огурцы"
- result = list(/obj/item/food/snacks/pickles)
+ result = list(/obj/item/food/pickles)
reqs = list(
- /obj/item/food/snacks/grown/cucumber = 3,
+ /obj/item/food/grown/cucumber = 3,
/datum/reagent/water = 10,
/datum/reagent/consumable/sodiumchloride = 10)
time = 1 SECONDS
@@ -151,7 +151,7 @@
subcategory = CAT_MISCFOOD
// Pickle Soup
-/obj/item/food/snacks/soup/rassolnik
+/obj/item/food/soup/rassolnik
name = "рассольник"
desc = "Популярен в СССП."
icon = 'modular_ss220/food/icons/food.dmi'
@@ -163,12 +163,12 @@
/datum/recipe/microwave/rassolnik
reagents = list("water" = 10, "rice" = 5)
items = list(
- /obj/item/food/snacks/grown/potato,
- /obj/item/food/snacks/grown/cucumber)
- result = /obj/item/food/snacks/soup/rassolnik
+ /obj/item/food/grown/potato,
+ /obj/item/food/grown/cucumber)
+ result = /obj/item/food/soup/rassolnik
// Doner
-/obj/item/food/snacks/shawarma
+/obj/item/food/shawarma
name = "шаурма"
desc = "Великолепное сочетание мяса с гриля и свежих овощей. Не спрашивайте о мясе."
icon = 'modular_ss220/food/icons/food.dmi'
@@ -180,17 +180,17 @@
/datum/recipe/microwave/shawarma
reagents = list("sodiumchloride" = 1, "blackpepper" = 1)
items = list(
- /obj/item/food/snacks/meatsteak,
- /obj/item/food/snacks/meatsteak,
- /obj/item/food/snacks/grown/cabbage,
- /obj/item/food/snacks/onion_slice,
- /obj/item/food/snacks/grown/tomato,
- /obj/item/food/snacks/grown/carrot,
- /obj/item/food/snacks/sliceable/flatdough)
- result = /obj/item/food/snacks/shawarma
+ /obj/item/food/meatsteak,
+ /obj/item/food/meatsteak,
+ /obj/item/food/grown/cabbage,
+ /obj/item/food/onion_slice,
+ /obj/item/food/grown/tomato,
+ /obj/item/food/grown/carrot,
+ /obj/item/food/sliceable/flatdough)
+ result = /obj/item/food/shawarma
// Doner - Cheese
-/obj/item/food/snacks/doner_cheese
+/obj/item/food/doner_cheese
name = "сырная шаурма"
desc = "Фирменное блюдо от шеф-повара - мясо с гриля и свежие овощи с теплым сырным соусом. Вкусно!"
icon = 'modular_ss220/food/icons/food.dmi'
@@ -202,17 +202,17 @@
/datum/recipe/microwave/doner_cheese
reagents = list("sodiumchloride" = 1, "blackpepper" = 1)
items = list(
- /obj/item/food/snacks/meatsteak,
- /obj/item/food/snacks/meatsteak,
- /obj/item/food/snacks/cheesewedge,
- /obj/item/food/snacks/cheesewedge,
- /obj/item/food/snacks/grown/cabbage,
- /obj/item/food/snacks/grown/tomato,
- /obj/item/food/snacks/sliceable/flatdough)
- result = /obj/item/food/snacks/doner_cheese
+ /obj/item/food/meatsteak,
+ /obj/item/food/meatsteak,
+ /obj/item/food/cheesewedge,
+ /obj/item/food/cheesewedge,
+ /obj/item/food/grown/cabbage,
+ /obj/item/food/grown/tomato,
+ /obj/item/food/sliceable/flatdough)
+ result = /obj/item/food/doner_cheese
// Doner - Mushroom
-/obj/item/food/snacks/doner_mushroom
+/obj/item/food/doner_mushroom
name = "шаурма с грибами"
desc = "Мясо с гриля, свежие овощи и грибы. Грибы немного вытеснили мясо, но всё так же вкусно!"
icon = 'modular_ss220/food/icons/food.dmi'
@@ -224,19 +224,19 @@
/datum/recipe/microwave/doner_mushroom
reagents = list("sodiumchloride" = 1, "blackpepper" = 1)
items = list(
- /obj/item/food/snacks/meatsteak,
- /obj/item/food/snacks/grown/mushroom,
- /obj/item/food/snacks/grown/mushroom,
- /obj/item/food/snacks/grown/mushroom,
- /obj/item/food/snacks/grown/cabbage,
- /obj/item/food/snacks/onion_slice,
- /obj/item/food/snacks/grown/tomato,
- /obj/item/food/snacks/grown/carrot,
- /obj/item/food/snacks/sliceable/flatdough)
- result = /obj/item/food/snacks/doner_mushroom
+ /obj/item/food/meatsteak,
+ /obj/item/food/grown/mushroom,
+ /obj/item/food/grown/mushroom,
+ /obj/item/food/grown/mushroom,
+ /obj/item/food/grown/cabbage,
+ /obj/item/food/onion_slice,
+ /obj/item/food/grown/tomato,
+ /obj/item/food/grown/carrot,
+ /obj/item/food/sliceable/flatdough)
+ result = /obj/item/food/doner_mushroom
// Doner - Vegetable
-/obj/item/food/snacks/doner_vegan
+/obj/item/food/doner_vegan
name = "овощная шаурма"
desc = "Свежие овощи, завернутые в длинный рулет. Мясо в комплект не входит!"
icon = 'modular_ss220/food/icons/food.dmi'
@@ -248,30 +248,30 @@
/datum/recipe/microwave/doner_vegan
reagents = list("sodiumchloride" = 1, "blackpepper" = 1)
items = list(
- /obj/item/food/snacks/grown/cabbage,
- /obj/item/food/snacks/onion_slice,
- /obj/item/food/snacks/onion_slice,
- /obj/item/food/snacks/grown/tomato,
- /obj/item/food/snacks/grown/tomato,
- /obj/item/food/snacks/grown/carrot,
- /obj/item/food/snacks/grown/carrot,
- /obj/item/food/snacks/sliceable/flatdough)
- result = /obj/item/food/snacks/doner_vegan
+ /obj/item/food/grown/cabbage,
+ /obj/item/food/onion_slice,
+ /obj/item/food/onion_slice,
+ /obj/item/food/grown/tomato,
+ /obj/item/food/grown/tomato,
+ /obj/item/food/grown/carrot,
+ /obj/item/food/grown/carrot,
+ /obj/item/food/sliceable/flatdough)
+ result = /obj/item/food/doner_vegan
// Slime Pie
-/obj/item/food/snacks/sliceable/slimepie
+/obj/item/food/sliceable/slimepie
name = "слаймовый пирог"
desc = "Блюрп блоб блуп блеп блоп. Можно нарезать."
icon = 'modular_ss220/food/icons/food.dmi'
icon_state = "slimepie"
- slice_path = /obj/item/food/snacks/slimepieslice
+ slice_path = /obj/item/food/slimepieslice
slices_num = 5
bitesize = 3
filling_color = "#00d9ff"
list_reagents = list("nutriment" = 12, "vitamin" = 4)
tastes = list("слизь" = 5, "сладость" = 1, "желе" = 1)
-/obj/item/food/snacks/slimepieslice
+/obj/item/food/slimepieslice
name = "кусочек слаймового пирога"
desc = "Блюрп блоб блуп блеп блоп."
icon = 'modular_ss220/food/icons/food.dmi'
@@ -283,10 +283,10 @@
/datum/recipe/oven/slimepie
reagents = list("custard" = 1, "milk" = 5, "sugar" = 15)
items = list(/obj/item/organ/internal/brain/slime)
- result = /obj/item/food/snacks/sliceable/slimepie
+ result = /obj/item/food/sliceable/slimepie
// Kidan Ragu
-/obj/item/food/snacks/kidanragu
+/obj/item/food/kidanragu
name = "острое хитиновое рагу"
desc = "Рагу из очень жесткого хитинового мяса и тушеных овощей."
icon = 'modular_ss220/food/icons/food.dmi'
@@ -298,25 +298,25 @@
reagents = list("water" = 10, "sodiumchloride" = 1)
items = list(
/obj/item/organ/internal/heart/kidan,
- /obj/item/food/snacks/grown/potato,
- /obj/item/food/snacks/grown/potato,
- /obj/item/food/snacks/grown/carrot,
- /obj/item/food/snacks/grown/tomato,
- /obj/item/food/snacks/grown/chili)
- result = /obj/item/food/snacks/kidanragu
+ /obj/item/food/grown/potato,
+ /obj/item/food/grown/potato,
+ /obj/item/food/grown/carrot,
+ /obj/item/food/grown/tomato,
+ /obj/item/food/grown/chili)
+ result = /obj/item/food/kidanragu
// Fried Unathi Meat
-/obj/item/food/snacks/sliceable/lizard
+/obj/item/food/sliceable/lizard
name = "жареное мясо унатха"
desc = "Сочный стейк из мяса крупной ящерицы, вызывающий желание полежать на теплых камнях. Можно нарезать."
icon = 'modular_ss220/food/icons/food.dmi'
icon_state = "lizard_steak"
- slice_path = /obj/item/food/snacks/lizardslice
+ slice_path = /obj/item/food/lizardslice
slices_num = 5
list_reagents = list("protein" = 20, "nutriment" = 10, "vitamin" = 5)
tastes = list("мясо ящерицы" = 4, "курятина" = 2)
-/obj/item/food/snacks/lizardslice
+/obj/item/food/lizardslice
name = "стейк из унатха"
desc = "Порция мяса унатхи."
icon = 'modular_ss220/food/icons/food.dmi'
@@ -327,7 +327,7 @@
/datum/deepfryer_special/unathi
input = /obj/item/organ/external
- output = /obj/item/food/snacks/sliceable/lizard
+ output = /obj/item/food/sliceable/lizard
/datum/deepfryer_special/unathi/validate(obj/item/I)
if(!..())
@@ -336,7 +336,7 @@
return istype(E.dna.species, /datum/species/unathi)
// Tajaroni
-/obj/item/food/snacks/tajaroni
+/obj/item/food/tajaroni
name = "таярони"
desc = "Острая вяленая колбаса с перцем и... Оно только что мяукнуло?"
icon = 'modular_ss220/food/icons/food.dmi'
@@ -346,7 +346,7 @@
/datum/deepfryer_special/tajaroni
input = /obj/item/organ/external
- output = /obj/item/food/snacks/tajaroni
+ output = /obj/item/food/tajaroni
/datum/deepfryer_special/tajaroni/validate(obj/item/I)
if(!..())
@@ -355,7 +355,7 @@
return istype(E.dna.species, /datum/species/tajaran)
// Vulpixes
-/obj/item/food/snacks/vulpix
+/obj/item/food/vulpix
name = "вульпиксы"
desc = "Аппетитно выглядящие мясные шарики в тесте... Главное - не думать о том, из кого они сделаны!"
icon = 'modular_ss220/food/icons/food.dmi'
@@ -366,13 +366,13 @@
/datum/recipe/oven/vuplix
reagents = list("blackpepper" = 1, "sodiumchloride" = 1, "herbsmix" = 1, "tomato_sauce" = 1, "cream" = 5)
items = list(
- /obj/item/food/snacks/dough,
- /obj/item/food/snacks/meat,
+ /obj/item/food/dough,
+ /obj/item/food/meat,
/obj/item/organ/internal/liver/vulpkanin)
- result = /obj/item/food/snacks/vulpix
+ result = /obj/item/food/vulpix
// Cheese Vulpixes
-/obj/item/food/snacks/vulpix/cheese
+/obj/item/food/vulpix/cheese
name = "сырные вульпиксы"
desc = "Аппетитно выглядящие мясные шарики в тесте с начинкой из сыра... Главное - не думать о том, из кого они сделаны!"
icon = 'modular_ss220/food/icons/food.dmi'
@@ -383,14 +383,14 @@
/datum/recipe/oven/vulpixcheese
reagents = list("blackpepper" = 1, "sodiumchloride" = 1, "herbsmix" = 1, "cheese_sauce" = 1, "cream" = 5)
items = list(
- /obj/item/food/snacks/dough,
- /obj/item/food/snacks/meat,
+ /obj/item/food/dough,
+ /obj/item/food/meat,
/obj/item/organ/internal/liver/vulpkanin,
- /obj/item/food/snacks/cheesewedge)
- result = /obj/item/food/snacks/vulpix/cheese
+ /obj/item/food/cheesewedge)
+ result = /obj/item/food/vulpix/cheese
// Bacon Vulpixes
-/obj/item/food/snacks/vulpix/bacon
+/obj/item/food/vulpix/bacon
name = "вульпиксы с беконом"
desc = "Аппетитно выглядящие мясные шарики в тесте с начинкой... Главное - не думать о том, из кого они сделаны!"
icon = 'modular_ss220/food/icons/food.dmi'
@@ -401,15 +401,15 @@
/datum/recipe/oven/vulpixbacon
reagents = list("blackpepper" = 1, "sodiumchloride" = 1, "herbsmix" = 1, "mushroom_sauce" = 1, "cream" = 5)
items = list(
- /obj/item/food/snacks/dough,
- /obj/item/food/snacks/meat,
+ /obj/item/food/dough,
+ /obj/item/food/meat,
/obj/item/organ/internal/liver/vulpkanin,
- /obj/item/food/snacks/raw_bacon,
- /obj/item/food/snacks/grown/mushroom)
- result = /obj/item/food/snacks/vulpix/bacon
+ /obj/item/food/raw_bacon,
+ /obj/item/food/grown/mushroom)
+ result = /obj/item/food/vulpix/bacon
// Chilli Vulpixes
-/obj/item/food/snacks/vulpix/chilli
+/obj/item/food/vulpix/chilli
name = "вульпиксы-чилли"
desc = "Аппетитно выглядящие мясные шарики в тесте... Главное - не думать о том, из кого они сделаны! Язык обжигает."
icon = 'modular_ss220/food/icons/food.dmi'
@@ -420,24 +420,24 @@
/datum/recipe/oven/vulpixchilli
reagents = list("blackpepper" = 1, "sodiumchloride" = 1, "herbsmix" = 1, "diablo_sauce" = 1, "cream" = 5)
items = list(
- /obj/item/food/snacks/dough,
- /obj/item/food/snacks/meat,
+ /obj/item/food/dough,
+ /obj/item/food/meat,
/obj/item/organ/internal/liver/vulpkanin,
- /obj/item/food/snacks/grown/chili)
- result = /obj/item/food/snacks/vulpix/chilli
+ /obj/item/food/grown/chili)
+ result = /obj/item/food/vulpix/chilli
// Seafood Pizza
-/obj/item/food/snacks/sliceable/pizza/seafood
+/obj/item/food/sliceable/pizza/seafood
name = "пицца с морепродуктами"
desc = "Дары космических озер, сыр и немного кислинки."
icon = 'modular_ss220/food/icons/food.dmi'
icon_state = "fishpizza"
- slice_path = /obj/item/food/snacks/seapizzaslice
+ slice_path = /obj/item/food/seapizzaslice
list_reagents = list("nutriment" = 30, "vitamin" = 15, "protein" = 15)
filling_color = "#ffe45d"
tastes = list("чеснок" = 1, "сыр" = 2, "морепродукты" = 1, "кислинка" = 1)
-/obj/item/food/snacks/seapizzaslice
+/obj/item/food/seapizzaslice
name = "кусочек пиццы с морепродуктами"
desc = "Аппетитный кусочек пиццы с морепродуктами и сыром..."
icon = 'modular_ss220/food/icons/food.dmi'
@@ -448,26 +448,26 @@
/datum/recipe/oven/seapizza
reagents = list("herbsmix" = 1, "garlic_sauce" = 1)
items = list(
- /obj/item/food/snacks/sliceable/flatdough,
- /obj/item/food/snacks/cheesewedge,
- /obj/item/food/snacks/salmonmeat,
- /obj/item/food/snacks/salmonmeat,
- /obj/item/food/snacks/boiled_shrimp,
- /obj/item/food/snacks/grown/citrus/lemon)
- result = /obj/item/food/snacks/sliceable/pizza/seafood
+ /obj/item/food/sliceable/flatdough,
+ /obj/item/food/cheesewedge,
+ /obj/item/food/salmonmeat,
+ /obj/item/food/salmonmeat,
+ /obj/item/food/boiled_shrimp,
+ /obj/item/food/grown/citrus/lemon)
+ result = /obj/item/food/sliceable/pizza/seafood
// Bacon Pizza
-/obj/item/food/snacks/sliceable/pizza/bacon
+/obj/item/food/sliceable/pizza/bacon
name = "пицца с беконом"
desc = "Классическая пицца, один из ингредиентов которой был заменен на жареный бекон."
icon = 'modular_ss220/food/icons/food.dmi'
icon_state = "baconpizza"
- slice_path = /obj/item/food/snacks/baconpizzaslice
+ slice_path = /obj/item/food/baconpizzaslice
list_reagents = list("nutriment" = 40, "vitamin" = 5, "protein" = 15)
filling_color = "#ffe45d"
tastes = list("грибы" = 1, "сыр" = 2, "бекон" = 1)
-/obj/item/food/snacks/baconpizzaslice
+/obj/item/food/baconpizzaslice
name = "кусочек пиццы с беконом"
desc = "Аппетитный кусок пиццы с беконом и грибами..."
icon = 'modular_ss220/food/icons/food.dmi'
@@ -478,26 +478,26 @@
/datum/recipe/oven/baconpizza
reagents = list("mushroom_sauce" = 1)
items = list(
- /obj/item/food/snacks/sliceable/flatdough,
- /obj/item/food/snacks/cheesewedge,
- /obj/item/food/snacks/grown/mushroom,
- /obj/item/food/snacks/grown/mushroom,
- /obj/item/food/snacks/raw_bacon,
- /obj/item/food/snacks/raw_bacon)
- result = /obj/item/food/snacks/sliceable/pizza/bacon
+ /obj/item/food/sliceable/flatdough,
+ /obj/item/food/cheesewedge,
+ /obj/item/food/grown/mushroom,
+ /obj/item/food/grown/mushroom,
+ /obj/item/food/raw_bacon,
+ /obj/item/food/raw_bacon)
+ result = /obj/item/food/sliceable/pizza/bacon
// Pizza Tajaroni
-/obj/item/food/snacks/sliceable/pizza/tajaroni
+/obj/item/food/sliceable/pizza/tajaroni
name = "пицца с таярони"
desc = "Острые колбаски таярони с сыром и оливками. Что из этого ужаснее, еще предстоит решить."
icon = 'modular_ss220/food/icons/food.dmi'
icon_state = "tajarpizza"
- slice_path = /obj/item/food/snacks/tajpizzaslice
+ slice_path = /obj/item/food/tajpizzaslice
list_reagents = list("nutriment" = 30, "vitamin" = 15, "protein" = 15)
filling_color = "#ffe45d"
tastes = list("томат" = 1, "сыр" = 2, "таярони" = 1, "оливки" = 1)
-/obj/item/food/snacks/tajpizzaslice
+/obj/item/food/tajpizzaslice
name = "кусочек пиццы с таярони"
desc = "Вкуснейший кусок пиццы с таярони и оливками..."
icon = 'modular_ss220/food/icons/food.dmi'
@@ -508,25 +508,25 @@
/datum/recipe/oven/tajarpizza
reagents = list("herbsmix" = 1, "tomato_sauce" = 1, "blackpepper" = 1)
items = list(
- /obj/item/food/snacks/sliceable/flatdough,
- /obj/item/food/snacks/cheesewedge,
- /obj/item/food/snacks/cheesewedge,
- /obj/item/food/snacks/tajaroni,
- /obj/item/food/snacks/grown/olive,)
- result = /obj/item/food/snacks/sliceable/pizza/tajaroni
+ /obj/item/food/sliceable/flatdough,
+ /obj/item/food/cheesewedge,
+ /obj/item/food/cheesewedge,
+ /obj/item/food/tajaroni,
+ /obj/item/food/grown/olive,)
+ result = /obj/item/food/sliceable/pizza/tajaroni
// Diablo Pizza
-/obj/item/food/snacks/sliceable/pizza/diablo
+/obj/item/food/sliceable/pizza/diablo
name = "пицца 'Диабло'"
desc = "Невероятно жгучая пицца с кусочками мяса, некоторые утверждают, что она может отправить вас в рэдспейс."
icon = 'modular_ss220/food/icons/food.dmi'
icon_state = "diablopizza"
- slice_path = /obj/item/food/snacks/diablopizzaslice
+ slice_path = /obj/item/food/diablopizzaslice
list_reagents = list("nutriment" = 30, "vitamin" = 15, "protein" = 15, "capsaicin" = 15)
filling_color = "#ffe45d"
tastes = list("остроту" = 1, "сыр" = 2, "мясо" = 1, "специи" = 1)
-/obj/item/food/snacks/diablopizzaslice
+/obj/item/food/diablopizzaslice
name = "кусочек пиццы 'Диабло'"
desc = "Аппетитный кусок пиццы с соусом 'Диабло' и мясом..."
icon = 'modular_ss220/food/icons/food.dmi'
@@ -537,16 +537,16 @@
/datum/recipe/oven/diablopizza
reagents = list("herbsmix" = 1, "diablo_sauce" = 1)
items = list(
- /obj/item/food/snacks/sliceable/flatdough,
- /obj/item/food/snacks/cheesewedge,
- /obj/item/food/snacks/grown/tomato,
- /obj/item/food/snacks/grown/chili,
- /obj/item/food/snacks/meatball,
- /obj/item/food/snacks/meatball)
- result = /obj/item/food/snacks/sliceable/pizza/diablo
+ /obj/item/food/sliceable/flatdough,
+ /obj/item/food/cheesewedge,
+ /obj/item/food/grown/tomato,
+ /obj/item/food/grown/chili,
+ /obj/item/food/meatball,
+ /obj/item/food/meatball)
+ result = /obj/item/food/sliceable/pizza/diablo
// Doshik
-/obj/item/food/snacks/doshik
+/obj/item/food/doshik
name = "дошик"
desc = "Очень известная лапша быстрого приготовления. При открытии заваривается моментально. Вау."
icon = 'modular_ss220/food/icons/food.dmi'
@@ -557,7 +557,7 @@
junkiness = 25
tastes = list("курятина" = 1, "лапша" = 1)
-/obj/item/food/snacks/doshik_spicy
+/obj/item/food/doshik_spicy
name = "острый дошик"
desc = "Очень известная лапша быстрого приготовления. При открытии заваривается моментально. Вау. Кажется, что в ней есть острые специи."
icon = 'modular_ss220/food/icons/food.dmi'
@@ -575,19 +575,19 @@
desc = "Всё ещё вкусно пахнет."
// Chocolate Cake
-/obj/item/food/snacks/sliceable/choccherrycake
+/obj/item/food/sliceable/choccherrycake
name = "шоколадно-вишневый торт"
desc = "Ещё один торт. Тем не менее."
icon = 'modular_ss220/food/icons/food.dmi'
icon_state = "choccherrycake"
- slice_path = /obj/item/food/snacks/choccherrycakeslice
+ slice_path = /obj/item/food/choccherrycakeslice
slices_num = 6
bitesize = 3
filling_color = "#5e1706"
tastes = list("вишня" = 5, "сладость" = 1, "шоколад" = 1)
list_reagents = list("nutriment" = 12, "sugar" = 4, "cocoa" = 4)
-/obj/item/food/snacks/choccherrycakeslice
+/obj/item/food/choccherrycakeslice
name = "кусочек шоколадно-вишневого торта"
desc = "Кусочек очередного торта. Подождите, что?"
icon = 'modular_ss220/food/icons/food.dmi'
@@ -598,28 +598,28 @@
/datum/recipe/oven/choccherrycake
reagents = list("milk" = 5, "flour" = 15)
items = list(
- /obj/item/food/snacks/egg,
- /obj/item/food/snacks/egg,
- /obj/item/food/snacks/egg,
- /obj/item/food/snacks/chocolatebar,
- /obj/item/food/snacks/chocolatebar,
- /obj/item/food/snacks/grown/cherries)
- result = /obj/item/food/snacks/sliceable/choccherrycake
+ /obj/item/food/egg,
+ /obj/item/food/egg,
+ /obj/item/food/egg,
+ /obj/item/food/chocolatebar,
+ /obj/item/food/chocolatebar,
+ /obj/item/food/grown/cherries)
+ result = /obj/item/food/sliceable/choccherrycake
// Noel
-/obj/item/food/snacks/sliceable/noel
+/obj/item/food/sliceable/noel
name = "Bûche de Noël"
desc = "Что?"
icon = 'modular_ss220/food/icons/food.dmi'
icon_state = "noel"
trash = /obj/item/trash/tray
- slice_path = /obj/item/food/snacks/noelslice
+ slice_path = /obj/item/food/noelslice
slices_num = 5
filling_color = "#5e1706"
tastes = list("шоколад" = 3, "сладость" = 2, "яйца" = 1, "ягоды" = 2)
list_reagents = list("nutriment" = 6, "plantmatter" = 2, "cocoa" = 2, "cream" = 3, "sugar" = 3, "berryjuice" = 3)
-/obj/item/food/snacks/noelslice
+/obj/item/food/noelslice
name = "кусочек Noël"
desc = "Кусочек чего?"
icon = 'modular_ss220/food/icons/food.dmi'
@@ -631,16 +631,16 @@
/datum/recipe/oven/noel
reagents = list("flour" = 15, "cream" = 10, "milk" = 5)
items = list(
- /obj/item/food/snacks/egg,
- /obj/item/food/snacks/egg,
- /obj/item/food/snacks/chocolatebar,
- /obj/item/food/snacks/chocolatebar,
- /obj/item/food/snacks/grown/berries,
- /obj/item/food/snacks/grown/berries)
- result = /obj/item/food/snacks/sliceable/noel
+ /obj/item/food/egg,
+ /obj/item/food/egg,
+ /obj/item/food/chocolatebar,
+ /obj/item/food/chocolatebar,
+ /obj/item/food/grown/berries,
+ /obj/item/food/grown/berries)
+ result = /obj/item/food/sliceable/noel
// Sundae
-/obj/item/food/snacks/sundae
+/obj/item/food/sundae
name = "Сандей"
desc = "Сливочное удовольствие."
icon = 'modular_ss220/food/icons/food.dmi'
@@ -653,13 +653,13 @@
/datum/recipe/oven/sundae
reagents = list("cream" = 10)
items = list(
- /obj/item/food/snacks/grown/cherries,
- /obj/item/food/snacks/grown/banana,
- /obj/item/food/snacks/doughslice)
- result = /obj/item/food/snacks/sundae
+ /obj/item/food/grown/cherries,
+ /obj/item/food/grown/banana,
+ /obj/item/food/doughslice)
+ result = /obj/item/food/sundae
// Bun-Bun
-/obj/item/food/snacks/bunbun
+/obj/item/food/bunbun
name = "Бун-Бун"
desc = "Маленькая хлебная обезьянка, сформованная из двух булочек для гамбургеров."
icon = 'modular_ss220/food/icons/food.dmi'
@@ -670,12 +670,12 @@
/datum/recipe/oven/bunbun
items = list(
- /obj/item/food/snacks/bun,
- /obj/item/food/snacks/bun)
- result = /obj/item/food/snacks/bunbun
+ /obj/item/food/bun,
+ /obj/item/food/bun)
+ result = /obj/item/food/bunbun
// Tortilla
-/obj/item/food/snacks/tortilla
+/obj/item/food/tortilla
name = "тортилья"
desc = "Hasta la vista, baby"
icon = 'modular_ss220/food/icons/food.dmi'
@@ -688,11 +688,11 @@
/datum/recipe/microwave/tortilla
reagents = list("flour" = 10)
- items = list(/obj/item/food/snacks/grown/corn)
- result = /obj/item/food/snacks/tortilla
+ items = list(/obj/item/food/grown/corn)
+ result = /obj/item/food/tortilla
// Nachos
-/obj/item/food/snacks/nachos
+/obj/item/food/nachos
name = "начос"
desc = "Хола!"
icon = 'modular_ss220/food/icons/food.dmi'
@@ -705,11 +705,11 @@
/datum/recipe/microwave/nachos
reagents = list("sodiumchloride" = 1)
- items = list(/obj/item/food/snacks/tortilla)
- result = /obj/item/food/snacks/nachos
+ items = list(/obj/item/food/tortilla)
+ result = /obj/item/food/nachos
// Cheese Nachos
-/obj/item/food/snacks/cheesenachos
+/obj/item/food/cheesenachos
name = "сырные начос"
desc = "Сырное хола!"
icon = 'modular_ss220/food/icons/food.dmi'
@@ -723,12 +723,12 @@
/datum/recipe/microwave/cheesenachos
reagents = list("sodiumchloride" = 1)
items = list(
- /obj/item/food/snacks/tortilla,
- /obj/item/food/snacks/cheesewedge)
- result = /obj/item/food/snacks/cheesenachos
+ /obj/item/food/tortilla,
+ /obj/item/food/cheesewedge)
+ result = /obj/item/food/cheesenachos
// Cuban Nachos
-/obj/item/food/snacks/cubannachos
+/obj/item/food/cubannachos
name = "кубинские начос"
desc = "Очень острое хола!"
icon = 'modular_ss220/food/icons/food.dmi'
@@ -741,13 +741,13 @@
/datum/recipe/microwave/cubannachos
items = list(
- /obj/item/food/snacks/tortilla,
- /obj/item/food/snacks/grown/chili,
- /obj/item/food/snacks/grown/chili)
- result = /obj/item/food/snacks/cubannachos
+ /obj/item/food/tortilla,
+ /obj/item/food/grown/chili,
+ /obj/item/food/grown/chili)
+ result = /obj/item/food/cubannachos
// Carne Buritto
-/obj/item/food/snacks/carneburrito
+/obj/item/food/carneburrito
name = "Carne de burrito asado"
desc = "Как классический буррито, но с мясом."
icon = 'modular_ss220/food/icons/food.dmi'
@@ -759,14 +759,14 @@
/datum/recipe/microwave/carneburrito
items = list(
- /obj/item/food/snacks/tortilla,
- /obj/item/food/snacks/grown/soybeans,
- /obj/item/food/snacks/cutlet,
- /obj/item/food/snacks/cutlet)
- result = /obj/item/food/snacks/carneburrito
+ /obj/item/food/tortilla,
+ /obj/item/food/grown/soybeans,
+ /obj/item/food/cutlet,
+ /obj/item/food/cutlet)
+ result = /obj/item/food/carneburrito
// Cheese Buritto
-/obj/item/food/snacks/cheeseburrito
+/obj/item/food/cheeseburrito
name = "сырное буритто"
desc = "Нужно ли здесь что-то говорить?"
icon = 'modular_ss220/food/icons/food.dmi'
@@ -778,13 +778,13 @@
/datum/recipe/microwave/cheeseburrito
items = list(
- /obj/item/food/snacks/tortilla,
- /obj/item/food/snacks/cheesewedge,
- /obj/item/food/snacks/cheesewedge)
- result = /obj/item/food/snacks/cheeseburrito
+ /obj/item/food/tortilla,
+ /obj/item/food/cheesewedge,
+ /obj/item/food/cheesewedge)
+ result = /obj/item/food/cheeseburrito
// Plasma Buritto
-/obj/item/food/snacks/plasmaburrito
+/obj/item/food/plasmaburrito
name = "Fuego Plasma Burrito"
desc = "Очень острое, амигос."
icon = 'modular_ss220/food/icons/food.dmi'
@@ -796,14 +796,14 @@
/datum/recipe/microwave/plasmaburrito
items = list(
- /obj/item/food/snacks/tortilla,
- /obj/item/food/snacks/grown/soybeans,
- /obj/item/food/snacks/grown/chili,
- /obj/item/food/snacks/grown/chili)
- result = /obj/item/food/snacks/plasmaburrito
+ /obj/item/food/tortilla,
+ /obj/item/food/grown/soybeans,
+ /obj/item/food/grown/chili,
+ /obj/item/food/grown/chili)
+ result = /obj/item/food/plasmaburrito
// Pelmeni
-/obj/item/food/snacks/pelmeni
+/obj/item/food/pelmeni
name = "пельмени"
desc = "Мясо завёрнутое в тесто."
icon = 'modular_ss220/food/icons/food.dmi'
@@ -813,16 +813,16 @@
bitesize = 2
tastes = list("сырое мясо" = 1, "сырое тесто" = 1)
-/obj/item/food/snacks/doughslice/attackby(obj/item/I, mob/user, params)
- if(istype(I, /obj/item/food/snacks/rawcutlet))
- new /obj/item/food/snacks/pelmeni(src)
+/obj/item/food/doughslice/attackby(obj/item/I, mob/user, params)
+ if(istype(I, /obj/item/food/rawcutlet))
+ new /obj/item/food/pelmeni(src)
to_chat(user, "Вы сделали немного пельменей.")
qdel(src)
qdel(I)
else
..()
-/obj/item/food/snacks/boiledpelmeni
+/obj/item/food/boiledpelmeni
name = "варёные пельмени"
desc = "Мы не знаем, какой была Сибирь, но эти вкусные пельмени определенно прибыли оттуда."
icon = 'modular_ss220/food/icons/food.dmi'
@@ -835,11 +835,11 @@
/datum/recipe/microwave/pelmeni
reagents = list("water" = 5)
- items = list(/obj/item/food/snacks/pelmeni)
- result = /obj/item/food/snacks/boiledpelmeni
+ items = list(/obj/item/food/pelmeni)
+ result = /obj/item/food/boiledpelmeni
// Smoked Sausage
-/obj/item/food/snacks/smokedsausage
+/obj/item/food/smokedsausage
name = "копчёная колбаска"
desc = "Кусок копченой колбасы. Под пивко пойдёт."
icon = 'modular_ss220/food/icons/food.dmi'
@@ -849,21 +849,21 @@
/datum/recipe/oven/smokedsausage
reagents = list("sodiumchloride" = 5, "blackpepper" = 5)
- items = list(/obj/item/food/snacks/sausage)
- result = /obj/item/food/snacks/smokedsausage
+ items = list(/obj/item/food/sausage)
+ result = /obj/item/food/smokedsausage
// Salami
-/obj/item/food/snacks/sliceable/salami
+/obj/item/food/sliceable/salami
name = "салями"
desc = "Не лучший выбор для сэндвича."
icon = 'modular_ss220/food/icons/food.dmi'
icon_state = "salami"
- slice_path = /obj/item/food/snacks/slice/salami
+ slice_path = /obj/item/food/slice/salami
slices_num = 6
list_reagents = list("protein" = 12)
tastes = list("мясо" = 3, "чеснок" = 1)
-/obj/item/food/snacks/slice/salami
+/obj/item/food/slice/salami
name = "ломтик салями"
desc = "Лучший выбор для сэндвича."
icon = 'modular_ss220/food/icons/food.dmi'
@@ -872,11 +872,11 @@
/datum/recipe/oven/salami
reagents = list("garlic_sauce" = 5)
- items = list(/obj/item/food/snacks/smokedsausage)
- result = /obj/item/food/snacks/sliceable/salami
+ items = list(/obj/item/food/smokedsausage)
+ result = /obj/item/food/sliceable/salami
// Fruit Cup
-/obj/item/food/snacks/fruitcup
+/obj/item/food/fruitcup
name = "фруктовая кружка"
desc = "Фруктовый салат со съедобной кружкой."
icon = 'modular_ss220/food/icons/food.dmi'
@@ -888,16 +888,16 @@
/datum/recipe/microwave/fruitcup
items = list(
- /obj/item/food/snacks/grown/apple,
- /obj/item/food/snacks/grown/citrus/orange,
- /obj/item/food/snacks/grown/ambrosia,
- /obj/item/food/snacks/grown/banana,
- /obj/item/food/snacks/grown/citrus/lemon,
- /obj/item/food/snacks/grown/watermelon)
- result = /obj/item/food/snacks/fruitcup
+ /obj/item/food/grown/apple,
+ /obj/item/food/grown/citrus/orange,
+ /obj/item/food/grown/ambrosia,
+ /obj/item/food/grown/banana,
+ /obj/item/food/grown/citrus/lemon,
+ /obj/item/food/grown/watermelon)
+ result = /obj/item/food/fruitcup
// Jungle Salad
-/obj/item/food/snacks/junglesalad
+/obj/item/food/junglesalad
name = "салат 'Джунгли'"
desc = "Из глубин джунглей."
icon = 'modular_ss220/food/icons/food.dmi'
@@ -908,14 +908,14 @@
/datum/recipe/microwave/junglesalad
items = list(
- /obj/item/food/snacks/grown/apple,
- /obj/item/food/snacks/grown/banana,
- /obj/item/food/snacks/grown/banana,
- /obj/item/food/snacks/grown/watermelon)
- result = /obj/item/food/snacks/junglesalad
+ /obj/item/food/grown/apple,
+ /obj/item/food/grown/banana,
+ /obj/item/food/grown/banana,
+ /obj/item/food/grown/watermelon)
+ result = /obj/item/food/junglesalad
// Delight Salad
-/obj/item/food/snacks/delightsalad
+/obj/item/food/delightsalad
name = "cалат 'Восторг'"
desc = "Настоящий цитрусовый восторг."
icon = 'modular_ss220/food/icons/food.dmi'
@@ -928,13 +928,13 @@
/datum/recipe/microwave/delightsalad
items = list(
- /obj/item/food/snacks/grown/citrus/lemon,
- /obj/item/food/snacks/grown/citrus/orange,
- /obj/item/food/snacks/grown/citrus/lime)
- result = /obj/item/food/snacks/delightsalad
+ /obj/item/food/grown/citrus/lemon,
+ /obj/item/food/grown/citrus/orange,
+ /obj/item/food/grown/citrus/lime)
+ result = /obj/item/food/delightsalad
// Chowmein
-/obj/item/food/snacks/chowmein
+/obj/item/food/chowmein
name = "чау-мейн"
desc = "Nihao!"
icon = 'modular_ss220/food/icons/food.dmi'
@@ -946,14 +946,14 @@
/datum/recipe/microwave/chowmein
items = list(
- /obj/item/food/snacks/boiledspaghetti,
- /obj/item/food/snacks/cutlet,
- /obj/item/food/snacks/grown/cabbage,
- /obj/item/food/snacks/grown/carrot)
- result = /obj/item/food/snacks/chowmein
+ /obj/item/food/boiledspaghetti,
+ /obj/item/food/cutlet,
+ /obj/item/food/grown/cabbage,
+ /obj/item/food/grown/carrot)
+ result = /obj/item/food/chowmein
// Beef Noodles
-/obj/item/food/snacks/beefnoodles
+/obj/item/food/beefnoodles
name = "лапша с говядиной"
desc = "Так просто и так вкусно!"
icon = 'modular_ss220/food/icons/food.dmi'
@@ -965,14 +965,14 @@
/datum/recipe/microwave/beefnoodles
items = list(
- /obj/item/food/snacks/boiledspaghetti,
- /obj/item/food/snacks/cutlet,
- /obj/item/food/snacks/cutlet,
- /obj/item/food/snacks/grown/cabbage)
- result = /obj/item/food/snacks/beefnoodles
+ /obj/item/food/boiledspaghetti,
+ /obj/item/food/cutlet,
+ /obj/item/food/cutlet,
+ /obj/item/food/grown/cabbage)
+ result = /obj/item/food/beefnoodles
// Father's Soup
-/obj/item/food/snacks/fathersoup
+/obj/item/food/fathersoup
name = "батин суп"
desc = "Адовое блюдо, усреднённый рецепт ибо вариаций масса. Ух бля."
icon = 'modular_ss220/food/icons/food.dmi'
@@ -986,15 +986,15 @@
/datum/recipe/oven/fathersoup
reagents = list("flour" = 10, "blackpepper" = 5)
items = list(
- /obj/item/food/snacks/soup/tomatosoup,
- /obj/item/food/snacks/grown/garlic,
- /obj/item/food/snacks/grown/onion,
- /obj/item/food/snacks/grown/ghost_chili,
- /obj/item/food/snacks/grown/ghost_chili,
- /obj/item/food/snacks/grown/tomato)
- result = /obj/item/food/snacks/fathersoup
-
-/obj/item/food/snacks/fathersoup/On_Consume(mob/M, mob/user)
+ /obj/item/food/soup/tomatosoup,
+ /obj/item/food/grown/garlic,
+ /obj/item/food/grown/onion,
+ /obj/item/food/grown/ghost_chili,
+ /obj/item/food/grown/ghost_chili,
+ /obj/item/food/grown/tomato)
+ result = /obj/item/food/fathersoup
+
+/obj/item/food/fathersoup/On_Consume(mob/M, mob/user)
. = ..()
user.visible_message(span_notice("У [M] на лбу аж пот выступает."))
if(prob(33))
@@ -1020,11 +1020,11 @@
/obj/item/pizzabox/infinite/attack_self(mob/living/user)
QDEL_NULL(pizza)
if(ishuman(user))
- pizza = new /obj/item/food/snacks/sliceable/pizza/meatpizza(src)
+ pizza = new /obj/item/food/sliceable/pizza/meatpizza(src)
. = ..()
// Disk croutons
-/obj/item/food/snacks/disk
+/obj/item/food/disk
name = "диск с сухариками"
desc = "Вкуснейшие сухарики с запахом дымка!"
icon = 'modular_ss220/food/icons/food.dmi'
@@ -1045,7 +1045,7 @@
item_state = "chips"
// Plov
-/obj/item/food/snacks/plov
+/obj/item/food/plov
name = "плов с изюмом"
desc = "Плов по тому самому рецепту с Земли, так ещё и с изюмом! Объедение."
icon = 'modular_ss220/food/icons/food.dmi'
@@ -1058,11 +1058,11 @@
/datum/recipe/oven/plov
reagents = list("blackpepper" = 1)
items = list(
- /obj/item/food/snacks/boiledrice,
- /obj/item/food/snacks/boiledrice,
- /obj/item/food/snacks/grown/carrot,
- /obj/item/food/snacks/meat,
- /obj/item/food/snacks/meat,
- /obj/item/food/snacks/grown/berries,
+ /obj/item/food/boiledrice,
+ /obj/item/food/boiledrice,
+ /obj/item/food/grown/carrot,
+ /obj/item/food/meat,
+ /obj/item/food/meat,
+ /obj/item/food/grown/berries,
)
- result = /obj/item/food/snacks/plov
+ result = /obj/item/food/plov
diff --git a/modular_ss220/food/code/food/ingredients.dm b/modular_ss220/food/code/food/ingredients.dm
index f3da626f4da3..38097c374758 100644
--- a/modular_ss220/food/code/food/ingredients.dm
+++ b/modular_ss220/food/code/food/ingredients.dm
@@ -71,7 +71,7 @@
taste_description = "сухая приправа"
// Slices
-/obj/item/food/snacks/cucumberslice
+/obj/item/food/cucumberslice
name = "ломтик огурца"
desc = "Нарезанный огурец, неожиданно, правда?"
icon = 'modular_ss220/food/icons/food.dmi'
@@ -93,8 +93,8 @@
/datum/recipe/microwave/tomato_sauce
reagents = list("water" = 15, "sodiumchloride" = 1, "blackpepper" = 1, "herbsmix" = 1)
items = list(
- /obj/item/food/snacks/grown/garlic,
- /obj/item/food/snacks/grown/tomato)
+ /obj/item/food/grown/garlic,
+ /obj/item/food/grown/tomato)
result = /obj/item/reagent_containers/condiment/tomato_sauce
// Diablo Sauce
@@ -109,8 +109,8 @@
/datum/recipe/microwave/diablo_sauce
reagents = list("water" = 15, "sodiumchloride" = 1, "blackpepper" = 2, "herbsmix" = 1)
items = list(
- /obj/item/food/snacks/grown/tomato,
- /obj/item/food/snacks/grown/chili)
+ /obj/item/food/grown/tomato,
+ /obj/item/food/grown/chili)
result = /obj/item/reagent_containers/condiment/diablo_sauce
// Cheese Sauce
@@ -125,8 +125,8 @@
/datum/recipe/microwave/cheese_sauce
reagents = list("milk" = 15, "cream" = 5)
items = list(
- /obj/item/food/snacks/cheesewedge,
- /obj/item/food/snacks/cheesewedge)
+ /obj/item/food/cheesewedge,
+ /obj/item/food/cheesewedge)
result = /obj/item/reagent_containers/condiment/cheese_sauce
// Mushroom Sauce
@@ -141,8 +141,8 @@
/datum/recipe/microwave/mushroom_sauce
reagents = list("milk" = 15, "cream" = 5, "sodiumchloride" = 1,)
items = list(
- /obj/item/food/snacks/grown/onion,
- /obj/item/food/snacks/grown/mushroom)
+ /obj/item/food/grown/onion,
+ /obj/item/food/grown/mushroom)
result = /obj/item/reagent_containers/condiment/mushroom_sauce
// Garlic Sauce
@@ -157,8 +157,8 @@
/datum/recipe/microwave/garlic_sauce
reagents = list("water" = 15, "sodiumchloride" = 1, "herbsmix" = 1)
items = list(
- /obj/item/food/snacks/grown/garlic,
- /obj/item/food/snacks/grown/cucumber)
+ /obj/item/food/grown/garlic,
+ /obj/item/food/grown/cucumber)
result = /obj/item/reagent_containers/condiment/garlic_sauce
// Custard
@@ -172,7 +172,7 @@
/datum/recipe/microwave/custard
reagents = list("sugar" = 10, "milk" = 10, "cream" = 5, "vanilla" = 5)
- items = list(/obj/item/food/snacks/egg)
+ items = list(/obj/item/food/egg)
result = /obj/item/reagent_containers/condiment/custard
// Herbs
diff --git a/modular_ss220/food/code/food/nails.dm b/modular_ss220/food/code/food/nails.dm
index b45c706bc774..0803a4016a77 100644
--- a/modular_ss220/food/code/food/nails.dm
+++ b/modular_ss220/food/code/food/nails.dm
@@ -4,7 +4,7 @@
icon = 'modular_ss220/food/icons/food.dmi'
icon_state = "nails"
-/obj/item/food/snacks/nails
+/obj/item/food/nails
name = "жаренные гвозди"
desc = "Жаренных гвоздей не хочешь, не?"
icon = 'modular_ss220/food/icons/food.dmi'
@@ -15,7 +15,7 @@
list_reagents = list("iron" = 8, "nutriment" = 1)
tastes = list("гвозди" = 1)
-/obj/item/food/snacks/nails/On_Consume(mob/living/carbon/human/user)
+/obj/item/food/nails/On_Consume(mob/living/carbon/human/user)
. = ..()
to_chat(user, span_warning("Ты чувствуешь адскую боль во рту!"))
playsound(user.loc, "bonebreak", 60, TRUE)
@@ -42,4 +42,4 @@
/datum/deepfryer_special/nails
input = /obj/item/nails
- output = /obj/item/food/snacks/nails
+ output = /obj/item/food/nails
diff --git a/modular_ss220/hydroponics/code/plants.dm b/modular_ss220/hydroponics/code/plants.dm
index 53486c97e73c..04e78d27bf5d 100644
--- a/modular_ss220/hydroponics/code/plants.dm
+++ b/modular_ss220/hydroponics/code/plants.dm
@@ -17,10 +17,10 @@
species = "buckwheat"
icon_dead = "buckwheat-dead"
plantname = "Cтебли Гречки"
- product = /obj/item/food/snacks/grown/buckwheat
+ product = /obj/item/food/grown/buckwheat
mutatelist = list()
-/obj/item/food/snacks/grown/buckwheat
+/obj/item/food/grown/buckwheat
seed = /obj/item/seeds/wheat/buckwheat
name = "гречка"
desc = "Finally, гречка."
@@ -40,7 +40,7 @@
icon_state = "seed-cucumber"
species = "cucumber"
plantname = "Огуречный Куст"
- product = /obj/item/food/snacks/grown/cucumber
+ product = /obj/item/food/grown/cucumber
lifespan = 40
endurance = 70
potency = 30
@@ -54,14 +54,14 @@
genes = list(/datum/plant_gene/trait/repeated_harvest)
reagents_add = list("water" = 0.15, "kelotane" = 0.04, "plantmatter" = 0.05)
-/obj/item/food/snacks/grown/cucumber
+/obj/item/food/grown/cucumber
seed = /obj/item/seeds/cucumber
name = "огурец"
desc = "Сила земли!"
icon = 'modular_ss220/hydroponics/icons/plants.dmi'
icon_state = "cucumber"
splat_type = /obj/effect/decal/cleanable/plant_smudge
- slice_path = /obj/item/food/snacks/cucumberslice
+ slice_path = /obj/item/food/cucumberslice
slices_num = 5
filling_color = "#47FF91"
tastes = list("огурец" = 1)
@@ -80,7 +80,7 @@
icon_state = "seed-charcolives"
species = "charcolives"
plantname = "Угливковое Деревце"
- product = /obj/item/food/snacks/grown/olive/charcoal
+ product = /obj/item/food/grown/olive/charcoal
growing_icon = 'modular_ss220/hydroponics/icons/growing.dmi'
icon_grow = "charcolives-grow"
icon_dead = "charcolives-dead"
@@ -92,7 +92,7 @@
rarity = 30
reagents_add = list("charcoal" = 0.15, "plantmatter" = 0.05)
-/obj/item/food/snacks/grown/olive/charcoal
+/obj/item/food/grown/olive/charcoal
seed = /obj/item/seeds/olive/charcoal
name = "угливки"
desc = "Это... маслины?"
@@ -128,11 +128,11 @@
. = ..()
mutatelist |= list(/obj/item/seeds/soya/peas_shooter)
-/obj/item/food/snacks/grown/soybeans/Initialize(mapload)
+/obj/item/food/grown/soybeans/Initialize(mapload)
. = ..()
trash = /obj/item/ammo_casing/peas_shooter
-/obj/item/food/snacks/grown/soybeans/attack_self(mob/user)
+/obj/item/food/grown/soybeans/attack_self(mob/user)
. = ..()
if(!do_after(user, 1.5 SECONDS, target = user))
return
diff --git a/modular_ss220/jobs/code/donor/job/3_tier_jobs.dm b/modular_ss220/jobs/code/donor/job/3_tier_jobs.dm
index b5f8b5ae02c1..c4e0a576872b 100644
--- a/modular_ss220/jobs/code/donor/job/3_tier_jobs.dm
+++ b/modular_ss220/jobs/code/donor/job/3_tier_jobs.dm
@@ -296,10 +296,10 @@
id = /obj/item/card/id/migrant
backpack_contents = list(
/obj/item/reagent_containers/drinks/bottle/tequila = 1,
- /obj/item/food/snacks/taco = 6,
- /obj/item/food/snacks/nachos = 3,
- /obj/item/food/snacks/cheesenachos = 3,
- /obj/item/food/snacks/cubannachos = 3,
+ /obj/item/food/taco = 6,
+ /obj/item/food/nachos = 3,
+ /obj/item/food/cheesenachos = 3,
+ /obj/item/food/cubannachos = 3,
/obj/item/clothing/suit/poncho/red = 1,
/obj/item/clothing/suit/poncho/green = 1,
)
@@ -337,8 +337,8 @@
backpack_contents = list(
/obj/item/reagent_containers/drinks/bottle/vodka = 1,
/obj/item/storage/fancy/cigarettes/cigpack_random = 2,
- /obj/item/food/snacks/doshik = 3,
- /obj/item/food/snacks/doshik_spicy = 3,
+ /obj/item/food/doshik = 3,
+ /obj/item/food/doshik_spicy = 3,
/obj/item/clothing/suit/mantle/old = 1,
/obj/item/clothing/head/flatcap = 1,
/obj/item/clothing/suit/browntrenchcoat = 1,
diff --git a/modular_ss220/jobs/code/donor/job/5_tier_jobs.dm b/modular_ss220/jobs/code/donor/job/5_tier_jobs.dm
index 4324185bcfd5..0701df6691a4 100644
--- a/modular_ss220/jobs/code/donor/job/5_tier_jobs.dm
+++ b/modular_ss220/jobs/code/donor/job/5_tier_jobs.dm
@@ -130,7 +130,7 @@
pda = /obj/item/pda/clown
id = /obj/item/card/id/seclown
backpack_contents = list(
- /obj/item/food/snacks/grown/banana = 1,
+ /obj/item/food/grown/banana = 1,
/obj/item/stamp/clown = 1,
/obj/item/toy/crayon/rainbow = 1,
/obj/item/storage/fancy/crayons = 1,
diff --git a/modular_ss220/maps220/code/mobs.dm b/modular_ss220/maps220/code/mobs.dm
index 6b6b9a03e2e4..50e697b4afdc 100644
--- a/modular_ss220/maps220/code/mobs.dm
+++ b/modular_ss220/maps220/code/mobs.dm
@@ -950,7 +950,7 @@
retreat_distance = 5
minimum_distance = 5
dodging = TRUE
- butcher_results = list(/obj/item/food/snacks/monstermeat/xenomeat = 2)
+ butcher_results = list(/obj/item/food/monstermeat/xenomeat = 2)
projectiletype = /obj/item/projectile/bullet/bullsquid
projectilesound = 'modular_ss220/aesthetics_sounds/sound/mobs/bullsquid/goo_attack3.ogg'
melee_damage_upper = 18
@@ -1002,7 +1002,7 @@
melee_damage_upper = 20
rapid_melee = 2
del_on_death = FALSE
- butcher_results = list(/obj/item/food/snacks/monstermeat/xenomeat = 3)
+ butcher_results = list(/obj/item/food/monstermeat/xenomeat = 3)
attack_sound = 'sound/weapons/bite.ogg'
gold_core_spawnable = HOSTILE_SPAWN
minbodytemp = 0
@@ -1344,7 +1344,7 @@
switch(RollForLoot)
// 16%
if(1 to 8)
- pick(SynMobDrop = /obj/item/food/snacks/syndicake,
+ pick(SynMobDrop = /obj/item/food/syndicake,
SynMobDrop = /obj/item/poster/random_contraband)
// 14%
if(8 to 15)
@@ -1364,7 +1364,7 @@
if(24 to 27)
pick(SynMobDrop = /obj/item/reagent_containers/patch/styptic/small,
SynMobDrop = /obj/item/reagent_containers/patch/silver_sulf/small,
- SynMobDrop = /obj/item/food/snacks/donkpocket)
+ SynMobDrop = /obj/item/food/donkpocket)
// 4%
if(27 to 29)
pick(SynMobDrop = /obj/item/reagent_containers/patch/styptic,
diff --git a/modular_ss220/maps220/code/spawners.dm b/modular_ss220/maps220/code/spawners.dm
index da7235368176..dca1aea99037 100644
--- a/modular_ss220/maps220/code/spawners.dm
+++ b/modular_ss220/maps220/code/spawners.dm
@@ -4,23 +4,23 @@
/obj/effect/spawner/lootdrop/CCfood/desert
lootcount = 5
loot = list(
- /obj/item/food/snacks/baguette=10,
- /obj/item/food/snacks/applepie=10,
- /obj/item/food/snacks/bananabreadslice=10,
- /obj/item/food/snacks/bananacakeslice=10,
- /obj/item/food/snacks/carrotcakeslice=10,
- /obj/item/food/snacks/croissant=10,
+ /obj/item/food/baguette=10,
+ /obj/item/food/applepie=10,
+ /obj/item/food/bananabreadslice=10,
+ /obj/item/food/bananacakeslice=10,
+ /obj/item/food/carrotcakeslice=10,
+ /obj/item/food/croissant=10,
/obj/item/reagent_containers/drinks/cans/cola=10,""=70)
/obj/effect/spawner/lootdrop/CCfood/meat
lootcount = 5
loot = list(
- /obj/item/food/snacks/lasagna=10,
- /obj/item/food/snacks/burger/bigbite=10,
- /obj/item/food/snacks/fishandchips=10,
- /obj/item/food/snacks/fishburger=10,
- /obj/item/food/snacks/hotdog=10,
- /obj/item/food/snacks/meatpie=10,
+ /obj/item/food/lasagna=10,
+ /obj/item/food/burger/bigbite=10,
+ /obj/item/food/fishandchips=10,
+ /obj/item/food/fishburger=10,
+ /obj/item/food/hotdog=10,
+ /obj/item/food/meatpie=10,
/obj/item/reagent_containers/drinks/cans/cola=10,""=70)
/obj/effect/spawner/lootdrop/CCfood/alcohol
@@ -126,9 +126,9 @@
/obj/item/assembly/igniter,
/obj/item/storage/fancy/matches,
/obj/item/match,
- /obj/item/food/snacks/donut,
- /obj/item/food/snacks/candy/candybar,
- /obj/item/food/snacks/tastybread,
+ /obj/item/food/donut,
+ /obj/item/food/candy/candybar,
+ /obj/item/food/tastybread,
/obj/item/reagent_containers/drinks/cans/dr_gibb,
/obj/item/pen,
/obj/item/screwdriver,
diff --git a/modular_ss220/mobs/code/simple_animal/friendly/crab.dm b/modular_ss220/mobs/code/simple_animal/friendly/crab.dm
index 04f3947f03ec..d2b4dcc9491c 100644
--- a/modular_ss220/mobs/code/simple_animal/friendly/crab.dm
+++ b/modular_ss220/mobs/code/simple_animal/friendly/crab.dm
@@ -18,7 +18,7 @@
response_harm = "щипает"
health = 50
maxHealth = 50
- butcher_results = list(/obj/item/food/snacks/meat = 3)
+ butcher_results = list(/obj/item/food/meat = 3)
/mob/living/simple_animal/crab/royal
name = "королевский краб"
@@ -32,7 +32,7 @@
response_harm = "щипает без уважения"
health = 50
maxHealth = 50
- butcher_results = list(/obj/item/food/snacks/meat = 5)
+ butcher_results = list(/obj/item/food/meat = 5)
/mob/living/simple_animal/crab/evil
holder_type = /obj/item/holder/evilcrab
diff --git a/modular_ss220/mobs/code/simple_animal/friendly/farm_animals.dm b/modular_ss220/mobs/code/simple_animal/friendly/farm_animals.dm
index 8b8bde89b722..0613e4a03292 100644
--- a/modular_ss220/mobs/code/simple_animal/friendly/farm_animals.dm
+++ b/modular_ss220/mobs/code/simple_animal/friendly/farm_animals.dm
@@ -46,7 +46,7 @@
density = 0
speak_chance = 2
turns_per_move = 3
- butcher_results = list(/obj/item/food/snacks/meat = 4)
+ butcher_results = list(/obj/item/food/meat = 4)
response_help = "pets the"
response_disarm = "gently pushes aside the"
response_harm = "kicks the"
@@ -110,7 +110,7 @@
icon_living = "gosling"
icon_dead = "gosling_dead"
icon_resting = "gosling_rest"
- butcher_results = list(/obj/item/food/snacks/meat = 3)
+ butcher_results = list(/obj/item/food/meat = 3)
melee_damage_lower = 0
melee_damage_upper = 0
health = 20
diff --git a/modular_ss220/mobs/code/simple_animal/friendly/frog.dm b/modular_ss220/mobs/code/simple_animal/friendly/frog.dm
index b788c50a6e5e..b5b181feddd6 100644
--- a/modular_ss220/mobs/code/simple_animal/friendly/frog.dm
+++ b/modular_ss220/mobs/code/simple_animal/friendly/frog.dm
@@ -21,7 +21,7 @@
maxHealth = 10
health = 10
blood_volume = BLOOD_VOLUME_SURVIVE
- butcher_results = list(/obj/item/food/snacks/monstermeat/lizardmeat = 1)
+ butcher_results = list(/obj/item/food/monstermeat/lizardmeat = 1)
response_help = "pets"
response_disarm = "gently pushes aside"
response_harm = "stamps on"
diff --git a/modular_ss220/mobs/code/simple_animal/friendly/moth.dm b/modular_ss220/mobs/code/simple_animal/friendly/moth.dm
index 554e4fbc4017..36df5bb8a82d 100644
--- a/modular_ss220/mobs/code/simple_animal/friendly/moth.dm
+++ b/modular_ss220/mobs/code/simple_animal/friendly/moth.dm
@@ -20,6 +20,6 @@
pass_flags = PASSTABLE | PASSGRILLE | PASSMOB
ventcrawler = 2
mob_size = MOB_SIZE_TINY
- butcher_results = list(/obj/item/food/snacks/monstermeat/xenomeat = 1)
+ butcher_results = list(/obj/item/food/monstermeat/xenomeat = 1)
gold_core_spawnable = FRIENDLY_SPAWN
holder_type = /obj/item/holder/moth
diff --git a/modular_ss220/mobs/code/simple_animal/friendly/mouse.dm b/modular_ss220/mobs/code/simple_animal/friendly/mouse.dm
index 896b6c208dd2..59b8c44734a6 100644
--- a/modular_ss220/mobs/code/simple_animal/friendly/mouse.dm
+++ b/modular_ss220/mobs/code/simple_animal/friendly/mouse.dm
@@ -5,7 +5,7 @@
talk_sound = list('modular_ss220/mobs/sound/creatures/rat_talk.ogg')
damaged_sound = list('modular_ss220/mobs/sound/creatures/rat_wound.ogg')
blood_volume = BLOOD_VOLUME_SURVIVE
- butcher_results = list(/obj/item/food/snacks/meat/mouse = 1)
+ butcher_results = list(/obj/item/food/meat/mouse = 1)
/mob/living/simple_animal/mouse/Initialize(mapload)
. = ..()
diff --git a/modular_ss220/mobs/code/simple_animal/friendly/possum.dm b/modular_ss220/mobs/code/simple_animal/friendly/possum.dm
index 6d337da6a08b..2b4dbc2af08e 100644
--- a/modular_ss220/mobs/code/simple_animal/friendly/possum.dm
+++ b/modular_ss220/mobs/code/simple_animal/friendly/possum.dm
@@ -34,7 +34,7 @@
turns_per_move = 10
gold_core_spawnable = FRIENDLY_SPAWN
footstep_type = FOOTSTEP_MOB_CLAW
- butcher_results = list(/obj/item/food/snacks/meat = 2)
+ butcher_results = list(/obj/item/food/meat = 2)
holder_type = /obj/item/holder/possum
/mob/living/simple_animal/possum/attackby(obj/item/O, mob/living/user)
diff --git a/modular_ss220/mobs/code/simple_animal/friendly/rat.dm b/modular_ss220/mobs/code/simple_animal/friendly/rat.dm
index 4f6491814687..338f47f873c3 100644
--- a/modular_ss220/mobs/code/simple_animal/friendly/rat.dm
+++ b/modular_ss220/mobs/code/simple_animal/friendly/rat.dm
@@ -13,7 +13,7 @@
maxHealth = 15
health = 15
mob_size = MOB_SIZE_SMALL
- butcher_results = list(/obj/item/food/snacks/meat/mouse = 2)
+ butcher_results = list(/obj/item/food/meat/mouse = 2)
/mob/living/simple_animal/mouse/rat/white
name = "white rat"
diff --git a/modular_ss220/mobs/code/simple_animal/friendly/snail.dm b/modular_ss220/mobs/code/simple_animal/friendly/snail.dm
index 88884545b750..e887ff0bfe0d 100644
--- a/modular_ss220/mobs/code/simple_animal/friendly/snail.dm
+++ b/modular_ss220/mobs/code/simple_animal/friendly/snail.dm
@@ -20,7 +20,7 @@
mob_size = MOB_SIZE_SMALL
gender = NEUTER
can_hide = 1
- butcher_results = list(/obj/item/food/snacks/salmonmeat/snailmeat = 1, /obj/item/stack/ore/tranquillite = 1)
+ butcher_results = list(/obj/item/food/salmonmeat/snailmeat = 1, /obj/item/stack/ore/tranquillite = 1)
can_collar = 1
gold_core_spawnable = FRIENDLY_SPAWN
stop_automated_movement_when_pulled = 0
@@ -80,6 +80,6 @@
pass_flags = PASSTABLE | PASSGRILLE
status_flags = CANPARALYSE | CANPUSH
mob_size = MOB_SIZE_SMALL
- butcher_results = list(/obj/item/food/snacks/salmonmeat/turtlemeat = 10, /obj/item/stack/ore/tranquillite = 5)
+ butcher_results = list(/obj/item/food/salmonmeat/turtlemeat = 10, /obj/item/stack/ore/tranquillite = 5)
footstep_type = FOOTSTEP_MOB_SLIME
holder_type = /obj/item/holder/turtle
diff --git a/modular_ss220/mobs/code/simple_animal/hostile/lizard.dm b/modular_ss220/mobs/code/simple_animal/hostile/lizard.dm
index 41e59e3c09b9..da2e3befb375 100644
--- a/modular_ss220/mobs/code/simple_animal/hostile/lizard.dm
+++ b/modular_ss220/mobs/code/simple_animal/hostile/lizard.dm
@@ -12,7 +12,7 @@
speak_chance = 1
turns_per_move = 5
see_in_dark = 6
- butcher_results = list(/obj/item/food/snacks/monstermeat/lizardmeat = 3, /obj/item/stack/sheet/animalhide/lizard = 1)
+ butcher_results = list(/obj/item/food/monstermeat/lizardmeat = 3, /obj/item/stack/sheet/animalhide/lizard = 1)
response_help = "погладил"
response_disarm = "аккуратно оттолкнул"
response_harm = "ударил"
@@ -42,7 +42,7 @@
icon_state = "gator"
icon_living = "gator"
icon_dead = "gator_dead"
- butcher_results = list(/obj/item/food/snacks/monstermeat/lizardmeat = 7, /obj/item/stack/sheet/animalhide/lizard = 5)
+ butcher_results = list(/obj/item/food/monstermeat/lizardmeat = 7, /obj/item/stack/sheet/animalhide/lizard = 5)
speed = 4
maxHealth = 200
health = 200
@@ -56,7 +56,7 @@
icon_state = "steppy"
icon_living = "steppy"
icon_dead = "steppy_dead"
- butcher_results = list(/obj/item/food/snacks/monstermeat/lizardmeat = 5, /obj/item/stack/sheet/animalhide/lizard = 3)
+ butcher_results = list(/obj/item/food/monstermeat/lizardmeat = 5, /obj/item/stack/sheet/animalhide/lizard = 3)
maxHealth = 100
health = 100
obj_damage = 80
diff --git a/modular_ss220/mobs/code/simple_animal/items.dm b/modular_ss220/mobs/code/simple_animal/items.dm
index fa678a20f164..9c792a9d2ac1 100644
--- a/modular_ss220/mobs/code/simple_animal/items.dm
+++ b/modular_ss220/mobs/code/simple_animal/items.dm
@@ -1,38 +1,38 @@
// Meat
-/obj/item/food/snacks/meat/dog
+/obj/item/food/meat/dog
name = "dog meat"
desc = "Не слишком питательно. Но говорят деликатес космокорейцев."
list_reagents = list("protein" = 2, "epinephrine" = 2)
-/obj/item/food/snacks/meat/security
+/obj/item/food/meat/security
name = "security meat"
desc = "Мясо наполненное чувством мужества и долга."
list_reagents = list("protein" = 3, "epinephrine" = 5)
-/obj/item/food/snacks/meat/pug
+/obj/item/food/meat/pug
name = "pug meat"
desc = "Чуть менее очарователен в нарезке."
list_reagents = list("protein" = 2, "epinephrine" = 2)
-/obj/item/food/snacks/meat/ham/old
+/obj/item/food/meat/ham/old
name = "жесткая ветчина"
desc = "Мясо почтенного хряка."
list_reagents = list("protein" = 2, "porktonium" = 10)
-/obj/item/food/snacks/meat/mouse
+/obj/item/food/meat/mouse
name = "мышатина"
desc = "На безрыбье и мышь мясо. Кто знает чем питался этот грызун до его подачи к столу."
icon = 'modular_ss220/mobs/icons/items.dmi'
icon_state = "meat_clear"
list_reagents = list("nutriment" = 2, "blood" = 3, "toxin" = 1)
-/obj/item/food/snacks/salmonmeat/snailmeat
+/obj/item/food/salmonmeat/snailmeat
name = "snail meat"
desc = "Сырая космо-улитка в собственном соку."
filling_color = "#6bb4a8"
list_reagents = list("protein" = 5, "vitamin" = 5)
-/obj/item/food/snacks/salmonmeat/turtlemeat
+/obj/item/food/salmonmeat/turtlemeat
name = "snail meat"
desc = "Сырая космо-улитка в собственном соку."
filling_color = "#2fa24c"
diff --git a/modular_ss220/mobs/code/simple_animal/named_animals.dm b/modular_ss220/mobs/code/simple_animal/named_animals.dm
index f8e5d7e3a406..82193365b7c4 100644
--- a/modular_ss220/mobs/code/simple_animal/named_animals.dm
+++ b/modular_ss220/mobs/code/simple_animal/named_animals.dm
@@ -5,7 +5,7 @@
icon_state = "pig_old"
icon_living = "pig_old"
icon_dead = "pig_old_dead"
- butcher_results = list(/obj/item/food/snacks/meat/ham/old = 10)
+ butcher_results = list(/obj/item/food/meat/ham/old = 10)
unique_pet = TRUE
gold_core_spawnable = NO_SPAWN
maxHealth = 80
diff --git a/modular_ss220/mobs/code/simple_animal/pets/cat.dm b/modular_ss220/mobs/code/simple_animal/pets/cat.dm
index a3be6b70afb5..2c8b3f0c2ab6 100644
--- a/modular_ss220/mobs/code/simple_animal/pets/cat.dm
+++ b/modular_ss220/mobs/code/simple_animal/pets/cat.dm
@@ -19,7 +19,7 @@
gender = FEMALE
mob_size = MOB_SIZE_LARGE // THICK!!!
//canmove = FALSE
- butcher_results = list(/obj/item/food/snacks/meat = 8)
+ butcher_results = list(/obj/item/food/meat = 8)
maxHealth = 40 // Sooooo faaaat...
health = 40
speed = 10 // TOO FAT
diff --git a/modular_ss220/mobs/code/simple_animal/pets/dog.dm b/modular_ss220/mobs/code/simple_animal/pets/dog.dm
index 6d0498eb4253..4e8c1c08b010 100644
--- a/modular_ss220/mobs/code/simple_animal/pets/dog.dm
+++ b/modular_ss220/mobs/code/simple_animal/pets/dog.dm
@@ -8,7 +8,7 @@
attacktext = "кусает"
var/growl_sound = list('modular_ss220/mobs/sound/creatures/dog_grawl1.ogg','modular_ss220/mobs/sound/creatures/dog_grawl2.ogg') //Used in emote.
- butcher_results = list(/obj/item/food/snacks/meat/dog = 4)
+ butcher_results = list(/obj/item/food/meat/dog = 4)
collar_type = "dog"
/mob/living/simple_animal/pet/dog/wuv(change, mob/M)
@@ -64,7 +64,7 @@
/mob/living/simple_animal/pet/dog/corgi/puppy
maxHealth = 20
health = 20
- butcher_results = list(/obj/item/food/snacks/meat/corgi = 1)
+ butcher_results = list(/obj/item/food/meat/corgi = 1)
/mob/living/simple_animal/pet/dog/corgi/puppy/void
maxHealth = 60
diff --git a/modular_ss220/mobs/code/simple_animal/pets/security_dogs.dm b/modular_ss220/mobs/code/simple_animal/pets/security_dogs.dm
index 94f511b8dd73..bfefe7c07d40 100644
--- a/modular_ss220/mobs/code/simple_animal/pets/security_dogs.dm
+++ b/modular_ss220/mobs/code/simple_animal/pets/security_dogs.dm
@@ -16,7 +16,7 @@
var/obj/item/inventory_head
var/obj/item/inventory_mask
footstep_type = FOOTSTEP_MOB_CLAW
- butcher_results = list(/obj/item/food/snacks/meat/security = 3)
+ butcher_results = list(/obj/item/food/meat/security = 3)
/mob/living/simple_animal/pet/dog/security/ranger
name = "Ranger"
diff --git a/modular_ss220/mobs/code/simple_animal/pets/slugcat.dm b/modular_ss220/mobs/code/simple_animal/pets/slugcat.dm
index 7e956296a14e..e5941dfc8250 100644
--- a/modular_ss220/mobs/code/simple_animal/pets/slugcat.dm
+++ b/modular_ss220/mobs/code/simple_animal/pets/slugcat.dm
@@ -21,7 +21,7 @@
pass_flags = PASSTABLE
ventcrawler = VENTCRAWLER_ALWAYS
can_collar = 1
- butcher_results = list(/obj/item/food/snacks/meat = 5)
+ butcher_results = list(/obj/item/food/meat = 5)
response_help = "pets"
response_disarm = "gently pushes aside"
response_harm = "kicks"
diff --git a/modular_ss220/objects/code/coffin.dm b/modular_ss220/objects/code/coffin.dm
index 4826211fb3d1..a0ac7aebb4ed 100644
--- a/modular_ss220/objects/code/coffin.dm
+++ b/modular_ss220/objects/code/coffin.dm
@@ -7,7 +7,7 @@
open_door_sprite = null
resistance_flags = FLAMMABLE
max_integrity = 300
- material_drop = /obj/item/food/snacks/grown/corn
+ material_drop = /obj/item/food/grown/corn
material_drop_amount = 10
// Выращивание кукурузогроба
diff --git a/modular_ss220/objects/code/miscellaneous.dm b/modular_ss220/objects/code/miscellaneous.dm
index 5db5d301b6b3..f206f4c39e09 100644
--- a/modular_ss220/objects/code/miscellaneous.dm
+++ b/modular_ss220/objects/code/miscellaneous.dm
@@ -140,5 +140,5 @@
// Display Cases
/obj/structure/displaycase/hos
alert = TRUE
- start_showpiece_type = /obj/item/food/snacks/donut/sprinkles
+ start_showpiece_type = /obj/item/food/donut/sprinkles
req_access = list(ACCESS_HOS)
diff --git a/modular_ss220/silicons/code/items/rlf.dm b/modular_ss220/silicons/code/items/rlf.dm
index ef09085778e1..9d573af8264b 100644
--- a/modular_ss220/silicons/code/items/rlf.dm
+++ b/modular_ss220/silicons/code/items/rlf.dm
@@ -21,7 +21,7 @@
if(!receiver.client)
to_chat(user, span_warning("You offer lollipop to [receiver], but they don't seem to respond..."))
return
- var/obj/item/I = new /obj/item/food/snacks/candy/sucker/lollipop
+ var/obj/item/I = new /obj/item/food/candy/sucker/lollipop
receiver.throw_alert("take item [I.UID()]", /atom/movable/screen/alert/take_item/RLF, alert_args = list(user, receiver, I))
to_chat(user, span_info("You offer lollipop to [receiver]."))
@@ -29,7 +29,7 @@
var/mob/living/receiver = locateUID(receiver_UID)
if(receiver.stat != CONSCIOUS)
return
- var/obj/item/food/snacks/candy/sucker/I = locateUID(item_UID)
+ var/obj/item/food/candy/sucker/I = locateUID(item_UID)
if(receiver.r_hand && receiver.l_hand)
to_chat(receiver, span_warning("You need to have your hands free to accept [I]!"))
return
@@ -49,13 +49,13 @@
receiver.visible_message(span_notice("[giver] handed [I] to [receiver]."))
receiver.clear_alert("take item [item_UID]")
-/obj/item/food/snacks/candy/sucker/lollipop
+/obj/item/food/candy/sucker/lollipop
name = "lollipop"
desc = "For being such a courage patient!"
icon_state = "sucker"
filling_color = "#60A584"
list_reagents = list("sugar" = 4)
-/obj/item/food/snacks/candy/sucker/lollipop/New()
+/obj/item/food/candy/sucker/lollipop/New()
. = ..()
icon_state = pick("sucker_blue", "sucker_green", "sucker_orange", "sucker_purple", "sucker_red", "sucker_yellow")
diff --git a/modular_ss220/unique_objects/code/cheese_statue.dm b/modular_ss220/unique_objects/code/cheese_statue.dm
index bb5b0f3e6ffa..2e3451851cec 100644
--- a/modular_ss220/unique_objects/code/cheese_statue.dm
+++ b/modular_ss220/unique_objects/code/cheese_statue.dm
@@ -66,7 +66,7 @@ GLOBAL_LIST_INIT(cheese_recipes, list(
/datum/recipe/oven/reinforcedcheese
reagents = list("sodiumchloride" = 10)
items = list(
- /obj/item/food/snacks/sliceable/cheesewheel,
- /obj/item/food/snacks/sliceable/cheesewheel
+ /obj/item/food/sliceable/cheesewheel,
+ /obj/item/food/sliceable/cheesewheel
)
result = /obj/item/stack/sheet/cheese
diff --git a/paradise.dme b/paradise.dme
index 1d33f0206cbc..481c6339649b 100644
--- a/paradise.dme
+++ b/paradise.dme
@@ -104,10 +104,12 @@
#include "code\__DEFINES\power_defines.dm"
#include "code\__DEFINES\preferences_defines.dm"
#include "code\__DEFINES\procpath.dm"
+#include "code\__DEFINES\proc_refs.dm"
#include "code\__DEFINES\qdel_defines.dm"
#include "code\__DEFINES\radiation_defines.dm"
#include "code\__DEFINES\radio_defines.dm"
#include "code\__DEFINES\reagents_defines.dm"
+#include "code\__DEFINES\regex.dm"
#include "code\__DEFINES\revolution_defines.dm"
#include "code\__DEFINES\role_preferences.dm"
#include "code\__DEFINES\rolebans.dm"
@@ -1609,6 +1611,7 @@
#include "code\modules\awaymissions\mission_code\ruins\processing_facility.dm"
#include "code\modules\awaymissions\mission_code\ruins\snowbiodome.dm"
#include "code\modules\awaymissions\mission_code\ruins\syndiecakesfactory.dm"
+#include "code\modules\awaymissions\mission_code\ruins\telecomns.dm"
#include "code\modules\awaymissions\mission_code\ruins\watcher_grave.dm"
#include "code\modules\awaymissions\mission_code\ruins\wizardcrash.dm"
#include "code\modules\buildmode\bm_mode.dm"
@@ -1855,7 +1858,6 @@
#include "code\modules\food_and_drinks\drinks\drinks\shotglass.dm"
#include "code\modules\food_and_drinks\food\condiment.dm"
#include "code\modules\food_and_drinks\food\customizables.dm"
-#include "code\modules\food_and_drinks\food\snacks.dm"
#include "code\modules\food_and_drinks\food\foods\baked_goods.dm"
#include "code\modules\food_and_drinks\food\foods\bread.dm"
#include "code\modules\food_and_drinks\food\foods\candy.dm"
@@ -1883,7 +1885,6 @@
#include "code\modules\food_and_drinks\kitchen_machinery\kitchen_machine.dm"
#include "code\modules\food_and_drinks\kitchen_machinery\microwave.dm"
#include "code\modules\food_and_drinks\kitchen_machinery\monkeyrecycler.dm"
-#include "code\modules\food_and_drinks\kitchen_machinery\oven.dm"
#include "code\modules\food_and_drinks\kitchen_machinery\oven_new.dm"
#include "code\modules\food_and_drinks\kitchen_machinery\processor.dm"
#include "code\modules\food_and_drinks\kitchen_machinery\smartfridge.dm"
diff --git a/sound/voice/dvorak/cerebron1.ogg b/sound/voice/dvorak/cerebron1.ogg
new file mode 100644
index 000000000000..06552b91c113
Binary files /dev/null and b/sound/voice/dvorak/cerebron1.ogg differ
diff --git a/sound/voice/dvorak/cerebron2.ogg b/sound/voice/dvorak/cerebron2.ogg
new file mode 100644
index 000000000000..2e58b620fe64
Binary files /dev/null and b/sound/voice/dvorak/cerebron2.ogg differ
diff --git a/sound/voice/dvorak/cerebron3.ogg b/sound/voice/dvorak/cerebron3.ogg
new file mode 100644
index 000000000000..24cb53df0ec0
Binary files /dev/null and b/sound/voice/dvorak/cerebron3.ogg differ
diff --git a/sound/voice/dvorak/core1.ogg b/sound/voice/dvorak/core1.ogg
new file mode 100644
index 000000000000..59c6bb9c8284
Binary files /dev/null and b/sound/voice/dvorak/core1.ogg differ
diff --git a/sound/voice/dvorak/core2.ogg b/sound/voice/dvorak/core2.ogg
new file mode 100644
index 000000000000..d39ff922e859
Binary files /dev/null and b/sound/voice/dvorak/core2.ogg differ
diff --git a/sound/voice/dvorak/core3.ogg b/sound/voice/dvorak/core3.ogg
new file mode 100644
index 000000000000..26ec1969f7a5
Binary files /dev/null and b/sound/voice/dvorak/core3.ogg differ
diff --git a/sound/voice/dvorak/cyberiad1.ogg b/sound/voice/dvorak/cyberiad1.ogg
new file mode 100644
index 000000000000..0023d759fc67
Binary files /dev/null and b/sound/voice/dvorak/cyberiad1.ogg differ
diff --git a/sound/voice/dvorak/cyberiad2.ogg b/sound/voice/dvorak/cyberiad2.ogg
new file mode 100644
index 000000000000..2e58b620fe64
Binary files /dev/null and b/sound/voice/dvorak/cyberiad2.ogg differ
diff --git a/sound/voice/dvorak/cyberiad3.ogg b/sound/voice/dvorak/cyberiad3.ogg
new file mode 100644
index 000000000000..24cb53df0ec0
Binary files /dev/null and b/sound/voice/dvorak/cyberiad3.ogg differ
diff --git a/sound/voice/dvorak/farragus1.ogg b/sound/voice/dvorak/farragus1.ogg
new file mode 100644
index 000000000000..af38b490bd28
Binary files /dev/null and b/sound/voice/dvorak/farragus1.ogg differ
diff --git a/sound/voice/dvorak/farragus2.ogg b/sound/voice/dvorak/farragus2.ogg
new file mode 100644
index 000000000000..2e58b620fe64
Binary files /dev/null and b/sound/voice/dvorak/farragus2.ogg differ
diff --git a/sound/voice/dvorak/farragus3.ogg b/sound/voice/dvorak/farragus3.ogg
new file mode 100644
index 000000000000..24cb53df0ec0
Binary files /dev/null and b/sound/voice/dvorak/farragus3.ogg differ
diff --git a/sound/voice/dvorak/junk1.ogg b/sound/voice/dvorak/junk1.ogg
new file mode 100644
index 000000000000..c9e65b312721
Binary files /dev/null and b/sound/voice/dvorak/junk1.ogg differ
diff --git a/sound/voice/dvorak/junk2.ogg b/sound/voice/dvorak/junk2.ogg
new file mode 100644
index 000000000000..92f8256e39f3
Binary files /dev/null and b/sound/voice/dvorak/junk2.ogg differ
diff --git a/sound/voice/dvorak/junk3.ogg b/sound/voice/dvorak/junk3.ogg
new file mode 100644
index 000000000000..3666931bb803
Binary files /dev/null and b/sound/voice/dvorak/junk3.ogg differ
diff --git a/sound/voice/dvorak/kerberos1.ogg b/sound/voice/dvorak/kerberos1.ogg
new file mode 100644
index 000000000000..f8f8c56bb51e
Binary files /dev/null and b/sound/voice/dvorak/kerberos1.ogg differ
diff --git a/sound/voice/dvorak/kerberos2.ogg b/sound/voice/dvorak/kerberos2.ogg
new file mode 100644
index 000000000000..2e58b620fe64
Binary files /dev/null and b/sound/voice/dvorak/kerberos2.ogg differ
diff --git a/sound/voice/dvorak/kerberos3.ogg b/sound/voice/dvorak/kerberos3.ogg
new file mode 100644
index 000000000000..24cb53df0ec0
Binary files /dev/null and b/sound/voice/dvorak/kerberos3.ogg differ
diff --git a/sound/voice/dvorak/teleporter1.ogg b/sound/voice/dvorak/teleporter1.ogg
new file mode 100644
index 000000000000..af050b80f6f5
Binary files /dev/null and b/sound/voice/dvorak/teleporter1.ogg differ
diff --git a/sound/voice/dvorak/teleporter2.ogg b/sound/voice/dvorak/teleporter2.ogg
new file mode 100644
index 000000000000..688a62456bdd
Binary files /dev/null and b/sound/voice/dvorak/teleporter2.ogg differ
diff --git a/sound/voice/dvorak/teleporter3.ogg b/sound/voice/dvorak/teleporter3.ogg
new file mode 100644
index 000000000000..f3ba9f766d4d
Binary files /dev/null and b/sound/voice/dvorak/teleporter3.ogg differ
diff --git a/sound/voice/dvorak/turret1.ogg b/sound/voice/dvorak/turret1.ogg
new file mode 100644
index 000000000000..22d2a204ee4e
Binary files /dev/null and b/sound/voice/dvorak/turret1.ogg differ
diff --git a/sound/voice/dvorak/turret2.ogg b/sound/voice/dvorak/turret2.ogg
new file mode 100644
index 000000000000..92fb1c979f25
Binary files /dev/null and b/sound/voice/dvorak/turret2.ogg differ
diff --git a/sound/voice/dvorak/turret3.ogg b/sound/voice/dvorak/turret3.ogg
new file mode 100644
index 000000000000..5b549a9b4faa
Binary files /dev/null and b/sound/voice/dvorak/turret3.ogg differ
diff --git a/sound/voice/dvorak/vendor1.ogg b/sound/voice/dvorak/vendor1.ogg
new file mode 100644
index 000000000000..ba94e0a097de
Binary files /dev/null and b/sound/voice/dvorak/vendor1.ogg differ
diff --git a/sound/voice/dvorak/vendor2.ogg b/sound/voice/dvorak/vendor2.ogg
new file mode 100644
index 000000000000..c667f125a3a7
Binary files /dev/null and b/sound/voice/dvorak/vendor2.ogg differ
diff --git a/sound/voice/dvorak/vendor3.ogg b/sound/voice/dvorak/vendor3.ogg
new file mode 100644
index 000000000000..b53c939796f8
Binary files /dev/null and b/sound/voice/dvorak/vendor3.ogg differ
diff --git a/tgui/eslint.config.mjs b/tgui/eslint.config.mjs
index 5324fc1d3c51..7a8ce487641e 100644
--- a/tgui/eslint.config.mjs
+++ b/tgui/eslint.config.mjs
@@ -16,156 +16,173 @@ const compat = new FlatCompat({
allConfig: js.configs.all
});
-export default [...compat.extends("prettier"), {
- ignores: ["/.yarn/**", "/**/node_modules", "/**/*.bundle.*", "/**/*.chunk.*", "/**/*.hot-update.*", "/packages/inferno/**"],
+export default [
+ ...compat.extends('prettier'),
+ {
+ ignores: [
+ '**/.yarn/**',
+ '**/node_modules',
+ '**/*.bundle.*',
+ '**/*.chunk.*',
+ '**/*.hot-update.*',
+ '**/packages/inferno/**',
+ ],
plugins: {
- prettier,
- react: fixupPluginRules(react),
+ prettier,
+ react: fixupPluginRules(react),
},
languageOptions: {
- globals: {
- ...globals.browser,
- ...globals.node,
- Byond: "readonly",
- },
+ globals: {
+ ...globals.browser,
+ ...globals.node,
+ Byond: 'readonly',
+ },
- parser: tsParser,
- ecmaVersion: 2020,
- sourceType: "module",
+ parser: tsParser,
+ ecmaVersion: 2020,
+ sourceType: 'module',
- parserOptions: {
- ecmaFeatures: {
- jsx: true,
- },
+ parserOptions: {
+ ecmaFeatures: {
+ jsx: true,
},
+ },
},
settings: {
- "import/resolver": {
- node: {
- extensions: [".js", ".jsx", ".ts", ".tsx"],
- },
+ 'import/resolver': {
+ node: {
+ extensions: ['.js', '.jsx', '.ts', '.tsx'],
},
+ },
- react: {
- version: "16.10",
- },
+ react: {
+ version: '16.10',
+ },
},
rules: {
- "no-async-promise-executor": "error",
- "no-cond-assign": "error",
- "no-debugger": "error",
- "no-dupe-args": "error",
- "no-dupe-keys": "error",
- "no-duplicate-case": "error",
- "no-empty-character-class": "error",
- "no-ex-assign": "error",
- "no-extra-boolean-cast": "error",
- "no-func-assign": "error",
- "no-import-assign": "error",
- "no-inner-declarations": "error",
- "no-invalid-regexp": "error",
- "no-irregular-whitespace": "error",
- "no-misleading-character-class": "error",
- "no-obj-calls": "error",
- "no-prototype-builtins": "error",
- "no-regex-spaces": "error",
- "no-sparse-arrays": "error",
- "no-template-curly-in-string": "error",
- "no-unsafe-finally": "error",
- "no-unsafe-negation": "error",
- "use-isnan": "error",
- "valid-typeof": "error",
+ 'no-async-promise-executor': 'error',
+ 'no-cond-assign': 'error',
+ 'no-debugger': 'error',
+ 'no-dupe-args': 'error',
+ 'no-dupe-keys': 'error',
+ 'no-duplicate-case': 'error',
+ 'no-empty-character-class': 'error',
+ 'no-ex-assign': 'error',
+ 'no-extra-boolean-cast': 'error',
+ 'no-func-assign': 'error',
+ 'no-import-assign': 'error',
+ 'no-inner-declarations': 'error',
+ 'no-invalid-regexp': 'error',
+ 'no-irregular-whitespace': 'error',
+ 'no-misleading-character-class': 'error',
+ 'no-obj-calls': 'error',
+ 'no-prototype-builtins': 'error',
+ 'no-regex-spaces': 'error',
+ 'no-sparse-arrays': 'error',
+ 'no-template-curly-in-string': 'error',
+ 'no-unsafe-finally': 'error',
+ 'no-unsafe-negation': 'error',
+ 'use-isnan': 'error',
+ 'valid-typeof': 'error',
- complexity: ["error", {
- max: 50,
- }],
+ complexity: [
+ 'error',
+ {
+ max: 50,
+ },
+ ],
- curly: ["error", "multi-line"],
- eqeqeq: ["error", "always"],
- "no-case-declarations": "error",
- "no-empty-pattern": "error",
- "no-fallthrough": "error",
- "no-global-assign": "error",
- "no-octal": "error",
- "no-octal-escape": "error",
- "no-redeclare": "error",
- "no-return-assign": "error",
- "no-self-assign": "error",
- "no-sequences": "error",
- "no-unused-labels": "warn",
- "no-useless-escape": "warn",
- "no-with": "error",
- radix: "error",
- strict: "error",
- "no-delete-var": "error",
- "no-shadow-restricted-names": "error",
- "no-undef": "error",
- "no-undef-init": "error",
- "func-style": ["error", "expression"],
- "spaced-comment": ["error", "always"],
- "no-class-assign": "error",
- "no-const-assign": "error",
- "no-dupe-class-members": "error",
- "no-new-symbol": "error",
- "no-this-before-super": "error",
- "no-var": "error",
- "prefer-arrow-callback": "error",
- "react/boolean-prop-naming": "error",
- "react/button-has-type": "error",
- "react/default-props-match-prop-types": "error",
- "react/no-access-state-in-setstate": "error",
- "react/no-children-prop": "error",
- "react/no-danger": "error",
- "react/no-danger-with-children": "error",
- "react/no-deprecated": "error",
- "react/no-did-mount-set-state": "error",
- "react/no-did-update-set-state": "error",
- "react/no-direct-mutation-state": "error",
- "react/no-find-dom-node": "error",
- "react/no-is-mounted": "error",
- "react/no-redundant-should-component-update": "error",
- "react/no-render-return-value": "error",
- "react/no-typos": "error",
- "react/no-string-refs": "error",
- "react/no-this-in-sfc": "error",
- "react/no-unescaped-entities": "error",
- "react/no-unsafe": "error",
- "react/no-unused-prop-types": "error",
- "react/no-unused-state": "error",
- "react/no-will-update-set-state": "error",
- "react/prefer-es6-class": "error",
- "react/prefer-stateless-function": "error",
- "react/require-render-return": "error",
- "react/self-closing-comp": "error",
- "react/state-in-constructor": "error",
- "react/style-prop-object": "error",
- "react/void-dom-elements-no-children": "error",
- "react/jsx-boolean-value": "error",
- "react/jsx-handler-names": "error",
- "react/jsx-key": "error",
+ curly: ['error', 'multi-line'],
+ eqeqeq: ['error', 'always'],
+ 'no-case-declarations': 'error',
+ 'no-empty-pattern': 'error',
+ 'no-fallthrough': 'error',
+ 'no-global-assign': 'error',
+ 'no-octal': 'error',
+ 'no-octal-escape': 'error',
+ 'no-redeclare': 'error',
+ 'no-return-assign': 'error',
+ 'no-self-assign': 'error',
+ 'no-sequences': 'error',
+ 'no-unused-labels': 'warn',
+ 'no-useless-escape': 'warn',
+ 'no-with': 'error',
+ radix: 'error',
+ strict: 'error',
+ 'no-delete-var': 'error',
+ 'no-shadow-restricted-names': 'error',
+ 'no-undef': 'error',
+ 'no-undef-init': 'error',
+ 'func-style': ['error', 'expression'],
+ 'spaced-comment': ['error', 'always'],
+ 'no-class-assign': 'error',
+ 'no-const-assign': 'error',
+ 'no-dupe-class-members': 'error',
+ 'no-new-symbol': 'error',
+ 'no-this-before-super': 'error',
+ 'no-var': 'error',
+ 'prefer-arrow-callback': 'error',
+ 'react/boolean-prop-naming': 'error',
+ 'react/button-has-type': 'error',
+ 'react/default-props-match-prop-types': 'error',
+ 'react/no-access-state-in-setstate': 'error',
+ 'react/no-children-prop': 'error',
+ 'react/no-danger': 'error',
+ 'react/no-danger-with-children': 'error',
+ 'react/no-deprecated': 'error',
+ 'react/no-did-mount-set-state': 'error',
+ 'react/no-did-update-set-state': 'error',
+ 'react/no-direct-mutation-state': 'error',
+ 'react/no-find-dom-node': 'error',
+ 'react/no-is-mounted': 'error',
+ 'react/no-redundant-should-component-update': 'error',
+ 'react/no-render-return-value': 'error',
+ 'react/no-typos': 'error',
+ 'react/no-string-refs': 'error',
+ 'react/no-this-in-sfc': 'error',
+ 'react/no-unescaped-entities': 'error',
+ 'react/no-unsafe': 'error',
+ 'react/no-unused-prop-types': 'error',
+ 'react/no-unused-state': 'error',
+ 'react/no-will-update-set-state': 'error',
+ 'react/prefer-es6-class': 'error',
+ 'react/prefer-stateless-function': 'error',
+ 'react/require-render-return': 'error',
+ 'react/self-closing-comp': 'error',
+ 'react/state-in-constructor': 'error',
+ 'react/style-prop-object': 'error',
+ 'react/void-dom-elements-no-children': 'error',
+ 'react/jsx-boolean-value': 'error',
+ 'react/jsx-handler-names': 'error',
+ 'react/jsx-key': 'error',
- "react/jsx-max-depth": ["error", {
- max: 10,
- }],
+ 'react/jsx-max-depth': [
+ 'error',
+ {
+ max: 10,
+ },
+ ],
- "react/jsx-no-comment-textnodes": "error",
- "react/jsx-no-duplicate-props": "error",
- "react/jsx-no-target-blank": "error",
- "react/jsx-no-undef": "error",
- "react/jsx-no-useless-fragment": "error",
- "react/jsx-fragments": "error",
- "react/jsx-pascal-case": "error",
- "react/jsx-uses-react": "error",
- "react/jsx-uses-vars": "error",
+ 'react/jsx-no-comment-textnodes': 'error',
+ 'react/jsx-no-duplicate-props': 'error',
+ 'react/jsx-no-target-blank': 'error',
+ 'react/jsx-no-undef': 'error',
+ 'react/jsx-no-useless-fragment': 'error',
+ 'react/jsx-fragments': 'error',
+ 'react/jsx-pascal-case': 'error',
+ 'react/jsx-uses-react': 'error',
+ 'react/jsx-uses-vars': 'error',
},
-}, {
- files: ["**/*.js", "**/*.jsx", "**/*.cjs", "**/*.mjs", "**/*.ts", "**/*.mts", "**/*.cts", "**/*.tsx"],
+ },
+ {
+ files: ['**/*.js', '**/*.jsx', '**/*.cjs', '**/*.mjs', '**/*.ts', '**/*.mts', '**/*.cts', '**/*.tsx'],
rules: {
- "no-undef": "off",
- "react/jsx-no-undef": "off",
+ 'no-undef': 'off',
+ 'react/jsx-no-undef': 'off',
},
-}];
+ },
+];
diff --git a/tgui/packages/tgui-dev-server/util.js b/tgui/packages/tgui-dev-server/util.js
index 79190fe189a4..211174bbdc72 100644
--- a/tgui/packages/tgui-dev-server/util.js
+++ b/tgui/packages/tgui-dev-server/util.js
@@ -6,10 +6,7 @@
import fs from 'fs';
import path from 'path';
-
-import { require } from './require.js';
-
-const globPkg = require('glob');
+import { globSync } from 'glob';
export const resolvePath = path.resolve;
@@ -17,10 +14,7 @@ export const resolvePath = path.resolve;
* Combines path.resolve with glob patterns.
*/
export const resolveGlob = (...sections) => {
- const unsafePaths = globPkg.sync(path.resolve(...sections), {
- strict: false,
- silent: true,
- });
+ const unsafePaths = globSync(path.resolve(...sections), { nodir: false, windowsPathsNoEscape: true });
const safePaths = [];
for (let path of unsafePaths) {
try {
diff --git a/tgui/packages/tgui-panel/settings/reducer.js b/tgui/packages/tgui-panel/settings/reducer.js
index 6451f4aa9d1f..359f692b2f68 100644
--- a/tgui/packages/tgui-panel/settings/reducer.js
+++ b/tgui/packages/tgui-panel/settings/reducer.js
@@ -24,7 +24,7 @@ const initialState = {
fontSize: 13,
fontFamily: FONTS[0],
lineHeight: 1.2,
- theme: 'dark',
+ theme: 'light',
adminMusicVolume: 0.5,
// Keep these two state vars for compatibility with other servers
highlightText: '',
diff --git a/tgui/public/tgui-panel.bundle.js b/tgui/public/tgui-panel.bundle.js
index dc6999b6761c..38f458660a71 100644
--- a/tgui/public/tgui-panel.bundle.js
+++ b/tgui/public/tgui-panel.bundle.js
@@ -1,30 +1,30 @@
-(function(){(function(){var An={66641:function(b,n,t){"use strict";n.__esModule=!0,n.createPopper=void 0,n.popperGenerator=g;var e=i(t(8823)),r=i(t(19820)),o=i(t(54826)),a=i(t(43243)),u=i(t(17859)),l=i(t(80798)),c=i(t(46343)),p=i(t(31584));n.detectOverflow=p.default;var d=t(72600);function i(h){return h&&h.__esModule?h:{default:h}}var v={placement:"bottom",modifiers:[],strategy:"absolute"};function s(){for(var h=arguments.length,m=new Array(h),y=0;y0&&(0,r.round)(i.width)/c.offsetWidth||1,s=c.offsetHeight>0&&(0,r.round)(i.height)/c.offsetHeight||1);var g=(0,e.isElement)(c)?(0,o.default)(c):window,f=g.visualViewport,h=!(0,a.default)()&&d,m=(i.left+(h&&f?f.offsetLeft:0))/v,y=(i.top+(h&&f?f.offsetTop:0))/s,T=i.width/v,O=i.height/s;return{width:T,height:O,top:y,right:m+T,bottom:y+O,left:m,x:m,y:y}}},86380:function(b,n,t){"use strict";n.__esModule=!0,n.default=O;var e=t(41521),r=h(t(2868)),o=h(t(39799)),a=h(t(54826)),u=h(t(43243)),l=h(t(33733)),c=h(t(14522)),p=t(72600),d=h(t(32125)),i=h(t(34972)),v=h(t(96343)),s=h(t(13203)),g=h(t(31855)),f=t(69031);function h(C){return C&&C.__esModule?C:{default:C}}function m(C,S){var E=(0,d.default)(C,!1,S==="fixed");return E.top=E.top+C.clientTop,E.left=E.left+C.clientLeft,E.bottom=E.top+C.clientHeight,E.right=E.left+C.clientWidth,E.width=C.clientWidth,E.height=C.clientHeight,E.x=E.left,E.y=E.top,E}function y(C,S,E){return S===e.viewport?(0,g.default)((0,r.default)(C,E)):(0,p.isElement)(S)?m(S,E):(0,g.default)((0,o.default)((0,l.default)(C)))}function T(C){var S=(0,a.default)((0,i.default)(C)),E=["absolute","fixed"].indexOf((0,c.default)(C).position)>=0,I=E&&(0,p.isHTMLElement)(C)?(0,u.default)(C):C;return(0,p.isElement)(I)?S.filter(function(A){return(0,p.isElement)(A)&&(0,v.default)(A,I)&&(0,s.default)(A)!=="body"}):[]}function O(C,S,E,I){var A=S==="clippingParents"?T(C):[].concat(S),N=[].concat(A,[E]),M=N[0],w=N.reduce(function(L,x){var V=y(C,x,I);return L.top=(0,f.max)(V.top,L.top),L.right=(0,f.min)(V.right,L.right),L.bottom=(0,f.min)(V.bottom,L.bottom),L.left=(0,f.max)(V.left,L.left),L},y(C,M,I));return w.width=w.right-w.left,w.height=w.bottom-w.top,w.x=w.left,w.y=w.top,w}},8823:function(b,n,t){"use strict";n.__esModule=!0,n.default=v;var e=d(t(32125)),r=d(t(45401)),o=d(t(13203)),a=t(72600),u=d(t(85750)),l=d(t(33733)),c=d(t(44011)),p=t(69031);function d(s){return s&&s.__esModule?s:{default:s}}function i(s){var g=s.getBoundingClientRect(),f=(0,p.round)(g.width)/s.offsetWidth||1,h=(0,p.round)(g.height)/s.offsetHeight||1;return f!==1||h!==1}function v(s,g,f){f===void 0&&(f=!1);var h=(0,a.isHTMLElement)(g),m=(0,a.isHTMLElement)(g)&&i(g),y=(0,l.default)(g),T=(0,e.default)(s,m,f),O={scrollLeft:0,scrollTop:0},C={x:0,y:0};return(h||!h&&!f)&&(((0,o.default)(g)!=="body"||(0,c.default)(y))&&(O=(0,r.default)(g)),(0,a.isHTMLElement)(g)?(C=(0,e.default)(g,!0),C.x+=g.clientLeft,C.y+=g.clientTop):y&&(C.x=(0,u.default)(y))),{x:T.left+O.scrollLeft-C.x,y:T.top+O.scrollTop-C.y,width:T.width,height:T.height}}},14522:function(b,n,t){"use strict";n.__esModule=!0,n.default=o;var e=r(t(81020));function r(a){return a&&a.__esModule?a:{default:a}}function o(a){return(0,e.default)(a).getComputedStyle(a)}},33733:function(b,n,t){"use strict";n.__esModule=!0,n.default=r;var e=t(72600);function r(o){return(((0,e.isElement)(o)?o.ownerDocument:o.document)||window.document).documentElement}},39799:function(b,n,t){"use strict";n.__esModule=!0,n.default=c;var e=l(t(33733)),r=l(t(14522)),o=l(t(85750)),a=l(t(79569)),u=t(69031);function l(p){return p&&p.__esModule?p:{default:p}}function c(p){var d,i=(0,e.default)(p),v=(0,a.default)(p),s=(d=p.ownerDocument)==null?void 0:d.body,g=(0,u.max)(i.scrollWidth,i.clientWidth,s?s.scrollWidth:0,s?s.clientWidth:0),f=(0,u.max)(i.scrollHeight,i.clientHeight,s?s.scrollHeight:0,s?s.clientHeight:0),h=-v.scrollLeft+(0,o.default)(p),m=-v.scrollTop;return(0,r.default)(s||i).direction==="rtl"&&(h+=(0,u.max)(i.clientWidth,s?s.clientWidth:0)-g),{width:g,height:f,x:h,y:m}}},75680:function(b,n){"use strict";n.__esModule=!0,n.default=t;function t(e){return{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}}},19820:function(b,n,t){"use strict";n.__esModule=!0,n.default=o;var e=r(t(32125));function r(a){return a&&a.__esModule?a:{default:a}}function o(a){var u=(0,e.default)(a),l=a.offsetWidth,c=a.offsetHeight;return Math.abs(u.width-l)<=1&&(l=u.width),Math.abs(u.height-c)<=1&&(c=u.height),{x:a.offsetLeft,y:a.offsetTop,width:l,height:c}}},13203:function(b,n){"use strict";n.__esModule=!0,n.default=t;function t(e){return e?(e.nodeName||"").toLowerCase():null}},45401:function(b,n,t){"use strict";n.__esModule=!0,n.default=l;var e=u(t(79569)),r=u(t(81020)),o=t(72600),a=u(t(75680));function u(c){return c&&c.__esModule?c:{default:c}}function l(c){return c===(0,r.default)(c)||!(0,o.isHTMLElement)(c)?(0,e.default)(c):(0,a.default)(c)}},43243:function(b,n,t){"use strict";n.__esModule=!0,n.default=v;var e=p(t(81020)),r=p(t(13203)),o=p(t(14522)),a=t(72600),u=p(t(25658)),l=p(t(34972)),c=p(t(97353));function p(s){return s&&s.__esModule?s:{default:s}}function d(s){return!(0,a.isHTMLElement)(s)||(0,o.default)(s).position==="fixed"?null:s.offsetParent}function i(s){var g=/firefox/i.test((0,c.default)()),f=/Trident/i.test((0,c.default)());if(f&&(0,a.isHTMLElement)(s)){var h=(0,o.default)(s);if(h.position==="fixed")return null}var m=(0,l.default)(s);for((0,a.isShadowRoot)(m)&&(m=m.host);(0,a.isHTMLElement)(m)&&["html","body"].indexOf((0,r.default)(m))<0;){var y=(0,o.default)(m);if(y.transform!=="none"||y.perspective!=="none"||y.contain==="paint"||["transform","perspective"].indexOf(y.willChange)!==-1||g&&y.willChange==="filter"||g&&y.filter&&y.filter!=="none")return m;m=m.parentNode}return null}function v(s){for(var g=(0,e.default)(s),f=d(s);f&&(0,u.default)(f)&&(0,o.default)(f).position==="static";)f=d(f);return f&&((0,r.default)(f)==="html"||(0,r.default)(f)==="body"&&(0,o.default)(f).position==="static")?g:f||i(s)||g}},34972:function(b,n,t){"use strict";n.__esModule=!0,n.default=u;var e=a(t(13203)),r=a(t(33733)),o=t(72600);function a(l){return l&&l.__esModule?l:{default:l}}function u(l){return(0,e.default)(l)==="html"?l:l.assignedSlot||l.parentNode||((0,o.isShadowRoot)(l)?l.host:null)||(0,r.default)(l)}},65329:function(b,n,t){"use strict";n.__esModule=!0,n.default=l;var e=u(t(34972)),r=u(t(44011)),o=u(t(13203)),a=t(72600);function u(c){return c&&c.__esModule?c:{default:c}}function l(c){return["html","body","#document"].indexOf((0,o.default)(c))>=0?c.ownerDocument.body:(0,a.isHTMLElement)(c)&&(0,r.default)(c)?c:l((0,e.default)(c))}},2868:function(b,n,t){"use strict";n.__esModule=!0,n.default=l;var e=u(t(81020)),r=u(t(33733)),o=u(t(85750)),a=u(t(14894));function u(c){return c&&c.__esModule?c:{default:c}}function l(c,p){var d=(0,e.default)(c),i=(0,r.default)(c),v=d.visualViewport,s=i.clientWidth,g=i.clientHeight,f=0,h=0;if(v){s=v.width,g=v.height;var m=(0,a.default)();(m||!m&&p==="fixed")&&(f=v.offsetLeft,h=v.offsetTop)}return{width:s,height:g,x:f+(0,o.default)(c),y:h}}},81020:function(b,n){"use strict";n.__esModule=!0,n.default=t;function t(e){if(e==null)return window;if(e.toString()!=="[object Window]"){var r=e.ownerDocument;return r&&r.defaultView||window}return e}},79569:function(b,n,t){"use strict";n.__esModule=!0,n.default=o;var e=r(t(81020));function r(a){return a&&a.__esModule?a:{default:a}}function o(a){var u=(0,e.default)(a),l=u.pageXOffset,c=u.pageYOffset;return{scrollLeft:l,scrollTop:c}}},85750:function(b,n,t){"use strict";n.__esModule=!0,n.default=u;var e=a(t(32125)),r=a(t(33733)),o=a(t(79569));function a(l){return l&&l.__esModule?l:{default:l}}function u(l){return(0,e.default)((0,r.default)(l)).left+(0,o.default)(l).scrollLeft}},72600:function(b,n,t){"use strict";n.__esModule=!0,n.isElement=o,n.isHTMLElement=a,n.isShadowRoot=u;var e=r(t(81020));function r(l){return l&&l.__esModule?l:{default:l}}function o(l){var c=(0,e.default)(l).Element;return l instanceof c||l instanceof Element}function a(l){var c=(0,e.default)(l).HTMLElement;return l instanceof c||l instanceof HTMLElement}function u(l){if(typeof ShadowRoot=="undefined")return!1;var c=(0,e.default)(l).ShadowRoot;return l instanceof c||l instanceof ShadowRoot}},14894:function(b,n,t){"use strict";n.__esModule=!0,n.default=o;var e=r(t(97353));function r(a){return a&&a.__esModule?a:{default:a}}function o(){return!/^((?!chrome|android).)*safari/i.test((0,e.default)())}},44011:function(b,n,t){"use strict";n.__esModule=!0,n.default=o;var e=r(t(14522));function r(a){return a&&a.__esModule?a:{default:a}}function o(a){var u=(0,e.default)(a),l=u.overflow,c=u.overflowX,p=u.overflowY;return/auto|scroll|overlay|hidden/.test(l+p+c)}},25658:function(b,n,t){"use strict";n.__esModule=!0,n.default=o;var e=r(t(13203));function r(a){return a&&a.__esModule?a:{default:a}}function o(a){return["table","td","th"].indexOf((0,e.default)(a))>=0}},54826:function(b,n,t){"use strict";n.__esModule=!0,n.default=l;var e=u(t(65329)),r=u(t(34972)),o=u(t(81020)),a=u(t(44011));function u(c){return c&&c.__esModule?c:{default:c}}function l(c,p){var d;p===void 0&&(p=[]);var i=(0,e.default)(c),v=i===((d=c.ownerDocument)==null?void 0:d.body),s=(0,o.default)(i),g=v?[s].concat(s.visualViewport||[],(0,a.default)(i)?i:[]):i,f=p.concat(g);return v?f:f.concat(l((0,r.default)(g)))}},41521:function(b,n){"use strict";n.__esModule=!0,n.write=n.viewport=n.variationPlacements=n.top=n.start=n.right=n.reference=n.read=n.popper=n.placements=n.modifierPhases=n.main=n.left=n.end=n.clippingParents=n.bottom=n.beforeWrite=n.beforeRead=n.beforeMain=n.basePlacements=n.auto=n.afterWrite=n.afterRead=n.afterMain=void 0;var t=n.top="top",e=n.bottom="bottom",r=n.right="right",o=n.left="left",a=n.auto="auto",u=n.basePlacements=[t,e,r,o],l=n.start="start",c=n.end="end",p=n.clippingParents="clippingParents",d=n.viewport="viewport",i=n.popper="popper",v=n.reference="reference",s=n.variationPlacements=u.reduce(function(A,N){return A.concat([N+"-"+l,N+"-"+c])},[]),g=n.placements=[].concat(u,[a]).reduce(function(A,N){return A.concat([N,N+"-"+l,N+"-"+c])},[]),f=n.beforeRead="beforeRead",h=n.read="read",m=n.afterRead="afterRead",y=n.beforeMain="beforeMain",T=n.main="main",O=n.afterMain="afterMain",C=n.beforeWrite="beforeWrite",S=n.write="write",E=n.afterWrite="afterWrite",I=n.modifierPhases=[f,h,m,y,T,O,C,S,E]},60023:function(b,n,t){"use strict";n.__esModule=!0;var e={popperGenerator:!0,detectOverflow:!0,createPopperBase:!0,createPopper:!0,createPopperLite:!0};n.popperGenerator=n.detectOverflow=n.createPopperLite=n.createPopperBase=n.createPopper=void 0;var r=t(41521);Object.keys(r).forEach(function(c){c==="default"||c==="__esModule"||Object.prototype.hasOwnProperty.call(e,c)||c in n&&n[c]===r[c]||(n[c]=r[c])});var o=t(91078);Object.keys(o).forEach(function(c){c==="default"||c==="__esModule"||Object.prototype.hasOwnProperty.call(e,c)||c in n&&n[c]===o[c]||(n[c]=o[c])});var a=t(66641);n.popperGenerator=a.popperGenerator,n.detectOverflow=a.detectOverflow,n.createPopperBase=a.createPopper;var u=t(7925);n.createPopper=u.createPopper;var l=t(62642);n.createPopperLite=l.createPopper},56304:function(b,n,t){"use strict";n.__esModule=!0,n.default=void 0;var e=o(t(13203)),r=t(72600);function o(c){return c&&c.__esModule?c:{default:c}}function a(c){var p=c.state;Object.keys(p.elements).forEach(function(d){var i=p.styles[d]||{},v=p.attributes[d]||{},s=p.elements[d];!(0,r.isHTMLElement)(s)||!(0,e.default)(s)||(Object.assign(s.style,i),Object.keys(v).forEach(function(g){var f=v[g];f===!1?s.removeAttribute(g):s.setAttribute(g,f===!0?"":f)}))})}function u(c){var p=c.state,d={popper:{position:p.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(p.elements.popper.style,d.popper),p.styles=d,p.elements.arrow&&Object.assign(p.elements.arrow.style,d.arrow),function(){Object.keys(p.elements).forEach(function(i){var v=p.elements[i],s=p.attributes[i]||{},g=Object.keys(p.styles.hasOwnProperty(i)?p.styles[i]:d[i]),f=g.reduce(function(h,m){return h[m]="",h},{});!(0,r.isHTMLElement)(v)||!(0,e.default)(v)||(Object.assign(v.style,f),Object.keys(s).forEach(function(h){v.removeAttribute(h)}))})}}var l=n.default={name:"applyStyles",enabled:!0,phase:"write",fn:a,effect:u,requires:["computeStyles"]}},57243:function(b,n,t){"use strict";n.__esModule=!0,n.default=void 0;var e=i(t(38141)),r=i(t(19820)),o=i(t(96343)),a=i(t(43243)),u=i(t(7770)),l=t(76770),c=i(t(77631)),p=i(t(54824)),d=t(41521);function i(h){return h&&h.__esModule?h:{default:h}}var v=function(){function h(m,y){return m=typeof m=="function"?m(Object.assign({},y.rects,{placement:y.placement})):m,(0,c.default)(typeof m!="number"?m:(0,p.default)(m,d.basePlacements))}return h}();function s(h){var m,y=h.state,T=h.name,O=h.options,C=y.elements.arrow,S=y.modifiersData.popperOffsets,E=(0,e.default)(y.placement),I=(0,u.default)(E),A=[d.left,d.right].indexOf(E)>=0,N=A?"height":"width";if(!(!C||!S)){var M=v(O.padding,y),w=(0,r.default)(C),L=I==="y"?d.top:d.left,x=I==="y"?d.bottom:d.right,V=y.rects.reference[N]+y.rects.reference[I]-S[I]-y.rects.popper[N],F=S[I]-y.rects.reference[I],G=(0,a.default)(C),B=G?I==="y"?G.clientHeight||0:G.clientWidth||0:0,j=V/2-F/2,U=M[L],K=B-w[N]-M[x],Y=B/2-w[N]/2+j,W=(0,l.within)(U,Y,K),et=I;y.modifiersData[T]=(m={},m[et]=W,m.centerOffset=W-Y,m)}}function g(h){var m=h.state,y=h.options,T=y.element,O=T===void 0?"[data-popper-arrow]":T;O!=null&&(typeof O=="string"&&(O=m.elements.popper.querySelector(O),!O)||(0,o.default)(m.elements.popper,O)&&(m.elements.arrow=O))}var f=n.default={name:"arrow",enabled:!0,phase:"main",fn:s,effect:g,requires:["popperOffsets"],requiresIfExists:["preventOverflow"]}},60421:function(b,n,t){"use strict";n.__esModule=!0,n.default=void 0,n.mapToStyles=s;var e=t(41521),r=d(t(43243)),o=d(t(81020)),a=d(t(33733)),u=d(t(14522)),l=d(t(38141)),c=d(t(14380)),p=t(69031);function d(h){return h&&h.__esModule?h:{default:h}}var i={top:"auto",right:"auto",bottom:"auto",left:"auto"};function v(h,m){var y=h.x,T=h.y,O=m.devicePixelRatio||1;return{x:(0,p.round)(y*O)/O||0,y:(0,p.round)(T*O)/O||0}}function s(h){var m,y=h.popper,T=h.popperRect,O=h.placement,C=h.variation,S=h.offsets,E=h.position,I=h.gpuAcceleration,A=h.adaptive,N=h.roundOffsets,M=h.isFixed,w=S.x,L=w===void 0?0:w,x=S.y,V=x===void 0?0:x,F=typeof N=="function"?N({x:L,y:V}):{x:L,y:V};L=F.x,V=F.y;var G=S.hasOwnProperty("x"),B=S.hasOwnProperty("y"),j=e.left,U=e.top,K=window;if(A){var Y=(0,r.default)(y),W="clientHeight",et="clientWidth";if(Y===(0,o.default)(y)&&(Y=(0,a.default)(y),(0,u.default)(Y).position!=="static"&&E==="absolute"&&(W="scrollHeight",et="scrollWidth")),Y=Y,O===e.top||(O===e.left||O===e.right)&&C===e.end){U=e.bottom;var at=M&&Y===K&&K.visualViewport?K.visualViewport.height:Y[W];V-=at-T.height,V*=I?1:-1}if(O===e.left||(O===e.top||O===e.bottom)&&C===e.end){j=e.right;var pt=M&&Y===K&&K.visualViewport?K.visualViewport.width:Y[et];L-=pt-T.width,L*=I?1:-1}}var z=Object.assign({position:E},A&&i),X=N===!0?v({x:L,y:V},(0,o.default)(y)):{x:L,y:V};if(L=X.x,V=X.y,I){var nt;return Object.assign({},z,(nt={},nt[U]=B?"0":"",nt[j]=G?"0":"",nt.transform=(K.devicePixelRatio||1)<=1?"translate("+L+"px, "+V+"px)":"translate3d("+L+"px, "+V+"px, 0)",nt))}return Object.assign({},z,(m={},m[U]=B?V+"px":"",m[j]=G?L+"px":"",m.transform="",m))}function g(h){var m=h.state,y=h.options,T=y.gpuAcceleration,O=T===void 0?!0:T,C=y.adaptive,S=C===void 0?!0:C,E=y.roundOffsets,I=E===void 0?!0:E,A={placement:(0,l.default)(m.placement),variation:(0,c.default)(m.placement),popper:m.elements.popper,popperRect:m.rects.popper,gpuAcceleration:O,isFixed:m.options.strategy==="fixed"};m.modifiersData.popperOffsets!=null&&(m.styles.popper=Object.assign({},m.styles.popper,s(Object.assign({},A,{offsets:m.modifiersData.popperOffsets,position:m.options.strategy,adaptive:S,roundOffsets:I})))),m.modifiersData.arrow!=null&&(m.styles.arrow=Object.assign({},m.styles.arrow,s(Object.assign({},A,{offsets:m.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:I})))),m.attributes.popper=Object.assign({},m.attributes.popper,{"data-popper-placement":m.placement})}var f=n.default={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:g,data:{}}},84601:function(b,n,t){"use strict";n.__esModule=!0,n.default=void 0;var e=r(t(81020));function r(l){return l&&l.__esModule?l:{default:l}}var o={passive:!0};function a(l){var c=l.state,p=l.instance,d=l.options,i=d.scroll,v=i===void 0?!0:i,s=d.resize,g=s===void 0?!0:s,f=(0,e.default)(c.elements.popper),h=[].concat(c.scrollParents.reference,c.scrollParents.popper);return v&&h.forEach(function(m){m.addEventListener("scroll",p.update,o)}),g&&f.addEventListener("resize",p.update,o),function(){v&&h.forEach(function(m){m.removeEventListener("scroll",p.update,o)}),g&&f.removeEventListener("resize",p.update,o)}}var u=n.default={name:"eventListeners",enabled:!0,phase:"write",fn:function(){function l(){}return l}(),effect:a,data:{}}},17267:function(b,n,t){"use strict";n.__esModule=!0,n.default=void 0;var e=p(t(79641)),r=p(t(38141)),o=p(t(71976)),a=p(t(31584)),u=p(t(44744)),l=t(41521),c=p(t(14380));function p(s){return s&&s.__esModule?s:{default:s}}function d(s){if((0,r.default)(s)===l.auto)return[];var g=(0,e.default)(s);return[(0,o.default)(s),g,(0,o.default)(g)]}function i(s){var g=s.state,f=s.options,h=s.name;if(!g.modifiersData[h]._skip){for(var m=f.mainAxis,y=m===void 0?!0:m,T=f.altAxis,O=T===void 0?!0:T,C=f.fallbackPlacements,S=f.padding,E=f.boundary,I=f.rootBoundary,A=f.altBoundary,N=f.flipVariations,M=N===void 0?!0:N,w=f.allowedAutoPlacements,L=g.options.placement,x=(0,r.default)(L),V=x===L,F=C||(V||!M?[(0,e.default)(L)]:d(L)),G=[L].concat(F).reduce(function(Et,_){return Et.concat((0,r.default)(_)===l.auto?(0,u.default)(g,{placement:_,boundary:E,rootBoundary:I,padding:S,flipVariations:M,allowedAutoPlacements:w}):_)},[]),B=g.rects.reference,j=g.rects.popper,U=new Map,K=!0,Y=G[0],W=0;W=0,X=z?"width":"height",nt=(0,a.default)(g,{placement:et,boundary:E,rootBoundary:I,altBoundary:A,padding:S}),lt=z?pt?l.right:l.left:pt?l.bottom:l.top;B[X]>j[X]&&(lt=(0,e.default)(lt));var rt=(0,e.default)(lt),yt=[];if(y&&yt.push(nt[at]<=0),O&&yt.push(nt[lt]<=0,nt[rt]<=0),yt.every(function(Et){return Et})){Y=et,K=!1;break}U.set(et,yt)}if(K)for(var wt=M?3:1,ct=function(){function Et(_){var J=G.find(function(st){var Pt=U.get(st);if(Pt)return Pt.slice(0,_).every(function(Tt){return Tt})});if(J)return Y=J,"break"}return Et}(),tt=wt;tt>0;tt--){var dt=ct(tt);if(dt==="break")break}g.placement!==Y&&(g.modifiersData[h]._skip=!0,g.placement=Y,g.reset=!0)}}var v=n.default={name:"flip",enabled:!0,phase:"main",fn:i,requiresIfExists:["offset"],data:{_skip:!1}}},88476:function(b,n,t){"use strict";n.__esModule=!0,n.default=void 0;var e=t(41521),r=o(t(31584));function o(p){return p&&p.__esModule?p:{default:p}}function a(p,d,i){return i===void 0&&(i={x:0,y:0}),{top:p.top-d.height-i.y,right:p.right-d.width+i.x,bottom:p.bottom-d.height+i.y,left:p.left-d.width-i.x}}function u(p){return[e.top,e.right,e.bottom,e.left].some(function(d){return p[d]>=0})}function l(p){var d=p.state,i=p.name,v=d.rects.reference,s=d.rects.popper,g=d.modifiersData.preventOverflow,f=(0,r.default)(d,{elementContext:"reference"}),h=(0,r.default)(d,{altBoundary:!0}),m=a(f,v),y=a(h,s,g),T=u(m),O=u(y);d.modifiersData[i]={referenceClippingOffsets:m,popperEscapeOffsets:y,isReferenceHidden:T,hasPopperEscaped:O},d.attributes.popper=Object.assign({},d.attributes.popper,{"data-popper-reference-hidden":T,"data-popper-escaped":O})}var c=n.default={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:l}},91078:function(b,n,t){"use strict";n.__esModule=!0,n.preventOverflow=n.popperOffsets=n.offset=n.hide=n.flip=n.eventListeners=n.computeStyles=n.arrow=n.applyStyles=void 0;var e=i(t(56304));n.applyStyles=e.default;var r=i(t(57243));n.arrow=r.default;var o=i(t(60421));n.computeStyles=o.default;var a=i(t(84601));n.eventListeners=a.default;var u=i(t(17267));n.flip=u.default;var l=i(t(88476));n.hide=l.default;var c=i(t(36707));n.offset=c.default;var p=i(t(98916));n.popperOffsets=p.default;var d=i(t(44454));n.preventOverflow=d.default;function i(v){return v&&v.__esModule?v:{default:v}}},36707:function(b,n,t){"use strict";n.__esModule=!0,n.default=void 0,n.distanceAndSkiddingToXY=a;var e=o(t(38141)),r=t(41521);function o(c){return c&&c.__esModule?c:{default:c}}function a(c,p,d){var i=(0,e.default)(c),v=[r.left,r.top].indexOf(i)>=0?-1:1,s=typeof d=="function"?d(Object.assign({},p,{placement:c})):d,g=s[0],f=s[1];return g=g||0,f=(f||0)*v,[r.left,r.right].indexOf(i)>=0?{x:f,y:g}:{x:g,y:f}}function u(c){var p=c.state,d=c.options,i=c.name,v=d.offset,s=v===void 0?[0,0]:v,g=r.placements.reduce(function(y,T){return y[T]=a(T,p.rects,s),y},{}),f=g[p.placement],h=f.x,m=f.y;p.modifiersData.popperOffsets!=null&&(p.modifiersData.popperOffsets.x+=h,p.modifiersData.popperOffsets.y+=m),p.modifiersData[i]=g}var l=n.default={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:u}},98916:function(b,n,t){"use strict";n.__esModule=!0,n.default=void 0;var e=r(t(47566));function r(u){return u&&u.__esModule?u:{default:u}}function o(u){var l=u.state,c=u.name;l.modifiersData[c]=(0,e.default)({reference:l.rects.reference,element:l.rects.popper,strategy:"absolute",placement:l.placement})}var a=n.default={name:"popperOffsets",enabled:!0,phase:"read",fn:o,data:{}}},44454:function(b,n,t){"use strict";n.__esModule=!0,n.default=void 0;var e=t(41521),r=s(t(38141)),o=s(t(7770)),a=s(t(39571)),u=t(76770),l=s(t(19820)),c=s(t(43243)),p=s(t(31584)),d=s(t(14380)),i=s(t(92385)),v=t(69031);function s(h){return h&&h.__esModule?h:{default:h}}function g(h){var m=h.state,y=h.options,T=h.name,O=y.mainAxis,C=O===void 0?!0:O,S=y.altAxis,E=S===void 0?!1:S,I=y.boundary,A=y.rootBoundary,N=y.altBoundary,M=y.padding,w=y.tether,L=w===void 0?!0:w,x=y.tetherOffset,V=x===void 0?0:x,F=(0,p.default)(m,{boundary:I,rootBoundary:A,padding:M,altBoundary:N}),G=(0,r.default)(m.placement),B=(0,d.default)(m.placement),j=!B,U=(0,o.default)(G),K=(0,a.default)(U),Y=m.modifiersData.popperOffsets,W=m.rects.reference,et=m.rects.popper,at=typeof V=="function"?V(Object.assign({},m.rects,{placement:m.placement})):V,pt=typeof at=="number"?{mainAxis:at,altAxis:at}:Object.assign({mainAxis:0,altAxis:0},at),z=m.modifiersData.offset?m.modifiersData.offset[m.placement]:null,X={x:0,y:0};if(Y){if(C){var nt,lt=U==="y"?e.top:e.left,rt=U==="y"?e.bottom:e.right,yt=U==="y"?"height":"width",wt=Y[U],ct=wt+F[lt],tt=wt-F[rt],dt=L?-et[yt]/2:0,Et=B===e.start?W[yt]:et[yt],_=B===e.start?-et[yt]:-W[yt],J=m.elements.arrow,st=L&&J?(0,l.default)(J):{width:0,height:0},Pt=m.modifiersData["arrow#persistent"]?m.modifiersData["arrow#persistent"].padding:(0,i.default)(),Tt=Pt[lt],it=Pt[rt],St=(0,u.within)(0,W[yt],st[yt]),Rt=j?W[yt]/2-dt-St-Tt-pt.mainAxis:Et-St-Tt-pt.mainAxis,Q=j?-W[yt]/2+dt+St+it+pt.mainAxis:_+St+it+pt.mainAxis,vt=m.elements.arrow&&(0,c.default)(m.elements.arrow),bt=vt?U==="y"?vt.clientTop||0:vt.clientLeft||0:0,Nt=(nt=z==null?void 0:z[U])!=null?nt:0,Dt=wt+Rt-Nt-bt,Ut=wt+Q-Nt,Ot=(0,u.within)(L?(0,v.min)(ct,Dt):ct,wt,L?(0,v.max)(tt,Ut):tt);Y[U]=Ot,X[U]=Ot-wt}if(E){var ut,gt=U==="x"?e.top:e.left,At=U==="x"?e.bottom:e.right,Ct=Y[K],Mt=K==="y"?"height":"width",xt=Ct+F[gt],jt=Ct-F[At],Kt=[e.top,e.left].indexOf(G)!==-1,Wt=(ut=z==null?void 0:z[K])!=null?ut:0,$t=Kt?xt:Ct-W[Mt]-et[Mt]-Wt+pt.altAxis,kt=Kt?Ct+W[Mt]+et[Mt]-Wt-pt.altAxis:jt,Zt=L&&Kt?(0,u.withinMaxClamp)($t,Ct,kt):(0,u.within)(L?$t:xt,Ct,L?kt:jt);Y[K]=Zt,X[K]=Zt-Ct}m.modifiersData[T]=X}}var f=n.default={name:"preventOverflow",enabled:!0,phase:"main",fn:g,requiresIfExists:["offset"]}},62642:function(b,n,t){"use strict";n.__esModule=!0,n.defaultModifiers=n.createPopper=void 0;var e=t(66641);n.popperGenerator=e.popperGenerator,n.detectOverflow=e.detectOverflow;var r=l(t(84601)),o=l(t(98916)),a=l(t(60421)),u=l(t(56304));function l(d){return d&&d.__esModule?d:{default:d}}var c=n.defaultModifiers=[r.default,o.default,a.default,u.default],p=n.createPopper=(0,e.popperGenerator)({defaultModifiers:c})},7925:function(b,n,t){"use strict";n.__esModule=!0;var e={createPopper:!0,createPopperLite:!0,defaultModifiers:!0,popperGenerator:!0,detectOverflow:!0};n.defaultModifiers=n.createPopperLite=n.createPopper=void 0;var r=t(66641);n.popperGenerator=r.popperGenerator,n.detectOverflow=r.detectOverflow;var o=f(t(84601)),a=f(t(98916)),u=f(t(60421)),l=f(t(56304)),c=f(t(36707)),p=f(t(17267)),d=f(t(44454)),i=f(t(57243)),v=f(t(88476)),s=t(62642);n.createPopperLite=s.createPopper;var g=t(91078);Object.keys(g).forEach(function(y){y==="default"||y==="__esModule"||Object.prototype.hasOwnProperty.call(e,y)||y in n&&n[y]===g[y]||(n[y]=g[y])});function f(y){return y&&y.__esModule?y:{default:y}}var h=n.defaultModifiers=[o.default,a.default,u.default,l.default,c.default,p.default,d.default,i.default,v.default],m=n.createPopperLite=n.createPopper=(0,r.popperGenerator)({defaultModifiers:h})},44744:function(b,n,t){"use strict";n.__esModule=!0,n.default=l;var e=u(t(14380)),r=t(41521),o=u(t(31584)),a=u(t(38141));function u(c){return c&&c.__esModule?c:{default:c}}function l(c,p){p===void 0&&(p={});var d=p,i=d.placement,v=d.boundary,s=d.rootBoundary,g=d.padding,f=d.flipVariations,h=d.allowedAutoPlacements,m=h===void 0?r.placements:h,y=(0,e.default)(i),T=y?f?r.variationPlacements:r.variationPlacements.filter(function(S){return(0,e.default)(S)===y}):r.basePlacements,O=T.filter(function(S){return m.indexOf(S)>=0});O.length===0&&(O=T);var C=O.reduce(function(S,E){return S[E]=(0,o.default)(c,{placement:E,boundary:v,rootBoundary:s,padding:g})[(0,a.default)(E)],S},{});return Object.keys(C).sort(function(S,E){return C[S]-C[E]})}},47566:function(b,n,t){"use strict";n.__esModule=!0,n.default=l;var e=u(t(38141)),r=u(t(14380)),o=u(t(7770)),a=t(41521);function u(c){return c&&c.__esModule?c:{default:c}}function l(c){var p=c.reference,d=c.element,i=c.placement,v=i?(0,e.default)(i):null,s=i?(0,r.default)(i):null,g=p.x+p.width/2-d.width/2,f=p.y+p.height/2-d.height/2,h;switch(v){case a.top:h={x:g,y:p.y-d.height};break;case a.bottom:h={x:g,y:p.y+p.height};break;case a.right:h={x:p.x+p.width,y:f};break;case a.left:h={x:p.x-d.width,y:f};break;default:h={x:p.x,y:p.y}}var m=v?(0,o.default)(v):null;if(m!=null){var y=m==="y"?"height":"width";switch(s){case a.start:h[m]=h[m]-(p[y]/2-d[y]/2);break;case a.end:h[m]=h[m]+(p[y]/2-d[y]/2);break;default:}}return h}},80798:function(b,n){"use strict";n.__esModule=!0,n.default=t;function t(e){var r;return function(){return r||(r=new Promise(function(o){Promise.resolve().then(function(){r=void 0,o(e())})})),r}}},31584:function(b,n,t){"use strict";n.__esModule=!0,n.default=v;var e=i(t(86380)),r=i(t(33733)),o=i(t(32125)),a=i(t(47566)),u=i(t(31855)),l=t(41521),c=t(72600),p=i(t(77631)),d=i(t(54824));function i(s){return s&&s.__esModule?s:{default:s}}function v(s,g){g===void 0&&(g={});var f=g,h=f.placement,m=h===void 0?s.placement:h,y=f.strategy,T=y===void 0?s.strategy:y,O=f.boundary,C=O===void 0?l.clippingParents:O,S=f.rootBoundary,E=S===void 0?l.viewport:S,I=f.elementContext,A=I===void 0?l.popper:I,N=f.altBoundary,M=N===void 0?!1:N,w=f.padding,L=w===void 0?0:w,x=(0,p.default)(typeof L!="number"?L:(0,d.default)(L,l.basePlacements)),V=A===l.popper?l.reference:l.popper,F=s.rects.popper,G=s.elements[M?V:A],B=(0,e.default)((0,c.isElement)(G)?G:G.contextElement||(0,r.default)(s.elements.popper),C,E,T),j=(0,o.default)(s.elements.reference),U=(0,a.default)({reference:j,element:F,strategy:"absolute",placement:m}),K=(0,u.default)(Object.assign({},F,U)),Y=A===l.popper?K:j,W={top:B.top-Y.top+x.top,bottom:Y.bottom-B.bottom+x.bottom,left:B.left-Y.left+x.left,right:Y.right-B.right+x.right},et=s.modifiersData.offset;if(A===l.popper&&et){var at=et[m];Object.keys(W).forEach(function(pt){var z=[l.right,l.bottom].indexOf(pt)>=0?1:-1,X=[l.top,l.bottom].indexOf(pt)>=0?"y":"x";W[pt]+=at[X]*z})}return W}},54824:function(b,n){"use strict";n.__esModule=!0,n.default=t;function t(e,r){return r.reduce(function(o,a){return o[a]=e,o},{})}},39571:function(b,n){"use strict";n.__esModule=!0,n.default=t;function t(e){return e==="x"?"y":"x"}},38141:function(b,n,t){"use strict";n.__esModule=!0,n.default=r;var e=t(41521);function r(o){return o.split("-")[0]}},92385:function(b,n){"use strict";n.__esModule=!0,n.default=t;function t(){return{top:0,right:0,bottom:0,left:0}}},7770:function(b,n){"use strict";n.__esModule=!0,n.default=t;function t(e){return["top","bottom"].indexOf(e)>=0?"x":"y"}},79641:function(b,n){"use strict";n.__esModule=!0,n.default=e;var t={left:"right",right:"left",bottom:"top",top:"bottom"};function e(r){return r.replace(/left|right|bottom|top/g,function(o){return t[o]})}},71976:function(b,n){"use strict";n.__esModule=!0,n.default=e;var t={start:"end",end:"start"};function e(r){return r.replace(/start|end/g,function(o){return t[o]})}},14380:function(b,n){"use strict";n.__esModule=!0,n.default=t;function t(e){return e.split("-")[1]}},69031:function(b,n){"use strict";n.__esModule=!0,n.round=n.min=n.max=void 0;var t=n.max=Math.max,e=n.min=Math.min,r=n.round=Math.round},46343:function(b,n){"use strict";n.__esModule=!0,n.default=t;function t(e){var r=e.reduce(function(o,a){var u=o[a.name];return o[a.name]=u?Object.assign({},u,a,{options:Object.assign({},u.options,a.options),data:Object.assign({},u.data,a.data)}):a,o},{});return Object.keys(r).map(function(o){return r[o]})}},77631:function(b,n,t){"use strict";n.__esModule=!0,n.default=o;var e=r(t(92385));function r(a){return a&&a.__esModule?a:{default:a}}function o(a){return Object.assign({},(0,e.default)(),a)}},17859:function(b,n,t){"use strict";n.__esModule=!0,n.default=o;var e=t(41521);function r(a){var u=new Map,l=new Set,c=[];a.forEach(function(d){u.set(d.name,d)});function p(d){l.add(d.name);var i=[].concat(d.requires||[],d.requiresIfExists||[]);i.forEach(function(v){if(!l.has(v)){var s=u.get(v);s&&p(s)}}),c.push(d)}return a.forEach(function(d){l.has(d.name)||p(d)}),c}function o(a){var u=r(a);return e.modifierPhases.reduce(function(l,c){return l.concat(u.filter(function(p){return p.phase===c}))},[])}},31855:function(b,n){"use strict";n.__esModule=!0,n.default=t;function t(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}},97353:function(b,n){"use strict";n.__esModule=!0,n.default=t;function t(){var e=navigator.userAgentData;return e!=null&&e.brands&&Array.isArray(e.brands)?e.brands.map(function(r){return r.brand+"/"+r.version}).join(" "):navigator.userAgent}},76770:function(b,n,t){"use strict";n.__esModule=!0,n.within=r,n.withinMaxClamp=o;var e=t(69031);function r(a,u,l){return(0,e.max)(a,(0,e.min)(u,l))}function o(a,u,l){var c=r(a,u,l);return c>l?l:c}},27061:function(b){"use strict";/*! @license DOMPurify 2.5.0 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/2.5.0/LICENSE */(function(n,t){b.exports=t()})(void 0,function(){"use strict";function n(Q){"@babel/helpers - typeof";return n=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(vt){return typeof vt}:function(vt){return vt&&typeof Symbol=="function"&&vt.constructor===Symbol&&vt!==Symbol.prototype?"symbol":typeof vt},n(Q)}function t(Q,vt){return t=Object.setPrototypeOf||function(){function bt(Nt,Dt){return Nt.__proto__=Dt,Nt}return bt}(),t(Q,vt)}function e(){if(typeof Reflect=="undefined"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(Q){return!1}}function r(Q,vt,bt){return e()?r=Reflect.construct:r=function(){function Nt(Dt,Ut,Ot){var ut=[null];ut.push.apply(ut,Ut);var gt=Function.bind.apply(Dt,ut),At=new gt;return Ot&&t(At,Ot.prototype),At}return Nt}(),r.apply(null,arguments)}function o(Q){return a(Q)||u(Q)||l(Q)||p()}function a(Q){if(Array.isArray(Q))return c(Q)}function u(Q){if(typeof Symbol!="undefined"&&Q[Symbol.iterator]!=null||Q["@@iterator"]!=null)return Array.from(Q)}function l(Q,vt){if(Q){if(typeof Q=="string")return c(Q,vt);var bt=Object.prototype.toString.call(Q).slice(8,-1);if(bt==="Object"&&Q.constructor&&(bt=Q.constructor.name),bt==="Map"||bt==="Set")return Array.from(Q);if(bt==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(bt))return c(Q,vt)}}function c(Q,vt){(vt==null||vt>Q.length)&&(vt=Q.length);for(var bt=0,Nt=new Array(vt);bt1?bt-1:0),Dt=1;Dt/gm),ct=h(/\${[\w\W]*}/gm),tt=h(/^data-[\-\w.\u00B7-\uFFFF]/),dt=h(/^aria-[\-\w]+$/),Et=h(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|cid|xmpp):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),_=h(/^(?:\w+script|data):/i),J=h(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),st=h(/^html$/i),Pt=h(/^[a-z][.\w]*(-[.\w]+)+$/i),Tt=function(){function Q(){return typeof window=="undefined"?null:window}return Q}(),it=function(){function Q(vt,bt){if(n(vt)!=="object"||typeof vt.createPolicy!="function")return null;var Nt=null,Dt="data-tt-policy-suffix";bt.currentScript&&bt.currentScript.hasAttribute(Dt)&&(Nt=bt.currentScript.getAttribute(Dt));var Ut="dompurify"+(Nt?"#"+Nt:"");try{return vt.createPolicy(Ut,{createHTML:function(){function Ot(ut){return ut}return Ot}(),createScriptURL:function(){function Ot(ut){return ut}return Ot}()})}catch(Ot){return null}}return Q}();function St(){var Q=arguments.length>0&&arguments[0]!==void 0?arguments[0]:Tt(),vt=function(){function ht($){return St($)}return ht}();if(vt.version="2.5.0",vt.removed=[],!Q||!Q.document||Q.document.nodeType!==9)return vt.isSupported=!1,vt;var bt=Q.document,Nt=Q.document,Dt=Q.DocumentFragment,Ut=Q.HTMLTemplateElement,Ot=Q.Node,ut=Q.Element,gt=Q.NodeFilter,At=Q.NamedNodeMap,Ct=At===void 0?Q.NamedNodeMap||Q.MozNamedAttrMap:At,Mt=Q.HTMLFormElement,xt=Q.DOMParser,jt=Q.trustedTypes,Kt=ut.prototype,Wt=U(Kt,"cloneNode"),$t=U(Kt,"nextSibling"),kt=U(Kt,"childNodes"),Zt=U(Kt,"parentNode");if(typeof Ut=="function"){var Be=Nt.createElement("template");Be.content&&Be.content.ownerDocument&&(Nt=Be.content.ownerDocument)}var te=it(jt,bt),De=te?te.createHTML(""):"",ve=Nt,xe=ve.implementation,nn=ve.createNodeIterator,rn=ve.createDocumentFragment,Ye=ve.getElementsByTagName,on=bt.importNode,an={};try{an=j(Nt).documentMode?Nt.documentMode:{}}catch(ht){}var re={};vt.isSupported=typeof Zt=="function"&&xe&&xe.createHTMLDocument!==void 0&&an!==9;var $e=yt,He=wt,he=ct,Oe=tt,oe=dt,ue=_,ge=J,Fe=Pt,pe=Et,Xt=null,un=B({},[].concat(o(K),o(Y),o(W),o(at),o(z))),Jt=null,sn=B({},[].concat(o(X),o(nt),o(lt),o(rt))),Ht=Object.seal(Object.create(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),me=null,Ve=null,We=!0,Ie=!0,zt=!1,cn=!0,ye=!1,ke=!0,le=!1,se=!1,ze=!1,Se=!1,je=!1,Ae=!1,ln=!0,Xe=!1,Sn="user-content-",ae=!0,Pe=!1,Ee={},be=null,fn=B({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","style","svg","template","thead","title","video","xmp"]),dn=null,vn=B({},["audio","video","img","source","image","track"]),Ne=null,hn=B({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),Me="http://www.w3.org/1998/Math/MathML",Ue="http://www.w3.org/2000/svg",ce="http://www.w3.org/1999/xhtml",Ce=ce,Je=!1,Qe=null,En=B({},[Me,Ue,ce],A),_t,Ke=["application/xhtml+xml","text/html"],gn="text/html",Qt,Te=null,pn=Nt.createElement("form"),Ze=function(){function ht($){return $ instanceof RegExp||$ instanceof Function}return ht}(),_e=function(){function ht($){Te&&Te===$||((!$||n($)!=="object")&&($={}),$=j($),_t=Ke.indexOf($.PARSER_MEDIA_TYPE)===-1?_t=gn:_t=$.PARSER_MEDIA_TYPE,Qt=_t==="application/xhtml+xml"?A:I,Xt="ALLOWED_TAGS"in $?B({},$.ALLOWED_TAGS,Qt):un,Jt="ALLOWED_ATTR"in $?B({},$.ALLOWED_ATTR,Qt):sn,Qe="ALLOWED_NAMESPACES"in $?B({},$.ALLOWED_NAMESPACES,A):En,Ne="ADD_URI_SAFE_ATTR"in $?B(j(hn),$.ADD_URI_SAFE_ATTR,Qt):hn,dn="ADD_DATA_URI_TAGS"in $?B(j(vn),$.ADD_DATA_URI_TAGS,Qt):vn,be="FORBID_CONTENTS"in $?B({},$.FORBID_CONTENTS,Qt):fn,me="FORBID_TAGS"in $?B({},$.FORBID_TAGS,Qt):{},Ve="FORBID_ATTR"in $?B({},$.FORBID_ATTR,Qt):{},Ee="USE_PROFILES"in $?$.USE_PROFILES:!1,We=$.ALLOW_ARIA_ATTR!==!1,Ie=$.ALLOW_DATA_ATTR!==!1,zt=$.ALLOW_UNKNOWN_PROTOCOLS||!1,cn=$.ALLOW_SELF_CLOSE_IN_ATTR!==!1,ye=$.SAFE_FOR_TEMPLATES||!1,ke=$.SAFE_FOR_XML!==!1,le=$.WHOLE_DOCUMENT||!1,Se=$.RETURN_DOM||!1,je=$.RETURN_DOM_FRAGMENT||!1,Ae=$.RETURN_TRUSTED_TYPE||!1,ze=$.FORCE_BODY||!1,ln=$.SANITIZE_DOM!==!1,Xe=$.SANITIZE_NAMED_PROPS||!1,ae=$.KEEP_CONTENT!==!1,Pe=$.IN_PLACE||!1,pe=$.ALLOWED_URI_REGEXP||pe,Ce=$.NAMESPACE||ce,Ht=$.CUSTOM_ELEMENT_HANDLING||{},$.CUSTOM_ELEMENT_HANDLING&&Ze($.CUSTOM_ELEMENT_HANDLING.tagNameCheck)&&(Ht.tagNameCheck=$.CUSTOM_ELEMENT_HANDLING.tagNameCheck),$.CUSTOM_ELEMENT_HANDLING&&Ze($.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)&&(Ht.attributeNameCheck=$.CUSTOM_ELEMENT_HANDLING.attributeNameCheck),$.CUSTOM_ELEMENT_HANDLING&&typeof $.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements=="boolean"&&(Ht.allowCustomizedBuiltInElements=$.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements),ye&&(Ie=!1),je&&(Se=!0),Ee&&(Xt=B({},o(z)),Jt=[],Ee.html===!0&&(B(Xt,K),B(Jt,X)),Ee.svg===!0&&(B(Xt,Y),B(Jt,nt),B(Jt,rt)),Ee.svgFilters===!0&&(B(Xt,W),B(Jt,nt),B(Jt,rt)),Ee.mathMl===!0&&(B(Xt,at),B(Jt,lt),B(Jt,rt))),$.ADD_TAGS&&(Xt===un&&(Xt=j(Xt)),B(Xt,$.ADD_TAGS,Qt)),$.ADD_ATTR&&(Jt===sn&&(Jt=j(Jt)),B(Jt,$.ADD_ATTR,Qt)),$.ADD_URI_SAFE_ATTR&&B(Ne,$.ADD_URI_SAFE_ATTR,Qt),$.FORBID_CONTENTS&&(be===fn&&(be=j(be)),B(be,$.FORBID_CONTENTS,Qt)),ae&&(Xt["#text"]=!0),le&&B(Xt,["html","head","body"]),Xt.table&&(B(Xt,["tbody"]),delete me.tbody),f&&f($),Te=$)}return ht}(),Re=B({},["mi","mo","mn","ms","mtext"]),mn=B({},["foreignobject","desc","title","annotation-xml"]),qe=B({},["title","style","font","a","script"]),we=B({},Y);B(we,W),B(we,et);var tn=B({},at);B(tn,pt);var yn=function(){function ht($){var ft=Zt($);(!ft||!ft.tagName)&&(ft={namespaceURI:Ce,tagName:"template"});var It=I($.tagName),Ft=I(ft.tagName);return Qe[$.namespaceURI]?$.namespaceURI===Ue?ft.namespaceURI===ce?It==="svg":ft.namespaceURI===Me?It==="svg"&&(Ft==="annotation-xml"||Re[Ft]):!!we[It]:$.namespaceURI===Me?ft.namespaceURI===ce?It==="math":ft.namespaceURI===Ue?It==="math"&&mn[Ft]:!!tn[It]:$.namespaceURI===ce?ft.namespaceURI===Ue&&!mn[Ft]||ft.namespaceURI===Me&&!Re[Ft]?!1:!tn[It]&&(qe[It]||!we[It]):!!(_t==="application/xhtml+xml"&&Qe[$.namespaceURI]):!1}return ht}(),ee=function(){function ht($){E(vt.removed,{element:$});try{$.parentNode.removeChild($)}catch(ft){try{$.outerHTML=De}catch(It){$.remove()}}}return ht}(),Le=function(){function ht($,ft){try{E(vt.removed,{attribute:ft.getAttributeNode($),from:ft})}catch(It){E(vt.removed,{attribute:null,from:ft})}if(ft.removeAttribute($),$==="is"&&!Jt[$])if(Se||je)try{ee(ft)}catch(It){}else try{ft.setAttribute($,"")}catch(It){}}return ht}(),bn=function(){function ht($){var ft,It;if(ze)$=""+$;else{var Ft=N($,/^[\r\n\t ]+/);It=Ft&&Ft[0]}_t==="application/xhtml+xml"&&Ce===ce&&($=''+$+"");var Bt=te?te.createHTML($):$;if(Ce===ce)try{ft=new xt().parseFromString(Bt,_t)}catch(Vt){}if(!ft||!ft.documentElement){ft=xe.createDocument(Ce,"template",null);try{ft.documentElement.innerHTML=Je?De:Bt}catch(Vt){}}var Gt=ft.body||ft.documentElement;return $&&It&&Gt.insertBefore(Nt.createTextNode(It),Gt.childNodes[0]||null),Ce===ce?Ye.call(ft,le?"html":"body")[0]:le?ft.documentElement:Gt}return ht}(),P=function(){function ht($){return nn.call($.ownerDocument||$,$,gt.SHOW_ELEMENT|gt.SHOW_COMMENT|gt.SHOW_TEXT|gt.SHOW_PROCESSING_INSTRUCTION|gt.SHOW_CDATA_SECTION,null,!1)}return ht}(),R=function(){function ht($){return $ instanceof Mt&&(typeof $.nodeName!="string"||typeof $.textContent!="string"||typeof $.removeChild!="function"||!($.attributes instanceof Ct)||typeof $.removeAttribute!="function"||typeof $.setAttribute!="function"||typeof $.namespaceURI!="string"||typeof $.insertBefore!="function"||typeof $.hasChildNodes!="function")}return ht}(),D=function(){function ht($){return n(Ot)==="object"?$ instanceof Ot:$&&n($)==="object"&&typeof $.nodeType=="number"&&typeof $.nodeName=="string"}return ht}(),H=function(){function ht($,ft,It){re[$]&&C(re[$],function(Ft){Ft.call(vt,ft,It,Te)})}return ht}(),Z=function(){function ht($){var ft;if(H("beforeSanitizeElements",$,null),R($)||x(/[\u0080-\uFFFF]/,$.nodeName))return ee($),!0;var It=Qt($.nodeName);if(H("uponSanitizeElement",$,{tagName:It,allowedTags:Xt}),$.hasChildNodes()&&!D($.firstElementChild)&&(!D($.content)||!D($.content.firstElementChild))&&x(/<[/\w]/g,$.innerHTML)&&x(/<[/\w]/g,$.textContent)||It==="select"&&x(/=0;--Vt)Ft.insertBefore(Wt(Bt[Vt],!0),$t($))}return ee($),!0}return $ instanceof ut&&!yn($)||(It==="noscript"||It==="noembed"||It==="noframes")&&x(/<\/no(script|embed|frames)/i,$.innerHTML)?(ee($),!0):(ye&&$.nodeType===3&&(ft=$.textContent,ft=M(ft,$e," "),ft=M(ft,He," "),ft=M(ft,he," "),$.textContent!==ft&&(E(vt.removed,{element:$.cloneNode()}),$.textContent=ft)),H("afterSanitizeElements",$,null),!1)}return ht}(),q=function(){function ht($,ft,It){if(ln&&(ft==="id"||ft==="name")&&(It in Nt||It in pn))return!1;if(!(Ie&&!Ve[ft]&&x(Oe,ft))){if(!(We&&x(oe,ft))){if(!Jt[ft]||Ve[ft]){if(!(ot($)&&(Ht.tagNameCheck instanceof RegExp&&x(Ht.tagNameCheck,$)||Ht.tagNameCheck instanceof Function&&Ht.tagNameCheck($))&&(Ht.attributeNameCheck instanceof RegExp&&x(Ht.attributeNameCheck,ft)||Ht.attributeNameCheck instanceof Function&&Ht.attributeNameCheck(ft))||ft==="is"&&Ht.allowCustomizedBuiltInElements&&(Ht.tagNameCheck instanceof RegExp&&x(Ht.tagNameCheck,It)||Ht.tagNameCheck instanceof Function&&Ht.tagNameCheck(It))))return!1}else if(!Ne[ft]){if(!x(pe,M(It,ge,""))){if(!((ft==="src"||ft==="xlink:href"||ft==="href")&&$!=="script"&&w(It,"data:")===0&&dn[$])){if(!(zt&&!x(ue,M(It,ge,"")))){if(It)return!1}}}}}}return!0}return ht}(),ot=function(){function ht($){return $!=="annotation-xml"&&N($,Fe)}return ht}(),mt=function(){function ht($){var ft,It,Ft,Bt;H("beforeSanitizeAttributes",$,null);var Gt=$.attributes;if(Gt){var Vt={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:Jt};for(Bt=Gt.length;Bt--;){ft=Gt[Bt];var ne=ft,Yt=ne.name,fe=ne.namespaceURI;if(It=Yt==="value"?ft.value:L(ft.value),Ft=Qt(Yt),Vt.attrName=Ft,Vt.attrValue=It,Vt.keepAttr=!0,Vt.forceKeepAttr=void 0,H("uponSanitizeAttribute",$,Vt),It=Vt.attrValue,!Vt.forceKeepAttr&&(Le(Yt,$),!!Vt.keepAttr)){if(!cn&&x(/\/>/i,It)){Le(Yt,$);continue}ye&&(It=M(It,$e," "),It=M(It,He," "),It=M(It,he," "));var ie=Qt($.nodeName);if(q(ie,Ft,It)){if(Xe&&(Ft==="id"||Ft==="name")&&(Le(Yt,$),It=Sn+It),te&&n(jt)==="object"&&typeof jt.getAttributeType=="function"&&!fe)switch(jt.getAttributeType(ie,Ft)){case"TrustedHTML":{It=te.createHTML(It);break}case"TrustedScriptURL":{It=te.createScriptURL(It);break}}try{fe?$.setAttributeNS(fe,Yt,It):$.setAttribute(Yt,It),S(vt.removed)}catch(Ge){}}}}H("afterSanitizeAttributes",$,null)}}return ht}(),Lt=function(){function ht($){var ft,It=P($);for(H("beforeSanitizeShadowDOM",$,null);ft=It.nextNode();)H("uponSanitizeShadowNode",ft,null),!Z(ft)&&(ft.content instanceof Dt&&ht(ft.content),mt(ft));H("afterSanitizeShadowDOM",$,null)}return ht}();return vt.sanitize=function(ht){var $=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},ft,It,Ft,Bt,Gt;if(Je=!ht,Je&&(ht=""),typeof ht!="string"&&!D(ht))if(typeof ht.toString=="function"){if(ht=ht.toString(),typeof ht!="string")throw V("dirty is not a string, aborting")}else throw V("toString is not a function");if(!vt.isSupported){if(n(Q.toStaticHTML)==="object"||typeof Q.toStaticHTML=="function"){if(typeof ht=="string")return Q.toStaticHTML(ht);if(D(ht))return Q.toStaticHTML(ht.outerHTML)}return ht}if(se||_e($),vt.removed=[],typeof ht=="string"&&(Pe=!1),Pe){if(ht.nodeName){var Vt=Qt(ht.nodeName);if(!Xt[Vt]||me[Vt])throw V("root node is forbidden and cannot be sanitized in-place")}}else if(ht instanceof Ot)ft=bn(""),It=ft.ownerDocument.importNode(ht,!0),It.nodeType===1&&It.nodeName==="BODY"||It.nodeName==="HTML"?ft=It:ft.appendChild(It);else{if(!Se&&!ye&&!le&&ht.indexOf("<")===-1)return te&&Ae?te.createHTML(ht):ht;if(ft=bn(ht),!ft)return Se?null:Ae?De:""}ft&&ze&&ee(ft.firstChild);for(var ne=P(Pe?ht:ft);Ft=ne.nextNode();)Ft.nodeType===3&&Ft===Bt||Z(Ft)||(Ft.content instanceof Dt&&Lt(Ft.content),mt(Ft),Bt=Ft);if(Bt=null,Pe)return ht;if(Se){if(je)for(Gt=rn.call(ft.ownerDocument);ft.firstChild;)Gt.appendChild(ft.firstChild);else Gt=ft;return(Jt.shadowroot||Jt.shadowrootmod)&&(Gt=on.call(bt,Gt,!0)),Gt}var Yt=le?ft.outerHTML:ft.innerHTML;return le&&Xt["!doctype"]&&ft.ownerDocument&&ft.ownerDocument.doctype&&ft.ownerDocument.doctype.name&&x(st,ft.ownerDocument.doctype.name)&&(Yt="\n"+Yt),ye&&(Yt=M(Yt,$e," "),Yt=M(Yt,He," "),Yt=M(Yt,he," ")),te&&Ae?te.createHTML(Yt):Yt},vt.setConfig=function(ht){_e(ht),se=!0},vt.clearConfig=function(){Te=null,se=!1},vt.isValidAttribute=function(ht,$,ft){Te||_e({});var It=Qt(ht),Ft=Qt($);return q(It,Ft,ft)},vt.addHook=function(ht,$){typeof $=="function"&&(re[ht]=re[ht]||[],E(re[ht],$))},vt.removeHook=function(ht){if(re[ht])return S(re[ht])},vt.removeHooks=function(ht){re[ht]&&(re[ht]=[])},vt.removeAllHooks=function(){re={}},vt}var Rt=St();return Rt})},63935:function(b,n){"use strict";n.__esModule=!0,n.Fragment=n.EMPTY_OBJ=n.Component=void 0,n._CI=We,n._HI=ct,n._M=zt,n._MCCC=Ae,n._ME=le,n._MFCC=Xe,n._MP=me,n._MR=Oe,n._RFC=Ie,n.__render=pn,n.createComponentVNode=W,n.createFragment=at,n.createPortal=lt,n.createRef=$e,n.createRenderer=_e,n.createTextVNode=et,n.createVNode=j,n.directClone=X,n.findDOMfromVNode=E,n.forwardRef=He,n.getFlagsForElementVnode=yt,n.linkEvent=i,n.normalizeProps=pt,n.options=void 0,n.render=Ze,n.rerender=yn,n.version=void 0;var t=Array.isArray;function e(P){var R=typeof P;return R==="string"||R==="number"}function r(P){return P==null}function o(P){return P===null||P===!1||P===!0||P===void 0}function a(P){return typeof P=="function"}function u(P){return typeof P=="string"}function l(P){return typeof P=="number"}function c(P){return P===null}function p(P){return P===void 0}function d(P,R){var D={};if(P)for(var H in P)D[H]=P[H];if(R)for(var Z in R)D[Z]=R[Z];return D}function i(P,R){return a(R)?{data:P,event:R}:null}function v(P){return!c(P)&&typeof P=="object"}var s=n.EMPTY_OBJ={},g=n.Fragment="$F";function f(P){return P.substr(2).toLowerCase()}function h(P,R){P.appendChild(R)}function m(P,R,D){c(D)?h(P,R):P.insertBefore(R,D)}function y(P,R){return R?document.createElementNS("http://www.w3.org/2000/svg",P):document.createElement(P)}function T(P,R,D){P.replaceChild(R,D)}function O(P,R){P.removeChild(R)}function C(P){for(var R=0;R0,ht=c(mt),$=u(mt)&&mt[0]===G;Lt||ht||$?(D=D||R.slice(0,q),(Lt||$)&&(ot=X(ot)),(ht||$)&&(ot.key=G+q),D.push(ot)):D&&D.push(ot),ot.flags|=65536}}D=D||R,D.length===0?H=1:H=8}else D=R,D.flags|=65536,R.flags&81920&&(D=X(R)),H=2;return P.children=D,P.childFlags=H,P}function ct(P){return o(P)||e(P)?et(P,null):t(P)?at(P,0,null):P.flags&16384?X(P):P}var tt="http://www.w3.org/1999/xlink",dt="http://www.w3.org/XML/1998/namespace",Et={"xlink:actuate":tt,"xlink:arcrole":tt,"xlink:href":tt,"xlink:role":tt,"xlink:show":tt,"xlink:title":tt,"xlink:type":tt,"xml:base":dt,"xml:lang":dt,"xml:space":dt};function _(P){return{onClick:P,onDblClick:P,onFocusIn:P,onFocusOut:P,onKeyDown:P,onKeyPress:P,onKeyUp:P,onMouseDown:P,onMouseMove:P,onMouseUp:P,onTouchEnd:P,onTouchMove:P,onTouchStart:P}}var J=_(0),st=_(null),Pt=_(!0);function Tt(P,R){var D=R.$EV;return D||(D=R.$EV=_(null)),D[P]||++J[P]===1&&(st[P]=ut(P)),D}function it(P,R){var D=R.$EV;D&&D[P]&&(--J[P]===0&&(document.removeEventListener(f(P),st[P]),st[P]=null),D[P]=null)}function St(P,R,D,H){if(a(D))Tt(P,H)[P]=D;else if(v(D)){if(x(R,D))return;Tt(P,H)[P]=D}else it(P,H)}function Rt(P){return a(P.composedPath)?P.composedPath()[0]:P.target}function Q(P,R,D,H){var Z=Rt(P);do{if(R&&Z.disabled)return;var q=Z.$EV;if(q){var ot=q[D];if(ot&&(H.dom=Z,ot.event?ot.event(ot.data,P):ot(P),P.cancelBubble))return}Z=Z.parentNode}while(!c(Z))}function vt(){this.cancelBubble=!0,this.immediatePropagationStopped||this.stopImmediatePropagation()}function bt(){return this.defaultPrevented}function Nt(){return this.cancelBubble}function Dt(P){var R={dom:document};return P.isDefaultPrevented=bt,P.isPropagationStopped=Nt,P.stopPropagation=vt,Object.defineProperty(P,"currentTarget",{configurable:!0,get:function(){function D(){return R.dom}return D}()}),R}function Ut(P){return function(R){if(R.button!==0){R.stopPropagation();return}Q(R,!0,P,Dt(R))}}function Ot(P){return function(R){Q(R,!1,P,Dt(R))}}function ut(P){var R=P==="onClick"||P==="onDblClick"?Ut(P):Ot(P);return document.addEventListener(f(P),R),R}function gt(P,R){var D=document.createElement("i");return D.innerHTML=R,D.innerHTML===P.innerHTML}function At(P,R,D){if(P[R]){var H=P[R];H.event?H.event(H.data,D):H(D)}else{var Z=R.toLowerCase();P[Z]&&P[Z](D)}}function Ct(P,R){var D=function(Z){var q=this.$V;if(q){var ot=q.props||s,mt=q.dom;if(u(P))At(ot,P,Z);else for(var Lt=0;Lt-1&&R.options[q]&&(mt=R.options[q].value),D&&r(mt)&&(mt=P.defaultValue),Zt(H,mt)}}var xe=Ct("onInput",Ye),nn=Ct("onChange");function rn(P,R){Mt(P,"input",xe),R.onChange&&Mt(P,"change",nn)}function Ye(P,R,D){var H=P.value,Z=R.value;if(r(H)){if(D){var q=P.defaultValue;!r(q)&&q!==Z&&(R.defaultValue=q,R.value=q)}}else Z!==H&&(R.defaultValue=H,R.value=H)}function on(P,R,D,H,Z,q){P&64?kt(H,D):P&256?ve(H,D,Z,R):P&128&&Ye(H,D,Z),q&&(D.$V=R)}function an(P,R,D){P&64?$t(R,D):P&256?De(R):P&128&&rn(R,D)}function re(P){return P.type&&xt(P.type)?!r(P.checked):!r(P.value)}function $e(){return{current:null}}function He(P){return{render:P}}function he(P){P&&!F(P,null)&&P.current&&(P.current=null)}function Oe(P,R,D){P&&(a(P)||P.current!==void 0)&&D.push(function(){!F(P,R)&&P.current!==void 0&&(P.current=R)})}function oe(P,R){ue(P),I(P,R)}function ue(P){var R=P.flags,D=P.children,H;if(R&481){H=P.ref;var Z=P.props;he(H);var q=P.childFlags;if(!c(Z))for(var ot=Object.keys(Z),mt=0,Lt=ot.length;mt0;ot&&(q=re(D),q&&an(R,H,D));for(var mt in D)Ht(mt,null,D[mt],H,Z,q,null);ot&&on(R,P,H,D,!0,q)}function Ve(P,R,D){var H=ct(P.render(R,P.state,D)),Z=D;return a(P.getChildContext)&&(Z=d(D,P.getChildContext())),P.$CX=Z,H}function We(P,R,D,H,Z,q){var ot=new R(D,H),mt=ot.$N=!!(R.getDerivedStateFromProps||ot.getSnapshotBeforeUpdate);if(ot.$SVG=Z,ot.$L=q,P.children=ot,ot.$BS=!1,ot.context=H,ot.props===s&&(ot.props=D),mt)ot.state=N(ot,D,ot.state);else if(a(ot.componentWillMount)){ot.$BR=!0,ot.componentWillMount();var Lt=ot.$PS;if(!c(Lt)){var ht=ot.state;if(c(ht))ot.state=Lt;else for(var $ in Lt)ht[$]=Lt[$];ot.$PS=null}ot.$BR=!1}return ot.$LI=Ve(ot,D,H),ot}function Ie(P,R){var D=P.props||s;return P.flags&32768?P.type.render(D,P.ref,R):P.type(D,R)}function zt(P,R,D,H,Z,q){var ot=P.flags|=16384;ot&481?le(P,R,D,H,Z,q):ot&4?ze(P,R,D,H,Z,q):ot&8?(Se(P,R,D,H,Z,q),Xe(P,q)):ot&512||ot&16?ke(P,R,Z):ot&8192?ye(P,D,R,H,Z,q):ot&1024&&cn(P,D,R,Z,q)}function cn(P,R,D,H,Z){zt(P.children,P.ref,R,!1,null,Z);var q=nt();ke(q,D,H),P.dom=q.dom}function ye(P,R,D,H,Z,q){var ot=P.children,mt=P.childFlags;mt&12&&ot.length===0&&(mt=P.childFlags=2,ot=P.children=nt()),mt===2?zt(ot,D,R,H,Z,q):se(ot,D,R,H,Z,q)}function ke(P,R,D){var H=P.dom=document.createTextNode(P.children);c(R)||m(R,H,D)}function le(P,R,D,H,Z,q){var ot=P.flags,mt=P.props,Lt=P.className,ht=P.childFlags,$=P.dom=y(P.type,H=H||(ot&32)>0),ft=P.children;if(!r(Lt)&&Lt!==""&&(H?$.setAttribute("class",Lt):$.className=Lt),ht===16)L($,ft);else if(ht!==1){var It=H&&P.type!=="foreignObject";ht===2?(ft.flags&16384&&(P.children=ft=X(ft)),zt(ft,$,D,It,null,q)):(ht===8||ht===4)&&se(ft,$,D,It,null,q)}c(R)||m(R,$,Z),c(mt)||me(P,ot,mt,$,H),Oe(P.ref,$,q)}function se(P,R,D,H,Z,q){for(var ot=0;otIt)&&($=E(ot[It-1],!1).nextSibling)}Ne(Lt,ht,ot,mt,D,H,Z,$,P,q)}function fn(P,R,D,H){var Z=P.ref,q=R.ref,ot=R.children;if(Ne(P.childFlags,R.childFlags,P.children,ot,Z,D,!1,null,P,H),R.dom=P.dom,Z!==q&&!o(ot)){var mt=ot.dom;O(Z,mt),h(q,mt)}}function dn(P,R,D,H,Z,q){var ot=R.dom=P.dom,mt=P.props,Lt=R.props,ht=!1,$=!1,ft;if(H=H||(Z&32)>0,mt!==Lt){var It=mt||s;if(ft=Lt||s,ft!==s){ht=(Z&448)>0,ht&&($=re(ft));for(var Ft in ft){var Bt=It[Ft],Gt=ft[Ft];Bt!==Gt&&Ht(Ft,Bt,Gt,ot,H,$,P)}}if(It!==s)for(var Vt in It)r(ft[Vt])&&!r(It[Vt])&&Ht(Vt,It[Vt],null,ot,H,$,P)}var ne=R.children,Yt=R.className;P.className!==Yt&&(r(Yt)?ot.removeAttribute("class"):H?ot.setAttribute("class",Yt):ot.className=Yt),Z&4096?Ee(ot,ne):Ne(P.childFlags,R.childFlags,P.children,ne,ot,D,H&&R.type!=="foreignObject",null,P,q),ht&&on(Z,R,ot,ft,!1,$);var fe=R.ref,ie=P.ref;ie!==fe&&(he(ie),Oe(fe,ot,q))}function vn(P,R,D,H,Z,q){ue(P),se(R,D,H,Z,E(P,!0),q),I(P,D)}function Ne(P,R,D,H,Z,q,ot,mt,Lt,ht){switch(P){case 2:switch(R){case 2:ae(D,H,Z,q,ot,mt,ht);break;case 1:oe(D,Z);break;case 16:ue(D),L(Z,H);break;default:vn(D,H,Z,q,ot,ht);break}break;case 1:switch(R){case 2:zt(H,Z,q,ot,mt,ht);break;case 1:break;case 16:L(Z,H);break;default:se(H,Z,q,ot,mt,ht);break}break;case 16:switch(R){case 16:Pe(D,H,Z);break;case 2:Fe(Z),zt(H,Z,q,ot,mt,ht);break;case 1:Fe(Z);break;default:Fe(Z),se(H,Z,q,ot,mt,ht);break}break;default:switch(R){case 16:ge(D),L(Z,H);break;case 2:pe(Z,Lt,D),zt(H,Z,q,ot,mt,ht);break;case 1:pe(Z,Lt,D);break;default:var $=D.length|0,ft=H.length|0;$===0?ft>0&&se(H,Z,q,ot,mt,ht):ft===0?pe(Z,Lt,D):R===8&&P===8?Qe(D,H,Z,q,ot,$,ft,mt,Lt,ht):Je(D,H,Z,q,ot,$,ft,mt,ht);break}break}}function hn(P,R,D,H,Z){Z.push(function(){P.componentDidUpdate(R,D,H)})}function Me(P,R,D,H,Z,q,ot,mt,Lt){var ht=P.state,$=P.props,ft=!!P.$N,It=a(P.shouldComponentUpdate);if(ft&&(R=N(P,D,R!==ht?d(ht,R):R)),ot||!It||It&&P.shouldComponentUpdate(D,R,Z)){!ft&&a(P.componentWillUpdate)&&P.componentWillUpdate(D,R,Z),P.props=D,P.state=R,P.context=Z;var Ft=null,Bt=Ve(P,D,Z);ft&&a(P.getSnapshotBeforeUpdate)&&(Ft=P.getSnapshotBeforeUpdate($,ht)),ae(P.$LI,Bt,H,P.$CX,q,mt,Lt),P.$LI=Bt,a(P.componentDidUpdate)&&hn(P,$,ht,Ft,Lt)}else P.props=D,P.state=R,P.context=Z}function Ue(P,R,D,H,Z,q,ot){var mt=R.children=P.children;if(!c(mt)){mt.$L=ot;var Lt=R.props||s,ht=R.ref,$=P.ref,ft=mt.state;if(!mt.$N){if(a(mt.componentWillReceiveProps)){if(mt.$BR=!0,mt.componentWillReceiveProps(Lt,H),mt.$UN)return;mt.$BR=!1}c(mt.$PS)||(ft=d(ft,mt.$PS),mt.$PS=null)}Me(mt,ft,Lt,D,H,Z,!1,q,ot),$!==ht&&(he($),Oe(ht,mt,ot))}}function ce(P,R,D,H,Z,q,ot){var mt=!0,Lt=R.props||s,ht=R.ref,$=P.props,ft=!r(ht),It=P.children;if(ft&&a(ht.onComponentShouldUpdate)&&(mt=ht.onComponentShouldUpdate($,Lt)),mt!==!1){ft&&a(ht.onComponentWillUpdate)&&ht.onComponentWillUpdate($,Lt);var Ft=ct(Ie(R,H));ae(It,Ft,D,H,Z,q,ot),R.children=Ft,ft&&a(ht.onComponentDidUpdate)&&ht.onComponentDidUpdate($,Lt)}else R.children=It}function Ce(P,R){var D=R.children,H=R.dom=P.dom;D!==P.children&&(H.nodeValue=D)}function Je(P,R,D,H,Z,q,ot,mt,Lt){for(var ht=q>ot?ot:q,$=0,ft,It;$ot)for($=ht;$$||It>ft)break t;Ft=P[It],Bt=R[It]}for(Ft=P[$],Bt=R[ft];Ft.key===Bt.key;){if(Bt.flags&16384&&(R[ft]=Bt=X(Bt)),ae(Ft,Bt,D,H,Z,mt,ht),P[$]=Bt,$--,ft--,It>$||It>ft)break t;Ft=P[$],Bt=R[ft]}}if(It>$){if(It<=ft)for(Gt=ft+1,Vt=Gtft)for(;It<=$;)oe(P[It++],D);else En(P,R,H,q,ot,$,ft,It,D,Z,mt,Lt,ht)}function En(P,R,D,H,Z,q,ot,mt,Lt,ht,$,ft,It){var Ft,Bt,Gt,Vt=0,ne=mt,Yt=mt,fe=q-mt+1,ie=ot-mt+1,Ge=new Int32Array(ie+1),de=fe===H,Cn=!1,qt=0,en=0;if(Z<4||(fe|ie)<32)for(Vt=ne;Vt<=q;++Vt)if(Ft=P[Vt],enmt?Cn=!0:qt=mt,Bt.flags&16384&&(R[mt]=Bt=X(Bt)),ae(Ft,Bt,Lt,D,ht,$,It),++en;break}!de&&mt>ot&&oe(Ft,Lt)}else de||oe(Ft,Lt);else{var On={};for(Vt=Yt;Vt<=ot;++Vt)On[R[Vt].key]=Vt;for(Vt=ne;Vt<=q;++Vt)if(Ft=P[Vt],enne;)oe(P[ne++],Lt);Ge[mt-Yt]=Vt+1,qt>mt?Cn=!0:qt=mt,Bt=R[mt],Bt.flags&16384&&(R[mt]=Bt=X(Bt)),ae(Ft,Bt,Lt,D,ht,$,It),++en}else de||oe(Ft,Lt);else de||oe(Ft,Lt)}if(de)pe(Lt,ft,P),se(R,Lt,D,ht,$,It);else if(Cn){var In=Qt(Ge);for(mt=In.length-1,Vt=ie-1;Vt>=0;Vt--)Ge[Vt]===0?(qt=Vt+Yt,Bt=R[qt],Bt.flags&16384&&(R[qt]=Bt=X(Bt)),Gt=qt+1,zt(Bt,Lt,D,ht,Gt=0;Vt--)Ge[Vt]===0&&(qt=Vt+Yt,Bt=R[qt],Bt.flags&16384&&(R[qt]=Bt=X(Bt)),Gt=qt+1,zt(Bt,Lt,D,ht,Gtgn&&(gn=Lt,_t=new Int32Array(Lt),Ke=new Int32Array(Lt));D>1,P[_t[mt]]0&&(Ke[D]=_t[q-1]),_t[q]=D)}q=Z+1;var ht=new Int32Array(q);for(ot=_t[q-1];q-- >0;)ht[q]=ot,ot=Ke[ot],_t[q]=0;return ht}var Te=typeof document!="undefined";Te&&window.Node&&(Node.prototype.$EV=null,Node.prototype.$V=null);function pn(P,R,D,H){var Z=[],q=R.$V;M.v=!0,r(q)?r(P)||(P.flags&16384&&(P=X(P)),zt(P,R,H,!1,null,Z),R.$V=P,q=P):r(P)?(oe(q,R),R.$V=null):(P.flags&16384&&(P=X(P)),ae(q,P,R,H,!1,null,Z),q=R.$V=P),C(Z),M.v=!1,a(D)&&D(),a(w.renderComplete)&&w.renderComplete(q,R)}function Ze(P,R,D,H){D===void 0&&(D=null),H===void 0&&(H=s),pn(P,R,D,H)}function _e(P){return function(){function R(D,H,Z,q){P||(P=D),Ze(H,P,Z,q)}return R}()}var Re=[],mn=typeof Promise!="undefined"?Promise.resolve().then.bind(Promise.resolve()):function(P){window.setTimeout(P,0)},qe=!1;function we(P,R,D,H){var Z=P.$PS;if(a(R)&&(R=R(Z?d(P.state,Z):P.state,P.props,P.context)),r(Z))P.$PS=R;else for(var q in R)Z[q]=R[q];if(P.$BR)a(D)&&P.$L.push(D.bind(P));else{if(!M.v&&Re.length===0){ee(P,H),a(D)&&D.call(P);return}if(Re.indexOf(P)===-1&&Re.push(P),H&&(P.$F=!0),qe||(qe=!0,mn(yn)),a(D)){var ot=P.$QU;ot||(ot=P.$QU=[]),ot.push(D)}}}function tn(P){for(var R=P.$QU,D=0;D=0;--Y){var W=this.tryEntries[Y],et=W.completion;if(W.tryLoc==="root")return K("end");if(W.tryLoc<=this.prev){var at=r.call(W,"catchLoc"),pt=r.call(W,"finallyLoc");if(at&&pt){if(this.prev=0;--K){var Y=this.tryEntries[K];if(Y.tryLoc<=this.prev&&r.call(Y,"finallyLoc")&&this.prev=0;--U){var K=this.tryEntries[U];if(K.finallyLoc===j)return this.complete(K.completion,K.afterLoc),x(K),m}}return B}(),catch:function(){function B(j){for(var U=this.tryEntries.length-1;U>=0;--U){var K=this.tryEntries[U];if(K.tryLoc===j){var Y=K.completion;if(Y.type==="throw"){var W=Y.arg;x(K)}return W}}throw new Error("illegal catch attempt")}return B}(),delegateYield:function(){function B(j,U,K){return this.delegate={iterator:F(j),resultName:U,nextLoc:K},this.method==="next"&&(this.arg=a),m}return B}()},t}(b.exports);try{regeneratorRuntime=n}catch(t){typeof globalThis=="object"?globalThis.regeneratorRuntime=n:Function("r","regeneratorRuntime = r")(n)}},16666:function(){"use strict";self.fetch||(self.fetch=function(b,n){return n=n||{},new Promise(function(t,e){var r=new XMLHttpRequest,o=[],a={},u=function(){function c(){return{ok:(r.status/100|0)==2,statusText:r.statusText,status:r.status,url:r.responseURL,text:function(){function p(){return Promise.resolve(r.responseText)}return p}(),json:function(){function p(){return Promise.resolve(r.responseText).then(JSON.parse)}return p}(),blob:function(){function p(){return Promise.resolve(new Blob([r.response]))}return p}(),clone:c,headers:{keys:function(){function p(){return o}return p}(),entries:function(){function p(){return o.map(function(d){return[d,r.getResponseHeader(d)]})}return p}(),get:function(){function p(d){return r.getResponseHeader(d)}return p}(),has:function(){function p(d){return r.getResponseHeader(d)!=null}return p}()}}}return c}();for(var l in r.open(n.method||"get",b,!0),r.onload=function(){r.getAllResponseHeaders().toLowerCase().replace(/^(.+?):/gm,function(c,p){a[p]||o.push(a[p]=p)}),t(u())},r.onerror=e,r.withCredentials=n.credentials=="include",n.headers)r.setRequestHeader(l,n.headers[l]);r.send(n.body||null)})})},50640:function(b,n){"use strict";n.__esModule=!0,n.zipWith=n.zip=n.uniqBy=n.uniq=n.toKeyedArray=n.toArray=n.sortBy=n.sort=n.reduce=n.range=n.map=n.filterMap=n.filter=void 0;function t(y,T){var O=typeof Symbol!="undefined"&&y[Symbol.iterator]||y["@@iterator"];if(O)return(O=O.call(y)).next.bind(O);if(Array.isArray(y)||(O=e(y))||T&&y&&typeof y.length=="number"){O&&(y=O);var C=0;return function(){return C>=y.length?{done:!0}:{done:!1,value:y[C++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function e(y,T){if(y){if(typeof y=="string")return r(y,T);var O=Object.prototype.toString.call(y).slice(8,-1);if(O==="Object"&&y.constructor&&(O=y.constructor.name),O==="Map"||O==="Set")return Array.from(y);if(O==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(O))return r(y,T)}}function r(y,T){(T==null||T>y.length)&&(T=y.length);for(var O=0,C=new Array(T);O0&&(0,r.round)(i.width)/c.offsetWidth||1,l=c.offsetHeight>0&&(0,r.round)(i.height)/c.offsetHeight||1);var p=(0,n.isElement)(c)?(0,o.default)(c):window,v=p.visualViewport,g=!(0,a.default)()&&f,m=(i.left+(g&&v?v.offsetLeft:0))/d,C=(i.top+(g&&v?v.offsetTop:0))/l,T=i.width/d,I=i.height/l;return{width:T,height:I,top:C,right:m+T,bottom:C+I,left:m,x:m,y:C}}},49035:function(S,e,t){"use strict";e.__esModule=!0,e.default=I;var n=t(46206),r=g(t(87991)),o=g(t(79752)),a=g(t(98309)),u=g(t(44896)),s=g(t(40600)),c=g(t(16599)),h=t(75573),f=g(t(37786)),i=g(t(57819)),d=g(t(4206)),l=g(t(12972)),p=g(t(81666)),v=t(63618);function g(b){return b&&b.__esModule?b:{default:b}}function m(b,y){var E=(0,f.default)(b,!1,y==="fixed");return E.top=E.top+b.clientTop,E.left=E.left+b.clientLeft,E.bottom=E.top+b.clientHeight,E.right=E.left+b.clientWidth,E.width=b.clientWidth,E.height=b.clientHeight,E.x=E.left,E.y=E.top,E}function C(b,y,E){return y===n.viewport?(0,p.default)((0,r.default)(b,E)):(0,h.isElement)(y)?m(y,E):(0,p.default)((0,o.default)((0,s.default)(b)))}function T(b){var y=(0,a.default)((0,i.default)(b)),E=["absolute","fixed"].indexOf((0,c.default)(b).position)>=0,A=E&&(0,h.isHTMLElement)(b)?(0,u.default)(b):b;return(0,h.isElement)(A)?y.filter(function(N){return(0,h.isElement)(N)&&(0,d.default)(N,A)&&(0,l.default)(N)!=="body"}):[]}function I(b,y,E,A){var N=y==="clippingParents"?T(b):[].concat(y),M=[].concat(N,[E]),w=M[0],L=M.reduce(function(B,x){var j=C(b,x,A);return B.top=(0,v.max)(j.top,B.top),B.right=(0,v.min)(j.right,B.right),B.bottom=(0,v.min)(j.bottom,B.bottom),B.left=(0,v.max)(j.left,B.left),B},C(b,w,A));return L.width=L.right-L.left,L.height=L.bottom-L.top,L.x=L.left,L.y=L.top,L}},74758:function(S,e,t){"use strict";e.__esModule=!0,e.default=d;var n=f(t(37786)),r=f(t(13390)),o=f(t(12972)),a=t(75573),u=f(t(79697)),s=f(t(40600)),c=f(t(10798)),h=t(63618);function f(l){return l&&l.__esModule?l:{default:l}}function i(l){var p=l.getBoundingClientRect(),v=(0,h.round)(p.width)/l.offsetWidth||1,g=(0,h.round)(p.height)/l.offsetHeight||1;return v!==1||g!==1}function d(l,p,v){v===void 0&&(v=!1);var g=(0,a.isHTMLElement)(p),m=(0,a.isHTMLElement)(p)&&i(p),C=(0,s.default)(p),T=(0,n.default)(l,m,v),I={scrollLeft:0,scrollTop:0},b={x:0,y:0};return(g||!g&&!v)&&(((0,o.default)(p)!=="body"||(0,c.default)(C))&&(I=(0,r.default)(p)),(0,a.isHTMLElement)(p)?(b=(0,n.default)(p,!0),b.x+=p.clientLeft,b.y+=p.clientTop):C&&(b.x=(0,u.default)(C))),{x:T.left+I.scrollLeft-b.x,y:T.top+I.scrollTop-b.y,width:T.width,height:T.height}}},16599:function(S,e,t){"use strict";e.__esModule=!0,e.default=o;var n=r(t(95115));function r(a){return a&&a.__esModule?a:{default:a}}function o(a){return(0,n.default)(a).getComputedStyle(a)}},40600:function(S,e,t){"use strict";e.__esModule=!0,e.default=r;var n=t(75573);function r(o){return(((0,n.isElement)(o)?o.ownerDocument:o.document)||window.document).documentElement}},79752:function(S,e,t){"use strict";e.__esModule=!0,e.default=c;var n=s(t(40600)),r=s(t(16599)),o=s(t(79697)),a=s(t(43750)),u=t(63618);function s(h){return h&&h.__esModule?h:{default:h}}function c(h){var f,i=(0,n.default)(h),d=(0,a.default)(h),l=(f=h.ownerDocument)==null?void 0:f.body,p=(0,u.max)(i.scrollWidth,i.clientWidth,l?l.scrollWidth:0,l?l.clientWidth:0),v=(0,u.max)(i.scrollHeight,i.clientHeight,l?l.scrollHeight:0,l?l.clientHeight:0),g=-d.scrollLeft+(0,o.default)(h),m=-d.scrollTop;return(0,r.default)(l||i).direction==="rtl"&&(g+=(0,u.max)(i.clientWidth,l?l.clientWidth:0)-p),{width:p,height:v,x:g,y:m}}},3073:function(S,e){"use strict";e.__esModule=!0,e.default=t;function t(n){return{scrollLeft:n.scrollLeft,scrollTop:n.scrollTop}}},28811:function(S,e,t){"use strict";e.__esModule=!0,e.default=o;var n=r(t(37786));function r(a){return a&&a.__esModule?a:{default:a}}function o(a){var u=(0,n.default)(a),s=a.offsetWidth,c=a.offsetHeight;return Math.abs(u.width-s)<=1&&(s=u.width),Math.abs(u.height-c)<=1&&(c=u.height),{x:a.offsetLeft,y:a.offsetTop,width:s,height:c}}},12972:function(S,e){"use strict";e.__esModule=!0,e.default=t;function t(n){return n?(n.nodeName||"").toLowerCase():null}},13390:function(S,e,t){"use strict";e.__esModule=!0,e.default=s;var n=u(t(43750)),r=u(t(95115)),o=t(75573),a=u(t(3073));function u(c){return c&&c.__esModule?c:{default:c}}function s(c){return c===(0,r.default)(c)||!(0,o.isHTMLElement)(c)?(0,n.default)(c):(0,a.default)(c)}},44896:function(S,e,t){"use strict";e.__esModule=!0,e.default=d;var n=h(t(95115)),r=h(t(12972)),o=h(t(16599)),a=t(75573),u=h(t(87031)),s=h(t(57819)),c=h(t(35366));function h(l){return l&&l.__esModule?l:{default:l}}function f(l){return!(0,a.isHTMLElement)(l)||(0,o.default)(l).position==="fixed"?null:l.offsetParent}function i(l){var p=/firefox/i.test((0,c.default)()),v=/Trident/i.test((0,c.default)());if(v&&(0,a.isHTMLElement)(l)){var g=(0,o.default)(l);if(g.position==="fixed")return null}var m=(0,s.default)(l);for((0,a.isShadowRoot)(m)&&(m=m.host);(0,a.isHTMLElement)(m)&&["html","body"].indexOf((0,r.default)(m))<0;){var C=(0,o.default)(m);if(C.transform!=="none"||C.perspective!=="none"||C.contain==="paint"||["transform","perspective"].indexOf(C.willChange)!==-1||p&&C.willChange==="filter"||p&&C.filter&&C.filter!=="none")return m;m=m.parentNode}return null}function d(l){for(var p=(0,n.default)(l),v=f(l);v&&(0,u.default)(v)&&(0,o.default)(v).position==="static";)v=f(v);return v&&((0,r.default)(v)==="html"||(0,r.default)(v)==="body"&&(0,o.default)(v).position==="static")?p:v||i(l)||p}},57819:function(S,e,t){"use strict";e.__esModule=!0,e.default=u;var n=a(t(12972)),r=a(t(40600)),o=t(75573);function a(s){return s&&s.__esModule?s:{default:s}}function u(s){return(0,n.default)(s)==="html"?s:s.assignedSlot||s.parentNode||((0,o.isShadowRoot)(s)?s.host:null)||(0,r.default)(s)}},24426:function(S,e,t){"use strict";e.__esModule=!0,e.default=s;var n=u(t(57819)),r=u(t(10798)),o=u(t(12972)),a=t(75573);function u(c){return c&&c.__esModule?c:{default:c}}function s(c){return["html","body","#document"].indexOf((0,o.default)(c))>=0?c.ownerDocument.body:(0,a.isHTMLElement)(c)&&(0,r.default)(c)?c:s((0,n.default)(c))}},87991:function(S,e,t){"use strict";e.__esModule=!0,e.default=s;var n=u(t(95115)),r=u(t(40600)),o=u(t(79697)),a=u(t(89331));function u(c){return c&&c.__esModule?c:{default:c}}function s(c,h){var f=(0,n.default)(c),i=(0,r.default)(c),d=f.visualViewport,l=i.clientWidth,p=i.clientHeight,v=0,g=0;if(d){l=d.width,p=d.height;var m=(0,a.default)();(m||!m&&h==="fixed")&&(v=d.offsetLeft,g=d.offsetTop)}return{width:l,height:p,x:v+(0,o.default)(c),y:g}}},95115:function(S,e){"use strict";e.__esModule=!0,e.default=t;function t(n){if(n==null)return window;if(n.toString()!=="[object Window]"){var r=n.ownerDocument;return r&&r.defaultView||window}return n}},43750:function(S,e,t){"use strict";e.__esModule=!0,e.default=o;var n=r(t(95115));function r(a){return a&&a.__esModule?a:{default:a}}function o(a){var u=(0,n.default)(a),s=u.pageXOffset,c=u.pageYOffset;return{scrollLeft:s,scrollTop:c}}},79697:function(S,e,t){"use strict";e.__esModule=!0,e.default=u;var n=a(t(37786)),r=a(t(40600)),o=a(t(43750));function a(s){return s&&s.__esModule?s:{default:s}}function u(s){return(0,n.default)((0,r.default)(s)).left+(0,o.default)(s).scrollLeft}},75573:function(S,e,t){"use strict";e.__esModule=!0,e.isElement=o,e.isHTMLElement=a,e.isShadowRoot=u;var n=r(t(95115));function r(s){return s&&s.__esModule?s:{default:s}}function o(s){var c=(0,n.default)(s).Element;return s instanceof c||s instanceof Element}function a(s){var c=(0,n.default)(s).HTMLElement;return s instanceof c||s instanceof HTMLElement}function u(s){if(typeof ShadowRoot=="undefined")return!1;var c=(0,n.default)(s).ShadowRoot;return s instanceof c||s instanceof ShadowRoot}},89331:function(S,e,t){"use strict";e.__esModule=!0,e.default=o;var n=r(t(35366));function r(a){return a&&a.__esModule?a:{default:a}}function o(){return!/^((?!chrome|android).)*safari/i.test((0,n.default)())}},10798:function(S,e,t){"use strict";e.__esModule=!0,e.default=o;var n=r(t(16599));function r(a){return a&&a.__esModule?a:{default:a}}function o(a){var u=(0,n.default)(a),s=u.overflow,c=u.overflowX,h=u.overflowY;return/auto|scroll|overlay|hidden/.test(s+h+c)}},87031:function(S,e,t){"use strict";e.__esModule=!0,e.default=o;var n=r(t(12972));function r(a){return a&&a.__esModule?a:{default:a}}function o(a){return["table","td","th"].indexOf((0,n.default)(a))>=0}},98309:function(S,e,t){"use strict";e.__esModule=!0,e.default=s;var n=u(t(24426)),r=u(t(57819)),o=u(t(95115)),a=u(t(10798));function u(c){return c&&c.__esModule?c:{default:c}}function s(c,h){var f;h===void 0&&(h=[]);var i=(0,n.default)(c),d=i===((f=c.ownerDocument)==null?void 0:f.body),l=(0,o.default)(i),p=d?[l].concat(l.visualViewport||[],(0,a.default)(i)?i:[]):i,v=h.concat(p);return d?v:v.concat(s((0,r.default)(p)))}},46206:function(S,e){"use strict";e.__esModule=!0,e.write=e.viewport=e.variationPlacements=e.top=e.start=e.right=e.reference=e.read=e.popper=e.placements=e.modifierPhases=e.main=e.left=e.end=e.clippingParents=e.bottom=e.beforeWrite=e.beforeRead=e.beforeMain=e.basePlacements=e.auto=e.afterWrite=e.afterRead=e.afterMain=void 0;var t=e.top="top",n=e.bottom="bottom",r=e.right="right",o=e.left="left",a=e.auto="auto",u=e.basePlacements=[t,n,r,o],s=e.start="start",c=e.end="end",h=e.clippingParents="clippingParents",f=e.viewport="viewport",i=e.popper="popper",d=e.reference="reference",l=e.variationPlacements=u.reduce(function(N,M){return N.concat([M+"-"+s,M+"-"+c])},[]),p=e.placements=[].concat(u,[a]).reduce(function(N,M){return N.concat([M,M+"-"+s,M+"-"+c])},[]),v=e.beforeRead="beforeRead",g=e.read="read",m=e.afterRead="afterRead",C=e.beforeMain="beforeMain",T=e.main="main",I=e.afterMain="afterMain",b=e.beforeWrite="beforeWrite",y=e.write="write",E=e.afterWrite="afterWrite",A=e.modifierPhases=[v,g,m,C,T,I,b,y,E]},95996:function(S,e,t){"use strict";e.__esModule=!0;var n={popperGenerator:!0,detectOverflow:!0,createPopperBase:!0,createPopper:!0,createPopperLite:!0};e.popperGenerator=e.detectOverflow=e.createPopperLite=e.createPopperBase=e.createPopper=void 0;var r=t(46206);Object.keys(r).forEach(function(c){c==="default"||c==="__esModule"||Object.prototype.hasOwnProperty.call(n,c)||c in e&&e[c]===r[c]||(e[c]=r[c])});var o=t(39805);Object.keys(o).forEach(function(c){c==="default"||c==="__esModule"||Object.prototype.hasOwnProperty.call(n,c)||c in e&&e[c]===o[c]||(e[c]=o[c])});var a=t(96376);e.popperGenerator=a.popperGenerator,e.detectOverflow=a.detectOverflow,e.createPopperBase=a.createPopper;var u=t(83312);e.createPopper=u.createPopper;var s=t(2473);e.createPopperLite=s.createPopper},19975:function(S,e,t){"use strict";e.__esModule=!0,e.default=void 0;var n=o(t(12972)),r=t(75573);function o(c){return c&&c.__esModule?c:{default:c}}function a(c){var h=c.state;Object.keys(h.elements).forEach(function(f){var i=h.styles[f]||{},d=h.attributes[f]||{},l=h.elements[f];!(0,r.isHTMLElement)(l)||!(0,n.default)(l)||(Object.assign(l.style,i),Object.keys(d).forEach(function(p){var v=d[p];v===!1?l.removeAttribute(p):l.setAttribute(p,v===!0?"":v)}))})}function u(c){var h=c.state,f={popper:{position:h.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(h.elements.popper.style,f.popper),h.styles=f,h.elements.arrow&&Object.assign(h.elements.arrow.style,f.arrow),function(){Object.keys(h.elements).forEach(function(i){var d=h.elements[i],l=h.attributes[i]||{},p=Object.keys(h.styles.hasOwnProperty(i)?h.styles[i]:f[i]),v=p.reduce(function(g,m){return g[m]="",g},{});!(0,r.isHTMLElement)(d)||!(0,n.default)(d)||(Object.assign(d.style,v),Object.keys(l).forEach(function(g){d.removeAttribute(g)}))})}}var s=e.default={name:"applyStyles",enabled:!0,phase:"write",fn:a,effect:u,requires:["computeStyles"]}},52744:function(S,e,t){"use strict";e.__esModule=!0,e.default=void 0;var n=i(t(83104)),r=i(t(28811)),o=i(t(4206)),a=i(t(44896)),u=i(t(41199)),s=t(28595),c=i(t(43286)),h=i(t(81447)),f=t(46206);function i(g){return g&&g.__esModule?g:{default:g}}var d=function(){function g(m,C){return m=typeof m=="function"?m(Object.assign({},C.rects,{placement:C.placement})):m,(0,c.default)(typeof m!="number"?m:(0,h.default)(m,f.basePlacements))}return g}();function l(g){var m,C=g.state,T=g.name,I=g.options,b=C.elements.arrow,y=C.modifiersData.popperOffsets,E=(0,n.default)(C.placement),A=(0,u.default)(E),N=[f.left,f.right].indexOf(E)>=0,M=N?"height":"width";if(!(!b||!y)){var w=d(I.padding,C),L=(0,r.default)(b),B=A==="y"?f.top:f.left,x=A==="y"?f.bottom:f.right,j=C.rects.reference[M]+C.rects.reference[A]-y[A]-C.rects.popper[M],V=y[A]-C.rects.reference[A],Y=(0,a.default)(b),D=Y?A==="y"?Y.clientHeight||0:Y.clientWidth||0:0,U=j/2-V/2,G=w[B],K=D-L[M]-w[x],$=D/2-L[M]/2+U,H=(0,s.within)(G,$,K),tt=A;C.modifiersData[T]=(m={},m[tt]=H,m.centerOffset=H-$,m)}}function p(g){var m=g.state,C=g.options,T=C.element,I=T===void 0?"[data-popper-arrow]":T;I!=null&&(typeof I=="string"&&(I=m.elements.popper.querySelector(I),!I)||(0,o.default)(m.elements.popper,I)&&(m.elements.arrow=I))}var v=e.default={name:"arrow",enabled:!0,phase:"main",fn:l,effect:p,requires:["popperOffsets"],requiresIfExists:["preventOverflow"]}},59894:function(S,e,t){"use strict";e.__esModule=!0,e.default=void 0,e.mapToStyles=l;var n=t(46206),r=f(t(44896)),o=f(t(95115)),a=f(t(40600)),u=f(t(16599)),s=f(t(83104)),c=f(t(45)),h=t(63618);function f(g){return g&&g.__esModule?g:{default:g}}var i={top:"auto",right:"auto",bottom:"auto",left:"auto"};function d(g,m){var C=g.x,T=g.y,I=m.devicePixelRatio||1;return{x:(0,h.round)(C*I)/I||0,y:(0,h.round)(T*I)/I||0}}function l(g){var m,C=g.popper,T=g.popperRect,I=g.placement,b=g.variation,y=g.offsets,E=g.position,A=g.gpuAcceleration,N=g.adaptive,M=g.roundOffsets,w=g.isFixed,L=y.x,B=L===void 0?0:L,x=y.y,j=x===void 0?0:x,V=typeof M=="function"?M({x:B,y:j}):{x:B,y:j};B=V.x,j=V.y;var Y=y.hasOwnProperty("x"),D=y.hasOwnProperty("y"),U=n.left,G=n.top,K=window;if(N){var $=(0,r.default)(C),H="clientHeight",tt="clientWidth";if($===(0,o.default)(C)&&($=(0,a.default)(C),(0,u.default)($).position!=="static"&&E==="absolute"&&(H="scrollHeight",tt="scrollWidth")),$=$,I===n.top||(I===n.left||I===n.right)&&b===n.end){G=n.bottom;var it=w&&$===K&&K.visualViewport?K.visualViewport.height:$[H];j-=it-T.height,j*=A?1:-1}if(I===n.left||(I===n.top||I===n.bottom)&&b===n.end){U=n.right;var ht=w&&$===K&&K.visualViewport?K.visualViewport.width:$[tt];B-=ht-T.width,B*=A?1:-1}}var k=Object.assign({position:E},N&&i),J=M===!0?d({x:B,y:j},(0,o.default)(C)):{x:B,y:j};if(B=J.x,j=J.y,A){var nt;return Object.assign({},k,(nt={},nt[G]=D?"0":"",nt[U]=Y?"0":"",nt.transform=(K.devicePixelRatio||1)<=1?"translate("+B+"px, "+j+"px)":"translate3d("+B+"px, "+j+"px, 0)",nt))}return Object.assign({},k,(m={},m[G]=D?j+"px":"",m[U]=Y?B+"px":"",m.transform="",m))}function p(g){var m=g.state,C=g.options,T=C.gpuAcceleration,I=T===void 0?!0:T,b=C.adaptive,y=b===void 0?!0:b,E=C.roundOffsets,A=E===void 0?!0:E,N={placement:(0,s.default)(m.placement),variation:(0,c.default)(m.placement),popper:m.elements.popper,popperRect:m.rects.popper,gpuAcceleration:I,isFixed:m.options.strategy==="fixed"};m.modifiersData.popperOffsets!=null&&(m.styles.popper=Object.assign({},m.styles.popper,l(Object.assign({},N,{offsets:m.modifiersData.popperOffsets,position:m.options.strategy,adaptive:y,roundOffsets:A})))),m.modifiersData.arrow!=null&&(m.styles.arrow=Object.assign({},m.styles.arrow,l(Object.assign({},N,{offsets:m.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:A})))),m.attributes.popper=Object.assign({},m.attributes.popper,{"data-popper-placement":m.placement})}var v=e.default={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:p,data:{}}},36692:function(S,e,t){"use strict";e.__esModule=!0,e.default=void 0;var n=r(t(95115));function r(s){return s&&s.__esModule?s:{default:s}}var o={passive:!0};function a(s){var c=s.state,h=s.instance,f=s.options,i=f.scroll,d=i===void 0?!0:i,l=f.resize,p=l===void 0?!0:l,v=(0,n.default)(c.elements.popper),g=[].concat(c.scrollParents.reference,c.scrollParents.popper);return d&&g.forEach(function(m){m.addEventListener("scroll",h.update,o)}),p&&v.addEventListener("resize",h.update,o),function(){d&&g.forEach(function(m){m.removeEventListener("scroll",h.update,o)}),p&&v.removeEventListener("resize",h.update,o)}}var u=e.default={name:"eventListeners",enabled:!0,phase:"write",fn:function(){function s(){}return s}(),effect:a,data:{}}},23798:function(S,e,t){"use strict";e.__esModule=!0,e.default=void 0;var n=h(t(71376)),r=h(t(83104)),o=h(t(86459)),a=h(t(17633)),u=h(t(9041)),s=t(46206),c=h(t(45));function h(l){return l&&l.__esModule?l:{default:l}}function f(l){if((0,r.default)(l)===s.auto)return[];var p=(0,n.default)(l);return[(0,o.default)(l),p,(0,o.default)(p)]}function i(l){var p=l.state,v=l.options,g=l.name;if(!p.modifiersData[g]._skip){for(var m=v.mainAxis,C=m===void 0?!0:m,T=v.altAxis,I=T===void 0?!0:T,b=v.fallbackPlacements,y=v.padding,E=v.boundary,A=v.rootBoundary,N=v.altBoundary,M=v.flipVariations,w=M===void 0?!0:M,L=v.allowedAutoPlacements,B=p.options.placement,x=(0,r.default)(B),j=x===B,V=b||(j||!w?[(0,n.default)(B)]:f(B)),Y=[B].concat(V).reduce(function(yt,_){return yt.concat((0,r.default)(_)===s.auto?(0,u.default)(p,{placement:_,boundary:E,rootBoundary:A,padding:y,flipVariations:w,allowedAutoPlacements:L}):_)},[]),D=p.rects.reference,U=p.rects.popper,G=new Map,K=!0,$=Y[0],H=0;H=0,J=k?"width":"height",nt=(0,a.default)(p,{placement:tt,boundary:E,rootBoundary:A,altBoundary:N,padding:y}),st=k?ht?s.right:s.left:ht?s.bottom:s.top;D[J]>U[J]&&(st=(0,n.default)(st));var ot=(0,n.default)(st),pt=[];if(C&&pt.push(nt[it]<=0),I&&pt.push(nt[st]<=0,nt[ot]<=0),pt.every(function(yt){return yt})){$=tt,K=!1;break}G.set(tt,pt)}if(K)for(var Nt=w?3:1,rt=function(){function yt(_){var X=Y.find(function(ct){var Tt=G.get(ct);if(Tt)return Tt.slice(0,_).every(function(St){return St})});if(X)return $=X,"break"}return yt}(),et=Nt;et>0;et--){var dt=rt(et);if(dt==="break")break}p.placement!==$&&(p.modifiersData[g]._skip=!0,p.placement=$,p.reset=!0)}}var d=e.default={name:"flip",enabled:!0,phase:"main",fn:i,requiresIfExists:["offset"],data:{_skip:!1}}},83761:function(S,e,t){"use strict";e.__esModule=!0,e.default=void 0;var n=t(46206),r=o(t(17633));function o(h){return h&&h.__esModule?h:{default:h}}function a(h,f,i){return i===void 0&&(i={x:0,y:0}),{top:h.top-f.height-i.y,right:h.right-f.width+i.x,bottom:h.bottom-f.height+i.y,left:h.left-f.width-i.x}}function u(h){return[n.top,n.right,n.bottom,n.left].some(function(f){return h[f]>=0})}function s(h){var f=h.state,i=h.name,d=f.rects.reference,l=f.rects.popper,p=f.modifiersData.preventOverflow,v=(0,r.default)(f,{elementContext:"reference"}),g=(0,r.default)(f,{altBoundary:!0}),m=a(v,d),C=a(g,l,p),T=u(m),I=u(C);f.modifiersData[i]={referenceClippingOffsets:m,popperEscapeOffsets:C,isReferenceHidden:T,hasPopperEscaped:I},f.attributes.popper=Object.assign({},f.attributes.popper,{"data-popper-reference-hidden":T,"data-popper-escaped":I})}var c=e.default={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:s}},39805:function(S,e,t){"use strict";e.__esModule=!0,e.preventOverflow=e.popperOffsets=e.offset=e.hide=e.flip=e.eventListeners=e.computeStyles=e.arrow=e.applyStyles=void 0;var n=i(t(19975));e.applyStyles=n.default;var r=i(t(52744));e.arrow=r.default;var o=i(t(59894));e.computeStyles=o.default;var a=i(t(36692));e.eventListeners=a.default;var u=i(t(23798));e.flip=u.default;var s=i(t(83761));e.hide=s.default;var c=i(t(61410));e.offset=c.default;var h=i(t(40107));e.popperOffsets=h.default;var f=i(t(75137));e.preventOverflow=f.default;function i(d){return d&&d.__esModule?d:{default:d}}},61410:function(S,e,t){"use strict";e.__esModule=!0,e.default=void 0,e.distanceAndSkiddingToXY=a;var n=o(t(83104)),r=t(46206);function o(c){return c&&c.__esModule?c:{default:c}}function a(c,h,f){var i=(0,n.default)(c),d=[r.left,r.top].indexOf(i)>=0?-1:1,l=typeof f=="function"?f(Object.assign({},h,{placement:c})):f,p=l[0],v=l[1];return p=p||0,v=(v||0)*d,[r.left,r.right].indexOf(i)>=0?{x:v,y:p}:{x:p,y:v}}function u(c){var h=c.state,f=c.options,i=c.name,d=f.offset,l=d===void 0?[0,0]:d,p=r.placements.reduce(function(C,T){return C[T]=a(T,h.rects,l),C},{}),v=p[h.placement],g=v.x,m=v.y;h.modifiersData.popperOffsets!=null&&(h.modifiersData.popperOffsets.x+=g,h.modifiersData.popperOffsets.y+=m),h.modifiersData[i]=p}var s=e.default={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:u}},40107:function(S,e,t){"use strict";e.__esModule=!0,e.default=void 0;var n=r(t(89951));function r(u){return u&&u.__esModule?u:{default:u}}function o(u){var s=u.state,c=u.name;s.modifiersData[c]=(0,n.default)({reference:s.rects.reference,element:s.rects.popper,strategy:"absolute",placement:s.placement})}var a=e.default={name:"popperOffsets",enabled:!0,phase:"read",fn:o,data:{}}},75137:function(S,e,t){"use strict";e.__esModule=!0,e.default=void 0;var n=t(46206),r=l(t(83104)),o=l(t(41199)),a=l(t(28066)),u=t(28595),s=l(t(28811)),c=l(t(44896)),h=l(t(17633)),f=l(t(45)),i=l(t(34780)),d=t(63618);function l(g){return g&&g.__esModule?g:{default:g}}function p(g){var m=g.state,C=g.options,T=g.name,I=C.mainAxis,b=I===void 0?!0:I,y=C.altAxis,E=y===void 0?!1:y,A=C.boundary,N=C.rootBoundary,M=C.altBoundary,w=C.padding,L=C.tether,B=L===void 0?!0:L,x=C.tetherOffset,j=x===void 0?0:x,V=(0,h.default)(m,{boundary:A,rootBoundary:N,padding:w,altBoundary:M}),Y=(0,r.default)(m.placement),D=(0,f.default)(m.placement),U=!D,G=(0,o.default)(Y),K=(0,a.default)(G),$=m.modifiersData.popperOffsets,H=m.rects.reference,tt=m.rects.popper,it=typeof j=="function"?j(Object.assign({},m.rects,{placement:m.placement})):j,ht=typeof it=="number"?{mainAxis:it,altAxis:it}:Object.assign({mainAxis:0,altAxis:0},it),k=m.modifiersData.offset?m.modifiersData.offset[m.placement]:null,J={x:0,y:0};if($){if(b){var nt,st=G==="y"?n.top:n.left,ot=G==="y"?n.bottom:n.right,pt=G==="y"?"height":"width",Nt=$[G],rt=Nt+V[st],et=Nt-V[ot],dt=B?-tt[pt]/2:0,yt=D===n.start?H[pt]:tt[pt],_=D===n.start?-tt[pt]:-H[pt],X=m.elements.arrow,ct=B&&X?(0,s.default)(X):{width:0,height:0},Tt=m.modifiersData["arrow#persistent"]?m.modifiersData["arrow#persistent"].padding:(0,i.default)(),St=Tt[st],ut=Tt[ot],gt=(0,u.within)(0,H[pt],ct[pt]),Ot=U?H[pt]/2-dt-gt-St-ht.mainAxis:yt-gt-St-ht.mainAxis,q=U?-H[pt]/2+dt+gt+ut+ht.mainAxis:_+gt+ut+ht.mainAxis,ft=m.elements.arrow&&(0,c.default)(m.elements.arrow),mt=ft?G==="y"?ft.clientTop||0:ft.clientLeft||0:0,At=(nt=k==null?void 0:k[G])!=null?nt:0,Dt=Nt+Ot-At-mt,jt=Nt+q-At,bt=(0,u.within)(B?(0,d.min)(rt,Dt):rt,Nt,B?(0,d.max)(et,jt):et);$[G]=bt,J[G]=bt-Nt}if(E){var lt,vt=G==="x"?n.top:n.left,It=G==="x"?n.bottom:n.right,Et=$[K],Pt=K==="y"?"height":"width",Ft=Et+V[vt],Vt=Et-V[It],Gt=[n.top,n.left].indexOf(Y)!==-1,Wt=(lt=k==null?void 0:k[K])!=null?lt:0,Kt=Gt?Ft:Et-H[Pt]-tt[Pt]-Wt+ht.altAxis,Ht=Gt?Et+H[Pt]+tt[Pt]-Wt-ht.altAxis:Vt,Zt=B&&Gt?(0,u.withinMaxClamp)(Kt,Et,Ht):(0,u.within)(B?Kt:Ft,Et,B?Ht:Vt);$[K]=Zt,J[K]=Zt-Et}m.modifiersData[T]=J}}var v=e.default={name:"preventOverflow",enabled:!0,phase:"main",fn:p,requiresIfExists:["offset"]}},2473:function(S,e,t){"use strict";e.__esModule=!0,e.defaultModifiers=e.createPopper=void 0;var n=t(96376);e.popperGenerator=n.popperGenerator,e.detectOverflow=n.detectOverflow;var r=s(t(36692)),o=s(t(40107)),a=s(t(59894)),u=s(t(19975));function s(f){return f&&f.__esModule?f:{default:f}}var c=e.defaultModifiers=[r.default,o.default,a.default,u.default],h=e.createPopper=(0,n.popperGenerator)({defaultModifiers:c})},83312:function(S,e,t){"use strict";e.__esModule=!0;var n={createPopper:!0,createPopperLite:!0,defaultModifiers:!0,popperGenerator:!0,detectOverflow:!0};e.defaultModifiers=e.createPopperLite=e.createPopper=void 0;var r=t(96376);e.popperGenerator=r.popperGenerator,e.detectOverflow=r.detectOverflow;var o=v(t(36692)),a=v(t(40107)),u=v(t(59894)),s=v(t(19975)),c=v(t(61410)),h=v(t(23798)),f=v(t(75137)),i=v(t(52744)),d=v(t(83761)),l=t(2473);e.createPopperLite=l.createPopper;var p=t(39805);Object.keys(p).forEach(function(C){C==="default"||C==="__esModule"||Object.prototype.hasOwnProperty.call(n,C)||C in e&&e[C]===p[C]||(e[C]=p[C])});function v(C){return C&&C.__esModule?C:{default:C}}var g=e.defaultModifiers=[o.default,a.default,u.default,s.default,c.default,h.default,f.default,i.default,d.default],m=e.createPopperLite=e.createPopper=(0,r.popperGenerator)({defaultModifiers:g})},9041:function(S,e,t){"use strict";e.__esModule=!0,e.default=s;var n=u(t(45)),r=t(46206),o=u(t(17633)),a=u(t(83104));function u(c){return c&&c.__esModule?c:{default:c}}function s(c,h){h===void 0&&(h={});var f=h,i=f.placement,d=f.boundary,l=f.rootBoundary,p=f.padding,v=f.flipVariations,g=f.allowedAutoPlacements,m=g===void 0?r.placements:g,C=(0,n.default)(i),T=C?v?r.variationPlacements:r.variationPlacements.filter(function(y){return(0,n.default)(y)===C}):r.basePlacements,I=T.filter(function(y){return m.indexOf(y)>=0});I.length===0&&(I=T);var b=I.reduce(function(y,E){return y[E]=(0,o.default)(c,{placement:E,boundary:d,rootBoundary:l,padding:p})[(0,a.default)(E)],y},{});return Object.keys(b).sort(function(y,E){return b[y]-b[E]})}},89951:function(S,e,t){"use strict";e.__esModule=!0,e.default=s;var n=u(t(83104)),r=u(t(45)),o=u(t(41199)),a=t(46206);function u(c){return c&&c.__esModule?c:{default:c}}function s(c){var h=c.reference,f=c.element,i=c.placement,d=i?(0,n.default)(i):null,l=i?(0,r.default)(i):null,p=h.x+h.width/2-f.width/2,v=h.y+h.height/2-f.height/2,g;switch(d){case a.top:g={x:p,y:h.y-f.height};break;case a.bottom:g={x:p,y:h.y+h.height};break;case a.right:g={x:h.x+h.width,y:v};break;case a.left:g={x:h.x-f.width,y:v};break;default:g={x:h.x,y:h.y}}var m=d?(0,o.default)(d):null;if(m!=null){var C=m==="y"?"height":"width";switch(l){case a.start:g[m]=g[m]-(h[C]/2-f[C]/2);break;case a.end:g[m]=g[m]+(h[C]/2-f[C]/2);break;default:}}return g}},10579:function(S,e){"use strict";e.__esModule=!0,e.default=t;function t(n){var r;return function(){return r||(r=new Promise(function(o){Promise.resolve().then(function(){r=void 0,o(n())})})),r}}},17633:function(S,e,t){"use strict";e.__esModule=!0,e.default=d;var n=i(t(49035)),r=i(t(40600)),o=i(t(37786)),a=i(t(89951)),u=i(t(81666)),s=t(46206),c=t(75573),h=i(t(43286)),f=i(t(81447));function i(l){return l&&l.__esModule?l:{default:l}}function d(l,p){p===void 0&&(p={});var v=p,g=v.placement,m=g===void 0?l.placement:g,C=v.strategy,T=C===void 0?l.strategy:C,I=v.boundary,b=I===void 0?s.clippingParents:I,y=v.rootBoundary,E=y===void 0?s.viewport:y,A=v.elementContext,N=A===void 0?s.popper:A,M=v.altBoundary,w=M===void 0?!1:M,L=v.padding,B=L===void 0?0:L,x=(0,h.default)(typeof B!="number"?B:(0,f.default)(B,s.basePlacements)),j=N===s.popper?s.reference:s.popper,V=l.rects.popper,Y=l.elements[w?j:N],D=(0,n.default)((0,c.isElement)(Y)?Y:Y.contextElement||(0,r.default)(l.elements.popper),b,E,T),U=(0,o.default)(l.elements.reference),G=(0,a.default)({reference:U,element:V,strategy:"absolute",placement:m}),K=(0,u.default)(Object.assign({},V,G)),$=N===s.popper?K:U,H={top:D.top-$.top+x.top,bottom:$.bottom-D.bottom+x.bottom,left:D.left-$.left+x.left,right:$.right-D.right+x.right},tt=l.modifiersData.offset;if(N===s.popper&&tt){var it=tt[m];Object.keys(H).forEach(function(ht){var k=[s.right,s.bottom].indexOf(ht)>=0?1:-1,J=[s.top,s.bottom].indexOf(ht)>=0?"y":"x";H[ht]+=it[J]*k})}return H}},81447:function(S,e){"use strict";e.__esModule=!0,e.default=t;function t(n,r){return r.reduce(function(o,a){return o[a]=n,o},{})}},28066:function(S,e){"use strict";e.__esModule=!0,e.default=t;function t(n){return n==="x"?"y":"x"}},83104:function(S,e,t){"use strict";e.__esModule=!0,e.default=r;var n=t(46206);function r(o){return o.split("-")[0]}},34780:function(S,e){"use strict";e.__esModule=!0,e.default=t;function t(){return{top:0,right:0,bottom:0,left:0}}},41199:function(S,e){"use strict";e.__esModule=!0,e.default=t;function t(n){return["top","bottom"].indexOf(n)>=0?"x":"y"}},71376:function(S,e){"use strict";e.__esModule=!0,e.default=n;var t={left:"right",right:"left",bottom:"top",top:"bottom"};function n(r){return r.replace(/left|right|bottom|top/g,function(o){return t[o]})}},86459:function(S,e){"use strict";e.__esModule=!0,e.default=n;var t={start:"end",end:"start"};function n(r){return r.replace(/start|end/g,function(o){return t[o]})}},45:function(S,e){"use strict";e.__esModule=!0,e.default=t;function t(n){return n.split("-")[1]}},63618:function(S,e){"use strict";e.__esModule=!0,e.round=e.min=e.max=void 0;var t=e.max=Math.max,n=e.min=Math.min,r=e.round=Math.round},56500:function(S,e){"use strict";e.__esModule=!0,e.default=t;function t(n){var r=n.reduce(function(o,a){var u=o[a.name];return o[a.name]=u?Object.assign({},u,a,{options:Object.assign({},u.options,a.options),data:Object.assign({},u.data,a.data)}):a,o},{});return Object.keys(r).map(function(o){return r[o]})}},43286:function(S,e,t){"use strict";e.__esModule=!0,e.default=o;var n=r(t(34780));function r(a){return a&&a.__esModule?a:{default:a}}function o(a){return Object.assign({},(0,n.default)(),a)}},33118:function(S,e,t){"use strict";e.__esModule=!0,e.default=o;var n=t(46206);function r(a){var u=new Map,s=new Set,c=[];a.forEach(function(f){u.set(f.name,f)});function h(f){s.add(f.name);var i=[].concat(f.requires||[],f.requiresIfExists||[]);i.forEach(function(d){if(!s.has(d)){var l=u.get(d);l&&h(l)}}),c.push(f)}return a.forEach(function(f){s.has(f.name)||h(f)}),c}function o(a){var u=r(a);return n.modifierPhases.reduce(function(s,c){return s.concat(u.filter(function(h){return h.phase===c}))},[])}},81666:function(S,e){"use strict";e.__esModule=!0,e.default=t;function t(n){return Object.assign({},n,{left:n.x,top:n.y,right:n.x+n.width,bottom:n.y+n.height})}},35366:function(S,e){"use strict";e.__esModule=!0,e.default=t;function t(){var n=navigator.userAgentData;return n!=null&&n.brands&&Array.isArray(n.brands)?n.brands.map(function(r){return r.brand+"/"+r.version}).join(" "):navigator.userAgent}},28595:function(S,e,t){"use strict";e.__esModule=!0,e.within=r,e.withinMaxClamp=o;var n=t(63618);function r(a,u,s){return(0,n.max)(a,(0,n.min)(u,s))}function o(a,u,s){var c=r(a,u,s);return c>s?s:c}},22734:function(S){"use strict";/*! @license DOMPurify 2.5.0 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/2.5.0/LICENSE */(function(e,t){S.exports=t()})(void 0,function(){"use strict";function e(q){"@babel/helpers - typeof";return e=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(ft){return typeof ft}:function(ft){return ft&&typeof Symbol=="function"&&ft.constructor===Symbol&&ft!==Symbol.prototype?"symbol":typeof ft},e(q)}function t(q,ft){return t=Object.setPrototypeOf||function(){function mt(At,Dt){return At.__proto__=Dt,At}return mt}(),t(q,ft)}function n(){if(typeof Reflect=="undefined"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(q){return!1}}function r(q,ft,mt){return n()?r=Reflect.construct:r=function(){function At(Dt,jt,bt){var lt=[null];lt.push.apply(lt,jt);var vt=Function.bind.apply(Dt,lt),It=new vt;return bt&&t(It,bt.prototype),It}return At}(),r.apply(null,arguments)}function o(q){return a(q)||u(q)||s(q)||h()}function a(q){if(Array.isArray(q))return c(q)}function u(q){if(typeof Symbol!="undefined"&&q[Symbol.iterator]!=null||q["@@iterator"]!=null)return Array.from(q)}function s(q,ft){if(q){if(typeof q=="string")return c(q,ft);var mt=Object.prototype.toString.call(q).slice(8,-1);if(mt==="Object"&&q.constructor&&(mt=q.constructor.name),mt==="Map"||mt==="Set")return Array.from(q);if(mt==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(mt))return c(q,ft)}}function c(q,ft){(ft==null||ft>q.length)&&(ft=q.length);for(var mt=0,At=new Array(ft);mt1?mt-1:0),Dt=1;Dt/gm),rt=g(/\${[\w\W]*}/gm),et=g(/^data-[\-\w.\u00B7-\uFFFF]/),dt=g(/^aria-[\-\w]+$/),yt=g(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|cid|xmpp):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),_=g(/^(?:\w+script|data):/i),X=g(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),ct=g(/^html$/i),Tt=g(/^[a-z][.\w]*(-[.\w]+)+$/i),St=function(){function q(){return typeof window=="undefined"?null:window}return q}(),ut=function(){function q(ft,mt){if(e(ft)!=="object"||typeof ft.createPolicy!="function")return null;var At=null,Dt="data-tt-policy-suffix";mt.currentScript&&mt.currentScript.hasAttribute(Dt)&&(At=mt.currentScript.getAttribute(Dt));var jt="dompurify"+(At?"#"+At:"");try{return ft.createPolicy(jt,{createHTML:function(){function bt(lt){return lt}return bt}(),createScriptURL:function(){function bt(lt){return lt}return bt}()})}catch(bt){return null}}return q}();function gt(){var q=arguments.length>0&&arguments[0]!==void 0?arguments[0]:St(),ft=function(){function O(P){return gt(P)}return O}();if(ft.version="2.5.0",ft.removed=[],!q||!q.document||q.document.nodeType!==9)return ft.isSupported=!1,ft;var mt=q.document,At=q.document,Dt=q.DocumentFragment,jt=q.HTMLTemplateElement,bt=q.Node,lt=q.Element,vt=q.NodeFilter,It=q.NamedNodeMap,Et=It===void 0?q.NamedNodeMap||q.MozNamedAttrMap:It,Pt=q.HTMLFormElement,Ft=q.DOMParser,Vt=q.trustedTypes,Gt=lt.prototype,Wt=G(Gt,"cloneNode"),Kt=G(Gt,"nextSibling"),Ht=G(Gt,"childNodes"),Zt=G(Gt,"parentNode");if(typeof jt=="function"){var Le=At.createElement("template");Le.content&&Le.content.ownerDocument&&(At=Le.content.ownerDocument)}var _t=ut(Vt,mt),Pe=_t?_t.createHTML(""):"",Ne=At,me=Ne.implementation,ye=Ne.createNodeIterator,an=Ne.createDocumentFragment,un=Ne.getElementsByTagName,Tn=mt.importNode,Ye={};try{Ye=U(At).documentMode?At.documentMode:{}}catch(O){}var re={};ft.isSupported=typeof Zt=="function"&&me&&me.createHTMLDocument!==void 0&&Ye!==9;var $e=pt,He=Nt,Be=rt,sn=et,In=dt,cn=_,ln=X,An=Tt,Se=yt,zt=null,te=D({},[].concat(o(K),o($),o(H),o(it),o(k))),Yt=null,Ee=D({},[].concat(o(J),o(nt),o(st),o(ot))),kt=Object.seal(Object.create(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),le=null,Ce=null,We=!0,ze=!0,fn=!1,dn=!0,be=!1,De=!0,fe=!1,Fe=!1,xe=!1,de=!1,Xt=!1,Ve=!1,vn=!0,ke=!1,hn="user-content-",ue=!0,Me=!1,Te={},Ie=null,Xe=D({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","style","svg","template","thead","title","video","xmp"]),Je=null,gn=D({},["audio","video","img","source","image","track"]),je=null,pn=D({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),ee="http://www.w3.org/1998/Math/MathML",Ue="http://www.w3.org/2000/svg",se="http://www.w3.org/1999/xhtml",Ae=se,Qe=!1,Ze=null,On=D({},[ee,Ue,se],N),ce,Pn=["application/xhtml+xml","text/html"],mn="text/html",Jt,Oe=null,Nn=At.createElement("form"),yn=function(){function O(P){return P instanceof RegExp||P instanceof Function}return O}(),qe=function(){function O(P){Oe&&Oe===P||((!P||e(P)!=="object")&&(P={}),P=U(P),ce=Pn.indexOf(P.PARSER_MEDIA_TYPE)===-1?ce=mn:ce=P.PARSER_MEDIA_TYPE,Jt=ce==="application/xhtml+xml"?N:A,zt="ALLOWED_TAGS"in P?D({},P.ALLOWED_TAGS,Jt):te,Yt="ALLOWED_ATTR"in P?D({},P.ALLOWED_ATTR,Jt):Ee,Ze="ALLOWED_NAMESPACES"in P?D({},P.ALLOWED_NAMESPACES,N):On,je="ADD_URI_SAFE_ATTR"in P?D(U(pn),P.ADD_URI_SAFE_ATTR,Jt):pn,Je="ADD_DATA_URI_TAGS"in P?D(U(gn),P.ADD_DATA_URI_TAGS,Jt):gn,Ie="FORBID_CONTENTS"in P?D({},P.FORBID_CONTENTS,Jt):Xe,le="FORBID_TAGS"in P?D({},P.FORBID_TAGS,Jt):{},Ce="FORBID_ATTR"in P?D({},P.FORBID_ATTR,Jt):{},Te="USE_PROFILES"in P?P.USE_PROFILES:!1,We=P.ALLOW_ARIA_ATTR!==!1,ze=P.ALLOW_DATA_ATTR!==!1,fn=P.ALLOW_UNKNOWN_PROTOCOLS||!1,dn=P.ALLOW_SELF_CLOSE_IN_ATTR!==!1,be=P.SAFE_FOR_TEMPLATES||!1,De=P.SAFE_FOR_XML!==!1,fe=P.WHOLE_DOCUMENT||!1,de=P.RETURN_DOM||!1,Xt=P.RETURN_DOM_FRAGMENT||!1,Ve=P.RETURN_TRUSTED_TYPE||!1,xe=P.FORCE_BODY||!1,vn=P.SANITIZE_DOM!==!1,ke=P.SANITIZE_NAMED_PROPS||!1,ue=P.KEEP_CONTENT!==!1,Me=P.IN_PLACE||!1,Se=P.ALLOWED_URI_REGEXP||Se,Ae=P.NAMESPACE||se,kt=P.CUSTOM_ELEMENT_HANDLING||{},P.CUSTOM_ELEMENT_HANDLING&&yn(P.CUSTOM_ELEMENT_HANDLING.tagNameCheck)&&(kt.tagNameCheck=P.CUSTOM_ELEMENT_HANDLING.tagNameCheck),P.CUSTOM_ELEMENT_HANDLING&&yn(P.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)&&(kt.attributeNameCheck=P.CUSTOM_ELEMENT_HANDLING.attributeNameCheck),P.CUSTOM_ELEMENT_HANDLING&&typeof P.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements=="boolean"&&(kt.allowCustomizedBuiltInElements=P.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements),be&&(ze=!1),Xt&&(de=!0),Te&&(zt=D({},o(k)),Yt=[],Te.html===!0&&(D(zt,K),D(Yt,J)),Te.svg===!0&&(D(zt,$),D(Yt,nt),D(Yt,ot)),Te.svgFilters===!0&&(D(zt,H),D(Yt,nt),D(Yt,ot)),Te.mathMl===!0&&(D(zt,it),D(Yt,st),D(Yt,ot))),P.ADD_TAGS&&(zt===te&&(zt=U(zt)),D(zt,P.ADD_TAGS,Jt)),P.ADD_ATTR&&(Yt===Ee&&(Yt=U(Yt)),D(Yt,P.ADD_ATTR,Jt)),P.ADD_URI_SAFE_ATTR&&D(je,P.ADD_URI_SAFE_ATTR,Jt),P.FORBID_CONTENTS&&(Ie===Xe&&(Ie=U(Ie)),D(Ie,P.FORBID_CONTENTS,Jt)),ue&&(zt["#text"]=!0),fe&&D(zt,["html","head","body"]),zt.table&&(D(zt,["tbody"]),delete le.tbody),v&&v(P),Oe=P)}return O}(),Sn=D({},["mi","mo","mn","ms","mtext"]),oe=D({},["foreignobject","desc","title","annotation-xml"]),Ge=D({},["title","style","font","a","script"]),Re=D({},$);D(Re,H),D(Re,tt);var _e=D({},it);D(_e,ht);var Mn=function(){function O(P){var R=Zt(P);(!R||!R.tagName)&&(R={namespaceURI:Ae,tagName:"template"});var F=A(P.tagName),W=A(R.tagName);return Ze[P.namespaceURI]?P.namespaceURI===Ue?R.namespaceURI===se?F==="svg":R.namespaceURI===ee?F==="svg"&&(W==="annotation-xml"||Sn[W]):!!Re[F]:P.namespaceURI===ee?R.namespaceURI===se?F==="math":R.namespaceURI===Ue?F==="math"&&oe[W]:!!_e[F]:P.namespaceURI===se?R.namespaceURI===Ue&&!oe[W]||R.namespaceURI===ee&&!Sn[W]?!1:!_e[F]&&(Ge[F]||!Re[F]):!!(ce==="application/xhtml+xml"&&Ze[P.namespaceURI]):!1}return O}(),ne=function(){function O(P){E(ft.removed,{element:P});try{P.parentNode.removeChild(P)}catch(R){try{P.outerHTML=Pe}catch(F){P.remove()}}}return O}(),Ke=function(){function O(P,R){try{E(ft.removed,{attribute:R.getAttributeNode(P),from:R})}catch(F){E(ft.removed,{attribute:null,from:R})}if(R.removeAttribute(P),P==="is"&&!Yt[P])if(de||Xt)try{ne(R)}catch(F){}else try{R.setAttribute(P,"")}catch(F){}}return O}(),En=function(){function O(P){var R,F;if(xe)P=""+P;else{var W=M(P,/^[\r\n\t ]+/);F=W&&W[0]}ce==="application/xhtml+xml"&&Ae===se&&(P=''+P+"");var Q=_t?_t.createHTML(P):P;if(Ae===se)try{R=new Ft().parseFromString(Q,ce)}catch(at){}if(!R||!R.documentElement){R=me.createDocument(Ae,"template",null);try{R.documentElement.innerHTML=Qe?Pe:Q}catch(at){}}var Z=R.body||R.documentElement;return P&&F&&Z.insertBefore(At.createTextNode(F),Z.childNodes[0]||null),Ae===se?un.call(R,fe?"html":"body")[0]:fe?R.documentElement:Z}return O}(),we=function(){function O(P){return ye.call(P.ownerDocument||P,P,vt.SHOW_ELEMENT|vt.SHOW_COMMENT|vt.SHOW_TEXT|vt.SHOW_PROCESSING_INSTRUCTION|vt.SHOW_CDATA_SECTION,null,!1)}return O}(),Rn=function(){function O(P){return P instanceof Pt&&(typeof P.nodeName!="string"||typeof P.textContent!="string"||typeof P.removeChild!="function"||!(P.attributes instanceof Et)||typeof P.removeAttribute!="function"||typeof P.setAttribute!="function"||typeof P.namespaceURI!="string"||typeof P.insertBefore!="function"||typeof P.hasChildNodes!="function")}return O}(),he=function(){function O(P){return e(bt)==="object"?P instanceof bt:P&&e(P)==="object"&&typeof P.nodeType=="number"&&typeof P.nodeName=="string"}return O}(),ae=function(){function O(P,R,F){re[P]&&b(re[P],function(W){W.call(ft,R,F,Oe)})}return O}(),Cn=function(){function O(P){var R;if(ae("beforeSanitizeElements",P,null),Rn(P)||x(/[\u0080-\uFFFF]/,P.nodeName))return ne(P),!0;var F=Jt(P.nodeName);if(ae("uponSanitizeElement",P,{tagName:F,allowedTags:zt}),P.hasChildNodes()&&!he(P.firstElementChild)&&(!he(P.content)||!he(P.content.firstElementChild))&&x(/<[/\w]/g,P.innerHTML)&&x(/<[/\w]/g,P.textContent)||F==="select"&&x(/=0;--at)W.insertBefore(Wt(Q[at],!0),Kt(P))}return ne(P),!0}return P instanceof lt&&!Mn(P)||(F==="noscript"||F==="noembed"||F==="noframes")&&x(/<\/no(script|embed|frames)/i,P.innerHTML)?(ne(P),!0):(be&&P.nodeType===3&&(R=P.textContent,R=w(R,$e," "),R=w(R,He," "),R=w(R,Be," "),P.textContent!==R&&(E(ft.removed,{element:P.cloneNode()}),P.textContent=R)),ae("afterSanitizeElements",P,null),!1)}return O}(),tn=function(){function O(P,R,F){if(vn&&(R==="id"||R==="name")&&(F in At||F in Nn))return!1;if(!(ze&&!Ce[R]&&x(sn,R))){if(!(We&&x(In,R))){if(!Yt[R]||Ce[R]){if(!(en(P)&&(kt.tagNameCheck instanceof RegExp&&x(kt.tagNameCheck,P)||kt.tagNameCheck instanceof Function&&kt.tagNameCheck(P))&&(kt.attributeNameCheck instanceof RegExp&&x(kt.attributeNameCheck,R)||kt.attributeNameCheck instanceof Function&&kt.attributeNameCheck(R))||R==="is"&&kt.allowCustomizedBuiltInElements&&(kt.tagNameCheck instanceof RegExp&&x(kt.tagNameCheck,F)||kt.tagNameCheck instanceof Function&&kt.tagNameCheck(F))))return!1}else if(!je[R]){if(!x(Se,w(F,ln,""))){if(!((R==="src"||R==="xlink:href"||R==="href")&&P!=="script"&&L(F,"data:")===0&&Je[P])){if(!(fn&&!x(cn,w(F,ln,"")))){if(F)return!1}}}}}}return!0}return O}(),en=function(){function O(P){return P!=="annotation-xml"&&M(P,An)}return O}(),bn=function(){function O(P){var R,F,W,Q;ae("beforeSanitizeAttributes",P,null);var Z=P.attributes;if(Z){var at={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:Yt};for(Q=Z.length;Q--;){R=Z[Q];var Ct=R,Mt=Ct.name,Rt=Ct.namespaceURI;if(F=Mt==="value"?R.value:B(R.value),W=Jt(Mt),at.attrName=W,at.attrValue=F,at.keepAttr=!0,at.forceKeepAttr=void 0,ae("uponSanitizeAttribute",P,at),F=at.attrValue,!at.forceKeepAttr&&(Ke(Mt,P),!!at.keepAttr)){if(!dn&&x(/\/>/i,F)){Ke(Mt,P);continue}be&&(F=w(F,$e," "),F=w(F,He," "),F=w(F,Be," "));var Lt=Jt(P.nodeName);if(tn(Lt,W,F)){if(ke&&(W==="id"||W==="name")&&(Ke(Mt,P),F=hn+F),_t&&e(Vt)==="object"&&typeof Vt.getAttributeType=="function"&&!Rt)switch(Vt.getAttributeType(Lt,W)){case"TrustedHTML":{F=_t.createHTML(F);break}case"TrustedScriptURL":{F=_t.createScriptURL(F);break}}try{Rt?P.setAttributeNS(Rt,Mt,F):P.setAttribute(Mt,F),y(ft.removed)}catch(wt){}}}}ae("afterSanitizeAttributes",P,null)}}return O}(),Bn=function(){function O(P){var R,F=we(P);for(ae("beforeSanitizeShadowDOM",P,null);R=F.nextNode();)ae("uponSanitizeShadowNode",R,null),!Cn(R)&&(R.content instanceof Dt&&O(R.content),bn(R));ae("afterSanitizeShadowDOM",P,null)}return O}();return ft.sanitize=function(O){var P=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},R,F,W,Q,Z;if(Qe=!O,Qe&&(O=""),typeof O!="string"&&!he(O))if(typeof O.toString=="function"){if(O=O.toString(),typeof O!="string")throw j("dirty is not a string, aborting")}else throw j("toString is not a function");if(!ft.isSupported){if(e(q.toStaticHTML)==="object"||typeof q.toStaticHTML=="function"){if(typeof O=="string")return q.toStaticHTML(O);if(he(O))return q.toStaticHTML(O.outerHTML)}return O}if(Fe||qe(P),ft.removed=[],typeof O=="string"&&(Me=!1),Me){if(O.nodeName){var at=Jt(O.nodeName);if(!zt[at]||le[at])throw j("root node is forbidden and cannot be sanitized in-place")}}else if(O instanceof bt)R=En(""),F=R.ownerDocument.importNode(O,!0),F.nodeType===1&&F.nodeName==="BODY"||F.nodeName==="HTML"?R=F:R.appendChild(F);else{if(!de&&!be&&!fe&&O.indexOf("<")===-1)return _t&&Ve?_t.createHTML(O):O;if(R=En(O),!R)return de?null:Ve?Pe:""}R&&xe&&ne(R.firstChild);for(var Ct=we(Me?O:R);W=Ct.nextNode();)W.nodeType===3&&W===Q||Cn(W)||(W.content instanceof Dt&&Bn(W.content),bn(W),Q=W);if(Q=null,Me)return O;if(de){if(Xt)for(Z=an.call(R.ownerDocument);R.firstChild;)Z.appendChild(R.firstChild);else Z=R;return(Yt.shadowroot||Yt.shadowrootmod)&&(Z=Tn.call(mt,Z,!0)),Z}var Mt=fe?R.outerHTML:R.innerHTML;return fe&&zt["!doctype"]&&R.ownerDocument&&R.ownerDocument.doctype&&R.ownerDocument.doctype.name&&x(ct,R.ownerDocument.doctype.name)&&(Mt="\n"+Mt),be&&(Mt=w(Mt,$e," "),Mt=w(Mt,He," "),Mt=w(Mt,Be," ")),_t&&Ve?_t.createHTML(Mt):Mt},ft.setConfig=function(O){qe(O),Fe=!0},ft.clearConfig=function(){Oe=null,Fe=!1},ft.isValidAttribute=function(O,P,R){Oe||qe({});var F=Jt(O),W=Jt(P);return tn(F,W,R)},ft.addHook=function(O,P){typeof P=="function"&&(re[O]=re[O]||[],E(re[O],P))},ft.removeHook=function(O){if(re[O])return y(re[O])},ft.removeHooks=function(O){re[O]&&(re[O]=[])},ft.removeAllHooks=function(){re={}},ft}var Ot=gt();return Ot})},15875:function(S,e){"use strict";e.__esModule=!0,e.VNodeFlags=e.ChildFlags=void 0;var t;(function(r){r[r.Unknown=0]="Unknown",r[r.HtmlElement=1]="HtmlElement",r[r.ComponentUnknown=2]="ComponentUnknown",r[r.ComponentClass=4]="ComponentClass",r[r.ComponentFunction=8]="ComponentFunction",r[r.Text=16]="Text",r[r.SvgElement=32]="SvgElement",r[r.InputElement=64]="InputElement",r[r.TextareaElement=128]="TextareaElement",r[r.SelectElement=256]="SelectElement",r[r.Portal=1024]="Portal",r[r.ReCreate=2048]="ReCreate",r[r.ContentEditable=4096]="ContentEditable",r[r.Fragment=8192]="Fragment",r[r.InUse=16384]="InUse",r[r.ForwardRef=32768]="ForwardRef",r[r.Normalized=65536]="Normalized",r[r.ForwardRefComponent=32776]="ForwardRefComponent",r[r.FormElement=448]="FormElement",r[r.Element=481]="Element",r[r.Component=14]="Component",r[r.DOMRef=1521]="DOMRef",r[r.InUseOrNormalized=81920]="InUseOrNormalized",r[r.ClearInUse=-16385]="ClearInUse",r[r.ComponentKnown=12]="ComponentKnown"})(t||(e.VNodeFlags=t={}));var n;(function(r){r[r.UnknownChildren=0]="UnknownChildren",r[r.HasInvalidChildren=1]="HasInvalidChildren",r[r.HasVNodeChildren=2]="HasVNodeChildren",r[r.HasNonKeyedChildren=4]="HasNonKeyedChildren",r[r.HasKeyedChildren=8]="HasKeyedChildren",r[r.HasTextChildren=16]="HasTextChildren",r[r.MultipleChildren=12]="MultipleChildren"})(n||(e.ChildFlags=n={}))},89292:function(S,e){"use strict";e.__esModule=!0,e.Fragment=e.EMPTY_OBJ=e.Component=e.AnimationQueues=void 0,e._CI=xe,e._HI=ct,e._M=Xt,e._MCCC=Je,e._ME=hn,e._MFCC=je,e._MP=fe,e._MR=zt,e._RFC=de,e.__render=ne,e.createComponentVNode=nt,e.createFragment=ot,e.createPortal=dt,e.createRef=ln,e.createRenderer=En,e.createTextVNode=st,e.createVNode=it,e.directClone=rt,e.findDOMFromVNode=A,e.forwardRef=An,e.getFlagsForElementVnode=_,e.linkEvent=i,e.normalizeProps=pt,e.options=void 0,e.render=Ke,e.rerender=tn,e.version=void 0;var t=Array.isArray;function n(O){var P=typeof O;return P==="string"||P==="number"}function r(O){return O==null}function o(O){return O===null||O===!1||O===!0||O===void 0}function a(O){return typeof O=="function"}function u(O){return typeof O=="string"}function s(O){return typeof O=="number"}function c(O){return O===null}function h(O){return O===void 0}function f(O,P){var R={};if(O)for(var F in O)R[F]=O[F];if(P)for(var W in P)R[W]=P[W];return R}function i(O,P){return a(P)?{data:O,event:P}:null}function d(O){return!c(O)&&typeof O=="object"}var l=e.EMPTY_OBJ={},p=e.Fragment="$F",v=e.AnimationQueues=function(){function O(){this.componentDidAppear=[],this.componentWillDisappear=[],this.componentWillMove=[]}return O}();function g(O){return O.substring(2).toLowerCase()}function m(O,P){O.appendChild(P)}function C(O,P,R){c(R)?m(O,P):O.insertBefore(P,R)}function T(O,P){return P?document.createElementNS("http://www.w3.org/2000/svg",O):document.createElement(O)}function I(O,P,R){O.replaceChild(P,R)}function b(O,P){O.removeChild(P)}function y(O){for(var P=0;P0?N(R.componentWillDisappear,L(O,P)):w(O,P,!1)}function x(O,P,R,F,W,Q,Z,at){O.componentWillMove.push({dom:F,fn:function(){function Ct(){Z&4?R.componentWillMove(P,W,F):Z&8&&R.onComponentWillMove(P,W,F,at)}return Ct}(),next:Q,parent:W})}function j(O,P,R,F,W){var Q,Z,at=P.flags;do{var Ct=P.flags;if(Ct&1521){!r(Q)&&(a(Q.componentWillMove)||a(Q.onComponentWillMove))?x(W,O,Q,P.dom,R,F,at,Z):C(R,P.dom,F);return}var Mt=P.children;if(Ct&4)Q=P.children,Z=P.props,P=Mt.$LI;else if(Ct&8)Q=P.ref,Z=P.props,P=Mt;else if(Ct&8192)if(P.childFlags===2)P=Mt;else{for(var Rt=0,Lt=Mt.length;Rt0,Mt=c(at),Rt=u(at)&&at[0]===H;Ct||Mt||Rt?(R=R||P.slice(0,Q),(Ct||Rt)&&(Z=rt(Z)),(Mt||Rt)&&(Z.key=H+Q),R.push(Z)):R&&R.push(Z),Z.flags|=65536}}R=R||P,R.length===0?F=1:F=8}else R=P,R.flags|=65536,P.flags&81920&&(R=rt(P)),F=2;return O.children=R,O.childFlags=F,O}function ct(O){return o(O)||n(O)?st(O,null):t(O)?ot(O,0,null):O.flags&16384?rt(O):O}var Tt="http://www.w3.org/1999/xlink",St="http://www.w3.org/XML/1998/namespace",ut={"xlink:actuate":Tt,"xlink:arcrole":Tt,"xlink:href":Tt,"xlink:role":Tt,"xlink:show":Tt,"xlink:title":Tt,"xlink:type":Tt,"xml:base":St,"xml:lang":St,"xml:space":St};function gt(O){return{onClick:O,onDblClick:O,onFocusIn:O,onFocusOut:O,onKeyDown:O,onKeyPress:O,onKeyUp:O,onMouseDown:O,onMouseMove:O,onMouseUp:O,onTouchEnd:O,onTouchMove:O,onTouchStart:O}}var Ot=gt(0),q=gt(null),ft=gt(!0);function mt(O,P){var R=P.$EV;return R||(R=P.$EV=gt(null)),R[O]||++Ot[O]===1&&(q[O]=Vt(O)),R}function At(O,P){var R=P.$EV;R&&R[O]&&(--Ot[O]===0&&(document.removeEventListener(g(O),q[O]),q[O]=null),R[O]=null)}function Dt(O,P,R,F){if(a(R))mt(O,F)[O]=R;else if(d(R)){if(G(P,R))return;mt(O,F)[O]=R}else At(O,F)}function jt(O){return a(O.composedPath)?O.composedPath()[0]:O.target}function bt(O,P,R,F){var W=jt(O);do{if(P&&W.disabled)return;var Q=W.$EV;if(Q){var Z=Q[R];if(Z&&(F.dom=W,Z.event?Z.event(Z.data,O):Z(O),O.cancelBubble))return}W=W.parentNode}while(!c(W))}function lt(){this.cancelBubble=!0,this.immediatePropagationStopped||this.stopImmediatePropagation()}function vt(){return this.defaultPrevented}function It(){return this.cancelBubble}function Et(O){var P={dom:document};return O.isDefaultPrevented=vt,O.isPropagationStopped=It,O.stopPropagation=lt,Object.defineProperty(O,"currentTarget",{configurable:!0,get:function(){function R(){return P.dom}return R}()}),P}function Pt(O){return function(P){if(P.button!==0){P.stopPropagation();return}bt(P,!0,O,Et(P))}}function Ft(O){return function(P){bt(P,!1,O,Et(P))}}function Vt(O){var P=O==="onClick"||O==="onDblClick"?Pt(O):Ft(O);return document.addEventListener(g(O),P),P}function Gt(O,P){var R=document.createElement("i");return R.innerHTML=P,R.innerHTML===O.innerHTML}function Wt(O,P,R){if(O[P]){var F=O[P];F.event?F.event(F.data,R):F(R)}else{var W=P.toLowerCase();O[W]&&O[W](R)}}function Kt(O,P){var R=function(){function F(W){var Q=this.$V;if(Q){var Z=Q.props||l,at=Q.dom;if(u(O))Wt(Z,O,W);else for(var Ct=0;Ct-1&&P.options[Q]&&(at=P.options[Q].value),R&&r(at)&&(at=O.defaultValue),ye(F,at)}}var re=Kt("onInput",Be),$e=Kt("onChange");function He(O,P){Ht(O,"input",re),P.onChange&&Ht(O,"change",$e)}function Be(O,P,R){var F=O.value,W=P.value;if(r(F)){if(R){var Q=O.defaultValue;!r(Q)&&Q!==W&&(P.defaultValue=Q,P.value=Q)}}else W!==F&&(P.defaultValue=F,P.value=F)}function sn(O,P,R,F,W,Q){O&64?me(F,R):O&256?Ye(F,R,W,P):O&128&&Be(F,R,W),Q&&(R.$V=P)}function In(O,P,R){O&64?Ne(P,R):O&256?Tn(P):O&128&&He(P,R)}function cn(O){return O.type&&Zt(O.type)?!r(O.checked):!r(O.value)}function ln(){return{current:null}}function An(O){var P={render:O};return P}function Se(O){O&&!$(O,null)&&O.current&&(O.current=null)}function zt(O,P,R){O&&(a(O)||O.current!==void 0)&&R.push(function(){!$(O,P)&&O.current!==void 0&&(O.current=P)})}function te(O,P,R){Yt(O,R),B(O,P,R)}function Yt(O,P){var R=O.flags,F=O.children,W;if(R&481){W=O.ref;var Q=O.props;Se(W);var Z=O.childFlags;if(!c(Q))for(var at=Object.keys(Q),Ct=0,Mt=at.length;Ct0?N(R.componentWillDisappear,kt(P,O)):O.textContent=""}function Ce(O,P,R,F){Ee(R,F),P.flags&8192?B(P,O,F):le(O,R,F)}function We(O,P,R,F,W){O.componentWillDisappear.push(function(Q){F&4?P.componentWillDisappear(R,Q):F&8&&P.onComponentWillDisappear(R,W,Q)})}function ze(O){var P=O.event;return function(R){P(O.data,R)}}function fn(O,P,R,F){if(d(R)){if(G(P,R))return;R=ze(R)}Ht(F,g(O),R)}function dn(O,P,R){if(r(P)){R.removeAttribute("style");return}var F=R.style,W,Q;if(u(P)){F.cssText=P;return}if(!r(O)&&!u(O)){for(W in P)Q=P[W],Q!==O[W]&&F.setProperty(W,Q);for(W in O)r(P[W])&&F.removeProperty(W)}else for(W in P)Q=P[W],F.setProperty(W,Q)}function be(O,P,R,F,W){var Q=O&&O.__html||"",Z=P&&P.__html||"";Q!==Z&&!r(Z)&&!Gt(F,Z)&&(c(R)||(R.childFlags&12?Ee(R.children,W):R.childFlags===2&&Yt(R.children,W),R.children=null,R.childFlags=1),F.innerHTML=Z)}function De(O,P,R,F,W,Q,Z,at){switch(O){case"children":case"childrenType":case"className":case"defaultValue":case"key":case"multiple":case"ref":case"selectedIndex":break;case"autoFocus":F.autofocus=!!R;break;case"allowfullscreen":case"autoplay":case"capture":case"checked":case"controls":case"default":case"disabled":case"hidden":case"indeterminate":case"loop":case"muted":case"novalidate":case"open":case"readOnly":case"required":case"reversed":case"scoped":case"seamless":case"selected":F[O]=!!R;break;case"defaultChecked":case"value":case"volume":if(Q&&O==="value")break;var Ct=r(R)?"":R;F[O]!==Ct&&(F[O]=Ct);break;case"style":dn(P,R,F);break;case"dangerouslySetInnerHTML":be(P,R,Z,F,at);break;default:ft[O]?Dt(O,P,R,F):O.charCodeAt(0)===111&&O.charCodeAt(1)===110?fn(O,P,R,F):r(R)?F.removeAttribute(O):W&&ut[O]?F.setAttributeNS(ut[O],O,R):F.setAttribute(O,R);break}}function fe(O,P,R,F,W,Q){var Z=!1,at=(P&448)>0;at&&(Z=cn(R),Z&&In(P,F,R));for(var Ct in R)De(Ct,null,R[Ct],F,W,Z,null,Q);at&&sn(P,O,F,R,!0,Z)}function Fe(O,P,R){var F=ct(O.render(P,O.state,R)),W=R;return a(O.getChildContext)&&(W=f(R,O.getChildContext())),O.$CX=W,F}function xe(O,P,R,F,W,Q){var Z=new P(R,F),at=Z.$N=!!(P.getDerivedStateFromProps||Z.getSnapshotBeforeUpdate);if(Z.$SVG=W,Z.$L=Q,O.children=Z,Z.$BS=!1,Z.context=F,Z.props===l&&(Z.props=R),at)Z.state=V(Z,R,Z.state);else if(a(Z.componentWillMount)){Z.$BR=!0,Z.componentWillMount();var Ct=Z.$PS;if(!c(Ct)){var Mt=Z.state;if(c(Mt))Z.state=Ct;else for(var Rt in Ct)Mt[Rt]=Ct[Rt];Z.$PS=null}Z.$BR=!1}return Z.$LI=Fe(Z,R,F),Z}function de(O,P){var R=O.props||l;return O.flags&32768?O.type.render(R,O.ref,P):O.type(R,P)}function Xt(O,P,R,F,W,Q,Z){var at=O.flags|=16384;at&481?hn(O,P,R,F,W,Q,Z):at&4?Me(O,P,R,F,W,Q,Z):at&8?Te(O,P,R,F,W,Q,Z):at&16?ke(O,P,W):at&8192?vn(O,R,P,F,W,Q,Z):at&1024&&Ve(O,R,P,W,Q,Z)}function Ve(O,P,R,F,W,Q){Xt(O.children,O.ref,P,!1,null,W,Q);var Z=et();ke(Z,R,F),O.dom=Z.dom}function vn(O,P,R,F,W,Q,Z){var at=O.children,Ct=O.childFlags;Ct&12&&at.length===0&&(Ct=O.childFlags=2,at=O.children=et()),Ct===2?Xt(at,R,P,F,W,Q,Z):ue(at,R,P,F,W,Q,Z)}function ke(O,P,R){var F=O.dom=document.createTextNode(O.children);c(P)||C(P,F,R)}function hn(O,P,R,F,W,Q,Z){var at=O.flags,Ct=O.props,Mt=O.className,Rt=O.childFlags,Lt=O.dom=T(O.type,F=F||(at&32)>0),wt=O.children;if(!r(Mt)&&Mt!==""&&(F?Lt.setAttribute("class",Mt):Lt.className=Mt),Rt===16)U(Lt,wt);else if(Rt!==1){var Bt=F&&O.type!=="foreignObject";Rt===2?(wt.flags&16384&&(O.children=wt=rt(wt)),Xt(wt,Lt,R,Bt,null,Q,Z)):(Rt===8||Rt===4)&&ue(wt,Lt,R,Bt,null,Q,Z)}c(P)||C(P,Lt,W),c(Ct)||fe(O,at,Ct,Lt,F,Z),zt(O.ref,Lt,Q)}function ue(O,P,R,F,W,Q,Z){for(var at=0;atBt)&&(Lt=A(at[Bt-1],!1).nextSibling)}ce(Mt,Rt,at,Ct,R,F,W,Lt,O,Q,Z)}function Qe(O,P,R,F,W){var Q=O.ref,Z=P.ref,at=P.children;if(ce(O.childFlags,P.childFlags,O.children,at,Q,R,!1,null,O,F,W),P.dom=O.dom,Q!==Z&&!o(at)){var Ct=at.dom;b(Q,Ct),m(Z,Ct)}}function Ze(O,P,R,F,W,Q,Z){var at=P.dom=O.dom,Ct=O.props,Mt=P.props,Rt=!1,Lt=!1,wt;if(F=F||(W&32)>0,Ct!==Mt){var Bt=Ct||l;if(wt=Mt||l,wt!==l){Rt=(W&448)>0,Rt&&(Lt=cn(wt));for(var $t in wt){var xt=Bt[$t],Qt=wt[$t];xt!==Qt&&De($t,xt,Qt,at,F,Lt,O,Z)}}if(Bt!==l)for(var Ut in Bt)r(wt[Ut])&&!r(Bt[Ut])&&De(Ut,Bt[Ut],null,at,F,Lt,O,Z)}var ge=P.children,ie=P.className;O.className!==ie&&(r(ie)?at.removeAttribute("class"):F?at.setAttribute("class",ie):at.className=ie),W&4096?se(at,ge):ce(O.childFlags,P.childFlags,O.children,ge,at,R,F&&P.type!=="foreignObject",null,O,Q,Z),Rt&&sn(W,P,at,wt,!1,Lt);var nn=P.ref,ve=O.ref;ve!==nn&&(Se(ve),zt(nn,at,Q))}function On(O,P,R,F,W,Q,Z){Yt(O,Z),ue(P,R,F,W,A(O,!0),Q,Z),B(O,R,Z)}function ce(O,P,R,F,W,Q,Z,at,Ct,Mt,Rt){switch(O){case 2:switch(P){case 2:ee(R,F,W,Q,Z,at,Mt,Rt);break;case 1:te(R,W,Rt);break;case 16:Yt(R,Rt),U(W,F);break;default:On(R,F,W,Q,Z,Mt,Rt);break}break;case 1:switch(P){case 2:Xt(F,W,Q,Z,at,Mt,Rt);break;case 1:break;case 16:U(W,F);break;default:ue(F,W,Q,Z,at,Mt,Rt);break}break;case 16:switch(P){case 16:Ue(R,F,W);break;case 2:le(W,R,Rt),Xt(F,W,Q,Z,at,Mt,Rt);break;case 1:le(W,R,Rt);break;default:le(W,R,Rt),ue(F,W,Q,Z,at,Mt,Rt);break}break;default:switch(P){case 16:Ee(R,Rt),U(W,F);break;case 2:Ce(W,Ct,R,Rt),Xt(F,W,Q,Z,at,Mt,Rt);break;case 1:Ce(W,Ct,R,Rt);break;default:var Lt=R.length|0,wt=F.length|0;Lt===0?wt>0&&ue(F,W,Q,Z,at,Mt,Rt):wt===0?Ce(W,Ct,R,Rt):P===8&&O===8?qe(R,F,W,Q,Z,Lt,wt,at,Ct,Mt,Rt):yn(R,F,W,Q,Z,Lt,wt,at,Mt,Rt);break}break}}function Pn(O,P,R,F,W){W.push(function(){O.componentDidUpdate(P,R,F)})}function mn(O,P,R,F,W,Q,Z,at,Ct,Mt){var Rt=O.state,Lt=O.props,wt=!!O.$N,Bt=a(O.shouldComponentUpdate);if(wt&&(P=V(O,R,P!==Rt?f(Rt,P):P)),Z||!Bt||Bt&&O.shouldComponentUpdate(R,P,W)){!wt&&a(O.componentWillUpdate)&&O.componentWillUpdate(R,P,W),O.props=R,O.state=P,O.context=W;var $t=null,xt=Fe(O,R,W);wt&&a(O.getSnapshotBeforeUpdate)&&($t=O.getSnapshotBeforeUpdate(Lt,Rt)),ee(O.$LI,xt,F,O.$CX,Q,at,Ct,Mt),O.$LI=xt,a(O.componentDidUpdate)&&Pn(O,Lt,Rt,$t,Ct)}else O.props=R,O.state=P,O.context=W}function Jt(O,P,R,F,W,Q,Z,at){var Ct=P.children=O.children;if(!c(Ct)){Ct.$L=Z;var Mt=P.props||l,Rt=P.ref,Lt=O.ref,wt=Ct.state;if(!Ct.$N){if(a(Ct.componentWillReceiveProps)){if(Ct.$BR=!0,Ct.componentWillReceiveProps(Mt,F),Ct.$UN)return;Ct.$BR=!1}c(Ct.$PS)||(wt=f(wt,Ct.$PS),Ct.$PS=null)}mn(Ct,wt,Mt,R,F,W,!1,Q,Z,at),Lt!==Rt&&(Se(Lt),zt(Rt,Ct,Z))}}function Oe(O,P,R,F,W,Q,Z,at){var Ct=!0,Mt=P.props||l,Rt=P.ref,Lt=O.props,wt=!r(Rt),Bt=O.children;if(wt&&a(Rt.onComponentShouldUpdate)&&(Ct=Rt.onComponentShouldUpdate(Lt,Mt)),Ct!==!1){wt&&a(Rt.onComponentWillUpdate)&&Rt.onComponentWillUpdate(Lt,Mt);var $t=ct(de(P,F));ee(Bt,$t,R,F,W,Q,Z,at),P.children=$t,wt&&a(Rt.onComponentDidUpdate)&&Rt.onComponentDidUpdate(Lt,Mt)}else P.children=Bt}function Nn(O,P){var R=P.children,F=P.dom=O.dom;R!==O.children&&(F.nodeValue=R)}function yn(O,P,R,F,W,Q,Z,at,Ct,Mt){for(var Rt=Q>Z?Z:Q,Lt=0,wt,Bt;Lt