Skip to content

Commit

Permalink
[Ready] The Second Maintenance Loot Overhaul (Bubberstation#1607)
Browse files Browse the repository at this point in the history
## 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 <[email protected]>
Co-authored-by: Waterpig <[email protected]>
  • Loading branch information
3 people authored Jul 5, 2024
1 parent d3cec43 commit 0ea9182
Show file tree
Hide file tree
Showing 13 changed files with 442 additions and 345 deletions.
2 changes: 1 addition & 1 deletion code/__DEFINES/maintenance_loot.dm
Original file line number Diff line number Diff line change
@@ -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
Expand Down
2 changes: 2 additions & 0 deletions code/_globalvars/arcade.dm
Original file line number Diff line number Diff line change
@@ -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,
Expand Down Expand Up @@ -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 */
247 changes: 81 additions & 166 deletions modular_zubbers/code/_globalvars/lists/maintenance_loot_common.dm
Original file line number Diff line number Diff line change
@@ -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(
Expand Down Expand Up @@ -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,
Expand All @@ -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,
Expand Down Expand Up @@ -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,
Expand Down Expand Up @@ -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,
Expand Down Expand Up @@ -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,
Expand Down Expand Up @@ -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,
Expand All @@ -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,
Expand All @@ -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,
Expand All @@ -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,
Expand All @@ -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,
Expand All @@ -619,27 +494,23 @@ 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,
list(
/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,
Expand Down Expand Up @@ -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,
Expand Down Expand Up @@ -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,
Expand Down Expand Up @@ -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,
Expand Down Expand Up @@ -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
))
Loading

0 comments on commit 0ea9182

Please sign in to comment.