I was looking through the files trying to find any reference to forced walking, but couldn't. Is this lacking implementation or did I just miss it? If not, it'll need to be added to the sticky list, methinks.

Whether it exists or not, how should it be implemented?
Should mobiles have m_ForcedWalk and ForcedWalk properties that are used elsewhere?
PlayerMobiles would simply need to be forced to walk somehow.
BaseCreatures would need their TransformMoveDelay (in BaseAI) to be doubled and prevented from using their run animation.

related issues:
AI should probably have a whole module dedicated to deciding whether a creature runs:
  • AI already checks at which range a creature should be running towards its target, so this should be included in the module. (Ofc, it also causes monsters to desync and apparently warp up next to the player, making maintaining distance frustrating)
  • Stealthing creatures are revealed if they use their run animation, so what conditions should they stop walking and break out of stealth to run? (Assumably if chasing a target who is more than perception range away)
  • Under what conditions should a stealthing creature have its movement halved in the same way as ForcedWalk?
  • Should creatures have a 'CantRun' property that prevents them from ever running for any reason? (Could simply be a virtual flag rather than a serialized property) Should these creatures be subject to any speed penalties from being forced to walk?
  • Should any speed penalties stack with ReduceSpeedWithDamage?
  • Should dead pets be subject to ReduceSpeedWithDamage?
  • Should IsSubdued cause ForcedWalk?

Also, is there a significance in Mobile.cs to the _Sleep and _SleepTimer properties not starting with m_?
 
Last edited:
Back