diff --git a/_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_pizzaparty.dmm b/_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_pizzaparty.dmm index 95a68100f27..38ab7a7b295 100644 --- a/_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_pizzaparty.dmm +++ b/_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_pizzaparty.dmm @@ -39,7 +39,7 @@ /area/ruin/powered/pizza_party) "k" = ( /obj/structure/table/wood, -/obj/effect/spawner/lootdrop/pizzaparty, +/obj/effect/spawner/random/pizzaparty, /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/wood/lavaland_air, /area/ruin/powered/pizza_party) @@ -48,7 +48,7 @@ dir = 4 }, /obj/structure/table/wood, -/obj/effect/spawner/lootdrop/pizzaparty, +/obj/effect/spawner/random/pizzaparty, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/cobweb2, /turf/simulated/floor/wood/lavaland_air, @@ -111,7 +111,7 @@ /area/ruin/powered/pizza_party) "x" = ( /obj/structure/table/wood, -/obj/effect/spawner/lootdrop/pizzaparty, +/obj/effect/spawner/random/pizzaparty, /turf/simulated/floor/wood/lavaland_air, /area/ruin/powered/pizza_party) "y" = ( diff --git a/_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_seed_vault.dmm b/_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_seed_vault.dmm index 1ba79151f95..c36b17b3d8b 100644 --- a/_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_seed_vault.dmm +++ b/_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_seed_vault.dmm @@ -62,7 +62,7 @@ /area/ruin/powered/seedvault) "ed" = ( /obj/structure/closet/crate/freezer, -/obj/effect/spawner/lootdrop/seed_vault, +/obj/effect/spawner/random/seed_vault, /turf/simulated/floor/plasteel/freezer, /area/ruin/powered/seedvault) "eI" = ( diff --git a/_maps/map_files/RandomRuins/SpaceRuins/deepstorage.dmm b/_maps/map_files/RandomRuins/SpaceRuins/deepstorage.dmm index 595cf8fcc28..e05aeb06181 100644 --- a/_maps/map_files/RandomRuins/SpaceRuins/deepstorage.dmm +++ b/_maps/map_files/RandomRuins/SpaceRuins/deepstorage.dmm @@ -1277,7 +1277,7 @@ /area/ruin/space/deepstorage) "gq" = ( /obj/structure/rack, -/obj/effect/spawner/lootdrop/bluespace_tap/cultural, +/obj/effect/spawner/random/bluespace_tap/cultural, /turf/simulated/floor/plasteel{ dir = 6; icon_state = "vault" @@ -2659,7 +2659,7 @@ /obj/item/salvage/ruin/soviet, /obj/structure/rack, /obj/item/stack/spacecash/c500, -/obj/effect/spawner/lootdrop/bluespace_tap/cultural, +/obj/effect/spawner/random/bluespace_tap/cultural, /turf/simulated/floor/plasteel{ dir = 10; icon_state = "vault" @@ -2669,7 +2669,7 @@ /obj/structure/rack, /obj/effect/turf_decal/delivery/hollow, /obj/item/stack/spacecash/c500, -/obj/effect/spawner/lootdrop/bluespace_tap/organic, +/obj/effect/spawner/random/bluespace_tap/organic, /turf/simulated/floor/plasteel{ dir = 10; icon_state = "vault" @@ -5468,7 +5468,7 @@ "IR" = ( /obj/effect/turf_decal/delivery/hollow, /obj/structure/rack, -/obj/effect/spawner/lootdrop/bluespace_tap/organic, +/obj/effect/spawner/random/bluespace_tap/organic, /turf/simulated/floor/plasteel{ dir = 6; icon_state = "vault" diff --git a/_maps/map_files/RandomRuins/SpaceRuins/derelict4.dmm b/_maps/map_files/RandomRuins/SpaceRuins/derelict4.dmm index 4481ccfa867..0f1ee59e30d 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/lootdrop/crate_spawner, +/obj/effect/spawner/random/loot/crate, /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 91e23038a88..e37cc660864 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/lootdrop/crate_spawner, +/obj/effect/spawner/random/loot/crate, /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/lootdrop/crate_spawner, +/obj/effect/spawner/random/loot/crate, /turf/simulated/floor/plasteel, /area/ruin/space/unpowered) "kb" = ( @@ -124,7 +124,7 @@ /turf/simulated/floor/plasteel, /area/ruin/space/unpowered) "qF" = ( -/obj/effect/spawner/lootdrop/crate_spawner, +/obj/effect/spawner/random/loot/crate, /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 4decd99b3e0..e3441f22c23 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/lootdrop/crate_spawner, +/obj/effect/spawner/random/loot/crate, /turf/simulated/floor/plating, /area/ruin/space/unpowered) "f" = ( diff --git a/_maps/map_files/RandomRuins/SpaceRuins/telecomns_returns.dmm b/_maps/map_files/RandomRuins/SpaceRuins/telecomns_returns.dmm index 121d70c443a..06e079ad0a0 100644 --- a/_maps/map_files/RandomRuins/SpaceRuins/telecomns_returns.dmm +++ b/_maps/map_files/RandomRuins/SpaceRuins/telecomns_returns.dmm @@ -73,7 +73,7 @@ }, /area/ruin/space/telecomms/chamber) "bP" = ( -/obj/effect/spawner/lootdrop/telecomms_core_table, +/obj/effect/spawner/random/telecomms_core_table, /obj/machinery/ai_slipper, /obj/structure/table/glass/reinforced/plastitanium, /turf/simulated/floor/plasteel{ @@ -607,7 +607,7 @@ /area/space/nearstation/no_teleport) "mD" = ( /obj/structure/table, -/obj/effect/spawner/lootdrop/bluespace_tap/organic, +/obj/effect/spawner/random/bluespace_tap/organic, /turf/simulated/floor/plasteel, /area/ruin/space/telecomms) "mH" = ( @@ -716,7 +716,7 @@ pixel_x = 32; pixel_y = 0 }, -/obj/effect/spawner/lootdrop/bluespace_tap/cultural, +/obj/effect/spawner/random/bluespace_tap/cultural, /turf/simulated/floor/plasteel, /area/ruin/space/telecomms) "oe" = ( @@ -2495,7 +2495,7 @@ /area/ruin/space/telecomms/tele) "Qg" = ( /obj/structure/table, -/obj/effect/spawner/lootdrop/bluespace_tap/cultural, +/obj/effect/spawner/random/bluespace_tap/cultural, /turf/simulated/floor/plasteel, /area/ruin/space/telecomms) "Qx" = ( diff --git a/_maps/map_files/RandomRuins/SpaceRuins/wizardcrash.dmm b/_maps/map_files/RandomRuins/SpaceRuins/wizardcrash.dmm index 2e638bbc1c3..a72b07851c3 100644 --- a/_maps/map_files/RandomRuins/SpaceRuins/wizardcrash.dmm +++ b/_maps/map_files/RandomRuins/SpaceRuins/wizardcrash.dmm @@ -479,7 +479,7 @@ /obj/structure/closet/crate{ opened = 1 }, -/obj/effect/spawner/lootdrop/wizardcrash, +/obj/effect/spawner/random/wizardcrash, /turf/simulated/floor/plating, /area/ruin/space/powered) "bP" = ( diff --git a/_maps/map_files/generic/centcomm.dmm b/_maps/map_files/generic/centcomm.dmm index 1bd3c98faf0..aec5e43085a 100644 --- a/_maps/map_files/generic/centcomm.dmm +++ b/_maps/map_files/generic/centcomm.dmm @@ -4388,7 +4388,7 @@ }, /area/syndicate_mothership) "oI" = ( -/obj/effect/spawner/lootdrop/trade_sol/civ, +/obj/effect/spawner/random/traders/civilian, /obj/structure/closet, /turf/simulated/floor/mineral/titanium, /area/shuttle/trade/sol) @@ -4419,7 +4419,7 @@ }, /area/tdome/tdomeobserve) "oL" = ( -/obj/effect/spawner/lootdrop/trade_sol/minerals, +/obj/effect/spawner/random/traders/minerals, /obj/structure/closet, /turf/simulated/floor/mineral/titanium, /area/shuttle/trade/sol) @@ -4471,7 +4471,7 @@ /obj/machinery/light/spot{ dir = 1 }, -/obj/effect/spawner/lootdrop/trade_sol/donksoft, +/obj/effect/spawner/random/traders/donksoft, /obj/structure/closet, /turf/simulated/floor/mineral/titanium, /area/shuttle/trade/sol) @@ -5309,7 +5309,7 @@ /turf/simulated/wall/mineral/plastitanium, /area/shuttle/assault_pod) "rK" = ( -/obj/effect/spawner/lootdrop/trade_sol/sci, +/obj/effect/spawner/random/traders/science, /obj/structure/closet, /turf/simulated/floor/mineral/titanium, /area/shuttle/trade/sol) @@ -5384,7 +5384,7 @@ /turf/simulated/floor/mineral/titanium, /area/shuttle/transport) "rY" = ( -/obj/effect/spawner/lootdrop/trade_sol/med, +/obj/effect/spawner/random/traders/medical, /obj/structure/closet, /turf/simulated/floor/mineral/titanium, /area/shuttle/trade/sol) @@ -6142,7 +6142,7 @@ }, /area/centcom/evac) "uP" = ( -/obj/effect/spawner/lootdrop/trade_sol/sec, +/obj/effect/spawner/random/traders/security, /obj/structure/closet, /turf/simulated/floor/mineral/titanium, /area/shuttle/trade/sol) @@ -6188,7 +6188,7 @@ /turf/simulated/floor/plating/asteroid/snow/airless, /area/syndicate_mothership) "vb" = ( -/obj/effect/spawner/lootdrop/trade_sol/eng, +/obj/effect/spawner/random/traders/engineering, /obj/structure/closet, /turf/simulated/floor/mineral/titanium, /area/shuttle/trade/sol) @@ -6485,16 +6485,16 @@ /turf/simulated/floor/carpet, /area/admin) "vY" = ( -/obj/effect/spawner/lootdrop/trade_sol/largeitem, +/obj/effect/spawner/random/traders/large_item, /turf/simulated/floor/mineral/titanium, /area/shuttle/trade/sol) "vZ" = ( -/obj/effect/spawner/lootdrop/trade_sol/vehicle, +/obj/effect/spawner/random/traders/vehicle, /turf/simulated/floor/mineral/titanium, /area/shuttle/trade/sol) "wa" = ( /obj/machinery/light/spot, -/obj/effect/spawner/lootdrop/trade_sol/serv, +/obj/effect/spawner/random/traders/service, /obj/structure/closet, /obj/item/stack/tile/disco_light/thirty, /turf/simulated/floor/mineral/titanium, diff --git a/_maps/map_files/stations/boxstation.dmm b/_maps/map_files/stations/boxstation.dmm index 9a8c1939fe6..4f8965b600f 100644 --- a/_maps/map_files/stations/boxstation.dmm +++ b/_maps/map_files/stations/boxstation.dmm @@ -29129,10 +29129,6 @@ /obj/effect/turf_decal/delivery/hollow, /turf/simulated/floor/plasteel, /area/station/command/teleporter) -"bXq" = ( -/obj/effect/mapping_helpers/turfs/rust/maybe, -/turf/simulated/wall/r_wall, -/area/station/maintenance/asmaint2) "bXB" = ( /turf/simulated/floor/plasteel{ dir = 4; @@ -51085,7 +51081,7 @@ /area/station/engineering/atmos) "eUk" = ( /obj/structure/closet/crate/freezer, -/obj/effect/spawner/lootdrop/three_course_meal, +/obj/effect/spawner/random/food_or_drink/three_course_meal, /obj/effect/spawner/random/maintenance, /turf/simulated/floor/plating, /area/station/maintenance/disposal) @@ -61810,7 +61806,7 @@ /turf/simulated/wall/r_wall, /area/station/engineering/gravitygenerator) "kzB" = ( -/obj/effect/spawner/lootdrop/three_course_meal, +/obj/effect/spawner/random/food_or_drink/three_course_meal, /obj/structure/closet/crate/freezer, /turf/simulated/floor/plating, /area/station/maintenance/apmaint) @@ -69578,6 +69574,10 @@ icon_state = "whitepurple" }, /area/station/science/rnd) +"oyY" = ( +/obj/effect/mapping_helpers/turfs/rust/maybe, +/turf/simulated/wall/r_wall, +/area/station/maintenance/asmaint2) "ozk" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 @@ -132455,7 +132455,7 @@ cuQ bGG cKQ jxu -bXq +oyY bGG bKl dgy @@ -132715,8 +132715,8 @@ bGG dCw bGG qZN -bXq -bXq +oyY +oyY pUR bGG qZN @@ -133226,7 +133226,7 @@ cuQ lpS cLc bGG -bXq +oyY bYk bKd oJZ diff --git a/_maps/map_files/templates/shelter_2.dmm b/_maps/map_files/templates/shelter_2.dmm index df2b11ba477..ee94a466930 100644 --- a/_maps/map_files/templates/shelter_2.dmm +++ b/_maps/map_files/templates/shelter_2.dmm @@ -176,7 +176,7 @@ pixel_x = -4; pixel_y = 1 }, -/obj/effect/spawner/lootdrop/three_course_meal, +/obj/effect/spawner/random/food_or_drink/three_course_meal, /turf/simulated/floor/carpet/black, /area/survivalpod) "C" = ( diff --git a/code/game/objects/effects/spawners/lootdrop.dm b/code/game/objects/effects/spawners/lootdrop.dm deleted file mode 100644 index 432c427c163..00000000000 --- a/code/game/objects/effects/spawners/lootdrop.dm +++ /dev/null @@ -1,596 +0,0 @@ -/obj/effect/spawner/lootdrop - icon = 'icons/effects/spawner_icons.dmi' - icon_state = "questionmark" - var/lootcount = 1 //how many items will be spawned - var/lootdoubles = TRUE //if the same item can be spawned twice - var/list/loot //a list of possible items to spawn e.g. list(/obj/item, /obj/structure, /obj/effect) - -/obj/effect/spawner/lootdrop/Initialize(mapload) - . = ..() - while(lootcount) - var/lootspawn = pickweight(loot) - if(!lootdoubles) - loot.Remove(lootspawn) - if(lootspawn) - new lootspawn(get_turf(src)) - lootcount-- - qdel(src) - -/obj/effect/spawner/lootdrop/armory_contraband - name = "armory contraband gun spawner" - lootdoubles = FALSE - - loot = list( - /obj/item/gun/projectile/automatic/pistol = 8, - /obj/item/gun/projectile/shotgun/automatic/combat = 5, - /obj/item/gun/projectile/revolver/mateba, - /obj/item/gun/projectile/automatic/pistol/deagle - ) - -/// for ruins -/obj/effect/spawner/lootdrop/crate_spawner - name = "lootcrate spawner" - lootdoubles = FALSE - loot = list( - /obj/structure/closet/crate/secure/loot = 20, - "" = 80, - ) - - - -/obj/effect/spawner/lootdrop/trade_sol/ - name = "trader item spawner" - lootcount = 6 - -/obj/effect/spawner/lootdrop/trade_sol/civ - name = "1. civilian gear" - loot = list( - // General utility gear - /obj/item/clothing/gloves/combat = 100, - /obj/item/reagent_containers/spray/cleaner/advanced = 100, - /obj/item/soap = 50, - /obj/item/clothing/under/syndicate/combat = 50, - /obj/item/soap/syndie = 50, - /obj/item/clothing/under/costume/psyjump = 50, - /obj/item/immortality_talisman = 50, - /obj/item/clothing/mask/holo_cigar = 100, - /obj/item/storage/box/syndie_kit/chameleon = 50, //costumes! - /obj/item/storage/backpack/satchel_flat = 50, - /obj/item/book_of_babel = 50, - /obj/item/clothing/mask/whistle = 50 - ) - -/obj/effect/spawner/lootdrop/trade_sol/minerals - name = "2. minerals" - loot = list( - // Common stuff you get from mining which isn't already present on the station - // Note that plasma and derived hybrid materials are NOT included in this list because plasma is the trader's objective! - /obj/item/stack/sheet/mineral/silver = 50, - /obj/item/stack/sheet/mineral/gold = 50, - /obj/item/stack/sheet/mineral/uranium = 50, - /obj/item/stack/sheet/mineral/diamond = 50, - /obj/item/stack/sheet/mineral/titanium = 50, - /obj/item/stack/sheet/plasteel = 50, - - // Hybrid stuff you could in theory get from mining - /obj/item/stack/sheet/titaniumglass = 50, - - // Rare stuff you can't get from mining - /obj/item/stack/sheet/mineral/tranquillite = 50, - /obj/item/stack/sheet/mineral/bananium = 50, - /obj/item/stack/sheet/wood = 50, - /obj/item/stack/sheet/plastic = 50, - /obj/item/stack/sheet/mineral/sandstone = 50 - ) - -/obj/effect/spawner/lootdrop/trade_sol/minerals/Initialize(mapload) - while(lootcount) - var/lootspawn = pickweight(loot) - loot -= lootspawn //We do this as the minerals will merge, and if duplicates roll they add one to the stack, instead of doubling. - var/obj/item/stack/sheet/S = new lootspawn(get_turf(src)) - S.amount = 25 - lootcount-- - . = ..() - -/obj/effect/spawner/lootdrop/trade_sol/donksoft - name = "3. donksoft gear" - loot = list( - // Donksoft guns - /obj/item/gun/projectile/automatic/c20r/toy = 50, - /obj/item/gun/projectile/automatic/l6_saw/toy = 50, - /obj/item/gun/projectile/automatic/toy/pistol = 100, - /obj/item/gun/projectile/automatic/toy/pistol/enforcer = 50, - /obj/item/gun/projectile/shotgun/toy = 50, - /obj/item/gun/projectile/shotgun/toy/crossbow = 50, - /obj/item/gun/projectile/shotgun/toy/tommygun = 50, - /obj/item/gun/projectile/automatic/sniper_rifle/toy = 50 - ) - - -/obj/effect/spawner/lootdrop/trade_sol/sci - name = "4. science gear" - loot = list( - // Robotics - /obj/item/assembly/signaler/anomaly/random = 50, // anomaly core - /obj/item/mecha_parts/mecha_equipment/weapon/energy/xray = 25, // mecha x-ray laser - /obj/item/mecha_parts/mecha_equipment/teleporter/precise = 25, // upgraded mecha teleporter - /obj/item/autosurgeon/organ = 50, - /obj/item/mod/construction/plating/research = 25, - - // Research - /obj/item/paper/researchnotes = 125, // papers that give random R&D levels - /obj/item/storage/box/telescience = 25, // Code green or blue. Probably not antags. People haven't touched it in ages. Let us see what happens. - - // Xenobio - /obj/item/slimepotion/sentience = 50, // Low-value, but we want to encourage getting more players back in the round. - /obj/item/slimepotion/transference = 50, - - // Might as well let AI be interested - /obj/item/surveillance_upgrade = 25 - ) - -/obj/effect/spawner/lootdrop/trade_sol/med - name = "5. medical gear" - loot = list( - // Medchem - /obj/item/storage/pill_bottle/random_meds/labelled = 100, // random medical and other chems - /obj/item/reagent_containers/glass/bottle/reagent/omnizine = 50, - - // Surgery - /obj/item/organ/internal/heart/gland/ventcrawling = 50, - /obj/item/organ/internal/heart/gland/heals = 50, - - // Genetics Research (should really be under science, but I was stuck for items to put in medical) - /obj/item/dnainjector/regenerate = 50, // regeneration - /obj/item/dnainjector/nobreath = 50, - /obj/item/dnainjector/telemut = 50, - - // Medical in general - /obj/item/mod/construction/plating/rescue = 25, - /obj/item/gun/medbeam = 25, //Antags can see this to remove it if a threat, unlikely to happen with another midround - /obj/item/bodyanalyzer = 25, - /obj/item/circuitboard/sleeper/syndicate = 25 - ) - -/obj/effect/spawner/lootdrop/trade_sol/sec - name = "6. security gear" - loot = list( - // Melee - /obj/item/kitchen/knife/combat = 50, - /obj/item/fluff/desolate_baton_kit = 50, // permission granted by Desolate to use their fluff kit in this loot table - - // Utility - /obj/item/storage/belt/military/assault = 50, - /obj/item/clothing/mask/gas/sechailer/swat = 50, - /obj/item/clothing/glasses/thermal = 50, // see heat-source mobs through walls. Less powerful than already-available xray. - /obj/item/mod/construction/plating/safeguard = 25, - /obj/item/mod/module/power_kick = 50, - /obj/item/storage/box/syndie_kit/camera_bug = 25, //Camera viewing on the go, planting cameras with detective work? Could be interesting! - - // Ranged weapons - /obj/item/storage/box/enforcer_rubber = 50, //Lethal ammo can be printed at an autolathe, so no need for the lethal subtype - /obj/item/gun/projectile/shotgun/automatic/dual_tube = 100, // cycler shotgun, not normally available to crew - /obj/item/weaponcrafting/gunkit/universal_gun_kit/sol_gov = 20 - ) - -/obj/effect/spawner/lootdrop/trade_sol/eng - name = "7. eng gear" - lootcount = 8 //increased due to this pool being a bit more... niche? - loot = list( - /obj/item/storage/belt/utility/chief/full = 25, - /obj/item/rcd/combat = 25, - /obj/item/rpd/bluespace = 25, - /obj/item/tank/internals/emergency_oxygen/double = 25, - /obj/item/storage/backpack/holding = 25, - /obj/item/clothing/glasses/meson/night = 25, // NV mesons - /obj/item/clothing/glasses/material = 25, // shows objects, but not mobs, through walls - /obj/item/mod/construction/plating/advanced = 25, - /obj/item/mod/module/jetpack/advanced = 25, - /obj/item/slimepotion/oil_slick = 25, //Suggested by discord, moderately common but not as common as most rnd things - /obj/item/holosign_creator/atmos = 25 - ) - -/obj/effect/spawner/lootdrop/trade_sol/largeitem - name = "8. largeitem" - lootcount = 1 - loot = list( - /obj/machinery/disco = 20, - /obj/structure/spirit_board = 20, - /obj/mecha/combat/durand/old = 20, - /obj/machinery/snow_machine = 20, - /obj/machinery/cooker/cerealmaker = 20 - ) - -/obj/effect/spawner/lootdrop/trade_sol/vehicle - name = "9. vehicle" - loot = list( - /obj/vehicle/motorcycle = 50, - /obj/vehicle/snowmobile = 50, - /obj/vehicle/snowmobile/blue = 50, - /obj/vehicle/space/speedbike/red = 50, - /obj/vehicle/space/speedbike = 50 - ) - -/obj/effect/spawner/lootdrop/trade_sol/vehicle/Initialize(mapload) - while(lootcount) - var/lootspawn = pickweight(loot) - var/obj/vehicle/V = new lootspawn(get_turf(src)) - if(V.key_type) - V.inserted_key = new V.key_type(V) - lootcount-- - . = ..() - -/obj/effect/spawner/lootdrop/trade_sol/serv - name = "10. service gear" - loot = list( - // Mining - /obj/item/pickaxe/drill/jackhammer = 100, - /obj/item/gun/energy/kinetic_accelerator/experimental = 100, - /obj/item/borg/upgrade/modkit/aoe/turfs/andmobs = 100, - - // Botanist - /obj/item/storage/box/botany_labelled_seeds = 100, - - // Clown - /obj/item/grenade/clusterbuster/honk = 100, - /obj/item/bikehorn/golden = 100, - /obj/item/gun/throw/piecannon = 100, - - // Bartender - /obj/item/storage/box/bartender_rare_ingredients_kit = 100, - - // Chef - /obj/item/storage/box/chef_rare_ingredients_kit = 100, - /obj/item/mod/module/dispenser = 50, // Prints burgers. When you want to be space mcdonalds. - // It would be nice to also have items for other service jobs: Mime, Librarian, Chaplain, etc - - // Chaplain - /obj/structure/constructshell = 50 //Fuck it we ball what could go wrong - ) - -/obj/effect/spawner/lootdrop/trade_sol/federation_minor - name = "11. trans-solar federation small gear" - loot = list( - /obj/item/storage/box/enforcer_rubber = 50, - /obj/item/lighter/zippo/gonzofist = 50, - /obj/item/clothing/glasses/welding/superior = 50, - /obj/item/clothing/suit/armor/bulletproof = 50, - /obj/item/clothing/mask/gas/explorer/marines = 50, - /obj/item/clothing/gloves/combat = 50, - /obj/item/storage/belt/military/assault = 50, - /obj/item/clothing/under/solgov = 50, - /obj/item/mod/module/dispenser = 50, - /obj/item/flag/solgov = 30 - ) - -/obj/effect/spawner/lootdrop/trade_sol/federation_major - name = "12. trans-solar federation large gear" - lootcount = 3 - loot = list( - /obj/item/storage/box/deagle = 20, //One mag - /obj/item/gun/projectile/automatic/pistol/m1911 = 30, //Again, one mag. Don't lose it. - /obj/item/melee/baseball_bat/homerun = 50, - /obj/item/rcd/combat = 50, - /obj/item/weaponcrafting/gunkit/universal_gun_kit/sol_gov = 50, - /obj/item/storage/fancy/shell/buck = 30, //Only eight shots, make them count - /obj/item/mod/module/noslip = 40, - /obj/item/clothing/mask/holo_cigar = 50 - ) - -/obj/effect/spawner/lootdrop/trade_sol/cybersun_minor - name = "11. cybersun industries small gear" - loot = list( - /obj/item/storage/box/syndidonkpockets = 50, - /obj/item/clothing/suit/jacket/bomber/syndicate = 50, - /obj/item/storage/box/syndie_kit/space = 50, - /obj/item/clothing/glasses/meson/sunglasses = 50, - /obj/item/storage/pill_bottle/zoom = 50, - /obj/item/clothing/mask/gas/voice_modulator/chameleon = 50, - /obj/item/mecha_parts/mecha_equipment/weapon/energy/xray = 30, - /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/carbine = 30, - /obj/item/flag/syndi = 30 - ) - -// Damn near all of this is illegal. Gives officers something to do on a shift quiet enough to spawn traders. -/obj/effect/spawner/lootdrop/trade_sol/cybersun_major - name = "12. cybersun industries large gear" - lootcount = 3 - loot = list( - /obj/item/shield/energy = 20, - /obj/item/gun/projectile/automatic/pistol = 50, - /obj/item/bio_chip_implanter/storage = 50, - /obj/item/melee/knuckleduster/syndie = 50, - /obj/item/clothing/glasses/thermal/eyepatch = 50, - /obj/item/toy/syndicateballoon = 60, - /obj/item/organ/internal/cyberimp/arm/razorwire = 30, - /obj/item/organ/internal/cyberimp/arm/shell_launcher = 30, - /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/lmg/dual = 30, - /obj/item/clothing/mask/holo_cigar = 50, - /obj/mecha/combat/marauder/mauler/trader = 3 //Extremely rare, unloaded so crew need to arm it for it to have any use. Also most definitely needs one helluva permit. - ) - lootdoubles = FALSE //No double mechs. - -/obj/effect/spawner/lootdrop/trade_sol/ussp_minor - name = "11. USSP small gear" - lootcount = 8 //Mostly flavor items - loot = list( - /obj/item/clothing/under/new_soviet = 50, - /obj/item/clothing/suit/sovietcoat = 50, - /obj/item/clothing/head/ushanka = 50, - /obj/item/food/grown/potato = 50, - /obj/item/reagent_containers/drinks/bottle/vodka/badminka = 50, - /obj/item/clothing/head/sovietsidecap = 50, - /obj/item/flag/ussp = 30, - /obj/item/ammo_box/magazine/apsm10mm = 15, //Spare mags for APS pistol. Sometimes you don't get the APS, in which case, soviet logistics. - /obj/item/ammo_box/a762 = 15 - ) - -// Lots of things to write permits for. Gives officers something to do on a shift quiet enough to spawn traders. -/obj/effect/spawner/lootdrop/trade_sol/ussp_major - name = "12. USSP large gear" - lootcount = 2 //Lots of dangerous stuff here - reduced amount - loot = list( - /obj/item/gun/projectile/revolver/nagant = 50, - /obj/item/gun/projectile/automatic/pistol/aps = 30, - /obj/item/gun/projectile/shotgun/boltaction = 50, - /obj/item/clothing/suit/space/hardsuit/soviet = 40, - /obj/item/clothing/glasses/thermal/eyepatch = 50, - /obj/item/clothing/mask/holo_cigar = 10 - ) - -/obj/effect/spawner/lootdrop/trade_sol/glintscale_minor - name = "11. glint-scale small gear" - loot = list( - /obj/item/clothing/suit/armor/vest/combat = 50, - /obj/item/clothing/under/syndicate/combat = 50, - /obj/item/claymore/ceremonial = 50, - /obj/item/harpoon = 50, - /obj/item/nullrod/claymore/chainsaw_sword = 50, - /obj/item/whetstone = 50, - /obj/item/flag/species/unathi = 20, - /obj/item/clothing/suit/armor/riot/knight/templar = 40, - /obj/item/clothing/head/helmet/riot/knight/templar = 40, - /obj/item/clothing/suit/unathi/robe = 20 - ) - -/obj/effect/spawner/lootdrop/trade_sol/glintscale_major - name = "12. glint-scale large gear" - lootcount = 3 - loot = list( - /obj/item/melee/energy/sword/pirate = 30, - /obj/item/storage/box/breacher = 30, - /obj/item/fireaxe = 50, - /obj/item/fireaxe/boneaxe = 50, - /obj/item/gun/energy/kinetic_accelerator/crossbow/large = 10 //Big ebow. - ) - -/obj/effect/spawner/lootdrop/trade_sol/steadfast_minor - name = "11. steadfast trading co. small gear" - lootcount = 8 //Since it's a lot of seeds, boosted amount - loot = list( - /obj/item/storage/box/botany_labelled_seeds = 50, - /obj/item/seeds/chili/ice = 20, - /obj/item/seeds/chili/ghost = 20, - /obj/item/seeds/cannabis/ultimate = 10, - /obj/item/seeds/cannabis/white = 20, - /obj/item/seeds/wheat/meat = 20, - /obj/item/seeds/glowshroom = 20, - /obj/item/seeds/glowshroom/glowcap = 20, - /obj/item/seeds/tobacco/space = 20, - /obj/item/storage/box/hydroponics_starter = 40, - /obj/item/mod/module/thermal_regulator = 20, - /obj/item/flag/species/vulp = 20 - ) - -/obj/effect/spawner/lootdrop/trade_sol/steadfast_major - name = "12. steadfast trading co. large gear" - lootcount = 3 - loot = list( - /obj/item/mod/construction/plating/research = 30, - /obj/item/assembly/signaler/anomaly/random = 20, - /obj/item/gun/energy/gun = 50, - /obj/item/storage/fancy/shell/dragonsbreath = 30, - /obj/item/storage/box/turbine_kit = 20, - /obj/item/mod/module/firefighting_tank = 40, - /obj/item/mod/module/jetpack/advanced = 40 - ) - -/obj/effect/spawner/lootdrop/trade_sol/syntheticunion_minor - name = "11. synthetic union small gear" - lootcount = 8 //A lot of these are available on station, so the amount of items spawned here is increased - loot = list( - /obj/item/clothing/glasses/meson/sunglasses = 50, - /obj/item/clothing/glasses/thermal/monocle = 50, - /obj/item/organ/internal/cyberimp/arm/toolset = 50, - /obj/item/organ/internal/cyberimp/arm/surgery = 50, - /obj/item/organ/internal/cyberimp/arm/janitorial = 50, - /obj/item/organ/internal/cyberimp/brain/anti_stam = 50, - /obj/item/organ/internal/cyberimp/brain/anti_sleep = 50, - /obj/item/organ/internal/cyberimp/brain/clown_voice = 40, - /obj/item/organ/internal/cyberimp/mouth/breathing_tube = 50, - /obj/item/organ/internal/cyberimp/chest/ipc_repair = 50, - /obj/item/organ/internal/cyberimp/chest/ipc_joints/magnetic_joints = 50, - /obj/item/organ/internal/cyberimp/chest/ipc_joints/sealed = 50, - /obj/item/autosurgeon/organ = 10, - /obj/item/flag/species/machine = 20 - ) - -/obj/effect/spawner/lootdrop/trade_sol/syntheticunion_major - name = "12. synthetic union large gear" - lootcount = 4 - loot = list( - /obj/item/organ/internal/cyberimp/arm/toolset_abductor = 20, - /obj/item/organ/internal/cyberimp/arm/esword = 10, - /obj/item/organ/internal/cyberimp/arm/flash = 50, - /obj/item/organ/internal/cyberimp/chest/nutriment/plus/hardened = 50, - /obj/item/organ/internal/cyberimp/arm/telebaton = 25, //Security'll love this one - /obj/item/organ/internal/cyberimp/arm/razorwire = 30, - /obj/item/organ/internal/cyberimp/arm/shell_launcher = 30, - /obj/item/organ/internal/cyberimp/brain/anti_drop/hardened = 20, - /obj/item/organ/internal/cyberimp/brain/anti_stam/hardened = 30, - /obj/item/surveillance_upgrade = 35 - ) - -/obj/effect/spawner/lootdrop/trade_sol/skipjack_minor - name = "11. skipjack small gear" - loot = list( - /obj/item/clothing/glasses/meson/gar = 50, - /obj/item/clothing/glasses/thermal/eyepatch = 50, - /obj/item/melee/energy/sword/pirate = 50, - /obj/item/clothing/suit/hooded/vox_robes = 30, - /obj/item/clothing/under/vox/vox_casual = 30, - /obj/item/clothing/gloves/color/yellow/vox = 10, //Species limited - rare item - /obj/item/clothing/shoes/magboots/vox = 10, //Species limited - rare item - /obj/item/organ/internal/cyberimp/mouth/breathing_tube = 50, - /obj/item/mod/module/jetpack/advanced = 50, - /obj/item/gun/energy/plasma_pistol = 50, - /obj/item/mod/control/pre_equipped/standard = 40, - /obj/item/flag/species/vox = 20 - ) - -/obj/effect/spawner/lootdrop/trade_sol/skipjack_major //contains a variety of things - raider loot - name = "12. skipjack large gear" - lootcount = 3 - loot = list( - /obj/item/storage/box/vox_spacesuit = 20, - /obj/item/storage/box/syndie_kit/chameleon = 50, - /obj/item/organ/internal/cyberimp/arm/esword = 10, - /obj/item/gun/energy/spikethrower = 20, - /obj/item/organ/internal/cyberimp/arm/medibeam = 50, - /obj/item/organ/internal/cyberimp/arm/toolset_abductor = 50, - /obj/item/organ/internal/cyberimp/brain/anti_stam/hardened = 10, - /obj/item/organ/internal/cyberimp/arm/gun/laser = 10, - /obj/item/fireaxe = 10, - /obj/item/gun/projectile/revolver/nagant = 10, - /obj/item/bio_chip_implanter/storage = 10, - /obj/item/rcd/combat = 10 - ) - -/obj/effect/spawner/lootdrop/trade_sol/solarcentral_minor - name = "11. skrellian central authority small gear" //Medical and protection theme - shields, mods, meds, and love - loot = list( - /obj/item/mod/control/pre_equipped/rescue = 60, - /obj/item/pen/sleepy/love = 50, - /obj/item/reagent_containers/glass/bottle/reagent/omnizine = 50, - /obj/item/reagent_containers/glass/bottle/love = 50, - /obj/item/reagent_containers/glass/bottle/reagent/lazarus_reagent = 50, - /obj/item/reagent_containers/applicator/dual = 50, - /obj/item/reagent_containers/hypospray/autoinjector/nanocalcium = 30, - /obj/item/storage/firstaid/surgery = 40, - /obj/item/dnainjector/nobreath = 50, - /obj/item/dnainjector/regenerate = 50, - /obj/item/dnainjector/insulation = 50, - /obj/item/flag/species/skrell = 20 - ) - -/obj/effect/spawner/lootdrop/trade_sol/solarcentral_major - name = "12. skrellian central authority large gear" - lootcount = 3 - loot = list( - /obj/item/mod/module/energy_shield = 40, - /obj/item/shield/energy = 40, - /obj/item/reagent_containers/applicator/dual/syndi = 50, //Same as the above but comes emagged - /obj/item/gun/medbeam = 30, - /obj/item/gun/syringe/syndicate = 50, - /obj/item/storage/box/skrell_suit/black = 30, - /obj/item/storage/box/skrell_suit/white = 30, - /obj/item/rod_of_asclepius = 20 - ) - -/obj/effect/spawner/lootdrop/trade_sol/technocracy_minor - name = "11. technocracy small gear" - loot = list( - /obj/item/paper/researchnotes = 150, //More research from the smart ones - /obj/item/storage/box/beakers/bluespace = 50, - /obj/item/storage/box/stockparts/deluxe = 50, - /obj/item/clothing/glasses/thermal/monocle = 50, - /obj/item/organ/internal/cyberimp/arm/toolset_abductor = 30, - /obj/item/organ/internal/cyberimp/arm/surgery = 40, - /obj/item/organ/internal/cyberimp/arm/advmop = 30, - /obj/item/organ/internal/cyberimp/brain/anti_stam = 50, - /obj/item/organ/internal/cyberimp/brain/anti_sleep = 50, - /obj/item/organ/internal/cyberimp/brain/anti_drop = 50, - /obj/item/autosurgeon/organ = 10, - /obj/item/flag/species/greys = 20 - ) - -/obj/effect/spawner/lootdrop/trade_sol/technocracy_major - name = "12. technocracy large gear" - lootcount = 3 - loot = list( - /obj/item/storage/box/syndie_kit/prescan = 30, - /obj/item/gun/energy/decloner = 50, - /obj/item/organ/internal/cyberimp/brain/anti_drop/hardened = 20, - /obj/item/organ/internal/cyberimp/brain/anti_stam/hardened = 30, - /obj/item/assembly/signaler/anomaly/random = 50, - /obj/item/surveillance_upgrade = 35, - /obj/item/mod/module/storage/bluespace = 40 - ) - -/obj/effect/spawner/lootdrop/trade_sol/merchantguild_minor - name = "11. merchant guild small gear" - lootcount = 12 //Much larger selection due to it being almost all clothes. - loot = list( - /obj/item/flag/species/nian = 20, - /obj/item/clothing/under/suit/really_black = 50, - /obj/item/clothing/under/syndicate/combat = 50, - /obj/item/clothing/under/syndicate/sniper = 50, - /obj/item/clothing/under/new_soviet/sovietofficer = 50, - /obj/item/clothing/under/solgov/elite = 50, - /obj/item/clothing/under/solgov/command = 50, - /obj/item/clothing/under/retro/security = 50, - /obj/item/clothing/under/misc/gimmick_captain_suit = 50, - /obj/item/clothing/under/misc/durathread = 50, - /obj/item/clothing/under/psysuit = 50, - /obj/item/clothing/under/costume/cuban_suit = 50, - /obj/item/clothing/suit/armor/vest/jacket = 50, - /obj/item/clothing/head/collectable/petehat = 20, - /obj/item/clothing/head/collectable/tophat = 50, - /obj/item/clothing/head/collectable/police = 50, - /obj/item/clothing/head/collectable/kitty = 50, - /obj/item/clothing/under/costume/janimaid = 50, - /obj/item/clothing/under/costume/maid = 50, - /obj/item/storage/box/syndie_kit/chameleon = 60 - ) - -/obj/effect/spawner/lootdrop/trade_sol/merchantguild_major - name = "12. merchant guild large gear" - lootcount = 6 //Low-risk items, flavorful knick knacks - higher stock - loot = list( - /obj/item/clothing/suit/pimpcoat = 50, - /obj/item/dualsaber/toy = 50, - /obj/item/toy/sword = 50, - /obj/item/toy/plushie/carpplushie/dragon = 50, - /obj/item/toy/plushie/carpplushie/void = 50, - /obj/item/toy/plushie/ipcplushie = 30, - /obj/item/toy/plushie/nukeplushie = 30, - /obj/item/toy/plushie/nianplushie = 50, //*buzz - /obj/item/toy/windup_toolbox = 50, - /obj/item/toy/ai = 50, - /obj/item/clothing/mask/gas/voice_modulator/chameleon = 50, - /obj/item/storage/box/syndie_kit/chameleon = 50 - ) - -/obj/effect/spawner/lootdrop/three_course_meal - name = "three course meal spawner" - lootcount = 3 - lootdoubles = FALSE - var/soups = list( - /obj/item/food/soup/beetsoup, - /obj/item/food/soup/stew, - /obj/item/food/soup/hotchili, - /obj/item/food/soup/nettlesoup, - /obj/item/food/soup/meatballsoup) - var/salads = list( - /obj/item/food/salad/herb, - /obj/item/food/salad/valid, - /obj/item/food/salad/aesir) - var/mains = list( - /obj/item/food/enchiladas, - /obj/item/food/stewedsoymeat, - /obj/item/food/burger/bigbite, - /obj/item/food/burger/superbite) - -/obj/effect/spawner/lootdrop/three_course_meal/Initialize(mapload) - loot = list(pick(soups) = 1,pick(salads) = 1,pick(mains) = 1) - . = ..() diff --git a/code/game/objects/effects/spawners/random/bluespace_tap_spawners.dm b/code/game/objects/effects/spawners/random/bluespace_tap_spawners.dm new file mode 100644 index 00000000000..a2ca9fce872 --- /dev/null +++ b/code/game/objects/effects/spawners/random/bluespace_tap_spawners.dm @@ -0,0 +1,123 @@ +/obj/effect/spawner/random/bluespace_tap + name = "bluespace harvester reward spawner" + spawn_loot_count = 1 + +/obj/effect/spawner/random/bluespace_tap/hat + name = "exotic hat" + loot = list( + /obj/item/clothing/head/collectable/chef, //same weighing on all of them + /obj/item/clothing/head/collectable/paper, + /obj/item/clothing/head/collectable/tophat, + /obj/item/clothing/head/collectable/captain, + /obj/item/clothing/head/collectable/beret, + /obj/item/clothing/head/collectable/welding, + /obj/item/clothing/head/collectable/flatcap, + /obj/item/clothing/head/collectable/pirate, + /obj/item/clothing/head/collectable/kitty, + /obj/item/clothing/head/crown/fancy, + /obj/item/clothing/head/collectable/rabbitears, + /obj/item/clothing/head/collectable/wizard, + /obj/item/clothing/head/collectable/hardhat, + /obj/item/clothing/head/collectable/hos, + /obj/item/clothing/head/collectable/thunderdome, + /obj/item/clothing/head/collectable/swat, + /obj/item/clothing/head/collectable/slime, + /obj/item/clothing/head/collectable/police, + /obj/item/clothing/head/collectable/slime, + /obj/item/clothing/head/collectable/xenom, + /obj/item/clothing/head/collectable/petehat + ) + + +/obj/effect/spawner/random/bluespace_tap/cultural + name = "cultural artifacts" + loot = list( + /obj/vehicle/space/speedbike/red = 10, + /obj/item/grenade/clusterbuster/honk = 10, + /obj/item/toy/katana = 10, + /obj/item/stack/tile/brass/fifty = 20, + /obj/item/stack/sheet/mineral/abductor/fifty = 20, + /obj/item/sord = 20, + /obj/item/toy/syndicateballoon = 15, + /obj/item/lighter/zippo/gonzofist = 5, + /obj/item/lighter/zippo/engraved = 5, + /obj/item/lighter/zippo/nt_rep = 5, + /obj/item/gun/projectile/automatic/c20r/toy = 1, + /obj/item/gun/projectile/automatic/l6_saw/toy = 1, + /obj/item/gun/projectile/automatic/toy/pistol = 2, + /obj/item/gun/projectile/automatic/toy/pistol/enforcer = 1, + /obj/item/gun/projectile/shotgun/toy = 1, + /obj/item/gun/projectile/shotgun/toy/crossbow = 1, + /obj/item/gun/projectile/shotgun/toy/tommygun = 1, + /obj/item/gun/projectile/automatic/sniper_rifle/toy = 1, + /obj/item/dualsaber/toy = 5, + /obj/machinery/snow_machine = 10, + /obj/item/clothing/head/kitty = 5, + /obj/item/coin/antagtoken = 5, + /obj/item/toy/prizeball/figure = 15, + /obj/item/toy/prizeball/therapy = 10, + /obj/item/bedsheet/patriot = 2, + /obj/item/bedsheet/rainbow = 2, + /obj/item/bedsheet/captain = 2, + /obj/item/bedsheet/centcom = 1, //mythic rare rarity + /obj/item/bedsheet/syndie = 2, + /obj/item/bedsheet/cult = 2, + /obj/item/bedsheet/wiz = 2, + /obj/item/stack/sheet/mineral/tranquillite/fifty = 3, + /obj/item/clothing/gloves/combat = 5, + /obj/item/blank_tarot_card = 5, + /obj/item/tarot_card_pack = 5, + /obj/item/tarot_card_pack/jumbo = 3, + /obj/item/tarot_card_pack/mega = 2 + ) + +/obj/effect/spawner/random/bluespace_tap/organic + name = "organic objects" + loot = list( + /obj/item/seeds/random/labelled = 50, + /obj/item/guardiancreator/biological = 5, + /obj/item/organ/internal/vocal_cords/adamantine = 15, + /obj/item/storage/pill_bottle/random_meds/labelled = 25, + /obj/item/reagent_containers/glass/bottle/reagent/omnizine = 15, + /obj/item/dnainjector/telemut = 5, + /obj/item/dnainjector/small_size = 5, + /obj/item/dnainjector/morph = 5, + /obj/item/dnainjector/regenerate = 5, + /mob/living/simple_animal/pet/dog/corgi/ = 5, + /mob/living/simple_animal/pet/cat = 5, + /mob/living/simple_animal/pet/dog/fox/ = 5, + /mob/living/simple_animal/pet/penguin/baby = 5, + /mob/living/simple_animal/pig = 5, + /obj/item/slimepotion/sentience = 5, + /obj/item/clothing/mask/cigarette/cigar/havana = 3, + /obj/item/stack/sheet/mineral/bananium/fifty = 2, //bananas are organic, clearly. + /obj/item/storage/box/monkeycubes = 5, + /obj/item/stack/tile/carpet/twenty = 10, + /obj/item/stack/tile/carpet/black/twenty = 10, + /obj/item/soap/deluxe = 5 + ) + +/obj/effect/spawner/random/bluespace_tap/food + name = "fancy food" + spawn_loot_count = 3 + loot = list( + /obj/item/food/wingfangchu, + /obj/item/food/hotdog, + /obj/item/food/sliceable/turkey, + /obj/item/food/plumphelmetbiscuit, + /obj/item/food/appletart, + /obj/item/food/sliceable/cheesecake, + /obj/item/food/sliceable/bananacake, + /obj/item/food/sliceable/chocolatecake, + /obj/item/food/soup/meatballsoup, + /obj/item/food/soup/mysterysoup, + /obj/item/food/soup/stew, + /obj/item/food/soup/hotchili, + /obj/item/food/burrito, + /obj/item/food/fishburger, + /obj/item/food/cubancarp, + /obj/item/food/fishandchips, + /obj/item/food/meatpie, + /obj/item/pizzabox/hawaiian, //it ONLY gives hawaiian. MUHAHAHA + /obj/item/food/sliceable/xenomeatbread //maybe add some dangerous/special food here, ie robobuger? + ) diff --git a/code/game/objects/effects/spawners/random/food_spawners.dm b/code/game/objects/effects/spawners/random/food_spawners.dm index 426ddfe372f..b53c148d96d 100644 --- a/code/game/objects/effects/spawners/random/food_spawners.dm +++ b/code/game/objects/effects/spawners/random/food_spawners.dm @@ -19,3 +19,40 @@ /obj/item/food/stroopwafel = 1, ) record_spawn = TRUE + +/obj/effect/spawner/random/food_or_drink + // TODO: Consolidate all the spawner icons once all the legacy random spawners have been migrated + icon = 'icons/effects/random_spawners.dmi' + +/obj/effect/spawner/random/food_or_drink/soup + name = "soup spawner" + icon_state = "soup" + loot_subtype_path = /obj/item/food/soup + +/obj/effect/spawner/random/food_or_drink/salad + name = "salad spawner" + icon_state = "soup" + loot_subtype_path = /obj/item/food/salad + +/obj/effect/spawner/random/food_or_drink/dinner + name = "dinner spawner" + icon_state = "soup" + loot = list( + /obj/item/food/burger/bigbite, + /obj/item/food/burger/fivealarm, + /obj/item/food/burger/superbite, + /obj/item/food/enchiladas, + /obj/item/food/philly_cheesesteak, + /obj/item/food/sandwich, + /obj/item/food/stewedsoymeat, + ) + +/obj/effect/spawner/random/food_or_drink/three_course_meal + name = "three course meal spawner" + icon_state = "soup" + spawn_all_loot = TRUE + loot = list( + /obj/effect/spawner/random/food_or_drink/soup, + /obj/effect/spawner/random/food_or_drink/salad, + /obj/effect/spawner/random/food_or_drink/dinner, + ) diff --git a/code/game/objects/effects/spawners/random/loot_spawners.dm b/code/game/objects/effects/spawners/random/loot_spawners.dm new file mode 100644 index 00000000000..fad11c2b2c6 --- /dev/null +++ b/code/game/objects/effects/spawners/random/loot_spawners.dm @@ -0,0 +1,6 @@ +/obj/effect/spawner/random/loot/crate + name = "lootcrate spawner" + icon = 'icons/effects/random_spawners.dmi' + icon_state = "crate_secure" + spawn_loot_chance = 20 + loot = list(/obj/structure/closet/crate/secure/loot) diff --git a/code/game/objects/effects/spawners/random/traders/trader_department_spawners.dm b/code/game/objects/effects/spawners/random/traders/trader_department_spawners.dm new file mode 100644 index 00000000000..9d1175f13dc --- /dev/null +++ b/code/game/objects/effects/spawners/random/traders/trader_department_spawners.dm @@ -0,0 +1,222 @@ +/obj/effect/spawner/random/traders + name = "trader item spawner" + icon = 'icons/effects/random_spawners.dmi' + icon_state = "loot" + spawn_loot_count = 6 + +/obj/effect/spawner/random/traders/civilian + name = "1. civilian gear" + icon_state = "toolbox" + loot = list( + // General utility gear + /obj/item/clothing/gloves/combat = 10, + /obj/item/clothing/mask/holo_cigar = 10, + /obj/item/reagent_containers/spray/cleaner/advanced = 10, + + /obj/item/book_of_babel = 5, + /obj/item/clothing/mask/whistle = 5, + /obj/item/clothing/under/costume/psyjump = 5, + /obj/item/clothing/under/syndicate/combat = 5, + /obj/item/immortality_talisman = 5, + /obj/item/soap = 5, + /obj/item/soap/syndie = 5, + /obj/item/storage/backpack/satchel_flat = 5, + /obj/item/storage/box/syndie_kit/chameleon = 5, //costumes! + ) + +/obj/effect/spawner/random/traders/minerals + name = "2. minerals" + icon_state = "metal" + loot = list( + + // Common stuff you get from mining which isn't already present on the + // station. Note that plasma and derived hybrid materials are NOT + // included in this list because plasma is the trader's objective! + + /obj/item/stack/sheet/mineral/silver = 5, + /obj/item/stack/sheet/mineral/gold = 5, + /obj/item/stack/sheet/mineral/uranium = 5, + /obj/item/stack/sheet/mineral/diamond = 5, + /obj/item/stack/sheet/mineral/titanium = 5, + /obj/item/stack/sheet/plasteel = 5, + + // Hybrid stuff you could in theory get from mining + /obj/item/stack/sheet/titaniumglass = 5, + + // Rare stuff you can't get from mining + /obj/item/stack/sheet/mineral/tranquillite = 5, + /obj/item/stack/sheet/mineral/bananium = 5, + /obj/item/stack/sheet/wood = 5, + /obj/item/stack/sheet/plastic = 5, + /obj/item/stack/sheet/mineral/sandstone = 5, + ) + +/obj/effect/spawner/random/traders/minerals/make_item(spawn_loc, type_path_to_make) + var/obj/item/stack/sheet/S = ..() + if(istype(S)) + S.amount = 25 + + return S + +/obj/effect/spawner/random/traders/donksoft + name = "3. donksoft gear" + icon_state = "stetchkin" + + loot = list( + /obj/item/gun/projectile/automatic/c20r/toy = 5, + /obj/item/gun/projectile/automatic/l6_saw/toy = 5, + /obj/item/gun/projectile/automatic/toy/pistol = 10, + /obj/item/gun/projectile/automatic/toy/pistol/enforcer = 5, + /obj/item/gun/projectile/shotgun/toy = 5, + /obj/item/gun/projectile/shotgun/toy/crossbow = 5, + /obj/item/gun/projectile/shotgun/toy/tommygun = 5, + /obj/item/gun/projectile/automatic/sniper_rifle/toy = 5, + ) + +/obj/effect/spawner/random/traders/science + name = "4. science gear" + // TODO: I know I created an anomaly core random spawner icon but it disappeared in some merge or other + icon = 'icons/obj/assemblies/new_assemblies.dmi' + icon_state = "anomaly_core" + loot = list( + // Robotics + /obj/item/assembly/signaler/anomaly/random = 50, // anomaly core + /obj/item/mecha_parts/mecha_equipment/weapon/energy/xray = 25, // mecha x-ray laser + /obj/item/mecha_parts/mecha_equipment/teleporter/precise = 25, // upgraded mecha teleporter + /obj/item/autosurgeon/organ = 50, + /obj/item/mod/construction/plating/research = 25, + + // Research + /obj/item/paper/researchnotes = 125, // papers that give random R&D levels + /obj/item/storage/box/telescience = 25, // Code green or blue. Probably not antags. People haven't touched it in ages. Let us see what happens. + + // Xenobio + /obj/item/slimepotion/sentience = 50, // Low-value, but we want to encourage getting more players back in the round. + /obj/item/slimepotion/transference = 50, + + // Might as well let AI be interested + /obj/item/surveillance_upgrade = 25, + ) + +/obj/effect/spawner/random/traders/medical + name = "5. medical gear" + icon_state = "medkit" + loot = list( + // Medchem + /obj/item/storage/pill_bottle/random_meds/labelled = 100, // random medical and other chems + /obj/item/reagent_containers/glass/bottle/reagent/omnizine = 50, + + // Surgery + /obj/item/organ/internal/heart/gland/ventcrawling = 50, + /obj/item/organ/internal/heart/gland/heals = 50, + + // Genetics Research (should really be under science, but I was stuck for items to put in medical) + /obj/item/dnainjector/regenerate = 50, // regeneration + /obj/item/dnainjector/nobreath = 50, + /obj/item/dnainjector/telemut = 50, + + // Medical in general + /obj/item/mod/construction/plating/rescue = 25, + /obj/item/gun/medbeam = 25, //Antags can see this to remove it if a threat, unlikely to happen with another midround + /obj/item/bodyanalyzer = 25, + /obj/item/circuitboard/sleeper/syndicate = 25, + ) + +/obj/effect/spawner/random/traders/security + name = "6. security gear" + icon_state = "riot_shield" + loot = list( + // Melee + /obj/item/kitchen/knife/combat = 50, + /obj/item/fluff/desolate_baton_kit = 50, // permission granted by Desolate to use their fluff kit in this loot table + + // Utility + /obj/item/storage/belt/military/assault = 50, + /obj/item/clothing/mask/gas/sechailer/swat = 50, + /obj/item/clothing/glasses/thermal = 50, // see heat-source mobs through walls. Less powerful than already-available xray. + /obj/item/mod/construction/plating/safeguard = 25, + /obj/item/mod/module/power_kick = 50, + /obj/item/storage/box/syndie_kit/camera_bug = 25, //Camera viewing on the go, planting cameras with detective work? Could be interesting! + + // Ranged weapons + /obj/item/storage/box/enforcer_rubber = 50, //Lethal ammo can be printed at an autolathe, so no need for the lethal subtype + /obj/item/gun/projectile/shotgun/automatic/dual_tube = 100, // cycler shotgun, not normally available to crew + /obj/item/weaponcrafting/gunkit/universal_gun_kit/sol_gov = 20 + ) + +/obj/effect/spawner/random/traders/engineering + name = "7. eng gear" + icon_state = "wrench" + spawn_loot_count = 8 //increased due to this pool being a bit more... niche? + loot = list( + /obj/item/clothing/glasses/material, // shows objects, but not mobs, through walls + /obj/item/clothing/glasses/meson/night, // NV mesons + /obj/item/holosign_creator/atmos, + /obj/item/mod/construction/plating/advanced, + /obj/item/mod/module/jetpack/advanced, + /obj/item/rcd/combat, + /obj/item/rpd/bluespace, + /obj/item/slimepotion/oil_slick, //Suggested by discord, moderately common but not as common as most rnd things + /obj/item/storage/backpack/holding, + /obj/item/storage/belt/utility/chief/full, + /obj/item/tank/internals/emergency_oxygen/double, + ) + +/obj/effect/spawner/random/traders/large_item + name = "8. large item" + icon_state = "durand_old" + spawn_loot_count = 1 + loot = list( + /obj/machinery/cooker/cerealmaker, + /obj/machinery/disco, + /obj/machinery/snow_machine, + /obj/mecha/combat/durand/old, + /obj/structure/spirit_board, + ) + +/obj/effect/spawner/random/traders/vehicle + name = "9. vehicle" + icon_state = "motorcycle" + loot = list( + /obj/vehicle/motorcycle, + /obj/vehicle/snowmobile, + /obj/vehicle/snowmobile/blue, + /obj/vehicle/space/speedbike/red, + /obj/vehicle/space/speedbike, + ) + +/obj/effect/spawner/random/traders/vehicle/make_item(spawn_loc, type_path_to_make) + var/obj/vehicle/V = ..() + if(istype(V) && V.key_type) + V.inserted_key = new V.key_type(V) + + return V + +/obj/effect/spawner/random/traders/service + name = "10. service gear" + + loot = list( + // Mining + /obj/item/pickaxe/drill/jackhammer = 10, + /obj/item/gun/energy/kinetic_accelerator/experimental = 10, + /obj/item/borg/upgrade/modkit/aoe/turfs/andmobs = 10, + + // Botanist + /obj/item/storage/box/botany_labelled_seeds = 10, + + // Clown + /obj/item/grenade/clusterbuster/honk = 10, + /obj/item/bikehorn/golden = 10, + /obj/item/gun/throw/piecannon = 10, + + // Bartender + /obj/item/storage/box/bartender_rare_ingredients_kit = 10, + + // Chef + /obj/item/storage/box/chef_rare_ingredients_kit = 10, + /obj/item/mod/module/dispenser = 5, // Prints burgers. When you want to be space mcdonalds. + // It would be nice to also have items for other service jobs: Mime, Librarian, Chaplain, etc + + // Chaplain + /obj/structure/constructshell = 5, //Fuck it we ball what could go wrong + ) diff --git a/code/game/objects/effects/spawners/random/traders/trader_organization_spawners.dm b/code/game/objects/effects/spawners/random/traders/trader_organization_spawners.dm new file mode 100644 index 00000000000..5a0636829c4 --- /dev/null +++ b/code/game/objects/effects/spawners/random/traders/trader_organization_spawners.dm @@ -0,0 +1,322 @@ +/obj/effect/spawner/random/traders/federation_minor + name = "11. trans-solar federation small gear" + loot = list( + /obj/item/storage/box/enforcer_rubber = 5, + /obj/item/lighter/zippo/gonzofist = 5, + /obj/item/clothing/glasses/welding/superior = 5, + /obj/item/clothing/suit/armor/bulletproof = 5, + /obj/item/clothing/mask/gas/explorer/marines = 5, + /obj/item/clothing/gloves/combat = 5, + /obj/item/storage/belt/military/assault = 5, + /obj/item/clothing/under/solgov = 5, + /obj/item/mod/module/dispenser = 5, + /obj/item/flag/solgov = 3 + ) + +/obj/effect/spawner/random/traders/federation_major + name = "12. trans-solar federation large gear" + spawn_loot_count = 3 + loot = list( + /obj/item/storage/box/deagle = 2, //One mag + /obj/item/gun/projectile/automatic/pistol/m1911 = 3, //Again, one mag. Don't lose it. + /obj/item/melee/baseball_bat/homerun = 5, + /obj/item/rcd/combat = 5, + /obj/item/weaponcrafting/gunkit/universal_gun_kit/sol_gov = 5, + /obj/item/storage/fancy/shell/buck = 3, //Only seven shots, make them count + /obj/item/mod/module/noslip = 4, + /obj/item/clothing/mask/holo_cigar = 5 + ) + +/obj/effect/spawner/random/traders/cybersun_minor + name = "11. cybersun industries small gear" + loot = list( + /obj/item/storage/box/syndidonkpockets = 5, + /obj/item/clothing/suit/jacket/bomber/syndicate = 5, + /obj/item/storage/box/syndie_kit/space = 5, + /obj/item/clothing/glasses/meson/sunglasses = 5, + /obj/item/storage/pill_bottle/zoom = 5, + /obj/item/clothing/mask/gas/voice_modulator/chameleon = 5, + /obj/item/mecha_parts/mecha_equipment/weapon/energy/xray = 3, + /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/carbine = 3, + /obj/item/flag/syndi = 3 + ) + +// Damn near all of this is illegal. Gives officers something to do on a shift quiet enough to spawn traders. +/obj/effect/spawner/random/traders/cybersun_major + name = "12. cybersun industries large gear" + spawn_loot_count = 3 + loot = list( + /obj/item/shield/energy = 20, + /obj/item/gun/projectile/automatic/pistol = 50, + /obj/item/bio_chip_implanter/storage = 50, + /obj/item/melee/knuckleduster/syndie = 50, + /obj/item/clothing/glasses/thermal/eyepatch = 50, + /obj/item/toy/syndicateballoon = 60, + /obj/item/organ/internal/cyberimp/arm/razorwire = 30, + /obj/item/organ/internal/cyberimp/arm/shell_launcher = 30, + /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/lmg/dual = 30, + /obj/item/clothing/mask/holo_cigar = 50, + /obj/mecha/combat/marauder/mauler/trader = 3 //Extremely rare, unloaded so crew need to arm it for it to have any use. Also most definitely needs one helluva permit. + ) + spawn_loot_double = FALSE // No double mechs. + +/obj/effect/spawner/random/traders/ussp_minor + name = "11. USSP small gear" + spawn_loot_count = 8 //Mostly flavor items + loot = list( + /obj/item/clothing/under/new_soviet = 50, + /obj/item/clothing/suit/sovietcoat = 50, + /obj/item/clothing/head/ushanka = 50, + /obj/item/food/grown/potato = 50, + /obj/item/reagent_containers/drinks/bottle/vodka/badminka = 50, + /obj/item/clothing/head/sovietsidecap = 50, + /obj/item/flag/ussp = 30, + /obj/item/ammo_box/magazine/apsm10mm = 15, //Spare mags for APS pistol. Sometimes you don't get the APS, in which case, soviet logistics. + /obj/item/ammo_box/a762 = 15 + ) + +// Lots of things to write permits for. Gives officers something to do on a shift quiet enough to spawn traders. +/obj/effect/spawner/random/traders/ussp_major + name = "12. USSP large gear" + spawn_loot_count = 2 //Lots of dangerous stuff here - reduced amount + loot = list( + /obj/item/gun/projectile/revolver/nagant = 5, + /obj/item/gun/projectile/automatic/pistol/aps = 3, + /obj/item/gun/projectile/shotgun/boltaction = 5, + /obj/item/clothing/suit/space/hardsuit/soviet = 4, + /obj/item/clothing/glasses/thermal/eyepatch = 5, + /obj/item/clothing/mask/holo_cigar = 1 + ) + +/obj/effect/spawner/random/traders/glintscale_minor + name = "11. glint-scale small gear" + loot = list( + /obj/item/clothing/suit/armor/vest/combat = 50, + /obj/item/clothing/under/syndicate/combat = 50, + /obj/item/claymore/ceremonial = 50, + /obj/item/harpoon = 50, + /obj/item/nullrod/claymore/chainsaw_sword = 50, + /obj/item/whetstone = 50, + /obj/item/flag/species/unathi = 20, + /obj/item/clothing/suit/armor/riot/knight/templar = 40, + /obj/item/clothing/head/helmet/riot/knight/templar = 40, + /obj/item/clothing/suit/unathi/robe = 20 + ) + +/obj/effect/spawner/random/traders/glintscale_major + name = "12. glint-scale large gear" + spawn_loot_count = 3 + loot = list( + /obj/item/melee/energy/sword/pirate = 30, + /obj/item/storage/box/breacher = 30, + /obj/item/fireaxe = 50, + /obj/item/fireaxe/boneaxe = 50, + /obj/item/gun/energy/kinetic_accelerator/crossbow/large = 10 //Big ebow. + ) + +/obj/effect/spawner/random/traders/steadfast_minor + name = "11. steadfast trading co. small gear" + spawn_loot_count = 8 //Since it's a lot of seeds, boosted amount + loot = list( + /obj/item/storage/box/botany_labelled_seeds = 50, + /obj/item/seeds/chili/ice = 20, + /obj/item/seeds/chili/ghost = 20, + /obj/item/seeds/cannabis/ultimate = 10, + /obj/item/seeds/cannabis/white = 20, + /obj/item/seeds/wheat/meat = 20, + /obj/item/seeds/glowshroom = 20, + /obj/item/seeds/glowshroom/glowcap = 20, + /obj/item/seeds/tobacco/space = 20, + /obj/item/storage/box/hydroponics_starter = 40, + /obj/item/mod/module/thermal_regulator = 20, + /obj/item/flag/species/vulp = 20 + ) + +/obj/effect/spawner/random/traders/steadfast_major + name = "12. steadfast trading co. large gear" + spawn_loot_count = 3 + loot = list( + /obj/item/mod/construction/plating/research = 3, + /obj/item/assembly/signaler/anomaly/random = 2, + /obj/item/gun/energy/gun = 5, + /obj/item/storage/fancy/shell/dragonsbreath = 3, + /obj/item/storage/box/turbine_kit = 2, + /obj/item/mod/module/firefighting_tank = 4, + /obj/item/mod/module/jetpack/advanced = 4 + ) + +/obj/effect/spawner/random/traders/syntheticunion_minor + name = "11. synthetic union small gear" + spawn_loot_count = 8 //A lot of these are available on station, so the amount of items spawned here is increased + loot = list( + /obj/item/clothing/glasses/meson/sunglasses = 5, + /obj/item/clothing/glasses/thermal/monocle = 5, + /obj/item/organ/internal/cyberimp/arm/toolset = 5, + /obj/item/organ/internal/cyberimp/arm/surgery = 5, + /obj/item/organ/internal/cyberimp/arm/janitorial = 5, + /obj/item/organ/internal/cyberimp/brain/anti_stam = 5, + /obj/item/organ/internal/cyberimp/brain/anti_sleep = 5, + /obj/item/organ/internal/cyberimp/brain/clown_voice = 4, + /obj/item/organ/internal/cyberimp/mouth/breathing_tube = 5, + /obj/item/organ/internal/cyberimp/chest/ipc_repair = 5, + /obj/item/organ/internal/cyberimp/chest/ipc_joints/magnetic_joints = 5, + /obj/item/organ/internal/cyberimp/chest/ipc_joints/sealed = 5, + /obj/item/autosurgeon/organ = 1, + /obj/item/flag/species/machine = 2 + ) + +/obj/effect/spawner/random/traders/syntheticunion_major + name = "12. synthetic union large gear" + spawn_loot_count = 4 + loot = list( + /obj/item/organ/internal/cyberimp/arm/toolset_abductor = 20, + /obj/item/organ/internal/cyberimp/arm/esword = 10, + /obj/item/organ/internal/cyberimp/arm/flash = 50, + /obj/item/organ/internal/cyberimp/chest/nutriment/plus/hardened = 50, + /obj/item/organ/internal/cyberimp/arm/telebaton = 25, //Security'll love this one + /obj/item/organ/internal/cyberimp/arm/razorwire = 30, + /obj/item/organ/internal/cyberimp/arm/shell_launcher = 30, + /obj/item/organ/internal/cyberimp/brain/anti_drop/hardened = 20, + /obj/item/organ/internal/cyberimp/brain/anti_stam/hardened = 30, + /obj/item/surveillance_upgrade = 35 + ) + +/obj/effect/spawner/random/traders/skipjack_minor + name = "11. skipjack small gear" + loot = list( + /obj/item/clothing/glasses/meson/gar = 50, + /obj/item/clothing/glasses/thermal/eyepatch = 50, + /obj/item/melee/energy/sword/pirate = 50, + /obj/item/clothing/suit/hooded/vox_robes = 30, + /obj/item/clothing/under/vox/vox_casual = 30, + /obj/item/clothing/gloves/color/yellow/vox = 10, //Species limited - rare item + /obj/item/clothing/shoes/magboots/vox = 10, //Species limited - rare item + /obj/item/organ/internal/cyberimp/mouth/breathing_tube = 50, + /obj/item/mod/module/jetpack/advanced = 50, + /obj/item/gun/energy/plasma_pistol = 50, + /obj/item/mod/control/pre_equipped/standard = 40, + /obj/item/flag/species/vox = 20 + ) + +/obj/effect/spawner/random/traders/skipjack_major //contains a variety of things - raider loot + name = "12. skipjack large gear" + spawn_loot_count = 3 + loot = list( + /obj/item/storage/box/vox_spacesuit = 2, + /obj/item/storage/box/syndie_kit/chameleon = 5, + /obj/item/organ/internal/cyberimp/arm/esword = 1, + /obj/item/gun/energy/spikethrower = 2, + /obj/item/organ/internal/cyberimp/arm/medibeam = 5, + /obj/item/organ/internal/cyberimp/arm/toolset_abductor = 5, + /obj/item/organ/internal/cyberimp/brain/anti_stam/hardened = 1, + /obj/item/organ/internal/cyberimp/arm/gun/laser = 1, + /obj/item/fireaxe = 1, + /obj/item/gun/projectile/revolver/nagant = 1, + /obj/item/bio_chip_implanter/storage = 1, + /obj/item/rcd/combat = 1 + ) + +/obj/effect/spawner/random/traders/solarcentral_minor + name = "11. skrellian central authority small gear" //Medical and protection theme - shields, mods, meds, and love + loot = list( + /obj/item/mod/control/pre_equipped/rescue = 6, + /obj/item/pen/sleepy/love = 5, + /obj/item/reagent_containers/glass/bottle/reagent/omnizine = 5, + /obj/item/reagent_containers/glass/bottle/love = 5, + /obj/item/reagent_containers/glass/bottle/reagent/lazarus_reagent = 5, + /obj/item/reagent_containers/applicator/dual = 5, + /obj/item/reagent_containers/hypospray/autoinjector/nanocalcium = 3, + /obj/item/storage/firstaid/surgery = 4, + /obj/item/dnainjector/nobreath = 5, + /obj/item/dnainjector/regenerate = 5, + /obj/item/dnainjector/insulation = 5, + /obj/item/flag/species/skrell = 2 + ) + +/obj/effect/spawner/random/traders/solarcentral_major + name = "12. skrellian central authority large gear" + spawn_loot_count = 3 + loot = list( + /obj/item/mod/module/energy_shield = 4, + /obj/item/shield/energy = 4, + /obj/item/reagent_containers/applicator/dual/syndi = 5, //Same as the above but comes emagged + /obj/item/gun/medbeam = 3, + /obj/item/gun/syringe/syndicate = 5, + /obj/item/storage/box/skrell_suit/black = 3, + /obj/item/storage/box/skrell_suit/white = 3, + /obj/item/rod_of_asclepius = 2 + ) + +/obj/effect/spawner/random/traders/technocracy_minor + name = "11. technocracy small gear" + loot = list( + /obj/item/paper/researchnotes = 15, //More research from the smart ones + /obj/item/storage/box/beakers/bluespace = 5, + /obj/item/storage/box/stockparts/deluxe = 5, + /obj/item/clothing/glasses/thermal/monocle = 5, + /obj/item/organ/internal/cyberimp/arm/toolset_abductor = 3, + /obj/item/organ/internal/cyberimp/arm/surgery = 4, + /obj/item/organ/internal/cyberimp/arm/advmop = 3, + /obj/item/organ/internal/cyberimp/brain/anti_stam = 5, + /obj/item/organ/internal/cyberimp/brain/anti_sleep = 5, + /obj/item/organ/internal/cyberimp/brain/anti_drop = 5, + /obj/item/autosurgeon/organ = 1, + /obj/item/flag/species/greys = 2 + ) + +/obj/effect/spawner/random/traders/technocracy_major + name = "12. technocracy large gear" + spawn_loot_count = 3 + loot = list( + /obj/item/storage/box/syndie_kit/prescan = 30, + /obj/item/gun/energy/decloner = 50, + /obj/item/organ/internal/cyberimp/brain/anti_drop/hardened = 20, + /obj/item/organ/internal/cyberimp/brain/anti_stam/hardened = 30, + /obj/item/assembly/signaler/anomaly/random = 50, + /obj/item/surveillance_upgrade = 35, + /obj/item/mod/module/storage/bluespace = 40 + ) + +/obj/effect/spawner/random/traders/merchantguild_minor + name = "11. merchant guild small gear" + spawn_loot_count = 12 //Much larger selection due to it being almost all clothes. + loot = list( + /obj/item/flag/species/nian = 2, + /obj/item/clothing/under/suit/really_black = 5, + /obj/item/clothing/under/syndicate/combat = 5, + /obj/item/clothing/under/syndicate/sniper = 5, + /obj/item/clothing/under/new_soviet/sovietofficer = 5, + /obj/item/clothing/under/solgov/elite = 5, + /obj/item/clothing/under/solgov/command = 5, + /obj/item/clothing/under/retro/security = 5, + /obj/item/clothing/under/misc/gimmick_captain_suit = 5, + /obj/item/clothing/under/misc/durathread = 5, + /obj/item/clothing/under/psysuit = 5, + /obj/item/clothing/under/costume/cuban_suit = 5, + /obj/item/clothing/suit/armor/vest/jacket = 5, + /obj/item/clothing/head/collectable/petehat = 2, + /obj/item/clothing/head/collectable/tophat = 5, + /obj/item/clothing/head/collectable/police = 5, + /obj/item/clothing/head/collectable/kitty = 5, + /obj/item/clothing/under/costume/janimaid = 5, + /obj/item/clothing/under/costume/maid = 5, + /obj/item/storage/box/syndie_kit/chameleon = 6 + ) + +/obj/effect/spawner/random/traders/merchantguild_major + name = "12. merchant guild large gear" + spawn_loot_count = 6 //Low-risk items, flavorful knick knacks - higher stock + loot = list( + /obj/item/clothing/suit/pimpcoat = 5, + /obj/item/dualsaber/toy = 5, + /obj/item/toy/sword = 5, + /obj/item/toy/plushie/carpplushie/dragon = 5, + /obj/item/toy/plushie/carpplushie/void = 5, + /obj/item/toy/plushie/ipcplushie = 3, + /obj/item/toy/plushie/nukeplushie = 3, + /obj/item/toy/plushie/nianplushie = 5, //*buzz + /obj/item/toy/windup_toolbox = 5, + /obj/item/toy/ai = 5, + /obj/item/clothing/mask/gas/voice_modulator/chameleon = 5, + /obj/item/storage/box/syndie_kit/chameleon = 5 + ) diff --git a/code/modules/awaymissions/loot.dm b/code/modules/awaymissions/loot.dm deleted file mode 100644 index e4ed7ac7a54..00000000000 --- a/code/modules/awaymissions/loot.dm +++ /dev/null @@ -1,26 +0,0 @@ -/obj/effect/spawner/away_lootdrop - icon = 'icons/mob/screen_gen.dmi' - icon_state = "x2" - var/lootcount = 1 //how many items will be spawned - var/lootdoubles = 0 //if the same item can be spawned twice - var/loot = "" //a list of possible items to spawn- a string of paths - -/obj/effect/spawner/away_lootdrop/Initialize(mapload) - ..() - var/list/things = params2list(loot) - - if(things && length(things)) - for(var/i = lootcount, i > 0, i--) - if(!length(things)) - return - - var/loot_spawn = pick(things) - var/loot_path = text2path(loot_spawn) - - if(!loot_path || !lootdoubles) - things.Remove(loot_spawn) - continue - - new loot_path(get_turf(src)) - - return INITIALIZE_HINT_QDEL diff --git a/code/modules/awaymissions/mission_code/ruins/telecomns.dm b/code/modules/awaymissions/mission_code/ruins/telecomns.dm index 2d24fe5e65f..d65ddd9c76a 100644 --- a/code/modules/awaymissions/mission_code/ruins/telecomns.dm +++ b/code/modules/awaymissions/mission_code/ruins/telecomns.dm @@ -410,14 +410,14 @@ GLOBAL_LIST_EMPTY(telecomms_trap_tank) explosion(loc, -1, -1, 2, 4, flame_range = 4) qdel(src) -/obj/effect/spawner/lootdrop/telecomms_core_table +/obj/effect/spawner/random/telecomms_core_table name = "telecomms core table spawner" - lootcount = 1 + spawn_loot_count = 1 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/item/rcd/combat, + /obj/item/gun/medbeam, + /obj/item/gun/energy/wormhole_projector, + /obj/item/storage/box/syndie_kit/oops_all_extraction_flares ) /obj/item/storage/box/syndie_kit/oops_all_extraction_flares diff --git a/code/modules/awaymissions/mission_code/ruins/wizardcrash.dm b/code/modules/awaymissions/mission_code/ruins/wizardcrash.dm index 62b288870a7..35b3a0cfb79 100644 --- a/code/modules/awaymissions/mission_code/ruins/wizardcrash.dm +++ b/code/modules/awaymissions/mission_code/ruins/wizardcrash.dm @@ -13,18 +13,20 @@ /obj/item/spellbook/oneuse/emp/used used = TRUE //spawns used -/obj/effect/spawner/lootdrop/wizardcrash +/obj/effect/spawner/random/wizardcrash loot = list( - /obj/item/guardiancreator = 1, // jackpot. - /obj/item/spellbook/oneuse/knock = 1, // tresspassing charges incoming - /obj/item/gun/magic/wand/resurrection = 1, // medbay's best friend - /obj/item/tarot_generator = 1, // A little bit of everything, all of the time. - /obj/item/spellbook/oneuse/charge = 15, // and now for less useful stuff to dilute the good loot chances - /obj/item/spellbook/oneuse/summonitem = 20, - /obj/item/spellbook/oneuse/forcewall = 10, - /obj/item/tarot_card_pack = 10, - /obj/item/tarot_card_pack/jumbo = 6, - /obj/item/tarot_card_pack/mega = 4, - /obj/item/book/granter/spell/summon_cheese = 10, // hungry wizard stuff - /obj/item/reagent_containers/drinks/everfull = 10 // Cheese and wine - ) + /obj/item/spellbook/oneuse/summonitem = 20, + /obj/item/spellbook/oneuse/charge = 15, // and now for less useful stuff to dilute the good loot chances + /obj/item/book/granter/spell/summon_cheese = 10, // hungry wizard stuff + /obj/item/reagent_containers/drinks/everfull = 10, // Cheese and wine + /obj/item/spellbook/oneuse/forcewall = 10, + /obj/item/tarot_card_pack = 10, + + /obj/item/tarot_card_pack/jumbo = 6, + /obj/item/tarot_card_pack/mega = 4, + + /obj/item/guardiancreator = 1, // jackpot. + /obj/item/spellbook/oneuse/knock = 1, // tresspassing charges incoming + /obj/item/gun/magic/wand/resurrection = 1, // medbay's best friend + /obj/item/tarot_generator = 1, // A little bit of everything, all of the time. + ) diff --git a/code/modules/clothing/shoes/misc_shoes.dm b/code/modules/clothing/shoes/misc_shoes.dm index e0a1ac06e51..b5b8d0cadba 100644 --- a/code/modules/clothing/shoes/misc_shoes.dm +++ b/code/modules/clothing/shoes/misc_shoes.dm @@ -423,7 +423,7 @@ desc = "A pair of masterfully crafted lizard skin boots. Finally a good application for the station's most bothersome inhabitants." icon_state = "lizardboots_blue" -/obj/effect/spawner/lootdrop/lizardboots +/obj/effect/spawner/random/lizardboots name = "random lizard boot quality" desc = "Which ever gets picked, the lizard race loses." icon = 'icons/obj/clothing/shoes.dmi' diff --git a/code/modules/crafting/tailoring.dm b/code/modules/crafting/tailoring.dm index 68ca54d5838..435f5196d55 100644 --- a/code/modules/crafting/tailoring.dm +++ b/code/modules/crafting/tailoring.dm @@ -593,7 +593,7 @@ /datum/crafting_recipe/lizardboots name = "Lizard Skin Boots" - result = list(/obj/effect/spawner/lootdrop/lizardboots) + result = list(/obj/effect/spawner/random/lizardboots) time = 6 SECONDS reqs = list(/obj/item/stack/sheet/animalhide/lizard = 1, /obj/item/stack/sheet/leather = 1) category = CAT_CLOTHING diff --git a/code/modules/events/traders.dm b/code/modules/events/traders.dm index 684772392d1..8cb3977d030 100644 --- a/code/modules/events/traders.dm +++ b/code/modules/events/traders.dm @@ -144,8 +144,8 @@ GLOBAL_LIST_INIT(unused_trade_stations, list("sol")) dock_site = "Kayani Station" trader_species = /mob/living/carbon/human trader_outfit = /datum/outfit/admin/trader/sol - trader_minor_special = /obj/effect/spawner/lootdrop/trade_sol/federation_minor - trader_major_special = /obj/effect/spawner/lootdrop/trade_sol/federation_major + trader_minor_special = /obj/effect/spawner/random/traders/federation_minor + trader_major_special = /obj/effect/spawner/random/traders/federation_major /datum/traders/cyber trader_type = "Cybersun Industries" @@ -153,8 +153,8 @@ GLOBAL_LIST_INIT(unused_trade_stations, list("sol")) dock_site = "an undercover robotics factory" trader_species = /mob/living/carbon/human trader_outfit = /datum/outfit/admin/trader/cyber - trader_minor_special = /obj/effect/spawner/lootdrop/trade_sol/cybersun_minor - trader_major_special = /obj/effect/spawner/lootdrop/trade_sol/cybersun_major + trader_minor_special = /obj/effect/spawner/random/traders/cybersun_minor + trader_major_special = /obj/effect/spawner/random/traders/cybersun_major /datum/traders/commie trader_type = "USSP" @@ -162,8 +162,8 @@ GLOBAL_LIST_INIT(unused_trade_stations, list("sol")) dock_site = "Belastrav Station" trader_species = /mob/living/carbon/human trader_outfit = /datum/outfit/admin/trader/commie - trader_minor_special = /obj/effect/spawner/lootdrop/trade_sol/ussp_minor - trader_major_special = /obj/effect/spawner/lootdrop/trade_sol/ussp_major + trader_minor_special = /obj/effect/spawner/random/traders/ussp_minor + trader_major_special = /obj/effect/spawner/random/traders/ussp_major /datum/traders/unathi trader_type = "Glint Scales" @@ -171,8 +171,8 @@ GLOBAL_LIST_INIT(unused_trade_stations, list("sol")) dock_site = "a Glint-Scale outpost" trader_species = /mob/living/carbon/human/unathi trader_outfit = /datum/outfit/admin/trader/unathi - trader_minor_special = /obj/effect/spawner/lootdrop/trade_sol/glintscale_minor - trader_major_special = /obj/effect/spawner/lootdrop/trade_sol/glintscale_major + trader_minor_special = /obj/effect/spawner/random/traders/glintscale_minor + trader_major_special = /obj/effect/spawner/random/traders/glintscale_major /datum/traders/vulp trader_type = "Steadfast Trading Co." @@ -180,8 +180,8 @@ GLOBAL_LIST_INIT(unused_trade_stations, list("sol")) dock_site = "the MV Steadfast Platinum" trader_species = /mob/living/carbon/human/vulpkanin trader_outfit = /datum/outfit/admin/trader/vulp - trader_minor_special = /obj/effect/spawner/lootdrop/trade_sol/steadfast_minor - trader_major_special = /obj/effect/spawner/lootdrop/trade_sol/steadfast_major + trader_minor_special = /obj/effect/spawner/random/traders/steadfast_minor + trader_major_special = /obj/effect/spawner/random/traders/steadfast_major /datum/traders/ipc trader_type = "Synthetic Union" @@ -189,8 +189,8 @@ GLOBAL_LIST_INIT(unused_trade_stations, list("sol")) dock_site = "Cadraenov Station" trader_species = /mob/living/carbon/human/machine trader_outfit = /datum/outfit/admin/trader/ipc - trader_minor_special = /obj/effect/spawner/lootdrop/trade_sol/syntheticunion_minor - trader_major_special = /obj/effect/spawner/lootdrop/trade_sol/syntheticunion_major + trader_minor_special = /obj/effect/spawner/random/traders/syntheticunion_minor + trader_major_special = /obj/effect/spawner/random/traders/syntheticunion_major /datum/traders/vox trader_type = "Skipjack" @@ -198,8 +198,8 @@ GLOBAL_LIST_INIT(unused_trade_stations, list("sol")) dock_site = "a trading skipjack" trader_species = /mob/living/carbon/human/vox trader_outfit = /datum/outfit/admin/trader/vox - trader_minor_special = /obj/effect/spawner/lootdrop/trade_sol/skipjack_minor - trader_major_special = /obj/effect/spawner/lootdrop/trade_sol/skipjack_major + trader_minor_special = /obj/effect/spawner/random/traders/skipjack_minor + trader_major_special = /obj/effect/spawner/random/traders/skipjack_major /datum/traders/skrell trader_type = "Skrellian Central Authority" @@ -207,8 +207,8 @@ GLOBAL_LIST_INIT(unused_trade_stations, list("sol")) dock_site = "Crown Station" trader_species = /mob/living/carbon/human/skrell trader_outfit = /datum/outfit/admin/trader/skrell - trader_minor_special = /obj/effect/spawner/lootdrop/trade_sol/solarcentral_minor - trader_major_special = /obj/effect/spawner/lootdrop/trade_sol/solarcentral_major + trader_minor_special = /obj/effect/spawner/random/traders/solarcentral_minor + trader_major_special = /obj/effect/spawner/random/traders/solarcentral_major /datum/traders/grey trader_type = "Technocracy" @@ -216,8 +216,8 @@ GLOBAL_LIST_INIT(unused_trade_stations, list("sol")) dock_site = "Orbital Commerce Outpost 58" trader_species = /mob/living/carbon/human/grey trader_outfit = /datum/outfit/admin/trader/grey - trader_minor_special = /obj/effect/spawner/lootdrop/trade_sol/technocracy_minor - trader_major_special = /obj/effect/spawner/lootdrop/trade_sol/technocracy_major + trader_minor_special = /obj/effect/spawner/random/traders/technocracy_minor + trader_major_special = /obj/effect/spawner/random/traders/technocracy_major /datum/traders/nian trader_type = "Merchant Guild" @@ -225,5 +225,5 @@ GLOBAL_LIST_INIT(unused_trade_stations, list("sol")) dock_site = "Guild Subsidiary Station 'Gilded Comet'" trader_species = /mob/living/carbon/human/moth trader_outfit = /datum/outfit/admin/trader/nian - trader_minor_special = /obj/effect/spawner/lootdrop/trade_sol/merchantguild_minor - trader_major_special = /obj/effect/spawner/lootdrop/trade_sol/merchantguild_major + trader_minor_special = /obj/effect/spawner/random/traders/merchantguild_minor + trader_major_special = /obj/effect/spawner/random/traders/merchantguild_major diff --git a/code/modules/ruins/lavalandruin_code/pizzaparty.dm b/code/modules/ruins/lavalandruin_code/pizzaparty.dm index d4fcc5957b5..824cca61d5a 100644 --- a/code/modules/ruins/lavalandruin_code/pizzaparty.dm +++ b/code/modules/ruins/lavalandruin_code/pizzaparty.dm @@ -1,13 +1,17 @@ -/obj/effect/spawner/lootdrop/pizzaparty +/obj/effect/spawner/random/pizzaparty name = "pizza bomb spawner" - loot = list(/obj/item/pizzabox/margherita = 2, - /obj/item/pizzabox/meat = 2, - /obj/item/pizzabox/mushroom = 1, - /obj/item/pizzabox/pepperoni = 2, - /obj/item/pizzabox/garlic = 1, - /obj/item/pizzabox/firecracker = 1, - /obj/item/pizzabox/pizza_bomb = 1) - lootdoubles = FALSE + icon = 'icons/effects/random_spawners.dmi' + icon_state = "pizzabox" + loot = list( + /obj/item/pizzabox/margherita = 2, + /obj/item/pizzabox/meat = 2, + /obj/item/pizzabox/pepperoni = 2, + /obj/item/pizzabox/mushroom = 1, + /obj/item/pizzabox/garlic = 1, + /obj/item/pizzabox/firecracker = 1, + /obj/item/pizzabox/pizza_bomb = 1 + ) + spawn_loot_double = TRUE /obj/structure/reagent_dispensers/water_cooler/pizzaparty name = "punch cooler" diff --git a/code/modules/ruins/lavalandruin_code/seed_vault.dm b/code/modules/ruins/lavalandruin_code/seed_vault.dm index bbedf920162..af0e83e81f7 100644 --- a/code/modules/ruins/lavalandruin_code/seed_vault.dm +++ b/code/modules/ruins/lavalandruin_code/seed_vault.dm @@ -1,12 +1,12 @@ -/obj/effect/spawner/lootdrop/seed_vault +/obj/effect/spawner/random/seed_vault name = "seed vault seeds" - lootcount = 1 - loot = list(/obj/item/food/grown/mushroom/glowshroom/glowcap = 10, - /obj/item/seeds/cherry/bomb = 10, - /obj/item/seeds/berry/glow = 10, - /obj/item/seeds/sunflower/moonflower = 8 - ) + loot = list( + /obj/item/food/grown/mushroom/glowshroom/glowcap = 10, + /obj/item/seeds/cherry/bomb = 10, + /obj/item/seeds/berry/glow = 10, + /obj/item/seeds/sunflower/moonflower = 8, + ) /obj/effect/mob_spawn/human/alive/seed_vault name = "preserved terrarium" diff --git a/code/modules/station_goals/bluespace_tap.dm b/code/modules/station_goals/bluespace_tap.dm index 5e189a58087..65cd03fe5aa 100644 --- a/code/modules/station_goals/bluespace_tap.dm +++ b/code/modules/station_goals/bluespace_tap.dm @@ -50,130 +50,6 @@ /obj/item/stock_parts/capacitor/quadratic = 5,//Probably okay, right? /obj/item/stack/ore/bluespace_crystal = 5) -/obj/effect/spawner/lootdrop/bluespace_tap - name = "bluespace harvester reward spawner" - lootcount = 1 - -/obj/effect/spawner/lootdrop/bluespace_tap/hat - name = "exotic hat" - loot = list( - /obj/item/clothing/head/collectable/chef, //same weighing on all of them - /obj/item/clothing/head/collectable/paper, - /obj/item/clothing/head/collectable/tophat, - /obj/item/clothing/head/collectable/captain, - /obj/item/clothing/head/collectable/beret, - /obj/item/clothing/head/collectable/welding, - /obj/item/clothing/head/collectable/flatcap, - /obj/item/clothing/head/collectable/pirate, - /obj/item/clothing/head/collectable/kitty, - /obj/item/clothing/head/crown/fancy, - /obj/item/clothing/head/collectable/rabbitears, - /obj/item/clothing/head/collectable/wizard, - /obj/item/clothing/head/collectable/hardhat, - /obj/item/clothing/head/collectable/hos, - /obj/item/clothing/head/collectable/thunderdome, - /obj/item/clothing/head/collectable/swat, - /obj/item/clothing/head/collectable/slime, - /obj/item/clothing/head/collectable/police, - /obj/item/clothing/head/collectable/slime, - /obj/item/clothing/head/collectable/xenom, - /obj/item/clothing/head/collectable/petehat - ) - - -/obj/effect/spawner/lootdrop/bluespace_tap/cultural - name = "cultural artifacts" - loot = list( - /obj/vehicle/space/speedbike/red = 10, - /obj/item/grenade/clusterbuster/honk = 10, - /obj/item/toy/katana = 10, - /obj/item/stack/tile/brass/fifty = 20, - /obj/item/stack/sheet/mineral/abductor/fifty = 20, - /obj/item/sord = 20, - /obj/item/toy/syndicateballoon = 15, - /obj/item/lighter/zippo/gonzofist = 5, - /obj/item/lighter/zippo/engraved = 5, - /obj/item/lighter/zippo/nt_rep = 5, - /obj/item/gun/projectile/automatic/c20r/toy = 1, - /obj/item/gun/projectile/automatic/l6_saw/toy = 1, - /obj/item/gun/projectile/automatic/toy/pistol = 2, - /obj/item/gun/projectile/automatic/toy/pistol/enforcer = 1, - /obj/item/gun/projectile/shotgun/toy = 1, - /obj/item/gun/projectile/shotgun/toy/crossbow = 1, - /obj/item/gun/projectile/shotgun/toy/tommygun = 1, - /obj/item/gun/projectile/automatic/sniper_rifle/toy = 1, - /obj/item/dualsaber/toy = 5, - /obj/machinery/snow_machine = 10, - /obj/item/clothing/head/kitty = 5, - /obj/item/coin/antagtoken = 5, - /obj/item/toy/prizeball/figure = 15, - /obj/item/toy/prizeball/therapy = 10, - /obj/item/bedsheet/patriot = 2, - /obj/item/bedsheet/rainbow = 2, - /obj/item/bedsheet/captain = 2, - /obj/item/bedsheet/centcom = 1, //mythic rare rarity - /obj/item/bedsheet/syndie = 2, - /obj/item/bedsheet/cult = 2, - /obj/item/bedsheet/wiz = 2, - /obj/item/stack/sheet/mineral/tranquillite/fifty = 3, - /obj/item/clothing/gloves/combat = 5, - /obj/item/blank_tarot_card = 5, - /obj/item/tarot_card_pack = 5, - /obj/item/tarot_card_pack/jumbo = 3, - /obj/item/tarot_card_pack/mega = 2 - ) - -/obj/effect/spawner/lootdrop/bluespace_tap/organic - name = "organic objects" - loot = list( - /obj/item/seeds/random/labelled = 50, - /obj/item/guardiancreator/biological = 5, - /obj/item/organ/internal/vocal_cords/adamantine = 15, - /obj/item/storage/pill_bottle/random_meds/labelled = 25, - /obj/item/reagent_containers/glass/bottle/reagent/omnizine = 15, - /obj/item/dnainjector/telemut = 5, - /obj/item/dnainjector/small_size = 5, - /obj/item/dnainjector/morph = 5, - /obj/item/dnainjector/regenerate = 5, - /mob/living/simple_animal/pet/dog/corgi/ = 5, - /mob/living/simple_animal/pet/cat = 5, - /mob/living/simple_animal/pet/dog/fox/ = 5, - /mob/living/simple_animal/pet/penguin/baby = 5, - /mob/living/simple_animal/pig = 5, - /obj/item/slimepotion/sentience = 5, - /obj/item/clothing/mask/cigarette/cigar/havana = 3, - /obj/item/stack/sheet/mineral/bananium/fifty = 2, //bananas are organic, clearly. - /obj/item/storage/box/monkeycubes = 5, - /obj/item/stack/tile/carpet/twenty = 10, - /obj/item/stack/tile/carpet/black/twenty = 10, - /obj/item/soap/deluxe = 5 - ) - -/obj/effect/spawner/lootdrop/bluespace_tap/food - name = "fancy food" - lootcount = 3 - loot = list( - /obj/item/food/wingfangchu, - /obj/item/food/hotdog, - /obj/item/food/sliceable/turkey, - /obj/item/food/plumphelmetbiscuit, - /obj/item/food/appletart, - /obj/item/food/sliceable/cheesecake, - /obj/item/food/sliceable/bananacake, - /obj/item/food/sliceable/chocolatecake, - /obj/item/food/soup/meatballsoup, - /obj/item/food/soup/mysterysoup, - /obj/item/food/soup/stew, - /obj/item/food/soup/hotchili, - /obj/item/food/burrito, - /obj/item/food/fishburger, - /obj/item/food/cubancarp, - /obj/item/food/fishandchips, - /obj/item/food/meatpie, - /obj/item/pizzabox/hawaiian, //it ONLY gives hawaiian. MUHAHAHA - /obj/item/food/sliceable/xenomeatbread //maybe add some dangerous/special food here, ie robobuger? - ) - /// Points generated per cycle for each Watt of power consumption #define POINTS_PER_W 4e-6 /// Amount of points generated per cycle per 50KW for the first 500KW @@ -203,10 +79,10 @@ /// list of possible products var/static/product_list = list( - new /datum/data/bluespace_tap_product("Unknown Exotic Hat", /obj/effect/spawner/lootdrop/bluespace_tap/hat, 5000), - new /datum/data/bluespace_tap_product("Unknown Snack", /obj/effect/spawner/lootdrop/bluespace_tap/food, 6000), - new /datum/data/bluespace_tap_product("Unknown Cultural Artifact", /obj/effect/spawner/lootdrop/bluespace_tap/cultural, 15000), - new /datum/data/bluespace_tap_product("Unknown Biological Artifact", /obj/effect/spawner/lootdrop/bluespace_tap/organic, 20000) + new /datum/data/bluespace_tap_product("Unknown Exotic Hat", /obj/effect/spawner/random/bluespace_tap/hat, 5000), + new /datum/data/bluespace_tap_product("Unknown Snack", /obj/effect/spawner/random/bluespace_tap/food, 6000), + new /datum/data/bluespace_tap_product("Unknown Cultural Artifact", /obj/effect/spawner/random/bluespace_tap/cultural, 15000), + new /datum/data/bluespace_tap_product("Unknown Biological Artifact", /obj/effect/spawner/random/bluespace_tap/organic, 20000) ) /// The amount of power being used for mining at the moment (Watts) diff --git a/icons/effects/random_spawners.dmi b/icons/effects/random_spawners.dmi index 22c9c0dae1e..48a0327119c 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 705d466b263..f3b5cc42f6e 100644 --- a/paradise.dme +++ b/paradise.dme @@ -1033,15 +1033,16 @@ #include "code\game\objects\effects\spawners\detgun_spawner.dm" #include "code\game\objects\effects\spawners\gibspawner.dm" #include "code\game\objects\effects\spawners\grouped_spawner.dm" -#include "code\game\objects\effects\spawners\lootdrop.dm" #include "code\game\objects\effects\spawners\mess_spawners.dm" #include "code\game\objects\effects\spawners\random_barrier.dm" #include "code\game\objects\effects\spawners\vaultspawner.dm" #include "code\game\objects\effects\spawners\windowspawner.dm" +#include "code\game\objects\effects\spawners\random\bluespace_tap_spawners.dm" #include "code\game\objects\effects\spawners\random\decal_spawners.dm" #include "code\game\objects\effects\spawners\random\engineering_spawners.dm" #include "code\game\objects\effects\spawners\random\food_spawners.dm" #include "code\game\objects\effects\spawners\random\furniture_spawners.dm" +#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\random_spawner.dm" @@ -1049,6 +1050,8 @@ #include "code\game\objects\effects\spawners\random\pool\pool_spawner.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" +#include "code\game\objects\effects\spawners\random\traders\trader_organization_spawners.dm" #include "code\game\objects\effects\temporary_visuals\clockcult.dm" #include "code\game\objects\effects\temporary_visuals\cult_visuals.dm" #include "code\game\objects\effects\temporary_visuals\explosion_temp_visuals.dm" @@ -1656,7 +1659,6 @@ #include "code\modules\atmospherics\machinery\portable\portable_atmospherics.dm" #include "code\modules\atmospherics\machinery\portable\portable_pump.dm" #include "code\modules\atmospherics\machinery\portable\scrubber.dm" -#include "code\modules\awaymissions\loot.dm" #include "code\modules\awaymissions\mob_spawn.dm" #include "code\modules\awaymissions\zlevel_helpers.dm" #include "code\modules\awaymissions\maploader\dmm_suite.dm" diff --git a/tools/UpdatePaths/Scripts/27445_lootspawn_migration.txt b/tools/UpdatePaths/Scripts/27445_lootspawn_migration.txt new file mode 100644 index 00000000000..9e77b3befbb --- /dev/null +++ b/tools/UpdatePaths/Scripts/27445_lootspawn_migration.txt @@ -0,0 +1,21 @@ +/obj/effect/spawner/lootdrop/crate_spawner : /obj/effect/spawner/random/loot/crate +/obj/effect/spawner/lootdrop/three_course_meal : /obj/effect/spawner/random/food_or_drink/three_course_meal + +/obj/effect/spawner/lootdrop/trade_sol/civ : /obj/effect/spawner/random/traders/civilian +/obj/effect/spawner/lootdrop/trade_sol/minerals : /obj/effect/spawner/random/traders/minerals +/obj/effect/spawner/lootdrop/trade_sol/donksoft : /obj/effect/spawner/random/traders/donksoft +/obj/effect/spawner/lootdrop/trade_sol/sci : /obj/effect/spawner/random/traders/science +/obj/effect/spawner/lootdrop/trade_sol/med : /obj/effect/spawner/random/traders/medical +/obj/effect/spawner/lootdrop/trade_sol/sec : /obj/effect/spawner/random/traders/security +/obj/effect/spawner/lootdrop/trade_sol/eng : /obj/effect/spawner/random/traders/engineering +/obj/effect/spawner/lootdrop/trade_sol/largeitem : /obj/effect/spawner/random/traders/large_item +/obj/effect/spawner/lootdrop/trade_sol/vehicle : /obj/effect/spawner/random/traders/vehicle +/obj/effect/spawner/lootdrop/trade_sol/serv : /obj/effect/spawner/random/traders/service + +/obj/effect/spawner/lootdrop/bluespace_tap/@SUBTYPES : /obj/effect/spawner/random/bluespace_tap/@SUBTYPES +/obj/effect/spawner/lootdrop/trade_sol/@SUBTYPES : /obj/effect/spawner/random/traders/@SUBTYPES + +/obj/effect/spawner/lootdrop/telecomms_core_table : /obj/effect/spawner/random/telecomms_core_table +/obj/effect/spawner/lootdrop/wizardcrash : /obj/effect/spawner/random/wizardcrash +/obj/effect/spawner/lootdrop/pizzaparty : /obj/effect/spawner/random/pizzaparty +/obj/effect/spawner/lootdrop/seed_vault : /obj/effect/spawner/random/seed_vault