More Statistics

Strength
This value could create a more diverse variation to the damage of physical melee attacks. You could do this by checking if the ability has melee range and the physical effect, and from that, any damage done could get a multiplier of a percentile related to this stat; for example 10 strength gives a multiplier of 1.1 whilst a strength of 5 would give 1.05

Agility
This value could create a more diverse variation to the cast time and even cooldown time. You could do this by checking these same stats and reducing it by either a second per point in agility or by percentile.

Defence
This value could be equivalent to an Armour Rating where it reduces the value of damage by said value. A simple calculation of Incoming Damage - Defence = Damage Taken, whilst also setting a limiter using an if statement such as; If Damage Taken = <0 then Damage Taken = 0, since having a negative value could end up healing the target rather than damaging them.

Varied Resistances
Adding to the “Defence” stat above, one could split this off using the same instance, but then checking via an if statement what the effect type is, so for example; physical resistance could be for physical damage, fire resistance for fire damage, etcetera. This can all be done by checking before hand the ability has a physical or fire effect using a simple if statement.