Presently, the TRB.Data.spells object and its derivatives are fairly consistent but still unstructured data. This leads to problems when passing a spell into a method as we can't be certain all of the right properties are present or set. Additionally, many functions in the TRB.Functions.Spell namespace could be moved to being methods on a new TRB.Classes.SpellBase or decendant object instead.
[x] Core classes/logic moved
[x] Base Class
[x] Threshold
[x] Combo Points
[x] Combo Point + Threshold
[x] Healer specific implementations
[x] Demon Hunter
[x] Druid
[x] Evoker
[x] Hunter
[x] Monk
[x] Paladin
[x] Priest
[x] Rogue
[x] Shaman
[x] Warrior
Extra bits to explore (maybe separate issues?)
[x] Use GetSpellPowerCost() for all spenders instead of having hardcoded resource values.
There may need to be some exceptions.
Check performance impact on how frequently this needs to be run/updated. Will every frame be OK? Does it need to be run based off the gain/loss of a buff for specific spells (see: Balance Druids)?
Presently, the
TRB.Data.spells
object and its derivatives are fairly consistent but still unstructured data. This leads to problems when passing aspell
into a method as we can't be certain all of the right properties are present or set. Additionally, many functions in theTRB.Functions.Spell
namespace could be moved to being methods on a newTRB.Classes.SpellBase
or decendant object instead.Extra bits to explore (maybe separate issues?)
GetSpellPowerCost()
for all spenders instead of having hardcoded resource values.