From 5b516c3166a07cd10d035be1616248ba126e31a1 Mon Sep 17 00:00:00 2001 From: warriorstar-orion Date: Thu, 23 Jan 2025 02:41:04 -0500 Subject: [PATCH] Scatter depot loot to the solar winds. (#27954) * Scatter depot loot to the solar winds. * make zoo spawners guaranteed * INFINITY also used for spawn_all_loot, whoops * move abandoned sec shuttle spawner to locked crate * Can't use spawn_all_loot and nested lists together * Reduce pixel offset on mech transport spawn scatter * set updatepaths script number * incorporate changes from #27398 and remove old spawners * some numbers tweaking * pct -> % * move briefcase from common to rare for ruins * lower loot budget from 1800 -> 1700 --- .../SpaceRuins/abandoned_engi_sat.dmm | 30 +- .../SpaceRuins/abandoned_sec_shuttle.dmm | 1 + .../RandomRuins/SpaceRuins/abandonedtele.dmm | 2 + .../RandomRuins/SpaceRuins/abandonedzoo.dmm | 4 +- .../RandomRuins/SpaceRuins/asteroid1.dmm | 6 +- .../RandomRuins/SpaceRuins/asteroid2.dmm | 8 +- .../RandomRuins/SpaceRuins/asteroid3.dmm | 6 +- .../RandomRuins/SpaceRuins/asteroid4.dmm | 6 +- .../RandomRuins/SpaceRuins/asteroid5.dmm | 6 +- .../RandomRuins/SpaceRuins/blowntcommsat.dmm | 21 +- .../RandomRuins/SpaceRuins/casino.dmm | 25 +- .../RandomRuins/SpaceRuins/clownmime.dmm | 10 +- .../RandomRuins/SpaceRuins/debris1.dmm | 6 +- .../RandomRuins/SpaceRuins/debris2.dmm | 7 +- .../RandomRuins/SpaceRuins/debris3.dmm | 6 +- .../RandomRuins/SpaceRuins/deepstorage.dmm | 4 +- .../RandomRuins/SpaceRuins/derelict1.dmm | 10 +- .../RandomRuins/SpaceRuins/derelict3.dmm | 8 +- .../RandomRuins/SpaceRuins/derelict4.dmm | 1 + .../RandomRuins/SpaceRuins/derelict5.dmm | 7 +- _maps/map_files/RandomRuins/SpaceRuins/dj.dmm | 2 + .../RandomRuins/SpaceRuins/druglab.dmm | 1 + .../RandomRuins/SpaceRuins/emptyshell.dmm | 6 +- .../RandomRuins/SpaceRuins/freighter.dmm | 4 +- .../SpaceRuins/intactemptyship.dmm | 7 +- .../RandomRuins/SpaceRuins/listeningpost.dmm | 8 +- .../RandomRuins/SpaceRuins/meatpackers.dmm | 14 +- .../RandomRuins/SpaceRuins/mechtransport.dmm | 25 +- .../RandomRuins/SpaceRuins/moonoutpost19.dmm | 8 +- .../RandomRuins/SpaceRuins/onehalf.dmm | 10 +- .../RandomRuins/SpaceRuins/rocky_motel.dmm | 3 + .../RandomRuins/SpaceRuins/spacebar.dmm | 3 + .../SpaceRuins/syndicatedruglab.dmm | 3 +- .../SpaceRuins/syndiecakesfactory.dmm | 11 +- .../RandomRuins/SpaceRuins/syndiedepot.dmm | 71 ++-- .../SpaceRuins/telecomns_returns.dmm | 6 +- .../SpaceRuins/turretedoutpost.dmm | 28 +- .../RandomRuins/SpaceRuins/unathi_skiff.dmm | 5 +- .../map_files/RandomRuins/SpaceRuins/ussp.dmm | 22 +- .../RandomRuins/SpaceRuins/ussp_tele.dmm | 1 + .../RandomRuins/SpaceRuins/wizardcrash.dmm | 8 +- .../SpaceRuins/wreckedcargoship.dmm | 6 + code/datums/ruins/space_ruins.dm | 1 - .../effects/spawners/depot_spawners.dm | 108 +----- .../spawners/random/pool/pool_spawner.dm | 6 +- .../spawners/random/pool/space_loot.dm | 340 ++++++++++++++++++ .../spawners/random/pool/spawn_pool.dm | 1 + .../effects/spawners/random/random_spawner.dm | 7 +- .../mission_code/ruins/abandoned_engi_sat.dm | 3 - .../mission_code/ruins/deepstorage.dm | 9 - icons/effects/random_spawners.dmi | Bin 32875 -> 32919 bytes paradise.dme | 1 + .../Scripts/27954_spaceloot_pool.txt | 4 + 53 files changed, 667 insertions(+), 239 deletions(-) create mode 100644 code/game/objects/effects/spawners/random/pool/space_loot.dm create mode 100644 tools/UpdatePaths/Scripts/27954_spaceloot_pool.txt diff --git a/_maps/map_files/RandomRuins/SpaceRuins/abandoned_engi_sat.dmm b/_maps/map_files/RandomRuins/SpaceRuins/abandoned_engi_sat.dmm index 4f68f3035fe6..9fcd2da8a0cc 100644 --- a/_maps/map_files/RandomRuins/SpaceRuins/abandoned_engi_sat.dmm +++ b/_maps/map_files/RandomRuins/SpaceRuins/abandoned_engi_sat.dmm @@ -194,6 +194,10 @@ /obj/effect/mapping_helpers/turfs/burn, /turf/simulated/floor/plating, /area/ruin/space/abandoned_engi_sat) +"fs" = ( +/mob/living/simple_animal/hostile/asteroid/hivelord, +/turf/simulated/floor/wood/airless, +/area/ruin/space/abandoned_engi_sat) "fA" = ( /turf/simulated/floor/plasteel, /area/ruin/space/abandoned_engi_sat) @@ -364,6 +368,7 @@ name = "torn sign"; pixel_x = -1 }, +/obj/effect/spawner/random/pool/spaceloot/syndicate/mixed, /turf/simulated/floor/plating, /area/ruin/space/abandoned_engi_sat) "kT" = ( @@ -503,6 +508,7 @@ pixel_y = -24; name = "south bump" }, +/obj/effect/spawner/random/pool/spaceloot/syndicate/mixed, /turf/simulated/floor/plasteel, /area/ruin/space/abandoned_engi_sat) "oL" = ( @@ -546,6 +552,7 @@ /area/ruin/space/abandoned_engi_sat) "pX" = ( /obj/structure/closet/secure_closet/engineering_personal/empty, +/obj/effect/spawner/random/pool/spaceloot/syndicate/mixed, /turf/simulated/floor/wood/airless, /area/ruin/space/abandoned_engi_sat) "qu" = ( @@ -711,6 +718,7 @@ pixel_y = 32 }, /obj/structure/closet/crate/internals, +/obj/effect/spawner/random/pool/spaceloot/syndicate/mixed, /turf/simulated/floor/plasteel{ icon_state = "bot"; dir = 1 @@ -931,6 +939,7 @@ /obj/machinery/light{ dir = 1 }, +/obj/effect/spawner/random/pool/spaceloot/syndicate/mixed, /turf/simulated/floor/plasteel{ icon_state = "vault"; dir = 5 @@ -950,6 +959,10 @@ name = "floor" }, /area/ruin/space/abandoned_engi_sat) +"FN" = ( +/mob/living/simple_animal/hostile/asteroid/hivelord, +/turf/simulated/floor/carpet/airless, +/area/ruin/space/abandoned_engi_sat) "FQ" = ( /obj/machinery/door/airlock/engineering{ name = "Construction Area" @@ -1259,6 +1272,11 @@ dir = 5 }, /area/ruin/space/abandoned_engi_sat) +"RV" = ( +/obj/effect/mapping_helpers/turfs/damage, +/mob/living/simple_animal/hostile/asteroid/hivelord, +/turf/simulated/floor/plasteel, +/area/ruin/space/abandoned_engi_sat) "Sa" = ( /obj/structure/table, /turf/simulated/floor/plasteel{ @@ -1340,6 +1358,10 @@ /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plating, /area/ruin/space/abandoned_engi_sat) +"Ye" = ( +/mob/living/simple_animal/hostile/asteroid/hivelord, +/turf/simulated/floor/plasteel, +/area/ruin/space/abandoned_engi_sat) "Yz" = ( /obj/structure/closet/emcloset, /turf/simulated/floor/plasteel{ @@ -2089,7 +2111,7 @@ Ux Vx mQ DO -DO +fs DO DO bi @@ -2159,7 +2181,7 @@ kI mG pX hB -nH +FN pX EU EU @@ -2286,9 +2308,9 @@ oL xp gL fA -kd -fA +RV fA +Ye fA eG iV diff --git a/_maps/map_files/RandomRuins/SpaceRuins/abandoned_sec_shuttle.dmm b/_maps/map_files/RandomRuins/SpaceRuins/abandoned_sec_shuttle.dmm index 7012a0b2be79..d972e10bdc6f 100644 --- a/_maps/map_files/RandomRuins/SpaceRuins/abandoned_sec_shuttle.dmm +++ b/_maps/map_files/RandomRuins/SpaceRuins/abandoned_sec_shuttle.dmm @@ -115,6 +115,7 @@ /obj/item/gun/projectile/automatic/pistol/enforcer, /obj/item/grenade/flashbang, /obj/item/storage/firstaid/regular, +/obj/effect/spawner/random/pool/spaceloot/syndicate/mixed, /turf/simulated/floor/plating/airless, /area/ruin/space/sec_shuttle) "F" = ( diff --git a/_maps/map_files/RandomRuins/SpaceRuins/abandonedtele.dmm b/_maps/map_files/RandomRuins/SpaceRuins/abandonedtele.dmm index f7a004b86b90..316003f265a5 100644 --- a/_maps/map_files/RandomRuins/SpaceRuins/abandonedtele.dmm +++ b/_maps/map_files/RandomRuins/SpaceRuins/abandonedtele.dmm @@ -90,6 +90,7 @@ /area/ruin/space/abandtele) "w" = ( /obj/structure/closet, +/obj/effect/spawner/random/pool/spaceloot/syndicate/mixed, /turf/simulated/floor/plating/airless, /area/ruin/space/abandtele) "x" = ( @@ -106,6 +107,7 @@ /obj/item/weldingtool, /obj/item/wrench, /obj/item/circuitboard/teleporter, +/obj/effect/spawner/random/pool/spaceloot/syndicate/mixed, /turf/simulated/floor/plating/airless, /area/ruin/space/abandtele) "z" = ( diff --git a/_maps/map_files/RandomRuins/SpaceRuins/abandonedzoo.dmm b/_maps/map_files/RandomRuins/SpaceRuins/abandonedzoo.dmm index 95312902c673..d6bb7eeb8078 100644 --- a/_maps/map_files/RandomRuins/SpaceRuins/abandonedzoo.dmm +++ b/_maps/map_files/RandomRuins/SpaceRuins/abandonedzoo.dmm @@ -216,7 +216,7 @@ /obj/structure/cable{ icon_state = "4-8" }, -/obj/item/gun/energy/floragun, +/obj/effect/spawner/random/pool/spaceloot/zoo, /turf/simulated/floor/plasteel{ icon_state = "dark" }, @@ -376,7 +376,7 @@ /area/ruin/space/unpowered) "aY" = ( /obj/structure/table/reinforced, -/obj/item/gun/energy/temperature, +/obj/effect/spawner/random/pool/spaceloot/zoo, /turf/simulated/floor/plasteel{ icon_state = "dark" }, diff --git a/_maps/map_files/RandomRuins/SpaceRuins/asteroid1.dmm b/_maps/map_files/RandomRuins/SpaceRuins/asteroid1.dmm index 5ff86b1f4066..9ecd90646cbd 100644 --- a/_maps/map_files/RandomRuins/SpaceRuins/asteroid1.dmm +++ b/_maps/map_files/RandomRuins/SpaceRuins/asteroid1.dmm @@ -9,6 +9,10 @@ "c" = ( /turf/simulated/mineral/random/high_chance, /area/ruin/space/unpowered) +"l" = ( +/obj/effect/spawner/random/pool/spaceloot/syndicate/mixed, +/turf/simulated/floor/plating/asteroid/airless, +/area/ruin/space/unpowered) "V" = ( /turf/template_noop, /area/template_noop) @@ -149,7 +153,7 @@ V V V b -b +l V V V diff --git a/_maps/map_files/RandomRuins/SpaceRuins/asteroid2.dmm b/_maps/map_files/RandomRuins/SpaceRuins/asteroid2.dmm index 521e6b492c4e..5f438bb56c40 100644 --- a/_maps/map_files/RandomRuins/SpaceRuins/asteroid2.dmm +++ b/_maps/map_files/RandomRuins/SpaceRuins/asteroid2.dmm @@ -15,6 +15,10 @@ /obj/structure/spawner/mining/basilisk, /turf/simulated/floor/plating/asteroid/airless, /area/ruin/space/unpowered) +"C" = ( +/obj/effect/spawner/random/pool/spaceloot/syndicate/mixed, +/turf/simulated/floor/plating/asteroid/airless, +/area/ruin/space/unpowered) "R" = ( /obj/structure/spawner/mining/goliath, /turf/simulated/floor/plating/asteroid/airless, @@ -220,7 +224,7 @@ c d c c -c +C c c c @@ -337,7 +341,7 @@ c c c c -c +C c c c diff --git a/_maps/map_files/RandomRuins/SpaceRuins/asteroid3.dmm b/_maps/map_files/RandomRuins/SpaceRuins/asteroid3.dmm index e48592dc2358..3b700b3b0ff5 100644 --- a/_maps/map_files/RandomRuins/SpaceRuins/asteroid3.dmm +++ b/_maps/map_files/RandomRuins/SpaceRuins/asteroid3.dmm @@ -22,6 +22,10 @@ "q" = ( /turf/simulated/mineral/random/low_chance, /area/ruin/space/unpowered) +"r" = ( +/obj/effect/spawner/random/pool/spaceloot/syndicate/mixed, +/turf/simulated/floor/plating/asteroid/airless, +/area/ruin/space/unpowered) "v" = ( /obj/structure/spawner/mining/basilisk, /turf/simulated/floor/plating/asteroid/airless, @@ -175,7 +179,7 @@ q c c c -b +r c c q diff --git a/_maps/map_files/RandomRuins/SpaceRuins/asteroid4.dmm b/_maps/map_files/RandomRuins/SpaceRuins/asteroid4.dmm index 2ac460ad24c3..13a16bcd6425 100644 --- a/_maps/map_files/RandomRuins/SpaceRuins/asteroid4.dmm +++ b/_maps/map_files/RandomRuins/SpaceRuins/asteroid4.dmm @@ -50,6 +50,10 @@ }, /turf/simulated/floor/mineral/titanium/blue, /area/ruin/space/unpowered) +"p" = ( +/obj/effect/spawner/random/pool/spaceloot/syndicate/mixed, +/turf/simulated/floor/plating, +/area/ruin/space/unpowered) "Q" = ( /turf/simulated/mineral/random/low_chance, /area/ruin/space/unpowered) @@ -354,7 +358,7 @@ a c c b -f +p f i i diff --git a/_maps/map_files/RandomRuins/SpaceRuins/asteroid5.dmm b/_maps/map_files/RandomRuins/SpaceRuins/asteroid5.dmm index 313a25539d57..32bbba92f3e4 100644 --- a/_maps/map_files/RandomRuins/SpaceRuins/asteroid5.dmm +++ b/_maps/map_files/RandomRuins/SpaceRuins/asteroid5.dmm @@ -15,6 +15,10 @@ /obj/structure/spawner/mining/goliath, /turf/simulated/floor/plating/asteroid/airless, /area/ruin/space/unpowered) +"o" = ( +/obj/effect/spawner/random/pool/spaceloot/syndicate/mixed, +/turf/simulated/floor/plating/asteroid/airless, +/area/ruin/space/unpowered) "A" = ( /turf/simulated/mineral/random/low_chance, /area/ruin/space/unpowered) @@ -606,7 +610,7 @@ d c c b -d +o d c d diff --git a/_maps/map_files/RandomRuins/SpaceRuins/blowntcommsat.dmm b/_maps/map_files/RandomRuins/SpaceRuins/blowntcommsat.dmm index b7c699afbf25..57bae163401e 100644 --- a/_maps/map_files/RandomRuins/SpaceRuins/blowntcommsat.dmm +++ b/_maps/map_files/RandomRuins/SpaceRuins/blowntcommsat.dmm @@ -51,6 +51,13 @@ }, /turf/simulated/floor/plating/airless, /area/ruin/space/tcommsat) +"cl" = ( +/obj/structure/rack, +/obj/effect/spawner/random/pool/spaceloot/syndicate/mixed, +/turf/simulated/floor/plasteel/airless{ + icon_state = "dark" + }, +/area/ruin/space/tcommsat) "cM" = ( /obj/effect/decal/cleanable/blood/writing{ dir = 8 @@ -207,7 +214,7 @@ }, /area/ruin/space/tcommsat) "lq" = ( -/mob/living/simple_animal/hostile/syndicate/ranged/space/autogib, +/obj/effect/spawner/random/pool/spaceloot/modsuit_syndie, /turf/simulated/floor/plating/airless, /area/ruin/space/tcommsat) "my" = ( @@ -481,6 +488,7 @@ /area/ruin/space/tcommsat) "Go" = ( /obj/structure/table, +/obj/effect/spawner/random/pool/spaceloot/syndicate/mixed, /turf/simulated/floor/plating/airless, /area/ruin/space/tcommsat) "GG" = ( @@ -590,6 +598,10 @@ }, /turf/simulated/floor/plating/airless, /area/ruin/space/tcommsat) +"NC" = ( +/obj/effect/spawner/random/pool/spaceloot/syndicate/mixed, +/turf/simulated/floor/plating/airless, +/area/ruin/space/tcommsat) "NJ" = ( /obj/structure/disposaloutlet{ dir = 4 @@ -632,6 +644,7 @@ dir = 8 }, /obj/structure/closet/firecloset, +/obj/effect/spawner/random/pool/spaceloot/syndicate/mixed, /turf/simulated/floor/plasteel, /area/ruin/space/tcommsat) "PZ" = ( @@ -1241,7 +1254,7 @@ Wc Is ot UK -fS +cl Wr kx Jr @@ -2082,7 +2095,7 @@ Wc Wc Wc Is -Wc +NC Wr kx Jr @@ -2862,7 +2875,7 @@ au Wc ot bc -Wc +NC Wr bc Wc diff --git a/_maps/map_files/RandomRuins/SpaceRuins/casino.dmm b/_maps/map_files/RandomRuins/SpaceRuins/casino.dmm index edea8014ad6b..33b1f8830e20 100644 --- a/_maps/map_files/RandomRuins/SpaceRuins/casino.dmm +++ b/_maps/map_files/RandomRuins/SpaceRuins/casino.dmm @@ -293,6 +293,7 @@ /area/ruin/space/powered/casino/security) "hv" = ( /obj/structure/table/reinforced, +/obj/effect/spawner/random/pool/spaceloot/syndicate/mixed, /turf/simulated/floor/carpet/black, /area/ruin/space/powered/casino/floor) "hJ" = ( @@ -323,6 +324,8 @@ /obj/structure/cable{ icon_state = "4-8" }, +/obj/effect/spawner/random/pool/spaceloot/syndicate/mixed, +/obj/effect/spawner/random/pool/spaceloot/syndicate/mixed, /turf/simulated/floor/mineral/plastitanium, /area/ruin/space/powered/casino/security) "in" = ( @@ -382,6 +385,7 @@ /area/ruin/space/powered/casino/arrivals) "jz" = ( /obj/structure/closet/cabinet, +/obj/effect/spawner/random/pool/spaceloot/syndicate/mixed, /turf/simulated/floor/plating, /area/ruin/space/powered/casino/floor) "jJ" = ( @@ -660,6 +664,7 @@ "rh" = ( /obj/structure/grille/broken, /obj/structure/closet/crate/trashcart, +/obj/effect/spawner/random/pool/spaceloot/syndicate/mixed, /turf/simulated/floor/plating, /area/ruin/space/powered/casino/maints) "rp" = ( @@ -802,6 +807,7 @@ dir = 8 }, /obj/effect/mob_spawn/human/corpse/random_species/gambler, +/obj/effect/spawner/random/pool/spaceloot/syndicate/mixed, /turf/simulated/floor/plasteel/freezer, /area/ruin/space/powered/casino/hall) "wo" = ( @@ -1111,6 +1117,13 @@ }, /turf/simulated/floor/plasteel/dark, /area/ruin/space/powered/casino/arrivals) +"EK" = ( +/obj/structure/table, +/obj/effect/spawner/random/pool/spaceloot/syndicate/mixed, +/turf/simulated/floor/plasteel{ + icon_state = "cafeteria" + }, +/area/ruin/space/powered/casino/kitchen) "EZ" = ( /obj/machinery/door/airlock/maintenance, /obj/effect/spawner/random/dirt/maybe, @@ -1310,6 +1323,7 @@ "Nh" = ( /obj/structure/table/reinforced, /obj/item/tank/internals/oxygen, +/obj/effect/spawner/random/pool/spaceloot/syndicate/mixed, /turf/simulated/floor/mineral/plastitanium/red, /area/ruin/space/powered/casino/docked_ships) "Nj" = ( @@ -1368,6 +1382,13 @@ }, /turf/simulated/floor/plating, /area/ruin/space/powered/casino/security) +"OZ" = ( +/obj/structure/closet/secure_closet/freezer/fridge, +/obj/effect/spawner/random/pool/spaceloot/syndicate/mixed, +/turf/simulated/floor/plasteel{ + icon_state = "showroomfloor" + }, +/area/ruin/space/powered/casino/kitchen) "Pz" = ( /obj/structure/chair/wood{ dir = 8 @@ -2222,7 +2243,7 @@ cc cc fT sO -UO +OZ RS Is Is @@ -2454,7 +2475,7 @@ An IS sO UW -DM +EK ql DM sO diff --git a/_maps/map_files/RandomRuins/SpaceRuins/clownmime.dmm b/_maps/map_files/RandomRuins/SpaceRuins/clownmime.dmm index c353cfd9ef06..65170fd4d134 100644 --- a/_maps/map_files/RandomRuins/SpaceRuins/clownmime.dmm +++ b/_maps/map_files/RandomRuins/SpaceRuins/clownmime.dmm @@ -73,6 +73,7 @@ /obj/structure/window/reinforced{ dir = 1 }, +/obj/effect/spawner/random/pool/spaceloot/syndicate/mixed, /turf/simulated/floor/mineral/tranquillite, /area/ruin/space/powered) "fS" = ( @@ -732,6 +733,13 @@ /obj/effect/mapping_helpers/turfs/burn, /turf/simulated/floor/mineral/titanium, /area/ruin/space/clown_mime_ruin) +"OZ" = ( +/obj/effect/mapping_helpers/turfs/damage, +/obj/effect/mapping_helpers/turfs/burn, +/obj/item/stack/sheet/wood, +/obj/effect/spawner/random/pool/spaceloot/syndicate/mixed, +/turf/simulated/floor/mineral/plastitanium, +/area/ruin/space/clown_mime_ruin) "Pt" = ( /obj/structure/table/reinforced, /obj/effect/spawner/random/maintenance, @@ -1079,7 +1087,7 @@ OK nX wP Bb -TC +OZ nX tN tN diff --git a/_maps/map_files/RandomRuins/SpaceRuins/debris1.dmm b/_maps/map_files/RandomRuins/SpaceRuins/debris1.dmm index 354deb775f47..fb4e77a195c7 100644 --- a/_maps/map_files/RandomRuins/SpaceRuins/debris1.dmm +++ b/_maps/map_files/RandomRuins/SpaceRuins/debris1.dmm @@ -149,6 +149,10 @@ }, /turf/simulated/floor/plating/burnt/airless, /area/template_noop) +"QL" = ( +/obj/effect/spawner/random/pool/spaceloot/syndicate/mixed, +/turf/simulated/floor/plating/burnt/airless, +/area/template_noop) (1,1,1) = {" aa @@ -359,7 +363,7 @@ aa ay ad ml -ay +QL aU aa aa diff --git a/_maps/map_files/RandomRuins/SpaceRuins/debris2.dmm b/_maps/map_files/RandomRuins/SpaceRuins/debris2.dmm index ff51a70a0aa7..586ce7c912ac 100644 --- a/_maps/map_files/RandomRuins/SpaceRuins/debris2.dmm +++ b/_maps/map_files/RandomRuins/SpaceRuins/debris2.dmm @@ -129,6 +129,11 @@ /obj/machinery/computer/pandemic, /turf/simulated/floor/plasteel/airless, /area/template_noop) +"Di" = ( +/obj/effect/mapping_helpers/turfs/burn, +/obj/effect/spawner/random/pool/spaceloot/syndicate/mixed, +/turf/simulated/floor/plasteel/airless, +/area/template_noop) (1,1,1) = {" aa @@ -179,7 +184,7 @@ aa ad aG aA -aM +Di aF ad as diff --git a/_maps/map_files/RandomRuins/SpaceRuins/debris3.dmm b/_maps/map_files/RandomRuins/SpaceRuins/debris3.dmm index 419dbd23ad01..e8f94ba21d85 100644 --- a/_maps/map_files/RandomRuins/SpaceRuins/debris3.dmm +++ b/_maps/map_files/RandomRuins/SpaceRuins/debris3.dmm @@ -128,6 +128,10 @@ /obj/item/stack/sheet/metal, /turf/template_noop, /area/template_noop) +"P" = ( +/obj/effect/spawner/random/pool/spaceloot/syndicate/mixed, +/turf/simulated/floor/plating/damaged/airless, +/area/template_noop) "Q" = ( /obj/structure/girder, /turf/template_noop, @@ -529,7 +533,7 @@ U v a O -z +P z a a diff --git a/_maps/map_files/RandomRuins/SpaceRuins/deepstorage.dmm b/_maps/map_files/RandomRuins/SpaceRuins/deepstorage.dmm index b90406f23bdc..e062d4b683c5 100644 --- a/_maps/map_files/RandomRuins/SpaceRuins/deepstorage.dmm +++ b/_maps/map_files/RandomRuins/SpaceRuins/deepstorage.dmm @@ -5997,9 +5997,9 @@ /area/ruin/space/deepstorage) "MR" = ( /obj/structure/rack, -/obj/item/paper/researchnotes, /obj/effect/turf_decal/delivery/hollow, -/obj/effect/spawner/random/deepstorage_reward/main, +/obj/effect/spawner/random/pool/spaceloot/deepstorage/main, +/obj/item/paper/researchnotes, /turf/simulated/floor/plasteel{ dir = 6; icon_state = "vault" diff --git a/_maps/map_files/RandomRuins/SpaceRuins/derelict1.dmm b/_maps/map_files/RandomRuins/SpaceRuins/derelict1.dmm index 69e8353e31ac..97cf1402ced1 100644 --- a/_maps/map_files/RandomRuins/SpaceRuins/derelict1.dmm +++ b/_maps/map_files/RandomRuins/SpaceRuins/derelict1.dmm @@ -94,6 +94,12 @@ /mob/living/simple_animal/hostile/alien, /turf/simulated/floor/plating/airless, /area/ruin/space/unpowered) +"I" = ( +/obj/structure/alien/weeds, +/obj/structure/table, +/obj/effect/spawner/random/pool/spaceloot/syndicate/mixed, +/turf/simulated/floor/plating/airless, +/area/ruin/space/unpowered) "S" = ( /obj/structure/alien/weeds, /obj/structure/bed/nest, @@ -609,8 +615,8 @@ f G f c -m -m +I +I f c b diff --git a/_maps/map_files/RandomRuins/SpaceRuins/derelict3.dmm b/_maps/map_files/RandomRuins/SpaceRuins/derelict3.dmm index 20fe6a14d08c..21868b544b64 100644 --- a/_maps/map_files/RandomRuins/SpaceRuins/derelict3.dmm +++ b/_maps/map_files/RandomRuins/SpaceRuins/derelict3.dmm @@ -47,6 +47,10 @@ /obj/effect/decal/remains/human, /turf/simulated/floor/plating/airless, /area/ruin/space/unpowered) +"H" = ( +/obj/effect/spawner/random/pool/spaceloot/syndicate/mixed, +/turf/simulated/floor/plating/airless, +/area/ruin/space/unpowered) "O" = ( /mob/living/simple_animal/hostile/carp, /turf/simulated/floor/plating/airless, @@ -852,7 +856,7 @@ d d b c -b +H b b b @@ -1090,7 +1094,7 @@ b b b c -b +H b b b diff --git a/_maps/map_files/RandomRuins/SpaceRuins/derelict4.dmm b/_maps/map_files/RandomRuins/SpaceRuins/derelict4.dmm index 9d3a9e8bf61e..48208579bf65 100644 --- a/_maps/map_files/RandomRuins/SpaceRuins/derelict4.dmm +++ b/_maps/map_files/RandomRuins/SpaceRuins/derelict4.dmm @@ -61,6 +61,7 @@ /area/ruin/space/unpowered) "p" = ( /obj/structure/table, +/obj/effect/spawner/random/pool/spaceloot/syndicate/mixed, /turf/simulated/floor/mineral/titanium/blue/airless, /area/ruin/space/unpowered) "q" = ( diff --git a/_maps/map_files/RandomRuins/SpaceRuins/derelict5.dmm b/_maps/map_files/RandomRuins/SpaceRuins/derelict5.dmm index a57154509b6a..400c52a36c72 100644 --- a/_maps/map_files/RandomRuins/SpaceRuins/derelict5.dmm +++ b/_maps/map_files/RandomRuins/SpaceRuins/derelict5.dmm @@ -83,6 +83,10 @@ /obj/machinery/kitchen_machine/microwave, /turf/simulated/floor/plasteel, /area/ruin/space/unpowered) +"lE" = ( +/obj/effect/spawner/random/pool/spaceloot/syndicate/mixed, +/turf/simulated/floor/plasteel, +/area/ruin/space/unpowered) "mn" = ( /obj/structure/closet/crate, /obj/item/toy/plushie/nianplushie, @@ -241,6 +245,7 @@ /area/ruin/space/unpowered) "LA" = ( /obj/structure/table, +/obj/effect/spawner/random/pool/spaceloot/syndicate/mixed, /turf/simulated/floor/plasteel, /area/ruin/space/unpowered) "LD" = ( @@ -1324,7 +1329,7 @@ Qx Qx Qx Qx -zN +lE vE hG bO diff --git a/_maps/map_files/RandomRuins/SpaceRuins/dj.dmm b/_maps/map_files/RandomRuins/SpaceRuins/dj.dmm index 6894f69abde8..591be2b910a3 100644 --- a/_maps/map_files/RandomRuins/SpaceRuins/dj.dmm +++ b/_maps/map_files/RandomRuins/SpaceRuins/dj.dmm @@ -525,6 +525,7 @@ "bt" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/closet/crate/can, +/obj/effect/spawner/random/pool/spaceloot/syndicate/mixed, /turf/simulated/floor/plasteel{ icon_state = "bar" }, @@ -694,6 +695,7 @@ pixel_y = 2 }, /obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/random/pool/spaceloot/syndicate/mixed, /turf/simulated/floor/plasteel{ icon_state = "freezerfloor" }, diff --git a/_maps/map_files/RandomRuins/SpaceRuins/druglab.dmm b/_maps/map_files/RandomRuins/SpaceRuins/druglab.dmm index eacc7acf7711..a349099a7768 100644 --- a/_maps/map_files/RandomRuins/SpaceRuins/druglab.dmm +++ b/_maps/map_files/RandomRuins/SpaceRuins/druglab.dmm @@ -13,6 +13,7 @@ /area/ruin/space/methlab) "d" = ( /obj/structure/closet/crate, +/obj/effect/spawner/random/pool/spaceloot/syndicate/mixed, /turf/simulated/floor/plating, /area/ruin/space/methlab) "e" = ( diff --git a/_maps/map_files/RandomRuins/SpaceRuins/emptyshell.dmm b/_maps/map_files/RandomRuins/SpaceRuins/emptyshell.dmm index 3a6699cffbc3..324ba02d8fc6 100644 --- a/_maps/map_files/RandomRuins/SpaceRuins/emptyshell.dmm +++ b/_maps/map_files/RandomRuins/SpaceRuins/emptyshell.dmm @@ -40,6 +40,10 @@ /mob/living/simple_animal/hostile/asteroid/hivelord, /turf/simulated/floor/plating, /area/ruin/space/unpowered) +"t" = ( +/obj/effect/spawner/random/pool/spaceloot/syndicate/mixed, +/turf/simulated/floor/plating, +/area/ruin/space/unpowered) "T" = ( /obj/item/salvage/ruin/tablet, /turf/simulated/floor/plating, @@ -301,7 +305,7 @@ c c d d -d +t d d d diff --git a/_maps/map_files/RandomRuins/SpaceRuins/freighter.dmm b/_maps/map_files/RandomRuins/SpaceRuins/freighter.dmm index 4f1796e639a3..baf8278e10d0 100644 --- a/_maps/map_files/RandomRuins/SpaceRuins/freighter.dmm +++ b/_maps/map_files/RandomRuins/SpaceRuins/freighter.dmm @@ -153,7 +153,7 @@ /area/ruin/space/powered) "nq" = ( /obj/structure/closet/crate, -/obj/item/banhammer, +/obj/effect/spawner/random/pool/spaceloot/syndicate/mixed, /turf/simulated/floor/mineral/plastitanium, /area/ruin/space/powered) "nD" = ( @@ -184,6 +184,7 @@ /area/ruin/space/powered) "rV" = ( /obj/structure/closet/crate/secure/loot, +/obj/effect/spawner/random/pool/spaceloot/syndicate/mixed, /turf/simulated/floor/mineral/plastitanium, /area/ruin/space/powered) "st" = ( @@ -254,6 +255,7 @@ /obj/structure/safe, /obj/item/id_decal/gold, /obj/item/stack/spacecash/c200, +/obj/effect/spawner/random/pool/spaceloot/syndicate/mixed, /turf/simulated/floor/plasteel{ dir = 5; icon_state = "caution" diff --git a/_maps/map_files/RandomRuins/SpaceRuins/intactemptyship.dmm b/_maps/map_files/RandomRuins/SpaceRuins/intactemptyship.dmm index f13694d1e1d2..60ebb6538381 100644 --- a/_maps/map_files/RandomRuins/SpaceRuins/intactemptyship.dmm +++ b/_maps/map_files/RandomRuins/SpaceRuins/intactemptyship.dmm @@ -136,6 +136,11 @@ /obj/item/salvage/ruin/tablet, /turf/simulated/floor/mineral/titanium/purple, /area/ruin/space/powered) +"U" = ( +/obj/structure/closet, +/obj/effect/spawner/random/pool/spaceloot/syndicate/mixed, +/turf/simulated/floor/mineral/titanium/purple, +/area/ruin/space/powered) (1,1,1) = {" a @@ -322,7 +327,7 @@ a a a b -j +U r w Q diff --git a/_maps/map_files/RandomRuins/SpaceRuins/listeningpost.dmm b/_maps/map_files/RandomRuins/SpaceRuins/listeningpost.dmm index d068c1d38ffe..7d2518499e27 100644 --- a/_maps/map_files/RandomRuins/SpaceRuins/listeningpost.dmm +++ b/_maps/map_files/RandomRuins/SpaceRuins/listeningpost.dmm @@ -136,6 +136,10 @@ icon_state = "solarpanel" }, /area/ruin/space/syndicate_listening_station/asteroid) +"nk" = ( +/obj/effect/spawner/random/pool/spaceloot/syndicate/mixed, +/turf/simulated/floor/mineral/silver, +/area/ruin/space/syndicate_listening_station) "oE" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/floodlight, @@ -323,6 +327,7 @@ /obj/item/storage/box/tapes, /obj/item/taperecorder, /obj/item/clothing/glasses/regular, +/obj/effect/spawner/random/pool/spaceloot/syndicate/mixed, /turf/simulated/floor/plasteel/dark, /area/ruin/space/syndicate_listening_station) "AT" = ( @@ -550,6 +555,7 @@ /obj/item/clothing/shoes/slippers, /obj/item/clothing/under/misc/pj/red, /obj/item/clothing/suit/jacket/bomber/syndicate, +/obj/effect/spawner/random/pool/spaceloot/syndicate/mixed, /turf/simulated/floor/wood, /area/ruin/space/syndicate_listening_station) "RN" = ( @@ -1541,7 +1547,7 @@ yn yn kJ KM -Nd +nk kJ PH le diff --git a/_maps/map_files/RandomRuins/SpaceRuins/meatpackers.dmm b/_maps/map_files/RandomRuins/SpaceRuins/meatpackers.dmm index f63dd9362487..7b21d55fd076 100644 --- a/_maps/map_files/RandomRuins/SpaceRuins/meatpackers.dmm +++ b/_maps/map_files/RandomRuins/SpaceRuins/meatpackers.dmm @@ -63,6 +63,7 @@ "ap" = ( /obj/item/restraints/handcuffs, /obj/structure/closet/crate, +/obj/effect/spawner/random/pool/spaceloot/syndicate/mixed, /turf/simulated/floor/plating/airless, /area/ruin/unpowered/bmp_ship/delta) "aq" = ( @@ -193,6 +194,7 @@ "aP" = ( /obj/item/stack/spacecash/c50, /obj/item/stack/spacecash/c100, +/obj/effect/spawner/random/pool/spaceloot/syndicate/mixed, /turf/simulated/floor/wood, /area/ruin/unpowered/bmp_ship/fore) "aQ" = ( @@ -211,6 +213,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 1 }, +/obj/effect/spawner/random/pool/spaceloot/syndicate/mixed, /turf/simulated/floor/plating, /area/ruin/unpowered/bmp_ship/fore) "aT" = ( @@ -713,6 +716,7 @@ /obj/structure/closet/secure_closet/freezer/meat{ opened = 1 }, +/obj/effect/spawner/random/pool/spaceloot/syndicate/mixed, /turf/simulated/floor/plasteel{ icon_state = "white" }, @@ -2198,11 +2202,13 @@ /obj/structure/closet/crate/freezer, /obj/item/food/meat, /obj/item/food/hugemushroomslice, -/obj/effect/turf_decal/stripes/line{ - dir = 2 - }, +/obj/effect/turf_decal/stripes/line, /turf/simulated/floor/plating, /area/ruin/unpowered/bmp_ship/delta) +"PE" = ( +/obj/effect/spawner/random/pool/spaceloot/syndicate/mixed, +/turf/simulated/floor/plating, +/area/ruin/unpowered/bmp_ship/aft) "PP" = ( /obj/structure/computerframe{ dir = 4 @@ -4671,7 +4677,7 @@ cl cv eb ex -dG +PE dG dG fu diff --git a/_maps/map_files/RandomRuins/SpaceRuins/mechtransport.dmm b/_maps/map_files/RandomRuins/SpaceRuins/mechtransport.dmm index 393125e60ced..8ecdc1fa8d32 100644 --- a/_maps/map_files/RandomRuins/SpaceRuins/mechtransport.dmm +++ b/_maps/map_files/RandomRuins/SpaceRuins/mechtransport.dmm @@ -21,6 +21,7 @@ /area/ruin/space/mech_transport) "aZ" = ( /obj/structure/closet/crate/secure/loot, +/obj/effect/spawner/random/pool/spaceloot/syndicate/mixed, /turf/simulated/floor/plasteel/dark, /area/ruin/space/mech_transport) "bk" = ( @@ -101,10 +102,10 @@ /area/ruin/space/mech_transport) "hm" = ( /obj/structure/table, -/obj/item/mecha_parts/core, /obj/structure/sign/poster/contraband/tools{ pixel_y = 32 }, +/obj/effect/spawner/random/pool/spaceloot/mechtransport/storage4, /turf/simulated/floor/plasteel/dark, /area/ruin/space/mech_transport) "hu" = ( @@ -121,12 +122,7 @@ /area/ruin/space/mech_transport) "hW" = ( /obj/structure/table, -/obj/item/mecha_parts/mecha_equipment/repair_droid, -/obj/item/mecha_parts/mecha_equipment/extinguisher, -/obj/item/mecha_modkit/voice/honk{ - pixel_y = 10; - pixel_x = 3 - }, +/obj/effect/spawner/random/pool/spaceloot/mechtransport/storage1, /turf/simulated/floor/plasteel/dark, /area/ruin/space/mech_transport) "iG" = ( @@ -164,6 +160,7 @@ }, /obj/machinery/door/window, /obj/effect/decal/cleanable/cobweb, +/obj/effect/spawner/random/pool/spaceloot/syndicate/mixed, /turf/simulated/floor/plasteel/dark, /area/ruin/space/mech_transport) "od" = ( @@ -201,6 +198,7 @@ /area/ruin/space/mech_transport) "pJ" = ( /obj/structure/closet/firecloset, +/obj/effect/spawner/random/pool/spaceloot/syndicate/mixed, /turf/simulated/floor/mineral/plastitanium/red/airless, /area/ruin/space/mech_transport) "qs" = ( @@ -212,7 +210,6 @@ "qE" = ( /obj/effect/turf_decal/delivery/hollow, /obj/structure/sign/nosmoking_1{ - pixel_y = 0; pixel_x = 32 }, /obj/effect/mapping_helpers/turfs/burn, @@ -248,7 +245,6 @@ "sr" = ( /obj/structure/rack, /obj/item/stack/sheet/glass/fifty{ - pixel_y = 0; pixel_x = -2 }, /obj/item/stack/sheet/metal/fifty{ @@ -263,6 +259,7 @@ /area/ruin/space/mech_transport) "sY" = ( /obj/structure/closet, +/obj/effect/spawner/random/pool/spaceloot/syndicate/mixed, /turf/simulated/floor/plating, /area/ruin/space/mech_transport) "ta" = ( @@ -313,13 +310,7 @@ /area/ruin/space/mech_transport) "wo" = ( /obj/structure/table, -/obj/item/mecha_parts/mecha_equipment/drill, -/obj/item/mecha_parts/mecha_equipment/drill{ - pixel_y = 10 - }, -/obj/item/mecha_parts/mecha_equipment/drill/diamonddrill{ - pixel_y = 4 - }, +/obj/effect/spawner/random/pool/spaceloot/mechtransport/storage2, /turf/simulated/floor/plasteel/dark, /area/ruin/space/mech_transport) "wz" = ( @@ -542,7 +533,7 @@ /area/ruin/space/mech_transport) "MK" = ( /obj/structure/table, -/obj/item/mecha_parts/mecha_equipment/medical/sleeper, +/obj/effect/spawner/random/pool/spaceloot/mechtransport/storage3, /turf/simulated/floor/plasteel/dark, /area/ruin/space/mech_transport) "Nc" = ( diff --git a/_maps/map_files/RandomRuins/SpaceRuins/moonoutpost19.dmm b/_maps/map_files/RandomRuins/SpaceRuins/moonoutpost19.dmm index 525d34dae908..6dd7ac7ae041 100644 --- a/_maps/map_files/RandomRuins/SpaceRuins/moonoutpost19.dmm +++ b/_maps/map_files/RandomRuins/SpaceRuins/moonoutpost19.dmm @@ -4992,7 +4992,7 @@ /obj/effect/decal/cleanable/cobweb2, /obj/effect/turf_decal/delivery/hollow, /obj/structure/rack, -/obj/item/paper/researchnotes, +/obj/effect/spawner/random/pool/spaceloot/moonoutpost19/vault1, /turf/simulated/floor/plasteel{ icon_state = "dark" }, @@ -5921,9 +5921,8 @@ /area/ruin/space/moonbase19) "vh" = ( /obj/structure/rack, -/obj/item/mecha_parts/core, /obj/effect/turf_decal/delivery/hollow, -/obj/item/stock_parts/cell/infinite/abductor, +/obj/effect/spawner/random/pool/spaceloot/moonoutpost19/vault3, /turf/simulated/floor/plasteel{ icon_state = "dark" }, @@ -8137,8 +8136,7 @@ }, /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/delivery/hollow, -/obj/item/assembly/signaler/anomaly/random, -/obj/item/storage/lockbox/experimental_weapon, +/obj/effect/spawner/random/pool/spaceloot/moonoutpost19/vault2, /turf/simulated/floor/plasteel{ icon_state = "dark" }, diff --git a/_maps/map_files/RandomRuins/SpaceRuins/onehalf.dmm b/_maps/map_files/RandomRuins/SpaceRuins/onehalf.dmm index af97fb7f18aa..0ffd2a49d583 100644 --- a/_maps/map_files/RandomRuins/SpaceRuins/onehalf.dmm +++ b/_maps/map_files/RandomRuins/SpaceRuins/onehalf.dmm @@ -1030,6 +1030,7 @@ /area/ruin/space/onehalf/abandonedbridge) "dd" = ( /obj/structure/closet/firecloset/full, +/obj/effect/spawner/random/pool/spaceloot/syndicate/mixed, /turf/simulated/floor/plasteel, /area/ruin/space/onehalf/abandonedbridge) "de" = ( @@ -1122,6 +1123,11 @@ /mob/living/simple_animal/hostile/carp, /turf/template_noop, /area/template_noop) +"jI" = ( +/obj/structure/disposalpipe/trunk, +/obj/effect/spawner/random/pool/spaceloot/syndicate/mixed, +/turf/simulated/floor/plating/airless, +/area/ruin/space/onehalf/drone_bay) "jQ" = ( /obj/structure/cable{ icon_state = "0-8" @@ -1548,7 +1554,7 @@ aa aa aa as -aE +jI aM ba bo @@ -1680,7 +1686,7 @@ aa aa aa av -aE +jI aR by bo diff --git a/_maps/map_files/RandomRuins/SpaceRuins/rocky_motel.dmm b/_maps/map_files/RandomRuins/SpaceRuins/rocky_motel.dmm index 08a28a4cfd0d..141a1e5e9276 100644 --- a/_maps/map_files/RandomRuins/SpaceRuins/rocky_motel.dmm +++ b/_maps/map_files/RandomRuins/SpaceRuins/rocky_motel.dmm @@ -38,6 +38,7 @@ /obj/structure/toilet{ dir = 4 }, +/obj/effect/spawner/random/pool/spaceloot/syndicate/mixed, /turf/simulated/floor/plasteel{ icon_state = "freezerfloor" }, @@ -46,6 +47,7 @@ /obj/structure/closet/cabinet, /obj/item/clothing/under/color/random, /obj/item/clothing/under/dress/sundress, +/obj/effect/spawner/random/pool/spaceloot/syndicate/mixed, /turf/simulated/floor/carpet/black, /area/ruin/space/powered) "fH" = ( @@ -74,6 +76,7 @@ "gP" = ( /obj/structure/table/wood, /obj/effect/mapping_helpers/turfs/damage, +/obj/effect/spawner/random/pool/spaceloot/syndicate/mixed, /turf/simulated/floor/wood, /area/ruin/space/powered) "gY" = ( diff --git a/_maps/map_files/RandomRuins/SpaceRuins/spacebar.dmm b/_maps/map_files/RandomRuins/SpaceRuins/spacebar.dmm index e72adf279475..e67ddd0b3b2b 100644 --- a/_maps/map_files/RandomRuins/SpaceRuins/spacebar.dmm +++ b/_maps/map_files/RandomRuins/SpaceRuins/spacebar.dmm @@ -127,6 +127,7 @@ /area/ruin/space/powered/bar) "aF" = ( /obj/structure/closet/secure_closet/freezer/kitchen, +/obj/effect/spawner/random/pool/spaceloot/syndicate/mixed, /turf/simulated/floor/wood, /area/ruin/space/powered/bar) "aG" = ( @@ -134,6 +135,7 @@ /area/ruin/space/powered) "aH" = ( /obj/structure/closet/secure_closet/freezer/fridge, +/obj/effect/spawner/random/pool/spaceloot/syndicate/mixed, /turf/simulated/floor/wood, /area/ruin/space/powered/bar) "aI" = ( @@ -456,6 +458,7 @@ /obj/machinery/light{ dir = 8 }, +/obj/effect/spawner/random/pool/spaceloot/syndicate/mixed, /turf/simulated/floor/plasteel{ icon_state = "dark" }, diff --git a/_maps/map_files/RandomRuins/SpaceRuins/syndicatedruglab.dmm b/_maps/map_files/RandomRuins/SpaceRuins/syndicatedruglab.dmm index 096d63d14423..7cca9d8aac26 100644 --- a/_maps/map_files/RandomRuins/SpaceRuins/syndicatedruglab.dmm +++ b/_maps/map_files/RandomRuins/SpaceRuins/syndicatedruglab.dmm @@ -1,6 +1,7 @@ //MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE "cq" = ( /obj/structure/table, +/obj/effect/spawner/random/pool/spaceloot/syndicate/mixed, /turf/simulated/floor/pod/dark, /area/ruin/space/syndicate_druglab) "dL" = ( @@ -267,7 +268,7 @@ /area/ruin/space/syndicate_druglab) "Fq" = ( /obj/structure/closet/cabinet, -/obj/item/soap/syndie, +/obj/effect/spawner/random/pool/spaceloot/syndicate/mixed, /turf/simulated/floor/carpet/black, /area/ruin/space/syndicate_druglab) "Fx" = ( diff --git a/_maps/map_files/RandomRuins/SpaceRuins/syndiecakesfactory.dmm b/_maps/map_files/RandomRuins/SpaceRuins/syndiecakesfactory.dmm index 0fef45873213..30e727b81cba 100644 --- a/_maps/map_files/RandomRuins/SpaceRuins/syndiecakesfactory.dmm +++ b/_maps/map_files/RandomRuins/SpaceRuins/syndiecakesfactory.dmm @@ -742,7 +742,7 @@ /area/template_noop) "CR" = ( /obj/structure/chair/office/dark, -/mob/living/simple_animal/hostile/syndicate/ranged/space/autogib, +/obj/effect/spawner/random/pool/spaceloot/modsuit_syndie, /turf/simulated/floor/engine, /area/ruin/space/syndicakefactory) "CW" = ( @@ -908,6 +908,13 @@ /obj/item/stack/sheet/animalhide/corgi, /turf/simulated/floor/grass, /area/ruin/space/syndicakefactory) +"ID" = ( +/obj/structure/table/glass/reinforced/plastitanium, +/obj/effect/spawner/random/pool/spaceloot/syndicate/mixed, +/turf/simulated/floor/plasteel{ + icon_state = "floorgrime" + }, +/area/ruin/space/syndicakefactory) "IE" = ( /obj/item/flag/syndi{ anchored = 1 @@ -2747,7 +2754,7 @@ OK OK OK EJ -Wh +ID xO hq xO diff --git a/_maps/map_files/RandomRuins/SpaceRuins/syndiedepot.dmm b/_maps/map_files/RandomRuins/SpaceRuins/syndiedepot.dmm index d30991749016..8d7650291303 100644 --- a/_maps/map_files/RandomRuins/SpaceRuins/syndiedepot.dmm +++ b/_maps/map_files/RandomRuins/SpaceRuins/syndiedepot.dmm @@ -146,13 +146,13 @@ dir = 1; on = 1 }, -/obj/effect/spawner/random/syndicate/loot/common, +/obj/effect/spawner/random/pool/spaceloot/syndicate/common/depot, /turf/simulated/floor/plasteel{ icon_state = "dark" }, /area/syndicate_depot/core) "aB" = ( -/obj/effect/spawner/random/syndicate/loot/common, +/obj/effect/spawner/random/pool/spaceloot/syndicate/common/depot, /turf/simulated/floor/plasteel{ icon_state = "dark" }, @@ -342,7 +342,7 @@ }, /area/syndicate_depot/core) "bc" = ( -/obj/effect/spawner/random/syndicate/loot/rare, +/obj/effect/spawner/random/pool/spaceloot/syndicate/rare/depot, /turf/simulated/floor/plasteel{ icon_state = "dark" }, @@ -350,7 +350,7 @@ "bd" = ( /obj/item/lighter/zippo/black, /obj/structure/table, -/obj/effect/spawner/random/syndicate/loot/stetchkin, +/obj/effect/spawner/random/syndicate/stetchkin, /turf/simulated/floor/plasteel{ icon_state = "dark" }, @@ -367,7 +367,7 @@ dir = 1; on = 1 }, -/obj/effect/spawner/random/syndicate/loot/rare, +/obj/effect/spawner/random/pool/spaceloot/syndicate/rare/depot, /turf/simulated/floor/plasteel{ icon_state = "dark" }, @@ -394,7 +394,7 @@ /area/syndicate_depot/outer) "bl" = ( /obj/structure/table, -/obj/effect/spawner/random/syndicate/loot/stetchkin, +/obj/effect/spawner/random/syndicate/stetchkin, /turf/simulated/floor/plasteel{ icon_state = "dark" }, @@ -409,20 +409,11 @@ icon_state = "dark" }, /area/syndicate_depot/outer) -"bn" = ( -/obj/machinery/light{ - dir = 8 - }, -/obj/effect/spawner/random/syndicate/loot/common, -/turf/simulated/floor/plasteel{ - icon_state = "dark" - }, -/area/syndicate_depot/core) "bo" = ( /obj/machinery/light{ dir = 4 }, -/obj/effect/spawner/random/syndicate/loot/common, +/obj/effect/spawner/random/pool/spaceloot/syndicate/common/depot, /turf/simulated/floor/plasteel{ icon_state = "dark" }, @@ -532,7 +523,7 @@ }, /area/syndicate_depot/core) "bE" = ( -/obj/effect/spawner/random/syndicate/loot/officer, +/obj/effect/spawner/random/pool/spaceloot/syndicate/officer/depot, /turf/simulated/floor/plasteel{ icon_state = "dark" }, @@ -652,7 +643,7 @@ /area/syndicate_depot/outer) "bU" = ( /obj/structure/table, -/obj/effect/spawner/random/syndicate/loot/stetchkin, +/obj/effect/spawner/random/syndicate/stetchkin, /turf/simulated/floor/plasteel{ icon_state = "dark" }, @@ -786,8 +777,8 @@ }, /area/syndicate_depot/core) "cm" = ( -/obj/effect/spawner/random/syndicate/loot/armory, /obj/machinery/atmospherics/pipe/simple/hidden, +/obj/effect/spawner/random/pool/spaceloot/syndicate/armory/depot, /turf/simulated/floor/plasteel{ icon_state = "dark" }, @@ -797,13 +788,13 @@ dir = 1; on = 1 }, -/obj/effect/spawner/random/syndicate/loot/armory, +/obj/effect/spawner/random/pool/spaceloot/syndicate/armory/depot, /turf/simulated/floor/plasteel{ icon_state = "dark" }, /area/syndicate_depot/core) "co" = ( -/obj/effect/spawner/random/syndicate/loot/armory, +/obj/effect/spawner/random/pool/spaceloot/syndicate/armory/depot, /turf/simulated/floor/plasteel{ icon_state = "dark" }, @@ -1100,7 +1091,7 @@ /obj/machinery/light/small{ dir = 8 }, -/obj/effect/spawner/random/syndicate/loot/rare, +/obj/effect/spawner/random/pool/spaceloot/syndicate/rare/depot, /turf/simulated/floor/plasteel{ icon_state = "dark" }, @@ -1142,6 +1133,14 @@ }, /turf/simulated/floor/plating/asteroid/airless, /area/syndicate_depot/outer) +"Nh" = ( +/obj/machinery/light{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/syndicate_depot/core) "Te" = ( /turf/simulated/mineral/random/high_chance, /area/syndicate_depot/outer) @@ -1729,7 +1728,7 @@ aM at aD aD -bn +cW bu bz at @@ -1933,7 +1932,7 @@ aD aD aD aD -bo +Nh aD bv at @@ -2093,7 +2092,7 @@ aD aD aD aD -bE +aB at aD aD @@ -2452,7 +2451,7 @@ cl cz aD cQ -bE +aD aD aD at @@ -2488,11 +2487,11 @@ af at aw aD -aB +aD at aD aD -bc +aD bi aD aD @@ -2547,7 +2546,7 @@ aD at aD aD -bE +aD bE cb cn @@ -2558,7 +2557,7 @@ aD bC aD at -bh +aL aD at af @@ -2609,7 +2608,7 @@ cV aD aD at -bc +aD aD at at @@ -2746,7 +2745,7 @@ aD aD aE aD -bc +aD bc at aD @@ -2757,12 +2756,12 @@ at aD cD aD -bE +aD at aL aD bc -bc +aD aD aD at @@ -2894,7 +2893,7 @@ af af af at -aB +aD aD aK aR @@ -2965,7 +2964,7 @@ aD cW aD aD -aB +aD at af af diff --git a/_maps/map_files/RandomRuins/SpaceRuins/telecomns_returns.dmm b/_maps/map_files/RandomRuins/SpaceRuins/telecomns_returns.dmm index 9263dfe5d4c7..a55559ca85b8 100644 --- a/_maps/map_files/RandomRuins/SpaceRuins/telecomns_returns.dmm +++ b/_maps/map_files/RandomRuins/SpaceRuins/telecomns_returns.dmm @@ -84,9 +84,9 @@ }, /area/ruin/space/telecomms/chamber) "bP" = ( -/obj/effect/spawner/random/telecomms_core_table, /obj/machinery/ai_slipper, /obj/structure/table/glass/reinforced/plastitanium, +/obj/effect/spawner/random/pool/spaceloot/dvorak_core_table, /turf/simulated/floor/plasteel{ dir = 1; icon_state = "vault"; @@ -388,7 +388,7 @@ /turf/simulated/floor/plasteel, /area/ruin/space/telecomms/tele) "ia" = ( -/obj/effect/spawner/random/telecomms_emp_loot, +/obj/effect/spawner/random/pool/spaceloot/dvorak_emp_loot, /turf/simulated/floor/engine, /area/ruin/space/telecomms/computer) "ik" = ( @@ -1667,7 +1667,7 @@ }, /area/ruin/space/telecomms/chamber) "CI" = ( -/obj/structure/displaycase/dvoraks_treat, +/obj/effect/spawner/random/pool/spaceloot/dvorak_displaycase, /turf/simulated/floor/plasteel{ dir = 4; icon_state = "vault"; diff --git a/_maps/map_files/RandomRuins/SpaceRuins/turretedoutpost.dmm b/_maps/map_files/RandomRuins/SpaceRuins/turretedoutpost.dmm index 5e607e129113..833af7b41907 100644 --- a/_maps/map_files/RandomRuins/SpaceRuins/turretedoutpost.dmm +++ b/_maps/map_files/RandomRuins/SpaceRuins/turretedoutpost.dmm @@ -70,6 +70,7 @@ /area/ruin/space/unpowered) "q" = ( /obj/machinery/light, +/mob/living/simple_animal/hostile/syndicate/melee/autogib, /turf/simulated/floor/plasteel, /area/ruin/space/unpowered) "r" = ( @@ -183,6 +184,7 @@ /area/ruin/space/unpowered) "H" = ( /obj/structure/chair, +/mob/living/simple_animal/hostile/syndicate/melee/autogib, /turf/simulated/floor/plasteel, /area/ruin/space/unpowered) "I" = ( @@ -263,6 +265,22 @@ }, /turf/simulated/floor/plasteel, /area/ruin/space/unpowered) +"T" = ( +/obj/item/rack_parts, +/obj/effect/spawner/random/pool/spaceloot/syndicate/mixed, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "vault" + }, +/area/ruin/space/unpowered) +"Z" = ( +/obj/structure/rack, +/obj/effect/spawner/random/pool/spaceloot/syndicate/mixed, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "vault" + }, +/area/ruin/space/unpowered) (1,1,1) = {" a @@ -384,10 +402,10 @@ a l d d -s -r +T +Z F -r +Z d d l @@ -429,8 +447,8 @@ l d s x -r -r +Z +Z x s d diff --git a/_maps/map_files/RandomRuins/SpaceRuins/unathi_skiff.dmm b/_maps/map_files/RandomRuins/SpaceRuins/unathi_skiff.dmm index c9fb4b3c1206..b60a14413482 100644 --- a/_maps/map_files/RandomRuins/SpaceRuins/unathi_skiff.dmm +++ b/_maps/map_files/RandomRuins/SpaceRuins/unathi_skiff.dmm @@ -129,9 +129,7 @@ /area/ruin/space/unathi_breacher/hold) "kb" = ( /obj/structure/rack, -/obj/item/stack/sheet/mineral/gold, -/obj/item/stack/sheet/mineral/gold, -/obj/item/stack/sheet/mineral/gold, +/obj/effect/spawner/random/pool/spaceloot/syndicate/mixed, /turf/simulated/floor/pod/dark, /area/ruin/space/unathi_breacher/hold) "kf" = ( @@ -146,6 +144,7 @@ "kt" = ( /obj/structure/table, /obj/item/screwdriver, +/obj/effect/spawner/random/pool/spaceloot/syndicate/mixed, /turf/simulated/floor/plasteel/airless, /area/ruin/space/unathi_breacher/engineering) "li" = ( diff --git a/_maps/map_files/RandomRuins/SpaceRuins/ussp.dmm b/_maps/map_files/RandomRuins/SpaceRuins/ussp.dmm index bcddd30bcfd6..580fe6558302 100644 --- a/_maps/map_files/RandomRuins/SpaceRuins/ussp.dmm +++ b/_maps/map_files/RandomRuins/SpaceRuins/ussp.dmm @@ -1284,6 +1284,7 @@ dir = 4 }, /obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/random/pool/spaceloot/syndicate/mixed, /turf/simulated/floor/plasteel{ dir = 6; icon_state = "darkred" @@ -3271,6 +3272,7 @@ /area/ruin/space/derelict/hallway/primary) "iI" = ( /obj/structure/closet/firecloset, +/obj/effect/spawner/random/pool/spaceloot/syndicate/mixed, /turf/simulated/floor/plasteel{ dir = 6; icon_state = "caution" @@ -4893,6 +4895,7 @@ /obj/structure/window/reinforced{ dir = 1 }, +/obj/effect/spawner/random/pool/spaceloot/syndicate/mixed, /turf/simulated/floor/plasteel{ dir = 1; icon_state = "whitered" @@ -4939,6 +4942,7 @@ /area/ruin/space/derelict/crew_quarters) "nh" = ( /obj/structure/closet/athletic_mixed, +/obj/effect/spawner/random/pool/spaceloot/syndicate/mixed, /turf/simulated/floor/plasteel{ icon_state = "hydrofloor" }, @@ -5716,6 +5720,7 @@ /area/ruin/space/derelict/hallway/primary) "pt" = ( /obj/structure/closet/jcloset, +/obj/effect/spawner/random/pool/spaceloot/syndicate/mixed, /turf/simulated/floor/plasteel/dark, /area/ruin/space/derelict/crew_quarters) "pu" = ( @@ -6950,6 +6955,10 @@ /obj/effect/spawner/random/fungus/frequent, /turf/simulated/wall/indestructible/titanium/soviet/nodiagonal, /area/ruin/space/derelict/arrival) +"Ae" = ( +/mob/living/simple_animal/hostile/poison/giant_spider/hunter, +/turf/simulated/floor/plasteel/dark, +/area/ruin/space/derelict/crew_quarters) "Bx" = ( /obj/machinery/door_control{ id = "ruslock"; @@ -7029,6 +7038,13 @@ icon_state = "white" }, /area/ruin/space/derelict/arrival) +"Za" = ( +/obj/structure/chair/comfy/shuttle{ + dir = 4 + }, +/obj/effect/spawner/random/pool/spaceloot/syndicate/mixed, +/turf/simulated/floor/mineral/plastitanium/red, +/area/ruin/space/derelict/arrival) (1,1,1) = {" ac @@ -7264,7 +7280,7 @@ ac ir iP ji -jQ +Za jQ lt lI @@ -12452,7 +12468,7 @@ ac aV pm pt -hU +Ae pM pY db @@ -12736,7 +12752,7 @@ pn pw pw db -db +qA db Mi aV diff --git a/_maps/map_files/RandomRuins/SpaceRuins/ussp_tele.dmm b/_maps/map_files/RandomRuins/SpaceRuins/ussp_tele.dmm index 70f2dca4ac04..0d5ebb8c4f2a 100644 --- a/_maps/map_files/RandomRuins/SpaceRuins/ussp_tele.dmm +++ b/_maps/map_files/RandomRuins/SpaceRuins/ussp_tele.dmm @@ -230,6 +230,7 @@ /area/ruin/space/derelict/teleporter) "vr" = ( /obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/random/pool/spaceloot/syndicate/mixed, /turf/simulated/floor/plasteel{ dir = 10; icon_state = "darkblue" diff --git a/_maps/map_files/RandomRuins/SpaceRuins/wizardcrash.dmm b/_maps/map_files/RandomRuins/SpaceRuins/wizardcrash.dmm index fe9aa407df24..eda3acc04835 100644 --- a/_maps/map_files/RandomRuins/SpaceRuins/wizardcrash.dmm +++ b/_maps/map_files/RandomRuins/SpaceRuins/wizardcrash.dmm @@ -315,6 +315,7 @@ /area/ruin/space/powered) "bk" = ( /obj/structure/rack, +/obj/effect/spawner/random/pool/spaceloot/syndicate/mixed, /turf/simulated/floor/plasteel{ icon_state = "chapel" }, @@ -396,6 +397,7 @@ /area/ruin/space/powered) "bz" = ( /mob/living/simple_animal/hostile/mimic/crate, +/obj/effect/spawner/random/pool/spaceloot/syndicate/mixed, /turf/simulated/floor/plating, /area/ruin/space/powered) "bA" = ( @@ -488,6 +490,10 @@ /obj/structure/table, /turf/simulated/floor/plating, /area/ruin/space/powered) +"EZ" = ( +/obj/effect/spawner/random/pool/spaceloot/syndicate/mixed, +/turf/simulated/floor/plating, +/area/ruin/space/powered) "YM" = ( /obj/structure/table/wood, /obj/item/blank_tarot_card, @@ -577,7 +583,7 @@ aa bH ae aY -aS +EZ bl bq ae diff --git a/_maps/map_files/RandomRuins/SpaceRuins/wreckedcargoship.dmm b/_maps/map_files/RandomRuins/SpaceRuins/wreckedcargoship.dmm index 0f6d16eea8e9..5f8a7b0b8732 100644 --- a/_maps/map_files/RandomRuins/SpaceRuins/wreckedcargoship.dmm +++ b/_maps/map_files/RandomRuins/SpaceRuins/wreckedcargoship.dmm @@ -274,6 +274,7 @@ /obj/effect/decal/cleanable/cobweb, /obj/structure/rack, /obj/item/stack/rods/fifty, +/obj/effect/spawner/random/pool/spaceloot/syndicate/mixed, /turf/simulated/floor/plasteel{ icon_state = "titanium"; dir = 4 @@ -666,6 +667,7 @@ dir = 1 }, /obj/structure/closet/crate/secure/loot, +/obj/effect/spawner/random/pool/spaceloot/syndicate/mixed, /turf/simulated/floor/pod/light, /area/ruin/space/wreck_cargoship) "AN" = ( @@ -783,6 +785,7 @@ "Fk" = ( /obj/structure/closet/crate, /obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/random/pool/spaceloot/syndicate/mixed, /turf/simulated/floor/plasteel{ icon_state = "yellowsiding"; dir = 1 @@ -1084,6 +1087,7 @@ pixel_y = -32 }, /obj/structure/closet/crate/secure/loot, +/obj/effect/spawner/random/pool/spaceloot/syndicate/mixed, /turf/simulated/floor/plasteel{ dir = 1; icon_state = "blackcorner" @@ -1193,6 +1197,7 @@ "Vc" = ( /obj/effect/decal/cleanable/cobweb, /obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/random/pool/spaceloot/syndicate/mixed, /turf/simulated/floor/plasteel{ dir = 9; icon_state = "caution" @@ -1307,6 +1312,7 @@ /obj/machinery/light/small{ dir = 1 }, +/obj/effect/spawner/random/pool/spaceloot/syndicate/mixed, /turf/simulated/floor/plating, /area/ruin/space/wreck_cargoship) "XX" = ( diff --git a/code/datums/ruins/space_ruins.dm b/code/datums/ruins/space_ruins.dm index 6f6d1e35a839..fe924bec1cdd 100644 --- a/code/datums/ruins/space_ruins.dm +++ b/code/datums/ruins/space_ruins.dm @@ -225,7 +225,6 @@ name = "Suspicious Supply Depot" description = "A syndicate supply depot, heavily stocked, but heavily guarded with an assortment of shields, sentry bots, armed operatives and more." allow_duplicates = FALSE // One of these is enough - always_place = TRUE // This is on the always spawn list because of the shielding chance /datum/map_template/ruin/space/ussp_tele id = "ussp_tele" diff --git a/code/game/objects/effects/spawners/depot_spawners.dm b/code/game/objects/effects/spawners/depot_spawners.dm index e49d5b51122f..153871d088e9 100644 --- a/code/game/objects/effects/spawners/depot_spawners.dm +++ b/code/game/objects/effects/spawners/depot_spawners.dm @@ -65,37 +65,9 @@ ) // Loot -/obj/effect/spawner/random/syndicate/loot - spawn_inside = /obj/structure/closet/secure_closet/depot - -/obj/effect/spawner/random/syndicate/loot/common - name = "syndicate depot loot, common" - icon_state = "loot" - spawn_loot_chance = 50 - // Loot schema: costumes, toys, useless gimmick items - loot = list( - /obj/item/clothing/mask/gas/syndicate, - /obj/item/clothing/shoes/magboots/syndie, - /obj/item/clothing/suit/jacket/bomber/syndicate, - /obj/item/clothing/suit/storage/iaa/blackjacket/armored, - /obj/item/clothing/under/syndicate/combat, - /obj/item/clothing/under/syndicate/sniper, - /obj/item/coin/antagtoken/syndicate, - /obj/item/deck/cards/syndicate, - /obj/item/lighter/zippo/gonzofist, - /obj/item/soap/syndie, - /obj/item/stamp/chameleon, - /obj/item/storage/fancy/cigarettes/cigpack_syndicate, - /obj/item/storage/secure/briefcase/syndie, - /obj/item/storage/toolbox/syndicate, - /obj/item/suppressor, - /obj/item/toy/syndicateballoon, - ) - -/obj/effect/spawner/random/syndicate/loot/stetchkin +/obj/effect/spawner/random/syndicate/stetchkin name = "syndicate depot loot, 20pct stetchkin" icon_state = "stetchkin" - spawn_inside = null spawn_loot_chance = 80 loot = list( /obj/item/gun/projectile/automatic/pistol, @@ -104,84 +76,6 @@ /obj/item/wrench, ) -/obj/effect/spawner/random/syndicate/loot/rare - name = "syndicate depot loot, rare" - icon_state = "doubleloot" - spawn_loot_chance = 50 - // Basic stealth, utility and environmental gear. - loot = list( - /obj/item/ammo_box/magazine/m10mm, - /obj/item/clothing/gloves/color/black/thief, - /obj/item/clothing/shoes/chameleon/noslip, - /obj/item/clothing/under/syndicate/silicon_cham, - /obj/item/clothing/mask/chameleon/voice_change, - /obj/item/flash/cameraflash, - /obj/item/gun/projectile/automatic/toy/pistol/riot, - /obj/item/mod/control/pre_equipped/traitor, - /obj/item/mod/module/chameleon, - /obj/item/mod/module/holster/hidden, - /obj/item/mod/module/noslip, - /obj/item/mod/module/visor/night, - /obj/item/mod/module/plate_compression, - /obj/item/reagent_containers/hypospray/autoinjector/hyper_medipen, - /obj/item/reagent_containers/hypospray/autoinjector/nanocalcium, - /obj/item/stack/sheet/mineral/gold{amount = 20}, - /obj/item/stack/sheet/mineral/plasma{amount = 20}, - /obj/item/stack/sheet/mineral/silver{amount = 20}, - /obj/item/stack/sheet/mineral/uranium{amount = 20}, - /obj/item/storage/backpack/duffel/syndie/med/surgery, - /obj/item/storage/backpack/satchel_flat, - /obj/item/storage/belt/military, - /obj/item/storage/box/syndie_kit/camera_bug, - /obj/item/storage/box/syndie_kit/chameleon, - /obj/item/storage/box/syndie_kit/space, - ) - -/obj/effect/spawner/random/syndicate/loot/officer - name = "syndicate depot loot, officer" - spawn_loot_chance = 40 - // Primarily utility items with occasional low damage weaponry. - loot = list( - /obj/item/borg/upgrade/syndicate, - /obj/item/clothing/glasses/hud/security/chameleon, - /obj/item/clothing/glasses/thermal, - /obj/item/clothing/shoes/magboots/elite, - /obj/item/door_remote/omni/access_tuner, - /obj/item/encryptionkey/binary, - /obj/item/gun/projectile/automatic/c20r/toy/riot, - /obj/item/jammer, - /obj/item/mod/module/power_kick, - /obj/item/mod/module/stealth, - /obj/item/mod/module/visor/thermal, - /obj/item/pen/edagger, - /obj/item/pinpointer/advpinpointer, - /obj/item/stack/sheet/mineral/diamond{amount = 10}, - /obj/item/storage/belt/sheath/snakesfang, - /obj/item/storage/box/syndidonkpockets, - /obj/item/storage/box/syndie_kit/stechkin, - /obj/item/storage/firstaid/tactical, - ) - -/obj/effect/spawner/random/syndicate/loot/armory - name = "syndicate depot loot, armory" - spawn_inside = /obj/structure/closet/secure_closet/depot/armory - // Combat orientated items that could give the player an advantage if an antag messes with them. - loot = list( - /obj/item/bio_chip_implanter/proto_adrenalin, - /obj/item/chameleon, - /obj/item/cqc_manual, - /obj/item/gun/medbeam, - /obj/item/gun/projectile/automatic/sniper_rifle/toy, - /obj/item/melee/energy/sword/saber, - /obj/item/mod/control/pre_equipped/traitor_elite, - /obj/item/organ/internal/cyberimp/arm/razorwire, - /obj/item/organ/internal/cyberimp/brain/sensory_enhancer, - /obj/item/reagent_containers/hypospray/autoinjector/stimulants, - /obj/item/shield/energy, - /obj/item/storage/box/syndie_kit/teleporter, - /obj/item/weaponcrafting/gunkit/universal_gun_kit, - ) - // Layout-affecting spawns /obj/effect/spawner/random/syndicate/walldoor diff --git a/code/game/objects/effects/spawners/random/pool/pool_spawner.dm b/code/game/objects/effects/spawners/random/pool/pool_spawner.dm index 2cfcaaff9bd2..397a4801bd40 100644 --- a/code/game/objects/effects/spawners/random/pool/pool_spawner.dm +++ b/code/game/objects/effects/spawners/random/pool/pool_spawner.dm @@ -4,10 +4,10 @@ icon_state = "loot" /// How much this spawner will subtract from the available budget if it - /// spawns. A value of `INFINITY` (i.e., not setting the value on a subtype) + /// spawns. A value of `-1` (i.e., not setting the value on a subtype) /// does not attempt to subtract from the budget. This is useful for /// spawners which themselves spawn other spawners. - var/point_value = INFINITY + var/point_value = -1 /// Whether non-spawner items should be removed from the shared loot pool /// after spawning. var/unique_picks = FALSE @@ -79,7 +79,7 @@ deduct_points = FALSE // If we don't have a sane point value, don't deduct points - if(point_value == INFINITY) + if(point_value == -1) deduct_points = FALSE // If we deduct points, we need to check affordability diff --git a/code/game/objects/effects/spawners/random/pool/space_loot.dm b/code/game/objects/effects/spawners/random/pool/space_loot.dm new file mode 100644 index 000000000000..1cec5c1408f6 --- /dev/null +++ b/code/game/objects/effects/spawners/random/pool/space_loot.dm @@ -0,0 +1,340 @@ +/datum/spawn_pool/spaceloot + id = "space_loot_spawn_pool" + available_points = 1700 + +/obj/effect/spawner/random/pool/spaceloot + icon = 'icons/effects/random_spawners.dmi' + icon_state = "giftbox" + spawn_pool_id = "space_loot_spawn_pool" + record_spawn = TRUE + +/obj/effect/spawner/random/pool/spaceloot/record_item(type_path_to_make) + if(ispath(type_path_to_make, /obj/effect)) + return + + SSblackbox.record_feedback("tally", "space_loot_spawns", 1, "[type_path_to_make]") + +/obj/effect/spawner/random/pool/spaceloot/dvorak_core_table + point_value = 100 + guaranteed = TRUE + loot = list( + /obj/item/rcd/combat, + /obj/item/gun/medbeam, + /obj/item/gun/energy/wormhole_projector, + /obj/item/storage/box/syndie_kit/oops_all_extraction_flares, + ) + +/obj/effect/spawner/random/pool/spaceloot/dvorak_emp_loot + point_value = 35 + guaranteed = TRUE + loot = list( + /obj/item/grenade/empgrenade = 8, + /obj/item/gun/energy/ionrifle/carbine = 1, + /obj/item/gun/energy/ionrifle = 1, + ) + +/obj/effect/spawner/random/pool/spaceloot/dvorak_displaycase + point_value = 100 + guaranteed = TRUE + loot = list(/obj/structure/displaycase/dvoraks_treat) + +/obj/effect/spawner/random/pool/spaceloot/syndicate/common + name = "syndicate depot loot, common" + icon_state = "loot" + point_value = 10 + loot = list( + // Loot schema: costumes, toys, useless gimmick items + /obj/item/clothing/mask/gas/syndicate, + /obj/item/clothing/shoes/magboots/syndie, + /obj/item/clothing/suit/jacket/bomber/syndicate, + /obj/item/clothing/suit/storage/iaa/blackjacket/armored, + /obj/item/clothing/under/syndicate/combat, + /obj/item/clothing/under/syndicate/sniper, + /obj/item/coin/antagtoken/syndicate, + /obj/item/deck/cards/syndicate, + /obj/item/lighter/zippo/gonzofist, + /obj/item/soap/syndie, + /obj/item/stamp/chameleon, + /obj/item/storage/fancy/cigarettes/cigpack_syndicate, + /obj/item/storage/toolbox/syndicate, + /obj/item/suppressor, + /obj/item/toy/syndicateballoon, + ) + +/obj/effect/spawner/random/pool/spaceloot/syndicate/common/depot + spawn_inside = /obj/structure/closet/secure_closet/depot + spawn_loot_chance = 40 + loot = list( + // Loot schema: costumes, toys, useless gimmick items + /obj/item/clothing/mask/gas/syndicate, + /obj/item/clothing/shoes/magboots/syndie, + /obj/item/clothing/suit/jacket/bomber/syndicate, + /obj/item/clothing/suit/storage/iaa/blackjacket/armored, + /obj/item/clothing/under/syndicate/combat, + /obj/item/clothing/under/syndicate/sniper, + /obj/item/coin/antagtoken/syndicate, + /obj/item/deck/cards/syndicate, + /obj/item/lighter/zippo/gonzofist, + /obj/item/soap/syndie, + /obj/item/stamp/chameleon, + /obj/item/storage/fancy/cigarettes/cigpack_syndicate, + /obj/item/storage/toolbox/syndicate, + /obj/item/suppressor, + /obj/item/toy/syndicateballoon, + + // only in depot for common-tier + /obj/item/storage/secure/briefcase/syndie, + ) + +/obj/effect/spawner/random/pool/spaceloot/syndicate/stetchkin + name = "syndicate depot loot, 20% stetchkin" + icon_state = "stetchkin" + spawn_loot_chance = 80 + point_value = 25 + loot = list(/obj/item/gun/projectile/automatic/pistol) + +/obj/effect/spawner/random/pool/spaceloot/syndicate/rare + name = "syndicate depot loot, rare" + icon_state = "doubleloot" + point_value = 45 + // Basic stealth, utility and environmental gear. + loot = list( + /obj/item/ammo_box/magazine/m10mm, + /obj/item/clothing/gloves/color/black/thief, + /obj/item/clothing/shoes/chameleon/noslip, + /obj/item/clothing/under/syndicate/silicon_cham, + /obj/item/clothing/mask/chameleon/voice_change, + /obj/item/flash/cameraflash, + /obj/item/gun/projectile/automatic/toy/pistol/riot, + /obj/item/lighter/zippo/gonzofist, + /obj/item/mod/module/chameleon, + /obj/item/mod/module/holster/hidden, + /obj/item/mod/module/noslip, + /obj/item/mod/module/visor/night, + /obj/item/mod/module/plate_compression, + /obj/item/reagent_containers/hypospray/autoinjector/hyper_medipen, + /obj/item/reagent_containers/hypospray/autoinjector/nanocalcium, + /obj/item/stack/sheet/mineral/gold{amount = 20}, + /obj/item/stack/sheet/mineral/plasma{amount = 20}, + /obj/item/stack/sheet/mineral/silver{amount = 20}, + /obj/item/stack/sheet/mineral/uranium{amount = 20}, + /obj/item/stamp/chameleon, + /obj/item/storage/backpack/duffel/syndie/med/surgery, + /obj/item/storage/backpack/satchel_flat, + /obj/item/storage/belt/military, + /obj/item/storage/box/syndie_kit/camera_bug, + /obj/item/storage/box/syndie_kit/chameleon, + /obj/item/storage/box/syndie_kit/space, + + // common -> rare-tier for ruins + /obj/item/storage/secure/briefcase/syndie, + ) + +/obj/effect/spawner/random/pool/spaceloot/syndicate/rare/depot + spawn_inside = /obj/structure/closet/secure_closet/depot + spawn_loot_chance = 40 + loot = list( + /obj/item/ammo_box/magazine/m10mm, + /obj/item/clothing/gloves/color/black/thief, + /obj/item/clothing/shoes/chameleon/noslip, + /obj/item/clothing/under/syndicate/silicon_cham, + /obj/item/clothing/mask/chameleon/voice_change, + /obj/item/flash/cameraflash, + /obj/item/gun/projectile/automatic/toy/pistol/riot, + /obj/item/lighter/zippo/gonzofist, + /obj/item/mod/module/chameleon, + /obj/item/mod/module/holster/hidden, + /obj/item/mod/module/noslip, + /obj/item/mod/module/visor/night, + /obj/item/mod/module/plate_compression, + /obj/item/reagent_containers/hypospray/autoinjector/hyper_medipen, + /obj/item/reagent_containers/hypospray/autoinjector/nanocalcium, + /obj/item/stack/sheet/mineral/gold{amount = 20}, + /obj/item/stack/sheet/mineral/plasma{amount = 20}, + /obj/item/stack/sheet/mineral/silver{amount = 20}, + /obj/item/stack/sheet/mineral/uranium{amount = 20}, + /obj/item/stamp/chameleon, + /obj/item/storage/backpack/duffel/syndie/med/surgery, + /obj/item/storage/backpack/satchel_flat, + /obj/item/storage/belt/military, + /obj/item/storage/box/syndie_kit/camera_bug, + /obj/item/storage/box/syndie_kit/chameleon, + /obj/item/storage/box/syndie_kit/space, + ) + +/obj/effect/spawner/random/pool/spaceloot/syndicate/officer + name = "syndicate depot loot, officer" + point_value = 110 + // Primarily utility items with occasional low damage weaponry, and a blood-red, because that's too good for rare-tier. + loot = list( + /obj/item/borg/upgrade/syndicate, + /obj/item/clothing/glasses/hud/security/chameleon, + /obj/item/clothing/glasses/thermal, + /obj/item/clothing/shoes/magboots/elite, + /obj/item/door_remote/omni/access_tuner, + /obj/item/encryptionkey/binary, + /obj/item/jammer, + /obj/item/mod/module/power_kick, + /obj/item/mod/module/visor/thermal, + /obj/item/pen/edagger, + /obj/item/pinpointer/advpinpointer, + /obj/item/stack/sheet/mineral/diamond{amount = 10}, + /obj/item/storage/belt/sheath/snakesfang, + /obj/item/storage/box/syndidonkpockets, + /obj/item/storage/box/syndie_kit/stechkin, + /obj/item/mod/control/pre_equipped/traitor, + ) + +/obj/effect/spawner/random/pool/spaceloot/syndicate/officer/depot + spawn_inside = /obj/structure/closet/secure_closet/depot + spawn_loot_chance = 40 + loot = list( + /obj/item/borg/upgrade/syndicate, + /obj/item/clothing/glasses/hud/security/chameleon, + /obj/item/clothing/glasses/thermal, + /obj/item/clothing/shoes/magboots/elite, + /obj/item/door_remote/omni/access_tuner, + /obj/item/encryptionkey/binary, + /obj/item/jammer, + /obj/item/mod/module/power_kick, + /obj/item/mod/module/visor/thermal, + /obj/item/pen/edagger, + /obj/item/pinpointer/advpinpointer, + /obj/item/stack/sheet/mineral/diamond{amount = 10}, + /obj/item/storage/belt/sheath/snakesfang, + /obj/item/storage/box/syndidonkpockets, + /obj/item/storage/box/syndie_kit/stechkin, + /obj/item/mod/control/pre_equipped/traitor, + + // only in depot for officer-tier + /obj/item/mod/module/stealth, + ) + + +/obj/effect/spawner/random/pool/spaceloot/syndicate/armory + name = "syndicate depot loot, armory" + // Combat orientated items that could give the player an advantage if an antag messes with them. + point_value = 200 + loot = list( + /obj/item/bio_chip_implanter/proto_adrenalin, + /obj/item/chameleon, + /obj/item/gun/medbeam, + /obj/item/gun/projectile/automatic/sniper_rifle/toy, + /obj/item/melee/energy/sword/saber, + /obj/item/mod/control/pre_equipped/traitor_elite, + /obj/item/organ/internal/cyberimp/arm/razorwire, + /obj/item/organ/internal/cyberimp/brain/sensory_enhancer, + /obj/item/reagent_containers/hypospray/autoinjector/stimulants, + /obj/item/shield/energy, + /obj/item/weaponcrafting/gunkit/universal_gun_kit, + + // officer -> armory tier for ruins + /obj/item/mod/module/stealth, + ) + +/obj/effect/spawner/random/pool/spaceloot/syndicate/armory/depot + guaranteed = TRUE + spawn_inside = /obj/structure/closet/secure_closet/depot/armory + loot = list( + /obj/item/bio_chip_implanter/proto_adrenalin, + /obj/item/chameleon, + /obj/item/gun/medbeam, + /obj/item/gun/projectile/automatic/sniper_rifle/toy, + /obj/item/melee/energy/sword/saber, + /obj/item/mod/control/pre_equipped/traitor_elite, + /obj/item/organ/internal/cyberimp/arm/razorwire, + /obj/item/organ/internal/cyberimp/brain/sensory_enhancer, + /obj/item/reagent_containers/hypospray/autoinjector/stimulants, + /obj/item/shield/energy, + /obj/item/weaponcrafting/gunkit/universal_gun_kit, + + // only in armory tier for depot + /obj/item/storage/box/syndie_kit/teleporter, + /obj/item/cqc_manual, + ) + + +/obj/effect/spawner/random/pool/spaceloot/syndicate/mixed + loot = list( + /obj/effect/spawner/random/pool/spaceloot/syndicate/common = 30, + /obj/effect/spawner/random/pool/spaceloot/syndicate/rare = 20, + /obj/effect/spawner/random/pool/spaceloot/syndicate/officer = 5, + /obj/effect/spawner/random/pool/spaceloot/syndicate/armory = 1, + ) + +// Only two of these +/obj/effect/spawner/random/pool/spaceloot/zoo + unique_picks = TRUE + guaranteed = TRUE + point_value = 20 + loot = list( + /obj/item/gun/energy/floragun, + /obj/item/gun/energy/temperature, + ) + +/obj/effect/spawner/random/pool/spaceloot/modsuit_syndie + point_value = 100 + spawn_loot_chance = 50 + loot = list(/mob/living/simple_animal/hostile/syndicate/ranged/space/autogib) + +/obj/effect/spawner/random/pool/spaceloot/moonoutpost19 + name = "moon outpost 19 loot spawner" + point_value = 30 + guaranteed = TRUE + spawn_all_loot = TRUE + +/obj/effect/spawner/random/pool/spaceloot/moonoutpost19/vault1 + loot = list(/obj/item/paper/researchnotes) + +/obj/effect/spawner/random/pool/spaceloot/moonoutpost19/vault2 + loot = list( + /obj/item/storage/lockbox/experimental_weapon, + /obj/item/assembly/signaler/anomaly/random, + ) + +/obj/effect/spawner/random/pool/spaceloot/moonoutpost19/vault3 + loot = list( + /obj/item/mecha_parts/core, + /obj/item/stock_parts/cell/infinite/abductor, + ) + +/obj/effect/spawner/random/pool/spaceloot/deepstorage/main + name = "warehouse main reward spawner" + guaranteed = TRUE + point_value = 100 + loot = list( + /obj/item/storage/belt/champion/wrestling, + /obj/item/storage/box/weaver_kit, + /obj/item/gun/medbeam, + /obj/item/storage/lockbox/experimental_weapon, + ) + +/obj/effect/spawner/random/pool/spaceloot/mechtransport + name = "mech transport storage loot spawner" + guaranteed = TRUE + point_value = 20 + spawn_all_loot = TRUE + spawn_random_offset = TRUE + spawn_random_offset_max_pixels = 8 + + +/obj/effect/spawner/random/pool/spaceloot/mechtransport/storage1 + loot = list( + /obj/item/mecha_parts/mecha_equipment/repair_droid, + /obj/item/mecha_parts/mecha_equipment/extinguisher, + /obj/item/mecha_modkit/voice/honk, + ) + +/obj/effect/spawner/random/pool/spaceloot/mechtransport/storage2 + loot = list( + /obj/item/mecha_parts/mecha_equipment/drill/diamonddrill, + /obj/item/mecha_parts/mecha_equipment/drill, + /obj/item/mecha_parts/mecha_equipment/drill, + ) + +/obj/effect/spawner/random/pool/spaceloot/mechtransport/storage3 + loot = list(/obj/item/mecha_parts/mecha_equipment/medical/sleeper) + +/obj/effect/spawner/random/pool/spaceloot/mechtransport/storage4 + loot = list(/obj/item/mecha_parts/core) + diff --git a/code/game/objects/effects/spawners/random/pool/spawn_pool.dm b/code/game/objects/effects/spawners/random/pool/spawn_pool.dm index 8588a1b1dcbe..7c1ff9434c5f 100644 --- a/code/game/objects/effects/spawners/random/pool/spawn_pool.dm +++ b/code/game/objects/effects/spawners/random/pool/spawn_pool.dm @@ -55,5 +55,6 @@ qdel(spawner) + log_game("finished spawner [id] with [length(known_spawners)] remaining spawners and [available_points] points remaining.") QDEL_LIST_CONTENTS(known_spawners) diff --git a/code/game/objects/effects/spawners/random/random_spawner.dm b/code/game/objects/effects/spawners/random/random_spawner.dm index 4d7487f65e62..c3f1c6eec5bc 100644 --- a/code/game/objects/effects/spawners/random/random_spawner.dm +++ b/code/game/objects/effects/spawners/random/random_spawner.dm @@ -70,9 +70,10 @@ var/list/spawn_locations = get_spawn_locations(spawn_scatter_radius) var/spawn_loot_count = isnull(lootcount_override) ? src.spawn_loot_count : lootcount_override + var/atom/container if(spawn_inside) - new spawn_inside(loc) + container = new spawn_inside(loc) if(spawn_all_loot) spawn_loot_count = INFINITY @@ -127,6 +128,10 @@ spawned_loot.pixel_x = spawn_loot_split_pixel_offsets * (loot_spawned % pixel_divider) + (column * spawn_loot_split_pixel_offsets) spawned_loot.pixel_y = spawn_loot_split_pixel_offsets * (loot_spawned % pixel_divider) + if(container) + spawned_loot.forceMove(container) + + /** * Makes the actual item related to our spawner. If `record_spawn` is `TRUE`, * this is when the items spawned are recorded to blackbox (except for `/obj/effect`s). diff --git a/code/modules/awaymissions/mission_code/ruins/abandoned_engi_sat.dm b/code/modules/awaymissions/mission_code/ruins/abandoned_engi_sat.dm index 2908f0b65f23..8581222b5186 100644 --- a/code/modules/awaymissions/mission_code/ruins/abandoned_engi_sat.dm +++ b/code/modules/awaymissions/mission_code/ruins/abandoned_engi_sat.dm @@ -1,12 +1,9 @@ /obj/structure/closet/secure_closet/engineering_personal/empty - locked = FALSE - opened = TRUE /obj/structure/closet/secure_closet/engineering_personal/empty/populate_contents() return /obj/structure/closet/wardrobe/atmospherics_yellow/empty - opened = TRUE /obj/structure/closet/wardrobe/atmospherics_yellow/populate_contents() return diff --git a/code/modules/awaymissions/mission_code/ruins/deepstorage.dm b/code/modules/awaymissions/mission_code/ruins/deepstorage.dm index d57ee7175bd8..b9f8ee35ad64 100644 --- a/code/modules/awaymissions/mission_code/ruins/deepstorage.dm +++ b/code/modules/awaymissions/mission_code/ruins/deepstorage.dm @@ -293,15 +293,6 @@ /obj/item/clothing/glasses/sunglasses/yeah ) -/obj/effect/spawner/random/deepstorage_reward/main - name = "warehouse main reward" - loot = list( - /obj/item/storage/belt/champion/wrestling, - /obj/item/storage/box/weaver_kit, - /obj/item/gun/medbeam, - /obj/item/storage/lockbox/experimental_weapon - ) - // paper stuff & lore /obj/item/paper/fluff/ruins/deepstorage/log1 diff --git a/icons/effects/random_spawners.dmi b/icons/effects/random_spawners.dmi index 4cccc5ddfadf1f962eebcae8933aa66107df787c..360c77e14d5fa4e1b090ce7130a46de31eeeaae7 100644 GIT binary patch literal 32919 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 z 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 b>{9;O^ShdfWAP~9;h~|Tt6ZmO6aIey9QC;_ diff --git a/paradise.dme b/paradise.dme index 5954dcf663ce..5342916e865a 100644 --- a/paradise.dme +++ b/paradise.dme @@ -1075,6 +1075,7 @@ #include "code\game\objects\effects\spawners\random\toy_spawners.dm" #include "code\game\objects\effects\spawners\random\trash_spawners.dm" #include "code\game\objects\effects\spawners\random\pool\pool_spawner.dm" +#include "code\game\objects\effects\spawners\random\pool\space_loot.dm" #include "code\game\objects\effects\spawners\random\pool\spawn_pool.dm" #include "code\game\objects\effects\spawners\random\pool\spawn_pool_manager.dm" #include "code\game\objects\effects\spawners\random\traders\trader_department_spawners.dm" diff --git a/tools/UpdatePaths/Scripts/27954_spaceloot_pool.txt b/tools/UpdatePaths/Scripts/27954_spaceloot_pool.txt new file mode 100644 index 000000000000..ce919210c22e --- /dev/null +++ b/tools/UpdatePaths/Scripts/27954_spaceloot_pool.txt @@ -0,0 +1,4 @@ +/obj/effect/spawner/random/syndicate/loot/stetchkin : /obj/effect/spawner/random/syndicate/stetchkin +/obj/effect/spawner/random/syndicate/loot/@SUBTYPES : /obj/effect/spawner/random/pool/spaceloot/syndicate/@SUBTYPES/depot +/mob/living/simple_animal/hostile/syndicate/ranged/space/autogib : /obj/effect/spawner/random/pool/spaceloot/modsuit_syndie +/obj/effect/spawner/random/deepstorage_reward/main : /obj/effect/spawner/random/pool/spaceloot/deepstorage/main