Due to a lack of autoCombatant data for followers from the game's API, role based selection of auto-attack spellID is an optimal solution; however, there are some cases where a using a follower's role to determine the auto-attack spellID would result in the wrong spellID being selected.
The list of cases where this occurs can be obtained by filtering GarrAutoCombatant for:
AttackSpellID=11 & Role=2|3|4
AttackSpellID=15 & Role=1|5
(Cases where AttackSpellID or Role are any other values can be ignored, as this will be environments, encounters, or unused test followers)
The follower id for each can be obtained by doing a foreign key search of GarrAutoCombatant::ID as GarrFollower::AutoCombatantID, and noting the corresponding GarrFollower::ID
I've decided to handle this using the combination of the follower id and role as a key, with the value being the correct spellID. This means if the role ever changes, then the override will not be used. It also allows me to more directly see which followers are actually being overridden.
Below is the current implementation of this.
{
-- ["id-role"] = spellID
["1212-4"] = 11, -- [UNUSED] [1212] Anjali, with role [4] Heal/Support, has [11] Auto Attack
["1239-2"] = 11, -- [UNUSED] [1239] Venthyr Soulcaster, with role [2] Ranged (Physical), has [11] Auto Attack
["1243-2"] = 11, -- [UNUSED] [1243] Maldraxxus Plaguesinger, with role [2] Ranged (Physical), has [11] Auto Attack
["1248-2"] = 11, -- [UNUSED] [1248] Venthyr Soulcaster, with role [2] Ranged (Physical), has [11] Auto Attack
["1249-2"] = 11, -- [UNUSED] [1249] Venthyr Soulcaster, with role [2] Ranged (Physical), has [11] Auto Attack
["1258-4"] = 11, -- [1258] Mikanikos, with role [4] Heal/Support, has [11] Auto Attack
["1311-4"] = 11, -- [1311] Ashraka, with role [4] Heal/Support, has [11] Auto Attack
["1314-2"] = 11, -- [UNUSED] [1314] Maldraxxus Plaguesinger, with role [2] Ranged (Physical), has [11] Auto Attack
["1315-2"] = 11, -- [UNUSED] [1315] Maldraxxus Plaguesinger, with role [2] Ranged (Physical), has [11] Auto Attack
["1323-2"] = 11, -- [1323] Venthyr Soulcaster, with role [2] Ranged (Physical), has [11] Auto Attack
["1324-2"] = 11, -- [1324] Maldraxxus Plaguesinger, with role [2] Ranged (Physical), has [11] Auto Attack
["1327-4"] = 11, -- [1327] Ella, with role [4] Heal/Support, has [11] Auto Attack
["1338-4"] = 11, -- [1338] Elwyn, with role [4] Heal/Support, has [11] Auto Attack
["1340-4"] = 11, -- [UNUSED] [1340] Ella, with role [4] Heal/Support, has [11] Auto Attack
["1342-4"] = 11, -- [1342] Cromas the Mystic, with role [4] Heal/Support, has [11] Auto Attack
["1345-4"] = 11, -- [1345] Chachi the Artiste, with role [4] Heal/Support, has [11] Auto Attack
}
For verification with VP (modified), this is implemented as:
{[57]=0, [181]=0, [341]=0, [777]=0, [1213]=0, [1225]=0, [1237]=0, [1257]=0, [1301]=0} -- #Mod: Improve auto attack overrides
-- #Bug: [1212] Anjali, with role [4] Heal/Support, has [11] Auto Attack [UNUSED]
-- #Fix: Add [57]=0 [UNUSED]
-- #Bug: [(1239,1248,1249,)1323] Venthyr Soulcaster, with role [2] Ranged (Physical), has [11] Auto Attack [UNVERIFIED]
-- #Fix: Add [181]=0 [UNVERIFIED]
-- #Bug: [1258] Mikanikos, with role [4] Heal/Support, has [11] Auto Attack [VERIFIED]
-- #Fix: Add [341]=0 [VERIFIED]
-- #Bug: [1311] Ashraka, with role [4] Heal/Support, has [11] Auto Attack [UNVERIFIED]
-- #Fix: Add [777]=0 [UNVERIFIED]
-- #Bug: [(1243,1314,1315,)1324] Maldraxxus Plaguesinger, with role [2] Ranged (Physical), has [11] Auto Attack [UNVERIFIED]
-- #Fix: Add [1213]=0 [UNVERIFIED]
-- #Bug: [1338] Elwyn, with role [4] Heal/Support, has [11] Auto Attack [VERIFIED]
-- #Fix: Add [1225]=0 [VERIFIED]
-- #Bug: [1327(,1340)] Ella, with role [4] Heal/Support, has [11] Auto Attack [VERIFIED]
-- #Fix: Add [1237]=0 [VERIFIED]
-- #Bug: [1342] Cromas the Mystic, with role [4] Heal/Support, has [11] Auto Attack [VERIFIED]
-- #Fix: Add [1257]=0 [VERIFIED]
-- #Bug: [1345] Chachi the Artiste, with role [4] Heal/Support, has [11] Auto Attack [UNVERIFIED]
-- #Fix: Add [1301]=0 [UNVERIFIED]
Due to a lack of
autoCombatant
data for followers from the game's API, role based selection of auto-attackspellID
is an optimal solution; however, there are some cases where a using a follower'srole
to determine the auto-attackspellID
would result in the wrongspellID
being selected.The list of cases where this occurs can be obtained by filtering GarrAutoCombatant for:
AttackSpellID=11
&Role=2|3|4
AttackSpellID=15
&Role=1|5
AttackSpellID
orRole
are any other values can be ignored, as this will be environments, encounters, or unused test followers) The followerid
for each can be obtained by doing a foreign key search ofGarrAutoCombatant::ID
asGarrFollower::AutoCombatantID
, and noting the correspondingGarrFollower::ID
I've decided to handle this using the combination of the follower
id
androle
as a key, with the value being the correctspellID
. This means if therole
ever changes, then the override will not be used. It also allows me to more directly see which followers are actually being overridden.Below is the current implementation of this.
For verification with VP (modified), this is implemented as: