From 0ea9182569fc68eb3a407561217280613a5d6d94 Mon Sep 17 00:00:00 2001 From: BurgerLUA <8602857+BurgerLUA@users.noreply.github.com> Date: Thu, 4 Jul 2024 18:00:56 -0700 Subject: [PATCH] [Ready] The Second Maintenance Loot Overhaul (#1607) ## About The Pull Request Arcade loot is much more diverse and contains more possible toy spawns. This was introduced in a previous PR but it had to be disabled because of an upstream change with arcade machines. Abandoned Crate loot now uses the rare/oddity loot table instead of its own custom and extremely outdated loot table. It also has some extra... consequences sometimes. Adds a bunch of missing maintenance loot, and shifts a lot of it around based on personal experience. Makes common maint loot more common. Reduces the amount of trash that trash piles create. Fixes a funny issue when you use trash piles with TK at a distance. Fixes the "Debug Maintenance Loot" verb not existing due to an upstream change. Adds a new category called "one of a kind" loot that contains the absurd type of maint loot that can only be spawned once (of each type). They can be found rarely in abandoned crates, or very rarely in trash piles. (Buff?) ## Why It's Good For The Game Abandoned crate loot had too small of a loot pool, and was pretty low risk high reward considering there are auto-solvers that you can use to automatically cheese your way through the puzzle. Some maint loot was missing/outdated, and did not have some things that existed in /tg/'s "vanilla" maintenance loot pool. This needed to change. On some maps that only had trash piles (Voidraptor), maintenance was a hellscape of clutter. This should make it less worse. ## Proof Of Testing Draft because untested. And also I'm tired. ## Changelog :cl: BurgerBB add: Overhauls loot that can spawn in abandoned crates, maintenance, and trash piles. /:cl: --------- Co-authored-by: projectkepler-RU <99981766+projectkepler-ru@users.noreply.github.com> Co-authored-by: Waterpig <49160555+Majkl-J@users.noreply.github.com> --- code/__DEFINES/maintenance_loot.dm | 2 +- code/_globalvars/arcade.dm | 2 + .../lists/maintenance_loot_common.dm | 247 ++++++------------ .../lists/maintenance_loot_oddity.dm | 73 +++--- .../lists/maintenance_loot_one_of_a_kind.dm | 13 + .../lists/maintenance_loot_rare.dm | 88 ++++--- .../lists/maintenance_loot_trash.dm | 76 +++--- .../lists/maintenance_loot_uncommon.dm | 168 ++++++++++-- .../game/objects/structures/trash_pile.dm | 38 ++- .../code/modules/admin/verbs/debug.dm | 46 +++- .../code/loot/~arcade_weights_final.dm | 7 + .../code/modules/mining/abandoned_crates.dm | 24 ++ tgstation.dme | 3 + 13 files changed, 442 insertions(+), 345 deletions(-) create mode 100644 modular_zubbers/code/_globalvars/lists/maintenance_loot_one_of_a_kind.dm create mode 100644 modular_zubbers/code/modules/arcades/code/loot/~arcade_weights_final.dm create mode 100644 modular_zubbers/code/modules/mining/abandoned_crates.dm diff --git a/code/__DEFINES/maintenance_loot.dm b/code/__DEFINES/maintenance_loot.dm index 666c66f72e4bc..18989b164aec0 100644 --- a/code/__DEFINES/maintenance_loot.dm +++ b/code/__DEFINES/maintenance_loot.dm @@ -1,5 +1,5 @@ #define maint_trash_weight 2100 //BUBBERSTATION CHANGE: 4200 TO 2100. -#define maint_common_weight 2250 //BUBBERSTATION CHANGE: 4500 TO 2250. +#define maint_common_weight 4500 #define maint_uncommon_weight 1100 #define maint_rarity_weight 199 #define maint_oddity_weight 1 diff --git a/code/_globalvars/arcade.dm b/code/_globalvars/arcade.dm index 4143ce5fa765f..a76306937bb42 100644 --- a/code/_globalvars/arcade.dm +++ b/code/_globalvars/arcade.dm @@ -1,4 +1,5 @@ ///List of all things that can be dispensed by an arcade cabinet and the weight of them being picked. +/* BUBBERSTATION CHANGE: MODULAR OVERRIDE GLOBAL_LIST_INIT(arcade_prize_pool, list( /obj/item/storage/box/snappops = 2, /obj/item/toy/talking/ai = 2, @@ -71,3 +72,4 @@ GLOBAL_LIST_INIT(arcade_prize_pool, list( /obj/item/clothing/mask/party_horn = 2, /obj/item/storage/box/party_poppers = 2, )) +BUBBERSTATION CHANGE END */ diff --git a/modular_zubbers/code/_globalvars/lists/maintenance_loot_common.dm b/modular_zubbers/code/_globalvars/lists/maintenance_loot_common.dm index 00fdec70f9a0b..609012c5d9f97 100644 --- a/modular_zubbers/code/_globalvars/lists/maintenance_loot_common.dm +++ b/modular_zubbers/code/_globalvars/lists/maintenance_loot_common.dm @@ -1,4 +1,5 @@ GLOBAL_LIST_INIT(common_loot, list( //common: basic items + GLOB.arcade_prize_pool = 150, /obj/item/relic = 100, /obj/item/air_refresher = 25, list( @@ -102,7 +103,7 @@ GLOBAL_LIST_INIT(common_loot, list( //common: basic items ) = 250, list( /obj/item/stack/arcadeticket/thirty = 25, - /obj/item/stack/cable_coil = 50, + /obj/item/stack/cable_coil/thirty = 50, /obj/item/stack/pipe_cleaner_coil/random = 25, /obj/item/stack/conveyor/thirty = 5, /obj/item/stack/ducts/fifty = 5, @@ -126,14 +127,6 @@ GLOBAL_LIST_INIT(common_loot, list( //common: basic items /obj/item/stack/rods/twentyfive = 25, /obj/item/stack/rods/ten = 100, /obj/item/stack/rods/two = 50, - /obj/item/stack/sheet/animalhide/cat = 10, - /obj/item/stack/sheet/animalhide/corgi = 10, - /obj/item/stack/sheet/animalhide/gondola = 10, - /obj/item/stack/sheet/animalhide/human = 10, - /obj/item/stack/sheet/animalhide/lizard = 10, - /obj/item/stack/sheet/animalhide/monkey = 10, - /obj/item/stack/sheet/animalhide/mothroach = 10, - /obj/item/stack/sheet/animalhide/xeno = 10, /obj/item/stack/sheet/bluespace_crystal = 1, /obj/item/stack/sheet/bone = 25, /obj/item/stack/sheet/bronze = 25, @@ -209,6 +202,23 @@ GLOBAL_LIST_INIT(common_loot, list( //common: basic items /obj/item/stack/sheet/titaniumglass/fifty = 1, /obj/item/stack/sheet/xenochitin = 15 ) = 300, + list( + /obj/item/stack/sheet/animalhide/cat = 10, + /obj/item/stack/sheet/animalhide/corgi = 10, + /obj/item/stack/sheet/animalhide/gondola = 10, + /obj/item/stack/sheet/animalhide/human = 10, + /obj/item/stack/sheet/animalhide/lizard = 10, + /obj/item/stack/sheet/animalhide/monkey = 10, + /obj/item/stack/sheet/animalhide/mothroach = 10, + /obj/item/stack/sheet/animalhide/xeno = 10, + /obj/item/stack/sheet/animalhide/carp = 10, + /obj/item/stack/sheet/animalhide/goliath_hide = 5, + /obj/item/stack/sheet/animalhide/goliath_hide/polar_bear_hide = 5, + /obj/item/stack/sheet/animalhide/ashdrake = 1, + /obj/item/stack/sheet/animalhide/bileworm = 5, + /obj/item/stack/sheet/sinew = 10, + /obj/item/stack/sheet/sinew/wolf = 10 + ) = 50, list( /obj/item/stack/tile/carpet/black/fifty = 100, /obj/item/stack/tile/carpet/blue/fifty = 100, @@ -270,7 +280,7 @@ GLOBAL_LIST_INIT(common_loot, list( //common: basic items /obj/item/paint_palette = 1, /obj/item/pipe_painter = 1, /obj/item/rcl/pre_loaded = 1 - ) = 75, + ) = 100, list( /obj/item/paper_bin = 50, /obj/item/paper_bin/construction = 25, @@ -326,7 +336,7 @@ GLOBAL_LIST_INIT(common_loot, list( //common: basic items /obj/item/sticker/syndicate/op = 1, /obj/item/sticker/syndicate/trap = 1, /obj/item/sticker/toolbox = 1 - ) = 75, + ) = 100, list( /obj/item/analyzer = 5, /obj/item/crowbar = 75, @@ -384,7 +394,7 @@ GLOBAL_LIST_INIT(common_loot, list( //common: basic items /obj/item/wirecutters = 50, /obj/item/wrench = 50, /obj/item/fish_analyzer = 10 - ) = 200, + ) = 250, list( /obj/item/hatchet = 1, /obj/item/hatchet/wooden = 1, @@ -407,7 +417,7 @@ GLOBAL_LIST_INIT(common_loot, list( //common: basic items /obj/item/scythe = 15, /obj/item/shield/buckler = 15, /obj/item/spear = 30 - ) = 50, + ) = 100, list( /obj/item/lighter = 400, /obj/item/storage/fancy/cigarettes = 400, @@ -427,7 +437,7 @@ GLOBAL_LIST_INIT(common_loot, list( //common: basic items /obj/item/storage/fancy/cigarettes/cigpack_xeno = 50, /obj/item/storage/fancy/cigarettes/dromedaryco = 25, /obj/item/storage/fancy/cigarettes/khi = 25 - ) = 50, + ) = 100, list( /obj/item/perfume/amber = 1, /obj/item/perfume/cherry = 1, @@ -439,7 +449,7 @@ GLOBAL_LIST_INIT(common_loot, list( //common: basic items /obj/item/perfume/strawberry = 1, /obj/item/perfume/vanilla = 1, /obj/item/perfume/wood = 1 - ) = 10, + ) = 25, list( /obj/item/assembly/health = 25, /obj/item/assembly/igniter = 100, @@ -460,148 +470,13 @@ GLOBAL_LIST_INIT(common_loot, list( //common: basic items /obj/item/fishing_hook = 10, /obj/item/fishing_line = 5, /obj/item/fishing_rod = 5 - ) = 25, + ) = 50, list( /obj/effect/spawner/random/bedsheet = 10, /obj/effect/spawner/random/bedsheet/double = 1 - ) = 10, - list( - /obj/item/ammo_box/foambox = 5, - /obj/item/bikehorn = 50, - /obj/item/bikehorn/airhorn = 25, - /obj/item/bikehorn/rubberducky = 50, - /obj/item/bikehorn/rubberducky/plasticducky = 25, - /obj/item/clothing/accessory/badge/sheriff = 10, - /obj/item/clothing/accessory/clown_enjoyer_pin = 25, - /obj/item/clothing/accessory/mime_fan_pin = 25, - /obj/item/clothing/accessory/pocketprotector = 5, - /obj/item/clothing/accessory/pocketprotector/cosmetology = 10, - /obj/item/clothing/accessory/pocketprotector/full = 25, - /obj/item/clothing/accessory/pride = 10, - /obj/item/clothing/gloves/boxing = 5, - /obj/item/clothing/gloves/boxing/blue = 5, - /obj/item/clothing/gloves/boxing/green = 5, - /obj/item/clothing/gloves/boxing/yellow = 5, - /obj/item/clothing/mask/facehugger/toy = 5, - /obj/item/clothing/mask/gas/larpswat = 5, - /obj/item/clothing/mask/gas/prop = 10, - /obj/item/clothing/mask/whistle = 5, - /obj/item/clothing/shoes/kindle_kicks = 5, - /obj/item/clothing/shoes/wheelys = 15, - /obj/item/clothing/shoes/wheelys/rollerskates = 5, - /obj/item/clothing/shoes/wheelys/skishoes = 10, - /obj/item/clothing/suit/hooded/flashsuit = 25, - /obj/item/clothing/under/syndicate/tacticool = 50, - /obj/item/clothing/under/syndicate/tacticool/skirt = 50, - /obj/item/disk/nuclear/fake = 1, - /obj/item/disk/nuclear/fake/obvious = 5, - /obj/item/dualsaber/toy = 5, - /obj/item/extendohand = 25, - /obj/item/fakeartefact = 50, - /obj/item/gavelhammer = 25, - /obj/item/gun/ballistic/automatic/c20r/toy/unrestricted = 5, - /obj/item/gun/ballistic/automatic/l6_saw/toy/unrestricted = 1, - /obj/item/gun/ballistic/automatic/pistol/toy = 10, - /obj/item/gun/ballistic/automatic/toy/unrestricted = 5, - /obj/item/gun/ballistic/shotgun/toy/unrestricted = 25, - /obj/item/gun/ballistic/shotgun/toy/crossbow = 25, - /obj/item/gun/magic/wand/nothing = 5, - /obj/item/hairbrush = 20, - /obj/item/hairbrush/comb = 10, - /obj/item/bouquet = 5, - /obj/item/bouquet/poppy = 5, - /obj/item/bouquet/rose = 5, - /obj/item/bouquet/sunflower = 5, - /obj/item/hhmirror = 5, - /obj/item/hot_potato/harmless/toy = 25, - /obj/item/hourglass = 10, - /obj/item/inspector = 10, - /obj/item/inspector/clown = 20, - /obj/item/laser_pointer/red = 5, - /obj/item/laser_pointer/green = 5, - /obj/item/laser_pointer/purple = 5, - /obj/item/laser_pointer/blue = 5, - /obj/item/latexballoon = 25, - /obj/item/lipstick/quantum = 5, - /obj/item/lipstick/random = 20, - /obj/item/melee/skateboard = 10, - /obj/item/melee/skateboard/improvised = 40, - /obj/item/melee/skateboard/pro = 5, - /obj/item/melee/skateboard/hoverboard = 1, - /obj/item/reagent_containers/spray/chemsprayer/party = 15, - /obj/item/reagent_containers/spray/waterflower = 25, - /obj/item/reagent_containers/spray/waterflower/lube = 10, - /obj/item/reagent_containers/spray/waterflower/superlube = 5, - /obj/item/restraints/handcuffs/fake = 25, - /obj/item/skub = 200, - /obj/item/sord = 100, - /obj/item/sparkler = 25, - /obj/item/storage/box/snappops = 75, - /obj/item/storage/box/sparklers = 75, - /obj/item/storage/box/stickers = 75, - /obj/item/storage/box/stickers/googly = 75, - /obj/item/storage/card_binder = 50, - /obj/item/storage/crayons = 200, - /obj/item/storage/dice = 100, - /obj/item/storage/dice/hazard = 25, - /obj/item/throwing_star/toy = 50, - /obj/item/towel = 150, - /obj/item/toy/ammo/gun = 50, - /obj/item/toy/balloon = 25, - /obj/item/toy/balloon/arrest = 25, - /obj/item/toy/balloon/corgi = 25, - /obj/item/toy/balloon/syndicate = 25, - /obj/item/toy/basketball = 75, - /obj/item/toy/beach_ball/branded = 50, - /obj/item/toy/beach_ball/baseball = 100, - /obj/item/toy/braintoy = 25, - /obj/item/toy/captainsaid = 25, - /obj/item/toy/captainsaid/collector = 5, - /obj/item/toy/cattoy = 5, - /obj/item/toy/clockwork_watch = 25, - /obj/item/toy/crayon/spraycan = 100, - /obj/item/toy/crayon/spraycan/lubecan = 25, - /obj/item/toy/crayon/spraycan/mimecan = 25, - /obj/item/toy/darksabre = 10, - /obj/item/toy/dodgeball = 50, - /obj/item/toy/dummy = 25, - /obj/item/toy/eightball = 75, - /obj/item/toy/eightball/broken = 25, - /obj/item/toy/eightball/haunted = 25, - /obj/item/toy/eldritch_book = 25, - /obj/item/toy/foamblade = 25, - /obj/item/toy/foamfinger = 10, - /obj/item/toy/gun = 25, - /obj/item/toy/intento = 5, - /obj/item/toy/katana = 5, - /obj/item/toy/minimeteor = 50, - /obj/item/toy/nuke = 25, - /obj/item/toy/plush/carpplushie = 25, - /obj/item/toy/redbutton = 5, - /obj/item/toy/snappop = 10, - /obj/item/toy/snappop/phoenix = 1, - /obj/item/toy/sprayoncan = 1, - /obj/item/toy/sword = 100, - /obj/item/toy/talking/ai = 50, - /obj/item/toy/talking/codex_gigas = 50, - /obj/item/toy/talking/griffin = 50, - /obj/item/toy/talking/owl = 50, - /obj/item/toy/tennis = 10, - /obj/item/toy/tennis/blue = 10, - /obj/item/toy/tennis/cyan = 10, - /obj/item/toy/tennis/green = 10, - /obj/item/toy/tennis/purple = 10, - /obj/item/toy/tennis/rainbow = 1, - /obj/item/toy/tennis/red = 10, - /obj/item/toy/tennis/yellow = 10, - /obj/item/toy/toy_dagger = 25, - /obj/item/toy/toy_xeno = 25, - /obj/item/toy/waterballoon = 10, - /obj/item/toy/windup_toolbox = 25, - /obj/item/training_toolbox = 10, - /obj/item/wheelchair = 50 - ) = 100, - /obj/item/blank_coffee_cartridge = 10, + ) = 25, + /obj/item/wheelchair = 50, + /obj/item/blank_coffee_cartridge = 30, list( /obj/item/bodybag = 10, /obj/item/bodybag/bluespace = 1, @@ -619,19 +494,15 @@ GLOBAL_LIST_INIT(common_loot, list( //common: basic items /obj/item/burner = 5, /obj/item/burner/fuel = 1, /obj/item/burner/oil = 1 - ) = 25, + ) = 50, list( /obj/item/camera = 10, /obj/item/camera/detective = 1, /obj/item/camera/spooky = 1, /obj/item/camera_film = 5 ) = 25, - list( - /obj/item/cardpack/resin = 1, - /obj/item/cardpack/series_one = 1 - ) = 10, /obj/item/chair/plastic = 50, - /obj/item/chisel = 5, + /obj/item/chisel = 15, /obj/item/clothing/ears/earmuffs = 50, /obj/item/clothing/ears/headphones = 5, /obj/item/clothing/gloves/fingerless = 50, @@ -639,7 +510,7 @@ GLOBAL_LIST_INIT(common_loot, list( //common: basic items /obj/item/clothing/gloves/latex = 5, /obj/item/clothing/gloves/latex/nitrile = 1, /obj/item/clothing/mask/surgical = 10 - ) = 25, + ) = 50, /obj/item/clothing/gloves/tackler/offbrand = 50, list( /obj/item/clothing/mask/balaclava = 50, @@ -736,7 +607,7 @@ GLOBAL_LIST_INIT(common_loot, list( //common: basic items /obj/item/extinguisher/mini = 25, /obj/item/extinguisher/mini/empty = 10 ) = 150, - /obj/item/extinguisher_refill = 20, + /obj/item/extinguisher_refill = 30, list( /obj/item/flashlight = 25, /obj/item/flashlight/flare = 50, @@ -901,9 +772,9 @@ GLOBAL_LIST_INIT(common_loot, list( //common: basic items /obj/item/storage/fancy/nugget_box = 10, /obj/item/storage/fancy/pickles_jar = 200, /obj/item/storage/fish_case/random = 100, - /obj/item/storage/fish_case/syndicate = 10, - /obj/item/storage/wallet/random = 200 + /obj/item/storage/fish_case/syndicate = 10 ) = 150, + /obj/item/storage/wallet/random = 50, list( /obj/item/food/meat/slab/bear = 10, /obj/item/food/meat/slab/bugmeat = 50, @@ -949,7 +820,7 @@ GLOBAL_LIST_INIT(common_loot, list( //common: basic items /obj/item/food/raw_patty/human = 25, /obj/item/food/raw_patty/xeno = 25, /obj/item/food/raw_sausage = 50 - ) = 150, + ) = 100, list( /obj/item/food/grown/aloe = 25, /obj/item/food/grown/ambrosia/deus = 1, @@ -1082,5 +953,49 @@ GLOBAL_LIST_INIT(common_loot, list( //common: basic items /obj/item/soap/homemade = 100, /obj/item/soap/nanotrasen = 25, /obj/item/soap/syndie = 10 - ) = 50 + ) = 50, + list( + /obj/item/food/drug/moon_rock = 1, + /obj/item/food/drug/saturnx = 1, + /obj/item/reagent_containers/blacktar = 1, + /obj/item/reagent_containers/cocaine = 1, + /obj/item/reagent_containers/crack = 1, + /obj/item/reagent_containers/cup/blastoff_ampoule = 1, + /obj/item/reagent_containers/hash = 1, + /obj/item/reagent_containers/hash/dabs = 1, + /obj/item/reagent_containers/heroin = 1, + /obj/item/reagent_containers/hypospray/medipen/pumpup = 100, + /obj/item/reagent_containers/pill/cyanide = 1, + /obj/item/reagent_containers/pill/happy = 5, + /obj/item/reagent_containers/pill/happinesspsych = 5, + /obj/item/reagent_containers/pill/lsd = 5, + /obj/item/reagent_containers/pill/lsdpsych = 5, + /obj/item/reagent_containers/pill/maintenance/achievement = 200, + /obj/item/reagent_containers/pill/nanite_slurry = 5, + /obj/item/reagent_containers/pill/zoom = 5, + /obj/item/reagent_containers/syringe/contraband/bath_salts = 1, + /obj/item/reagent_containers/syringe/contraband/fentanyl = 1, + /obj/item/reagent_containers/syringe/contraband/krokodil = 1, + /obj/item/reagent_containers/syringe/contraband/methamphetamine = 1, + /obj/item/reagent_containers/syringe/contraband/morphine = 1, + /obj/item/reagent_containers/syringe/contraband/saturnx = 1, + /obj/item/reagent_containers/syringe/contraband/space_drugs = 1, + /obj/item/reagent_containers/vapecart/bluekush = 1, + /obj/item/reagent_containers/vapecart/cheese = 1, + /obj/item/reagent_containers/vapecart/pwrgame = 1, + /obj/item/reagent_containers/vapecart/reddiesel = 1, + /obj/item/reagent_containers/vapecart/syndicate = 1, + /obj/item/storage/pill_bottle/happinesspsych = 1, + /obj/item/storage/pill_bottle/happy = 1, + /obj/item/storage/pill_bottle/lsd = 1, + /obj/item/storage/pill_bottle/lsdpsych = 1, + /obj/item/storage/pill_bottle/maintenance_pill = 25, + /obj/item/storage/pill_bottle/zoom = 1, + /obj/item/tattoo_kit = 75, + /obj/item/reagent_containers/crackbrick = 1, + /obj/item/reagent_containers/cocainebrick = 1, + /obj/item/reagent_containers/heroinbrick = 1, + /obj/item/reagent_containers/hashbrick = 1 + ) = 50, + /obj/item/rack_parts = 75 )) diff --git a/modular_zubbers/code/_globalvars/lists/maintenance_loot_oddity.dm b/modular_zubbers/code/_globalvars/lists/maintenance_loot_oddity.dm index 8c4b34142a401..0953516af4b21 100644 --- a/modular_zubbers/code/_globalvars/lists/maintenance_loot_oddity.dm +++ b/modular_zubbers/code/_globalvars/lists/maintenance_loot_oddity.dm @@ -1,14 +1,13 @@ GLOBAL_LIST_INIT(oddity_loot, list(//oddity: strange or crazy items - /obj/item/ai_module/toy_ai = 100, + /obj/item/ai_module/toy_ai = 50, /obj/item/anomaly_releaser = 25, /obj/item/bombcore/training = 10, list( /obj/item/book/granter/action/spell/smoke/lesser = 1, /obj/item/book/granter/action/spell/blind/wgw = 1, - /obj/item/book/granter/crafting_recipe/combat_baking = 1, - /obj/item/book/granter/crafting_recipe/regal_condor = 1 + /obj/item/book/granter/crafting_recipe/combat_baking = 1 ) = 25, - /obj/item/bountytrap = 50, + /obj/item/bountytrap = 25, /obj/item/cardboard_cutout/adaptive = 25, /obj/item/chainsaw = 5, /obj/item/claymore/weak/weaker = 10, @@ -49,27 +48,24 @@ GLOBAL_LIST_INIT(oddity_loot, list(//oddity: strange or crazy items /obj/item/clothing/mask/gas/syndicate = 5, /obj/item/clothing/shoes/bhop = 5, /obj/item/clothing/shoes/bhop/rocket = 1, - /obj/item/clothing/shoes/gunboots/disabler = 5, /obj/item/chameleon_scanner = 1 - ) = 100, - /obj/item/clothing/glasses/nightmare_vision = 5, + ) = 50, + /obj/item/clothing/glasses/nightmare_vision = 25, /obj/item/clothing/head/helmet/monkey_sentience = 25, /obj/item/clothing/head/soft/grey/jolly = 5, - /obj/item/crowbar/large/heavy = 5, - /obj/item/device/traitor_announcer = 1, - /obj/item/dice/d20/fate/stealth/one_use = 1, - /obj/item/dnainjector/h2m = 1, - /obj/item/flashlight/flashdark = 1, + /obj/item/crowbar/large/heavy = 5,, + /obj/item/dnainjector/h2m = 5, + /obj/item/flashlight/flashdark = 5, /obj/item/food/burger/ghost = 1, /obj/item/food/burger/crazy = 1, - /obj/item/food/grown/banana/bunch = 1, - /obj/item/food/grown/banana/bombanana = 1, - /obj/item/food/grown/citrus/orange_3d = 1, - /obj/item/food/grown/firelemon = 1, - /obj/item/food/grown/kudzupod = 1, + list( + /obj/item/food/grown/banana/bombanana = 1, + /obj/item/food/grown/citrus/orange_3d = 1, + /obj/item/food/grown/firelemon = 1, + /obj/item/food/grown/kudzupod = 1, + ) = 25, /obj/item/food/monkeycube/gorilla = 5, /obj/item/food/monkeycube/syndicate = 5, - /obj/item/greentext = 10, /obj/item/grenade/chem_grenade/teargas/moustache = 10, list( /obj/item/grenade/clusterbuster/antiweed = 1, @@ -78,23 +74,15 @@ GLOBAL_LIST_INIT(oddity_loot, list(//oddity: strange or crazy items /obj/item/grenade/clusterbuster/smoke = 1, /obj/item/grenade/clusterbuster/soap = 1, /obj/item/grenade/clusterbuster/teargas = 1 - ) = 10, - /obj/item/gun/ballistic/revolver/russian = 25, - /obj/item/gun/energy/gravity_gun = 5, - /obj/item/gun/energy/laser/practice/sc_laser = 5, - /obj/item/gun/energy/meteorgun/pen = 1, - /obj/item/hot_potato = 10, - /obj/item/lazarus_injector = 25, - /obj/item/lighter/bright = 1, + ) = 15, /obj/item/pinata/syndie = 1, list( /obj/item/pizzabox/bomb = 1, /obj/item/pizzabox/bomb/armed = 3 ) = 10, - /obj/item/reagent_containers/hypospray/medipen/snail = 1, - /obj/item/seeds/kudzu = 1, + /obj/item/reagent_containers/hypospray/medipen/snail = 5, + /obj/item/seeds/kudzu = 5, /obj/item/sharpener = 1, - /obj/item/smelling_salts = 1, /obj/item/spider_egg = 5, /obj/item/stack/telecrystal = 5, /obj/item/storage/belt/champion/wrestling = 1, @@ -111,21 +99,28 @@ GLOBAL_LIST_INIT(oddity_loot, list(//oddity: strange or crazy items /obj/item/storage/box/syndie_kit/sleepytime = 10, /obj/item/storage/box/syndie_kit/space = 1, /obj/item/storage/box/syndie_kit/stickers = 10, - /obj/item/taster = 10, /obj/item/toy/crayon/spraycan/hellcan = 1, /obj/item/toy/plush/carpplushie/dehy_carp = 5, - /obj/item/watertank/pepperspray = 1, + /obj/item/watertank/pepperspray = 5, /obj/item/gravity_harness = 5, - /obj/item/wheelchair/gold = 1, /obj/item/spellpacket/lightningbolt = 10, //These do no damage, but they stun. - /obj/item/modular_computer/pda/clear = 30, /obj/item/chair/musical = 10, - /obj/item/transfer_valve/fake = 1, - /obj/item/tailclub = 5, + /obj/item/transfer_valve/fake = 5, /obj/item/hot_potato/harmless = 1, - list( - /obj/item/dice/d20/fate/one_use = 1 - ) = 10, /obj/item/grenade/stingbang/mega = 1, - /obj/item/card/emag/one_shot = 1 + /obj/item/card/emag/one_shot = 5, + /obj/item/stack/sticky_tape/pointy = 10, + /obj/item/stack/sticky_tape/pointy/super = 1, + /obj/item/dnainjector/timed/hulk = 1, + /obj/item/extinguisher/anti = 5, + /obj/item/gift/anything = 50, + /obj/item/v8_engine = 20, + /obj/item/melee/skateboard/hoverboard = 30, + /obj/item/katana = 1, + /obj/item/defibrillator/compact = 1, + /obj/item/melee/baton = 1, + /obj/item/seeds/firelemon = 1, + /obj/item/clothing/head/helmet/abductor = 20, + /obj/item/disk/surgery/advanced_plastic_surgery = 10, + )) diff --git a/modular_zubbers/code/_globalvars/lists/maintenance_loot_one_of_a_kind.dm b/modular_zubbers/code/_globalvars/lists/maintenance_loot_one_of_a_kind.dm new file mode 100644 index 0000000000000..3b2ae85c4579c --- /dev/null +++ b/modular_zubbers/code/_globalvars/lists/maintenance_loot_one_of_a_kind.dm @@ -0,0 +1,13 @@ +GLOBAL_LIST_INIT(one_of_a_kind_loot, list( + /obj/item/clothing/suit/armor/reactive/table, + /obj/item/clothing/shoes/jackboots/fast, + /obj/item/melee/energy/sword/bananium, + /obj/item/dice/d20/fate/one_use, + /obj/item/modular_computer/pda/clear, + /obj/item/gun/energy/meteorgun/pen, + /obj/item/hot_potato, + /obj/item/clothing/shoes/gunboots/disabler, + /obj/item/spear/grey_tide, + /obj/item/shadowcloak, + /obj/item/disk/nuclear/fake, +)) \ No newline at end of file diff --git a/modular_zubbers/code/_globalvars/lists/maintenance_loot_rare.dm b/modular_zubbers/code/_globalvars/lists/maintenance_loot_rare.dm index 22454df812ff5..dacfdbb1f2604 100644 --- a/modular_zubbers/code/_globalvars/lists/maintenance_loot_rare.dm +++ b/modular_zubbers/code/_globalvars/lists/maintenance_loot_rare.dm @@ -1,6 +1,6 @@ GLOBAL_LIST_INIT(rarity_loot, list(//rare: really good items - TODO: FIND THE NEW PATHS FROM THE COMMENTED PARTS /obj/item/aicard/aitater = 10, - /obj/item/ammo_box/foambox/riot = 50, + /obj/item/ammo_box/foambox/riot = 25, list( /obj/item/survivalcapsule = 100, /obj/item/survivalcapsule/luxury = 10, @@ -8,35 +8,8 @@ GLOBAL_LIST_INIT(rarity_loot, list(//rare: really good items - TODO: FIND THE NE /obj/item/survivalcapsule/sauna = 5, /obj/item/survivalcapsule/bathroom = 1 ) = 25, - /obj/item/table_clock = 50, - /obj/item/storage/briefcase/coderbus = 25, - list( - /obj/item/ammo_casing/shotgun/antitide = 1, - /obj/item/ammo_casing/shotgun/beanbag = 1, - /obj/item/ammo_casing/shotgun/beehive = 1, - /obj/item/ammo_casing/shotgun/buckshot = 50, - /obj/item/ammo_casing/shotgun/dart = 1, - /obj/item/ammo_casing/shotgun/dragonsbreath = 1, - /obj/item/ammo_casing/shotgun/express = 1, - /obj/item/ammo_casing/shotgun/flechette = 1, - /obj/item/ammo_casing/shotgun/frag12 = 1, -// /obj/item/ammo_casing/shotgun/honk = 25, -// /obj/item/ammo_casing/shotgun/hp = 1, - /obj/item/ammo_casing/shotgun/hunter = 1, -// /obj/item/ammo_casing/shotgun/iceblox = 1, - /obj/item/ammo_casing/shotgun/improvised = 200, - /obj/item/ammo_casing/shotgun/incapacitate = 1, - /obj/item/ammo_casing/shotgun/incendiary = 1, - /obj/item/ammo_casing/shotgun/ion = 1, - /obj/item/ammo_casing/shotgun/laserslug = 1, - /obj/item/ammo_casing/shotgun/magnum = 1, -// /obj/item/ammo_casing/shotgun/pt20 = 1, - /obj/item/ammo_casing/shotgun/pulverizer = 1, -// /obj/item/ammo_casing/shotgun/rip = 1, - /obj/item/ammo_casing/shotgun/rubbershot = 100, - /obj/item/ammo_casing/shotgun/stunslug = 25, - /obj/item/ammo_casing/shotgun/techshell = 75 - ) = 100, + /obj/item/table_clock = 25, + /obj/item/storage/briefcase/coderbus = 10, /obj/item/analyzer/ranged = 1, list( /obj/item/autosurgeon/organ/nif/disposable = 10, @@ -107,7 +80,7 @@ GLOBAL_LIST_INIT(rarity_loot, list(//rare: really good items - TODO: FIND THE NE /obj/item/rsf = 10, /obj/item/rsf/cookiesynth = 5, /obj/item/rwd/loaded = 10 - ) = 10, + ) = 20, /obj/item/cortical_cage = 5, /obj/item/detective_scanner = 15, list( @@ -135,7 +108,7 @@ GLOBAL_LIST_INIT(rarity_loot, list(//rare: really good items - TODO: FIND THE NE /obj/item/dnainjector/antenna = 1 ) = 25, /obj/item/dog_bone = 5, - /obj/item/door_seal = 5, + /obj/item/door_seal = 10, list( /obj/item/language_manual/roundstart_species = 1 ) = 10, @@ -169,12 +142,12 @@ GLOBAL_LIST_INIT(rarity_loot, list(//rare: really good items - TODO: FIND THE NE /obj/item/pizzabox/pineapple = 1, /obj/item/pizzabox/vegetable = 1, /obj/item/pizzabox/random = 3 //Mothic. - ) = 30, + ) = 20, list( /obj/item/quickdeploy/barricade = 50, /obj/item/quickdeploy/barricade/plasteel = 10, /obj/item/storage/barricade = 5 - ) = 10, + ) = 20, list( /obj/item/restraints/legcuffs/beartrap = 10, /obj/item/restraints/legcuffs/beartrap/prearmed = 1 @@ -191,17 +164,17 @@ GLOBAL_LIST_INIT(rarity_loot, list(//rare: really good items - TODO: FIND THE NE /obj/item/storage/medkit/o2 = 25, /obj/item/storage/medkit/surgery = 5, /obj/item/storage/medkit/toxin = 25 - ) = 75, + ) = 50, /obj/item/crucifix = 5, list( /obj/item/hairbrush/switchblade = 5, /obj/item/hairbrush/tactical = 1 ) = 5, - /obj/item/geneshears = 10, + /obj/item/geneshears = 5, /obj/item/sign/flag/usa = 5, /obj/item/spess_knife = 5, /obj/item/borg_restart_board = 5, - /obj/item/switchblade = 5, + /obj/item/switchblade = 1, /obj/item/throwing_star = 5, /obj/item/grenade/primer/stingbang = 1, list( @@ -209,5 +182,44 @@ GLOBAL_LIST_INIT(rarity_loot, list(//rare: really good items - TODO: FIND THE NE /obj/item/tank/internals/emergency_oxygen/engi/clown/n2o = 1, /obj/item/tank/internals/emergency_oxygen/engi/clown/bz = 1, /obj/item/tank/internals/emergency_oxygen/engi/clown/helium = 1 - ) = 5 + ) = 5, + list( + /obj/item/stack/sheet/mineral/adamantine = 1, + /obj/item/stack/sheet/mineral/runite = 1, + /obj/item/stack/sheet/mineral/mythril = 5, + /obj/item/stack/sheet/mineral/abductor = 1, + /obj/item/stack/sheet/runed_metal/five = 5, + /obj/item/stack/sheet/hauntium/five = 25, + /obj/item/stack/sheet/cobolterium/three = 50, + /obj/item/stack/sheet/copporcitite/three = 50, + /obj/item/stack/sheet/tinumium/three = 50, + /obj/item/stack/sheet/brussite/three = 50, + ) = 20, + /obj/item/reagent_containers/cup/soda_cans/shamblers/eldritch = 1, + list( + /obj/item/reagent_containers/spray/mister/pepperspray = 1, + /obj/item/reagent_containers/spray/pepper = 10, + /obj/item/reagent_containers/spray/pepper/empty = 100, + /obj/item/reagent_containers/spray/medical = 50, + /obj/item/reagent_containers/spray = 100, + ) = 50, + /obj/item/implanter/toaster = 10, + /obj/item/plunger/reinforced = 5, + /obj/item/upgradescroll = 1, + list( + /obj/item/stake = 100, + /obj/item/stake/hardened = 50, + /obj/item/stake/hardened/silver = 25 + ) = 10, + /obj/item/lazarus_injector = 5, + /obj/item/tailclub = 5, + /obj/item/bikehorn/airhorn = 5, + /obj/item/toy/snappop/phoenix = 5, + /obj/item/melee/skateboard/pro = 5, + list( + /obj/item/book/granter/crafting_recipe/dusting/pipegun_prime = 1, + /obj/item/book/granter/crafting_recipe/dusting/laser_musket_prime = 1 + ) = 10, + /obj/item/skillchip/intj = 5, + )) diff --git a/modular_zubbers/code/_globalvars/lists/maintenance_loot_trash.dm b/modular_zubbers/code/_globalvars/lists/maintenance_loot_trash.dm index 514c7e1001cb2..89575dcb42837 100644 --- a/modular_zubbers/code/_globalvars/lists/maintenance_loot_trash.dm +++ b/modular_zubbers/code/_globalvars/lists/maintenance_loot_trash.dm @@ -105,7 +105,38 @@ GLOBAL_LIST_INIT(trash_loot, list(//junk: useless, very easy to get, or ghetto c /obj/item/trash/vendor_trash/mothmallow = 5, /obj/item/trash/vendor_trash/rice_crackers = 5, /obj/item/trash/waffles = 5, - /obj/item/popsicle_stick = 20 + /obj/item/popsicle_stick = 20, + /obj/item/trash/candy/hundred_credit_bar = 5, + /obj/item/trash/candy/coconut_joy = 5, + /obj/item/trash/candy/hurr_bar = 5, + /obj/item/trash/candy/laughter_bar = 5, + /obj/item/trash/candy/kit_catgirl_metaclique_bar = 5, + /obj/item/trash/candy/twink_bar = 5, + /obj/item/trash/candy/elon_musk_bar = 5, + /obj/item/trash/candy/malf_way = 5, + /obj/item/trash/candy/triggerfinger = 5, + /obj/item/trash/popcorn/caramel = 5, + /obj/item/trash/popcorn/salty = 5, + /obj/item/trash/fleet_ration = 5, + /obj/item/trash/semki/healthy = 5, + /obj/item/trash/can/food/squid_ink = 5, + /obj/item/trash/can/food/chap = 5, + /obj/item/trash/hot_shots = 5, + /obj/item/trash/sticko = 5, + /obj/item/trash/sticko/matcha = 5, + /obj/item/trash/sticko/nutty = 5, + /obj/item/trash/sticko/pineapple = 5, + /obj/item/trash/sticko/yuyake = 5, + /obj/item/trash/shok_roks = 5, + /obj/item/trash/shok_roks/citrus = 5, + /obj/item/trash/shok_roks/berry = 5, + /obj/item/trash/shok_roks/tropical = 5, + /obj/item/trash/shok_roks/lanternfruit = 5, + /obj/item/trash/champagne_cork = 5, + /obj/item/trash/champagne_cork/sabrage = 5, + /obj/item/trash/pljeskavica = 5, + /obj/item/trash/nachos = 5, + /obj/item/trash/blins = 5 ) = 300, /obj/item/broken_missile = 1, /obj/item/c_tube = 100, @@ -151,49 +182,6 @@ GLOBAL_LIST_INIT(trash_loot, list(//junk: useless, very easy to get, or ghetto c /obj/item/food/spiderling = 50, /obj/item/food/spiderlollipop = 25 ) = 200, - list( - /obj/item/food/drug/moon_rock = 1, - /obj/item/food/drug/saturnx = 1, - /obj/item/reagent_containers/blacktar = 1, - /obj/item/reagent_containers/cocaine = 1, - /obj/item/reagent_containers/crack = 1, - /obj/item/reagent_containers/cup/blastoff_ampoule = 1, - /obj/item/reagent_containers/hash = 1, - /obj/item/reagent_containers/hash/dabs = 1, - /obj/item/reagent_containers/heroin = 1, - /obj/item/reagent_containers/hypospray/medipen/pumpup = 100, - /obj/item/reagent_containers/pill/cyanide = 1, - /obj/item/reagent_containers/pill/happy = 5, - /obj/item/reagent_containers/pill/happinesspsych = 5, - /obj/item/reagent_containers/pill/lsd = 5, - /obj/item/reagent_containers/pill/lsdpsych = 5, - /obj/item/reagent_containers/pill/maintenance/achievement = 200, - /obj/item/reagent_containers/pill/nanite_slurry = 5, - /obj/item/reagent_containers/pill/zoom = 5, - /obj/item/reagent_containers/syringe/contraband/bath_salts = 1, - /obj/item/reagent_containers/syringe/contraband/fentanyl = 1, - /obj/item/reagent_containers/syringe/contraband/krokodil = 1, - /obj/item/reagent_containers/syringe/contraband/methamphetamine = 1, - /obj/item/reagent_containers/syringe/contraband/morphine = 1, - /obj/item/reagent_containers/syringe/contraband/saturnx = 1, - /obj/item/reagent_containers/syringe/contraband/space_drugs = 1, - /obj/item/reagent_containers/vapecart/bluekush = 1, - /obj/item/reagent_containers/vapecart/cheese = 1, - /obj/item/reagent_containers/vapecart/pwrgame = 1, - /obj/item/reagent_containers/vapecart/reddiesel = 1, - /obj/item/reagent_containers/vapecart/syndicate = 1, - /obj/item/storage/pill_bottle/happinesspsych = 1, - /obj/item/storage/pill_bottle/happy = 1, - /obj/item/storage/pill_bottle/lsd = 1, - /obj/item/storage/pill_bottle/lsdpsych = 1, - /obj/item/storage/pill_bottle/maintenance_pill = 25, - /obj/item/storage/pill_bottle/zoom = 1, - /obj/item/tattoo_kit = 75, - /obj/item/reagent_containers/crackbrick = 1, - /obj/item/reagent_containers/cocainebrick = 1, - /obj/item/reagent_containers/heroinbrick = 1, - /obj/item/reagent_containers/hashbrick = 1 - ) = 50, list( /obj/item/inflatable = 3, /obj/item/inflatable/door = 1, diff --git a/modular_zubbers/code/_globalvars/lists/maintenance_loot_uncommon.dm b/modular_zubbers/code/_globalvars/lists/maintenance_loot_uncommon.dm index 0c0d8ef2ad07e..bb82942deee94 100644 --- a/modular_zubbers/code/_globalvars/lists/maintenance_loot_uncommon.dm +++ b/modular_zubbers/code/_globalvars/lists/maintenance_loot_uncommon.dm @@ -1,24 +1,45 @@ GLOBAL_LIST_INIT(uncommon_loot, list(//uncommon: useful items - /obj/item/airbag = 25, + list( + /obj/item/ammo_casing/shotgun/antitide = 1, + /obj/item/ammo_casing/shotgun/beanbag = 1, + /obj/item/ammo_casing/shotgun/beehive = 1, + /obj/item/ammo_casing/shotgun/buckshot = 50, + /obj/item/ammo_casing/shotgun/dart = 1, + /obj/item/ammo_casing/shotgun/dragonsbreath = 1, + /obj/item/ammo_casing/shotgun/express = 1, + /obj/item/ammo_casing/shotgun/flechette = 1, + /obj/item/ammo_casing/shotgun/frag12 = 1, + /obj/item/ammo_casing/shotgun/hunter = 1, + /obj/item/ammo_casing/shotgun/improvised = 300, + /obj/item/ammo_casing/shotgun/incapacitate = 1, + /obj/item/ammo_casing/shotgun/incendiary = 1, + /obj/item/ammo_casing/shotgun/ion = 1, + /obj/item/ammo_casing/shotgun/laserslug = 1, + /obj/item/ammo_casing/shotgun/magnum = 1, + /obj/item/ammo_casing/shotgun/pulverizer = 1, + /obj/item/ammo_casing/shotgun/rubbershot = 100, + /obj/item/ammo_casing/shotgun/stunslug = 25, + /obj/item/ammo_casing/shotgun/techshell = 75 + ) = 75, /obj/item/anesthetic_machine_kit = 10, /obj/item/anomaly_neutralizer = 25, /obj/item/aquarium_kit = 10, /obj/item/assembly/flash = 10, /obj/item/assembly/shock_kit = 25, /obj/item/autopsy_scanner = 10, - /obj/item/ballistic_broken = 1, - /obj/item/corpsman_broken = 1, - /obj/item/pointman_broken = 1, - /obj/item/banhammer = 5, - /obj/item/barcode = 5, - /obj/item/barcodescanner = 25, + list( + /obj/item/ballistic_broken = 1, + /obj/item/corpsman_broken = 1, + /obj/item/pointman_broken = 1, + ) = 1, + /obj/item/barcodescanner = 10, /obj/item/dest_tagger = 10, /obj/item/sales_tagger = 5, - /obj/item/binoculars = 10, + /obj/item/binoculars = 25, /obj/item/biopsy_tool = 25, /obj/item/pai_card = 10, - /obj/item/reagent_containers/spray/cleaner = 50, - /obj/item/clothing/neck/stethoscope = 40, + /obj/item/reagent_containers/spray/cleaner = 25, + /obj/item/clothing/neck/stethoscope = 30, list( /obj/item/vending_refill/assist = 1, /obj/item/vending_refill/autodrobe = 1, @@ -72,8 +93,14 @@ GLOBAL_LIST_INIT(uncommon_loot, list(//uncommon: useful items /obj/item/vending_refill/wardrobe/sec_wardrobe = 1, /obj/item/vending_refill/wardrobe/syndie_wardrobe = 1, /obj/item/vending_refill/wardrobe/viro_wardrobe = 1, - /obj/item/vending_refill/youtool = 1 - ) = 100, + /obj/item/vending_refill/youtool = 1, + /obj/item/vending_refill/hotdog = 1, + /obj/item/vending_refill/snack/imported/tiziran = 1, + /obj/item/vending_refill/medical_deforest = 1, + /obj/item/vending_refill/lustwish = 1, + /obj/item/vending_refill/halloween_chocolate = 1, + /obj/item/vending_refill/vacation = 1 + ) = 50, list( /obj/item/storage/box/actionfigure = 100, /obj/item/storage/box/aquarium_props = 25, @@ -153,7 +180,13 @@ GLOBAL_LIST_INIT(uncommon_loot, list(//uncommon: useful items /obj/item/storage/box/zipties = 25, /obj/item/storage/fancy/candle_box = 200, /obj/item/storage/inflatable = 200, - /obj/item/storage/lockbox/dueling = 25 + /obj/item/storage/lockbox/dueling = 25, + /obj/item/storage/box/skub = 5, + /obj/item/storage/box/stickers/anti_skub = 5, + /obj/item/storage/box/fishing_hooks = 1, + /obj/item/storage/box/fishing_lines = 1, + /obj/item/storage/box/utensils = 5, + /obj/item/storage/fancy/egg_box/fertile = 1 ) = 200, list( /obj/item/blood_filter = 10, @@ -184,14 +217,13 @@ GLOBAL_LIST_INIT(uncommon_loot, list(//uncommon: useful items /obj/item/surgical_processor = 25, /obj/item/surgicaldrill = 25 ) = 100, - /obj/item/book/codex_gigas = 10, list( /obj/item/book/granter/crafting_recipe/boneyard_notes = 1, - /obj/item/book/granter/crafting_recipe/cooking_sweets_101 = 5, + /obj/item/book/granter/crafting_recipe/cooking_sweets_101 = 1, /obj/item/book/granter/crafting_recipe/death_sandwich = 1, - /obj/item/book/granter/crafting_recipe/trash_cannon = 1, - /obj/item/book/granter/sign_language = 5 - ) = 100, + /obj/item/book/granter/crafting_recipe/trash_cannon = 5, + /obj/item/book/granter/sign_language = 1 + ) = 50, list( /obj/item/bot_assembly/cleanbot = 100, /obj/item/bot_assembly/ed209 = 25, @@ -212,7 +244,7 @@ GLOBAL_LIST_INIT(uncommon_loot, list(//uncommon: useful items /obj/item/clothing/glasses/blindfold = 25, /obj/item/clothing/mask/muzzle = 25, /obj/item/clothing/suit/jacket/straight_jacket = 1, - /obj/item/electropack = 5, + /obj/item/electropack = 10, /obj/item/restraints/handcuffs = 50, /obj/item/restraints/handcuffs/cable/zipties = 25, /obj/item/restraints/legcuffs/bola = 50 @@ -271,7 +303,7 @@ GLOBAL_LIST_INIT(uncommon_loot, list(//uncommon: useful items list( /obj/item/clothing/head/helmet/toggleable/justice = 1, /obj/item/clothing/head/helmet/toggleable/justice/escape = 1 - ) = 20, + ) = 10, list( /obj/item/clothing/head/utility/welding = 10, /obj/item/clothing/glasses/welding = 5, @@ -320,7 +352,7 @@ GLOBAL_LIST_INIT(uncommon_loot, list(//uncommon: useful items /obj/item/megaphone/clown = 5, /obj/item/megaphone/command = 1, /obj/item/megaphone/sec = 1 - ) = 25, + ) = 10, /obj/item/mending_globule = 5, list( /obj/item/mod/core/ethereal = 25, @@ -395,13 +427,11 @@ GLOBAL_LIST_INIT(uncommon_loot, list(//uncommon: useful items /obj/item/nifsoft_remover = 5, /obj/item/pet_carrier = 20, /obj/item/petri_dish/random = 40, - /obj/item/rack_parts = 75, /obj/item/reagent_containers/blood/random = 50, list( - /obj/item/reagent_containers/cup/bottle/acidic_buffer = 200, + /obj/item/reagent_containers/cup/bottle/random_buffer = 300, /obj/item/reagent_containers/cup/bottle/amanitin = 10, /obj/item/reagent_containers/cup/bottle/ammonia = 25, - /obj/item/reagent_containers/cup/bottle/basic_buffer = 200, /obj/item/reagent_containers/cup/bottle/chlorine = 25, /obj/item/reagent_containers/cup/bottle/clownstears = 10, /obj/item/reagent_containers/cup/bottle/diethylamine = 50, @@ -428,8 +458,42 @@ GLOBAL_LIST_INIT(uncommon_loot, list(//uncommon: useful items /obj/item/reagent_containers/cup/bottle/toxin = 5, /obj/item/reagent_containers/cup/bottle/traitor = 25, /obj/item/reagent_containers/cup/bottle/water = 75, - /obj/item/reagent_containers/cup/bottle/welding_fuel = 100 - ) = 150, + /obj/item/reagent_containers/cup/bottle/welding_fuel = 25, + /obj/item/reagent_containers/cup/bottle/cyanide = 1, + /obj/item/reagent_containers/cup/bottle/morphine = 10, + /obj/item/reagent_containers/cup/bottle/chloralhydrate = 5, + /obj/item/reagent_containers/cup/bottle/mannitol = 5, + /obj/item/reagent_containers/cup/bottle/multiver = 50, + /obj/item/reagent_containers/cup/bottle/phlogiston = 1, + /obj/item/reagent_containers/cup/bottle/ammoniated_mercury = 1, + /obj/item/reagent_containers/cup/bottle/syriniver = 5, + /obj/item/reagent_containers/cup/bottle/synaptizine = 5, + /obj/item/reagent_containers/cup/bottle/facid = 5, + /obj/item/reagent_containers/cup/bottle/capsaicin = 50, + /obj/item/reagent_containers/cup/bottle/potass_iodide = 10, + /obj/item/reagent_containers/cup/bottle/atropine = 1, + /obj/item/reagent_containers/cup/bottle/thermite = 1, + /obj/item/reagent_containers/cup/bottle/saltpetre = 50, + /obj/item/reagent_containers/cup/bottle/leadacetate = 5, + /obj/item/reagent_containers/cup/bottle/rezadone = 1 + ) = 200, + list( + /obj/item/reagent_containers/cup/bottle/hydrogen = 100, + /obj/item/reagent_containers/cup/bottle/carbon = 100, + /obj/item/reagent_containers/cup/bottle/nitrogen = 100, + /obj/item/reagent_containers/cup/bottle/oxygen = 100, + /obj/item/reagent_containers/cup/bottle/sodium = 100, + /obj/item/reagent_containers/cup/bottle/aluminium = 100, + /obj/item/reagent_containers/cup/bottle/silicon = 100, + /obj/item/reagent_containers/cup/bottle/phosphorus = 100, + /obj/item/reagent_containers/cup/bottle/sulfur = 100, + /obj/item/reagent_containers/cup/bottle/iron = 100, + /obj/item/reagent_containers/cup/bottle/copper = 100, + /obj/item/reagent_containers/cup/bottle/radium = 100, + /obj/item/reagent_containers/cup/bottle/sacid = 100, + /obj/item/reagent_containers/cup/bottle/silver = 100, + /obj/item/reagent_containers/cup/bottle/bromine = 100 + ) = 100, list( /obj/item/skillchip/appraiser = 100, /obj/item/skillchip/basketweaving = 100, @@ -443,7 +507,7 @@ GLOBAL_LIST_INIT(uncommon_loot, list(//uncommon: useful items /obj/item/skillchip/job/roboticist = 10, /obj/item/skillchip/light_remover = 100, /obj/item/skillchip/sabrage = 100, - /obj/item/skillchip/useless_adapter = 200, + /obj/item/skillchip/useless_adapter = 100, /obj/item/skillchip/wine_taster = 100, /obj/item/skillchip/xenoarch_magnifier = 25, /obj/item/skillchip/master_angler = 25, @@ -495,5 +559,53 @@ GLOBAL_LIST_INIT(uncommon_loot, list(//uncommon: useful items /obj/item/fishing_rod/telescopic/master = 1, /obj/item/fishing_rod/tech = 1, /obj/item/bait_can = 20 - ) = 10 + ) = 20, + list( + /obj/item/storage/pill_bottle = 200, + /obj/item/storage/pill_bottle/multiver = 50, + /obj/item/storage/pill_bottle/multiver/less = 75, + /obj/item/storage/pill_bottle/epinephrine = 50, + /obj/item/storage/pill_bottle/mutadone = 25, + /obj/item/storage/pill_bottle/potassiodide = 10, + /obj/item/storage/pill_bottle/probital = 10, + /obj/item/storage/pill_bottle/iron = 50, + /obj/item/storage/pill_bottle/mannitol = 25, + /obj/item/storage/pill_bottle/stimulant = 1, + /obj/item/storage/pill_bottle/sansufentanyl = 10, + /obj/item/storage/pill_bottle/mining = 5, + /obj/item/storage/pill_bottle/aranesp = 5, + /obj/item/storage/pill_bottle/psicodine = 50, + /obj/item/storage/pill_bottle/penacid = 5, + /obj/item/storage/pill_bottle/neurine = 5, + /obj/item/storage/pill_bottle/maintenance_pill/full = 100, + /obj/item/storage/pill_bottle/paxpsych = 5, + /obj/item/storage/pill_bottle/naturalbait = 100, + /obj/item/storage/pill_bottle/ondansetron = 5, + /obj/item/storage/pill_bottle/prescription_stimulant = 5, + /obj/item/storage/pill_bottle/painkiller = 20, + /obj/item/storage/pill_bottle/liquid_solder = 20, + /obj/item/storage/pill_bottle/liquid_solder/braintumor = 20, + /obj/item/storage/pill_bottle/nanite_slurry = 20, + /obj/item/storage/pill_bottle/system_cleaner = 20 + ) = 40, + list( + /obj/item/storage/lunchbox = 100, + /obj/item/storage/lunchbox/nanotrasen = 200, + /obj/item/storage/lunchbox/medical = 50, + /obj/item/storage/lunchbox/bunny = 50, + /obj/item/storage/lunchbox/corgi = 50, + /obj/item/storage/lunchbox/heart = 50, + /obj/item/storage/lunchbox/safetymoth = 50, + /obj/item/storage/lunchbox/amongus = 10 + ) = 20, + /obj/item/roulette_wheel_beacon = 10, + list( + /obj/item/stack/cannonball = 10, + /obj/item/stack/cannonball/trashball/four = 50, + ) = 20, + /obj/item/reagent_containers/cup/soda_cans/random = 10, + /obj/item/reagent_containers/spray/mister/janitor = 5, + /obj/item/clothing/shoes/jackboots = 20, + + )) diff --git a/modular_zubbers/code/game/objects/structures/trash_pile.dm b/modular_zubbers/code/game/objects/structures/trash_pile.dm index 5fe047b4a7112..c85889ecc44d9 100644 --- a/modular_zubbers/code/game/objects/structures/trash_pile.dm +++ b/modular_zubbers/code/game/objects/structures/trash_pile.dm @@ -16,8 +16,8 @@ var/list/searched_by_ckeys = list() //Assoc list of people who searched this trash pile (value is 1), or started searching (value is 0) - var/trash_delay = 0.25 SECONDS - var/funny_sound_delay = 0.1 SECONDS + var/trash_delay = 0.5 SECONDS + var/funny_sound_delay = 0.2 SECONDS COOLDOWN_DECLARE(trash_cooldown) COOLDOWN_DECLARE(funny_sound_cooldown) @@ -63,6 +63,7 @@ /obj/structure/trash_pile/Initialize(mapload) . = ..() AddElement(/datum/element/climbable) + AddElement(/datum/element/elevation, pixel_shift = 12) icon_state = pick( "pile1", "pile2", @@ -118,7 +119,8 @@ if(searched_by_ckeys[user.ckey]) balloon_alert(user, "empty...") return TRUE - var/obj/item/spawned_item = produce_item_from_list(get_turf(src),GLOB.trash_pile_loot) + var/obj/item/spawned_item = prob(25) ? pick_weight_recursive(GLOB.common_loot) : pick_weight_recursive(GLOB.trash_pile_loot) + spawned_item = new spawned_item(get_turf(src)) if(spawned_item) balloon_alert(user, "found [spawned_item.name]!") else @@ -186,13 +188,6 @@ /obj/structure/trash_pile/relaymove(mob/user) container_resist_act(user) -/obj/structure/trash_pile/proc/produce_item_from_list(turf/spawn_loc,list/list_to_use) - var/lootspawn = pick_weight(list_to_use) - while(islist(lootspawn)) - lootspawn = pick_weight(lootspawn) - var/obj/item/hidden_item = new lootspawn(spawn_loc) - return hidden_item - /obj/structure/trash_pile/proc/throw_trash(mob/user) if(QDELETED(src) || QDELETED(user)) //Check if valid. @@ -201,21 +196,24 @@ if(isnum(searched_by_ckeys[user.ckey])) //Don't spawn trash! return TRUE - var/turf/T + var/turf/T = get_turf(user) + if(get_dist(T,src) > 1) //Distance check for TK fuckery + return TRUE + if(COOLDOWN_FINISHED(src, trash_cooldown)) COOLDOWN_START(src, trash_cooldown, trash_delay*0.5 + rand()*trash_delay) // x0.5 to x1.5 - if(!T) - T = get_turf(user) - var/obj/item/spawned_item = produce_item_from_list(T,GLOB.trash_loot) - if(spawned_item) - var/turf/throw_at = get_ranged_target_turf_direct(src, user, 7, rand(-60,60)) - if(spawned_item.safe_throw_at(throw_at, rand(2,4), rand(1,3), user, spin = TRUE)) - playsound(T, 'sound/weapons/punchmiss.ogg', 10) + var/obj/item/spawned_item + if(length(GLOB.one_of_a_kind_loot) && prob(0.1)) //1 in 1000 + spawned_item = pick_n_take(GLOB.one_of_a_kind_loot) + else + spawned_item = pick_weight_recursive(GLOB.trash_loot) + spawned_item = new spawned_item(T) + var/turf/throw_at = get_ranged_target_turf_direct(src, user, 7, rand(-60,60)) + if(spawned_item.safe_throw_at(throw_at, rand(2,4), rand(1,3), user, spin = TRUE)) + playsound(T, 'sound/weapons/punchmiss.ogg', 10) if(COOLDOWN_FINISHED(src,funny_sound_cooldown)) COOLDOWN_START(src, funny_sound_cooldown, funny_sound_delay*0.5 + rand()*funny_sound_delay) // x0.5 to x1.5 - if(!T) - T = get_turf(user) playsound(T,pick_weight(funny_sounds), 25) return TRUE diff --git a/modular_zubbers/code/modules/admin/verbs/debug.dm b/modular_zubbers/code/modules/admin/verbs/debug.dm index aa4645b9c1d17..0f1c6c90e6e9f 100644 --- a/modular_zubbers/code/modules/admin/verbs/debug.dm +++ b/modular_zubbers/code/modules/admin/verbs/debug.dm @@ -1,13 +1,10 @@ -/client/proc/debug_maintenance_loot() - set category = "Debug" - set name = "Debug Missing Maintenance Loot" - if(!check_rights(R_DEBUG)) - return - var/confirm = input("Are you sure you wish to debug maintenance loot? This process takes up a lot of the server's resources.","Debug Maintenance Loot","Cancel") as null|anything in list("Yes","No","Cancel") +ADMIN_VERB(debug_maintenance_loot, R_DEBUG, "Debug Maintenance Loot", "List all items in the game that are not in maintenance loot", ADMIN_CATEGORY_DEBUG) + + var/confirm = input(user,"Are you sure you wish to debug maintenance loot? This process takes up a lot of the server's resources.","Debug Maintenance Loot","Cancel") as null|anything in list("Yes","No","Cancel") if(confirm != "Yes") return - log_admin("[key_name(src)] has started debugging maintenance loot.") + log_admin("[key_name(user)] has started debugging maintenance loot.") var/list/every_single_maintenance_item = list() for(var/loot_list in GLOB.maintenance_loot) @@ -23,6 +20,37 @@ if(!every_single_maintenance_item[k]) returning_data = "[returning_data]
[k]" - src << browse(returning_data, "window=maintenace_report") + user << browse(returning_data, "window=maintenace_report") + +ADMIN_VERB(simulate_maintenance_loot, R_DEBUG, "Simulate Maintenance Loot", "Simulate 100 maintenance loot spawns. Special trait modifiers NOT applied.", ADMIN_CATEGORY_DEBUG) + + var/confirm = input(user,"Are you sure you wish to simulate maintenance loot? This process takes up a lot of the server's resources.","Simulate Maintenance Loot","Cancel") as null|anything in list("Yes","No","Cancel") + if(confirm != "Yes") + return + + var/list/current_loot_counts = list() //Assoc list. path = count + + var/missing_count = 0 + for(var/i=1,i<=500,i++) + var/atom/movable/M = pick_weight_recursive(GLOB.maintenance_loot) + if(!M) //wat + missing_count++ + continue + if(!current_loot_counts[M]) + current_loot_counts[M] = 1 + else + current_loot_counts[M] += 1 + + sortTim(current_loot_counts, cmp=/proc/cmp_numeric_dsc, associative = TRUE) + + var/returning_data = "

List of 500 simulated maintenance spawns:


" + var/confirmation_count = 0 + var/different_path_count = 0 + for(var/atom_path in current_loot_counts) + returning_data = "[returning_data]
[atom_path]: [current_loot_counts[atom_path]] ([round(current_loot_counts[atom_path]/5,0.01)]%)" + confirmation_count += current_loot_counts[atom_path] + different_path_count += 1 + + returning_data = "[returning_data]
Listed [different_path_count] different types of objects, with [confirmation_count] total objects and [missing_count] missing objects." - SSblackbox.record_feedback("tally", "admin_verb", 1, "Debug Missing Maintenance Loot") // If you are copy-pasting this, ensure the 4th parameter is unique to the new proc! \ No newline at end of file + user << browse(returning_data, "window=maintenace_report") diff --git a/modular_zubbers/code/modules/arcades/code/loot/~arcade_weights_final.dm b/modular_zubbers/code/modules/arcades/code/loot/~arcade_weights_final.dm new file mode 100644 index 0000000000000..42b88b283ac47 --- /dev/null +++ b/modular_zubbers/code/modules/arcades/code/loot/~arcade_weights_final.dm @@ -0,0 +1,7 @@ +GLOBAL_LIST_INIT(arcade_prize_pool, list( + GLOB.arcade_prize_pool_classic = 5000, + GLOB.arcade_prize_pool_toy = 2500, + GLOB.arcade_prize_pool_mechanical = 1000, + GLOB.arcade_prize_pool_special = 250, + GLOB.arcade_prize_pool_oh_god = 1 +)) diff --git a/modular_zubbers/code/modules/mining/abandoned_crates.dm b/modular_zubbers/code/modules/mining/abandoned_crates.dm new file mode 100644 index 0000000000000..36a8957cc8225 --- /dev/null +++ b/modular_zubbers/code/modules/mining/abandoned_crates.dm @@ -0,0 +1,24 @@ +//The value is not rarity, but rather the amount. +GLOBAL_LIST_INIT(abandoned_crate_disasters,list( + /mob/living/basic/cockroach = 20, + /mob/living/basic/bee/toxin = 10, +)) + +/obj/structure/closet/crate/secure/loot/spawn_loot() + + if(prob(10)) + var/atom/movable/chosen_disaster = pick(GLOB.abandoned_crate_disasters) + for(var/i=1,i<=GLOB.abandoned_crate_disasters[chosen_disaster],i++) + new chosen_disaster(src) + else if(length(GLOB.one_of_a_kind_loot) && prob(1)) + var/atom/movable/chosen_loot = pick_n_take(GLOB.one_of_a_kind_loot) + new chosen_loot(src) + else if(prob(40)) + var/atom/movable/chosen_loot = pick_weight_recursive(GLOB.oddity_loot) + new chosen_loot(src) + else + var/atom/movable/chosen_loot = pick_weight_recursive(GLOB.rarity_loot) + for(var/i=1,i<=rand(3,10),i++) + new chosen_loot(src) + + spawned_loot = TRUE diff --git a/tgstation.dme b/tgstation.dme index 596952be78de5..674548b26f6e1 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -8469,6 +8469,7 @@ #include "modular_zubbers\code\_globalvars\lists\_maintenance_loot.dm" #include "modular_zubbers\code\_globalvars\lists\maintenance_loot_common.dm" #include "modular_zubbers\code\_globalvars\lists\maintenance_loot_oddity.dm" +#include "modular_zubbers\code\_globalvars\lists\maintenance_loot_one_of_a_kind.dm" #include "modular_zubbers\code\_globalvars\lists\maintenance_loot_rare.dm" #include "modular_zubbers\code\_globalvars\lists\maintenance_loot_trash.dm" #include "modular_zubbers\code\_globalvars\lists\maintenance_loot_uncommon.dm" @@ -8667,6 +8668,7 @@ #include "modular_zubbers\code\modules\arcades\code\loot\arcade_weights_oh_god.dm" #include "modular_zubbers\code\modules\arcades\code\loot\arcade_weights_special.dm" #include "modular_zubbers\code\modules\arcades\code\loot\arcade_weights_toy.dm" +#include "modular_zubbers\code\modules\arcades\code\loot\~arcade_weights_final.dm" #include "modular_zubbers\code\modules\arcades\code\minesweeper\minesweeper.dm" #include "modular_zubbers\code\modules\arcades\code\overrides\spawners.dm" #include "modular_zubbers\code\modules\ashwalkers\ashwalker_names.dm" @@ -8839,6 +8841,7 @@ #include "modular_zubbers\code\modules\mapping\limastation\shuttles.dm" #include "modular_zubbers\code\modules\mapping\limastation\static_plaque.dm" #include "modular_zubbers\code\modules\mapping\ss13_construct\areas.dm" +#include "modular_zubbers\code\modules\mining\abandoned_crates.dm" #include "modular_zubbers\code\modules\mining\shelters.dm" #include "modular_zubbers\code\modules\mining\equipment\survival_pod.dm" #include "modular_zubbers\code\modules\mining\lavaland\megafauna_loot.dm"