I’m just trying to get a handle on how the GameplayAbility system works and was wondering if I could get a few pointers (I know it’s in a beta state at the moment, but the sooner I figure this stuff out the better).
So I have an ACharacter class with a UAbilitySystemComponent, and have all of the input mapping set up. With a simple blueprint (derived from UGameplayAbility) I successfully tested printing out a string when the ability is triggered.
So what I’d like to do next is give the player a speed boost for a limited time, say 5 seconds… but I’m not sure about the best way to approach this from C++. I’ve created a ‘SpeedIncrease’ class derived from UGameplayAbility, and am overriding things like CanActivateAbility, CheckCost, ActivateAbility etc, so it’s pretty easy to tell when the ability needs to trigger (and whether the player has enough ‘action points’ to trigger said ability).
But what should I be using to implement the 5 second speed boost? Is that what GameplayEffects are designed to handle? The UGameplayAbility doesn’t seem to ‘tick’ so it’s probably not the best place to keep a timer
Thanks for the advice!