Inherits from GA_AbilityWithWidget to handle the HUD display buttons. This ability is Activated by the InputTag.Weapon.ADS tag, an Asset Tag of Ability.Type.Action.ADS that grants the Event.Movement.ADS tag. While active it is Local predicted, meaning it runs on the client immediately, then the server syncs to catch up. On Activation: Applies a custom camera mode to narrow the Field of View(FOV). Caches and overrides the character's walk speed. Because the ability is locally predicted, this will run on the owning client and server, then replicate to non-local clients. Applies a temporary input mapping context, overriding the movement inputs to one with a lower multiplier. By decreasing the input magnitude, any further movement inputs produce a lower acceleration and are replicated to the server with the lower acceleration value, forcing the character to walk while aiming. For the local player, updates the UI and plays the 'aim started' sound. Waits until the input button is released, and ends the ability once it does. On End Ability: Clears the custom camera mode. If locally controlled, the UI updates and plays the 'aim ended' sound. Restores the controlled character's walk speed and removes the input mapping context to restore normal movement speed.