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

Mirror: Simplify DoAfterArgs behavior for movement and distance checks #272

Conversation

SimpleStation14
Copy link
Member

Mirror of PR #25226: Simplify DoAfterArgs behavior for movement and distance checks from space-wizards space-wizards/space-station-14

362d56981fd7654f6ebec36f16cc8fabdd04b6a7

PR opened by nikthechampiongr at 2024-02-14 14:26:34 UTC


PR changed 75 files with 158 additions and 229 deletions.

The PR had the following labels:

  • Needs Discussion
  • Status: Needs Review

Original Body

fixes #25113

About the PR

This pr makes it so that doafter checks for movement uses a single threshold, and with 2 bools to control whether it is checked and whether weightless movement is ignored.

It also makes doafters checks whether someone can actually interact with whatever they are trying to interact with.

Why / Balance

I was asked to make these changes to the doafter system on discord.

I could only test this by running 2 clients at the same time, and stunning one while going on the other to try to do stuff like cuff them, heal them, etc. Obviously this testing is not very extensive but I can't do much locally. If this gets merged we can just adjust the value if needed if it's too forgiving, or too harsh.

Technical details

Whether a doafter breaks on movement is now decided by BreakOnMove for both the target(if any) and the user.
If BreakOnWeightlessMove is set to false(true by default) then this check will be skipped when the user is weightless.

The shareddoaftersystem uses InRangeUnobstructed to determine whether the distance between the user and the target or between the user and their tool is acceptable.

It should be noted that some systems took advantage of the ability to determine whether to check either the user or the target for movement. This is no longer possible under this pr.

Breaking Changes

All Doafters now check for distance by default.

The default movement threshold is now 0.3f instead of 0.1f

Media

  • I have added screenshots/videos to this PR showcasing its changes ingame, or this PR does not require an ingame showcase

Changelog

no cl no fun

@SimpleStation14 SimpleStation14 added the Pull Request Mirror Mirrors a PR from another Repo. Automatically applied by mirror bot label Apr 22, 2024
@SimpleStation14 SimpleStation14 marked this pull request as draft May 4, 2024 21:12
@VMSolidus VMSolidus marked this pull request as ready for review May 9, 2024 05:02
@VMSolidus
Copy link
Member

Actually we CAN'T take this PR. It is fundamentally incompatible with psionic systems, and the in progress psionic rework. This is a strictly negative code PR.

@VMSolidus VMSolidus closed this May 9, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Pull Request Mirror Mirrors a PR from another Repo. Automatically applied by mirror bot
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants