I am trying to program Fantasy Flights boardgame "Descent - Journeys in the Dark", but I have hit a wall when dealing with implementing abilities, which are a crucial part of the game.
Abilities are used alot of different places, but are similar most of the time.
For a hero an ability could be:
At the start of his turn, Varikas the Dead recovers 1 fatigue
I have written monsters with abilities like this: Damage 2/Command
Equipment/Treasures look like this: When(TakingDamage):Exhaust&CancelDamage:2, When(MakingAttack(Type=Magic)):Gain:Surge 1 and When(Equipped(State=StartOfTurn))):Discard&Hero.Healt=Hero.HealthMax&Hero.Fatigue=Hero.FatigueMax
My idea is to maybe have some ability factory that will build an ability by reading the string formats, but I do not know how to implement them as a whole, and I am therefor turning to you.
Do any of you have any experience doing stuff like this, maybe when making D&D, Magic the Gathering, or maybe Descent?
Kind Regards Thediabloman