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 = "