-
Notifications
You must be signed in to change notification settings - Fork 3.4k
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
Remove Contact Slowdown when Weightless or in the Air #33299
base: master
Are you sure you want to change the base?
Conversation
Even if this buffs flyers it doesn't make sense to be slowed by glue or affected by ice (the latter probably needs to be checked out here or another PR) |
I've done some testing with ice and it seems to be a non-issue; it does not affect entities that are weightless or in the air. |
@@ -81,6 +83,11 @@ private void MovementSpeedCheck(EntityUid uid, SpeedModifiedByContactComponent c | |||
if (!EntityManager.TryGetComponent<PhysicsComponent>(uid, out var physicsComponent)) | |||
return; | |||
|
|||
// entities that are weightless, i.e. no gravity, should not be affected by contact slowdowns | |||
// entities that are in the air, i.e. flying mobs, should not be affected by contact slowdowns | |||
if (_gravity.IsWeightless(uid) || physicsComponent.BodyStatus == BodyStatus.InAir) |
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.
Ok we can have full-tile meat kudzu, rhat should slowdown in weightless state too
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've gone ahead and fixed this interaction. In order to facilitate future code extensibility, I've added a new component that can be applied to entities that should still apply their contact slowdowns to airborne mobs. Let me know if you think this is fine or should be done in another way.
About the PR
Removes the application of contact slowdowns from puddles (i.e. glue, slime, etc.) when entities are weightless or in the air.
Why / Balance
Currently, contact slowdowns from puddles (i.e. glue, slime, etc.) apply even when entities are weightless or in the air, impacting both players under zero gravity and flying mobs such as Space Dragons and Space Carp. It does not make sense for ground-based slowdowns to affect weightless or flying entities.
I recognize that there exists minor balance implications as this PR slightly buffs the movement of all flying mobs, as well as reduces the utility of space glue in zero gravity situations, but I believe that such buffs are sufficiently minor to warrant a change that more intuitively aligns contact slowdowns with in-game physics.
Technical details
Media
Weightless.mp4
FlyingMobs.mp4
Requirements
Breaking changes
Changelog
🆑 Vexerot