-
Notifications
You must be signed in to change notification settings - Fork 4.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
Grab fixes and drag overhaul #65774
Grab fixes and drag overhaul #65774
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 |
Overall logic makes sense to me |
You have a conflict now, sorry I thought this was already merged lol |
Can you also check whether this fixes #64918? |
Confirmed fixed |
Summary
Features "Unhardcode dragging, grab fixes"
Purpose of change
Unhardcode
GRAB_DRAG
and move it over to the new grab mattacks.Fix some problems with the grab rework.
Describe the solution
grab_data
:exclusive_grab
- handles attempting to remove any existing grabs not originating from the base mobrespect_seatbelts
- if the pull/drag in question is disabled by the target (character) being on a seat with a seatbelt partdrag_distance
- number of tiles the attack will drag youdrag_deviation
- squiggliness of the drag pathdrag_movecost_mod
- modifier on the movecost of the entire drag movementdrag_grab_break_distance
- number of drag movements between automatic grab break attempts by the targetDF_MONMOVE
debug mode filter because those are always handy (pretty barebones for now, but I didn't need much more)TODO:
Describe alternatives you've considered
Use
dragging
to flip monster pathing to drag you away on subsequent moves, but ran into dragged_enemy being character-only and monsters not having unique ids among other things.Advance turns or burn moves for longer drags - this would make them feel less jank, but the followup attack cycle is close enough and leaves you more options to resist.
Testing
Got dragged a lot by things, worked about right.
Got a nursebot to operate on a bionic survivor. Also got repeat removals (in different sittings) after fixing the grabbing removal.
Additional context
Drags are set up with the following logic: initial
grab_drag
attack as an exclusive grab disallowing previous grabs that drags, and a low-cooldowndrag_followup
attack that requires an existing grab by the monster to trigger (and tries removing all other grabs).