So I’m trying to incorporate GAS into a prototype turn based style game, think X-COM. I’m currently trying to figure out how to do what is traditionally thought of as duration based actions like HOT, DOT, Cool-downs, and Buffs but in terms of turn based. The Gameplay Abilities System’s Effect has Instant
, Infinite
, and Has Duration
Duration Policies, but what is needed for a Turn based game is something like Has Turns
. For Example, Adding a Damage Over Time should inflict damage at the beginning of each turn for x turns, not every x seconds.
So there are a few different ways to think about this:
-
Gameplay Ability System wasn’t meant for turn based games and should be avoided. If so, then I’m going to use it anyways because literally everything else has benefit and it’s going to suck not being able to use duration/turn based effects.
-
Is there a way to extend GAS to have and honor a
Has Turns
duration policy? Has anyone done this? -
Are there other ways to do turn based stuff within existing GAS infrastructure? For example, does it make sense to:
a. Have duration based effects beInstant
orIndefinite
but somehow refreshed every turn for so many turns by some other GAS mechanic?
b. Or could I use aHas Duration
policy but with some Custom Calculation Class logic to accommodate it?
c. Or maybe go with a very frequent (100ms maybe)Has Duration
but with logic wrapped in a DoOnce that gets reset every turn? -
Or is this a forking situation? Or rather, turning off the plugin and porting the GAS code directly into project + replacing duration logic with turn logic.