diff --git a/_maps/RandomRuins/BeachRuins/beach_ancient_ruin.dmm b/_maps/RandomRuins/BeachRuins/beach_ancient_ruin.dmm index a64e92e96059..1dee623f0aaa 100644 --- a/_maps/RandomRuins/BeachRuins/beach_ancient_ruin.dmm +++ b/_maps/RandomRuins/BeachRuins/beach_ancient_ruin.dmm @@ -1145,7 +1145,7 @@ /turf/open/floor/concrete/slab_1, /area/ruin/beach/complex/wall) "sa" = ( -/obj/effect/spawner/random/garden/seaweed, +/obj/effect/spawner/random/food_or_drink/garden/seaweed, /turf/open/water/beach, /area/overmap_encounter/planetoid/beachplanet/explored) "so" = ( diff --git a/_maps/RandomRuins/BeachRuins/beach_pirate_crash.dmm b/_maps/RandomRuins/BeachRuins/beach_pirate_crash.dmm index 63894f7f1f0e..fddfa5bdc00f 100644 --- a/_maps/RandomRuins/BeachRuins/beach_pirate_crash.dmm +++ b/_maps/RandomRuins/BeachRuins/beach_pirate_crash.dmm @@ -1433,9 +1433,9 @@ "QG" = ( /obj/effect/turf_decal/box, /obj/structure/closet/crate, -/obj/effect/spawner/random/random_machine_circuit_rare, +/obj/effect/spawner/random/circuit/machine/rare, /obj/effect/spawner/random/maintenance/four, -/obj/effect/spawner/random/random_machine_circuit_common, +/obj/effect/spawner/random/circuit/machine/common, /obj/effect/decal/cleanable/dirt/dust, /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plating/rust, diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_wrecked_factory.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_wrecked_factory.dmm index 2be530e4080e..8ea61e8f27c2 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_wrecked_factory.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_wrecked_factory.dmm @@ -164,8 +164,8 @@ /area/ruin/lavaland/factory/manager_office) "bE" = ( /obj/structure/closet/crate/trashcart, -/obj/effect/spawner/random/waste/trash, -/obj/effect/spawner/random/waste/trash, +/obj/effect/spawner/random/trash/decal, +/obj/effect/spawner/random/trash/decal, /obj/item/storage/bag/trash, /obj/item/reagent_containers/glass/bucket, /obj/item/mop, @@ -216,7 +216,7 @@ "cm" = ( /obj/structure/table/wood, /obj/machinery/light/directional/east, -/obj/effect/spawner/random/waste/trash, +/obj/effect/spawner/random/trash/decal, /turf/open/floor/wood, /area/ruin/lavaland/factory/adminstrative) "co" = ( @@ -3148,12 +3148,12 @@ /obj/effect/turf_decal/corner/opaque/ntblue{ dir = 1 }, -/obj/effect/spawner/random/waste/trash, -/obj/effect/spawner/random/waste/trash, -/obj/effect/spawner/random/waste/trash, -/obj/effect/spawner/random/waste/trash, -/obj/effect/spawner/random/waste/trash, -/obj/effect/spawner/random/waste/trash, +/obj/effect/spawner/random/trash/decal, +/obj/effect/spawner/random/trash/decal, +/obj/effect/spawner/random/trash/decal, +/obj/effect/spawner/random/trash/decal, +/obj/effect/spawner/random/trash/decal, +/obj/effect/spawner/random/trash/decal, /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plasteel/white, /area/ruin/lavaland/factory/dorms) @@ -4944,9 +4944,9 @@ /obj/effect/turf_decal/corner/opaque/bar, /obj/structure/closet/crate/bin, /obj/machinery/light/directional/west, -/obj/effect/spawner/random/waste/trash, -/obj/effect/spawner/random/waste/trash, -/obj/effect/spawner/random/waste/trash, +/obj/effect/spawner/random/trash/decal, +/obj/effect/spawner/random/trash/decal, +/obj/effect/spawner/random/trash/decal, /turf/open/floor/plasteel, /area/ruin/lavaland/factory/dorms) "Xn" = ( diff --git a/_maps/RandomRuins/RockRuins/rockplanet_distillery.dmm b/_maps/RandomRuins/RockRuins/rockplanet_distillery.dmm index 35bc822bc60e..7f4f46387413 100644 --- a/_maps/RandomRuins/RockRuins/rockplanet_distillery.dmm +++ b/_maps/RandomRuins/RockRuins/rockplanet_distillery.dmm @@ -3034,8 +3034,8 @@ /obj/effect/turf_decal/industrial/outline/red, /obj/effect/spawner/random/random_computer_circuit_common, /obj/effect/spawner/random/maintenance/four, -/obj/effect/spawner/random/random_machine_circuit_common, -/obj/effect/spawner/random/random_machine_circuit_common, +/obj/effect/spawner/random/circuit/machine/common, +/obj/effect/spawner/random/circuit/machine/common, /turf/open/floor/plasteel/patterned/brushed/rockplanet, /area/ruin/rockplanet/distillery/crew) "IA" = ( diff --git a/_maps/RandomRuins/SandRuins/whitesands_surface_camp_combination.dmm b/_maps/RandomRuins/SandRuins/whitesands_surface_camp_combination.dmm index dbc36ff46be6..2a5ea3f068d9 100644 --- a/_maps/RandomRuins/SandRuins/whitesands_surface_camp_combination.dmm +++ b/_maps/RandomRuins/SandRuins/whitesands_surface_camp_combination.dmm @@ -964,7 +964,7 @@ }, /area/overmap_encounter/planetoid/sand/explored) "JE" = ( -/obj/effect/spawner/random/tool_engie_sydnie, +/obj/effect/spawner/random/engineering/tool/sydnie, /turf/open/floor/plating/asteroid/whitesands{ light_range = 2 }, diff --git a/_maps/RandomRuins/SpaceRuins/spacemall.dmm b/_maps/RandomRuins/SpaceRuins/spacemall.dmm index 8db2de9a07be..03ebd24f11c2 100644 --- a/_maps/RandomRuins/SpaceRuins/spacemall.dmm +++ b/_maps/RandomRuins/SpaceRuins/spacemall.dmm @@ -5866,7 +5866,7 @@ /area/ruin/space/has_grav/spacemall/shop2) "vS" = ( /obj/structure/rack, -/obj/effect/spawner/random/beaker_loot_spawner, +/obj/effect/spawner/random/medical/beaker, /obj/effect/turf_decal/corner/opaque/blue/diagonal, /turf/open/floor/plasteel/white, /area/ruin/space/has_grav/spacemall/shop2) @@ -11266,7 +11266,7 @@ /area/ruin/space/has_grav/spacemall) "Qf" = ( /obj/structure/rack, -/obj/effect/spawner/random/tool_engie_common, +/obj/effect/spawner/random/engineering/tool/common, /obj/effect/turf_decal/corner/transparent/black/diagonal, /turf/open/floor/plasteel, /area/ruin/space/has_grav/spacemall/shop) @@ -12655,8 +12655,8 @@ "VA" = ( /obj/structure/rack, /obj/structure/window/reinforced/spawner, -/obj/effect/spawner/random/beaker_loot_spawner, -/obj/effect/spawner/random/beaker_loot_spawner, +/obj/effect/spawner/random/medical/beaker, +/obj/effect/spawner/random/medical/beaker, /obj/effect/turf_decal/corner/opaque/blue/diagonal, /obj/item/clothing/neck/stethoscope, /turf/open/floor/plasteel/white, diff --git a/_maps/outpost/hangar/nt_asteroid_40x20.dmm b/_maps/outpost/hangar/nt_asteroid_40x20.dmm index ab49a101ee1e..90d222c99fa3 100644 --- a/_maps/outpost/hangar/nt_asteroid_40x20.dmm +++ b/_maps/outpost/hangar/nt_asteroid_40x20.dmm @@ -861,7 +861,7 @@ }, /area/hangar) "vh" = ( -/obj/effect/spawner/random/trash/grille_or_waste, +/obj/effect/spawner/random/trash/decal/grille_or_waste, /obj/structure/catwalk/over/plated_catwalk, /turf/open/floor/plating{ planetary_atmos = 1 diff --git a/_maps/outpost/indie_space.dmm b/_maps/outpost/indie_space.dmm index 9ca50ef50a68..1d65cae26899 100644 --- a/_maps/outpost/indie_space.dmm +++ b/_maps/outpost/indie_space.dmm @@ -287,7 +287,7 @@ /turf/open/floor/plasteel, /area/outpost/hallway/port) "bS" = ( -/obj/effect/spawner/random/trash/grille_or_waste, +/obj/effect/spawner/random/trash/decal/grille_or_waste, /obj/effect/turf_decal/corner_techfloor_grid{ dir = 8 }, @@ -346,7 +346,7 @@ /turf/open/floor/plasteel, /area/outpost/hallway/central) "ci" = ( -/obj/effect/spawner/random/waste/trash, +/obj/effect/spawner/random/trash/decal, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plating, @@ -481,7 +481,7 @@ /turf/open/floor/plasteel, /area/outpost/vacant_rooms) "dl" = ( -/obj/effect/spawner/random/waste/trash, +/obj/effect/spawner/random/trash/decal, /obj/effect/turf_decal/steeldecal/steel_decals7{ dir = 9 }, @@ -1001,7 +1001,7 @@ /turf/open/floor/plating, /area/outpost/maintenance/central) "gS" = ( -/obj/effect/spawner/random/trash/grille_or_waste, +/obj/effect/spawner/random/trash/decal/grille_or_waste, /turf/open/floor/plating, /area/outpost/maintenance/fore) "gT" = ( @@ -1269,7 +1269,7 @@ /turf/open/floor/wood, /area/outpost/crew/library) "iD" = ( -/obj/effect/spawner/random/waste/trash, +/obj/effect/spawner/random/trash/decal, /turf/open/floor/plating, /area/outpost/maintenance/fore) "iG" = ( @@ -2782,7 +2782,7 @@ /obj/structure/cable/yellow{ icon_state = "1-4" }, -/obj/effect/spawner/random/waste/trash, +/obj/effect/spawner/random/trash/decal, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 5 }, @@ -3791,7 +3791,7 @@ /turf/open/floor/plasteel, /area/outpost/hallway/port) "xu" = ( -/obj/effect/spawner/random/trash/grille_or_waste, +/obj/effect/spawner/random/trash/decal/grille_or_waste, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/outpost/maintenance/fore) @@ -3884,7 +3884,7 @@ /obj/structure/cable/yellow{ icon_state = "4-8" }, -/obj/effect/spawner/random/waste/trash, +/obj/effect/spawner/random/trash/decal, /turf/open/floor/plating, /area/outpost/maintenance/fore) "xZ" = ( @@ -4155,7 +4155,7 @@ /turf/open/floor/plating/asteroid, /area/outpost/external) "zS" = ( -/obj/effect/spawner/random/waste/trash, +/obj/effect/spawner/random/trash/decal, /turf/open/floor/plating, /area/outpost/maintenance/central) "zY" = ( @@ -4984,7 +4984,7 @@ /turf/open/floor/plating, /area/outpost/maintenance/fore) "ER" = ( -/obj/effect/spawner/random/trash/grille_or_waste, +/obj/effect/spawner/random/trash/decal/grille_or_waste, /turf/open/floor/plating, /area/outpost/maintenance/central) "EV" = ( @@ -5189,7 +5189,7 @@ /turf/open/floor/plasteel/patterned/cargo_one, /area/outpost/vacant_rooms/office) "Gj" = ( -/obj/effect/spawner/random/trash/grille_or_waste, +/obj/effect/spawner/random/trash/decal/grille_or_waste, /obj/structure/cable/yellow{ icon_state = "4-8" }, @@ -6213,8 +6213,8 @@ /turf/open/floor/wood, /area/outpost/crew/library) "LR" = ( -/obj/effect/spawner/random/tool_engie_common, -/obj/effect/spawner/random/tool_engie_common, +/obj/effect/spawner/random/engineering/tool/common, +/obj/effect/spawner/random/engineering/tool/common, /obj/structure/rack, /turf/open/floor/plating, /area/outpost/maintenance/fore) @@ -7079,7 +7079,7 @@ /obj/structure/cable/yellow{ icon_state = "4-6" }, -/obj/effect/spawner/random/waste/trash, +/obj/effect/spawner/random/trash/decal, /obj/effect/turf_decal/corner_techfloor_gray{ dir = 10 }, @@ -7166,7 +7166,7 @@ icon_state = "1-2" }, /obj/structure/disposalpipe/segment, -/obj/effect/spawner/random/waste/trash, +/obj/effect/spawner/random/trash/decal, /turf/open/floor/plating, /area/outpost/maintenance/fore) "RJ" = ( @@ -7400,7 +7400,7 @@ /turf/open/floor/plating, /area/outpost/maintenance/fore) "Ta" = ( -/obj/effect/spawner/random/trash/grille_or_waste, +/obj/effect/spawner/random/trash/decal/grille_or_waste, /obj/effect/decal/cleanable/oil, /obj/effect/turf_decal/steeldecal/steel_decals9, /turf/open/floor/plating, @@ -7556,7 +7556,7 @@ /obj/effect/turf_decal/corner_techfloor_gray{ dir = 9 }, -/obj/effect/spawner/random/waste/trash, +/obj/effect/spawner/random/trash/decal, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/tech/techmaint, /area/outpost/maintenance/fore) @@ -7618,7 +7618,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/effect/spawner/random/waste/trash, +/obj/effect/spawner/random/trash/decal, /obj/effect/decal/cleanable/dirt/dust, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 @@ -7897,7 +7897,7 @@ /turf/open/floor/carpet/green, /area/outpost/crew/bar) "Wa" = ( -/obj/effect/spawner/random/waste/trash, +/obj/effect/spawner/random/trash/decal, /obj/effect/decal/cleanable/dirt, /mob/living/simple_animal/mouse/brown, /turf/open/floor/plating, @@ -8332,7 +8332,7 @@ /turf/open/floor/plasteel/patterned, /area/outpost/cargo) "YC" = ( -/obj/effect/spawner/random/waste/trash, +/obj/effect/spawner/random/trash/decal, /obj/structure/rack, /obj/effect/turf_decal/steeldecal/steel_decals_central2{ dir = 4 @@ -8528,7 +8528,7 @@ /area/outpost/hallway/central) "ZP" = ( /obj/structure/rack, -/obj/effect/spawner/random/tool_surgery_common, +/obj/effect/spawner/random/medical/surgery_tool/common, /obj/effect/spawner/random/maintenance/four, /turf/open/floor/plasteel/patterned/cargo_one, /area/outpost/vacant_rooms/office) diff --git a/_maps/outpost/nanotrasen_asteroid.dmm b/_maps/outpost/nanotrasen_asteroid.dmm index 179aa234e780..8c61c5322151 100644 --- a/_maps/outpost/nanotrasen_asteroid.dmm +++ b/_maps/outpost/nanotrasen_asteroid.dmm @@ -2337,7 +2337,7 @@ /area/outpost/vacant_rooms) "iW" = ( /obj/effect/decal/cleanable/dirt, -/obj/effect/spawner/random/trash/grille_or_waste, +/obj/effect/spawner/random/trash/decal/grille_or_waste, /obj/structure/sign/poster/contraband/random{ pixel_x = 32; pixel_y = -32 @@ -5481,7 +5481,7 @@ /turf/open/floor/plasteel/dark, /area/outpost/operations) "tD" = ( -/obj/effect/spawner/random/trash/grille_or_waste, +/obj/effect/spawner/random/trash/decal/grille_or_waste, /obj/structure/catwalk/over/plated_catwalk, /turf/open/floor/plating{ icon_state = "panelscorched" @@ -10560,7 +10560,7 @@ /area/outpost/hallway/starboard) "KW" = ( /obj/effect/decal/cleanable/dirt, -/obj/effect/spawner/random/trash/grille_or_waste, +/obj/effect/spawner/random/trash/decal/grille_or_waste, /turf/open/floor/plating, /area/outpost/maintenance/aft) "KX" = ( @@ -11767,7 +11767,7 @@ "Pb" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/obj/effect/spawner/random/trash/grille_or_waste, +/obj/effect/spawner/random/trash/decal/grille_or_waste, /obj/item/stack/sheet/mineral/wood{ pixel_x = -6 }, @@ -14038,7 +14038,7 @@ /obj/structure/railing{ layer = 3.1 }, -/obj/effect/spawner/random/trash/grille_or_waste, +/obj/effect/spawner/random/trash/decal/grille_or_waste, /obj/item/trash/can{ pixel_x = -8; pixel_y = -6 diff --git a/_maps/shuttles/independent/independent_box.dmm b/_maps/shuttles/independent/independent_box.dmm index a7686b299258..78b9170d8866 100644 --- a/_maps/shuttles/independent/independent_box.dmm +++ b/_maps/shuttles/independent/independent_box.dmm @@ -1162,7 +1162,7 @@ /obj/structure/sign/poster/official/help_others{ pixel_x = -32 }, -/obj/effect/spawner/random/tool_surgery_adv, +/obj/effect/spawner/random/medical/surgery_tool/adv, /obj/item/megaphone/command, /obj/effect/turf_decal/spline/fancy/opaque/black{ dir = 4 diff --git a/_maps/shuttles/independent/independent_junker.dmm b/_maps/shuttles/independent/independent_junker.dmm index c7b7eb4ae673..2dadcfb8149b 100644 --- a/_maps/shuttles/independent/independent_junker.dmm +++ b/_maps/shuttles/independent/independent_junker.dmm @@ -1610,7 +1610,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 6 }, -/obj/effect/spawner/random/trash/grille_or_waste, +/obj/effect/spawner/random/trash/decal/grille_or_waste, /turf/open/floor/plating, /area/ship/maintenance/port) "Df" = ( @@ -2730,7 +2730,7 @@ /obj/structure/cable{ icon_state = "0-2" }, -/obj/effect/spawner/random/trash/grille_or_waste, +/obj/effect/spawner/random/trash/decal/grille_or_waste, /obj/machinery/door/firedoor, /turf/open/floor/plating, /area/ship/maintenance/port) diff --git a/_maps/shuttles/independent/independent_tranquility.dmm b/_maps/shuttles/independent/independent_tranquility.dmm index 604b6e8c22e0..d1e34b97e612 100644 --- a/_maps/shuttles/independent/independent_tranquility.dmm +++ b/_maps/shuttles/independent/independent_tranquility.dmm @@ -6197,10 +6197,10 @@ "WS" = ( /obj/machinery/light/dim/directional/north, /obj/structure/closet/crate/hydroponics, -/obj/effect/spawner/random/seeded, -/obj/effect/spawner/random/seeded, -/obj/effect/spawner/random/seeded, -/obj/effect/spawner/random/seeded, +/obj/effect/spawner/random/food_or_drink/seed, +/obj/effect/spawner/random/food_or_drink/seed, +/obj/effect/spawner/random/food_or_drink/seed, +/obj/effect/spawner/random/food_or_drink/seed, /obj/item/seeds/random, /turf/open/floor/grass, /area/ship/crew/hydroponics) diff --git a/_maps/shuttles/inteq/inteq_talos.dmm b/_maps/shuttles/inteq/inteq_talos.dmm index 9f3a14293e19..211d05b93f23 100644 --- a/_maps/shuttles/inteq/inteq_talos.dmm +++ b/_maps/shuttles/inteq/inteq_talos.dmm @@ -1640,7 +1640,7 @@ /obj/structure/cable{ icon_state = "4-8" }, -/obj/effect/spawner/random/trash/grille_or_waste, +/obj/effect/spawner/random/trash/decal/grille_or_waste, /turf/open/floor/plating/airless, /area/ship/maintenance/starboard) "kD" = ( @@ -2132,7 +2132,7 @@ /area/ship/storage) "nF" = ( /obj/effect/decal/cleanable/dirt, -/obj/effect/spawner/random/trash/grille_or_waste, +/obj/effect/spawner/random/trash/decal/grille_or_waste, /turf/open/floor/plating/airless, /area/ship/storage/port) "nH" = ( @@ -2638,7 +2638,7 @@ "qp" = ( /obj/effect/decal/cleanable/dirt/dust, /obj/effect/decal/cleanable/cobweb, -/obj/effect/spawner/random/trash/grille_or_waste, +/obj/effect/spawner/random/trash/decal/grille_or_waste, /turf/open/floor/plating/airless, /area/ship/maintenance/port) "qr" = ( @@ -2881,7 +2881,7 @@ /area/ship/security) "rN" = ( /obj/effect/decal/cleanable/dirt, -/obj/effect/spawner/random/trash/grille_or_waste, +/obj/effect/spawner/random/trash/decal/grille_or_waste, /turf/open/floor/plating/airless, /area/ship/maintenance/starboard) "rP" = ( @@ -3030,7 +3030,7 @@ /area/ship/maintenance/port) "sD" = ( /obj/effect/decal/cleanable/dirt/dust, -/obj/effect/spawner/random/trash/grille_or_waste, +/obj/effect/spawner/random/trash/decal/grille_or_waste, /obj/effect/turf_decal/industrial/warning{ dir = 4 }, @@ -4083,7 +4083,7 @@ /area/ship/maintenance/port) "zg" = ( /obj/effect/decal/cleanable/dirt/dust, -/obj/effect/spawner/random/trash/grille_or_waste, +/obj/effect/spawner/random/trash/decal/grille_or_waste, /turf/open/floor/plating/airless, /area/ship/maintenance/port) "zh" = ( @@ -4239,7 +4239,7 @@ "Aa" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt/dust, -/obj/effect/spawner/random/trash/grille_or_waste, +/obj/effect/spawner/random/trash/decal/grille_or_waste, /turf/open/floor/plating/airless, /area/ship/storage/port) "Ag" = ( @@ -4501,7 +4501,7 @@ /area/ship/crew/canteen) "BN" = ( /obj/effect/decal/cleanable/dirt, -/obj/effect/spawner/random/trash/grille_or_waste, +/obj/effect/spawner/random/trash/decal/grille_or_waste, /turf/open/floor/plating/airless, /area/ship/storage/starboard) "BP" = ( @@ -5214,7 +5214,7 @@ icon_state = "1-8" }, /obj/effect/decal/cleanable/blood/old, -/obj/effect/spawner/random/trash/grille_or_waste, +/obj/effect/spawner/random/trash/decal/grille_or_waste, /turf/open/floor/plating/airless, /area/ship/maintenance/starboard) "GR" = ( @@ -5288,7 +5288,7 @@ "Ho" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt/dust, -/obj/effect/spawner/random/trash/grille_or_waste, +/obj/effect/spawner/random/trash/decal/grille_or_waste, /turf/open/floor/plating/airless, /area/ship/storage/starboard) "Hp" = ( @@ -6303,7 +6303,7 @@ "OP" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt/dust, -/obj/effect/spawner/random/trash/grille_or_waste, +/obj/effect/spawner/random/trash/decal/grille_or_waste, /turf/open/floor/plating/airless, /area/ship/maintenance/port) "Pf" = ( @@ -6646,7 +6646,7 @@ /area/ship/hallway/central) "Ri" = ( /obj/effect/decal/cleanable/dirt, -/obj/effect/spawner/random/trash/grille_or_waste, +/obj/effect/spawner/random/trash/decal/grille_or_waste, /turf/open/floor/plating/airless, /area/ship/maintenance/port) "Rp" = ( @@ -7157,7 +7157,7 @@ /area/ship/storage/starboard) "Uy" = ( /obj/effect/decal/cleanable/dirt/dust, -/obj/effect/spawner/random/trash/grille_or_waste, +/obj/effect/spawner/random/trash/decal/grille_or_waste, /turf/open/floor/plating/airless, /area/ship/storage/port) "UD" = ( @@ -7694,7 +7694,7 @@ /area/ship/maintenance/starboard) "YZ" = ( /obj/effect/decal/cleanable/dirt/dust, -/obj/effect/spawner/random/trash/grille_or_waste, +/obj/effect/spawner/random/trash/decal/grille_or_waste, /turf/open/floor/plating/airless, /area/ship/maintenance/starboard) "Zb" = ( diff --git a/_maps/shuttles/nanotrasen/nanotrasen_gecko.dmm b/_maps/shuttles/nanotrasen/nanotrasen_gecko.dmm index 7002fe4f7ed0..19536d2d6558 100644 --- a/_maps/shuttles/nanotrasen/nanotrasen_gecko.dmm +++ b/_maps/shuttles/nanotrasen/nanotrasen_gecko.dmm @@ -130,7 +130,7 @@ /turf/open/floor/plasteel/patterned/grid, /area/ship/hallway/aft) "bh" = ( -/obj/effect/spawner/random/trash/grille_or_waste, +/obj/effect/spawner/random/trash/decal/grille_or_waste, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/ship/maintenance/fore) @@ -246,7 +246,7 @@ /obj/structure/cable{ icon_state = "4-8" }, -/obj/effect/spawner/random/trash/grille_or_waste, +/obj/effect/spawner/random/trash/decal/grille_or_waste, /turf/open/floor/plating, /area/ship/maintenance/fore) "cj" = ( @@ -319,7 +319,7 @@ /turf/open/floor/plating, /area/ship/maintenance/fore) "cP" = ( -/obj/effect/spawner/random/trash/grille_or_waste, +/obj/effect/spawner/random/trash/decal/grille_or_waste, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plating, @@ -357,7 +357,7 @@ /turf/closed/wall/mineral/titanium/nodiagonal, /area/ship/maintenance/fore) "dp" = ( -/obj/effect/spawner/random/trash/grille_or_waste, +/obj/effect/spawner/random/trash/decal/grille_or_waste, /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plating, /area/ship/maintenance/starboard) @@ -559,7 +559,7 @@ /turf/open/floor/engine/hull, /area/ship/external) "eQ" = ( -/obj/effect/spawner/random/trash/grille_or_waste, +/obj/effect/spawner/random/trash/decal/grille_or_waste, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt/dust, /obj/effect/decal/cleanable/cobweb/cobweb2, @@ -776,7 +776,7 @@ /obj/structure/cable{ icon_state = "1-2" }, -/obj/effect/spawner/random/trash/grille_or_waste, +/obj/effect/spawner/random/trash/decal/grille_or_waste, /obj/effect/turf_decal/industrial/warning, /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plating, @@ -931,7 +931,7 @@ /obj/structure/cable{ icon_state = "4-8" }, -/obj/effect/spawner/random/trash/grille_or_waste, +/obj/effect/spawner/random/trash/decal/grille_or_waste, /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plating, /area/ship/maintenance/port) @@ -1402,7 +1402,7 @@ /obj/structure/cable{ icon_state = "1-8" }, -/obj/effect/spawner/random/trash/grille_or_waste, +/obj/effect/spawner/random/trash/decal/grille_or_waste, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plating, @@ -1604,7 +1604,7 @@ /turf/open/floor/plating, /area/ship/maintenance/port) "qu" = ( -/obj/effect/spawner/random/trash/grille_or_waste, +/obj/effect/spawner/random/trash/decal/grille_or_waste, /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plating, /area/ship/maintenance/fore) @@ -1689,7 +1689,7 @@ /turf/open/floor/plasteel/patterned/cargo_one, /area/ship/cargo/port) "qY" = ( -/obj/effect/spawner/random/trash/grille_or_waste, +/obj/effect/spawner/random/trash/decal/grille_or_waste, /obj/effect/decal/cleanable/dirt/dust, /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ dir = 6 @@ -2397,7 +2397,7 @@ icon_state = "1-2" }, /obj/effect/decal/cleanable/dirt, -/obj/effect/spawner/random/trash/grille_or_waste, +/obj/effect/spawner/random/trash/decal/grille_or_waste, /turf/open/floor/plasteel/stairs{ dir = 1 }, @@ -2453,7 +2453,7 @@ /obj/structure/cable{ icon_state = "1-2" }, -/obj/effect/spawner/random/trash/grille_or_waste, +/obj/effect/spawner/random/trash/decal/grille_or_waste, /turf/open/floor/plasteel/stairs, /area/ship/maintenance/port) "yG" = ( @@ -2524,7 +2524,7 @@ /turf/open/floor/plasteel/telecomms_floor, /area/ship/engineering/communications) "zv" = ( -/obj/effect/spawner/random/trash/grille_or_waste, +/obj/effect/spawner/random/trash/decal/grille_or_waste, /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/ntspaceworks_big/six{ dir = 4 @@ -3437,7 +3437,7 @@ }, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt/dust, -/obj/effect/spawner/random/trash/grille_or_waste, +/obj/effect/spawner/random/trash/decal/grille_or_waste, /turf/open/floor/plating, /area/ship/maintenance/starboard) "Is" = ( @@ -3568,7 +3568,7 @@ /obj/structure/cable{ icon_state = "1-8" }, -/obj/effect/spawner/random/trash/grille_or_waste, +/obj/effect/spawner/random/trash/decal/grille_or_waste, /turf/open/floor/plating, /area/ship/maintenance/fore) "JL" = ( @@ -3739,7 +3739,7 @@ /obj/machinery/atmospherics/pipe/simple/purple/hidden/layer1{ dir = 9 }, -/obj/effect/spawner/random/trash/grille_or_waste, +/obj/effect/spawner/random/trash/decal/grille_or_waste, /turf/open/floor/plating, /area/ship/engineering/engine) "LK" = ( @@ -3771,7 +3771,7 @@ /obj/structure/cable{ icon_state = "4-8" }, -/obj/effect/spawner/random/trash/grille_or_waste, +/obj/effect/spawner/random/trash/decal/grille_or_waste, /obj/effect/decal/cleanable/dirt/dust, /obj/structure/sign/warning/electricshock{ pixel_y = 32 @@ -3970,7 +3970,7 @@ /area/ship/external) "OZ" = ( /obj/effect/decal/cleanable/dirt/dust, -/obj/effect/spawner/random/trash/grille_or_waste, +/obj/effect/spawner/random/trash/decal/grille_or_waste, /turf/open/floor/plating, /area/ship/engineering/engine) "Pc" = ( @@ -4080,7 +4080,7 @@ /obj/structure/cable{ icon_state = "4-8" }, -/obj/effect/spawner/random/trash/grille_or_waste, +/obj/effect/spawner/random/trash/decal/grille_or_waste, /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plating, /area/ship/maintenance/fore) @@ -4382,7 +4382,7 @@ /obj/structure/cable{ icon_state = "4-8" }, -/obj/effect/spawner/random/trash/grille_or_waste, +/obj/effect/spawner/random/trash/decal/grille_or_waste, /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plating, /area/ship/maintenance/starboard) @@ -4416,7 +4416,7 @@ /turf/open/floor/plating, /area/ship/maintenance/fore) "SQ" = ( -/obj/effect/spawner/random/trash/grille_or_waste, +/obj/effect/spawner/random/trash/decal/grille_or_waste, /turf/open/floor/plating, /area/ship/engineering/engine) "SV" = ( @@ -4642,7 +4642,7 @@ /obj/structure/cable{ icon_state = "2-4" }, -/obj/effect/spawner/random/trash/grille_or_waste, +/obj/effect/spawner/random/trash/decal/grille_or_waste, /obj/effect/decal/cleanable/cobweb, /turf/open/floor/plating, /area/ship/maintenance/port) @@ -4845,7 +4845,7 @@ /area/ship/cargo/port) "Wo" = ( /obj/effect/decal/cleanable/dirt/dust, -/obj/effect/spawner/random/trash/grille_or_waste, +/obj/effect/spawner/random/trash/decal/grille_or_waste, /turf/open/floor/plating, /area/ship/maintenance/port) "Wq" = ( diff --git a/_maps/shuttles/nanotrasen/nanotrasen_meta.dmm b/_maps/shuttles/nanotrasen/nanotrasen_meta.dmm index c08565c45c58..fd4d30b142a8 100644 --- a/_maps/shuttles/nanotrasen/nanotrasen_meta.dmm +++ b/_maps/shuttles/nanotrasen/nanotrasen_meta.dmm @@ -2172,7 +2172,7 @@ /obj/effect/turf_decal/ntspaceworks_big/two, /obj/effect/decal/cleanable/dirt/dust, /obj/structure/closet/crate, -/obj/effect/spawner/random/tool_surgery_common, +/obj/effect/spawner/random/medical/surgery_tool/common, /obj/effect/spawner/random/maintenance/three, /turf/open/floor/plasteel/dark, /area/ship/cargo) diff --git a/_maps/shuttles/nanotrasen/nanotrasen_mimir.dmm b/_maps/shuttles/nanotrasen/nanotrasen_mimir.dmm index 2633ae384786..684c3aba7a1b 100644 --- a/_maps/shuttles/nanotrasen/nanotrasen_mimir.dmm +++ b/_maps/shuttles/nanotrasen/nanotrasen_mimir.dmm @@ -50,7 +50,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/effect/spawner/random/trash/grille_or_waste, +/obj/effect/spawner/random/trash/decal/grille_or_waste, /obj/effect/decal/cleanable/dirt/dust, /obj/effect/turf_decal/techfloor/orange, /turf/open/floor/plasteel/tech/grid, @@ -1441,7 +1441,7 @@ /obj/structure/railing/corner{ dir = 1 }, -/obj/effect/spawner/random/trash/grille_or_waste, +/obj/effect/spawner/random/trash/decal/grille_or_waste, /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plating, /area/ship/maintenance/starboard) @@ -2117,7 +2117,7 @@ /turf/open/floor/plating, /area/ship/engineering/atmospherics) "lW" = ( -/obj/effect/spawner/random/trash/grille_or_waste, +/obj/effect/spawner/random/trash/decal/grille_or_waste, /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plating, /area/ship/maintenance/port) @@ -2745,7 +2745,7 @@ /area/ship/engineering/electrical) "pV" = ( /obj/structure/railing, -/obj/effect/spawner/random/trash/grille_or_waste, +/obj/effect/spawner/random/trash/decal/grille_or_waste, /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plating, /area/ship/maintenance/port) @@ -2956,7 +2956,7 @@ /obj/structure/railing{ dir = 9 }, -/obj/effect/spawner/random/trash/grille_or_waste, +/obj/effect/spawner/random/trash/decal/grille_or_waste, /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plating, /area/ship/maintenance/starboard) @@ -5657,7 +5657,7 @@ /obj/structure/railing{ dir = 1 }, -/obj/effect/spawner/random/trash/grille_or_waste, +/obj/effect/spawner/random/trash/decal/grille_or_waste, /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plating, /area/ship/engineering) @@ -5752,7 +5752,7 @@ /obj/structure/railing{ dir = 1 }, -/obj/effect/spawner/random/trash/grille_or_waste, +/obj/effect/spawner/random/trash/decal/grille_or_waste, /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plating, /area/ship/maintenance/starboard) @@ -7467,7 +7467,7 @@ /obj/structure/railing{ dir = 6 }, -/obj/effect/spawner/random/trash/grille_or_waste, +/obj/effect/spawner/random/trash/decal/grille_or_waste, /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plating, /area/ship/maintenance/port) @@ -7713,7 +7713,7 @@ /turf/open/floor/plasteel/patterned/grid, /area/ship/crew/dorm/dormthree) "Ti" = ( -/obj/effect/spawner/random/trash/grille_or_waste, +/obj/effect/spawner/random/trash/decal/grille_or_waste, /obj/effect/decal/cleanable/dirt/dust, /obj/structure/railing{ dir = 9 diff --git a/_maps/shuttles/nanotrasen/nanotrasen_ranger.dmm b/_maps/shuttles/nanotrasen/nanotrasen_ranger.dmm index 4b8cdaa4aedc..89570802ec22 100644 --- a/_maps/shuttles/nanotrasen/nanotrasen_ranger.dmm +++ b/_maps/shuttles/nanotrasen/nanotrasen_ranger.dmm @@ -1137,7 +1137,7 @@ }, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, /obj/machinery/firealarm/directional/east, -/obj/effect/spawner/random/waste/trash, +/obj/effect/spawner/random/trash/decal, /obj/effect/decal/cleanable/plasma, /turf/open/floor/plating, /area/ship/maintenance/port) @@ -4272,7 +4272,7 @@ id = "Ranger_Port_maint_shut"; req_ship_access = 1 }, -/obj/effect/spawner/random/waste/trash, +/obj/effect/spawner/random/trash/decal, /turf/open/floor/plating, /area/ship/maintenance/port) "Ih" = ( diff --git a/_maps/shuttles/pirate/pirate_tortuga.dmm b/_maps/shuttles/pirate/pirate_tortuga.dmm index 4f1c6fde2f3a..461845212e66 100644 --- a/_maps/shuttles/pirate/pirate_tortuga.dmm +++ b/_maps/shuttles/pirate/pirate_tortuga.dmm @@ -158,7 +158,7 @@ /turf/open/floor/plating, /area/ship/maintenance/starboard) "bR" = ( -/obj/effect/spawner/random/waste/trash, +/obj/effect/spawner/random/trash/decal, /turf/open/floor/plating/airless, /area/ship/maintenance) "cb" = ( @@ -555,7 +555,7 @@ /turf/open/floor/plasteel/tech/grid, /area/ship/security/armory) "gG" = ( -/obj/effect/spawner/random/waste/trash, +/obj/effect/spawner/random/trash/decal, /obj/effect/decal/cleanable/glass, /turf/open/floor/plating/airless, /area/ship/maintenance) @@ -931,7 +931,7 @@ }, /area/ship/maintenance) "kv" = ( -/obj/effect/spawner/random/waste/trash, +/obj/effect/spawner/random/trash/decal, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating/airless, /area/ship/maintenance) @@ -945,7 +945,7 @@ /obj/structure/cable/yellow{ icon_state = "1-2" }, -/obj/effect/spawner/random/trash/grille_or_waste, +/obj/effect/spawner/random/trash/decal/grille_or_waste, /turf/open/floor/plating/airless, /area/ship/maintenance) "la" = ( @@ -1025,7 +1025,7 @@ /turf/open/floor/mineral/plastitanium, /area/ship/security/armory) "mf" = ( -/obj/effect/spawner/random/trash/grille_or_waste, +/obj/effect/spawner/random/trash/decal/grille_or_waste, /obj/structure/cable/yellow{ icon_state = "5-9" }, @@ -1300,7 +1300,7 @@ /turf/open/floor/plasteel, /area/ship/crew/canteen) "oK" = ( -/obj/effect/spawner/random/trash/grille_or_waste, +/obj/effect/spawner/random/trash/decal/grille_or_waste, /obj/effect/spawner/random/maintenance, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating/airless, @@ -1394,7 +1394,7 @@ /turf/closed/wall, /area/ship/crew/canteen) "qi" = ( -/obj/effect/spawner/random/trash/grille_or_waste, +/obj/effect/spawner/random/trash/decal/grille_or_waste, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/crayon{ icon_state = "med" @@ -1939,7 +1939,7 @@ /turf/open/floor/plasteel, /area/ship/crew/canteen) "yc" = ( -/obj/effect/spawner/random/trash/grille_or_waste, +/obj/effect/spawner/random/trash/decal/grille_or_waste, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating/airless, /area/ship/maintenance) @@ -2075,7 +2075,7 @@ /turf/open/floor/plasteel, /area/ship/crew) "AG" = ( -/obj/effect/spawner/random/trash/grille_or_waste, +/obj/effect/spawner/random/trash/decal/grille_or_waste, /turf/open/floor/plating/airless, /area/ship/maintenance) "AQ" = ( @@ -2258,7 +2258,7 @@ /turf/open/floor/plating/airless, /area/ship/maintenance) "Eb" = ( -/obj/effect/spawner/random/waste/trash, +/obj/effect/spawner/random/trash/decal, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating/airless{ icon_state = "plating_rust" @@ -3001,7 +3001,7 @@ /obj/structure/cable/yellow{ icon_state = "4-8" }, -/obj/effect/spawner/random/trash/grille_or_waste, +/obj/effect/spawner/random/trash/decal/grille_or_waste, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating/airless{ icon_state = "plating_rust" @@ -3219,7 +3219,7 @@ /turf/open/floor/plasteel/white, /area/ship/crew/canteen) "Pb" = ( -/obj/effect/spawner/random/trash/grille_or_waste, +/obj/effect/spawner/random/trash/decal/grille_or_waste, /turf/open/floor/plating/airless{ icon_state = "platingdmg1" }, @@ -3361,7 +3361,7 @@ /obj/structure/cable/yellow{ icon_state = "4-8" }, -/obj/effect/spawner/random/trash/grille_or_waste, +/obj/effect/spawner/random/trash/decal/grille_or_waste, /turf/open/floor/plating/airless{ icon_state = "plating_rust" }, diff --git a/code/datums/mapgen/planetary/WasteGenerator.dm b/code/datums/mapgen/planetary/WasteGenerator.dm index f7cbb6a8fd83..2830bb6426f9 100644 --- a/code/datums/mapgen/planetary/WasteGenerator.dm +++ b/code/datums/mapgen/planetary/WasteGenerator.dm @@ -100,7 +100,7 @@ /obj/effect/spawner/random/waste/mechwreck/rare = 20, //decals and fluff structures - /obj/effect/spawner/random/waste/trash = 1800, + /obj/effect/spawner/random/trash/decal = 1800, /obj/effect/spawner/random/waste/radiation = 80, /obj/effect/spawner/random/waste/radiation/more_rads = 10, @@ -160,7 +160,7 @@ ) flora_spawn_list = list( - /obj/effect/spawner/random/waste/trash = 180, + /obj/effect/spawner/random/trash/decal = 180, /obj/effect/spawner/random/waste/radiation = 16, /obj/effect/spawner/random/waste/radiation/more_rads = 2, /obj/effect/spawner/random/waste/atmos_can = 36, @@ -172,7 +172,7 @@ /datum/biome/waste/crater/rad flora_spawn_list = list( /obj/structure/flora/ash/glowshroom = 180, - /obj/effect/spawner/random/waste/trash = 90, + /obj/effect/spawner/random/trash/decal = 90, /obj/effect/spawner/random/waste/radiation = 25, /obj/effect/spawner/random/waste/radiation/more_rads = 7, /obj/effect/spawner/random/waste/atmos_can = 7, @@ -186,7 +186,7 @@ /datum/biome/waste/clearing/mushroom flora_spawn_list = list( /obj/effect/spawner/random/waste/mechwreck = 100, - /obj/effect/spawner/random/waste/trash = 900, + /obj/effect/spawner/random/trash/decal = 900, /obj/effect/spawner/random/waste/radiation = 300, /obj/effect/spawner/random/waste/radiation/more_rads = 120, /obj/effect/spawner/random/waste/girder = 600, @@ -231,7 +231,7 @@ flora_spawn_list = list( //there are no plants here /obj/effect/spawner/random/waste/mechwreck = 200, /obj/effect/spawner/random/waste/mechwreck/rare = 50, - /obj/effect/spawner/random/waste/trash = 900, + /obj/effect/spawner/random/trash/decal = 900, /obj/effect/spawner/random/waste/radiation = 80, /obj/effect/spawner/random/waste/radiation/more_rads = 20, /obj/effect/spawner/random/waste/girder = 600, @@ -293,7 +293,7 @@ flora_spawn_list = list( /obj/effect/spawner/random/waste/mechwreck = 100, /obj/effect/spawner/random/waste/mechwreck/rare = 20, - /obj/effect/spawner/random/waste/trash = 1800, + /obj/effect/spawner/random/trash/decal = 1800, /obj/effect/spawner/random/waste/radiation = 80, /obj/effect/spawner/random/waste/radiation/more_rads = 10, /obj/effect/spawner/random/waste/girder = 600, @@ -352,7 +352,7 @@ /datum/biome/cave/waste/rad flora_spawn_list = list( - /obj/effect/spawner/random/waste/trash = 900, + /obj/effect/spawner/random/trash/decal = 900, /obj/effect/spawner/random/waste/radiation = 250, /obj/effect/spawner/random/waste/radiation/more_rads = 70, /obj/effect/spawner/random/waste/atmos_can = 50, @@ -389,7 +389,7 @@ flora_spawn_list = list( /obj/effect/spawner/random/waste/mechwreck = 40, /obj/effect/spawner/random/waste/mechwreck/rare = 10, - /obj/effect/spawner/random/waste/trash = 180, + /obj/effect/spawner/random/trash/decal = 180, /obj/effect/spawner/random/waste/radiation = 32, /obj/effect/spawner/random/waste/radiation/more_rads = 4, /obj/effect/spawner/random/waste/girder = 120, @@ -423,7 +423,7 @@ /datum/biome/cave/waste/metal/hivebot flora_spawn_list = list( - /obj/effect/spawner/random/waste/trash = 90, + /obj/effect/spawner/random/trash/decal = 90, /obj/effect/spawner/random/waste/radiation = 16, /obj/effect/spawner/random/waste/radiation/more_rads = 2, /obj/effect/spawner/random/waste/girder = 60, @@ -464,7 +464,7 @@ flora_spawn_list = list( /obj/effect/spawner/random/waste/mechwreck = 20, - /obj/effect/spawner/random/waste/trash = 90, + /obj/effect/spawner/random/trash/decal = 90, /obj/effect/spawner/random/waste/radiation = 16, /obj/structure/reagent_dispensers/fueltank = 10, /obj/structure/reagent_dispensers/watertank = 20, diff --git a/code/game/objects/effects/misc.dm b/code/game/objects/effects/misc.dm index 0de81fdbd9da..986ad10eb187 100644 --- a/code/game/objects/effects/misc.dm +++ b/code/game/objects/effects/misc.dm @@ -9,30 +9,6 @@ /obj/effect/beam/singularity_pull() return -/obj/effect/spawner - name = "object spawner" - -// Brief explanation: -// Rather then setting up and then deleting spawners, we block all atomlike setup -// and do the absolute bare minimum -// This is with the intent of optimizing mapload -/obj/effect/spawner/Initialize(mapload) - SHOULD_CALL_PARENT(FALSE) - if(flags_1 & INITIALIZED_1) - stack_trace("Warning: [src]([type]) initialized multiple times!") - flags_1 |= INITIALIZED_1 - - return INITIALIZE_HINT_QDEL - -/obj/effect/spawner/Destroy(force) - SHOULD_CALL_PARENT(FALSE) - moveToNullspace() - return QDEL_HINT_QUEUE - -/// Override to define loot blacklist behavior -/obj/effect/spawner/proc/can_spawn(atom/loot) - return TRUE - /obj/effect/list_container name = "list container" diff --git a/code/game/objects/effects/spawners/bundle.dm b/code/game/objects/effects/spawners/bundle.dm index 692b17f16e83..285e99eb35cd 100644 --- a/code/game/objects/effects/spawners/bundle.dm +++ b/code/game/objects/effects/spawners/bundle.dm @@ -1,134 +1,151 @@ -/obj/effect/spawner/bundle - name = "bundle spawner" +/obj/effect/spawner/costume + name = "costume spawner" icon = 'icons/hud/screen_gen.dmi' icon_state = "x2" - color = "#00FF00" + color = COLOR_VIBRANT_LIME var/list/items -/obj/effect/spawner/bundle/Initialize(mapload) +/obj/effect/spawner/costume/Initialize(mapload) . = ..() - if(items && items.len) + if(items?.len) for(var/path in items) new path(loc) -/obj/effect/spawner/bundle/costume/gladiator +/obj/effect/spawner/costume/gladiator name = "gladiator costume spawner" items = list( /obj/item/clothing/under/costume/gladiator, - /obj/item/clothing/head/helmet/gladiator) + /obj/item/clothing/head/helmet/gladiator + ) -/obj/effect/spawner/bundle/costume/madscientist +/obj/effect/spawner/costume/madscientist name = "mad scientist costume spawner" items = list( /obj/item/clothing/under/rank/command/captain/suit, /obj/item/clothing/head/flatcap, - /obj/item/clothing/suit/toggle/labcoat/mad) + /obj/item/clothing/suit/toggle/labcoat/mad + ) -/obj/effect/spawner/bundle/costume/elpresidente +/obj/effect/spawner/costume/elpresidente name = "el presidente costume spawner" items = list( /obj/item/clothing/under/rank/command/captain/suit, /obj/item/clothing/head/flatcap, /obj/item/clothing/mask/cigarette/cigar/havana, - /obj/item/clothing/shoes/jackboots) + /obj/item/clothing/shoes/jackboots + ) -/obj/effect/spawner/bundle/costume/nyangirl +/obj/effect/spawner/costume/nyangirl name = "nyangirl costume spawner" items = list( /obj/item/clothing/under/costume/schoolgirl, /obj/item/clothing/head/kitty, - /obj/item/clothing/glasses/blindfold) + /obj/item/clothing/glasses/blindfold + ) -/obj/effect/spawner/bundle/costume/maid +/obj/effect/spawner/costume/maid name = "maid costume spawner" items = list( /obj/item/clothing/under/dress/skirt, - /obj/effect/spawner/random/minor/beret_or_rabbitears, - /obj/item/clothing/glasses/blindfold) + /obj/effect/spawner/random/clothing/beret_or_rabbitears, + /obj/item/clothing/glasses/blindfold + ) -/obj/effect/spawner/bundle/costume/butler +/obj/effect/spawner/costume/butler name = "butler costume spawner" items = list( /obj/item/clothing/accessory/waistcoat, /obj/item/clothing/under/suit/black, - /obj/item/clothing/head/that) + /obj/item/clothing/head/that + ) -/obj/effect/spawner/bundle/costume/highlander +/obj/effect/spawner/costume/highlander name = "highlander costume spawner" items = list( /obj/item/clothing/under/costume/kilt, - /obj/item/clothing/head/beret) + /obj/item/clothing/head/beret + ) -/obj/effect/spawner/bundle/costume/prig +/obj/effect/spawner/costume/prig name = "prig costume spawner" items = list( /obj/item/clothing/accessory/waistcoat, - /obj/effect/spawner/random/minor/bowler_or_that, + /obj/effect/spawner/random/clothing/bowler_or_that, /obj/item/clothing/shoes/sneakers/black, /obj/item/cane, /obj/item/clothing/under/suit/sl, - /obj/item/clothing/mask/fakemoustache) + /obj/item/clothing/mask/fakemoustache + ) -/obj/effect/spawner/bundle/costume/plaguedoctor +/obj/effect/spawner/costume/plaguedoctor name = "plague doctor costume spawner" items = list( /obj/item/clothing/suit/bio_suit/plaguedoctorsuit, - /obj/item/clothing/mask/gas/plaguedoctor) + /obj/item/clothing/mask/gas/plaguedoctor + ) -/obj/effect/spawner/bundle/costume/nightowl +/obj/effect/spawner/costume/nightowl name = "night owl costume spawner" items = list( /obj/item/clothing/suit/toggle/owlwings, /obj/item/clothing/under/costume/owl, - /obj/item/clothing/mask/gas/owl_mask) + /obj/item/clothing/mask/gas/owl_mask + ) -/obj/effect/spawner/bundle/costume/waiter +/obj/effect/spawner/costume/waiter name = "waiter costume spawner" items = list( /obj/item/clothing/under/suit/waiter, - /obj/effect/spawner/random/minor/kittyears_or_rabbitears, - /obj/item/clothing/suit/apron) + /obj/effect/spawner/random/clothing/kittyears_or_rabbitears, + /obj/item/clothing/suit/apron + ) -/obj/effect/spawner/bundle/costume/pirate +/obj/effect/spawner/costume/pirate name = "pirate costume spawner" items = list( /obj/item/clothing/under/costume/pirate, /obj/item/clothing/suit/pirate, - /obj/effect/spawner/random/minor/pirate_or_bandana, - /obj/item/clothing/glasses/eyepatch) + /obj/effect/spawner/random/clothing/pirate_or_bandana, + /obj/item/clothing/glasses/eyepatch + ) -/obj/effect/spawner/bundle/costume/cutewitch +/obj/effect/spawner/costume/cutewitch name = "cute witch costume spawner" items = list( /obj/item/clothing/under/dress/sundress, - /obj/item/staff/broom) + /obj/item/staff/broom + ) -/obj/effect/spawner/bundle/costume/mafia +/obj/effect/spawner/costume/mafia name = "black mafia outfit spawner" items = list( /obj/item/clothing/head/fedora, /obj/item/clothing/under/suit/blacktwopiece, - /obj/item/clothing/shoes/laceup) + /obj/item/clothing/shoes/laceup + ) -/obj/effect/spawner/bundle/costume/mafia/white +/obj/effect/spawner/costume/mafia/white name = "white mafia outfit spawner" items = list( /obj/item/clothing/head/fedora/white, /obj/item/clothing/under/suit/white, - /obj/item/clothing/shoes/laceup) + /obj/item/clothing/shoes/laceup + ) -/obj/effect/spawner/bundle/costume/mafia/checkered +/obj/effect/spawner/costume/mafia/checkered name = "checkered mafia outfit spawner" items = list( /obj/item/clothing/head/fedora, /obj/item/clothing/under/suit/checkered, - /obj/item/clothing/shoes/laceup) + /obj/item/clothing/shoes/laceup + ) -/obj/effect/spawner/bundle/costume/mafia/beige +/obj/effect/spawner/costume/mafia/beige name = "beige mafia outfit spawner" items = list( /obj/item/clothing/head/fedora/beige, /obj/item/clothing/under/suit/beige, - /obj/item/clothing/shoes/laceup) + /obj/item/clothing/shoes/laceup + ) diff --git a/code/game/objects/effects/spawners/random.dm/ai_module.dm b/code/game/objects/effects/spawners/random.dm/ai_module.dm new file mode 100644 index 000000000000..7f5eed59e4a0 --- /dev/null +++ b/code/game/objects/effects/spawners/random.dm/ai_module.dm @@ -0,0 +1,41 @@ +/obj/effect/spawner/random/aimodule + name = "AI module spawner" + desc = "State laws human." + icon_state = "circuit" + spawn_loot_double = FALSE + spawn_loot_count = 3 + spawn_loot_split = TRUE + +/obj/effect/spawner/random/aimodule_harmless // These shouldn't allow the AI to start butchering people + name = "harmless AI module spawner" + loot = list( + /obj/item/aiModule/core/full/asimov, + /obj/item/aiModule/core/full/asimovpp, + /obj/item/aiModule/core/full/hippocratic, + /obj/item/aiModule/core/full/paladin_devotion, + /obj/item/aiModule/core/full/paladin + ) + +/obj/effect/spawner/random/aimodule_neutral // These shouldn't allow the AI to start butchering people without reason + name = "neutral AI module spawner" + loot = list( + /obj/item/aiModule/core/full/corp, + /obj/item/aiModule/core/full/maintain, + /obj/item/aiModule/core/full/drone, + /obj/item/aiModule/core/full/peacekeeper, + /obj/item/aiModule/core/full/reporter, + /obj/item/aiModule/core/full/robocop, + /obj/item/aiModule/core/full/liveandletlive, + /obj/item/aiModule/core/full/hulkamania + ) + +/obj/effect/spawner/random/aimodule_harmful // These will get the shuttle called + name = "harmful AI module spawner" + loot = list( + /obj/item/aiModule/core/full/antimov, + /obj/item/aiModule/core/full/balance, + /obj/item/aiModule/core/full/tyrant, + /obj/item/aiModule/core/full/thermurderdynamic, + /obj/item/aiModule/core/full/damaged, + /obj/item/aiModule/reset/purge + ) diff --git a/code/game/objects/effects/spawners/random.dm/anomaly.dm b/code/game/objects/effects/spawners/random.dm/anomaly.dm new file mode 100644 index 000000000000..aaa2661b91db --- /dev/null +++ b/code/game/objects/effects/spawners/random.dm/anomaly.dm @@ -0,0 +1,220 @@ +/obj/effect/spawner/random/anomaly + name = "random anomaly spawner" + icon_state = "anomaly" + loot = list( + /obj/effect/anomaly/bluespace/planetary, + /obj/effect/anomaly/flux/planetary, + /obj/effect/anomaly/grav/planetary, + /obj/effect/anomaly/hallucination/planetary, + /obj/effect/anomaly/pyro/planetary, + /obj/effect/anomaly/vortex/planetary, + /obj/effect/anomaly/grav/high/planetary, + /obj/effect/anomaly/heartbeat/planetary, + /obj/effect/anomaly/sparkler/planetary, + /obj/effect/anomaly/tvstatic/planetary, + /obj/effect/anomaly/veins/planetary, + /obj/effect/anomaly/plasmasoul/planetary, + /obj/effect/anomaly/phantom/planetary, + /obj/effect/anomaly/melter/planetary, + ) + +/obj/effect/spawner/random/anomaly/safe + name = "relatively safe anomaly spawner" + loot = list( + /obj/effect/anomaly/hallucination/planetary, + /obj/effect/anomaly/pyro/planetary, + /obj/effect/anomaly/sparkler/planetary, + /obj/effect/anomaly/veins/planetary, + /obj/effect/anomaly/phantom/planetary, + ) + +/obj/effect/spawner/random/anomaly/dangerous + name = "relatively dangerous anomaly spawner" + loot = list( + /obj/effect/anomaly/bluespace/planetary, + /obj/effect/anomaly/flux/planetary, + /obj/effect/anomaly/grav/planetary, + /obj/effect/anomaly/vortex/planetary, + /obj/effect/anomaly/grav/high/planetary, + /obj/effect/anomaly/heartbeat/planetary, + /obj/effect/anomaly/tvstatic/planetary, + /obj/effect/anomaly/plasmasoul/planetary, + /obj/effect/anomaly/melter/planetary, + ) + +/obj/effect/spawner/random/anomaly/big + name = "random big anomaly spawner" + icon_state = "big_anomaly" + loot = list( + /obj/effect/anomaly/bluespace/big/planetary, + /obj/effect/anomaly/flux/big/planetary, + /obj/effect/anomaly/grav/high/big/planetary, + /obj/effect/anomaly/pyro/big/planetary + + ) + +//handpicked lists relevant to the planets they're on +// /cave lists are made for spawning in cave biomes. Not every anomaly goes well there. We don't have enough anomalies to really populate them all though + +/obj/effect/spawner/random/anomaly/jungle + name = "Jungle Anomaly Spawner" + loot = list( + /obj/effect/anomaly/flux/planetary, + /obj/effect/anomaly/hallucination/planetary, + /obj/effect/anomaly/heartbeat/planetary, + /obj/effect/anomaly/tvstatic/planetary, + /obj/effect/anomaly/veins/planetary, + /obj/effect/anomaly/phantom/planetary, + ) + +/obj/effect/spawner/random/anomaly/jungle/cave + loot = list( + /obj/effect/anomaly/flux/planetary, + /obj/effect/anomaly/hallucination/planetary, + /obj/effect/anomaly/heartbeat/planetary, + /obj/effect/anomaly/tvstatic/planetary, + /obj/effect/anomaly/veins/planetary, + /obj/effect/anomaly/phantom/planetary, + ) + +//beaches don't currently have anomalies, but I don't see a reason why they couldn't have *some* + +/obj/effect/spawner/random/anomaly/beach + name = "Beach anomaly spawner" + loot = list( + /obj/effect/anomaly/hallucination/planetary, + /obj/effect/anomaly/sparkler/planetary, + /obj/effect/anomaly/veins/planetary, + /obj/effect/anomaly/phantom/planetary, + ) + +/obj/effect/spawner/random/anomaly/beach/cave + loot = list( + /obj/effect/anomaly/hallucination/planetary, + /obj/effect/anomaly/sparkler/planetary, + /obj/effect/anomaly/veins/planetary, + /obj/effect/anomaly/phantom/planetary, + ) + +/obj/effect/spawner/random/anomaly/sand + name = "Sand anomaly spawner" + loot = list( + /obj/effect/anomaly/bluespace/planetary, + /obj/effect/anomaly/flux/planetary, + /obj/effect/anomaly/sparkler/planetary, + /obj/effect/anomaly/tvstatic/planetary, + /obj/effect/anomaly/veins/planetary, + /obj/effect/anomaly/phantom/planetary, + /obj/effect/anomaly/melter/planetary, + ) + +/obj/effect/spawner/random/anomaly/sand/cave + loot = list( + /obj/effect/anomaly/flux/planetary, + /obj/effect/anomaly/pyro/planetary, + /obj/effect/anomaly/sparkler/planetary, + /obj/effect/anomaly/tvstatic/planetary, + /obj/effect/anomaly/veins/planetary, + /obj/effect/anomaly/phantom/planetary, + /obj/effect/anomaly/melter/planetary, + ) + +/obj/effect/spawner/random/anomaly/rock + name = "Rock anomaly spawner" + loot = list( + /obj/effect/anomaly/bluespace/planetary, + /obj/effect/anomaly/flux/planetary, + /obj/effect/anomaly/grav/planetary, + /obj/effect/anomaly/hallucination/planetary, + /obj/effect/anomaly/pyro/planetary, + /obj/effect/anomaly/vortex/planetary, + /obj/effect/anomaly/grav/high/planetary, + /obj/effect/anomaly/heartbeat/planetary, + /obj/effect/anomaly/sparkler/planetary, + /obj/effect/anomaly/tvstatic/planetary, + /obj/effect/anomaly/veins/planetary, + /obj/effect/anomaly/plasmasoul/planetary, + /obj/effect/anomaly/phantom/planetary, + /obj/effect/anomaly/melter/planetary, + ) + +/obj/effect/spawner/random/anomaly/rock/cave + loot = list( + /obj/effect/anomaly/flux/planetary, + /obj/effect/anomaly/hallucination/planetary, + /obj/effect/anomaly/pyro/planetary, + /obj/effect/anomaly/heartbeat/planetary, + /obj/effect/anomaly/sparkler/planetary, + /obj/effect/anomaly/veins/planetary, + /obj/effect/anomaly/plasmasoul/planetary, + /obj/effect/anomaly/phantom/planetary, + /obj/effect/anomaly/melter/planetary, + ) + +/obj/effect/spawner/random/anomaly/lava + name = "Lava anomaly spawner" + loot = list( + /obj/effect/anomaly/bluespace/planetary, + /obj/effect/anomaly/flux/planetary, + /obj/effect/anomaly/grav/planetary, + /obj/effect/anomaly/hallucination/planetary, + /obj/effect/anomaly/pyro/planetary, + /obj/effect/anomaly/vortex/planetary, + /obj/effect/anomaly/plasmasoul/planetary, + ) + +/obj/effect/spawner/random/anomaly/lava/cave + loot = list( + /obj/effect/anomaly/flux/planetary, + /obj/effect/anomaly/hallucination/planetary, + /obj/effect/anomaly/pyro/planetary, + /obj/effect/anomaly/plasmasoul/planetary, + ) + +/obj/effect/spawner/random/anomaly/ice + name = "Ice anomaly spawner" + loot = list( + /obj/effect/anomaly/bluespace/planetary, + /obj/effect/anomaly/grav/planetary, + /obj/effect/anomaly/hallucination/planetary, + /obj/effect/anomaly/vortex/planetary, + /obj/effect/anomaly/grav/high/planetary, + /obj/effect/anomaly/plasmasoul/planetary, + /obj/effect/anomaly/phantom/planetary, + ) + +/obj/effect/spawner/random/anomaly/ice/cave + loot = list( + /obj/effect/anomaly/hallucination/planetary, + /obj/effect/anomaly/grav/high/planetary, + /obj/effect/anomaly/plasmasoul/planetary, + /obj/effect/anomaly/phantom/planetary, + ) + +/obj/effect/spawner/random/anomaly/waste + name = "Waste anomaly spawner" + loot = list( + /obj/effect/anomaly/vortex/planetary, + /obj/effect/anomaly/heartbeat/planetary, + /obj/effect/anomaly/veins/planetary, + /obj/effect/anomaly/plasmasoul/planetary, + /obj/effect/anomaly/melter/planetary, + ) + +/obj/effect/spawner/random/anomaly/waste/cave + loot = list( + /obj/effect/anomaly/heartbeat/planetary, + /obj/effect/anomaly/veins/planetary, + /obj/effect/anomaly/plasmasoul/planetary, + /obj/effect/anomaly/melter/planetary, + ) + +/obj/effect/spawner/random/anomaly/storm + loot = list( + /obj/effect/anomaly/flux, + /obj/effect/anomaly/pyro, + /obj/effect/anomaly/sparkler, + /obj/effect/anomaly/veins, + /obj/effect/anomaly/phantom, + /obj/effect/anomaly/melter, + ) diff --git a/code/game/objects/effects/spawners/random.dm/armory.dm b/code/game/objects/effects/spawners/random.dm/armory.dm new file mode 100644 index 000000000000..c05529656e19 --- /dev/null +++ b/code/game/objects/effects/spawners/random.dm/armory.dm @@ -0,0 +1,27 @@ +/obj/effect/spawner/random/armory + name = "generic armory spawner" + spawn_loot_split = TRUE + spawn_loot_count = 3 + spawn_loot_split_pixel_offsets = 4 + + loot = list( + /obj/item/gun/ballistic/automatic/pistol/ringneck = 8, + /obj/item/gun/ballistic/shotgun/automatic/combat = 5, + /obj/item/gun/ballistic/automatic/pistol/deagle, + /obj/item/gun/ballistic/revolver/mateba + ) + +/obj/effect/spawner/random/armory_contraband/metastation + loot = list(/obj/item/gun/ballistic/automatic/pistol/ringneck = 5, + /obj/item/gun/ballistic/shotgun/automatic/combat = 5, + /obj/item/gun/ballistic/automatic/pistol/deagle, + /obj/item/storage/box/syndie_kit/throwing_weapons = 3, + /obj/item/gun/ballistic/revolver/mateba) + +/obj/effect/spawner/random/armory_contraband/donutstation + loot = list(/obj/item/grenade/clusterbuster/teargas = 5, + /obj/item/gun/ballistic/shotgun/automatic/combat = 5, + /obj/item/bikehorn/golden, + /obj/item/grenade/clusterbuster, + /obj/item/storage/box/syndie_kit/throwing_weapons = 3, + /obj/item/gun/ballistic/revolver/mateba) diff --git a/code/game/objects/effects/spawners/random.dm/boards.dm b/code/game/objects/effects/spawners/random.dm/boards.dm new file mode 100644 index 000000000000..4eefa4239058 --- /dev/null +++ b/code/game/objects/effects/spawners/random.dm/boards.dm @@ -0,0 +1,244 @@ +// Tech storage circuit board spawners + +/obj/effect/spawner/random/techstorage + name = "generic circuit board spawner" + icon_state = "circut" + spawn_loot_split = TRUE + spawn_all_loot = TRUE + +/obj/effect/spawner/random/techstorage/service + name = "service circuit board spawner" + loot = list( + /obj/item/circuitboard/computer/arcade/battle, + /obj/item/circuitboard/computer/arcade/orion_trail, + /obj/item/circuitboard/machine/autolathe, + /obj/item/circuitboard/computer/mining, + /obj/item/circuitboard/machine/ore_redemption, + /obj/item/circuitboard/machine/vending/mining_equipment, + /obj/item/circuitboard/machine/microwave, + /obj/item/circuitboard/machine/chem_dispenser/drinks, + /obj/item/circuitboard/machine/chem_dispenser/drinks/beer, + /obj/item/circuitboard/computer/slot_machine + ) + +/obj/effect/spawner/random/techstorage/rnd + name = "RnD circuit board spawner" + loot = list( + /obj/item/circuitboard/computer/aifixer, + /obj/item/circuitboard/machine/rdserver, + /obj/item/circuitboard/machine/mechfab, + /obj/item/circuitboard/machine/circuit_imprinter/department, + /obj/item/circuitboard/computer/teleporter, + /obj/item/circuitboard/machine/destructive_analyzer, + /obj/item/circuitboard/computer/rdconsole, + /obj/item/circuitboard/computer/nanite_chamber_control, + /obj/item/circuitboard/computer/nanite_cloud_controller, + /obj/item/circuitboard/machine/nanite_chamber, + /obj/item/circuitboard/machine/nanite_programmer, + /obj/item/circuitboard/machine/nanite_program_hub + ) + +/obj/effect/spawner/random/techstorage/security + name = "security circuit board spawner" + loot = list( + /obj/item/circuitboard/computer/secure_data, + /obj/item/circuitboard/computer/security, + /obj/item/circuitboard/computer/prisoner + ) + +/obj/effect/spawner/random/techstorage/engineering + name = "engineering circuit board spawner" + loot = list( + /obj/item/circuitboard/computer/atmos_alert, + /obj/item/circuitboard/computer/stationalert, + /obj/item/circuitboard/computer/powermonitor + ) + +/obj/effect/spawner/random/techstorage/tcomms + name = "tcomms circuit board spawner" + loot = list( + /obj/item/circuitboard/computer/message_monitor, + /obj/item/circuitboard/machine/telecomms/broadcaster, + /obj/item/circuitboard/machine/telecomms/bus, + /obj/item/circuitboard/machine/telecomms/server, + /obj/item/circuitboard/machine/telecomms/receiver, + /obj/item/circuitboard/machine/telecomms/processor, + /obj/item/circuitboard/machine/announcement_system, + /obj/item/circuitboard/computer/comm_server, + /obj/item/circuitboard/computer/comm_monitor + ) + +/obj/effect/spawner/random/techstorage/medical + name = "medical circuit board spawner" + loot = list( + /obj/item/circuitboard/machine/chem_dispenser, + /obj/item/circuitboard/computer/scan_consolenew, + /obj/item/circuitboard/computer/med_data, + /obj/item/circuitboard/machine/smoke_machine, + /obj/item/circuitboard/machine/chem_master, + /obj/item/circuitboard/machine/dnascanner, + /obj/item/circuitboard/computer/pandemic + ) + +/obj/effect/spawner/random/techstorage/ai_all + name = "secure AI circuit board spawner" + loot = list( + /obj/item/circuitboard/computer/aiupload, + /obj/item/circuitboard/computer/borgupload, + /obj/item/circuitboard/aicore + ) + +/obj/effect/spawner/random/techstorage/command + name = "secure command circuit board spawner" + loot = list( + /obj/item/circuitboard/computer/crew, + /obj/item/circuitboard/computer/communications, + /obj/item/circuitboard/computer/card + ) + +/obj/effect/spawner/random/techstorage/rnd_secure + name = "secure RnD circuit board spawner" + loot = list( + /obj/item/circuitboard/computer/mecha_control, + /obj/item/circuitboard/computer/apc_control, + /obj/item/circuitboard/computer/robotics + ) + +//random RND imprinter/protolathe board spawners. Do not use on maps without a good reason +/obj/effect/spawner/random/circut/protolathe + name = "random departmental protolathe" + icon_state = "circut" + loot = list( + /obj/item/circuitboard/machine/protolathe/department/cargo, + /obj/item/circuitboard/machine/protolathe/department/engineering, + /obj/item/circuitboard/machine/protolathe/department/service, + /obj/item/circuitboard/machine/protolathe/department/medical, + /obj/item/circuitboard/machine/protolathe/department/science, + /obj/item/circuitboard/machine/protolathe/department/security + ) + +/obj/effect/spawner/random/circut/imprinter + name = "random departmental circuit imprinter" + icon_state = "circut" + loot = list( + /obj/item/circuitboard/machine/circuit_imprinter/department/cargo, + /obj/item/circuitboard/machine/circuit_imprinter/department/engi, + /obj/item/circuitboard/machine/circuit_imprinter/department/civ, + /obj/item/circuitboard/machine/circuit_imprinter/department/med, + /obj/item/circuitboard/machine/circuit_imprinter/department/science, + /obj/item/circuitboard/machine/circuit_imprinter/department/sec + ) + +/obj/effect/spawner/random/circut/techfab + name = "random departmental techfab" + icon_state = "circut" + loot = list( + /obj/item/circuitboard/machine/techfab/department/service, + /obj/item/circuitboard/machine/techfab/department/cargo, + /obj/item/circuitboard/machine/techfab/department/engineering, + /obj/item/circuitboard/machine/techfab/department/service, + /obj/item/circuitboard/machine/techfab/department/medical, + /obj/item/circuitboard/machine/techfab/department/science, + /obj/item/circuitboard/machine/techfab/department/security + ) + +/obj/effect/spawner/random/rnd + name = "random RND spawner" + icon_state = "circut" + loot = list( + /obj/item/storage/box/rndmining, + /obj/item/storage/box/rndengi, + /obj/item/storage/box/rndsec, + /obj/item/storage/box/rndciv, + /obj/item/storage/box/rndmed + ) + +/obj/effect/spawner/random/circuit/machine/common + loot = list( + /obj/item/circuitboard/machine/autolathe = 5, + /obj/item/circuitboard/machine/biogenerator = 5, + /obj/item/circuitboard/machine/cell_charger = 5, + /obj/item/circuitboard/machine/chem_heater = 5, + /obj/item/circuitboard/machine/chem_master = 5, + /obj/item/circuitboard/machine/clonescanner = 5, + /obj/item/circuitboard/machine/cryo_tube = 5, + /obj/item/circuitboard/machine/cyborgrecharger = 5, + /obj/item/circuitboard/machine/deep_fryer = 5, + /obj/item/circuitboard/machine/experimentor = 5, + /obj/item/circuitboard/machine/holopad = 5, + /obj/item/circuitboard/machine/hydroponics = 5, + /obj/item/circuitboard/machine/limbgrower = 5, + /obj/item/circuitboard/machine/ltsrbt = 5, + /obj/item/circuitboard/machine/mech_recharger = 5, + /obj/item/circuitboard/machine/mechfab = 5, + /obj/item/circuitboard/machine/medical_kiosk = 5, + /obj/item/circuitboard/machine/medipen_refiller = 5, + /obj/item/circuitboard/machine/microwave = 5, + /obj/item/circuitboard/machine/monkey_recycler = 5, + /obj/item/circuitboard/machine/ore_redemption = 5, + /obj/item/circuitboard/machine/ore_silo = 5, + /obj/item/circuitboard/machine/reagentgrinder = 5, + /obj/item/circuitboard/machine/recharger = 5, + /obj/item/circuitboard/machine/seed_extractor = 5, + /obj/item/circuitboard/machine/selling_pad = 5, + /obj/item/circuitboard/machine/emitter = 5, + ) + +/obj/effect/spawner/random/circuit/machine/rare + loot = list( + /obj/item/circuitboard/aicore = 5, + /obj/item/circuitboard/machine/chem_dispenser = 5, + /obj/item/circuitboard/machine/circuit_imprinter = 5, + /obj/item/circuitboard/machine/protolathe = 5, + /obj/item/circuitboard/machine/clonepod/experimental = 5, + /obj/item/circuitboard/machine/rad_collector = 5, + /obj/item/circuitboard/machine/launchpad = 5, + ) + +/obj/effect/spawner/random/circuit/machine/mech + loot = list( + /obj/item/circuitboard/mecha/ripley/main = 100, + /obj/item/circuitboard/mecha/ripley/peripherals = 100, + /obj/item/circuitboard/mecha/honker/main = 5, + /obj/item/circuitboard/mecha/honker/peripherals = 5, + /obj/item/circuitboard/mecha/odysseus/main = 5, + /obj/item/circuitboard/mecha/odysseus/peripherals = 5, + /obj/item/circuitboard/mecha/gygax/main = 1, + /obj/item/circuitboard/mecha/gygax/peripherals = 1, + /obj/item/circuitboard/mecha/gygax/targeting = 1, + /obj/item/circuitboard/mecha/durand/main = 1, + /obj/item/circuitboard/mecha/durand/peripherals = 1, + /obj/item/circuitboard/mecha/durand/targeting = 1, + ) + +//COMPUTER +/obj/effect/spawner/random/circuit/computer/common + loot = list( + /obj/item/circuitboard/computer/aifixer = 5, + /obj/item/circuitboard/computer/arcade/amputation = 5, + /obj/item/circuitboard/computer/arcade/battle = 5, + /obj/item/circuitboard/computer/arcade/orion_trail = 5, + /obj/item/circuitboard/computer/atmos_alert = 5, + /obj/item/circuitboard/computer/card = 5, + /obj/item/circuitboard/computer/cloning = 5, + /obj/item/circuitboard/computer/communications = 5, + /obj/item/circuitboard/computer/launchpad_console = 5, + /obj/item/circuitboard/computer/mech_bay_power_console = 5, + /obj/item/circuitboard/computer/pandemic = 5, + /obj/item/circuitboard/computer/powermonitor/secret = 5, + /obj/item/circuitboard/computer/prototype_cloning = 5, + /obj/item/circuitboard/computer/stationalert = 5, + /obj/item/circuitboard/computer/xenobiology = 5, + /obj/item/circuitboard/computer/teleporter = 5, + /obj/item/circuitboard/computer/operating = 5, + /obj/item/circuitboard/computer/crew = 5, + /obj/item/circuitboard/computer/scan_consolenew = 5, + ) + +/obj/effect/spawner/random/circuit/computer/rare + loot = list( + /obj/item/circuitboard/computer/cargo = 5, + /obj/item/circuitboard/computer/communications = 5, + /obj/item/circuitboard/computer/shuttle/helm = 5, + /obj/item/circuitboard/computer/med_data = 5, + ) diff --git a/code/game/objects/effects/spawners/random.dm/bureaucracy.dm b/code/game/objects/effects/spawners/random.dm/bureaucracy.dm new file mode 100644 index 000000000000..b55c9dc7b364 --- /dev/null +++ b/code/game/objects/effects/spawners/random.dm/bureaucracy.dm @@ -0,0 +1,68 @@ +/obj/effect/spawner/random/bureaucracy + name = "bureaucracy loot spawner" + desc = "For the exotic art of paper shuffling." + +/obj/effect/spawner/random/bureaucracy/pen + name = "pen spawner" + icon_state = "pen" + loot = list( + /obj/item/pen = 30, + /obj/item/pen/blue = 5, + /obj/item/pen/red = 5, + /obj/item/flashlight/pen = 5, + /obj/item/pen/fourcolor = 2, + /obj/item/pen/fountain = 1, + ) + +/obj/effect/spawner/random/bureaucracy/stamp + name = "stamp spawner" + icon_state = "stamp" + loot = list( + /obj/item/stamp = 3, + /obj/item/stamp/denied = 1, + ) + +/obj/effect/spawner/random/bureaucracy/crayon + name = "crayon spawner" + icon_state = "crayon" + loot = list( + /obj/item/toy/crayon/red, + /obj/item/toy/crayon/orange, + /obj/item/toy/crayon/yellow, + /obj/item/toy/crayon/green, + /obj/item/toy/crayon/blue, + /obj/item/toy/crayon/purple, + /obj/item/toy/crayon/black, + /obj/item/toy/crayon/white, + ) + +/obj/effect/spawner/random/bureaucracy/paper + name = "paper spawner" + icon_state = "paper" + loot = list( + /obj/item/paper = 20, + /obj/item/paper/crumpled = 2, + /obj/item/paper/crumpled/bloody = 2, + /obj/item/paper/crumpled/muddy = 2, + /obj/item/paper/construction = 1, + /obj/item/paper/carbon = 1, + ) + +/obj/effect/spawner/random/bureaucracy/briefcase + name = "briefcase spawner" + icon_state = "briefcase" + loot = list( + /obj/item/storage/briefcase = 3, + /obj/item/storage/briefcase/lawyer = 1, + ) + +/obj/effect/spawner/random/bureaucracy/folder + name = "folder spawner" + icon_state = "folder" + loot = list( + /obj/item/folder/blue, + /obj/item/folder/red, + /obj/item/folder/yellow, + /obj/item/folder/white, + /obj/item/folder, + ) diff --git a/code/game/objects/effects/spawners/random.dm/clothing.dm b/code/game/objects/effects/spawners/random.dm/clothing.dm index 7732e3dea112..f571b3dc0687 100644 --- a/code/game/objects/effects/spawners/random.dm/clothing.dm +++ b/code/game/objects/effects/spawners/random.dm/clothing.dm @@ -1,17 +1,67 @@ +/obj/effect/spawner/random/clothing + name = "clothing loot spawner" + desc = "Time to look pretty." + icon_state = "hat" + /obj/effect/spawner/random/clothing/gloves name = "random gloves" desc = "These gloves are supposed to be a random color..." - icon = 'icons/obj/clothing/gloves.dmi' - icon_state = "random_gloves" + icon_state = "gloves" loot = list( - /obj/item/clothing/gloves/color/orange = 1, - /obj/item/clothing/gloves/color/red = 1, - /obj/item/clothing/gloves/color/blue = 1, - /obj/item/clothing/gloves/color/purple = 1, - /obj/item/clothing/gloves/color/green = 1, - /obj/item/clothing/gloves/color/grey = 1, - /obj/item/clothing/gloves/color/light_brown = 1, - /obj/item/clothing/gloves/color/brown = 1, - /obj/item/clothing/gloves/color/white = 1, - /obj/item/clothing/gloves/color/rainbow = 1, - ) + /obj/item/clothing/gloves/color/orange, + /obj/item/clothing/gloves/color/red, + /obj/item/clothing/gloves/color/blue, + /obj/item/clothing/gloves/color/purple, + /obj/item/clothing/gloves/color/green, + /obj/item/clothing/gloves/color/grey, + /obj/item/clothing/gloves/color/light_brown, + /obj/item/clothing/gloves/color/brown, + /obj/item/clothing/gloves/color/white, + /obj/item/clothing/gloves/color/rainbow + ) + +/obj/effect/spawner/random/costume + name = "random costume spawner" + icon_state = "costume" + loot_subtype_path = /obj/effect/spawner/costume + loot = list() + +/obj/effect/spawner/random/clothing/beret_or_rabbitears + name = "beret or rabbit ears spawner" + loot = list( + /obj/item/clothing/head/beret + ) + +/obj/effect/spawner/random/clothing/bowler_or_that + name = "bowler or top hat spawner" + loot = list( + /obj/item/clothing/head/that + ) + +/obj/effect/spawner/random/clothing/kittyears_or_rabbitears + name = "kitty ears or rabbit ears spawner" + loot = list( + /obj/item/clothing/head/kitty + ) + +/obj/effect/spawner/random/clothing/pirate_or_bandana + name = "pirate hat or bandana spawner" + loot = list( + /obj/item/clothing/head/pirate, + /obj/item/clothing/head/bandana + ) + +/obj/effect/spawner/random/clothing/twentyfive_percent_cyborg_mask + name = "25% cyborg mask spawner" + spawn_loot_chance = 25 + loot = list(/obj/item/clothing/mask/gas/cyborg) + +/obj/effect/spawner/random/clothing/mafia_outfit + name = "mafia outfit spawner" + icon_state = "costume" + loot = list( + /obj/effect/spawner/costume/mafia = 20, + /obj/effect/spawner/costume/mafia/white = 5, + /obj/effect/spawner/costume/mafia/checkered = 2, + /obj/effect/spawner/costume/mafia/beige = 5 + ) diff --git a/code/game/objects/effects/spawners/random.dm/decoration.dm b/code/game/objects/effects/spawners/random.dm/decoration.dm index a3bdc7abec5c..e7b3b5433dfa 100644 --- a/code/game/objects/effects/spawners/random.dm/decoration.dm +++ b/code/game/objects/effects/spawners/random.dm/decoration.dm @@ -14,3 +14,53 @@ var/obj/item/flashlight/glowstick = . glowstick.set_light_on(TRUE) + +/obj/effect/spawner/random/flora + name = "random flora spawner" + loot = list( + /obj/structure/flora/tree/chapel, + /obj/structure/flora/tree/pine, + /obj/structure/flora/tree/jungle/small, + /obj/structure/flora/tree/jungle, + /obj/structure/flora/ash/puce, + /obj/structure/flora/ash/fireblossom, + /obj/structure/flora/ash/fern, + /obj/structure/flora/ash/tall_shroom, + /obj/structure/flora/ash/stem_shroom, + /obj/structure/flora/ash/space/voidmelon, + /obj/structure/flora/ash/leaf_shroom, + /obj/structure/flora/junglebush/large, + /obj/structure/flora/junglebush/b, + /obj/structure/flora/junglebush/c, + /obj/structure/flora/ausbushes/fernybush, + /obj/structure/flora/ausbushes/genericbush, + /obj/structure/flora/ausbushes/grassybush, + /obj/structure/flora/ausbushes/leafybush, + /obj/structure/flora/ausbushes/palebush, + /obj/structure/flora/ausbushes/pointybush, + /obj/structure/flora/ausbushes/reedbush, + /obj/structure/flora/ausbushes/stalkybush, + /obj/structure/flora/ausbushes/sunnybush, + /obj/structure/flora/bush, + /obj/structure/flora/grass/jungle, + /obj/structure/flora/junglebush, + /obj/structure/flora/junglebush/b, + /obj/structure/flora/junglebush/c, + /obj/structure/flora/ash, + /obj/structure/flora/ash/cacti, + /obj/structure/flora/ash/cap_shroom, + /obj/structure/flora/ash/chilly, + /obj/structure/flora/tree/palm + ) + spawn_loot_count = 1 + +/obj/effect/spawner/random/flower + name = "random flower spawner" + loot = list( + /obj/structure/flora/ausbushes/brflowers, + /obj/structure/flora/ausbushes/ywflowers, + /obj/structure/flora/ausbushes/ppflowers, + /obj/structure/flora/ausbushes/fullgrass, + /obj/structure/flora/ausbushes/sparsegrass + ) + spawn_loot_count = 1 diff --git a/code/game/objects/effects/spawners/random.dm/engineering.dm b/code/game/objects/effects/spawners/random.dm/engineering.dm new file mode 100644 index 000000000000..81f264039feb --- /dev/null +++ b/code/game/objects/effects/spawners/random.dm/engineering.dm @@ -0,0 +1,138 @@ +/obj/effect/spawner/random/engineering + name = "engineering loot spawner" + desc = "All engineering related spawners go here" + icon_state = "toolbox" + +/obj/effect/spawner/random/engineering/tool + loot = list( + /obj/effect/spawner/random/engineering/tool/common = 120, + /obj/effect/spawner/random/engineering/tool/sydnie = 20, + /obj/effect/spawner/random/engineering/tool/adv = 5, + ) + +/obj/effect/spawner/random/engineering/tool/common + loot = list( + /obj/item/wrench/crescent = 1, + /obj/item/screwdriver = 1, + /obj/item/weldingtool = 1, + /obj/item/crowbar = 1, + /obj/item/wirecutters = 1, + /obj/item/multitool = 1, + ) + +/obj/effect/spawner/random/engineering/tool/sydnie + loot = list( + /obj/item/wrench/syndie = 1, + /obj/item/screwdriver/nuke = 1, + /obj/item/weldingtool/largetank = 1, + /obj/item/crowbar/syndie = 1, + /obj/item/wirecutters/syndie = 1, + /obj/item/multitool/syndie = 1, + ) + +/obj/effect/spawner/random/engineering/tool/adv + loot = list( + /obj/item/screwdriver/power = 1, + /obj/item/weldingtool/experimental = 1, + /obj/item/crowbar/power = 1, + ) + +/obj/effect/spawner/random/stockparts + name = "random good stock parts" + spawn_loot_count = 6 + loot = list( + /obj/item/stock_parts/capacitor/adv, + /obj/item/stock_parts/capacitor/quadratic, + /obj/item/stock_parts/capacitor/super, + /obj/item/stock_parts/cell/hyper, + /obj/item/stock_parts/cell/super, + /obj/item/stock_parts/cell/bluespace, + /obj/item/stock_parts/matter_bin/bluespace, + /obj/item/stock_parts/matter_bin/super, + /obj/item/stock_parts/matter_bin/adv, + /obj/item/stock_parts/micro_laser/ultra, + /obj/item/stock_parts/micro_laser/quadultra, + /obj/item/stock_parts/micro_laser/high, + /obj/item/stock_parts/scanning_module/triphasic, + /obj/item/stock_parts/scanning_module/phasic, + /obj/item/stock_parts/scanning_module/adv, + /obj/item/reagent_containers/glass/beaker/bluespace, + /obj/item/reagent_containers/glass/beaker/plastic, + /obj/item/reagent_containers/glass/beaker/large, + /obj/item/stock_parts/manipulator/nano, + /obj/item/stock_parts/manipulator/pico, + /obj/item/stock_parts/manipulator/femto + ) + +/obj/effect/spawner/random/materials + name = "random bulk materials" + spawn_loot_count = 2 + loot = list( + /obj/item/stack/sheet/plastic/fifty, + /obj/item/stack/sheet/bluespace_crystal/twenty, + /obj/item/stack/sheet/cardboard/fifty, + /obj/item/stack/sheet/glass/fifty, + /obj/item/stack/sheet/metal/fifty, + /obj/item/stack/sheet/plasteel/twenty, + /obj/item/stack/sheet/mineral/plasma/fifty, + /obj/item/stack/sheet/mineral/silver/fifty, + /obj/item/stack/sheet/mineral/titanium/fifty, + /obj/item/stack/sheet/mineral/uranium/fifty, + /obj/item/stack/sheet/mineral/wood/fifty, + /obj/item/stack/sheet/mineral/diamond/twenty, + /obj/item/stack/sheet/mineral/gold/fifty, + /obj/item/stack/cable_coil/red, + /obj/item/stack/rods/fifty + ) + +/obj/effect/spawner/random/stockparts + name = "random good stock parts" + spawn_loot_count = 5 + loot = list( + /obj/item/stock_parts/capacitor/adv, + /obj/item/stock_parts/capacitor/quadratic, + /obj/item/stock_parts/capacitor/super, + /obj/item/stock_parts/cell/hyper, + /obj/item/stock_parts/cell/super, + /obj/item/stock_parts/cell/bluespace, + /obj/item/stock_parts/matter_bin/bluespace, + /obj/item/stock_parts/matter_bin/super, + /obj/item/stock_parts/matter_bin/adv, + /obj/item/stock_parts/micro_laser/ultra, + /obj/item/stock_parts/micro_laser/quadultra, + /obj/item/stock_parts/micro_laser/high, + /obj/item/stock_parts/scanning_module/triphasic, + /obj/item/stock_parts/scanning_module/phasic, + /obj/item/stock_parts/scanning_module/adv, + /obj/item/reagent_containers/glass/beaker/bluespace, + /obj/item/reagent_containers/glass/beaker/plastic, + /obj/item/reagent_containers/glass/beaker/large, + /obj/item/stock_parts/manipulator/nano, + /obj/item/stock_parts/manipulator/pico, + /obj/item/stock_parts/manipulator/femto + ) + +/obj/effect/spawner/random/materials + name = "random materials" + spawn_loot_count = 3 + loot = list( + /obj/item/stack/sheet/plastic/fifty, + /obj/item/stack/sheet/plastic/five, + /obj/item/stack/sheet/bluespace_crystal/twenty, + /obj/item/stack/sheet/bluespace_crystal/five, + /obj/item/stack/sheet/cardboard/fifty, + /obj/item/stack/sheet/glass/fifty, + /obj/item/stack/sheet/metal/fifty, + /obj/item/stack/sheet/metal/twenty, + /obj/item/stack/sheet/plasteel/twenty, + /obj/item/stack/sheet/mineral/plasma/fifty, + /obj/item/stack/sheet/mineral/plasma/twenty, + /obj/item/stack/sheet/mineral/silver/fifty, + /obj/item/stack/sheet/mineral/titanium/twenty, + /obj/item/stack/sheet/mineral/uranium/twenty, + /obj/item/stack/sheet/mineral/wood/fifty, + /obj/item/stack/sheet/mineral/diamond/twenty, + /obj/item/stack/sheet/mineral/gold/fifty, + /obj/item/stack/cable_coil/red, + /obj/item/stack/rods/fifty + ) diff --git a/code/game/objects/effects/spawners/random.dm/entertainment.dm b/code/game/objects/effects/spawners/random.dm/entertainment.dm new file mode 100644 index 000000000000..8e51ddf384c0 --- /dev/null +++ b/code/game/objects/effects/spawners/random.dm/entertainment.dm @@ -0,0 +1,282 @@ +/obj/effect/spawner/random/entertainment + name = "entertainment loot spawner" + desc = "It's time to paaaaaarty!" + +/obj/effect/spawner/random/entertainment/arcade + name = "spawn random arcade machine" + desc = "Automagically transforms into a random arcade machine. If you see this while in a shift, please create a bug report." + icon_state = "arcade" + loot = list( + /obj/machinery/computer/arcade/orion_trail = 49, + /obj/machinery/computer/arcade/battle = 49, + /obj/machinery/computer/arcade/amputation = 2, + ) + +/obj/effect/spawner/random/entertainment/musical_instrument + name = "musical instrument spawner" + icon_state = "eguitar" + loot = list( + /obj/item/instrument/violin = 5, + /obj/item/instrument/banjo = 5, + /obj/item/instrument/guitar = 5, + /obj/item/instrument/eguitar = 5, + /obj/item/instrument/glockenspiel = 5, + /obj/item/instrument/accordion = 5, + /obj/item/instrument/trumpet = 5, + /obj/item/instrument/saxophone = 5, + /obj/item/instrument/trombone = 5, + /obj/item/instrument/recorder = 5, + /obj/item/instrument/harmonica = 5, + /obj/item/instrument/bikehorn = 2, + /obj/item/instrument/violin/golden = 2, + ) + +/obj/effect/spawner/random/entertainment/gambling + name = "gambling valuables spawner" + icon_state = "dice" + loot = list( + /obj/item/clothing/head/trapper = 3, + /obj/effect/spawner/random/entertainment/coin = 3, + /obj/effect/spawner/random/entertainment/money = 3, + /obj/item/dice/d6 = 3, + /obj/item/storage/box/syndie_kit/throwing_weapons = 1, + /obj/item/reagent_containers/food/drinks/bottle/vodka/badminka, + ) + +/obj/effect/spawner/random/entertainment/coin + name = "coin spawner" + icon_state = "coin" + loot = list( + /obj/item/coin/iron = 5, + /obj/item/coin/plastic = 5, + /obj/item/coin/silver = 4, + /obj/item/coin/plasma = 4, + /obj/item/coin/uranium = 3, + /obj/item/coin/titanium = 3, + /obj/item/coin/diamond = 2, + /obj/item/coin/twoheaded = 1, + /obj/item/coin/antagtoken = 1, + ) + +/obj/effect/spawner/random/entertainment/money_small + name = "small money spawner" + icon_state = "cash" + spawn_loot_count = 3 + spawn_loot_split = TRUE + loot = list( + /obj/item/spacecash/bundle/c1 = 5, + /obj/item/spacecash/bundle/c10 = 3, + /obj/item/spacecash/bundle/c20 = 2, + ) + +/obj/effect/spawner/random/entertainment/money + name = "money spawner" + icon_state = "cash" + spawn_loot_count = 3 + spawn_loot_split = TRUE + loot = list( + /obj/item/spacecash/bundle/c1 = 10, + /obj/item/spacecash/bundle/c10 = 5, + /obj/item/spacecash/bundle/c20 = 3, + /obj/item/spacecash/bundle/c50 = 2, + /obj/item/spacecash/bundle/c100 = 1, + ) + +/obj/effect/spawner/random/entertainment/money_medium + name = "money spawner" + icon_state = "cash" + loot = list( + /obj/item/spacecash/bundle/c100 = 25, + /obj/item/spacecash/bundle/c200 = 15, + /obj/item/spacecash/bundle/c50 = 10, + /obj/item/spacecash/bundle/c500 = 5, + /obj/item/spacecash/bundle/c1000 = 1, + ) + +/obj/effect/spawner/random/entertainment/money_large + name = "large money spawner" + icon_state = "cash" + spawn_loot_count = 5 + spawn_loot_split = TRUE + loot = list( + /obj/item/spacecash/bundle/c1 = 100, + /obj/item/spacecash/bundle/c10 = 80, + /obj/item/spacecash/bundle/c20 = 60, + /obj/item/spacecash/bundle/c50 = 40, + /obj/item/spacecash/bundle/c100 = 30, + /obj/item/spacecash/bundle/c200 = 20, + /obj/item/spacecash/bundle/c500 = 10, + /obj/item/spacecash/bundle/c1000 = 5, + /obj/item/spacecash/bundle/c10000 = 1, + ) + +/obj/effect/spawner/random/entertainment/drugs + name = "recreational drugs spawner" + icon_state = "pill" + loot = list( + /obj/item/reagent_containers/food/drinks/bottle/hooch = 50, + /obj/item/clothing/mask/cigarette/rollie/cannabis = 15, + /obj/item/reagent_containers/syringe = 15, + /obj/item/cigbutt/roach = 15, + /obj/item/clothing/mask/cigarette/rollie/mindbreaker = 5, + ) + +/obj/effect/spawner/random/entertainment/dice + name = "dice spawner" + icon_state = "dice_bag" + loot = list( + /obj/item/dice/d4, + /obj/item/dice/d6, + /obj/item/dice/d8, + /obj/item/dice/d10, + /obj/item/dice/d12, + /obj/item/dice/d20, + ) + +/obj/effect/spawner/random/entertainment/cigarette_pack + name = "cigarette pack spawner" + icon_state = "cigarettes" + loot = list( + /obj/item/storage/fancy/cigarettes = 3, + /obj/item/storage/fancy/cigarettes/dromedaryco = 3, + /obj/item/storage/fancy/cigarettes/cigpack_uplift = 3, + /obj/item/storage/fancy/cigarettes/cigpack_robust = 3, + /obj/item/storage/fancy/cigarettes/cigpack_carp = 3, + /obj/item/storage/fancy/cigarettes/cigpack_robustgold = 1, + /obj/item/storage/fancy/cigarettes/cigpack_midori = 1, + /obj/item/storage/fancy/cigarettes/cigpack_candy = 1, + ) + +/obj/effect/spawner/random/entertainment/cigarette + name = "cigarette spawner" + icon_state = "cigarettes" + loot = list( + /obj/item/clothing/mask/cigarette/space_cigarette = 3, + /obj/item/clothing/mask/cigarette/rollie/cannabis = 3, + /obj/item/clothing/mask/cigarette/rollie/nicotine = 3, + /obj/item/clothing/mask/cigarette/dromedary = 2, + /obj/item/clothing/mask/cigarette/uplift = 2, + /obj/item/clothing/mask/cigarette/robust = 2, + /obj/item/clothing/mask/cigarette/carp = 1, + /obj/item/clothing/mask/cigarette/robustgold = 1, + ) + +/obj/effect/spawner/random/entertainment/cigar + name = "cigar spawner" + icon_state = "cigarettes" + loot = list( + /obj/item/clothing/mask/cigarette/cigar = 3, + /obj/item/clothing/mask/cigarette/cigar/havana = 2, + /obj/item/clothing/mask/cigarette/cigar/cohiba = 1, + ) + +/obj/effect/spawner/random/entertainment/wallet_lighter + name = "lighter wallet spawner" + icon_state = "lighter" + loot = list( // these fit inside a wallet + /obj/item/match = 10, + /obj/item/lighter/greyscale = 10, + /obj/item/lighter = 1, + ) + +/obj/effect/spawner/random/entertainment/lighter + name = "lighter spawner" + icon_state = "lighter" + loot = list( + /obj/item/storage/box/matches = 10, + /obj/item/lighter/greyscale = 10, + /obj/item/lighter = 1, + ) + +/obj/effect/spawner/random/entertainment/wallet_storage + name = "wallet contents spawner" + icon_state = "wallet" + spawn_loot_count = 1 + loot = list( // random photos would go here. IF I HAD ONE. :'( + /obj/item/lipstick/random, + /obj/effect/spawner/random/food_or_drink/seed, + /obj/effect/spawner/random/medical/minor_healing, + /obj/effect/spawner/random/entertainment/coin, + /obj/effect/spawner/random/entertainment/dice, + /obj/effect/spawner/random/entertainment/cigarette, + /obj/effect/spawner/random/entertainment/wallet_lighter, + /obj/effect/spawner/random/bureaucracy/paper, + /obj/effect/spawner/random/bureaucracy/crayon, + /obj/effect/spawner/random/bureaucracy/pen, + /obj/effect/spawner/random/bureaucracy/stamp, + ) + +/obj/effect/spawner/random/entertainment/deck + name = "deck spawner" + icon_state = "deck" + loot = list( + /obj/item/toy/cards/deck = 5, + /obj/item/toy/cards/deck/kotahi = 2, + /obj/item/toy/cards/deck/tarot = 1, + ) + +/obj/effect/spawner/random/entertainment/toy_figure + name = "toy figure spawner" + icon_state = "toy" + loot_subtype_path = /obj/item/toy/figure + loot = list() + +/obj/effect/spawner/random/entertainment/toy + name = "toy spawner" + icon_state = "toy" + loot = list() + +/obj/effect/spawner/random/entertainment/toy/Initialize(mapload) + loot += GLOB.arcade_prize_pool + return ..() + +/obj/effect/spawner/random/entertainment/plushie + name = "plushie spawner" + icon_state = "plushie" + loot = list ( + /obj/item/toy/plush/beeplushie, + /obj/item/toy/plush/blahaj, + /obj/item/toy/plush/carpplushie, + /obj/item/toy/plush/flushed, + /obj/item/toy/plush/kari, + /obj/item/toy/plush/lizardplushie, + /obj/item/toy/plush/mora, + /obj/item/toy/plush/realgoat, + /obj/item/toy/plush/rilena, + /obj/item/toy/plush/sharai, + /obj/item/toy/plush/slimeplushie, + /obj/item/toy/plush/snakeplushie, + /obj/item/toy/plush/spider, + /obj/item/toy/plush/tali, + /obj/item/toy/plush/xader, + /obj/effect/spawner/random/entertainment/plushie/moth // fair chances + ) + +/obj/effect/spawner/random/entertainment/plushie/moth + loot = list ( + /obj/item/toy/plush/moth, + /obj/item/toy/plush/moth/monarch, + /obj/item/toy/plush/moth/luna, + /obj/item/toy/plush/moth/atlas, + /obj/item/toy/plush/moth/redish, + /obj/item/toy/plush/moth/royal, + /obj/item/toy/plush/moth/gothic, + /obj/item/toy/plush/moth/lovers, + /obj/item/toy/plush/moth/whitefly, + /obj/item/toy/plush/moth/punished, + /obj/item/toy/plush/moth/firewatch, + /obj/item/toy/plush/moth/deadhead, + /obj/item/toy/plush/moth/poison, + /obj/item/toy/plush/moth/ragged, + /obj/item/toy/plush/moth/snow, + /obj/item/toy/plush/moth/moonfly + ) + +/obj/effect/spawner/random/entertainment/colorful_grenades + name = "colorful/glitter grenades spawner" + loot = list( + /obj/item/grenade/chem_grenade/glitter/pink, + /obj/item/grenade/chem_grenade/glitter/blue, + /obj/item/grenade/chem_grenade/glitter/white, + /obj/item/grenade/chem_grenade/colorful + ) diff --git a/code/game/objects/effects/spawners/random.dm/exotic.dm b/code/game/objects/effects/spawners/random.dm/exotic.dm new file mode 100644 index 000000000000..f453c86614d0 --- /dev/null +++ b/code/game/objects/effects/spawners/random.dm/exotic.dm @@ -0,0 +1,53 @@ +/obj/effect/spawner/random/exotic + name = "exotic spawner" + desc = "Super duper rare stuff." + +/obj/effect/spawner/random/exotic/ripley + name = "25% exosuit 75% wreckage ripley spawner" + loot = list( + /obj/mecha/working/ripley/mining = 1, + /obj/structure/mecha_wreckage/ripley = 5 + ) + +/obj/effect/spawner/random/exotic/prison_contraband + name = "prison contraband loot spawner" + icon_state = "prisoner" + loot = list( + /obj/item/clothing/mask/cigarette/space_cigarette = 4, + /obj/item/clothing/mask/cigarette/robust = 2, + /obj/item/clothing/mask/cigarette/carp = 3, + /obj/item/clothing/mask/cigarette/uplift = 2, + /obj/item/clothing/mask/cigarette/dromedary = 3, + /obj/item/clothing/mask/cigarette/robustgold = 1, + /obj/item/storage/fancy/cigarettes/cigpack_uplift = 3, + /obj/item/storage/fancy/cigarettes = 3, + /obj/item/clothing/mask/cigarette/rollie/cannabis = 4, + /obj/item/toy/crayon/spraycan = 2, + /obj/item/crowbar = 1, + /obj/item/assembly/flash/handheld = 1, + /obj/item/restraints/handcuffs/cable/zipties = 1, + /obj/item/restraints/handcuffs = 1, + /obj/item/radio = 1, + /obj/item/lighter = 3, + /obj/item/storage/box/matches = 3, + /obj/item/reagent_containers/syringe/contraband/space_drugs = 1, + /obj/item/reagent_containers/syringe/contraband/krokodil = 1, + /obj/item/reagent_containers/syringe/contraband/crank = 1, + /obj/item/reagent_containers/syringe/contraband/methamphetamine = 1, + /obj/item/reagent_containers/syringe/contraband/bath_salts = 1, + /obj/item/reagent_containers/syringe/contraband/fentanyl = 1, + /obj/item/reagent_containers/syringe/contraband/morphine = 1, + /obj/item/storage/pill_bottle/happy = 1, + /obj/item/storage/pill_bottle/lsd = 1, + /obj/item/storage/pill_bottle/psicodine = 1, + /obj/item/reagent_containers/food/drinks/beer = 4, + /obj/item/reagent_containers/food/drinks/bottle/whiskey = 1, + /obj/item/paper/fluff/jobs/prisoner/letter = 1, + /obj/item/grenade/smokebomb = 1, + /obj/item/flashlight/seclite = 1, + /obj/item/melee/knife/shiv = 4, + /obj/item/melee/knife/shiv/carrot = 1, + /obj/item/melee/knife/kitchen = 1, + /obj/item/storage/wallet/random = 1, + /obj/item/pda = 1 + ) diff --git a/code/game/objects/effects/spawners/random.dm/food.dm b/code/game/objects/effects/spawners/random.dm/food.dm deleted file mode 100644 index 51335d4bf5e6..000000000000 --- a/code/game/objects/effects/spawners/random.dm/food.dm +++ /dev/null @@ -1,29 +0,0 @@ -/obj/effect/spawner/random/food_or_drink - name = "food or drink loot spawner" - desc = "Nom nom nom" - -/obj/effect/spawner/random/food_or_drink/ration - icon_state = "pizzabox" - loot = list ( - /obj/item/storage/ration/vegan_chili = 5, - /obj/item/storage/ration/shredded_beef = 5, - /obj/item/storage/ration/pork_spaghetti = 5, - /obj/item/storage/ration/fried_fish = 5, - /obj/item/storage/ration/beef_strips = 5, - /obj/item/storage/ration/chili_macaroni = 5, - /obj/item/storage/ration/chicken_wings_hot_sauce = 5, - /obj/item/storage/ration/fish_stew = 5, - /obj/item/storage/ration/lemon_pepper_chicken = 5, - /obj/item/storage/ration/sausage_peppers_onions = 5, - /obj/item/storage/ration/pork_dumplings_chili_sauce = 5, - /obj/item/storage/ration/battered_fish_sticks = 5, - /obj/item/storage/ration/assorted_salted_offal = 5, - /obj/item/storage/ration/maple_pork_sausage_patty = 5, - /obj/item/storage/ration/pepper_jack_beef_patty = 5, - /obj/item/storage/ration/beef_goulash = 5, - /obj/item/storage/ration/pepperoni_pizza_slice = 5, - /obj/item/storage/ration/blackened_calamari = 5, - /obj/item/storage/ration/elbow_macaroni = 5, - /obj/item/storage/ration/cheese_pizza_slice = 5, - /obj/item/storage/ration/crayons = 2 // :) - ) diff --git a/code/game/objects/effects/spawners/random.dm/food_or_drink.dm b/code/game/objects/effects/spawners/random.dm/food_or_drink.dm new file mode 100644 index 000000000000..d32f4a5f2e17 --- /dev/null +++ b/code/game/objects/effects/spawners/random.dm/food_or_drink.dm @@ -0,0 +1,287 @@ +/obj/effect/spawner/random/food_or_drink + name = "food or drink loot spawner" + desc = "Nom nom nom" + +/obj/effect/spawner/random/food_or_drink/donkpockets + name = "donk pocket box spawner" + icon_state = "donkpocket" + spawn_loot_double = FALSE + + loot = list( + /obj/item/storage/box/donkpockets/donkpocketspicy = 1, + /obj/item/storage/box/donkpockets/donkpocketteriyaki = 1, + /obj/item/storage/box/donkpockets/donkpocketpizza = 1, + /obj/item/storage/box/donkpockets/donkpocketberry = 1, + /obj/item/storage/box/donkpockets/donkpockethonk = 1, + ) + +/obj/effect/spawner/random/food_or_drink/ration + icon_state = "pizzabox" + loot = list ( + /obj/item/storage/ration/vegan_chili = 5, + /obj/item/storage/ration/shredded_beef = 5, + /obj/item/storage/ration/pork_spaghetti = 5, + /obj/item/storage/ration/fried_fish = 5, + /obj/item/storage/ration/beef_strips = 5, + /obj/item/storage/ration/chili_macaroni = 5, + /obj/item/storage/ration/chicken_wings_hot_sauce = 5, + /obj/item/storage/ration/fish_stew = 5, + /obj/item/storage/ration/lemon_pepper_chicken = 5, + /obj/item/storage/ration/sausage_peppers_onions = 5, + /obj/item/storage/ration/pork_dumplings_chili_sauce = 5, + /obj/item/storage/ration/battered_fish_sticks = 5, + /obj/item/storage/ration/assorted_salted_offal = 5, + /obj/item/storage/ration/maple_pork_sausage_patty = 5, + /obj/item/storage/ration/pepper_jack_beef_patty = 5, + /obj/item/storage/ration/beef_goulash = 5, + /obj/item/storage/ration/pepperoni_pizza_slice = 5, + /obj/item/storage/ration/blackened_calamari = 5, + /obj/item/storage/ration/elbow_macaroni = 5, + /obj/item/storage/ration/cheese_pizza_slice = 5, + /obj/item/storage/ration/crayons = 2 // :) + ) + +/obj/effect/spawner/random/food_or_drink/donut + name = "random donut" //donut :) + icon_state = "pizzabox" + spawn_loot_count = 1 + loot = list( + /obj/item/reagent_containers/food/snacks/donut/apple = 1, + /obj/item/reagent_containers/food/snacks/donut/berry = 1, + /obj/item/reagent_containers/food/snacks/donut/caramel = 1, + /obj/item/reagent_containers/food/snacks/donut/choco = 1, + /obj/item/reagent_containers/food/snacks/donut/laugh = 1, + /obj/item/reagent_containers/food/snacks/donut/matcha = 1, + /obj/item/reagent_containers/food/snacks/donut/meat = 1, + /obj/item/reagent_containers/food/snacks/donut/plain = 1, + /obj/item/reagent_containers/food/snacks/donut/trumpet = 1, + /obj/item/reagent_containers/food/snacks/donut/blumpkin = 1, + /obj/item/reagent_containers/food/snacks/donut/bungo = 1, + /obj/item/reagent_containers/food/snacks/donut/chaos = 1, + ) + +/obj/effect/spawner/random/food_or_drink/donut/jelly + name = "random jelly donut" + spawn_loot_count = 1 + loot = list( + /obj/item/reagent_containers/food/snacks/donut/jelly/berry = 1, + /obj/item/reagent_containers/food/snacks/donut/jelly/apple = 1, + /obj/item/reagent_containers/food/snacks/donut/jelly/blumpkin = 1, + /obj/item/reagent_containers/food/snacks/donut/jelly/bungo = 1, + /obj/item/reagent_containers/food/snacks/donut/jelly/caramel = 1, + /obj/item/reagent_containers/food/snacks/donut/jelly/choco = 1, + /obj/item/reagent_containers/food/snacks/donut/jelly/laugh = 1, + /obj/item/reagent_containers/food/snacks/donut/jelly/matcha = 1, + /obj/item/reagent_containers/food/snacks/donut/jelly/plain = 1, + /obj/item/reagent_containers/food/snacks/donut/jelly/trumpet = 1, + ) + +/obj/effect/spawner/random/food_or_drink/donut/slimejelly + name = "random slimejelly donut" + spawn_loot_count = 1 + loot = list( + /obj/item/reagent_containers/food/snacks/donut/jelly/slimejelly/apple = 1, + /obj/item/reagent_containers/food/snacks/donut/jelly/slimejelly/berry = 1, + /obj/item/reagent_containers/food/snacks/donut/jelly/slimejelly/blumpkin = 1, + /obj/item/reagent_containers/food/snacks/donut/jelly/slimejelly/bungo = 1, + /obj/item/reagent_containers/food/snacks/donut/jelly/slimejelly/caramel = 1, + /obj/item/reagent_containers/food/snacks/donut/jelly/slimejelly/choco = 1, + /obj/item/reagent_containers/food/snacks/donut/jelly/slimejelly/laugh = 1, + /obj/item/reagent_containers/food/snacks/donut/jelly/slimejelly/matcha = 1, + /obj/item/reagent_containers/food/snacks/donut/jelly/slimejelly/plain = 1, + /obj/item/reagent_containers/food/snacks/donut/jelly/slimejelly/trumpet = 1, + ) + +/obj/effect/spawner/random/food_or_drink/three_course_meal + name = "three course meal spawner" + spawn_loot_count = 3 + spawn_loot_double = FALSE + var/soups = list( + /obj/item/reagent_containers/food/snacks/soup/beet, + /obj/item/reagent_containers/food/snacks/soup/sweetpotato, + /obj/item/reagent_containers/food/snacks/soup/stew, + /obj/item/reagent_containers/food/snacks/soup/hotchili, + /obj/item/reagent_containers/food/snacks/soup/nettle, + /obj/item/reagent_containers/food/snacks/soup/meatball) + var/salads = list( + /obj/item/reagent_containers/food/snacks/salad/herbsalad, + /obj/item/reagent_containers/food/snacks/salad/validsalad, + /obj/item/reagent_containers/food/snacks/salad/fruit, + /obj/item/reagent_containers/food/snacks/salad/jungle, + /obj/item/reagent_containers/food/snacks/salad/aesirsalad) + var/mains = list( + /obj/item/reagent_containers/food/snacks/bearsteak, + /obj/item/reagent_containers/food/snacks/enchiladas, + /obj/item/reagent_containers/food/snacks/stewedsoymeat, + /obj/item/reagent_containers/food/snacks/burger/bigbite, + /obj/item/reagent_containers/food/snacks/burger/superbite, + /obj/item/reagent_containers/food/snacks/burger/fivealarm) + +/obj/effect/spawner/random/food_or_drink/three_course_meal/Initialize(mapload) + loot = list(pick(soups) = 1,pick(salads) = 1,pick(mains) = 1) + . = ..() + +/obj/effect/spawner/random/food_or_drink/garden + name = "lush garden seeder" + spawn_loot_count = 3 + loot = list( + /obj/item/reagent_containers/food/snacks/grown/ambrosia/deus = 1, + /obj/item/reagent_containers/food/snacks/grown/berries/death/stealth = 2, + /obj/item/reagent_containers/food/snacks/grown/citrus/orange_3d = 1, + /obj/item/reagent_containers/food/snacks/grown/trumpet = 1, + /obj/item/reagent_containers/food/snacks/grown/bungofruit = 1, + /obj/item/seeds/random = 1, + /obj/item/grown/log/bamboo = 2, + /obj/item/reagent_containers/food/snacks/grown/ambrosia/vulgaris = 2, + /obj/item/reagent_containers/food/snacks/grown/berries/poison/stealth = 5, + /obj/item/reagent_containers/food/snacks/grown/citrus/lemon = 2, + /obj/item/reagent_containers/food/snacks/grown/citrus/lime = 2, + /obj/item/reagent_containers/food/snacks/grown/vanillapod = 2, + /obj/item/reagent_containers/food/snacks/grown/moonflower = 2, + /obj/item/reagent_containers/food/snacks/grown/cocoapod = 2, + /obj/item/reagent_containers/food/snacks/grown/pineapple = 2, + /obj/item/reagent_containers/food/snacks/grown/poppy/lily = 2, + /obj/item/reagent_containers/food/snacks/grown/poppy/geranium = 2, + /obj/item/reagent_containers/food/snacks/grown/sugarcane = 2, + /obj/item/reagent_containers/food/snacks/grown/tea = 2, + /obj/item/reagent_containers/food/snacks/grown/tobacco = 2, + /obj/item/reagent_containers/food/snacks/grown/watermelon = 4, + /obj/item/grown/sunflower = 4, + /obj/item/reagent_containers/food/snacks/grown/banana = 4, + /obj/item/reagent_containers/food/snacks/grown/apple = 4, + /obj/item/reagent_containers/food/snacks/grown/berries = 5, + /obj/item/reagent_containers/food/snacks/grown/cherries = 4, + /obj/item/reagent_containers/food/snacks/grown/citrus/orange = 4, + /obj/item/reagent_containers/food/snacks/grown/garlic = 4, + /obj/item/reagent_containers/food/snacks/grown/grapes = 4, + /obj/item/reagent_containers/food/snacks/grown/grass = 5, + /obj/item/reagent_containers/food/snacks/grown/pumpkin = 4, + /obj/item/reagent_containers/food/snacks/grown/rainbow_flower = 4, + /obj/item/reagent_containers/food/snacks/grown/wheat = 4, + /obj/item/reagent_containers/food/snacks/grown/parsnip = 4, + /obj/item/reagent_containers/food/snacks/grown/peas = 4, + /obj/item/reagent_containers/food/snacks/grown/rice = 4, + /obj/item/reagent_containers/food/snacks/grown/soybeans = 4, + /obj/item/reagent_containers/food/snacks/grown/tomato = 4, + /obj/item/reagent_containers/food/snacks/grown/cabbage = 4, + /obj/item/reagent_containers/food/snacks/grown/onion = 4, + /obj/item/reagent_containers/food/snacks/grown/carrot = 4) + +/obj/effect/spawner/random/food_or_drink/garden/arid + name = "arid garden seeder" + loot = list( + /obj/item/reagent_containers/food/snacks/grown/ghost_chili = 1, + /obj/item/reagent_containers/food/snacks/grown/nettle = 1, + /obj/item/grown/cotton/durathread = 1, + /obj/item/seeds/random = 1, + /obj/item/reagent_containers/food/snacks/grown/redbeet = 1, + /obj/item/reagent_containers/food/snacks/grown/aloe = 2, + /obj/item/grown/cotton = 2, + /obj/item/reagent_containers/food/snacks/grown/mushroom/angel = 2, + /obj/item/reagent_containers/food/snacks/grown/chili = 2, + /obj/item/reagent_containers/food/snacks/grown/whitebeet = 5, + /obj/item/reagent_containers/food/snacks/grown/potato = 4, + /obj/item/reagent_containers/food/snacks/grown/potato/sweet = 4, + /obj/item/reagent_containers/food/snacks/grown/mushroom/chanterelle = 4, + /obj/item/reagent_containers/food/snacks/grown/mushroom/plumphelmet = 4, + /obj/item/reagent_containers/food/snacks/grown/corn = 4 + ) + +/obj/effect/spawner/random/food_or_drink/garden/cold + name = "frigid garden seeder" + loot = list( + /obj/item/reagent_containers/food/snacks/grown/bluecherries = 1, + /obj/item/reagent_containers/food/snacks/grown/galaxythistle = 1, + /obj/item/reagent_containers/food/snacks/grown/berries/death/stealth = 1, + /obj/item/seeds/random = 1, + /obj/item/reagent_containers/food/snacks/grown/poppy = 2, + /obj/item/reagent_containers/food/snacks/grown/tomato/blue = 2, + /obj/item/reagent_containers/food/snacks/grown/berries/poison/stealth = 2, + /obj/item/reagent_containers/food/snacks/grown/berries = 4, + /obj/item/reagent_containers/food/snacks/grown/mushroom/chanterelle = 4, + /obj/item/reagent_containers/food/snacks/grown/oat = 4, + /obj/item/reagent_containers/food/snacks/grown/grapes/green = 4, + /obj/item/reagent_containers/food/snacks/grown/grass = 4, + /obj/item/reagent_containers/food/snacks/grown/harebell = 5, + /obj/item/seeds/starthistle = 5 + ) + +/obj/effect/spawner/random/food_or_drink/garden/sick + name = "sickly garden seeder" + loot = list( + /obj/item/reagent_containers/food/snacks/grown/cannabis/rainbow = 1, + /obj/item/reagent_containers/food/snacks/grown/cannabis/death = 1, + /obj/item/seeds/replicapod = 1, + /obj/item/reagent_containers/food/snacks/grown/mushroom/angel = 1, + /obj/item/reagent_containers/food/snacks/grown/mushroom/libertycap = 2, + /obj/item/seeds/tower/steel = 2, + /obj/item/reagent_containers/food/snacks/grown/cannabis = 2, + /obj/item/seeds/random = 2, + /obj/item/reagent_containers/food/snacks/grown/mushroom/jupitercup = 2, + /obj/item/reagent_containers/food/snacks/grown/cherrybulbs = 4, + /obj/item/reagent_containers/food/snacks/grown/mushroom/amanita = 4, + /obj/item/reagent_containers/food/snacks/grown/mushroom/libertycap = 4, + /obj/item/reagent_containers/food/snacks/grown/mushroom/reishi = 4, + /obj/item/reagent_containers/food/snacks/grown/berries/glow = 4 + ) + +/obj/effect/spawner/random/food_or_drink/garden/seaweed + name = "seaweed patch seeder" + loot = list( + /obj/item/reagent_containers/food/snacks/grown/seaweed + ) + +/obj/effect/spawner/random/food_or_drink/seed + name = "GO FORTH AND CULTIVATE" + icon_state = "seed"//sneed + loot = list( + /obj/item/seeds/aloe, + /obj/item/seeds/ambrosia, + /obj/item/seeds/apple, + /obj/item/seeds/cotton, + /obj/item/seeds/banana, + /obj/item/seeds/berry, + /obj/item/seeds/cabbage, + /obj/item/seeds/carrot, + /obj/item/seeds/cherry, + /obj/item/seeds/chanter, + /obj/item/seeds/chili, + /obj/item/seeds/cocoapod, + /obj/item/seeds/coffee, + /obj/item/seeds/corn, + /obj/item/seeds/eggplant, + /obj/item/seeds/garlic, + /obj/item/seeds/grape, + /obj/item/seeds/grass, + /obj/item/seeds/lemon, + /obj/item/seeds/lime, + /obj/item/seeds/onion, + /obj/item/seeds/orange, + /obj/item/seeds/peas, + /obj/item/seeds/pineapple, + /obj/item/seeds/potato, + /obj/item/seeds/poppy, + /obj/item/seeds/pumpkin, + /obj/item/seeds/wheat/rice, + /obj/item/seeds/soya, + /obj/item/seeds/sugarcane, + /obj/item/seeds/sunflower, + /obj/item/seeds/tea, + /obj/item/seeds/tobacco, + /obj/item/seeds/tomato, + /obj/item/seeds/tower, + /obj/item/seeds/watermelon, + /obj/item/seeds/wheat, + /obj/item/seeds/whitebeet, + /obj/item/seeds/amanita, + /obj/item/seeds/glowshroom, + /obj/item/seeds/liberty, + /obj/item/seeds/nettle, + /obj/item/seeds/plump, + /obj/item/seeds/reishi, + /obj/item/seeds/cannabis, + /obj/item/seeds/starthistle, + /obj/item/seeds/cherry/bomb, + /obj/item/seeds/berry/glow, + /obj/item/seeds/sunflower/moonflower + ) diff --git a/code/game/objects/effects/spawners/random.dm/medical.dm b/code/game/objects/effects/spawners/random.dm/medical.dm new file mode 100644 index 000000000000..2e720921308f --- /dev/null +++ b/code/game/objects/effects/spawners/random.dm/medical.dm @@ -0,0 +1,129 @@ +/obj/effect/spawner/random/medical + name = "medical loot spawner" + desc = "Doc, gimmie something good." + +/obj/effect/spawner/random/medical/minor_healing + name = "minor healing spawner" + icon_state = "gauze" + loot = list( + /obj/item/stack/medical/suture, + /obj/item/stack/medical/mesh, + /obj/item/stack/medical/gauze, + ) + +/obj/effect/spawner/random/medical/organs + name = "ayylien organ spawner" + loot = list( + /obj/item/organ/heart/gland/electric = 3, + /obj/item/organ/heart/gland/trauma = 4, + /obj/item/organ/heart/gland/egg = 7, + /obj/item/organ/heart/gland/chem = 5, + /obj/item/organ/heart/gland/mindshock = 5, + /obj/item/organ/heart/gland/plasma = 7, + /obj/item/organ/heart/gland/transform = 5, + /obj/item/organ/heart/gland/slime = 4, + /obj/item/organ/heart/gland/spiderman = 5, + /obj/item/organ/heart/gland/ventcrawling = 1, + /obj/item/organ/body_egg/alien_embryo = 1, + /obj/item/organ/regenerative_core = 2) + spawn_loot_count = 3 + +/obj/effect/spawner/random/medical/memeorgans + name = "meme organ spawner" + loot = list( + /obj/item/organ/ears/penguin, + /obj/item/organ/ears/cat, + /obj/item/organ/eyes/compound, + /obj/item/organ/eyes/snail, + /obj/item/organ/tongue/bone, + /obj/item/organ/tongue/fly, + /obj/item/organ/tongue/snail, + /obj/item/organ/tongue/lizard, + /obj/item/organ/tongue/alien, + /obj/item/organ/tongue/ethereal, + /obj/item/organ/tongue/robot, + /obj/item/organ/tongue/zombie, + /obj/item/organ/appendix, + /obj/item/organ/liver/fly, + /obj/item/organ/lungs/plasmaman, + /obj/item/organ/tail/cat, + /obj/item/organ/tail/lizard + ) + spawn_loot_count = 5 + +/obj/effect/spawner/random/medical/surgery_tool/common + name = "Surgery tool spawner" + icon_state = "scapel" + loot = list( + /obj/item/scalpel, + /obj/item/hemostat, + /obj/item/retractor, + /obj/item/circular_saw, + /obj/item/surgicaldrill, + /obj/item/cautery, + ) + +/obj/effect/spawner/random/medical/surgery_tool/adv + loot = list( + /obj/item/scalpel/advanced, + /obj/item/retractor/advanced, + /obj/item/surgicaldrill/advanced, + ) + +/obj/effect/spawner/random/medical/surgery_tool + loot = list( + /obj/effect/spawner/random/medical/surgery_tool/common = 120, + /obj/effect/spawner/random/medical/surgery_tool/adv = 10, + ) + +/obj/effect/spawner/random/medical/medkit + name = "medkit spawner" + icon_state = "medkit" + loot = list( + /obj/item/storage/firstaid/regular = 10, + /obj/item/storage/firstaid/o2 = 10, + /obj/item/storage/firstaid/fire = 10, + /obj/item/storage/firstaid/brute = 10, + /obj/item/storage/firstaid/toxin = 10, + /obj/item/storage/firstaid/advanced = 1, + ) + +/obj/effect/spawner/random/medical/patient_stretcher + name = "patient stretcher spawner" + icon_state = "rollerbed" + loot = list( + /obj/structure/bed/roller, + /obj/vehicle/ridden/wheelchair, + ) + +/obj/effect/spawner/random/medical/supplies + name = "medical supplies spawner" + icon_state = "box_small" + loot = list( + /obj/item/storage/box/hug, + /obj/item/storage/box/pillbottles, + /obj/item/storage/box/bodybags, + /obj/item/storage/box/rxglasses, + /obj/item/storage/box/beakers, + /obj/item/storage/box/gloves, + /obj/item/storage/box/masks, + /obj/item/storage/box/syringes, + ) + +/obj/effect/spawner/random/medical/beaker + loot = list( + /obj/item/reagent_containers/glass/beaker = 300, + /obj/item/reagent_containers/glass/beaker/large = 200, + /obj/item/reagent_containers/glass/beaker/plastic = 50, + /obj/item/reagent_containers/glass/beaker/meta = 10, + /obj/item/reagent_containers/glass/beaker/noreact = 5, + /obj/item/reagent_containers/glass/beaker/bluespace = 1, + ) + +/obj/effect/spawner/random/medical/prosthetic + loot = list( + /obj/item/bodypart/l_arm/robot/surplus = 1, + /obj/item/bodypart/r_arm/robot/surplus = 1, + /obj/item/bodypart/leg/left/robot/surplus = 1, + /obj/item/bodypart/leg/right/robot/surplus = 1, + ) diff --git a/code/game/objects/effects/spawners/random.dm/readme.md b/code/game/objects/effects/spawners/random.dm/readme.md index 2230848794fd..e65d0f520087 100644 --- a/code/game/objects/effects/spawners/random.dm/readme.md +++ b/code/game/objects/effects/spawners/random.dm/readme.md @@ -372,7 +372,7 @@ Good: Bad: ```dm -/obj/effect/spawner/random/crate_spawner +/obj/effect/spawner/lootdrop/crate_spawner name = "lootcrate spawner" loot = list( "" = 80 @@ -405,7 +405,7 @@ Good: Bad: ```dm -/obj/effect/spawner/random/armory_contraband +/obj/effect/spawner/lootdrop/armory_contraband loot = list( /obj/item/gun/ballistic/automatic/pistol = 8, /obj/item/gun/ballistic/shotgun/automatic/combat = 5, @@ -413,7 +413,7 @@ Bad: /obj/item/gun/ballistic/revolver/mateba ) -/obj/effect/spawner/random/armory_contraband/metastation +/obj/effect/spawner/lootdrop/armory_contraband/metastation loot = list( /obj/item/gun/ballistic/automatic/pistol = 8, /obj/item/gun/ballistic/shotgun/automatic/combat = 5, diff --git a/code/game/objects/effects/spawners/random.dm/salvaging.dm b/code/game/objects/effects/spawners/random.dm/salvaging.dm index 9bcf470ce223..212e53f4a582 100644 --- a/code/game/objects/effects/spawners/random.dm/salvaging.dm +++ b/code/game/objects/effects/spawners/random.dm/salvaging.dm @@ -35,85 +35,14 @@ ) //PROTOLATHE -/obj/effect/spawner/random/tool_engie_proto - loot = list( - /obj/effect/spawner/random/tool_engie_common = 120, - /obj/effect/spawner/random/tool_engie_sydnie = 20, - /obj/effect/spawner/random/tool_engie_adv = 5, - ) - -/obj/effect/spawner/random/tool_engie_common - loot = list( - /obj/item/wrench/crescent = 1, - /obj/item/screwdriver = 1, - /obj/item/weldingtool = 1, - /obj/item/crowbar = 1, - /obj/item/wirecutters = 1, - /obj/item/multitool = 1, - ) - -/obj/effect/spawner/random/tool_engie_sydnie - loot = list( - /obj/item/wrench/syndie = 1, - /obj/item/screwdriver/nuke = 1, - /obj/item/weldingtool/largetank = 1, - /obj/item/crowbar/syndie = 1, - /obj/item/wirecutters/syndie = 1, - /obj/item/multitool/syndie = 1, - ) - -/obj/effect/spawner/random/tool_engie_adv - loot = list( - /obj/item/screwdriver/power = 1, - /obj/item/weldingtool/experimental = 1, - /obj/item/crowbar/power = 1, - ) - -/obj/effect/spawner/random/tool_surgery_proto - loot = list( - /obj/effect/spawner/random/tool_surgery_common = 120, - /obj/effect/spawner/random/tool_surgery_adv = 10, - ) - -/obj/effect/spawner/random/tool_surgery_common - loot = list( - /obj/item/scalpel = 1, - /obj/item/hemostat = 1, - /obj/item/cautery = 1, - /obj/item/retractor = 1, - /obj/item/circular_saw = 1, - /obj/item/surgicaldrill = 1, - ) - -/obj/effect/spawner/random/tool_surgery_adv - loot = list( - /obj/item/scalpel/advanced = 1, - /obj/item/retractor/advanced = 1, - /obj/item/surgicaldrill/advanced = 1, - ) -/obj/effect/spawner/random/beaker_loot_spawner - loot = list( - /obj/item/reagent_containers/glass/beaker = 300, - /obj/item/reagent_containers/glass/beaker/large = 200, - /obj/item/reagent_containers/glass/beaker/plastic = 50, - /obj/item/reagent_containers/glass/beaker/meta = 10, - /obj/item/reagent_containers/glass/beaker/noreact = 5, - /obj/item/reagent_containers/glass/beaker/bluespace = 1, - ) -/obj/effect/spawner/random/random_prosthetic - loot = list( - /obj/item/bodypart/l_arm/robot/surplus = 1, - /obj/item/bodypart/r_arm/robot/surplus = 1, - /obj/item/bodypart/leg/left/robot/surplus = 1, - /obj/item/bodypart/leg/right/robot/surplus = 1, - ) /obj/effect/spawner/random/random_gun_protolathe_lootdrop loot = list( /obj/item/gun/energy/lasercannon = 1, /obj/item/gun/ballistic/automatic/smg/skm_carbine/inteq/proto = 1, /obj/item/gun/energy/temperature/security = 1, ) + /obj/effect/spawner/random/random_ammo_protolathe_lootdrop loot = list( /obj/item/stock_parts/cell/gun/upgraded = 5, @@ -121,95 +50,7 @@ ) //CIRCUIT IMPRINTER -/obj/effect/spawner/random/random_machine_circuit_common - loot = list( - /obj/item/circuitboard/machine/autolathe = 5, - /obj/item/circuitboard/machine/biogenerator = 5, - /obj/item/circuitboard/machine/cell_charger = 5, - /obj/item/circuitboard/machine/chem_heater = 5, - /obj/item/circuitboard/machine/chem_master = 5, - /obj/item/circuitboard/machine/clonescanner = 5, - /obj/item/circuitboard/machine/cryo_tube = 5, - /obj/item/circuitboard/machine/cyborgrecharger = 5, - /obj/item/circuitboard/machine/deep_fryer = 5, - /obj/item/circuitboard/machine/experimentor = 5, - /obj/item/circuitboard/machine/holopad = 5, - /obj/item/circuitboard/machine/hydroponics = 5, - /obj/item/circuitboard/machine/limbgrower = 5, - /obj/item/circuitboard/machine/ltsrbt = 5, - /obj/item/circuitboard/machine/mech_recharger = 5, - /obj/item/circuitboard/machine/mechfab = 5, - /obj/item/circuitboard/machine/medical_kiosk = 5, - /obj/item/circuitboard/machine/medipen_refiller = 5, - /obj/item/circuitboard/machine/microwave = 5, - /obj/item/circuitboard/machine/monkey_recycler = 5, - /obj/item/circuitboard/machine/ore_redemption = 5, - /obj/item/circuitboard/machine/ore_silo = 5, - /obj/item/circuitboard/machine/reagentgrinder = 5, - /obj/item/circuitboard/machine/recharger = 5, - /obj/item/circuitboard/machine/seed_extractor = 5, - /obj/item/circuitboard/machine/selling_pad = 5, - /obj/item/circuitboard/machine/emitter = 5, - ) - -/obj/effect/spawner/random/random_machine_circuit_rare - loot = list( - /obj/item/circuitboard/aicore = 5, - /obj/item/circuitboard/machine/chem_dispenser = 5, - /obj/item/circuitboard/machine/circuit_imprinter = 5, - /obj/item/circuitboard/machine/protolathe = 5, - /obj/item/circuitboard/machine/clonepod/experimental = 5, - /obj/item/circuitboard/machine/rad_collector = 5, - /obj/item/circuitboard/machine/launchpad = 5, - ) -/obj/effect/spawner/random/random_machine_circuit_mech - loot = list( - /obj/item/circuitboard/mecha/ripley/main = 100, - /obj/item/circuitboard/mecha/ripley/peripherals = 100, - /obj/item/circuitboard/mecha/honker/main = 5, - /obj/item/circuitboard/mecha/honker/peripherals = 5, - /obj/item/circuitboard/mecha/odysseus/main = 5, - /obj/item/circuitboard/mecha/odysseus/peripherals = 5, - /obj/item/circuitboard/mecha/gygax/main = 1, - /obj/item/circuitboard/mecha/gygax/peripherals = 1, - /obj/item/circuitboard/mecha/gygax/targeting = 1, - /obj/item/circuitboard/mecha/durand/main = 1, - /obj/item/circuitboard/mecha/durand/peripherals = 1, - /obj/item/circuitboard/mecha/durand/targeting = 1, - ) - -//COMPUTER -/obj/effect/spawner/random/random_computer_circuit_common - loot = list( - /obj/item/circuitboard/computer/aifixer = 5, - /obj/item/circuitboard/computer/arcade/amputation = 5, - /obj/item/circuitboard/computer/arcade/battle = 5, - /obj/item/circuitboard/computer/arcade/orion_trail = 5, - /obj/item/circuitboard/computer/atmos_alert = 5, - /obj/item/circuitboard/computer/card = 5, - /obj/item/circuitboard/computer/cloning = 5, - /obj/item/circuitboard/computer/communications = 5, - /obj/item/circuitboard/computer/launchpad_console = 5, - /obj/item/circuitboard/computer/mech_bay_power_console = 5, - /obj/item/circuitboard/computer/pandemic = 5, - /obj/item/circuitboard/computer/powermonitor/secret = 5, - /obj/item/circuitboard/computer/prototype_cloning = 5, - /obj/item/circuitboard/computer/stationalert = 5, - /obj/item/circuitboard/computer/xenobiology = 5, - /obj/item/circuitboard/computer/teleporter = 5, - /obj/item/circuitboard/computer/operating = 5, - /obj/item/circuitboard/computer/crew = 5, - /obj/item/circuitboard/computer/scan_consolenew = 5, - ) - -/obj/effect/spawner/random/random_computer_circuit_rare - loot = list( - /obj/item/circuitboard/computer/cargo = 5, - /obj/item/circuitboard/computer/communications = 5, - /obj/item/circuitboard/computer/shuttle/helm = 5, - /obj/item/circuitboard/computer/med_data = 5, - ) //DESTRUCTIVE ANAL //i'm killing you /obj/effect/spawner/random/destructive_anal_loot //what do people usually put in these things anayways @@ -230,3 +71,133 @@ /obj/item/wirecutters/syndie = 30, /obj/item/multitool/syndie = 30, ) + +/obj/effect/spawner/random/salvage_machine + name = "salvageable machine spawner" + loot = list( + /obj/structure/salvageable/protolathe, + /obj/structure/salvageable/circuit_imprinter, + /obj/structure/salvageable/server, + /obj/structure/salvageable/machine, + /obj/structure/salvageable/autolathe, + /obj/structure/salvageable/computer, + /obj/structure/salvageable/destructive_analyzer + ) + +/obj/effect/spawner/random/salvage_50 + name = "50% salvage spawner" + spawn_loot_chance = 50 + loot = list( + /obj/effect/spawner/random/maintenance , + /obj/effect/spawner/random/salvage_machine, + /obj/effect/spawner/random/exotic/ripley, + /obj/structure/closet/crate/secure/loot, + ) + +/obj/effect/spawner/random/salvage + name = "salvage mats spawner" + icon_state = "metal" + loot = list( + /obj/item/stack/ore/salvage/scrapmetal, + /obj/item/stack/ore/salvage/scrapgold, + /obj/item/stack/ore/salvage/scrapplasma, + /obj/item/stack/ore/salvage/scrapsilver, + /obj/item/stack/ore/salvage/scraptitanium, + /obj/item/stack/ore/salvage/scrapbluespace, + /obj/item/stack/ore/salvage/scrapuranium + ) + +/obj/effect/spawner/random/salvage/metal + loot = list( + /obj/item/stack/ore/salvage/scrapmetal + ) + +/obj/effect/spawner/random/salvage/metal/Initialize() + spawn_loot_count = pick(list( + 1, + 2, + 3, + 4 + )) + return ..() + +/obj/effect/spawner/random/salvage/gold + loot = list( + /obj/item/stack/ore/salvage/scrapgold + ) + +/obj/effect/spawner/random/salvage/gold/Initialize() + spawn_loot_count = pick(list( + 1, + 2, + 3, + 4 + )) + return ..() + +/obj/effect/spawner/random/salvage/plasma + loot = list( + /obj/item/stack/ore/salvage/scrapplasma + ) +/obj/effect/spawner/random/salvage/plasma/Initialize() + spawn_loot_count = pick(list( + 1, + 2, + 3, + 4 + )) + return ..() + + +/obj/effect/spawner/random/salvage/silver + loot = list( + /obj/item/stack/ore/salvage/scrapsilver + ) +/obj/effect/spawner/random/salvage/silver/Initialize() + spawn_loot_count = pick(list( + 1, + 2, + 3, + 4 + )) + return ..() + + +/obj/effect/spawner/random/salvage/titanium + loot = list( + /obj/item/stack/ore/salvage/scraptitanium + ) +/obj/effect/spawner/random/salvage/titanium/Initialize() + spawn_loot_count = pick(list( + 1, + 2, + 3, + 4 + )) + return ..() + +/obj/effect/spawner/random/salvage/bluespace + loot = list( + /obj/item/stack/ore/salvage/scrapbluespace + ) +/obj/effect/spawner/random/salvage/bluespace/Initialize() + spawn_loot_count = pick(list( + 1, + 2, + 3, + 4 + )) + return ..() + +/obj/effect/spawner/random/salvage/uranium + loot = list( + /obj/item/stack/ore/salvage/scrapuranium + ) +/obj/effect/spawner/random/salvage/uranium/Initialize() + spawn_loot_count = pick(list( + 1, + 2, + 3, + 4 + )) + return ..() diff --git a/code/game/objects/effects/spawners/random.dm/structure.dm b/code/game/objects/effects/spawners/random.dm/structure.dm new file mode 100644 index 000000000000..13e71ecd3e57 --- /dev/null +++ b/code/game/objects/effects/spawners/random.dm/structure.dm @@ -0,0 +1,90 @@ + +/obj/effect/spawner/random/structure + name = "structure spawner" + desc = "Now you see me, now you don't..." + +/obj/effect/spawner/random/structure/crate_abandoned + name = "locked crate spawner" + icon_state = "crate_secure" + spawn_loot_chance = 20 + loot = list(/obj/structure/closet/crate/secure/loot) + +/obj/effect/spawner/random/structure/girder + name = "girder spawner" + icon_state = "girder" + spawn_loot_chance = 90 + loot = list( // 80% chance normal girder, 10% chance of displaced, 10% chance of nothing + /obj/structure/girder = 8, + /obj/structure/girder/displaced = 1, + ) + +/obj/effect/spawner/random/structure/grille + name = "grille spawner" + icon_state = "grille" + spawn_loot_chance = 90 + loot = list( // 80% chance normal grille, 10% chance of broken, 10% chance of nothing + /obj/structure/grille = 8, + /obj/structure/grille/broken = 1, + ) + +/obj/effect/spawner/random/structure/furniture_parts + name = "furniture parts spawner" + icon_state = "table_parts" + loot = list( + /obj/structure/table_frame, + /obj/structure/table_frame/wood, + /obj/item/rack_parts, + ) + +/obj/effect/spawner/random/structure/table_or_rack + name = "table or rack spawner" + icon_state = "rack_parts" + loot = list( + /obj/effect/spawner/random/structure/table, + /obj/structure/rack, + ) + +/obj/effect/spawner/random/structure/table + name = "table spawner" + icon_state = "table" + loot = list( + /obj/structure/table = 40, + /obj/structure/table/wood = 30, + /obj/structure/table/glass = 20, + /obj/structure/table/reinforced = 5, + /obj/structure/table/wood/poker = 5, + ) + +/obj/effect/spawner/random/structure/closet_empty + name = "empty closet spawner" + icon_state = "locker" + loot = list( + /obj/structure/closet = 850, + /obj/structure/closet/cabinet = 150, + /obj/structure/closet/acloset = 1, + ) + +/obj/effect/spawner/random/structure/closet_empty/crate + name = "empty crate spawner" + icon_state = "crate" + loot = list( + /obj/structure/closet/crate = 20, + /obj/structure/closet/crate/wooden = 1, + /obj/structure/closet/crate/internals = 1, + /obj/structure/closet/crate/medical = 1, + /obj/structure/closet/crate/freezer = 1, + /obj/structure/closet/crate/radiation = 1, + /obj/structure/closet/crate/hydroponics = 1, + /obj/structure/closet/crate/engineering = 1, + /obj/structure/closet/crate/engineering/electrical = 1, + /obj/structure/closet/crate/science = 1, + ) + +/obj/effect/spawner/random/structure/barricade + name = "barricade spawner" + icon_state = "barricade" + spawn_loot_chance = 80 + loot = list( + /obj/structure/barricade/wooden, + /obj/structure/barricade/wooden/crude, + ) diff --git a/code/game/objects/effects/spawners/random.dm/trash.dm b/code/game/objects/effects/spawners/random.dm/trash.dm new file mode 100644 index 000000000000..04318f770d16 --- /dev/null +++ b/code/game/objects/effects/spawners/random.dm/trash.dm @@ -0,0 +1,300 @@ +/obj/effect/spawner/random/trash + name = "trash spawner" + desc = "Ewwwwwww gross." + icon_state = "trash" + +/obj/effect/spawner/random/trash/garbage + name = "garbage spawner" + loot = list( + /obj/effect/spawner/random/trash/food_packaging = 20, + /obj/item/trash/can = 15, + /obj/item/shard = 10, + /obj/effect/spawner/random/trash/cigbutt = 10, + /obj/effect/spawner/random/trash/botanical_waste = 5, + /obj/item/broken_bottle = 5, + /obj/item/light/tube/broken = 5, + /obj/item/light/bulb/broken = 5, + /obj/item/assembly/mousetrap/armed = 5, + /obj/item/stack/cable_coil = 5, + /obj/item/trash/candle = 1, + /obj/item/reagent_containers/glass/rag = 1, + /obj/item/popsicle_stick = 1, + /obj/item/reagent_containers/syringe = 1, + /obj/item/shard/plasma = 1, + ) + +/obj/effect/spawner/random/trash/deluxe_garbage + name = "fancy deluxe garbage spawner" + loot = list( + /obj/effect/spawner/random/trash/garbage = 25, + /obj/effect/spawner/random/trash/food_packaging = 10, + /obj/effect/spawner/random/entertainment/money = 10, + /obj/effect/spawner/random/trash/crushed_can = 10, + /obj/item/shard/plasma = 5, + /obj/item/reagent_containers/pill/floorpill = 5, + /obj/effect/spawner/random/trash/soap = 3, + /obj/item/broken_bottle = 3, + /obj/effect/spawner/random/engineering/tool/common = 1, + /mob/living/simple_animal/mouse = 1, + /obj/item/reagent_containers/glass/rag = 1, + /obj/effect/spawner/random/entertainment/drugs= 1, + /obj/item/reagent_containers/syringe = 1, + /obj/effect/spawner/random/entertainment/cigar = 1, + /obj/item/stack/ore/gold = 1, + ) + +/obj/effect/spawner/random/trash/cigbutt + name = "cigarette butt spawner" + loot = list( + /obj/item/cigbutt = 25, + /obj/item/cigbutt/roach = 25, + /obj/effect/decal/cleanable/ash = 25, + /obj/item/cigbutt/cigarbutt = 15, + ) + +/obj/effect/spawner/random/trash/food_packaging + name = "empty food packaging spawner" + loot = list( + /obj/item/trash/raisins = 2, + /obj/item/trash/cheesie = 2, + /obj/item/trash/candy = 2, + /obj/item/trash/chips = 2, + /obj/item/trash/sosjerky = 2, + /obj/item/trash/pistachios = 2, + /obj/item/trash/boritos = 1, + /obj/item/trash/can/food/beans = 1, + /obj/item/trash/can/food/peaches = 1, + /obj/item/trash/popcorn = 1, + /obj/item/trash/energybar = 1, + /obj/item/trash/can/food/peaches/maint = 1, + /obj/item/trash/semki = 1, + /obj/item/trash/syndi_cakes = 1, + /obj/item/trash/tray = 1, + ) + +/obj/effect/spawner/random/trash/botanical_waste + name = "botanical waste spawner" + icon_state = "peel" + loot = list( + /obj/item/grown/bananapeel = 6, + /obj/item/grown/corncob = 3, + ) + +/obj/effect/spawner/random/trash/grille_or_waste + name = "grille or waste spawner" + icon_state = "grille" + loot = list( + /obj/structure/grille = 5, + /obj/effect/spawner/random/trash/food_packaging = 3, + /obj/effect/spawner/random/trash/cigbutt = 1, + /obj/item/reagent_containers/food/snacks/deadmouse = 1, + ) + +/obj/effect/spawner/random/trash/decal + icon_state = "trash" + loot = list( + /obj/effect/decal/cleanable/greenglow/filled = 30, + /obj/effect/decal/cleanable/greenglow/ecto = 1, + /obj/effect/decal/cleanable/glass = 30, + /obj/effect/decal/cleanable/glass/plasma = 30, + /obj/effect/decal/cleanable/glass/strange = 30, + /obj/effect/decal/cleanable/molten_object = 30, + /obj/effect/decal/cleanable/molten_object/large = 30, + /obj/effect/decal/cleanable/oil = 30, + /obj/effect/decal/cleanable/oil/slippery = 1, // :) + /obj/effect/decal/cleanable/plastic = 30, + /obj/effect/decal/cleanable/ash = 30, + /obj/effect/decal/cleanable/ash/large = 30, + ) + +/obj/effect/spawner/random/grille_or_trash + name = "maint grille or trash spawner" + icon_state = "grille" + loot = list( + /obj/structure/grille = 5, + /obj/item/cigbutt = 1, + /obj/item/trash/cheesie = 1, + /obj/item/trash/candy = 1, + /obj/item/trash/chips = 1, + /obj/item/reagent_containers/food/snacks/deadmouse = 1, + /obj/item/trash/pistachios = 1, + /obj/item/trash/plate = 1, + /obj/item/trash/popcorn = 1, + /obj/item/trash/raisins = 1, + /obj/item/trash/sosjerky = 1, + /obj/item/trash/syndi_cakes = 1 + ) + +/obj/effect/spawner/random/trash/mess + name = "gross decal spawner" + icon_state = "vomit" + loot = list( + /obj/effect/decal/cleanable/dirt = 6, + /obj/effect/decal/cleanable/garbage = 3, + /obj/effect/decal/cleanable/vomit/old = 3, + /obj/effect/decal/cleanable/blood/gibs/old = 3, + /obj/effect/decal/cleanable/insectguts = 1, + /obj/effect/decal/cleanable/greenglow/ecto = 1, + /obj/effect/decal/cleanable/wrapping = 1, + /obj/effect/decal/cleanable/plastic = 1, + /obj/effect/decal/cleanable/glass = 1, + ) + +/obj/effect/spawner/random/trash/grime + name = "trash and grime spawner" + spawn_loot_count = 5 + spawn_scatter_radius = 2 + loot = list( // This spawner will scatter garbage around a dirty site. + /obj/effect/spawner/random/trash/garbage = 6, + /mob/living/simple_animal/hostile/cockroach = 5, + /obj/effect/decal/cleanable/garbage = 4, + /obj/effect/decal/cleanable/vomit/old = 3, + /obj/effect/spawner/random/trash/cigbutt = 2, + ) + +/obj/effect/spawner/random/trash/moisture + name = "water hazard spawner" + icon_state = "caution" + spawn_loot_count = 2 + spawn_scatter_radius = 1 + loot = list( // This spawner will scatter water related items around a moist site. + /obj/item/clothing/head/cone = 7, + /obj/item/clothing/suit/caution = 3, + /mob/living/simple_animal/hostile/retaliate/frog = 2, + /obj/item/reagent_containers/glass/rag = 2, + /obj/item/reagent_containers/glass/bucket = 2, + /obj/effect/decal/cleanable/blood/old = 2, + ) + +/obj/effect/spawner/random/trash/graffiti + name = "random graffiti spawner" + icon_state = "rune" + loot = list(/obj/effect/decal/cleanable/crayon) + var/graffiti_icons = list( + "rune1", "rune2", "rune3", "rune4", "rune5", "rune6", + "amyjon", "face", "matt", "revolution", "engie", "guy", + "end", "dwarf", "uboa", "body", "cyka", "star", + "prolizard", "antilizard", "danger", "firedanger", "electricdanger", + "biohazard", "radiation", "safe", "evac", "space", "med", "trade", "shop", + "food", "peace", "like", "skull", "nay", "heart", "credit", + "smallbrush", "brush", "largebrush", "splatter", "snake", "stickman", + "carp", "ghost", "clown", "taser", "disk", "fireaxe", "toolbox", + "corgi", "cat", "toilet", "blueprint", "beepsky", "scroll", "bottle", + "shotgun", "arrow", "line", "thinline", "shortline", "body", "chevron", + "footprint", "clawprint", "pawprint", + ) + // This sets the color of the graffiti (used for mapedits) + color = COLOR_WHITE + /// Whether the graffiti will spawn with a random color (used for mapedits) + var/random_color = TRUE + /// Whether the graffiti will spawn with this spawner's icon_state instead of a random one (used for mapedits) + var/random_icon = TRUE + +/obj/effect/spawner/random/trash/graffiti/make_item(spawn_loc, type_path_to_make) + var/obj/effect/decal/cleanable/crayon/graffiti_decal = ..() + if(istype(graffiti_decal)) + color = random_color && "#[random_short_color()]" || color + icon_state = random_icon && pick(graffiti_icons) || icon_state + + graffiti_decal.add_atom_colour(color, FIXED_COLOUR_PRIORITY) + graffiti_decal.icon_state = icon_state + + return graffiti_decal + +/obj/effect/spawner/random/trash/mopbucket + name = "mop bucket spawner" + icon_state = "mopbucket" + spawn_loot_count = 2 + spawn_loot_double = FALSE + loot = list( + /obj/item/mop = 5, + /obj/item/clothing/suit/caution = 3, + /obj/item/reagent_containers/glass/bucket = 1, + /obj/item/reagent_containers/glass/bucket/wooden = 1, + ) + +/obj/effect/spawner/random/trash/caution_sign + name = "caution sign spawner" + icon_state = "caution" + loot = list( + /obj/item/clothing/suit/caution = 40, + /obj/structure/holosign/wetsign = 5, + /obj/structure/holosign/barrier = 3, + /obj/structure/holosign/barrier/wetsign = 2, + ) + + +/obj/effect/spawner/random/trash/bucket + name = "bucket spawner" + icon_state = "caution" + loot = list( + /obj/item/reagent_containers/glass/bucket, + /obj/item/reagent_containers/glass/bucket/wooden, + ) + +/obj/effect/spawner/random/trash/soap + name = "soap spawner" + icon_state = "soap" + loot = list( + /obj/item/soap = 25, + /obj/item/bikehorn/rubberducky = 20, + /obj/item/soap/homemade = 20, + /obj/item/soap/deluxe = 15, + /obj/item/soap/nanotrasen = 10, + ) + +/obj/effect/spawner/random/trash/box + name = "box spawner" + icon_state = "box" + loot = list( + /obj/structure/closet/cardboard = 9, + /obj/structure/closet/cardboard/metal = 1, + ) + +/obj/effect/spawner/random/trash/bin + name = "trashbin spawner" + icon_state = "trash_bin" + loot = list( + /obj/structure/closet/crate/bin = 10, + /obj/structure/closet/crate/trashcart = 3, + /obj/effect/spawner/random/trash/box = 3, + /obj/structure/closet/crate/trashcart/laundry = 1, + ) + + +/obj/effect/spawner/random/trash/janitor_supplies + name = "janitor supplies spawner" + icon_state = "box_small" + loot = list( + /obj/item/storage/box/mousetraps, + /obj/item/storage/box/lights/tubes, + /obj/item/storage/box/lights/mixed, + /obj/item/storage/box/lights/bulbs, + ) + +/obj/effect/spawner/random/trash/crushed_can + name = "crushed can spawner" + icon_state = "crushed_can" + loot = list(/obj/item/trash/can) + /// Whether the can will spawn with this spawner's icon_state instead of a random one (used for mapedits) + var/soda_icons = list( + "energy_drink", "monkey_energy", "thirteen_loko", "space_mountain_wind", "dr_gibb", "starkist", + "sodawater", "tonic", "cola", "purple_can", "ice_tea_can", + "sol_dry", "wellcheers", "space beer", "ebisu", "shimauma", "moonlabor", + "space_up", "lemon_lime", "shamblers", "shamblerseldritch", "air", "laughter", + "volt_energy", "melon_soda", + ) + +/obj/effect/spawner/random/trash/crushed_can/make_item(spawn_loc, type_path_to_make) + var/obj/item/trash/can/crushed_can = .. () + if(istype(crushed_can)) + crushed_can.icon_state = pick(soda_icons) + return crushed_can + +/obj/effect/spawner/random/trash/ghetto_containers + name = "ghetto container spawner" + loot = list( + /obj/item/reagent_containers/glass/bucket = 5, + /obj/item/reagent_containers/glass/bottle = 5, + /obj/item/reagent_containers/glass/mortar = 2, + ) diff --git a/code/game/objects/effects/spawners/random.dm/unsorted.dm b/code/game/objects/effects/spawners/random.dm/unsorted.dm deleted file mode 100644 index aede4e6c2179..000000000000 --- a/code/game/objects/effects/spawners/random.dm/unsorted.dm +++ /dev/null @@ -1,1158 +0,0 @@ -/obj/effect/spawner/random/donkpockets - name = "donk pocket box spawner" - icon_state = "donkpocket" - spawn_loot_double = FALSE - - loot = list( - /obj/item/storage/box/donkpockets/donkpocketspicy = 1, - /obj/item/storage/box/donkpockets/donkpocketteriyaki = 1, - /obj/item/storage/box/donkpockets/donkpocketpizza = 1, - /obj/item/storage/box/donkpockets/donkpocketberry = 1, - /obj/item/storage/box/donkpockets/donkpockethonk = 1, - ) - - -/obj/effect/spawner/random/armory_contraband - name = "armory contraband gun spawner" - icon_state = "pistol" - spawn_loot_double = FALSE - - loot = list( - /obj/item/gun/ballistic/automatic/pistol/ringneck = 8, - /obj/item/gun/ballistic/shotgun/automatic/combat = 5, - /obj/item/gun/ballistic/automatic/pistol/deagle, - /obj/item/gun/ballistic/revolver/mateba - ) - -/obj/effect/spawner/random/armory_contraband/metastation - loot = list(/obj/item/gun/ballistic/automatic/pistol/ringneck = 5, - /obj/item/gun/ballistic/shotgun/automatic/combat = 5, - /obj/item/gun/ballistic/automatic/pistol/deagle, - /obj/item/storage/box/syndie_kit/throwing_weapons = 3, - /obj/item/gun/ballistic/revolver/mateba) - -/obj/effect/spawner/random/armory_contraband/donutstation - loot = list(/obj/item/grenade/clusterbuster/teargas = 5, - /obj/item/gun/ballistic/shotgun/automatic/combat = 5, - /obj/item/bikehorn/golden, - /obj/item/grenade/clusterbuster, - /obj/item/storage/box/syndie_kit/throwing_weapons = 3, - /obj/item/gun/ballistic/revolver/mateba) - -/obj/effect/spawner/random/prison_contraband - name = "prison contraband loot spawner" - loot = list(/obj/item/clothing/mask/cigarette/space_cigarette = 4, - /obj/item/clothing/mask/cigarette/robust = 2, - /obj/item/clothing/mask/cigarette/carp = 3, - /obj/item/clothing/mask/cigarette/uplift = 2, - /obj/item/clothing/mask/cigarette/dromedary = 3, - /obj/item/clothing/mask/cigarette/robustgold = 1, - /obj/item/storage/fancy/cigarettes/cigpack_uplift = 3, - /obj/item/storage/fancy/cigarettes = 3, - /obj/item/clothing/mask/cigarette/rollie/cannabis = 4, - /obj/item/toy/crayon/spraycan = 2, - /obj/item/crowbar = 1, - /obj/item/assembly/flash/handheld = 1, - /obj/item/restraints/handcuffs/cable/zipties = 1, - /obj/item/restraints/handcuffs = 1, - /obj/item/radio = 1, - /obj/item/lighter = 3, - /obj/item/storage/box/matches = 3, - /obj/item/reagent_containers/syringe/contraband/space_drugs = 1, - /obj/item/reagent_containers/syringe/contraband/krokodil = 1, - /obj/item/reagent_containers/syringe/contraband/crank = 1, - /obj/item/reagent_containers/syringe/contraband/methamphetamine = 1, - /obj/item/reagent_containers/syringe/contraband/bath_salts = 1, - /obj/item/reagent_containers/syringe/contraband/fentanyl = 1, - /obj/item/reagent_containers/syringe/contraband/morphine = 1, - /obj/item/storage/pill_bottle/happy = 1, - /obj/item/storage/pill_bottle/lsd = 1, - /obj/item/storage/pill_bottle/psicodine = 1, - /obj/item/reagent_containers/food/drinks/beer = 4, - /obj/item/reagent_containers/food/drinks/bottle/whiskey = 1, - /obj/item/paper/fluff/jobs/prisoner/letter = 1, - /obj/item/grenade/smokebomb = 1, - /obj/item/flashlight/seclite = 1, - /obj/item/melee/knife/shiv = 4, - /obj/item/melee/knife/shiv/carrot = 1, - /obj/item/melee/knife/kitchen = 1, - /obj/item/storage/wallet/random = 1, - /obj/item/pda = 1 - ) - -/obj/effect/spawner/random/gambling - name = "gambling valuables spawner" - loot = list( - /obj/item/clothing/head/trapper = 3, - /obj/item/storage/box/syndie_kit/throwing_weapons, - /obj/item/coin/gold, - /obj/item/reagent_containers/food/drinks/bottle/vodka/badminka, - ) - -/obj/effect/spawner/random/grille_or_trash - name = "maint grille or trash spawner" - icon_state = "grille" - loot = list(/obj/structure/grille = 5, - /obj/item/cigbutt = 1, - /obj/item/trash/cheesie = 1, - /obj/item/trash/candy = 1, - /obj/item/trash/chips = 1, - /obj/item/reagent_containers/food/snacks/deadmouse = 1, - /obj/item/trash/pistachios = 1, - /obj/item/trash/plate = 1, - /obj/item/trash/popcorn = 1, - /obj/item/trash/raisins = 1, - /obj/item/trash/sosjerky = 1, - /obj/item/trash/syndi_cakes = 1) - -/obj/effect/spawner/random/three_course_meal - name = "three course meal spawner" - spawn_loot_count = 3 - spawn_loot_double = FALSE - var/soups = list( - /obj/item/reagent_containers/food/snacks/soup/beet, - /obj/item/reagent_containers/food/snacks/soup/sweetpotato, - /obj/item/reagent_containers/food/snacks/soup/stew, - /obj/item/reagent_containers/food/snacks/soup/hotchili, - /obj/item/reagent_containers/food/snacks/soup/nettle, - /obj/item/reagent_containers/food/snacks/soup/meatball) - var/salads = list( - /obj/item/reagent_containers/food/snacks/salad/herbsalad, - /obj/item/reagent_containers/food/snacks/salad/validsalad, - /obj/item/reagent_containers/food/snacks/salad/fruit, - /obj/item/reagent_containers/food/snacks/salad/jungle, - /obj/item/reagent_containers/food/snacks/salad/aesirsalad) - var/mains = list( - /obj/item/reagent_containers/food/snacks/bearsteak, - /obj/item/reagent_containers/food/snacks/enchiladas, - /obj/item/reagent_containers/food/snacks/stewedsoymeat, - /obj/item/reagent_containers/food/snacks/burger/bigbite, - /obj/item/reagent_containers/food/snacks/burger/superbite, - /obj/item/reagent_containers/food/snacks/burger/fivealarm) - -/obj/effect/spawner/random/three_course_meal/Initialize(mapload) - loot = list(pick(soups) = 1,pick(salads) = 1,pick(mains) = 1) - . = ..() - -/obj/effect/spawner/random/crate_spawner - name = "lootcrate spawner" //USE PROMO CODE "SELLOUT" FOR 20% OFF! - spawn_loot_double = FALSE - - loot = list( - /obj/structure/closet/crate/secure/loot = 20, - "" = 80 - ) - -/obj/effect/spawner/random/organ_spawner - name = "ayylien organ spawner" - loot = list( - /obj/item/organ/heart/gland/electric = 3, - /obj/item/organ/heart/gland/trauma = 4, - /obj/item/organ/heart/gland/egg = 7, - /obj/item/organ/heart/gland/chem = 5, - /obj/item/organ/heart/gland/mindshock = 5, - /obj/item/organ/heart/gland/plasma = 7, - /obj/item/organ/heart/gland/transform = 5, - /obj/item/organ/heart/gland/slime = 4, - /obj/item/organ/heart/gland/spiderman = 5, - /obj/item/organ/heart/gland/ventcrawling = 1, - /obj/item/organ/body_egg/alien_embryo = 1, - /obj/item/organ/regenerative_core = 2) - spawn_loot_count = 3 - -/obj/effect/spawner/random/memeorgans - name = "meme organ spawner" - loot = list( - /obj/item/organ/ears/penguin, - /obj/item/organ/ears/cat, - /obj/item/organ/eyes/compound, - /obj/item/organ/eyes/snail, - /obj/item/organ/tongue/bone, - /obj/item/organ/tongue/fly, - /obj/item/organ/tongue/snail, - /obj/item/organ/tongue/lizard, - /obj/item/organ/tongue/alien, - /obj/item/organ/tongue/ethereal, - /obj/item/organ/tongue/robot, - /obj/item/organ/tongue/zombie, - /obj/item/organ/appendix, - /obj/item/organ/liver/fly, - /obj/item/organ/lungs/plasmaman, - /obj/item/organ/tail/cat, - /obj/item/organ/tail/lizard) - spawn_loot_count = 5 - -/obj/effect/spawner/random/rnd - name = "random RND spawner" - loot = list( - /obj/item/storage/box/rndmining, - /obj/item/storage/box/rndengi, - /obj/item/storage/box/rndsec, - /obj/item/storage/box/rndciv, - /obj/item/storage/box/rndmed) - spawn_loot_count = 1 - -/obj/effect/spawner/random/costume - name = "random costume spawner" - -/obj/effect/spawner/random/costume/Initialize() - loot = list() - for(var/path in subtypesof(/obj/effect/spawner/bundle/costume)) - loot[path] = TRUE - . = ..() - -// Minor lootdrops follow - -/obj/effect/spawner/random/minor/beret_or_rabbitears - name = "beret or rabbit ears spawner" - loot = list( - /obj/item/clothing/head/beret = 1) - -/obj/effect/spawner/random/minor/bowler_or_that - name = "bowler or top hat spawner" - loot = list( - /obj/item/clothing/head/that = 1) - -/obj/effect/spawner/random/minor/kittyears_or_rabbitears - name = "kitty ears or rabbit ears spawner" - loot = list( - /obj/item/clothing/head/kitty = 1) - -/obj/effect/spawner/random/minor/pirate_or_bandana - name = "pirate hat or bandana spawner" - loot = list( - /obj/item/clothing/head/pirate = 1, - /obj/item/clothing/head/bandana = 1) - -/obj/effect/spawner/random/minor/twentyfive_percent_cyborg_mask - name = "25% cyborg mask spawner" - loot = list( - /obj/item/clothing/mask/gas/cyborg = 25, - "" = 75) - -/obj/effect/spawner/random/aimodule_harmless // These shouldn't allow the AI to start butchering people - name = "harmless AI module spawner" - loot = list( - /obj/item/aiModule/core/full/asimov, - /obj/item/aiModule/core/full/asimovpp, - /obj/item/aiModule/core/full/hippocratic, - /obj/item/aiModule/core/full/paladin_devotion, - /obj/item/aiModule/core/full/paladin - ) - -/obj/effect/spawner/random/aimodule_neutral // These shouldn't allow the AI to start butchering people without reason - name = "neutral AI module spawner" - loot = list( - /obj/item/aiModule/core/full/corp, - /obj/item/aiModule/core/full/maintain, - /obj/item/aiModule/core/full/drone, - /obj/item/aiModule/core/full/peacekeeper, - /obj/item/aiModule/core/full/reporter, - /obj/item/aiModule/core/full/robocop, - /obj/item/aiModule/core/full/liveandletlive, - /obj/item/aiModule/core/full/hulkamania - ) - -/obj/effect/spawner/random/aimodule_harmful // These will get the shuttle called - name = "harmful AI module spawner" - loot = list( - /obj/item/aiModule/core/full/antimov, - /obj/item/aiModule/core/full/balance, - /obj/item/aiModule/core/full/tyrant, - /obj/item/aiModule/core/full/thermurderdynamic, - /obj/item/aiModule/core/full/damaged, - /obj/item/aiModule/reset/purge - ) - -// Tech storage circuit board spawners - -/obj/effect/spawner/random/techstorage - name = "generic circuit board spawner" - spawn_loot_split = TRUE - spawn_all_loot = TRUE - -/obj/effect/spawner/random/techstorage/service - name = "service circuit board spawner" - loot = list( - /obj/item/circuitboard/computer/arcade/battle, - /obj/item/circuitboard/computer/arcade/orion_trail, - /obj/item/circuitboard/machine/autolathe, - /obj/item/circuitboard/computer/mining, - /obj/item/circuitboard/machine/ore_redemption, - /obj/item/circuitboard/machine/vending/mining_equipment, - /obj/item/circuitboard/machine/microwave, - /obj/item/circuitboard/machine/chem_dispenser/drinks, - /obj/item/circuitboard/machine/chem_dispenser/drinks/beer, - /obj/item/circuitboard/computer/slot_machine - ) - -/obj/effect/spawner/random/techstorage/rnd - name = "RnD circuit board spawner" - loot = list( - /obj/item/circuitboard/computer/aifixer, - /obj/item/circuitboard/machine/rdserver, - /obj/item/circuitboard/machine/mechfab, - /obj/item/circuitboard/machine/circuit_imprinter/department, - /obj/item/circuitboard/computer/teleporter, - /obj/item/circuitboard/machine/destructive_analyzer, - /obj/item/circuitboard/computer/rdconsole, - /obj/item/circuitboard/computer/nanite_chamber_control, - /obj/item/circuitboard/computer/nanite_cloud_controller, - /obj/item/circuitboard/machine/nanite_chamber, - /obj/item/circuitboard/machine/nanite_programmer, - /obj/item/circuitboard/machine/nanite_program_hub - ) - -/obj/effect/spawner/random/techstorage/security - name = "security circuit board spawner" - loot = list( - /obj/item/circuitboard/computer/secure_data, - /obj/item/circuitboard/computer/security, - /obj/item/circuitboard/computer/prisoner - ) - -/obj/effect/spawner/random/techstorage/engineering - name = "engineering circuit board spawner" - loot = list( - /obj/item/circuitboard/computer/atmos_alert, - /obj/item/circuitboard/computer/stationalert, - /obj/item/circuitboard/computer/powermonitor - ) - -/obj/effect/spawner/random/techstorage/tcomms - name = "tcomms circuit board spawner" - loot = list( - /obj/item/circuitboard/computer/message_monitor, - /obj/item/circuitboard/machine/telecomms/broadcaster, - /obj/item/circuitboard/machine/telecomms/bus, - /obj/item/circuitboard/machine/telecomms/server, - /obj/item/circuitboard/machine/telecomms/receiver, - /obj/item/circuitboard/machine/telecomms/processor, - /obj/item/circuitboard/machine/announcement_system, - /obj/item/circuitboard/computer/comm_server, - /obj/item/circuitboard/computer/comm_monitor - ) - -/obj/effect/spawner/random/techstorage/medical - name = "medical circuit board spawner" - loot = list( - /obj/item/circuitboard/machine/chem_dispenser, - /obj/item/circuitboard/computer/scan_consolenew, - /obj/item/circuitboard/computer/med_data, - /obj/item/circuitboard/machine/smoke_machine, - /obj/item/circuitboard/machine/chem_master, - /obj/item/circuitboard/machine/dnascanner, - /obj/item/circuitboard/computer/pandemic - ) - -/obj/effect/spawner/random/techstorage/AI - name = "secure AI circuit board spawner" - loot = list( - /obj/item/circuitboard/computer/aiupload, - /obj/item/circuitboard/computer/borgupload, - /obj/item/circuitboard/aicore - ) - -/obj/effect/spawner/random/techstorage/command - name = "secure command circuit board spawner" - loot = list( - /obj/item/circuitboard/computer/crew, - /obj/item/circuitboard/computer/communications, - /obj/item/circuitboard/computer/card - ) - -/obj/effect/spawner/random/techstorage/RnD_secure - name = "secure RnD circuit board spawner" - loot = list( - /obj/item/circuitboard/computer/mecha_control, - /obj/item/circuitboard/computer/apc_control, - /obj/item/circuitboard/computer/robotics - ) - -/obj/effect/spawner/random/mafia_outfit - name = "mafia outfit spawner" - loot = list( - /obj/effect/spawner/bundle/costume/mafia = 20, - /obj/effect/spawner/bundle/costume/mafia/white = 5, - /obj/effect/spawner/bundle/costume/mafia/checkered = 2, - /obj/effect/spawner/bundle/costume/mafia/beige = 5 - ) - -/obj/effect/spawner/random/salvage_machine - name = "salvageable machine spawner" - loot = list( - /obj/structure/salvageable/protolathe, - /obj/structure/salvageable/circuit_imprinter, - /obj/structure/salvageable/server, - /obj/structure/salvageable/machine, - /obj/structure/salvageable/autolathe, - /obj/structure/salvageable/computer, - /obj/structure/salvageable/destructive_analyzer - ) - -/obj/effect/spawner/random/ripley - name = "25% exosuit 75% wreckage ripley spawner" - loot = list(/obj/mecha/working/ripley/mining = 1, - /obj/structure/mecha_wreckage/ripley = 5) - spawn_loot_double = FALSE - -/obj/effect/spawner/random/salvage_50 - name = "50% salvage spawner" - loot = list( - /obj/effect/spawner/random/maintenance = 13, - /obj/effect/spawner/random/salvage_machine = 12, - /obj/effect/spawner/random/ripley = 12, - /obj/structure/closet/crate/secure/loot = 13, - "" = 50 - ) - -/obj/effect/spawner/random/stockparts - name = "random good stock parts" - spawn_loot_count = 6 - loot = list( - /obj/item/stock_parts/capacitor/adv, - /obj/item/stock_parts/capacitor/quadratic, - /obj/item/stock_parts/capacitor/super, - /obj/item/stock_parts/cell/hyper, - /obj/item/stock_parts/cell/super, - /obj/item/stock_parts/cell/bluespace, - /obj/item/stock_parts/matter_bin/bluespace, - /obj/item/stock_parts/matter_bin/super, - /obj/item/stock_parts/matter_bin/adv, - /obj/item/stock_parts/micro_laser/ultra, - /obj/item/stock_parts/micro_laser/quadultra, - /obj/item/stock_parts/micro_laser/high, - /obj/item/stock_parts/scanning_module/triphasic, - /obj/item/stock_parts/scanning_module/phasic, - /obj/item/stock_parts/scanning_module/adv, - /obj/item/reagent_containers/glass/beaker/bluespace, - /obj/item/reagent_containers/glass/beaker/plastic, - /obj/item/reagent_containers/glass/beaker/large, - /obj/item/stock_parts/manipulator/nano, - /obj/item/stock_parts/manipulator/pico, - /obj/item/stock_parts/manipulator/femto - ) - -/obj/effect/spawner/random/materials - name = "random bulk materials" - spawn_loot_count = 2 - loot = list( - /obj/item/stack/sheet/plastic/fifty, - /obj/item/stack/sheet/bluespace_crystal/twenty, - /obj/item/stack/sheet/cardboard/fifty, - /obj/item/stack/sheet/glass/fifty, - /obj/item/stack/sheet/metal/fifty, - /obj/item/stack/sheet/plasteel/twenty, - /obj/item/stack/sheet/mineral/plasma/fifty, - /obj/item/stack/sheet/mineral/silver/fifty, - /obj/item/stack/sheet/mineral/titanium/fifty, - /obj/item/stack/sheet/mineral/uranium/fifty, - /obj/item/stack/sheet/mineral/wood/fifty, - /obj/item/stack/sheet/mineral/diamond/twenty, - /obj/item/stack/sheet/mineral/gold/fifty, - - /obj/item/stack/cable_coil/red, - /obj/item/stack/rods/fifty - ) - -/obj/effect/spawner/random/singularitygen - name = "Tesla or Singulo spawner" - spawn_loot_double = FALSE - - loot = list( - /obj/machinery/the_singularitygen/tesla = 1, - /obj/machinery/the_singularitygen = 1, - ) - -/obj/effect/spawner/random/stockparts - name = "random good stock parts" - spawn_loot_count = 5 - loot = list( - /obj/item/stock_parts/capacitor/adv, - /obj/item/stock_parts/capacitor/quadratic, - /obj/item/stock_parts/capacitor/super, - /obj/item/stock_parts/cell/hyper, - /obj/item/stock_parts/cell/super, - /obj/item/stock_parts/cell/bluespace, - /obj/item/stock_parts/matter_bin/bluespace, - /obj/item/stock_parts/matter_bin/super, - /obj/item/stock_parts/matter_bin/adv, - /obj/item/stock_parts/micro_laser/ultra, - /obj/item/stock_parts/micro_laser/quadultra, - /obj/item/stock_parts/micro_laser/high, - /obj/item/stock_parts/scanning_module/triphasic, - /obj/item/stock_parts/scanning_module/phasic, - /obj/item/stock_parts/scanning_module/adv, - /obj/item/reagent_containers/glass/beaker/bluespace, - /obj/item/reagent_containers/glass/beaker/plastic, - /obj/item/reagent_containers/glass/beaker/large, - /obj/item/stock_parts/manipulator/nano, - /obj/item/stock_parts/manipulator/pico, - /obj/item/stock_parts/manipulator/femto - ) - -/obj/effect/spawner/random/materials - name = "random materials" - spawn_loot_count = 3 - loot = list( - /obj/item/stack/sheet/plastic/fifty, - /obj/item/stack/sheet/plastic/five, - /obj/item/stack/sheet/bluespace_crystal/twenty, - /obj/item/stack/sheet/bluespace_crystal/five, - /obj/item/stack/sheet/cardboard/fifty, - /obj/item/stack/sheet/glass/fifty, - /obj/item/stack/sheet/metal/fifty, - /obj/item/stack/sheet/metal/twenty, - /obj/item/stack/sheet/plasteel/twenty, - /obj/item/stack/sheet/mineral/plasma/fifty, - /obj/item/stack/sheet/mineral/plasma/twenty, - /obj/item/stack/sheet/mineral/silver/fifty, - /obj/item/stack/sheet/mineral/titanium/twenty, - /obj/item/stack/sheet/mineral/uranium/twenty, - /obj/item/stack/sheet/mineral/wood/fifty, - /obj/item/stack/sheet/mineral/diamond/twenty, - /obj/item/stack/sheet/mineral/gold/fifty, - /obj/item/stack/cable_coil/red, - /obj/item/stack/rods/fifty - ) - -/obj/effect/spawner/random/donut - name = "random donut" //donut :) - icon_state = "pizzabox" - spawn_loot_count = 1 - loot = list( - /obj/item/reagent_containers/food/snacks/donut/apple = 1, - /obj/item/reagent_containers/food/snacks/donut/berry = 1, - /obj/item/reagent_containers/food/snacks/donut/caramel = 1, - /obj/item/reagent_containers/food/snacks/donut/choco = 1, - /obj/item/reagent_containers/food/snacks/donut/laugh = 1, - /obj/item/reagent_containers/food/snacks/donut/matcha = 1, - /obj/item/reagent_containers/food/snacks/donut/meat = 1, - /obj/item/reagent_containers/food/snacks/donut/plain = 1, - /obj/item/reagent_containers/food/snacks/donut/trumpet = 1, - /obj/item/reagent_containers/food/snacks/donut/blumpkin = 1, - /obj/item/reagent_containers/food/snacks/donut/bungo = 1, - /obj/item/reagent_containers/food/snacks/donut/chaos = 1, - ) - -/obj/effect/spawner/random/donut/jelly - name = "random jelly donut" - spawn_loot_count = 1 - loot = list( - /obj/item/reagent_containers/food/snacks/donut/jelly/berry = 1, - /obj/item/reagent_containers/food/snacks/donut/jelly/apple = 1, - /obj/item/reagent_containers/food/snacks/donut/jelly/blumpkin = 1, - /obj/item/reagent_containers/food/snacks/donut/jelly/bungo = 1, - /obj/item/reagent_containers/food/snacks/donut/jelly/caramel = 1, - /obj/item/reagent_containers/food/snacks/donut/jelly/choco = 1, - /obj/item/reagent_containers/food/snacks/donut/jelly/laugh = 1, - /obj/item/reagent_containers/food/snacks/donut/jelly/matcha = 1, - /obj/item/reagent_containers/food/snacks/donut/jelly/plain = 1, - /obj/item/reagent_containers/food/snacks/donut/jelly/trumpet = 1, - ) - -/obj/effect/spawner/random/donut/slimejelly - name = "random slimejelly donut" - spawn_loot_count = 1 - loot = list( - /obj/item/reagent_containers/food/snacks/donut/jelly/slimejelly/apple = 1, - /obj/item/reagent_containers/food/snacks/donut/jelly/slimejelly/berry = 1, - /obj/item/reagent_containers/food/snacks/donut/jelly/slimejelly/blumpkin = 1, - /obj/item/reagent_containers/food/snacks/donut/jelly/slimejelly/bungo = 1, - /obj/item/reagent_containers/food/snacks/donut/jelly/slimejelly/caramel = 1, - /obj/item/reagent_containers/food/snacks/donut/jelly/slimejelly/choco = 1, - /obj/item/reagent_containers/food/snacks/donut/jelly/slimejelly/laugh = 1, - /obj/item/reagent_containers/food/snacks/donut/jelly/slimejelly/matcha = 1, - /obj/item/reagent_containers/food/snacks/donut/jelly/slimejelly/plain = 1, - /obj/item/reagent_containers/food/snacks/donut/jelly/slimejelly/trumpet = 1, - ) - -/obj/effect/spawner/random/seeded - name = "GO FORTH AND CULTIVATE" - icon = 'icons/obj/hydroponics/seeds.dmi' - icon_state = "seed"//sneed - loot = list( - /obj/item/seeds/aloe, - /obj/item/seeds/ambrosia, - /obj/item/seeds/apple, - /obj/item/seeds/cotton, - /obj/item/seeds/banana, - /obj/item/seeds/berry, - /obj/item/seeds/cabbage, - /obj/item/seeds/carrot, - /obj/item/seeds/cherry, - /obj/item/seeds/chanter, - /obj/item/seeds/chili, - /obj/item/seeds/cocoapod, - /obj/item/seeds/coffee, - /obj/item/seeds/corn, - /obj/item/seeds/eggplant, - /obj/item/seeds/garlic, - /obj/item/seeds/grape, - /obj/item/seeds/grass, - /obj/item/seeds/lemon, - /obj/item/seeds/lime, - /obj/item/seeds/onion, - /obj/item/seeds/orange, - /obj/item/seeds/peas, - /obj/item/seeds/pineapple, - /obj/item/seeds/potato, - /obj/item/seeds/poppy, - /obj/item/seeds/pumpkin, - /obj/item/seeds/wheat/rice, - /obj/item/seeds/soya, - /obj/item/seeds/sugarcane, - /obj/item/seeds/sunflower, - /obj/item/seeds/tea, - /obj/item/seeds/tobacco, - /obj/item/seeds/tomato, - /obj/item/seeds/tower, - /obj/item/seeds/watermelon, - /obj/item/seeds/wheat, - /obj/item/seeds/whitebeet, - /obj/item/seeds/amanita, - /obj/item/seeds/glowshroom, - /obj/item/seeds/liberty, - /obj/item/seeds/nettle, - /obj/item/seeds/plump, - /obj/item/seeds/reishi, - /obj/item/seeds/cannabis, - /obj/item/seeds/starthistle, - /obj/item/seeds/cherry/bomb, - /obj/item/seeds/berry/glow, - /obj/item/seeds/sunflower/moonflower - ) - -/obj/effect/spawner/random/flora - name = "random flora spawner" - loot = list( - /obj/structure/flora/tree/chapel, - /obj/structure/flora/tree/pine, - /obj/structure/flora/tree/jungle/small, - /obj/structure/flora/tree/jungle, - /obj/structure/flora/ash/puce, - /obj/structure/flora/ash/fireblossom, - /obj/structure/flora/ash/fern, - /obj/structure/flora/ash/tall_shroom, - /obj/structure/flora/ash/stem_shroom, - /obj/structure/flora/ash/space/voidmelon, - /obj/structure/flora/ash/leaf_shroom, - /obj/structure/flora/junglebush/large, - /obj/structure/flora/junglebush/b, - /obj/structure/flora/junglebush/c, - /obj/structure/flora/ausbushes/fernybush, - /obj/structure/flora/ausbushes/genericbush, - /obj/structure/flora/ausbushes/grassybush, - /obj/structure/flora/ausbushes/leafybush, - /obj/structure/flora/ausbushes/palebush, - /obj/structure/flora/ausbushes/pointybush, - /obj/structure/flora/ausbushes/reedbush, - /obj/structure/flora/ausbushes/stalkybush, - /obj/structure/flora/ausbushes/sunnybush, - /obj/structure/flora/bush, - /obj/structure/flora/grass/jungle, - /obj/structure/flora/junglebush, - /obj/structure/flora/junglebush/b, - /obj/structure/flora/junglebush/c, - /obj/structure/flora/ash, - /obj/structure/flora/ash/cacti, - /obj/structure/flora/ash/cap_shroom, - /obj/structure/flora/ash/chilly, - /obj/structure/flora/tree/palm - ) - spawn_loot_count = 1 - -/obj/effect/spawner/random/flower - name = "random flower spawner" - loot = list( - /obj/structure/flora/ausbushes/brflowers, - /obj/structure/flora/ausbushes/ywflowers, - /obj/structure/flora/ausbushes/ppflowers, - /obj/structure/flora/ausbushes/fullgrass, - /obj/structure/flora/ausbushes/sparsegrass - ) - spawn_loot_count = 1 - -/obj/effect/spawner/random/anomaly - name = "random anomaly spawner" - loot = list( - /obj/effect/anomaly/bluespace/planetary, - /obj/effect/anomaly/flux/planetary, - /obj/effect/anomaly/grav/planetary, - /obj/effect/anomaly/hallucination/planetary, - /obj/effect/anomaly/pyro/planetary, - /obj/effect/anomaly/vortex/planetary, - /obj/effect/anomaly/grav/high/planetary, - /obj/effect/anomaly/heartbeat/planetary, - /obj/effect/anomaly/sparkler/planetary, - /obj/effect/anomaly/tvstatic/planetary, - /obj/effect/anomaly/veins/planetary, - /obj/effect/anomaly/plasmasoul/planetary, - /obj/effect/anomaly/phantom/planetary, - /obj/effect/anomaly/melter/planetary, - ) - -/obj/effect/spawner/random/anomaly/safe - name = "relatively safe anomaly spawner" - loot = list( - /obj/effect/anomaly/hallucination/planetary, - /obj/effect/anomaly/pyro/planetary, - /obj/effect/anomaly/sparkler/planetary, - /obj/effect/anomaly/veins/planetary, - /obj/effect/anomaly/phantom/planetary, - ) - -/obj/effect/spawner/random/anomaly/dangerous - name = "relatively dangerous anomaly spawner" - loot = list( - /obj/effect/anomaly/bluespace/planetary, - /obj/effect/anomaly/flux/planetary, - /obj/effect/anomaly/grav/planetary, - /obj/effect/anomaly/vortex/planetary, - /obj/effect/anomaly/grav/high/planetary, - /obj/effect/anomaly/heartbeat/planetary, - /obj/effect/anomaly/tvstatic/planetary, - /obj/effect/anomaly/plasmasoul/planetary, - /obj/effect/anomaly/melter/planetary, - ) - -/obj/effect/spawner/random/anomaly/big - name = "random big anomaly spawner" - loot = list( - /obj/effect/anomaly/bluespace/big/planetary, - /obj/effect/anomaly/flux/big/planetary, - /obj/effect/anomaly/grav/high/big/planetary, - /obj/effect/anomaly/pyro/big/planetary - - ) - -//handpicked lists relevant to the planets they're on -// /cave lists are made for spawning in cave biomes. Not every anomaly goes well there. We don't have enough anomalies to really populate them all though - -/obj/effect/spawner/random/anomaly/jungle - name = "Jungle Anomaly Spawner" - loot = list( - /obj/effect/anomaly/flux/planetary, - /obj/effect/anomaly/hallucination/planetary, - /obj/effect/anomaly/heartbeat/planetary, - /obj/effect/anomaly/tvstatic/planetary, - /obj/effect/anomaly/veins/planetary, - /obj/effect/anomaly/phantom/planetary, - ) - -/obj/effect/spawner/random/anomaly/jungle/cave - loot = list( - /obj/effect/anomaly/flux/planetary, - /obj/effect/anomaly/hallucination/planetary, - /obj/effect/anomaly/heartbeat/planetary, - /obj/effect/anomaly/tvstatic/planetary, - /obj/effect/anomaly/veins/planetary, - /obj/effect/anomaly/phantom/planetary, - ) - -//beaches don't currently have anomalies, but I don't see a reason why they couldn't have *some* - -/obj/effect/spawner/random/anomaly/beach - name = "Beach anomaly spawner" - loot = list( - /obj/effect/anomaly/hallucination/planetary, - /obj/effect/anomaly/sparkler/planetary, - /obj/effect/anomaly/veins/planetary, - /obj/effect/anomaly/phantom/planetary, - ) - -/obj/effect/spawner/random/anomaly/beach/cave - loot = list( - /obj/effect/anomaly/hallucination/planetary, - /obj/effect/anomaly/sparkler/planetary, - /obj/effect/anomaly/veins/planetary, - /obj/effect/anomaly/phantom/planetary, - ) - -/obj/effect/spawner/random/anomaly/sand - name = "Sand anomaly spawner" - loot = list( - /obj/effect/anomaly/bluespace/planetary, - /obj/effect/anomaly/flux/planetary, - /obj/effect/anomaly/sparkler/planetary, - /obj/effect/anomaly/tvstatic/planetary, - /obj/effect/anomaly/veins/planetary, - /obj/effect/anomaly/phantom/planetary, - /obj/effect/anomaly/melter/planetary, - ) - -/obj/effect/spawner/random/anomaly/sand/cave - loot = list( - /obj/effect/anomaly/flux/planetary, - /obj/effect/anomaly/pyro/planetary, - /obj/effect/anomaly/sparkler/planetary, - /obj/effect/anomaly/tvstatic/planetary, - /obj/effect/anomaly/veins/planetary, - /obj/effect/anomaly/phantom/planetary, - /obj/effect/anomaly/melter/planetary, - ) - -/obj/effect/spawner/random/anomaly/rock - name = "Rock anomaly spawner" - loot = list( - /obj/effect/anomaly/bluespace/planetary, - /obj/effect/anomaly/flux/planetary, - /obj/effect/anomaly/grav/planetary, - /obj/effect/anomaly/hallucination/planetary, - /obj/effect/anomaly/pyro/planetary, - /obj/effect/anomaly/vortex/planetary, - /obj/effect/anomaly/grav/high/planetary, - /obj/effect/anomaly/heartbeat/planetary, - /obj/effect/anomaly/sparkler/planetary, - /obj/effect/anomaly/tvstatic/planetary, - /obj/effect/anomaly/veins/planetary, - /obj/effect/anomaly/plasmasoul/planetary, - /obj/effect/anomaly/phantom/planetary, - /obj/effect/anomaly/melter/planetary, - ) - -/obj/effect/spawner/random/anomaly/rock/cave - loot = list( - /obj/effect/anomaly/flux/planetary, - /obj/effect/anomaly/hallucination/planetary, - /obj/effect/anomaly/pyro/planetary, - /obj/effect/anomaly/heartbeat/planetary, - /obj/effect/anomaly/sparkler/planetary, - /obj/effect/anomaly/veins/planetary, - /obj/effect/anomaly/plasmasoul/planetary, - /obj/effect/anomaly/phantom/planetary, - /obj/effect/anomaly/melter/planetary, - ) - -/obj/effect/spawner/random/anomaly/lava - name = "Lava anomaly spawner" - loot = list( - /obj/effect/anomaly/bluespace/planetary, - /obj/effect/anomaly/flux/planetary, - /obj/effect/anomaly/grav/planetary, - /obj/effect/anomaly/hallucination/planetary, - /obj/effect/anomaly/pyro/planetary, - /obj/effect/anomaly/vortex/planetary, - /obj/effect/anomaly/plasmasoul/planetary, - ) - -/obj/effect/spawner/random/anomaly/lava/cave - loot = list( - /obj/effect/anomaly/flux/planetary, - /obj/effect/anomaly/hallucination/planetary, - /obj/effect/anomaly/pyro/planetary, - /obj/effect/anomaly/plasmasoul/planetary, - ) - -/obj/effect/spawner/random/anomaly/ice - name = "Ice anomaly spawner" - loot = list( - /obj/effect/anomaly/bluespace/planetary, - /obj/effect/anomaly/grav/planetary, - /obj/effect/anomaly/hallucination/planetary, - /obj/effect/anomaly/vortex/planetary, - /obj/effect/anomaly/grav/high/planetary, - /obj/effect/anomaly/plasmasoul/planetary, - /obj/effect/anomaly/phantom/planetary, - ) - -/obj/effect/spawner/random/anomaly/ice/cave - loot = list( - /obj/effect/anomaly/hallucination/planetary, - /obj/effect/anomaly/grav/high/planetary, - /obj/effect/anomaly/plasmasoul/planetary, - /obj/effect/anomaly/phantom/planetary, - ) - -/obj/effect/spawner/random/anomaly/waste - name = "Waste anomaly spawner" - loot = list( - /obj/effect/anomaly/vortex/planetary, - /obj/effect/anomaly/heartbeat/planetary, - /obj/effect/anomaly/veins/planetary, - /obj/effect/anomaly/plasmasoul/planetary, - /obj/effect/anomaly/melter/planetary, - ) - -/obj/effect/spawner/random/anomaly/waste/cave - loot = list( - /obj/effect/anomaly/heartbeat/planetary, - /obj/effect/anomaly/veins/planetary, - /obj/effect/anomaly/plasmasoul/planetary, - /obj/effect/anomaly/melter/planetary, - ) - -/obj/effect/spawner/random/anomaly/storm - loot = list( - /obj/effect/anomaly/flux, - /obj/effect/anomaly/pyro, - /obj/effect/anomaly/sparkler, - /obj/effect/anomaly/veins, - /obj/effect/anomaly/phantom, - /obj/effect/anomaly/melter, - ) - -//wasteplanet things - -/obj/effect/spawner/random/waste/grille_or_trash - icon_state = "grille" - name = "wasteplanet loot spawner" - loot = list( - /obj/structure/grille/broken = 5, - /obj/structure/grille = 5, - /obj/item/cigbutt = 1, - /obj/item/trash/cheesie = 1, - /obj/item/trash/candy = 1, - /obj/item/trash/chips = 1, - /obj/item/reagent_containers/food/snacks/deadmouse = 1, - /obj/item/trash/pistachios = 1, - /obj/item/trash/plate = 1, - /obj/item/trash/popcorn = 1, - /obj/item/trash/raisins = 1, - /obj/item/trash/sosjerky = 1, - /obj/item/trash/syndi_cakes = 1 - ) - -/obj/effect/spawner/random/waste/mechwreck - icon_state = "ripley" - name = "wasteplanet exosuit wreckage" - loot = list( - /obj/structure/mecha_wreckage/ripley = 15, - /obj/structure/mecha_wreckage/ripley/firefighter = 9, - /obj/structure/mecha_wreckage/ripley/mkii = 9, - /obj/structure/mecha_wreckage/ripley/clip = 9 - ) - -/obj/effect/spawner/random/waste/mechwreck/rare - loot = list( - /obj/structure/mecha_wreckage/durand = 12.5, - /obj/structure/mecha_wreckage/durand/clip = 12.5, - /obj/structure/mecha_wreckage/odysseus = 25, - /obj/structure/mecha_wreckage/gygax = 25 - ) - -/obj/effect/spawner/random/waste/trash //debatable if this is actually loot - icon_state = "trash" - loot = list( - /obj/effect/decal/cleanable/greenglow/filled = 30, - /obj/effect/decal/cleanable/greenglow/ecto = 1, - /obj/effect/decal/cleanable/glass = 30, - /obj/effect/decal/cleanable/glass/plasma = 30, - /obj/effect/decal/cleanable/glass/strange = 30, - /obj/effect/decal/cleanable/molten_object = 30, - /obj/effect/decal/cleanable/molten_object/large = 30, - /obj/effect/decal/cleanable/oil = 30, - /obj/effect/decal/cleanable/oil/slippery = 1, // :) - /obj/effect/decal/cleanable/plastic = 30, - /obj/effect/decal/cleanable/ash = 30, - /obj/effect/decal/cleanable/ash/large = 30, - ) - -/obj/effect/spawner/random/waste/radiation - loot = list( - /obj/structure/radioactive = 6, - /obj/structure/radioactive/stack = 6, - /obj/structure/radioactive/waste = 6 - ) - -/obj/effect/spawner/random/waste/radiation/more_rads - loot = list( - /obj/structure/radioactive = 3, - /obj/structure/radioactive/stack = 12, - /obj/structure/radioactive/waste = 12 - ) - -/obj/effect/spawner/random/waste/atmos_can - loot = list( - /obj/machinery/portable_atmospherics/canister/toxins = 3, - /obj/machinery/portable_atmospherics/canister/carbon_dioxide = 3, - /obj/machinery/portable_atmospherics/canister/nitrogen = 3, - /obj/machinery/portable_atmospherics/canister/oxygen = 3, - /obj/machinery/portable_atmospherics/canister/nitrous_oxide = 1, - /obj/machinery/portable_atmospherics/canister/water_vapor = 1 - ) - -/obj/effect/spawner/random/waste/atmos_can/rare - loot = list( - /obj/machinery/portable_atmospherics/canister/tritium = 3, - /obj/machinery/portable_atmospherics/canister/pluoxium = 3 - ) - -/obj/effect/spawner/random/waste/salvageable - loot = list( - /obj/structure/salvageable/machine = 20, - /obj/structure/salvageable/autolathe = 15, - /obj/structure/salvageable/computer = 10, - /obj/structure/salvageable/protolathe = 10, - /obj/structure/salvageable/circuit_imprinter = 8, - /obj/structure/salvageable/destructive_analyzer = 8, - /obj/structure/salvageable/server = 8 - ) - -/obj/effect/spawner/random/waste/girder - loot = list( - /obj/structure/girder, - /obj/structure/girder/displaced, - /obj/structure/girder/reinforced - ) -/obj/effect/spawner/random/waste/hivebot - loot = list( - /obj/effect/spawner/random/salvage/metal, - /obj/effect/spawner/random/salvage/metal, - /obj/effect/spawner/random/salvage/metal, - /obj/effect/spawner/random/salvage/gold, - /obj/effect/spawner/random/salvage/plasma, - /obj/effect/spawner/random/salvage/silver, - /obj/effect/spawner/random/salvage/titanium, - /obj/item/stack/ore/salvage/scrapbluespace, - /obj/item/stack/ore/salvage/scrapbluespace, - /obj/item/stack/ore/salvage/scrapuranium - ) - spawn_loot_count = 2 - -/obj/effect/spawner/random/waste/hivebot/beacon - spawn_loot_count = 6 - -/obj/effect/spawner/random/salvage - name = "salvage mats spawner" - icon_state = "metal" - loot = list( - /obj/item/stack/ore/salvage/scrapmetal, - /obj/item/stack/ore/salvage/scrapgold, - /obj/item/stack/ore/salvage/scrapplasma, - /obj/item/stack/ore/salvage/scrapsilver, - /obj/item/stack/ore/salvage/scraptitanium, - /obj/item/stack/ore/salvage/scrapbluespace, - /obj/item/stack/ore/salvage/scrapuranium - ) - -/obj/effect/spawner/random/salvage/metal - loot = list( - /obj/item/stack/ore/salvage/scrapmetal - ) - -/obj/effect/spawner/random/salvage/metal/Initialize() - spawn_loot_count = pick(list( - 1, - 2, - 3, - 4 - )) - return ..() - -/obj/effect/spawner/random/salvage/gold - loot = list( - /obj/item/stack/ore/salvage/scrapgold - ) - -/obj/effect/spawner/random/salvage/gold/Initialize() - spawn_loot_count = pick(list( - 1, - 2, - 3, - 4 - )) - return ..() - -/obj/effect/spawner/random/salvage/plasma - loot = list( - /obj/item/stack/ore/salvage/scrapplasma - ) -/obj/effect/spawner/random/salvage/plasma/Initialize() - spawn_loot_count = pick(list( - 1, - 2, - 3, - 4 - )) - return ..() - - -/obj/effect/spawner/random/salvage/silver - loot = list( - /obj/item/stack/ore/salvage/scrapsilver - ) -/obj/effect/spawner/random/salvage/silver/Initialize() - spawn_loot_count = pick(list( - 1, - 2, - 3, - 4 - )) - return ..() - - -/obj/effect/spawner/random/salvage/titanium - loot = list( - /obj/item/stack/ore/salvage/scraptitanium - ) -/obj/effect/spawner/random/salvage/titanium/Initialize() - spawn_loot_count = pick(list( - 1, - 2, - 3, - 4 - )) - return ..() - -/obj/effect/spawner/random/salvage/bluespace - loot = list( - /obj/item/stack/ore/salvage/scrapbluespace - ) -/obj/effect/spawner/random/salvage/bluespace/Initialize() - spawn_loot_count = pick(list( - 1, - 2, - 3, - 4 - )) - return ..() - -/obj/effect/spawner/random/salvage/uranium - loot = list( - /obj/item/stack/ore/salvage/scrapuranium - ) -/obj/effect/spawner/random/salvage/uranium/Initialize() - spawn_loot_count = pick(list( - 1, - 2, - 3, - 4 - )) - return ..() - - -//random RND imprinter/protolathe board spawners. Do not use on maps without a good reason -/obj/effect/spawner/random/randomprotolathe - name = "random departmental protolathe" - loot = list( - /obj/item/circuitboard/machine/protolathe/department/cargo, - /obj/item/circuitboard/machine/protolathe/department/engineering, - /obj/item/circuitboard/machine/protolathe/department/service, - /obj/item/circuitboard/machine/protolathe/department/medical, - /obj/item/circuitboard/machine/protolathe/department/science, - /obj/item/circuitboard/machine/protolathe/department/security - ) - -/obj/effect/spawner/random/randomimprinter - name = "random departmental circuit imprinter" - loot = list( - /obj/item/circuitboard/machine/circuit_imprinter/department/cargo, - /obj/item/circuitboard/machine/circuit_imprinter/department/engi, - /obj/item/circuitboard/machine/circuit_imprinter/department/civ, - /obj/item/circuitboard/machine/circuit_imprinter/department/med, - /obj/item/circuitboard/machine/circuit_imprinter/department/science, - /obj/item/circuitboard/machine/circuit_imprinter/department/sec - ) - -/obj/effect/spawner/random/randomtechfab - name = "random departmental techfab" - loot = list( - /obj/item/circuitboard/machine/techfab/department/service, - /obj/item/circuitboard/machine/techfab/department/cargo, - /obj/item/circuitboard/machine/techfab/department/engineering, - /obj/item/circuitboard/machine/techfab/department/service, - /obj/item/circuitboard/machine/techfab/department/medical, - /obj/item/circuitboard/machine/techfab/department/science, - /obj/item/circuitboard/machine/techfab/department/security - ) diff --git a/code/game/objects/effects/spawners/random.dm/waste_planet.dm b/code/game/objects/effects/spawners/random.dm/waste_planet.dm new file mode 100644 index 000000000000..46ad61a754a6 --- /dev/null +++ b/code/game/objects/effects/spawners/random.dm/waste_planet.dm @@ -0,0 +1,101 @@ +/obj/effect/spawner/random/waste/grille_or_trash + icon_state = "grille" + name = "wasteplanet loot spawner" + loot = list( + /obj/structure/grille/broken = 5, + /obj/structure/grille = 5, + /obj/item/cigbutt = 1, + /obj/item/trash/cheesie = 1, + /obj/item/trash/candy = 1, + /obj/item/trash/chips = 1, + /obj/item/reagent_containers/food/snacks/deadmouse = 1, + /obj/item/trash/pistachios = 1, + /obj/item/trash/plate = 1, + /obj/item/trash/popcorn = 1, + /obj/item/trash/raisins = 1, + /obj/item/trash/sosjerky = 1, + /obj/item/trash/syndi_cakes = 1 + ) + +/obj/effect/spawner/random/waste/mechwreck + icon_state = "ripley" + name = "wasteplanet exosuit wreckage" + loot = list( + /obj/structure/mecha_wreckage/ripley = 15, + /obj/structure/mecha_wreckage/ripley/firefighter = 9, + /obj/structure/mecha_wreckage/ripley/mkii = 9, + /obj/structure/mecha_wreckage/ripley/clip = 9 + ) + +/obj/effect/spawner/random/waste/mechwreck/rare + loot = list( + /obj/structure/mecha_wreckage/durand = 12.5, + /obj/structure/mecha_wreckage/durand/clip = 12.5, + /obj/structure/mecha_wreckage/odysseus = 25, + /obj/structure/mecha_wreckage/gygax = 25 + ) + +/obj/effect/spawner/random/waste/radiation + loot = list( + /obj/structure/radioactive = 6, + /obj/structure/radioactive/stack = 6, + /obj/structure/radioactive/waste = 6 + ) + +/obj/effect/spawner/random/waste/radiation/more_rads + loot = list( + /obj/structure/radioactive = 3, + /obj/structure/radioactive/stack = 12, + /obj/structure/radioactive/waste = 12 + ) + +/obj/effect/spawner/random/waste/atmos_can + loot = list( + /obj/machinery/portable_atmospherics/canister/toxins = 3, + /obj/machinery/portable_atmospherics/canister/carbon_dioxide = 3, + /obj/machinery/portable_atmospherics/canister/nitrogen = 3, + /obj/machinery/portable_atmospherics/canister/oxygen = 3, + /obj/machinery/portable_atmospherics/canister/nitrous_oxide = 1, + /obj/machinery/portable_atmospherics/canister/water_vapor = 1 + ) + +/obj/effect/spawner/random/waste/atmos_can/rare + loot = list( + /obj/machinery/portable_atmospherics/canister/tritium = 3, + /obj/machinery/portable_atmospherics/canister/pluoxium = 3 + ) + +/obj/effect/spawner/random/waste/salvageable + loot = list( + /obj/structure/salvageable/machine = 20, + /obj/structure/salvageable/autolathe = 15, + /obj/structure/salvageable/computer = 10, + /obj/structure/salvageable/protolathe = 10, + /obj/structure/salvageable/circuit_imprinter = 8, + /obj/structure/salvageable/destructive_analyzer = 8, + /obj/structure/salvageable/server = 8 + ) + +/obj/effect/spawner/random/waste/girder + loot = list( + /obj/structure/girder, + /obj/structure/girder/displaced, + /obj/structure/girder/reinforced + ) +/obj/effect/spawner/random/waste/hivebot + loot = list( + /obj/effect/spawner/random/salvage/metal, + /obj/effect/spawner/random/salvage/metal, + /obj/effect/spawner/random/salvage/metal, + /obj/effect/spawner/random/salvage/gold, + /obj/effect/spawner/random/salvage/plasma, + /obj/effect/spawner/random/salvage/silver, + /obj/effect/spawner/random/salvage/titanium, + /obj/item/stack/ore/salvage/scrapbluespace, + /obj/item/stack/ore/salvage/scrapbluespace, + /obj/item/stack/ore/salvage/scrapuranium + ) + spawn_loot_count = 2 + +/obj/effect/spawner/random/waste/hivebot/beacon + spawn_loot_count = 6 diff --git a/code/game/objects/effects/spawners/spawner.dm b/code/game/objects/effects/spawners/spawner.dm new file mode 100644 index 000000000000..d8091c6cfc65 --- /dev/null +++ b/code/game/objects/effects/spawners/spawner.dm @@ -0,0 +1,23 @@ +/obj/effect/spawner + name = "object spawner" + +// Brief explanation: +// Rather then setting up and then deleting spawners, we block all atomlike setup +// and do the absolute bare minimum +// This is with the intent of optimizing mapload +/obj/effect/spawner/Initialize(mapload) + SHOULD_CALL_PARENT(FALSE) + if(flags_1 & INITIALIZED_1) + stack_trace("Warning: [src]([type]) initialized multiple times!") + flags_1 |= INITIALIZED_1 + + return INITIALIZE_HINT_QDEL + +/obj/effect/spawner/Destroy(force) + SHOULD_CALL_PARENT(FALSE) + moveToNullspace() + return QDEL_HINT_QUEUE + +/// Override to define loot blacklist behavior +/obj/effect/spawner/proc/can_spawn(atom/loot) + return TRUE diff --git a/code/game/objects/items/plushes.dm b/code/game/objects/items/plushes.dm index 6e394c434141..dd00d3abd1fd 100644 --- a/code/game/objects/items/plushes.dm +++ b/code/game/objects/items/plushes.dm @@ -863,44 +863,3 @@ var/mutable_appearance/base_overlay_among = mutable_appearance(icon, "plushie_among_visor") base_overlay_among.appearance_flags = RESET_COLOR add_overlay(base_overlay_among) - -/obj/effect/spawner/random/plushie - icon_state = "plushie" - loot = list ( - /obj/item/toy/plush/beeplushie, - /obj/item/toy/plush/blahaj, - /obj/item/toy/plush/carpplushie, - /obj/item/toy/plush/flushed, - /obj/item/toy/plush/kari, - /obj/item/toy/plush/lizardplushie, - /obj/item/toy/plush/mora, - /obj/item/toy/plush/realgoat, - /obj/item/toy/plush/rilena, - /obj/item/toy/plush/sharai, - /obj/item/toy/plush/slimeplushie, - /obj/item/toy/plush/snakeplushie, - /obj/item/toy/plush/spider, - /obj/item/toy/plush/tali, - /obj/item/toy/plush/xader, - /obj/effect/spawner/random/plushie/moth // fair chances - ) - -/obj/effect/spawner/random/plushie/moth - loot = list ( - /obj/item/toy/plush/moth, - /obj/item/toy/plush/moth/monarch, - /obj/item/toy/plush/moth/luna, - /obj/item/toy/plush/moth/atlas, - /obj/item/toy/plush/moth/redish, - /obj/item/toy/plush/moth/royal, - /obj/item/toy/plush/moth/gothic, - /obj/item/toy/plush/moth/lovers, - /obj/item/toy/plush/moth/whitefly, - /obj/item/toy/plush/moth/punished, - /obj/item/toy/plush/moth/firewatch, - /obj/item/toy/plush/moth/deadhead, - /obj/item/toy/plush/moth/poison, - /obj/item/toy/plush/moth/ragged, - /obj/item/toy/plush/moth/snow, - /obj/item/toy/plush/moth/moonfly - ) diff --git a/code/game/objects/items/storage/uplink_kits.dm b/code/game/objects/items/storage/uplink_kits.dm index 614cba2c4bbb..033f0ff8c1d8 100644 --- a/code/game/objects/items/storage/uplink_kits.dm +++ b/code/game/objects/items/storage/uplink_kits.dm @@ -181,7 +181,7 @@ new /obj/item/melee/transforming/energy/sword/saber/blue(src) //see see it fits the theme bc its blue and ice is blue if("made_man") - new /obj/effect/spawner/random/mafia_outfit(src) // 0 TC, just an outfit for the new 'don of this family + new /obj/effect/spawner/random/clothing/mafia_outfit(src) // 0 TC, just an outfit for the new 'don of this family new /obj/item/gun/ballistic/automatic/smg/firestorm/pan(src) // 20 TC, a gun with 50 .45 bullets on a three round burst is kinda outstanding new /obj/item/melee/knife/switchblade(src) // 3 TC? It's nice, but it's really a stealth/oh fuck I'm out of ammo weapon new /obj/item/reagent_containers/food/drinks/bottle/vodka (src) // 5 TC, free molotov assemblies diff --git a/code/game/objects/structures/crates_lockers/closets/gimmick.dm b/code/game/objects/structures/crates_lockers/closets/gimmick.dm index cfea37148e55..a69a279bad77 100644 --- a/code/game/objects/structures/crates_lockers/closets/gimmick.dm +++ b/code/game/objects/structures/crates_lockers/closets/gimmick.dm @@ -14,7 +14,6 @@ desc = "It looks alien!" icon_state = "alien" - /obj/structure/closet/gimmick name = "administrative supply closet" desc = "It's a storage unit for things that have no right being here." diff --git a/code/game/objects/structures/salvaging.dm b/code/game/objects/structures/salvaging.dm index 9704756bb42b..ccb76bd81c4a 100644 --- a/code/game/objects/structures/salvaging.dm +++ b/code/game/objects/structures/salvaging.dm @@ -91,8 +91,8 @@ /obj/item/computer_hardware/card_slot = 40, /obj/item/computer_hardware/network_card/advanced = 20, - /obj/effect/spawner/random/random_computer_circuit_common = 50, - /obj/effect/spawner/random/random_computer_circuit_rare = 5, + /obj/effect/spawner/random/circuit/computer/common = 50, + /obj/effect/spawner/random/circuit/computer/rare = 5, /obj/item/research_notes/loot/tiny = 10, ) @@ -106,7 +106,6 @@ /obj/item/stack/ore/salvage/scraptitanium/five = 60, /obj/item/stack/ore/salvage/scrapmetal/five = 60, - /obj/effect/spawner/random/salvage_matter_bin = 40, /obj/effect/spawner/random/salvage_matter_bin = 40, /obj/effect/spawner/random/salvage_matter_bin = 40, @@ -139,10 +138,10 @@ /obj/effect/spawner/random/salvage_manipulator = 30, /obj/effect/spawner/random/salvage_manipulator = 30, - /obj/effect/spawner/random/tool_engie_proto = 45, - /obj/effect/spawner/random/tool_surgery_proto = 55, - /obj/effect/spawner/random/beaker_loot_spawner = 45, - /obj/effect/spawner/random/random_prosthetic = 25, + /obj/effect/spawner/random/engineering/tool = 45, + /obj/effect/spawner/random/medical/surgery_tool = 55, + /obj/effect/spawner/random/medical/beaker = 45, + /obj/effect/spawner/random/medical/prosthetic = 25, /obj/effect/spawner/random/random_gun_protolathe_lootdrop = 5, //:flushed: /obj/effect/spawner/random/random_ammo_protolathe_lootdrop = 5, @@ -176,9 +175,9 @@ /obj/effect/spawner/random/salvage_manipulator = 30, /obj/item/stack/circuit_stack = 50, //this might be the only way in the game to get a poly circuit, and the only way for many ships to get essensial electronics. huh. - /obj/effect/spawner/random/random_machine_circuit_mech = 45, //with all the wonderful broken mechs lying around, this might be a chance to get something stupidly overpowered. - /obj/effect/spawner/random/random_machine_circuit_common = 50, //well.... "common" - /obj/effect/spawner/random/random_machine_circuit_rare = 5, + /obj/effect/spawner/random/circuit/machine/mech = 45, //with all the wonderful broken mechs lying around, this might be a chance to get something stupidly overpowered. + /obj/effect/spawner/random/circuit/machine/common = 50, //well.... "common" + /obj/effect/spawner/random/circuit/machine/rare = 5, /obj/item/stack/sheet/metal/five = 15, //same as above but more geared towards stuff used by circuit imprinter /obj/item/stack/sheet/glass/five = 15, @@ -342,11 +341,11 @@ color = "#808080" salvageable_parts = list( - /obj/effect/spawner/random/seeded = 80, - /obj/effect/spawner/random/seeded = 80, - /obj/effect/spawner/random/seeded = 80, - /obj/effect/spawner/random/seeded = 80, - /obj/effect/spawner/random/seeded = 80, + /obj/effect/spawner/random/food_or_drink/seed = 80, + /obj/effect/spawner/random/food_or_drink/seed = 80, + /obj/effect/spawner/random/food_or_drink/seed = 80, + /obj/effect/spawner/random/food_or_drink/seed = 80, + /obj/effect/spawner/random/food_or_drink/seed = 80, /obj/item/seeds/random = 80, /obj/item/seeds/random = 40, /obj/item/seeds/random = 40, diff --git a/code/modules/cargo/blackmarket/blackmarket_items/consumables.dm b/code/modules/cargo/blackmarket/blackmarket_items/consumables.dm index 2053bab4efb2..65a72290bf07 100644 --- a/code/modules/cargo/blackmarket/blackmarket_items/consumables.dm +++ b/code/modules/cargo/blackmarket/blackmarket_items/consumables.dm @@ -4,7 +4,7 @@ /datum/blackmarket_item/consumable/donk_pocket_box name = "Box of Donk Pockets" desc = "A well packaged box containing the favourite snack of every spacefarer." - item = /obj/effect/spawner/random/donkpockets + item = /obj/effect/spawner/random/food_or_drink/donkpockets stock_min = 2 stock_max = 5 diff --git a/code/modules/cargo/packs/costumes_toys.dm b/code/modules/cargo/packs/costumes_toys.dm index d235343fdbcf..a7bcbb2fe7d4 100644 --- a/code/modules/cargo/packs/costumes_toys.dm +++ b/code/modules/cargo/packs/costumes_toys.dm @@ -103,7 +103,7 @@ /datum/supply_pack/costumes_toys/mafia/fill(obj/structure/closet/crate/C) for(var/i in 1 to 4) - new /obj/effect/spawner/random/mafia_outfit(C) + new /obj/effect/spawner/random/clothing/mafia_outfit(C) new /obj/item/virgin_mary(C) if(prob(30)) //Not all mafioso have mustaches, some people also find this item annoying. new /obj/item/clothing/mask/fakemoustache/italian(C) diff --git a/code/modules/mining/lavaland/ash_flora.dm b/code/modules/mining/lavaland/ash_flora.dm index 3cd04f67fd2e..bf4ad80647ef 100644 --- a/code/modules/mining/lavaland/ash_flora.dm +++ b/code/modules/mining/lavaland/ash_flora.dm @@ -508,7 +508,7 @@ icon_state = "garden" harvested_name = "lush garden" harvested_desc = "In the soil and shade, something softly grew. It seems some industrious scavenger already passed by." - harvest = /obj/effect/spawner/random/garden + harvest = /obj/effect/spawner/random/food_or_drink/garden harvest_amount_high = 1 harvest_amount_low = 1 harvest_message_low = "You discover something nestled away in the growing bough." @@ -527,7 +527,7 @@ icon_state = "gardenarid" harvested_name = "sandy garden" harvested_desc = "Beneath a bluff of soft silicate, a sheltered grove slumbered. Some desert wanderer seems to have picked it clean." - harvest = /obj/effect/spawner/random/garden/arid + harvest = /obj/effect/spawner/random/food_or_drink/garden/arid harvest_amount_high = 1 harvest_amount_low = 1 harvest_message_low = "You brush sand away from a verdant prize, nestled in the leaves." @@ -540,7 +540,7 @@ icon_state = "gardencold" harvested_name = "chilly garden" harvested_desc = "A delicate layer of frost covers hardy brush. Someone came with the blizzard, and left with any prize this might contain." - harvest = /obj/effect/spawner/random/garden/cold + harvest = /obj/effect/spawner/random/food_or_drink/garden/cold harvest_amount_high = 1 harvest_amount_low = 1 harvest_message_low = "You unearth a snow-covered treat." @@ -553,7 +553,7 @@ icon_state = "gardensick" harvested_name = "sickly garden" harvested_desc = "Polluted water wells up from the cracked earth, where it once fed a patch of something curious. Now only wilted leaves remain." - harvest = /obj/effect/spawner/random/garden/sick + harvest = /obj/effect/spawner/random/food_or_drink/garden/sick harvest_amount_high = 1 harvest_amount_low = 1 harvest_message_low = "You pry something odd from the poisoned soil." @@ -567,124 +567,13 @@ icon_state = "seaweed" harvested_name = "seaweed patch" harvested_desc = "A patch of seaweed, floating on the surface of the water. It seems someone has already searched through this" - harvest = /obj/effect/spawner/random/garden/seaweed + harvest = /obj/effect/spawner/random/food_or_drink/garden/seaweed harvest_amount_high = 1 harvest_amount_low = 1 harvest_message_low = "You discover some edible weeds within the patch." harvest_message_med = "You discover some edible weeds within the patch." harvest_message_high = "You discover some edible weeds within the patch." -/obj/effect/spawner/random/garden - name = "lush garden seeder" - spawn_loot_count = 3 - var/list/plant = list( - /obj/item/reagent_containers/food/snacks/grown/ambrosia/deus = 1, - /obj/item/reagent_containers/food/snacks/grown/berries/death/stealth = 2, - /obj/item/reagent_containers/food/snacks/grown/citrus/orange_3d = 1, - /obj/item/reagent_containers/food/snacks/grown/trumpet = 1, - /obj/item/reagent_containers/food/snacks/grown/bungofruit = 1, - /obj/item/seeds/random = 1, - /obj/item/grown/log/bamboo = 2, - /obj/item/reagent_containers/food/snacks/grown/ambrosia/vulgaris = 2, - /obj/item/reagent_containers/food/snacks/grown/berries/poison/stealth = 5, - /obj/item/reagent_containers/food/snacks/grown/citrus/lemon = 2, - /obj/item/reagent_containers/food/snacks/grown/citrus/lime = 2, - /obj/item/reagent_containers/food/snacks/grown/vanillapod = 2, - /obj/item/reagent_containers/food/snacks/grown/moonflower = 2, - /obj/item/reagent_containers/food/snacks/grown/cocoapod = 2, - /obj/item/reagent_containers/food/snacks/grown/pineapple = 2, - /obj/item/reagent_containers/food/snacks/grown/poppy/lily = 2, - /obj/item/reagent_containers/food/snacks/grown/poppy/geranium = 2, - /obj/item/reagent_containers/food/snacks/grown/sugarcane = 2, - /obj/item/reagent_containers/food/snacks/grown/tea = 2, - /obj/item/reagent_containers/food/snacks/grown/tobacco = 2, - /obj/item/reagent_containers/food/snacks/grown/watermelon = 4, - /obj/item/grown/sunflower = 4, - /obj/item/reagent_containers/food/snacks/grown/banana = 4, - /obj/item/reagent_containers/food/snacks/grown/apple = 4, - /obj/item/reagent_containers/food/snacks/grown/berries = 5, - /obj/item/reagent_containers/food/snacks/grown/cherries = 4, - /obj/item/reagent_containers/food/snacks/grown/citrus/orange = 4, - /obj/item/reagent_containers/food/snacks/grown/garlic = 4, - /obj/item/reagent_containers/food/snacks/grown/grapes = 4, - /obj/item/reagent_containers/food/snacks/grown/grass = 5, - /obj/item/reagent_containers/food/snacks/grown/pumpkin = 4, - /obj/item/reagent_containers/food/snacks/grown/rainbow_flower = 4, - /obj/item/reagent_containers/food/snacks/grown/wheat = 4, - /obj/item/reagent_containers/food/snacks/grown/parsnip = 4, - /obj/item/reagent_containers/food/snacks/grown/peas = 4, - /obj/item/reagent_containers/food/snacks/grown/rice = 4, - /obj/item/reagent_containers/food/snacks/grown/soybeans = 4, - /obj/item/reagent_containers/food/snacks/grown/tomato = 4, - /obj/item/reagent_containers/food/snacks/grown/cabbage = 4, - /obj/item/reagent_containers/food/snacks/grown/onion = 4, - /obj/item/reagent_containers/food/snacks/grown/carrot = 4) - -/obj/effect/spawner/random/garden/Initialize(mapload) - loot = plant - . = ..() - -/obj/effect/spawner/random/garden/arid - name = "arid garden seeder" - plant = list( - /obj/item/reagent_containers/food/snacks/grown/ghost_chili = 1, - /obj/item/reagent_containers/food/snacks/grown/nettle = 1, - /obj/item/grown/cotton/durathread = 1, - /obj/item/seeds/random = 1, - /obj/item/reagent_containers/food/snacks/grown/redbeet = 1, - /obj/item/reagent_containers/food/snacks/grown/aloe = 2, - /obj/item/grown/cotton = 2, - /obj/item/reagent_containers/food/snacks/grown/mushroom/angel = 2, - /obj/item/reagent_containers/food/snacks/grown/chili = 2, - /obj/item/reagent_containers/food/snacks/grown/whitebeet = 5, - /obj/item/reagent_containers/food/snacks/grown/potato = 4, - /obj/item/reagent_containers/food/snacks/grown/potato/sweet = 4, - /obj/item/reagent_containers/food/snacks/grown/mushroom/chanterelle = 4, - /obj/item/reagent_containers/food/snacks/grown/mushroom/plumphelmet = 4, - /obj/item/reagent_containers/food/snacks/grown/corn = 4) - -/obj/effect/spawner/random/garden/cold - name = "frigid garden seeder" - plant = list( - /obj/item/reagent_containers/food/snacks/grown/bluecherries = 1, - /obj/item/reagent_containers/food/snacks/grown/galaxythistle = 1, - /obj/item/reagent_containers/food/snacks/grown/berries/death/stealth = 1, - /obj/item/seeds/random = 1, - /obj/item/reagent_containers/food/snacks/grown/poppy = 2, - /obj/item/reagent_containers/food/snacks/grown/tomato/blue = 2, - /obj/item/reagent_containers/food/snacks/grown/berries/poison/stealth = 2, - /obj/item/reagent_containers/food/snacks/grown/berries = 4, - /obj/item/reagent_containers/food/snacks/grown/mushroom/chanterelle = 4, - /obj/item/reagent_containers/food/snacks/grown/oat = 4, - /obj/item/reagent_containers/food/snacks/grown/grapes/green = 4, - /obj/item/reagent_containers/food/snacks/grown/grass = 4, - /obj/item/reagent_containers/food/snacks/grown/harebell = 5, - /obj/item/seeds/starthistle = 5) - -/obj/effect/spawner/random/garden/sick - name = "sickly garden seeder" - plant = list( - /obj/item/reagent_containers/food/snacks/grown/cannabis/rainbow = 1, - /obj/item/reagent_containers/food/snacks/grown/cannabis/death = 1, - /obj/item/seeds/replicapod = 1, - /obj/item/reagent_containers/food/snacks/grown/mushroom/angel = 1, - /obj/item/reagent_containers/food/snacks/grown/mushroom/libertycap = 2, - /obj/item/seeds/tower/steel = 2, - /obj/item/reagent_containers/food/snacks/grown/cannabis = 2, - /obj/item/seeds/random = 2, - /obj/item/reagent_containers/food/snacks/grown/mushroom/jupitercup = 2, - /obj/item/reagent_containers/food/snacks/grown/cherrybulbs = 4, - /obj/item/reagent_containers/food/snacks/grown/mushroom/amanita = 4, - /obj/item/reagent_containers/food/snacks/grown/mushroom/libertycap = 4, - /obj/item/reagent_containers/food/snacks/grown/mushroom/reishi = 4, - /obj/item/reagent_containers/food/snacks/grown/berries/glow = 4) - -/obj/effect/spawner/random/garden/seaweed - name = "seaweed patch seeder" - plant = list( - /obj/item/reagent_containers/food/snacks/grown/seaweed = 1 - ) - /obj/item/reagent_containers/food/snacks/grown/berries/poison/stealth //careful eating from random jungle bushes seed = /obj/item/seeds/berry/poison name = "bunch of berries" diff --git a/code/modules/research/designs/biogenerator_designs.dm b/code/modules/research/designs/biogenerator_designs.dm index 7025b3e69213..2cc0134cf8f6 100644 --- a/code/modules/research/designs/biogenerator_designs.dm +++ b/code/modules/research/designs/biogenerator_designs.dm @@ -199,7 +199,7 @@ id = "rngplant" build_type = BIOGENERATOR materials = list(/datum/material/biomass= 2000) - build_path = /obj/effect/spawner/random/seeded + build_path = /obj/effect/spawner/random/food_or_drink/seed category = list("initial","LIFESEED_2.0") /datum/design/genesis diff --git a/icons/obj/clothing/gloves.dmi b/icons/obj/clothing/gloves.dmi index ba27bd4c8166..ad875e652365 100644 Binary files a/icons/obj/clothing/gloves.dmi and b/icons/obj/clothing/gloves.dmi differ diff --git a/shiptest.dme b/shiptest.dme index a0cec51d61bb..47fe918c95f8 100644 --- a/shiptest.dme +++ b/shiptest.dme @@ -1127,15 +1127,27 @@ #include "code\game\objects\effects\spawners\bundle.dm" #include "code\game\objects\effects\spawners\gibspawner.dm" #include "code\game\objects\effects\spawners\mobspawner.dm" +#include "code\game\objects\effects\spawners\spawner.dm" #include "code\game\objects\effects\spawners\structure.dm" +#include "code\game\objects\effects\spawners\random.dm\ai_module.dm" +#include "code\game\objects\effects\spawners\random.dm\anomaly.dm" +#include "code\game\objects\effects\spawners\random.dm\armory.dm" +#include "code\game\objects\effects\spawners\random.dm\boards.dm" +#include "code\game\objects\effects\spawners\random.dm\bureaucracy.dm" #include "code\game\objects\effects\spawners\random.dm\clothing.dm" #include "code\game\objects\effects\spawners\random.dm\decoration.dm" -#include "code\game\objects\effects\spawners\random.dm\food.dm" +#include "code\game\objects\effects\spawners\random.dm\engineering.dm" +#include "code\game\objects\effects\spawners\random.dm\entertainment.dm" +#include "code\game\objects\effects\spawners\random.dm\exotic.dm" +#include "code\game\objects\effects\spawners\random.dm\food_or_drink.dm" #include "code\game\objects\effects\spawners\random.dm\maintenance.dm" +#include "code\game\objects\effects\spawners\random.dm\medical.dm" #include "code\game\objects\effects\spawners\random.dm\random.dm" #include "code\game\objects\effects\spawners\random.dm\salvaging.dm" -#include "code\game\objects\effects\spawners\random.dm\unsorted.dm" +#include "code\game\objects\effects\spawners\random.dm\structure.dm" +#include "code\game\objects\effects\spawners\random.dm\trash.dm" #include "code\game\objects\effects\spawners\random.dm\vending.dm" +#include "code\game\objects\effects\spawners\random.dm\waste_planet.dm" #include "code\game\objects\effects\temporary_visuals\cult.dm" #include "code\game\objects\effects\temporary_visuals\miscellaneous.dm" #include "code\game\objects\effects\temporary_visuals\temporary_visual.dm" diff --git a/tools/UpdatePaths/Scripts/60522_replace_spawners.txt b/tools/UpdatePaths/Scripts/60522_replace_spawners.txt index 9c7a34bd396c..22e5a4aed438 100644 --- a/tools/UpdatePaths/Scripts/60522_replace_spawners.txt +++ b/tools/UpdatePaths/Scripts/60522_replace_spawners.txt @@ -8,14 +8,14 @@ /obj/effect/spawner/lootdrop/minor/kittyears_or_rabbitears : /obj/effect/spawner/random/clothing/kittyears_or_rabbitears /obj/effect/spawner/lootdrop/minor/bowler_or_that : /obj/effect/spawner/random/clothing/bowler_or_that /obj/effect/spawner/lootdrop/minor/beret_or_rabbitears : /obj/effect/spawner/random/clothing/beret_or_rabbitears -/obj/effect/spawner/bundle/hobo_squat : /obj/effect/spawner/random/trash/hobo_squat -/obj/effect/spawner/bundle/moisture_trap : /obj/effect/spawner/random/trash/moisture_trap +/obj/effect/spawner/bundle/hobo_squat : /obj/effect/spawner/random/trash/decal/hobo_squat +/obj/effect/spawner/bundle/moisture_trap : /obj/effect/spawner/random/trash/decal/moisture_trap /obj/effect/spawner/lootdrop/maint_drugs : /obj/effect/spawner/random/entertainment/drugs -/obj/effect/spawner/lootdrop/grille_or_trash : /obj/effect/spawner/random/trash/grille_or_waste -/obj/effect/spawner/lootdrop/botanical_waste : /obj/effect/spawner/random/trash/botanical_waste -/obj/effect/spawner/lootdrop/food_packaging : /obj/effect/spawner/random/trash/food_packaging -/obj/effect/spawner/lootdrop/cigbutt : /obj/effect/spawner/random/trash/cigbutt -/obj/effect/spawner/lootdrop/garbage_spawner : /obj/effect/spawner/random/trash/garbage +/obj/effect/spawner/lootdrop/grille_or_trash : /obj/effect/spawner/random/trash/decal/grille_or_waste +/obj/effect/spawner/lootdrop/botanical_waste : /obj/effect/spawner/random/trash/decal/botanical_waste +/obj/effect/spawner/lootdrop/food_packaging : /obj/effect/spawner/random/trash/decal/food_packaging +/obj/effect/spawner/lootdrop/cigbutt : /obj/effect/spawner/random/trash/decal/cigbutt +/obj/effect/spawner/lootdrop/garbage_spawner : /obj/effect/spawner/random/trash/decal/garbage /obj/effect/spawner/lootdrop/gambling : /obj/effect/spawner/random/entertainment/gambling /obj/effect/spawner/lootdrop/wallet_loot : /obj/effect/spawner/random/entertainment/wallet_storage /obj/effect/spawner/lootdrop/organ_spawner : /obj/effect/spawner/random/medical/organs @@ -49,9 +49,9 @@ /obj/effect/spawner/lootdrop/armory_contraband : /obj/effect/spawner/random/contraband/armory /obj/effect/spawner/lootdrop/armory_contraband/metastation : /obj/effect/spawner/random/contraband/armory /obj/effect/spawner/lootdrop/armory_contraband/donutstation : /obj/effect/spawner/random/contraband/armory -/obj/effect/spawner/lootdrop/gross_decal_spawner : /obj/effect/spawner/random/trash/mess -/obj/effect/spawner/scatter/grime : /obj/effect/spawner/random/trash/grime -/obj/effect/spawner/scatter/moisture : /obj/effect/spawner/random/trash/moisture +/obj/effect/spawner/lootdrop/gross_decal_spawner : /obj/effect/spawner/random/trash/decal/mess +/obj/effect/spawner/scatter/grime : /obj/effect/spawner/random/trash/decal/grime +/obj/effect/spawner/scatter/moisture : /obj/effect/spawner/random/trash/decal/moisture /obj/effect/spawner/lootdrop/space/fancytech : /obj/effect/spawner/random/exotic/technology /obj/effect/spawner/lootdrop/space/languagebook : /obj/effect/spawner/random/exotic/languagebook /obj/effect/spawner/lootdrop/space/syndiecosmetic : /obj/effect/spawner/random/exotic/syndie @@ -79,5 +79,3 @@ /obj/effect/spawner/lootdrop/snowdin/dungeonmisc : /obj/effect/spawner/random/exotic/snow_gear /obj/effect/spawner/lootdrop/seed_vault : /obj/effect/spawner/random/food_or_drink/seed_vault /obj/effect/spawner/lootdrop/whiteship_cere_ripley : /obj/effect/spawner/random/exotic/ripley - -