Migrate /obj/effect/spawner/lootdrop to /obj/effect/spawner/random. (#27445)

* refactor: Migrate /obj/effect/spawner/lootdrop to /obj/effect/spawner/random.

* set script PR number

* fix broken updatepaths for three course meal

* make filenames unique

* goddamnit

* redirect incorrect icon states

* ugh

* fix typepath fixes
This commit is contained in:
warriorstar-orion
2024-12-06 10:05:38 -05:00
committed by GitHub
parent 584e6b26d5
commit af2a3daf22
29 changed files with 842 additions and 849 deletions

View File

@@ -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)
. = ..()

View File

@@ -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?
)

View File

@@ -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,
)

View File

@@ -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)

View File

@@ -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
)

View File

@@ -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
)