diff --git a/_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_althland_facility.dmm b/_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_althland_facility.dmm index 507ea8eb1d4..08523b0aa69 100644 --- a/_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_althland_facility.dmm +++ b/_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_althland_facility.dmm @@ -186,7 +186,7 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/obj/structure/closet/crate/secure/loot, +/obj/effect/spawner/random/loot_crate, /turf/simulated/floor/plasteel/lavaland_air, /area/ruin/unpowered/althland_processing) "fv" = ( @@ -1131,7 +1131,7 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/obj/structure/closet/crate/secure/loot, +/obj/effect/spawner/random/loot_crate, /turf/simulated/floor/plating/lavaland_air, /area/ruin/unpowered/althland_processing) "MO" = ( diff --git a/_maps/map_files/RandomRuins/SpaceRuins/deepstorage.dmm b/_maps/map_files/RandomRuins/SpaceRuins/deepstorage.dmm index 60c631ab821..f3c2cb0fd94 100644 --- a/_maps/map_files/RandomRuins/SpaceRuins/deepstorage.dmm +++ b/_maps/map_files/RandomRuins/SpaceRuins/deepstorage.dmm @@ -4002,7 +4002,7 @@ /area/ruin/space/deepstorage) "yB" = ( /obj/effect/decal/cleanable/dirt, -/obj/structure/closet/crate/secure/loot, +/obj/effect/spawner/random/loot_crate, /turf/simulated/floor/plasteel{ dir = 4; icon_state = "podfloor" @@ -6833,7 +6833,7 @@ /obj/structure/window/reinforced/polarized{ dir = 4 }, -/obj/structure/closet/crate/secure/loot, +/obj/effect/spawner/random/loot_crate, /obj/structure/rack, /turf/simulated/floor/plasteel{ dir = 10; diff --git a/_maps/map_files/RandomRuins/SpaceRuins/derelict4.dmm b/_maps/map_files/RandomRuins/SpaceRuins/derelict4.dmm index 48208579bf6..d1faeb6bc0d 100644 --- a/_maps/map_files/RandomRuins/SpaceRuins/derelict4.dmm +++ b/_maps/map_files/RandomRuins/SpaceRuins/derelict4.dmm @@ -36,7 +36,7 @@ /turf/simulated/floor/mineral/titanium/blue/airless, /area/ruin/space/unpowered) "k" = ( -/obj/effect/spawner/random/loot/crate, +/obj/effect/spawner/random/loot_crate/rarely, /turf/simulated/floor/mineral/titanium/blue/airless, /area/ruin/space/unpowered) "l" = ( diff --git a/_maps/map_files/RandomRuins/SpaceRuins/derelict5.dmm b/_maps/map_files/RandomRuins/SpaceRuins/derelict5.dmm index cae07a86a42..86e017e714b 100644 --- a/_maps/map_files/RandomRuins/SpaceRuins/derelict5.dmm +++ b/_maps/map_files/RandomRuins/SpaceRuins/derelict5.dmm @@ -1,6 +1,6 @@ //MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE "aN" = ( -/obj/effect/spawner/random/loot/crate, +/obj/effect/spawner/random/loot_crate/rarely, /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plasteel, /area/ruin/space/unpowered) @@ -65,7 +65,7 @@ /turf/simulated/floor/plating, /area/ruin/space/unpowered) "jz" = ( -/obj/effect/spawner/random/loot/crate, +/obj/effect/spawner/random/loot_crate/rarely, /turf/simulated/floor/plasteel, /area/ruin/space/unpowered) "kb" = ( @@ -128,7 +128,7 @@ /turf/simulated/floor/plasteel, /area/ruin/space/unpowered) "qF" = ( -/obj/effect/spawner/random/loot/crate, +/obj/effect/spawner/random/loot_crate/rarely, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/cobweb2, /turf/simulated/floor/plasteel, diff --git a/_maps/map_files/RandomRuins/SpaceRuins/emptyshell.dmm b/_maps/map_files/RandomRuins/SpaceRuins/emptyshell.dmm index 324ba02d8fc..9c3702ce9b7 100644 --- a/_maps/map_files/RandomRuins/SpaceRuins/emptyshell.dmm +++ b/_maps/map_files/RandomRuins/SpaceRuins/emptyshell.dmm @@ -13,7 +13,7 @@ /turf/simulated/floor/plating, /area/ruin/space/unpowered) "e" = ( -/obj/effect/spawner/random/loot/crate, +/obj/effect/spawner/random/loot_crate/rarely, /turf/simulated/floor/plating, /area/ruin/space/unpowered) "f" = ( diff --git a/_maps/map_files/RandomRuins/SpaceRuins/freighter.dmm b/_maps/map_files/RandomRuins/SpaceRuins/freighter.dmm index baf8278e10d..ec95b69cf14 100644 --- a/_maps/map_files/RandomRuins/SpaceRuins/freighter.dmm +++ b/_maps/map_files/RandomRuins/SpaceRuins/freighter.dmm @@ -183,7 +183,7 @@ }, /area/ruin/space/powered) "rV" = ( -/obj/structure/closet/crate/secure/loot, +/obj/effect/spawner/random/loot_crate, /obj/effect/spawner/random/pool/spaceloot/syndicate/mixed, /turf/simulated/floor/mineral/plastitanium, /area/ruin/space/powered) diff --git a/_maps/map_files/RandomRuins/SpaceRuins/mechtransport.dmm b/_maps/map_files/RandomRuins/SpaceRuins/mechtransport.dmm index ec50ff2cecc..846512593c1 100644 --- a/_maps/map_files/RandomRuins/SpaceRuins/mechtransport.dmm +++ b/_maps/map_files/RandomRuins/SpaceRuins/mechtransport.dmm @@ -20,7 +20,7 @@ /turf/simulated/floor/plating, /area/ruin/space/mech_transport) "aZ" = ( -/obj/structure/closet/crate/secure/loot, +/obj/effect/spawner/random/loot_crate, /obj/effect/spawner/random/pool/spaceloot/syndicate/mixed, /turf/simulated/floor/plasteel/dark, /area/ruin/space/mech_transport) diff --git a/_maps/map_files/RandomRuins/SpaceRuins/moonoutpost19.dmm b/_maps/map_files/RandomRuins/SpaceRuins/moonoutpost19.dmm index 0d000ab5205..2e0d25a69a4 100644 --- a/_maps/map_files/RandomRuins/SpaceRuins/moonoutpost19.dmm +++ b/_maps/map_files/RandomRuins/SpaceRuins/moonoutpost19.dmm @@ -5639,7 +5639,7 @@ }, /area/ruin/space/moonbase19) "tE" = ( -/obj/structure/closet/crate/secure/loot, +/obj/effect/spawner/random/loot_crate, /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plating, /area/ruin/space/moonbase19) @@ -8314,7 +8314,7 @@ /turf/simulated/floor/catwalk, /area/ruin/space/moonbase19) "Ge" = ( -/obj/structure/closet/crate/secure/loot, +/obj/effect/spawner/random/loot_crate, /turf/simulated/floor/plating, /area/ruin/space/moonbase19) "Gg" = ( @@ -11727,7 +11727,7 @@ /area/ruin/space/moonbase19) "VT" = ( /obj/structure/bed, -/obj/structure/closet/crate/secure/loot, +/obj/effect/spawner/random/loot_crate, /turf/simulated/floor/carpet, /area/ruin/space/moonbase19) "VU" = ( diff --git a/_maps/map_files/RandomRuins/SpaceRuins/ussp.dmm b/_maps/map_files/RandomRuins/SpaceRuins/ussp.dmm index 6d1008f5133..5f756294644 100644 --- a/_maps/map_files/RandomRuins/SpaceRuins/ussp.dmm +++ b/_maps/map_files/RandomRuins/SpaceRuins/ussp.dmm @@ -6418,7 +6418,7 @@ }, /area/ruin/space/derelict/arrival) "rm" = ( -/obj/structure/closet/crate/secure/loot, +/obj/effect/spawner/random/loot_crate, /obj/structure/spider/stickyweb, /turf/simulated/floor/plasteel{ icon_state = "delivery" diff --git a/_maps/map_files/RandomRuins/SpaceRuins/wreckedcargoship.dmm b/_maps/map_files/RandomRuins/SpaceRuins/wreckedcargoship.dmm index aaab3c39176..76bfbb14e22 100644 --- a/_maps/map_files/RandomRuins/SpaceRuins/wreckedcargoship.dmm +++ b/_maps/map_files/RandomRuins/SpaceRuins/wreckedcargoship.dmm @@ -590,7 +590,7 @@ /turf/simulated/floor/plating, /area/ruin/space/wreck_cargoship) "uV" = ( -/obj/structure/closet/crate/secure/loot, +/obj/effect/spawner/random/loot_crate, /turf/simulated/floor/plasteel{ icon_state = "titanium"; dir = 4 @@ -666,7 +666,7 @@ /obj/machinery/light/small{ dir = 1 }, -/obj/structure/closet/crate/secure/loot, +/obj/effect/spawner/random/loot_crate, /obj/effect/spawner/random/pool/spaceloot/syndicate/mixed, /turf/simulated/floor/pod/light, /area/ruin/space/wreck_cargoship) @@ -1086,7 +1086,7 @@ /obj/machinery/button/windowtint{ pixel_y = -32 }, -/obj/structure/closet/crate/secure/loot, +/obj/effect/spawner/random/loot_crate, /obj/effect/spawner/random/pool/spaceloot/syndicate/mixed, /turf/simulated/floor/plasteel{ dir = 1; diff --git a/_maps/map_files/generic/Lavaland.dmm b/_maps/map_files/generic/Lavaland.dmm index d93a9bc9cdf..6a9bdf51e64 100644 --- a/_maps/map_files/generic/Lavaland.dmm +++ b/_maps/map_files/generic/Lavaland.dmm @@ -7711,7 +7711,7 @@ /turf/simulated/mineral/random/volcanic, /area/lavaland/surface/outdoors) "JB" = ( -/obj/structure/closet/crate/secure/loot, +/obj/effect/spawner/random/loot_crate, /obj/effect/mapping_helpers/no_lava, /obj/structure/railing{ dir = 4 diff --git a/_maps/map_files/stations/deltastation.dmm b/_maps/map_files/stations/deltastation.dmm index 9231cdeaea8..1290c76ae78 100644 --- a/_maps/map_files/stations/deltastation.dmm +++ b/_maps/map_files/stations/deltastation.dmm @@ -59670,7 +59670,7 @@ }, /area/station/science/genetics) "fLR" = ( -/obj/structure/closet/crate/secure/loot, +/obj/effect/spawner/random/loot_crate, /obj/effect/turf_decal/delivery/hollow, /obj/structure/cable{ icon_state = "1-2" diff --git a/_maps/map_files/stations/emeraldstation.dmm b/_maps/map_files/stations/emeraldstation.dmm index 7fc0ee2abdf..033aa5f5ebe 100644 --- a/_maps/map_files/stations/emeraldstation.dmm +++ b/_maps/map_files/stations/emeraldstation.dmm @@ -116562,7 +116562,7 @@ /turf/simulated/floor/plating, /area/station/maintenance/security/aft_port) "xho" = ( -/obj/structure/closet/crate/secure/loot, +/obj/effect/spawner/random/loot_crate, /turf/simulated/floor/engine/asteroid, /area/station/engineering/atmos/asteroid_core) "xhr" = ( diff --git a/_maps/map_files/stations/metastation.dmm b/_maps/map_files/stations/metastation.dmm index c410b966adc..23eabc9f561 100644 --- a/_maps/map_files/stations/metastation.dmm +++ b/_maps/map_files/stations/metastation.dmm @@ -38762,7 +38762,7 @@ /area/station/maintenance/apmaint) "dbC" = ( /obj/effect/spawner/random/cobweb/left/rare, -/obj/structure/closet/crate/secure/loot, +/obj/effect/spawner/random/loot_crate, /obj/item/circuitboard/biogenerator, /turf/simulated/floor/plasteel, /area/station/maintenance/starboard2) diff --git a/_maps/map_files/test_tiny/test_tiny.dmm b/_maps/map_files/test_tiny/test_tiny.dmm index cf23687ddfb..874875a8e68 100644 --- a/_maps/map_files/test_tiny/test_tiny.dmm +++ b/_maps/map_files/test_tiny/test_tiny.dmm @@ -20,19 +20,19 @@ "u" = ( /turf/simulated/wall/mineral/titanium, /area/shuttle/arrival/station) -"x" = ( -/turf/simulated/floor/mineral/titanium/blue, -/area/shuttle/arrival/station) -"F" = ( -/obj/machinery/light, -/turf/simulated/floor/mineral/titanium/blue, -/area/shuttle/arrival/station) "I" = ( /obj/machinery/light{ dir = 8 }, /turf/simulated/floor/mineral/titanium/blue, /area/shuttle/arrival/station) +"K" = ( +/turf/simulated/floor/mineral/titanium/blue, +/area/shuttle/arrival/station) +"L" = ( +/obj/machinery/light, +/turf/simulated/floor/mineral/titanium/blue, +/area/shuttle/arrival/station) "U" = ( /obj/machinery/light{ dir = 4 @@ -31261,17 +31261,17 @@ a a a u -x -x -x +K +K +K I -x -x -x +K +K +K I -x -x -x +K +K +K u a a @@ -31518,17 +31518,17 @@ a a a u -x -x -x -x -x -x -x -x -x -x -x +K +K +K +K +K +K +K +K +K +K +K u a a @@ -31775,17 +31775,17 @@ a a a u -x -x -x -x -x -x -x -x -x -x -x +K +K +K +K +K +K +K +K +K +K +K u a a @@ -32033,16 +32033,16 @@ a a u p -x -x -x -x -x -x -x -x -x -F +K +K +K +K +K +K +K +K +K +L u a a @@ -32289,17 +32289,17 @@ a a a u -x -x -x -x -x -x -x -x -x -x -x +K +K +K +K +K +K +K +K +K +K +K u a a @@ -32546,17 +32546,17 @@ a a a u -x -x -x -x -x +K +K +K +K +K b -x -x -x -x -x +K +K +K +K +K u a a @@ -32803,17 +32803,17 @@ a a a u -x -x -x -x -x -x -x -x -x -x -x +K +K +K +K +K +K +K +K +K +K +K u a a @@ -33061,16 +33061,16 @@ a a u p -x -x -x -x -x -x -x -x -x -F +K +K +K +K +K +K +K +K +K +L u a a @@ -33317,17 +33317,17 @@ a a a u -x -x -x -x -x -x -x -x -x -x -x +K +K +K +K +K +K +K +K +K +K +K u a a @@ -33574,17 +33574,17 @@ a a a u -x -x -x -x -x -x -x -x -x -x -x +K +K +K +K +K +K +K +K +K +K +K u a a @@ -33831,17 +33831,17 @@ a a a u -x -x -x +K +K +K U -x -x -x +K +K +K U -x -x -x +K +K +K u a a diff --git a/code/game/objects/effects/spawners/random/loot_spawners.dm b/code/game/objects/effects/spawners/random/loot_spawners.dm index fad11c2b2c6..02c88a2157f 100644 --- a/code/game/objects/effects/spawners/random/loot_spawners.dm +++ b/code/game/objects/effects/spawners/random/loot_spawners.dm @@ -1,6 +1,131 @@ -/obj/effect/spawner/random/loot/crate +/obj/effect/spawner/random/loot + name = "random loot spawner" + icon = 'icons/effects/random_spawners.dmi' + icon_state = "loot" + +/obj/effect/spawner/random/loot/contraband_posters + name = "5x contraband posters spawner" + spawn_loot_count = 5 + spawn_loot_double = TRUE + loot = list(/obj/item/poster/random_contraband) + +/obj/effect/spawner/random/loot/cryo_beakers + name = "3x cryo beaker spawner" + spawn_loot_count = 3 + spawn_loot_double = TRUE + loot = list(/obj/item/reagent_containers/glass/beaker/bluespace) + +/obj/effect/spawner/random/loot/good_times + name = "good times spawner" + spawn_all_loot = TRUE + loot = list( + /obj/item/food/grown/ambrosia/deus, + /obj/item/lighter, + /obj/item/reagent_containers/drinks/bottle/rum, + /obj/item/reagent_containers/drinks/bottle/whiskey, + ) + +/obj/effect/spawner/random/loot/bank_robber + name = "bank robber spawner" + spawn_all_loot = TRUE + loot = list( + /obj/item/clothing/mask/balaclava, + /obj/item/gun/projectile/automatic/pistol, + /obj/item/ammo_box/magazine/m10mm, + ) + +/obj/effect/spawner/random/loot/pet_uhhh_supplies + name = "pet uhhh supplies spawner" + spawn_all_loot = TRUE + loot = list( + /obj/item/clothing/head/kitty, + /obj/item/clothing/head/kitty, + /obj/item/clothing/head/kitty, + /obj/item/clothing/head/kitty, + /obj/item/clothing/head/kitty, + /obj/item/petcollar, + /obj/item/petcollar, + /obj/item/petcollar, + /obj/item/petcollar, + /obj/item/petcollar, + ) + +/obj/effect/spawner/random/loot/coins + name = "coins spawner" + spawn_loot_double = TRUE + loot = list( + /obj/item/coin/silver = 3, + /obj/item/coin/iron = 3, + /obj/item/coin/gold = 1, + /obj/item/coin/diamond = 1, + /obj/item/coin/plasma = 1, + /obj/item/coin/uranium = 1, + ) + +/obj/effect/spawner/random/loot/coins/Initialize(mapload) + spawn_loot_count = rand(4, 7) + . = ..() + +/obj/effect/spawner/random/loot/space_kit + name = "space kit spawner" + spawn_all_loot = TRUE + loot = list( + /obj/item/borg/upgrade/modkit/aoe/mobs, + /obj/item/clothing/head/helmet/space, + /obj/item/clothing/suit/space, + ) + +/obj/effect/spawner/random/loot_crate name = "lootcrate spawner" icon = 'icons/effects/random_spawners.dmi' icon_state = "crate_secure" + spawn_inside = /obj/structure/closet/crate/secure/loot + loot = list( + /obj/effect/spawner/random/loot/contraband_posters = 5, + /obj/effect/spawner/random/loot/cryo_beakers = 5, + /obj/effect/spawner/random/loot/good_times = 5, + /obj/effect/spawner/random/loot/outfit/cham_ties = 5, + /obj/effect/spawner/random/loot/outfit/shorts = 5, + /obj/item/melee/baton = 5, + /obj/item/melee/skateboard/pro = 5, + /obj/item/reagent_containers/glass/beaker/bluespace = 5, + /obj/item/seeds/firelemon = 5, + /obj/item/stack/ore/diamond{amount = 10} = 5, + + /obj/effect/spawner/random/loot/coins = 2, + /obj/effect/spawner/random/loot/outfit/clown = 2, + /obj/effect/spawner/random/loot/outfit/fancy = 2, + /obj/effect/spawner/random/loot/outfit/ian_fan = 2, + /obj/effect/spawner/random/loot/pet_uhhh_supplies = 2, + /obj/effect/spawner/random/loot/space_kit = 2, + /obj/effect/spawner/random/stock_parts = 2, + /obj/effect/spawner/random/toy/mech_figure = 2, + /obj/item/defibrillator/compact = 2, + /obj/item/gun/energy/plasmacutter = 2, + /obj/item/melee/classic_baton = 2, + /obj/item/pickaxe/diamond = 2, + /obj/item/pickaxe/drill = 2, + /obj/item/pickaxe/drill/diamonddrill = 2, + /obj/item/pickaxe/drill/jackhammer = 2, + /obj/item/stack/ore/bluespace_crystal{amount = 5} = 2, + /obj/item/toy/balloon = 2, + /obj/item/toy/katana = 2, + /obj/item/toy/syndicateballoon = 2, + + /obj/effect/spawner/random/loot/bank_robber = 1, + /obj/effect/spawner/random/loot/outfit/luchador = 1, + /obj/effect/spawner/random/loot/outfit/mime = 1, + /obj/item/clothing/head/bearpelt = 1, + /obj/item/hand_tele = 1, + /obj/item/katana = 1, + /obj/item/melee/skateboard/hoverboard = 1, + /obj/item/organ/internal/brain = 1, + /obj/item/organ/internal/brain/xeno = 1, + /obj/item/organ/internal/cyberimp/arm/katana = 1, + /obj/item/soulstone/anybody = 1, + /obj/item/weed_extract = 1, + ) + +/obj/effect/spawner/random/loot_crate/rarely + name = "lootcrate spawner, 20% chance" spawn_loot_chance = 20 - loot = list(/obj/structure/closet/crate/secure/loot) diff --git a/code/game/objects/effects/spawners/random/misc_spawners.dm b/code/game/objects/effects/spawners/random/misc_spawners.dm index 5632b8175cd..f528c9c2b4e 100644 --- a/code/game/objects/effects/spawners/random/misc_spawners.dm +++ b/code/game/objects/effects/spawners/random/misc_spawners.dm @@ -94,3 +94,12 @@ ) record_spawn = TRUE +/obj/effect/spawner/random/stock_parts + name = "stock parts spawner" + icon = 'icons/effects/random_spawners.dmi' + icon_state = "stock_parts" + loot_subtype_path = /obj/item/stock_parts + +/obj/effect/spawner/random/stock_parts/Initialize(mapload) + spawn_loot_count = rand(4, 7) + . = ..() diff --git a/code/game/objects/effects/spawners/random/outfit_spawners.dm b/code/game/objects/effects/spawners/random/outfit_spawners.dm new file mode 100644 index 00000000000..bd3e1166757 --- /dev/null +++ b/code/game/objects/effects/spawners/random/outfit_spawners.dm @@ -0,0 +1,75 @@ +/obj/effect/spawner/random/loot/outfit + name = "outfit spawner" + spawn_all_loot = TRUE + icon = 'icons/effects/random_spawners.dmi' + icon_state = "suit" + +/obj/effect/spawner/random/loot/outfit/clown + name = "clown outfit spawner" + loot = list( + /obj/item/bikehorn, + /obj/item/clothing/mask/gas/clown_hat, + /obj/item/clothing/shoes/clown_shoes, + /obj/item/clothing/under/rank/civilian/clown, + /obj/item/pda/clown, + /obj/item/reagent_containers/drinks/bottle/bottleofbanana, + /obj/item/reagent_containers/spray/waterflower, + /obj/item/storage/backpack/clown, + /obj/item/toy/crayon/rainbow, + ) + +/obj/effect/spawner/random/loot/outfit/mime + name = "mime outfit spawner" + loot = list( + /obj/item/clothing/gloves/color/white, + /obj/item/clothing/head/beret, + /obj/item/clothing/mask/gas/mime, + /obj/item/clothing/shoes/black, + /obj/item/clothing/suit/suspenders, + /obj/item/clothing/under/rank/civilian/mime, + /obj/item/pda/mime, + /obj/item/reagent_containers/drinks/bottle/bottleofnothing, + /obj/item/toy/crayon/mime, + ) + +/obj/effect/spawner/random/loot/outfit/fancy + name = "fancy outfit spawner" + loot = list( + /obj/item/cane, + /obj/item/clothing/head/collectable/tophat, + ) + +/obj/effect/spawner/random/loot/outfit/shorts + name = "shorts spawner" + loot = list( + /obj/item/clothing/under/pants/shorts/red, + /obj/item/clothing/under/pants/shorts/blue, + ) + +/obj/effect/spawner/random/loot/outfit/cham_ties + name = "chameleon and ties spawner" // ??? (???) + loot = list( + /obj/item/clothing/neck/tie/horrible, + /obj/item/clothing/neck/tie/horrible, + /obj/item/clothing/neck/tie/horrible, + /obj/item/clothing/neck/tie/horrible, + /obj/item/clothing/neck/tie/horrible, + /obj/item/clothing/neck/tie/horrible, + /obj/item/clothing/neck/tie/horrible, + /obj/item/clothing/under/chameleon, + ) + +/obj/effect/spawner/random/loot/outfit/ian_fan + name = "Ian fan outfit spawner" + loot = list( + /obj/item/clothing/suit/ianshirt, + /obj/item/clothing/suit/corgisuit, + /obj/item/clothing/head/corgi, + ) + +/obj/effect/spawner/random/loot/outfit/luchador + name = "luchador outfit spawner" + loot = list( + /obj/item/storage/belt/champion, + /obj/item/clothing/mask/luchador, + ) diff --git a/code/modules/mining/abandonedcrates.dm b/code/modules/mining/abandonedcrates.dm index e6d347e44e0..55254d93c14 100644 --- a/code/modules/mining/abandonedcrates.dm +++ b/code/modules/mining/abandonedcrates.dm @@ -19,131 +19,6 @@ code += dig digits -= dig //Player can enter codes with matching digits, but there are never matching digits in the answer -/obj/structure/closet/crate/secure/loot/populate_contents() - var/loot = rand(1,100) //100 different crates with varying chances of spawning - switch(loot) - if(1 to 5) //5% chance - new /obj/item/reagent_containers/drinks/bottle/rum(src) - new /obj/item/food/grown/ambrosia/deus(src) - new /obj/item/reagent_containers/drinks/bottle/whiskey(src) - new /obj/item/lighter(src) - if(6 to 10) - new /obj/item/melee/skateboard/pro(src) - if(11 to 15) - new /obj/item/reagent_containers/glass/beaker/bluespace(src) - if(16 to 20) - new /obj/item/stack/ore/diamond(src, 10) - if(21 to 25) - for(var/i in 1 to 5) - new /obj/item/poster/random_contraband(src) - if(26 to 30) - for(var/i in 1 to 3) - new /obj/item/reagent_containers/glass/beaker/noreact(src) - if(31 to 35) - new /obj/item/seeds/firelemon(src) - if(36 to 40) - new /obj/item/melee/baton(src) - if(41 to 45) - new /obj/item/clothing/under/pants/shorts/red(src) - new /obj/item/clothing/under/pants/shorts/blue(src) - if(46 to 50) - new /obj/item/clothing/under/chameleon(src) - for(var/i in 1 to 7) - new /obj/item/clothing/neck/tie/horrible(src) - if(51 to 52) // 2% chance - new /obj/item/melee/classic_baton(src) - if(53 to 54) - new /obj/item/toy/balloon(src) - if(55 to 56) - var/newitem = pick(subtypesof(/obj/item/toy/figure/mech)) - new newitem(src) - if(57 to 58) - new /obj/item/toy/syndicateballoon(src) - if(59 to 60) - new /obj/item/borg/upgrade/modkit/aoe/mobs(src) - new /obj/item/clothing/suit/space(src) - new /obj/item/clothing/head/helmet/space(src) - if(61 to 62) - for(var/i in 1 to 5) - new /obj/item/clothing/head/kitty(src) - new /obj/item/petcollar(src) - if(63 to 64) - for(var/i in 1 to rand(4, 7)) - var/newcoin = pick(/obj/item/coin/silver, /obj/item/coin/silver, /obj/item/coin/silver, /obj/item/coin/iron, /obj/item/coin/iron, /obj/item/coin/iron, /obj/item/coin/gold, /obj/item/coin/diamond, /obj/item/coin/plasma, /obj/item/coin/uranium) - new newcoin(src) - if(65 to 66) - new /obj/item/clothing/suit/ianshirt(src) - new /obj/item/clothing/suit/corgisuit(src) - new /obj/item/clothing/head/corgi(src) - if(67 to 68) - for(var/i in 1 to rand(4, 7)) - var/newitem = pick(subtypesof(/obj/item/stock_parts)) - new newitem(src) - if(69 to 70) - new /obj/item/stack/ore/bluespace_crystal(src, 5) - if(71 to 72) - new /obj/item/pickaxe/drill(src) - if(73 to 74) - new /obj/item/pickaxe/drill/jackhammer(src) - if(75 to 76) - new /obj/item/pickaxe/diamond(src) - if(77 to 78) - new /obj/item/pickaxe/drill/diamonddrill(src) - if(79 to 80) - new /obj/item/cane(src) - new /obj/item/clothing/head/collectable/tophat(src) - if(81 to 82) - new /obj/item/gun/energy/plasmacutter(src) - if(83 to 84) - new /obj/item/toy/katana(src) - if(85 to 86) - new /obj/item/defibrillator/compact(src) - if(87 to 88) - new /obj/item/storage/backpack/clown(src) - new /obj/item/clothing/under/rank/civilian/clown(src) - new /obj/item/clothing/shoes/clown_shoes(src) - new /obj/item/pda/clown(src) - new /obj/item/clothing/mask/gas/clown_hat(src) - new /obj/item/bikehorn(src) - new /obj/item/toy/crayon/rainbow(src) - new /obj/item/reagent_containers/spray/waterflower(src) - new /obj/item/reagent_containers/drinks/bottle/bottleofbanana(src) - if(89) //1% chance - new /obj/item/weed_extract(src) - if(90) - new /obj/item/organ/internal/brain(src) - if(91) - new /obj/item/organ/internal/brain/xeno(src) - if(92) - new /obj/item/melee/skateboard/hoverboard(src) - if(93) - new /obj/item/soulstone/anybody(src) - if(94) - new /obj/item/katana(src) - if(95) - new /obj/item/clothing/under/rank/civilian/mime(src) - new /obj/item/clothing/shoes/black(src) - new /obj/item/pda/mime(src) - new /obj/item/clothing/gloves/color/white(src) - new /obj/item/clothing/mask/gas/mime(src) - new /obj/item/clothing/head/beret(src) - new /obj/item/clothing/suit/suspenders(src) - new /obj/item/toy/crayon/mime(src) - new /obj/item/reagent_containers/drinks/bottle/bottleofnothing(src) - if(96) - new /obj/item/hand_tele(src) - if(97) - new /obj/item/clothing/mask/balaclava - new /obj/item/gun/projectile/automatic/pistol(src) - new /obj/item/ammo_box/magazine/m10mm(src) - if(98) - new /obj/item/organ/internal/cyberimp/arm/katana(src) - if(99) - new /obj/item/storage/belt/champion(src) - new /obj/item/clothing/mask/luchador(src) - if(100) - new /obj/item/clothing/head/bearpelt(src) - /obj/structure/closet/crate/secure/loot/attack_hand(mob/user) if(locked) to_chat(user, "The crate is locked with a Deca-code lock.") diff --git a/icons/effects/random_spawners.dmi b/icons/effects/random_spawners.dmi index 360c77e14d5..2b9bdacc42f 100644 Binary files a/icons/effects/random_spawners.dmi and b/icons/effects/random_spawners.dmi differ diff --git a/paradise.dme b/paradise.dme index bbd805d3f8e..1ebb444e8ec 100644 --- a/paradise.dme +++ b/paradise.dme @@ -1089,6 +1089,7 @@ #include "code\game\objects\effects\spawners\random\loot_spawners.dm" #include "code\game\objects\effects\spawners\random\maint_loot_spawners.dm" #include "code\game\objects\effects\spawners\random\misc_spawners.dm" +#include "code\game\objects\effects\spawners\random\outfit_spawners.dm" #include "code\game\objects\effects\spawners\random\plushie_spawners.dm" #include "code\game\objects\effects\spawners\random\random_spawner.dm" #include "code\game\objects\effects\spawners\random\toy_spawners.dm" diff --git a/tools/UpdatePaths/Scripts/28621_lootcrates.txt b/tools/UpdatePaths/Scripts/28621_lootcrates.txt new file mode 100644 index 00000000000..83f09bfc2bb --- /dev/null +++ b/tools/UpdatePaths/Scripts/28621_lootcrates.txt @@ -0,0 +1,2 @@ +/obj/effect/spawner/random/loot/crate : /obj/effect/spawner/random/loot_crate/rarely +/obj/structure/closet/crate/secure/loot : /obj/effect/spawner/random/loot_crate