-
Notifications
You must be signed in to change notification settings - Fork 292
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
feat(balance): Use weighted averages for armor values #6128
base: main
Are you sure you want to change the base?
Conversation
Autofix has formatted code style violation in this PR. I edit commits locally (e.g: git, github desktop) and want to keep autofix
I do not want the automated commit
If you don't do this, your following commits will be based on the old commit, and cause MERGE CONFLICT. |
Thank you mighty tree of formatting, I hope you enjoyed your c++ meal |
Woooo boy, this is gonna affect a shitton of items that'll now have to be checked for differing values isn't it...like, if this automatically grabs the first material on the list and prioritizes it, it's gonna rapidly turn into a full overhaul... |
Bash is usually only a 1-4 point bump, cut and ballistic depend on whether kevlar is involved or not |
Sets, my one weakness
Automatically do the O-yoroi v.s. plated leather armor comparison
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.
Okay I'm looking at this, and as expected this is going to be a headache.
So, here's plated leather armor as of build 2025-02-24
:
And here's plated leather armor in this PR, after it's been fixed to show correctly as being leather/iron instead of iron/leather:
The primary material getting increased weight in the material calcs than it would under a pure average means the armor values are expected to go DOWN, not up.
At 4 materials the percentages on secondaries get wack, but I double we go above 3 in any place that wouldn't be better served by overrides anyway.
Per suggestion by Oren in the Discord, switched to a 60% primary (40%/number of secondary materials) secondary approach |
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.
Tested, wyrmskin armor no longer gets a jump in armor values and plated leather armor now actually gets shaved down in protection slightly. Again, apologies for not realizing sooner that "75% plus 50% means multi-material armor gets a freebie bonus in protection over the same thickness of mono-material armor" was intentional and not a bug, I would've spoken up sooner if I'd been paying attention and did the math on that.
As noted, I still lean against this since armor's gonna need a big audit, but I'll leave it to @Coolthulhu whether we should close it outright. If so, main thing to do is fix the documentation to not refer to an obsoleted mechanic. Given how complicated doing the math for material strength calcs is over just picking a thickness and seeing what it says it is in-game, I'm hoping not too many people balanced their armor by doing math from inaccurate documentation (and if they did then hopefully they actually tested their armor in-game and corrected their mistake afterwards).
Purpose of change (The Why)
The docs previously were lying and claiming a weighted average was in use, when in reality it was a straight average. In the Discord, we agreed that some sort of weighted average was a good idea due to armor values likely being balanced around this idea for multi-material armors.
Describe the solution (The How)
60%
40% / number of secondary materials
.Describe alternatives you've considered
Kheir and Chaos both suggested that it'd be more preferable to have it between straight average and monomaterial.
Testing
ANBC suit for multi-material example:
Kevlar vest for mono-material example:
Additional context
Not as grand of a swing as I expected generally, but still a nice little boost to the multi-material armors.
This does not contain any manually setting the
primary material
field for items, that can be done in a separate PR.Checklist
Mandatory
closes #1234
in Summary of the PR so it can be closed automatically.main
so it won't cause conflict when updatingmain
branch later.Optional
doc/
folder.