I didn't realize it until just now, but a lot of these AAs are already being utilized using the
aa_effects table in the database, so as a result, we're double dipping the benefit.
They use the ZoneDatabase::FillAAEffects() function in zone/AA.cpp to apply any stats, etc, basically as a spell without any stacking issues. So, it looks like a lot of these AA checks will need to be taken from the source and integrated into the DB, then any missing spell effects will just need to be added into the source.
Anyways, mainly wanted to make note of this so I didn't forget...
Edit: actually, now I'm confused, because the source indicates it's just for the client's benefit:
Code:
/*
Every AA can send the client effects, which are purely for client side effects.
Essentially it's like being able to attach a very simple version of a spell to
Any given AA, it has 4 fields:
skill_id = spell effect id
slot = ID slot, doesn't appear to have any impact on stacking like real spells, just needs to be unique.
base1 = the base field of a spell
base2 = base field 2 of a spell, most AAs do not utilize this
example:
skill_id = SE_STA
slot = 1
base1 = 15
This would if you filled the abilities struct with this make the client show if it had
that AA an additional 15 stamina on the client's stats
*/