-
-
Notifications
You must be signed in to change notification settings - Fork 1.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
More varied and balanced maintenance loot. #26500
Merged
S34NW
merged 18 commits into
ParadiseSS13:master
from
warriorstar-orion:feat/loot-tables
Aug 26, 2024
Merged
More varied and balanced maintenance loot. #26500
S34NW
merged 18 commits into
ParadiseSS13:master
from
warriorstar-orion:feat/loot-tables
Aug 26, 2024
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
ParadiseSS13-Bot
added
Testmerge Requested
This PR has a pending testmerge request
-Status: Awaiting type assignment
This PR is waiting for its type to be assigned internally
Map Edit
This PR will modify a map
Sprites
This PR modifies the game sprites
labels
Aug 15, 2024
ParadiseSS13-Bot
added
-Status: Awaiting approval
This PR is waiting for approval internally
and removed
-Status: Awaiting type assignment
This PR is waiting for its type to be assigned internally
labels
Aug 16, 2024
ParadiseSS13-Bot
added
the
Testmerge Active
This PR is currently testmerged on production
label
Aug 18, 2024
Significantly lower occurrence of all tier 2 items.
ParadiseSS13-Bot
added
-Status: Awaiting review
This PR is awaiting review from the review team
and removed
-Status: Awaiting approval
This PR is waiting for approval internally
labels
Aug 24, 2024
Furrior
reviewed
Aug 24, 2024
code/game/objects/effects/spawners/random/maint_loot_spawners.dm
Outdated
Show resolved
Hide resolved
ParadiseSS13-Bot
removed
the
Testmerge Active
This PR is currently testmerged on production
label
Aug 26, 2024
S34NW
approved these changes
Aug 26, 2024
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This has been issue-free on TM for a while. Time to go.
1 task
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
-Status: Awaiting review
This PR is awaiting review from the review team
Balance
This PR will modify how effective something is or isnt
Map Edit
This PR will modify a map
Sprites
This PR modifies the game sprites
Testmerge Requested
This PR has a pending testmerge request
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
What Does This PR Do
This PR refactors and expands the maintenance loot spawners and loot tables.
Currently, most spawners spawn one item but some spawn two, three, or eight, depending on what's mapped.
With this PR there is only one maintloot spawner type. It has a 65% chance of proccing, and it can spawn anywhere from 2-4 items. The "empty maintenance" station trait reduces that chance to 30%, and the "filled maintenance" trait increases that chance to 80%.
The loot table has been split up into several tables in rough order of rarity, and a trash tier has been added, which is just literal trash.
Note: The mean spawn count on box has increased from ~420 to ~580, about a 35% increase, BUT there is a commensurate flat 35% chance to spawn trash across the board. So all actual item counts remain reasonable, but there's plenty of slots now for spawning trash. Again, there's 160 new spawn chances (on Box), but they're all literal trash.
Item spawns are now blackboxed, so the spawn rates can be checked after every round.
Incomplete list of added items
Technical Details
The PR ports and tweaks TG's base random spawner object which provides some useful features.
It adds several new sub-spawners that are part of the main loot table but can also be used by mappers for whatever:
The loot table tiers are several global variables consulted by the maint loot spawners. Several helpers now exist that allow for weight picking recursively from lists of lists, ported from TG.
Why It's Good For The Game
The maint loot table is a mess. It's one giant list of over 100 items, that contains everything from books to guns. Difficult to work with.
Spawn rates are almost meaningless. Toy handcuffs spawn at the same rate as chameleon noslips. Knuckledusters spawn more often than Syndicate soap. Wirecutters have the same chances of spawning as an entire mechanical toolbox. Extinguishers were five times more common than nearly any other item on the list. Imagine trying to add more items to the list and keep things balanced.
It's stale. The items on the list haven't changed significantly since the loot tables were introduced, while plenty more items have been introduced into the game since then. As well, there are plenty of items that could would be nice random boons during a round if they were on the list, and that should be part of the point of maint diving.
Variety, randomness, and unpredictability are good things. Maintenance areas shouldn't be so static and predictable.
Balance team will have a much easier time of adding to/removing from/tuning the loot tables now that they are split up into sane tiers.
Images of changes
(animated, click the play button)
Testing
I wrote a simulator that parsed the codebase and retrieved the odds for the spawners, then ran them in batches of 50 rounds, collecting and comparing the results. Item counts were reviewed with Balance team.
The most recent results can be viewed here: https://docs.google.com/spreadsheets/d/19rImqR6RACjUrccuih83ta0z7Sz8N_kUP-KBZ-mbUeY/edit?usp=sharing
Declaration
Changelog
🆑
add: More than 80 items have been added to the maintenance loot table! Expect more trash, more common items, more useful items, and a few more rare items.
/:cl: