Add Standard Combat Test mod for better monster balance testing
Summary
Mods "Add standard combat test mod"
Purpose of change
Eyeballing monster balance can be hard, and playtesting tends to be very variable between contributors when it comes to test character loadouts and such. This adds some baseline characters to help bring everybody onto the same page.
Describe the solution
Add the Standard combat test suite misc mod, consisting of (for now) three scenarios with one profession each:
- Evacuee, spawning a set of improvised weapons (makeshift machete, pipe mace, knife spear, and a Glock 17) and allowing the
Day1profession wearing the standard Evacuee loadout and no skills - Scavenger, spawning a set of lootable/non-forged weapons ( Fire axe, ~~Shigell~~ ~~Shilleg~~ bonky stick, combat knife, and an AR-15) and allowing the
Midgameprofession with 4 in all skills and wearing a gambeson, turnout pants, combat boots, a ballsitic vest with plates and tactical helmet/gloves - Survivor, spawning high-end weapons (nodachi, broadsword, mace, lucerne hammer, rapier, pike, Barrett), and allowing the
Lategameprofession with 8 in all combat skills and wearing nomad plate, Hub greaves/braces, a nomad bodyglove, combat boots and high steel helm/gauntlets.
Describe alternatives you've considered
Testing
Loads, gear and armor spawns as intended.
Additional context
I haven't really kept up with the armor meta lately, so if anything seems off on the loadouts let me know. If this gets established we can start asserting rules like "a midgame enemy beats a day1 toon 10/10 times" or whatever, and the melee portion of the test would probably be doable as a unit test if somebody codey has the inclination for that.
Spell checker encountered unrecognized words in the in-game text added in this pull request. See below for details.
Click to expand
- A set of standard character loadouts to facilitate objective monster testing. Disables all but the test scenarios.
- Heavy (survivor pneumatic) post-cataclysm gear, excluding rare lootables.
- Standard lategame combat test area
- Standard midgame combat test area
- Starter evacuee gear, no skills - probably not going to have a good time.
This alert is automatically generated. You can simply disregard if this is inaccurate, or (optionally) you can also add the new words to tools/spell_checker/dictionary.txt so they will not trigger an alert next time.
Is it possible to use it in autotests?
I could see something built on it as an on-demand test like the monfaction matrix, but I'm not even going to attempt hooking it up. I don't see these as an automated tests unless we're talking very abstracted cases ("a zombie kills an unarmed survivor") to check if any melee or other changes break them.
To fix the basic build failure allowed scenario blacklists to overwrite each other, leaving a debug.log message. Tested with Innawoods + Backrooms locally, worked without a hitch.
Will the error still show for players? Because if it makes the error silent I think it's a problem
The problem with using a red debugmsg for it is any of those triggering will fail the test automatically. The debuglog felt like an acceptable compromise in that regard.
But no one looks at the log, so without the errors we're missing the thing that tells players they messed up.
Basically the options I see are:
- Disable every mod using a scenario blacklist from the
all-modstest run: pretty sure unacceptable since that will mean no total conversion mod gets tested - Don't use a scenario blacklist in this, but the entire point of this exercise is to go "use these loadouts", not "aight, first choose Scenario X, Y or Z"
- Make some tests ignore debug messages: even if I dared touch that code "treating result as failure because of errors logged on load" exists for a reason, like catching JSON validation errors that don't get explicitly tested
- Adding an easily-accessible log to it, so that if somebody loads up Innawoods before Backrooms and wonders why they can't start in the wilderness and opens a bug report it's easily solvable what the problem is
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions. Please do not 'bump' or comment on this issue unless you are actively working on it. Stale issues, and stale issues that are closed are still considered.