-
Notifications
You must be signed in to change notification settings - Fork 4.1k
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
Rework grabs (most of them, at any rate) #64999
Conversation
Spell checker encountered unrecognized words in the in-game text added in this pull request. See below for details. Click to expand
This alert is automatically generated. You can simply disregard if this is inaccurate, or (optionally) you can also add the new words to |
Would it help for me to give you a list? Almost everything is using teeth. Only exceptions are these three zombies and their evolutions: mon_zerizinosaurus mon_zothronychus mon_zanzu . If you find it easier to give them all the same I'm happy to adjust later, those three could also easily grab with a bite. |
Okay, I can work with that - I'll probably eyeball grab strength from the weight but it should be a start. |
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
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.
I don't understand the error you're getting, but all of the DinoMod content looks correct to me. Well done!
Summary
Features "Unhardcode and rework grabs, ranged pulls"
Purpose of change
Hardcode = bad, mattacks = good
Opens up grabs and ranged pulls for JSON monster attacks, and reworks how grabs work.
Describe the solution
GRAB
will be treated as a grab for movement/breakage purposesGRAB
and introducedgrab_data
for mattack(JSON) monster attacks, allowing you to define e.g. pull data, grab strength, dedicated grab effects and messagesRANGED_PULL
grab_data
(defaults to 75% of the puller's weight)MF_GRABS
for automatically grabbing on attack (it still handles monster descriptions, for now)TODO:
NOT touched (for now) are
GRAB_DRAG
andNURESEBOT
attacks, this is pretty big already and I'm still missing 1K lines of JSONDescribe alternatives you've considered
Break this up, but the meat of the changes is the flagification of grabs and the rest doesn't really lend itself to chunking it (other than the actual pull code, but that's like 100 lines).
Allow more grabs per limb, but the dedicated removal code can't deal with that until effect sources track monsters.
Allow reducing the effect intensity on a "partial" success on grab break.
Different calcs, different scaling, different everything - I'm open to suggestions on the mathy front, as always.
Testing
Did some live testing on all functions.
Added a unit test for grab break stats, and reworked the suffocation test with the new changes (including wall crushing) in mind.
More to come
Additional context
Unit tests check for a Day1 skill 0 char and a "lategame" unarmed 8+Brawling+Grab break one, both at 8 STR agains 1/3 weak/mid-strength/max-strength grabs (20/50/100, corresponding to a base zombie, a Tier 2 grabber, and a Tier 3 grabber respectively).
The results are documented in the tests itself, relevant excerpts
Monster attack changes