I can update the answer as we go, just from a How To Do Spells perspective:
- I would have a Spell class as a base and then make my own unique Spells by inheritance.
- I would then make sure the Spells on there own can function the way we want them to.
- Then you can give your player the functionality of the spell.
- There are different ways, such as via UI like in MMOs you have a spell bar, or assign a spell to a certain button press like Weapon Wheels, etc…
- Once you have that connection, you can pull from the owning player the variables you want for the spell, like DMG mod, Magic Buff, etc…
- The logic for what the number does should reside within the Spell.
I know this is very basic and abstract, I am just trying to understand your methods and this is how I would go about it first time.