Skip to content
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

weapons: add tests to confirm melee weapon value and adjust some weapons (part 3) #41163

Merged
merged 4 commits into from
Jun 9, 2020

Conversation

mlangsdorf
Copy link
Contributor

Summary

SUMMARY: Balance "weapons: add tests to confirm melee weapon value and adjust some weapons (part 3)"

Purpose of change

As part of the great melee weapon rebalance (#39644 et al), @Brian-Otten unfortunately forgot to adjust a couple of weapons' accuracy values. Also, although effective DPS tests were added around this time, no tests were added to make sure that melee weapon's have appropriate value and to
detect future changes that would change the value of melee weapons.

Rectify these issues by adding an additional set of tests that calculate the weapon value of various weapons against a fairly beefy reference avatar (all stats 10, all skills 4). Then rebalance some weapons.

This is part 3, which follows #41089 and covers two handed swords, swords, and knives.

Describe the solution

The tests just check if a given weapon has a given weapon_value, +/- 0.75.

Some weapons had their to-hit, mass, volume, and/or damages updated to bring them in line with expected values for similar weapons. Most noticeably, many knives got their accuracy reduced since they are extremely short weapons with point strike surfaces, and in the case of kitchen and utility knives, aren't balanced for combat.

Describe alternatives you've considered

"to_hit" as a static number needs to be replaced by an object:

"accuracy": {
  "length": "short",  // could be long, short, or none
  "grip": "weapon", // could be none, poor, solid, or weapon
  "surface": "point", // could be point, line, every, or any
  "balance": "good" // could clumsy, uneven, neutral, or good
}

with the meaning of the terms taken from doc/GAME_BALANCE.md and itemfactory.cpp parsing the descriptive terms and generating an actual to_hit value. The object would make it a lot clearer as to what was going on. It would also be a lot more work, so I didn't do it in this PR series but will probably start on it soon. I'll keep the legacy "to_hit" values around for compatibility for out of tree mods.

@mlangsdorf mlangsdorf added Code: Tests Measurement, self-control, statistics, balancing. Melee Melee weapons, tactics, techniques, reach attack labels Jun 8, 2020
@Zireael07
Copy link
Contributor

Linguistic nit: plural of knife is knives not knifes :P

@mlangsdorf mlangsdorf force-pushed the melee_validation_3 branch from 8eafad7 to 96d77b5 Compare June 8, 2020 12:55
@mlangsdorf
Copy link
Contributor Author

Bah, stupid rules of Old English grammar. Nitpick picked.

add tests for effective DPS/value for two-handed swords.  Correct an
error that had katana accuracy too low, then reduce damage across all
two-handed swords so they aren't better than battleaxes but nearly as
good.
add tests for effective DPS/value for two-handed swords.  Modestly
jiggle some values so that broadswors, jiangs, rapiers, and arming
swords are roughly equivalent.
add tests for effective DPS/value for short swords.  Rejigger values
so short swords have less damage and less value than longer swords.
Adjust the accuracy of some inferior versions so they are less
balanced than the normal versions.
add tests for effective DPS/value for knives.  Rejigger values
so knives have less damage and less value than short swords.
Adjust the accuracy of some knives to reflect the fact that they
are all short or very short weapons and many are stabbing weapons.
Kitchen and utility knives are also not balanced for combat.
@mlangsdorf mlangsdorf force-pushed the melee_validation_3 branch from 96d77b5 to c66679b Compare June 8, 2020 20:21
@ZhilkinSerg ZhilkinSerg merged commit 2d0c6a9 into CleverRaven:master Jun 9, 2020
@mlangsdorf mlangsdorf deleted the melee_validation_3 branch June 9, 2020 13:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Code: Tests Measurement, self-control, statistics, balancing. Melee Melee weapons, tactics, techniques, reach attack
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants