Code format

This commit is contained in:
2025-05-15 19:35:43 +02:00
parent 1d5284bd81
commit ac4de9a0ab
9 changed files with 960 additions and 969 deletions

View File

@@ -1,17 +1,17 @@
aura_env.throttleTime = 10
aura_env.sellPriceThresholds = {
[168446] = 5000 * 100 * 100; -- Accord of Critical Strike
[168447] = 5000 * 100 * 100; -- Accord of Haste
[168448] = 5000 * 100 * 100; -- Accord of Mastery
[168449] = 5000 * 100 * 100; -- Accord of Versatility
[168592] = 4500 * 100 * 100; -- Oceanic Restoration
[168496] = 4500 * 100 * 100; -- Force Multiplier
[168593] = 4500 * 100 * 100; -- Machinist's Brilliance
[168598] = 4500 * 100 * 100; -- Naga Hide
[168446] = 5000 * 100 * 100, -- Accord of Critical Strike
[168447] = 5000 * 100 * 100, -- Accord of Haste
[168448] = 5000 * 100 * 100, -- Accord of Mastery
[168449] = 5000 * 100 * 100, -- Accord of Versatility
[168592] = 4500 * 100 * 100, -- Oceanic Restoration
[168496] = 4500 * 100 * 100, -- Force Multiplier
[168593] = 4500 * 100 * 100, -- Machinist's Brilliance
[168598] = 4500 * 100 * 100, -- Naga Hide
}
aura_env.buyPriceThresholds = {
[152576] = 5 * 100 * 100; -- Tidesrpay Linen
[152877] = 500 * 100 * 100; -- Veiled Crystal
[152576] = 5 * 100 * 100, -- Tidesrpay Linen
[152877] = 500 * 100 * 100, -- Veiled Crystal
}

View File

@@ -1,26 +1,26 @@
aura_env.debug = true
aura_env.filter = {
[1] = true, --Gold
[2] = true, --Azerite
[3] = true, --War resources
[4] = true, --Residuum
[5] = true, --Manapearls
[6] = true, --Mounts
[7] = true, --High ilvl
[8] = false, --Herbs
[9] = true, --Cooking
[10] = true, --Cloth
[11] = false, --Metal & Stone
[12] = true, --Gold filter greys
[13] = true, -- >1 && <4 quality items, no gear
[14] = true, --Quest items
[15] = true, --All greys
[16] = true, --Whitelist
[17] = true, --Quest items (different filter)
[18] = true, --Class aproperiate >2 items
[19] = true, --Jewelery >2 quality
[20] = true, --Additional mount filter
[21] = true, --Tradeskill // Elemental
[1] = true, --Gold
[2] = true, --Azerite
[3] = true, --War resources
[4] = true, --Residuum
[5] = true, --Manapearls
[6] = true, --Mounts
[7] = true, --High ilvl
[8] = false, --Herbs
[9] = true, --Cooking
[10] = true, --Cloth
[11] = false, --Metal & Stone
[12] = true, --Gold filter greys
[13] = true, -- >1 && <4 quality items, no gear
[14] = true, --Quest items
[15] = true, --All greys
[16] = true, --Whitelist
[17] = true, --Quest items (different filter)
[18] = true, --Class aproperiate >2 items
[19] = true, --Jewelery >2 quality
[20] = true, --Additional mount filter
[21] = true, --Tradeskill // Elemental
}
aura_env.ilvlFilter = 200
aura_env.goldFilter = 0.5
@@ -28,353 +28,367 @@ aura_env.goldFilter = aura_env.goldFilter * 10000
aura_env.throttleSell = false
aura_env.whitelist = {
["Pygmy Suckerfish"] = 1,
["Drakkari Offerings"] = 1,
["Deepcoral Pod"] = 1,
["Hardened Spring"] = 1,
["Machined Gear Assembly"] = 1,
["Tempered Plating"] = 1,
["Hefty Glimmershell"] = 1,
["Fresh Meat"] = 1,
["Wood"] = 1,
["Pygmy Suckerfish"] = 1,
["Drakkari Offerings"] = 1,
["Deepcoral Pod"] = 1,
["Hardened Spring"] = 1,
["Machined Gear Assembly"] = 1,
["Tempered Plating"] = 1,
["Hefty Glimmershell"] = 1,
["Fresh Meat"] = 1,
["Wood"] = 1,
["Gloom Dust"] = 1,
["Veiled Crytal"] = 1,
["Coalescing Visions"] = 1,
["Echoes of Ny'alotha"] = 1,
["Corrupted Mementos"] = 1,
["Gloom Dust"] = 1,
["Veiled Crytal"] = 1,
["Coalescing Visions"] = 1,
["Echoes of Ny'alotha"] = 1,
["Corrupted Mementos"] = 1,
["Blood of Sargeras"] = 1,
["Primal Sargerite"] = 1,
["Blood of Sargeras"] = 1,
["Primal Sargerite"] = 1,
["Chain Ignitercoil"] = 1,
["Galvanic Oscillator"] = 1,
["Corrupted Memento"] = 1,
["Chain Ignitercoil"] = 1,
["Galvanic Oscillator"] = 1,
["Corrupted Memento"] = 1,
}
aura_env.sellWhitelist = {
["Blacksmith Hammer"] = 1,
["Endless Tincture of Renewed Combat"] = 1,
["Mr. Munchykins"] = 1,
["Arclight Spanner"] = 1,
["Runeblade of Baron Rivendare"] = 1,
["Blacksmith Hammer"] = 1,
["Endless Tincture of Renewed Combat"] = 1,
["Mr. Munchykins"] = 1,
["Arclight Spanner"] = 1,
["Runeblade of Baron Rivendare"] = 1,
}
aura_env.toSell = {}
aura_env.getequipID = function(equip)
if equip == "INVTYPE_HEAD" then return 1
elseif equip == "INVTYPE_NECK" then return 2
elseif equip == "INVTYPE_SHOULDER" then return 3
elseif equip == "INVTYPE_BODY" then return 4
elseif equip == "INVTYPE_CHEST" or equip == "INVTYPE_ROBE" then return 5
elseif equip == "INVTYPE_WAIST" then return 6
elseif equip == "INVTYPE_LEGS" then return 7
elseif equip == "INVTYPE_FEET" then return 8
elseif equip == "INVTYPE_WRIST" then return 9
elseif equip == "INVTYPE_HAND" then return 10
elseif equip == "INVTYPE_CLOAK" then return 15
elseif equip == "INVTYPE_WEAPON" or equip == "INVTYPE_WEAPONMAINHAND" or equip == "INVTYPE_2HWEAPON" then return 16
elseif equip == "INVTYPE_SHIELD" then return 17
else return nil end
if equip == "INVTYPE_HEAD" then
return 1
elseif equip == "INVTYPE_NECK" then
return 2
elseif equip == "INVTYPE_SHOULDER" then
return 3
elseif equip == "INVTYPE_BODY" then
return 4
elseif equip == "INVTYPE_CHEST" or equip == "INVTYPE_ROBE" then
return 5
elseif equip == "INVTYPE_WAIST" then
return 6
elseif equip == "INVTYPE_LEGS" then
return 7
elseif equip == "INVTYPE_FEET" then
return 8
elseif equip == "INVTYPE_WRIST" then
return 9
elseif equip == "INVTYPE_HAND" then
return 10
elseif equip == "INVTYPE_CLOAK" then
return 15
elseif equip == "INVTYPE_WEAPON" or equip == "INVTYPE_WEAPONMAINHAND" or equip == "INVTYPE_2HWEAPON" then
return 16
elseif equip == "INVTYPE_SHIELD" then
return 17
else
return nil
end
end
aura_env.skills = {
--Warrior
[1] = {
--Armor Skills
["Cloth"] = 0,
["Leather"] = 0,
["Mail"] = 0,
["Plate"] = 1,
["Shields"] = 1,
--Weapon Skills
["One-Handed Axes"] = 1,
["Two-Handed Axes"] = 1,
["Bows"] = 1,
["Guns"] = 1,
["One-Handed Maces"] = 1,
["Two-Handed Maces"] = 1,
["Polearms"] = 1,
["One-Handed Swords"] = 1,
["Two-Handed Swords"] = 1,
["Warglaives"] = 1,
["Staves"] = 1,
["Fist Weapons"] = 1,
["Daggers"] = 1,
["Crossbows"] = 1,
["Wands"] = 0,
},
--Paladin
[2] = {
--Armor Skills
["Cloth"] = 0,
["Leather"] = 0,
["Mail"] = 0,
["Plate"] = 1,
["Shields"] = 1,
--Weapon Skills
["One-Handed Axes"] = 1,
["Two-Handed Axes"] = 1,
["Bows"] = 0,
["Guns"] = 0,
["One-Handed Maces"] = 1,
["Two-Handed Maces"] = 1,
["Polearms"] = 1,
["One-Handed Swords"] = 1,
["Two-Handed Swords"] = 1,
["Warglaives"] = 0,
["Staves"] = 0,
["Fist Weapons"] = 0,
["Daggers"] = 0,
["Crossbows"] = 0,
["Wands"] = 0,
},
--Hunter
[3] = {
--Armor Skills
["Cloth"] = 0,
["Leather"] = 0,
["Mail"] = 1,
["Plate"] = 0,
["Shields"] = 0,
--Weapon Skills
["One-Handed Axes"] = 1,
["Two-Handed Axes"] = 1,
["Bows"] = 1,
["Guns"] = 1,
["One-Handed Maces"] = 0,
["Two-Handed Maces"] = 0,
["Polearms"] = 1,
["One-Handed Swords"] = 1,
["Two-Handed Swords"] = 1,
["Warglaives"] = 0,
["Staves"] = 1,
["Fist Weapons"] = 1,
["Daggers"] = 1,
["Crossbows"] = 1,
["Wands"] = 0,
},
--Rogue
[4] = {
--Armor Skills
["Cloth"] = 0,
["Leather"] = 1,
["Mail"] = 0,
["Plate"] = 0,
["Shields"] = 0,
--Weapon Skills
["One-Handed Axes"] = 1,
["Two-Handed Axes"] = 0,
["Bows"] = 0,
["Guns"] = 0,
["One-Handed Maces"] = 1,
["Two-Handed Maces"] = 0,
["Polearms"] = 0,
["One-Handed Swords"] = 1,
["Two-Handed Swords"] = 0,
["Warglaives"] = 0,
["Staves"] = 0,
["Fist Weapons"] = 1,
["Daggers"] = 1,
["Crossbows"] = 0,
["Wands"] = 0,
},
--Priest
[5] = {
--Armor Skills
["Cloth"] = 1,
["Leather"] = 0,
["Mail"] = 0,
["Plate"] = 0,
["Shields"] = 0,
--Weapon Skills
["One-Handed Axes"] = 0,
["Two-Handed Axes"] = 0,
["Bows"] = 0,
["Guns"] = 0,
["One-Handed Maces"] = 1,
["Two-Handed Maces"] = 0,
["Polearms"] = 0,
["One-Handed Swords"] = 0,
["Two-Handed Swords"] = 0,
["Warglaives"] = 0,
["Staves"] = 1,
["Fist Weapons"] = 0,
["Daggers"] = 1,
["Crossbows"] = 0,
["Wands"] = 1,
},
--Death Knight
[6] = {
--Armor Skills
["Cloth"] = 0,
["Leather"] = 0,
["Mail"] = 0,
["Plate"] = 1,
["Shields"] = 0,
--Weapon Skills
["One-Handed Axes"] = 1,
["Two-Handed Axes"] = 1,
["Bows"] = 0,
["Guns"] = 0,
["One-Handed Maces"] = 1,
["Two-Handed Maces"] = 1,
["Polearms"] = 1,
["One-Handed Swords"] = 1,
["Two-Handed Swords"] = 1,
["Warglaives"] = 0,
["Staves"] = 0,
["Fist Weapons"] = 0,
["Daggers"] = 0,
["Crossbows"] = 0,
["Wands"] = 0,
},
--Shaman
[7] = {
--Armor Skills
["Cloth"] = 0,
["Leather"] = 0,
["Mail"] = 1,
["Plate"] = 0,
["Shields"] = 1,
--Weapon Skills
["One-Handed Axes"] = 1,
["Two-Handed Axes"] = 0,
["Bows"] = 0,
["Guns"] = 0,
["One-Handed Maces"] = 1,
["Two-Handed Maces"] = 0,
["Polearms"] = 0,
["One-Handed Swords"] = 0,
["Two-Handed Swords"] = 0,
["Warglaives"] = 0,
["Staves"] = 1,
["Fist Weapons"] = 1,
["Daggers"] = 1,
["Crossbows"] = 0,
["Wands"] = 0,
},
--Mage
[8] = {
--Armor Skills
["Cloth"] = 1,
["Leather"] = 0,
["Mail"] = 0,
["Plate"] = 0,
["Shields"] = 0,
--Weapon Skills
["One-Handed Axes"] = 0,
["Two-Handed Axes"] = 0,
["Bows"] = 0,
["Guns"] = 0,
["One-Handed Maces"] = 0,
["Two-Handed Maces"] = 0,
["Polearms"] = 0,
["One-Handed Swords"] = 1,
["Two-Handed Swords"] = 0,
["Warglaives"] = 0,
["Staves"] = 1,
["Fist Weapons"] = 0,
["Daggers"] = 1,
["Crossbows"] = 0,
["Wands"] = 1,
},
--Warlock
[9] = {
--Armor Skills
["Cloth"] = 1,
["Leather"] = 0,
["Mail"] = 0,
["Plate"] = 0,
["Shields"] = 0,
--Weapon Skills
["One-Handed Axes"] = 0,
["Two-Handed Axes"] = 0,
["Bows"] = 0,
["Guns"] = 0,
["One-Handed Maces"] = 0,
["Two-Handed Maces"] = 0,
["Polearms"] = 0,
["One-Handed Swords"] = 1,
["Two-Handed Swords"] = 0,
["Warglaives"] = 0,
["Staves"] = 1,
["Fist Weapons"] = 0,
["Daggers"] = 1,
["Crossbows"] = 0,
["Wands"] = 1,
},
--Monk
[10] = {
--Armor Skills
["Cloth"] = 0,
["Leather"] = 1,
["Mail"] = 0,
["Plate"] = 1,
["Shields"] = 1,
--Weapon Skills
["One-Handed Axes"] = 1,
["Two-Handed Axes"] = 0,
["Bows"] = 0,
["Guns"] = 0,
["One-Handed Maces"] = 1,
["Two-Handed Maces"] = 0,
["Polearms"] = 1,
["One-Handed Swords"] = 1,
["Two-Handed Swords"] = 0,
["Warglaives"] = 0,
["Staves"] = 1,
["Fist Weapons"] = 1,
["Daggers"] = 0,
["Crossbows"] = 0,
["Wands"] = 0,
},
--Druid
[11] = {
--Armor Skills
["Cloth"] = 0,
["Leather"] = 1,
["Mail"] = 0,
["Plate"] = 0,
["Shields"] = 0,
--Weapon Skills
["One-Handed Axes"] = 0,
["Two-Handed Axes"] = 0,
["Bows"] = 0,
["Guns"] = 0,
["One-Handed Maces"] = 1,
["Two-Handed Maces"] = 0,
["Polearms"] = 1,
["One-Handed Swords"] = 0,
["Two-Handed Swords"] = 0,
["Warglaives"] = 0,
["Staves"] = 1,
["Fist Weapons"] = 1,
["Daggers"] = 1,
["Crossbows"] = 0,
["Wands"] = 0,
},
--Demon Hunter
[12] = {
--Armor Skills
["Cloth"] = 0,
["Leather"] = 1,
["Mail"] = 0,
["Plate"] = 0,
["Shields"] = 0,
--Weapon Skills
["One-Handed Axes"] = 1,
["Two-Handed Axes"] = 0,
["Bows"] = 0,
["Guns"] = 0,
["One-Handed Maces"] = 0,
["Two-Handed Maces"] = 0,
["Polearms"] = 0,
["One-Handed Swords"] = 1,
["Two-Handed Swords"] = 0,
["Warglaives"] = 1,
["Staves"] = 0,
["Fist Weapons"] = 1,
["Daggers"] = 0,
["Crossbows"] = 0,
["Wands"] = 0,
},
--Warrior
[1] = {
--Armor Skills
["Cloth"] = 0,
["Leather"] = 0,
["Mail"] = 0,
["Plate"] = 1,
["Shields"] = 1,
--Weapon Skills
["One-Handed Axes"] = 1,
["Two-Handed Axes"] = 1,
["Bows"] = 1,
["Guns"] = 1,
["One-Handed Maces"] = 1,
["Two-Handed Maces"] = 1,
["Polearms"] = 1,
["One-Handed Swords"] = 1,
["Two-Handed Swords"] = 1,
["Warglaives"] = 1,
["Staves"] = 1,
["Fist Weapons"] = 1,
["Daggers"] = 1,
["Crossbows"] = 1,
["Wands"] = 0,
},
--Paladin
[2] = {
--Armor Skills
["Cloth"] = 0,
["Leather"] = 0,
["Mail"] = 0,
["Plate"] = 1,
["Shields"] = 1,
--Weapon Skills
["One-Handed Axes"] = 1,
["Two-Handed Axes"] = 1,
["Bows"] = 0,
["Guns"] = 0,
["One-Handed Maces"] = 1,
["Two-Handed Maces"] = 1,
["Polearms"] = 1,
["One-Handed Swords"] = 1,
["Two-Handed Swords"] = 1,
["Warglaives"] = 0,
["Staves"] = 0,
["Fist Weapons"] = 0,
["Daggers"] = 0,
["Crossbows"] = 0,
["Wands"] = 0,
},
--Hunter
[3] = {
--Armor Skills
["Cloth"] = 0,
["Leather"] = 0,
["Mail"] = 1,
["Plate"] = 0,
["Shields"] = 0,
--Weapon Skills
["One-Handed Axes"] = 1,
["Two-Handed Axes"] = 1,
["Bows"] = 1,
["Guns"] = 1,
["One-Handed Maces"] = 0,
["Two-Handed Maces"] = 0,
["Polearms"] = 1,
["One-Handed Swords"] = 1,
["Two-Handed Swords"] = 1,
["Warglaives"] = 0,
["Staves"] = 1,
["Fist Weapons"] = 1,
["Daggers"] = 1,
["Crossbows"] = 1,
["Wands"] = 0,
},
--Rogue
[4] = {
--Armor Skills
["Cloth"] = 0,
["Leather"] = 1,
["Mail"] = 0,
["Plate"] = 0,
["Shields"] = 0,
--Weapon Skills
["One-Handed Axes"] = 1,
["Two-Handed Axes"] = 0,
["Bows"] = 0,
["Guns"] = 0,
["One-Handed Maces"] = 1,
["Two-Handed Maces"] = 0,
["Polearms"] = 0,
["One-Handed Swords"] = 1,
["Two-Handed Swords"] = 0,
["Warglaives"] = 0,
["Staves"] = 0,
["Fist Weapons"] = 1,
["Daggers"] = 1,
["Crossbows"] = 0,
["Wands"] = 0,
},
--Priest
[5] = {
--Armor Skills
["Cloth"] = 1,
["Leather"] = 0,
["Mail"] = 0,
["Plate"] = 0,
["Shields"] = 0,
--Weapon Skills
["One-Handed Axes"] = 0,
["Two-Handed Axes"] = 0,
["Bows"] = 0,
["Guns"] = 0,
["One-Handed Maces"] = 1,
["Two-Handed Maces"] = 0,
["Polearms"] = 0,
["One-Handed Swords"] = 0,
["Two-Handed Swords"] = 0,
["Warglaives"] = 0,
["Staves"] = 1,
["Fist Weapons"] = 0,
["Daggers"] = 1,
["Crossbows"] = 0,
["Wands"] = 1,
},
--Death Knight
[6] = {
--Armor Skills
["Cloth"] = 0,
["Leather"] = 0,
["Mail"] = 0,
["Plate"] = 1,
["Shields"] = 0,
--Weapon Skills
["One-Handed Axes"] = 1,
["Two-Handed Axes"] = 1,
["Bows"] = 0,
["Guns"] = 0,
["One-Handed Maces"] = 1,
["Two-Handed Maces"] = 1,
["Polearms"] = 1,
["One-Handed Swords"] = 1,
["Two-Handed Swords"] = 1,
["Warglaives"] = 0,
["Staves"] = 0,
["Fist Weapons"] = 0,
["Daggers"] = 0,
["Crossbows"] = 0,
["Wands"] = 0,
},
--Shaman
[7] = {
--Armor Skills
["Cloth"] = 0,
["Leather"] = 0,
["Mail"] = 1,
["Plate"] = 0,
["Shields"] = 1,
--Weapon Skills
["One-Handed Axes"] = 1,
["Two-Handed Axes"] = 0,
["Bows"] = 0,
["Guns"] = 0,
["One-Handed Maces"] = 1,
["Two-Handed Maces"] = 0,
["Polearms"] = 0,
["One-Handed Swords"] = 0,
["Two-Handed Swords"] = 0,
["Warglaives"] = 0,
["Staves"] = 1,
["Fist Weapons"] = 1,
["Daggers"] = 1,
["Crossbows"] = 0,
["Wands"] = 0,
},
--Mage
[8] = {
--Armor Skills
["Cloth"] = 1,
["Leather"] = 0,
["Mail"] = 0,
["Plate"] = 0,
["Shields"] = 0,
--Weapon Skills
["One-Handed Axes"] = 0,
["Two-Handed Axes"] = 0,
["Bows"] = 0,
["Guns"] = 0,
["One-Handed Maces"] = 0,
["Two-Handed Maces"] = 0,
["Polearms"] = 0,
["One-Handed Swords"] = 1,
["Two-Handed Swords"] = 0,
["Warglaives"] = 0,
["Staves"] = 1,
["Fist Weapons"] = 0,
["Daggers"] = 1,
["Crossbows"] = 0,
["Wands"] = 1,
},
--Warlock
[9] = {
--Armor Skills
["Cloth"] = 1,
["Leather"] = 0,
["Mail"] = 0,
["Plate"] = 0,
["Shields"] = 0,
--Weapon Skills
["One-Handed Axes"] = 0,
["Two-Handed Axes"] = 0,
["Bows"] = 0,
["Guns"] = 0,
["One-Handed Maces"] = 0,
["Two-Handed Maces"] = 0,
["Polearms"] = 0,
["One-Handed Swords"] = 1,
["Two-Handed Swords"] = 0,
["Warglaives"] = 0,
["Staves"] = 1,
["Fist Weapons"] = 0,
["Daggers"] = 1,
["Crossbows"] = 0,
["Wands"] = 1,
},
--Monk
[10] = {
--Armor Skills
["Cloth"] = 0,
["Leather"] = 1,
["Mail"] = 0,
["Plate"] = 1,
["Shields"] = 1,
--Weapon Skills
["One-Handed Axes"] = 1,
["Two-Handed Axes"] = 0,
["Bows"] = 0,
["Guns"] = 0,
["One-Handed Maces"] = 1,
["Two-Handed Maces"] = 0,
["Polearms"] = 1,
["One-Handed Swords"] = 1,
["Two-Handed Swords"] = 0,
["Warglaives"] = 0,
["Staves"] = 1,
["Fist Weapons"] = 1,
["Daggers"] = 0,
["Crossbows"] = 0,
["Wands"] = 0,
},
--Druid
[11] = {
--Armor Skills
["Cloth"] = 0,
["Leather"] = 1,
["Mail"] = 0,
["Plate"] = 0,
["Shields"] = 0,
--Weapon Skills
["One-Handed Axes"] = 0,
["Two-Handed Axes"] = 0,
["Bows"] = 0,
["Guns"] = 0,
["One-Handed Maces"] = 1,
["Two-Handed Maces"] = 0,
["Polearms"] = 1,
["One-Handed Swords"] = 0,
["Two-Handed Swords"] = 0,
["Warglaives"] = 0,
["Staves"] = 1,
["Fist Weapons"] = 1,
["Daggers"] = 1,
["Crossbows"] = 0,
["Wands"] = 0,
},
--Demon Hunter
[12] = {
--Armor Skills
["Cloth"] = 0,
["Leather"] = 1,
["Mail"] = 0,
["Plate"] = 0,
["Shields"] = 0,
--Weapon Skills
["One-Handed Axes"] = 1,
["Two-Handed Axes"] = 0,
["Bows"] = 0,
["Guns"] = 0,
["One-Handed Maces"] = 0,
["Two-Handed Maces"] = 0,
["Polearms"] = 0,
["One-Handed Swords"] = 1,
["Two-Handed Swords"] = 0,
["Warglaives"] = 1,
["Staves"] = 0,
["Fist Weapons"] = 1,
["Daggers"] = 0,
["Crossbows"] = 0,
["Wands"] = 0,
},
}

View File

@@ -1,308 +1,294 @@
local function StrSplit(inputString, separator)
local outputTable = {}
for str in string.gmatch(inputString, "([^" .. separator .. "]+)") do
outputTable[#outputTable + 1] = str
end
return outputTable
local outputTable = {}
for str in string.gmatch(inputString, "([^" .. separator .. "]+)") do
outputTable[#outputTable + 1] = str
end
return outputTable
end
local function PrintTable(table)
for k,v in pairs(table) do
print(k .. " " .. v)
end
for k, v in pairs(table) do
print(k .. " " .. v)
end
end
aura_env.GetClassColor = function(class)
if class == "Death Knight" then
return "\124cFFC41E3A"
elseif class == "Druid" then
return "\124cFFFF7C0A"
elseif class == "Hunter" then
return "\124cFFAAD372"
elseif class == "Mage" then
return "\124cFF3FC7EB"
elseif class == "Paladin" then
return "\124cFFF48CBA"
elseif class == "Priest" then
return "\124cFFFFFFFF"
elseif class == "Rogue" then
return "\124cFFFFF468"
elseif class == "Shaman" then
return "\124cFF0070DD"
elseif class == "Warlock" then
return "\124cFF8788EE"
elseif class == "Warrior" then
return "\124cFFC69B6D"
end
if class == "Death Knight" then
return "\124cFFC41E3A"
elseif class == "Druid" then
return "\124cFFFF7C0A"
elseif class == "Hunter" then
return "\124cFFAAD372"
elseif class == "Mage" then
return "\124cFF3FC7EB"
elseif class == "Paladin" then
return "\124cFFF48CBA"
elseif class == "Priest" then
return "\124cFFFFFFFF"
elseif class == "Rogue" then
return "\124cFFFFF468"
elseif class == "Shaman" then
return "\124cFF0070DD"
elseif class == "Warlock" then
return "\124cFF8788EE"
elseif class == "Warrior" then
return "\124cFFC69B6D"
end
end
local Unit = {
New = function(self, unit)
o = {
["unit"] = unit,
}
setmetatable(o, self)
self.__index = self
return o
end,
New = function(self, unit)
o = {
["unit"] = unit,
}
setmetatable(o, self)
self.__index = self
return o
end,
GetAuras = function(self, auraFunc, name, type)
return nil
end,
GetAuras = function(self, auraFunc, name, type) return nil end,
}
local BasicUnit = Unit:New("player")
local BasicUnit = Unit:New "player"
function BasicUnit:GetAuras(auraFunc, name)
local aura, _, _, stacks, _, duration, expirationTime, _, _, _, spellID = auraFunc(self.unit, name)
if aura ~= nil then
return {
[UnitName(self.unit)] = {
["duration"] = duration,
["expirationTime"] = expirationTime,
["spellID"] = spellID,
["stacks"] = stacks or 1,
}
}
else
return {}
end
local aura, _, _, stacks, _, duration, expirationTime, _, _, _, spellID = auraFunc(self.unit, name)
if aura ~= nil then
return {
[UnitName(self.unit)] = {
["duration"] = duration,
["expirationTime"] = expirationTime,
["spellID"] = spellID,
["stacks"] = stacks or 1,
},
}
else
return {}
end
end
-- Maybe implement some sort of throttle to group unit?
local GroupUnit = Unit:New("group")
local GroupUnit = Unit:New "group"
function GroupUnit:GetAuras(auraFunc, name)
local raidMem = GetNumRaidMembers()
local num = GetNumPartyMembers()
local unitPrefix = "party"
if raidMem > num then
unitPrefix = "raid"
num = raidMem
end
auras = {}
for i = 1, num do
local aura, _, _, stacks, _, duration, expirationTime, _, _, _, spellID = auraFunc(unitPrefix .. i, name)
if aura ~= nil then
auras[UnitName(unitPrefix .. i)] = {
["duration"] = duration,
["expirationTime"] = expirationTime,
["spellID"] = spellID,
["class"] = UnitClass(unitPrefix .. i) or "Paladin",
["stacks"] = stacks or 1,
}
end
end
if unitPrefix == "party" then
local aura, _, _, stacks, _, duration, expirationTime, _, _, _, spellID = auraFunc("player", name)
if aura ~= nil then
auras[UnitName("player")] = {
["duration"] = duration,
["expirationTime"] = expirationTime,
["spellID"] = spellID,
["class"] = UnitClass(unitPrefix .. i) or "Paladin",
["stacks"] = stacks or 1,
}
end
end
return auras
local raidMem = GetNumRaidMembers()
local num = GetNumPartyMembers()
local unitPrefix = "party"
if raidMem > num then
unitPrefix = "raid"
num = raidMem
end
auras = {}
for i = 1, num do
local aura, _, _, stacks, _, duration, expirationTime, _, _, _, spellID = auraFunc(unitPrefix .. i, name)
if aura ~= nil then
auras[UnitName(unitPrefix .. i)] = {
["duration"] = duration,
["expirationTime"] = expirationTime,
["spellID"] = spellID,
["class"] = UnitClass(unitPrefix .. i) or "Paladin",
["stacks"] = stacks or 1,
}
end
end
if unitPrefix == "party" then
local aura, _, _, stacks, _, duration, expirationTime, _, _, _, spellID = auraFunc("player", name)
if aura ~= nil then
auras[UnitName "player"] = {
["duration"] = duration,
["expirationTime"] = expirationTime,
["spellID"] = spellID,
["class"] = UnitClass(unitPrefix .. i) or "Paladin",
["stacks"] = stacks or 1,
}
end
end
return auras
end
-- Nameplate does not work, find out why?
local NameplateUnit = Unit:New("nameplate")
local NameplateUnit = Unit:New "nameplate"
function NameplateUnit:GetAuras(auraFunc, name)
local unitPrefix = "nameplate"
auras = {}
for i = 1, 40 do
local aura, _, _, stacks, _, duration, expirationTime, _, _, _, spellID = auraFunc(auraPrefix .. i, name)
if aura ~= nil then
auras[UnitName(unitPrefix .. i)] = {
["duration"] = duration,
["expirationTime"] = expirationTime,
["spellID"] = spellID,
["stacks"] = stacks or 1,
}
end
end
return auras
local unitPrefix = "nameplate"
auras = {}
for i = 1, 40 do
local aura, _, _, stacks, _, duration, expirationTime, _, _, _, spellID = auraFunc(auraPrefix .. i, name)
if aura ~= nil then
auras[UnitName(unitPrefix .. i)] = {
["duration"] = duration,
["expirationTime"] = expirationTime,
["spellID"] = spellID,
["stacks"] = stacks or 1,
}
end
end
return auras
end
local UnitFactory = {
New = function(self)
o = {}
setmetatable(o, self)
self.__index = self
return o
end,
New = function(self)
o = {}
setmetatable(o, self)
self.__index = self
return o
end,
CreateUnit = function(self, target)
target = string.lower(target)
if target == "player" or target == "target" or target == "focus" then
return BasicUnit:New(target)
elseif target == "group" then
return GroupUnit:New(target)
elseif target == "nameplate" then
return NameplateUnit:New(target)
end
end,
CreateUnit = function(self, target)
target = string.lower(target)
if target == "player" or target == "target" or target == "focus" then
return BasicUnit:New(target)
elseif target == "group" then
return GroupUnit:New(target)
elseif target == "nameplate" then
return NameplateUnit:New(target)
end
end,
}
local unitFactory = UnitFactory:New()
local Aura = {
New = function(self, entry, index)
o = {
["name"] = entry.auraName,
["unit"] = entry.target,
["hasCooldown"] = entry.hasCooldown,
["index"] = index,
["GetAura"] = entry.GetAura,
}
setmetatable(o, self)
self.__index = self
return o
end,
New = function(self, entry, index)
o = {
["name"] = entry.auraName,
["unit"] = entry.target,
["hasCooldown"] = entry.hasCooldown,
["index"] = index,
["GetAura"] = entry.GetAura,
}
setmetatable(o, self)
self.__index = self
return o
end,
IsActive = function(self)
for k,v in pairs(self.unit:GetAuras(self.GetAura, self.name)) do
for k2, v2 in pairs(v) do
end
return true
end
return false
end,
IsOnCooldown = function(self)
if not self.hasCooldown then
return false
end
return GetSpellCooldown(self.name) > 0
end,
IsActive = function(self)
for k, v in pairs(self.unit:GetAuras(self.GetAura, self.name)) do
for k2, v2 in pairs(v) do
end
return true
end
return false
end,
IsOnCooldown = function(self)
if not self.hasCooldown then return false end
return GetSpellCooldown(self.name) > 0
end,
AddAsAura = function(self, allstates)
local auras = self.unit:GetAuras(self.GetAura, self.name)
for k,v in pairs(auras) do
duration = v.duration
expirationTime = v.expirationTime
icon = self:GetAuraIcon(v.spellID)
allstates[self.name .. k] = {
changed = true,
show = true,
resort = true,
progressType = "timed",
duration = duration,
expirationTime = expirationTime,
index = self.index,
icon = icon,
pname = k,
stacks = v.stacks,
pclass = v.class,
IsOnCooldown = true,
IsActive = true,
IsBad = self.GetAura == UnitDebuff,
}
end
end,
AddAsCooldown = function(self, allstates)
if not self.hasCooldown then
return false
end
startTime, duration = GetSpellCooldown(self.name)
icon = self:GetSpellIcon()
allstates[self.name] = {
changed = true,
show = true,
resort = true,
progressType = "timed",
duration = duration,
expirationTime = startTime + duration,
index = self.index,
icon = icon,
IsOnCooldown = true,
IsActive = false,
IsBad = self.GetAura == UnitDebuff,
}
end,
AddAsIcon = function(self, allstates)
if not self.hasCooldown then
return false
end
icon = self:GetSpellIcon()
allstates[self.name] = {
changed = true,
show = true,
resort = true,
progressType = "static",
value = 1,
total = 1,
index = self.index,
icon = icon,
IsOnCooldown = false,
IsActive = false,
IsBad = self.GetAura == UnitDebuff,
}
end,
AddAsAura = function(self, allstates)
local auras = self.unit:GetAuras(self.GetAura, self.name)
for k, v in pairs(auras) do
duration = v.duration
expirationTime = v.expirationTime
icon = self:GetAuraIcon(v.spellID)
allstates[self.name .. k] = {
changed = true,
show = true,
resort = true,
progressType = "timed",
duration = duration,
expirationTime = expirationTime,
index = self.index,
icon = icon,
pname = k,
stacks = v.stacks,
pclass = v.class,
IsOnCooldown = true,
IsActive = true,
IsBad = self.GetAura == UnitDebuff,
}
end
end,
AddAsCooldown = function(self, allstates)
if not self.hasCooldown then return false end
startTime, duration = GetSpellCooldown(self.name)
icon = self:GetSpellIcon()
allstates[self.name] = {
changed = true,
show = true,
resort = true,
progressType = "timed",
duration = duration,
expirationTime = startTime + duration,
index = self.index,
icon = icon,
IsOnCooldown = true,
IsActive = false,
IsBad = self.GetAura == UnitDebuff,
}
end,
AddAsIcon = function(self, allstates)
if not self.hasCooldown then return false end
icon = self:GetSpellIcon()
allstates[self.name] = {
changed = true,
show = true,
resort = true,
progressType = "static",
value = 1,
total = 1,
index = self.index,
icon = icon,
IsOnCooldown = false,
IsActive = false,
IsBad = self.GetAura == UnitDebuff,
}
end,
GetSpellIcon = function(self)
return select(3, GetSpellInfo(self.name))
end,
GetAuraIcon = function(self, spellID)
return select(3, GetSpellInfo(spellID))
end,
GetSpellIcon = function(self) return select(3, GetSpellInfo(self.name)) end,
GetAuraIcon = function(self, spellID) return select(3, GetSpellInfo(spellID)) end,
}
local Entry = {
New = function(self, entry)
entry = self:TrimWhitespace(entry)
New = function(self, entry)
entry = self:TrimWhitespace(entry)
local entryData = StrSplit(entry, ",")
local name = self:ReadEntryData(entryData, 1)
local type = self:ReadEntryData(entryData, 2) or "Buff"
local target = unitFactory:CreateUnit(self:ReadEntryData(entryData, 3) or "Player")
local cooldown = (self:ReadEntryData(entryData, 4) == "0") or false
cooldown = not cooldown
local GetAura = UnitBuff
local entryData = StrSplit(entry, ",")
local name = self:ReadEntryData(entryData, 1)
local type = self:ReadEntryData(entryData, 2) or "Buff"
local target = unitFactory:CreateUnit(self:ReadEntryData(entryData, 3) or "Player")
local cooldown = (self:ReadEntryData(entryData, 4) == "0") or false
cooldown = not cooldown
local GetAura = UnitBuff
if type == "Debuff" then GetAura = UnitDebuff end
if type == "Debuff" then GetAura = UnitDebuff end
o = {
["entry"] = entry,
["auraName"] = name,
["GetAura"] = GetAura,
["target"] = target,
["hasCooldown"] = cooldown,
}
setmetatable(o, self)
self.__index = self
return o
end,
o = {
["entry"] = entry,
["auraName"] = name,
["GetAura"] = GetAura,
["target"] = target,
["hasCooldown"] = cooldown,
}
setmetatable(o, self)
self.__index = self
return o
end,
ReadEntryData = function(self, entryData, index)
local str = entryData[index]
if str == nil then
return nil
end
str = self:TrimWhitespace(str)
return str
end,
ReadEntryData = function(self, entryData, index)
local str = entryData[index]
if str == nil then return nil end
str = self:TrimWhitespace(str)
return str
end,
TrimWhitespace = function(self, str)
str = str:gsub("^[ ]+", "")
str = str:gsub("\n$", "")
str = str:gsub("[ ]+$", "")
return str
end,
TrimWhitespace = function(self, str)
str = str:gsub("^[ ]+", "")
str = str:gsub("\n$", "")
str = str:gsub("[ ]+$", "")
return str
end,
}
aura_env.auras = {}
for entry in string.gmatch(aura_env.config.spellList, "([a-zA-Z,0-9 ]+)") do
entry = Entry:New(entry)
entry = Entry:New(entry)
auraObj = Aura:New(entry, #aura_env.auras + 1)
aura_env.auras[#aura_env.auras + 1] = auraObj
auraObj = Aura:New(entry, #aura_env.auras + 1)
aura_env.auras[#aura_env.auras + 1] = auraObj
end
aura_env.HandleEvent = function(allstates)
for k, v in ipairs(aura_env.auras) do
if v:IsActive() then
v:AddAsAura(allstates)
elseif v:IsOnCooldown() and not v:IsActive() then
v:AddAsCooldown(allstates)
elseif not v:IsOnCooldown() and not v:IsActive() then
v:AddAsIcon(allstates)
end
end
for k, v in ipairs(aura_env.auras) do
if v:IsActive() then
v:AddAsAura(allstates)
elseif v:IsOnCooldown() and not v:IsActive() then
v:AddAsCooldown(allstates)
elseif not v:IsOnCooldown() and not v:IsActive() then
v:AddAsIcon(allstates)
end
end
end

View File

@@ -1,317 +1,304 @@
local function StrSplit(inputString, separator)
local outputTable = {}
for str in string.gmatch(inputString, "([^" .. separator .. "]+)") do
outputTable[#outputTable + 1] = str
end
return outputTable
local outputTable = {}
for str in string.gmatch(inputString, "([^" .. separator .. "]+)") do
outputTable[#outputTable + 1] = str
end
return outputTable
end
local function PrintTable(table)
for k,v in pairs(table) do
print(k .. " " .. v)
end
for k, v in pairs(table) do
print(k .. " " .. v)
end
end
local function GetAuraIndex(func, unit, name)
for i = 1, 40 do
local aura = func(unit, i)
if aura == "name" then return i end
if aura == nil then return 0 end
end
return 0
for i = 1, 40 do
local aura = func(unit, i)
if aura == "name" then return i end
if aura == nil then return 0 end
end
return 0
end
aura_env.GetClassColor = function(class)
if class == "Death Knight" then
return "\124cFFC41E3A"
elseif class == "Druid" then
return "\124cFFFF7C0A"
elseif class == "Hunter" then
return "\124cFFAAD372"
elseif class == "Mage" then
return "\124cFF3FC7EB"
elseif class == "Paladin" then
return "\124cFFF48CBA"
elseif class == "Priest" then
return "\124cFFFFFFFF"
elseif class == "Rogue" then
return "\124cFFFFF468"
elseif class == "Shaman" then
return "\124cFF0070DD"
elseif class == "Warlock" then
return "\124cFF8788EE"
elseif class == "Warrior" then
return "\124cFFC69B6D"
end
if class == "Death Knight" then
return "\124cFFC41E3A"
elseif class == "Druid" then
return "\124cFFFF7C0A"
elseif class == "Hunter" then
return "\124cFFAAD372"
elseif class == "Mage" then
return "\124cFF3FC7EB"
elseif class == "Paladin" then
return "\124cFFF48CBA"
elseif class == "Priest" then
return "\124cFFFFFFFF"
elseif class == "Rogue" then
return "\124cFFFFF468"
elseif class == "Shaman" then
return "\124cFF0070DD"
elseif class == "Warlock" then
return "\124cFF8788EE"
elseif class == "Warrior" then
return "\124cFFC69B6D"
end
end
local Unit = {
New = function(self, unit)
o = {
["unit"] = unit,
}
setmetatable(o, self)
self.__index = self
return o
end,
New = function(self, unit)
o = {
["unit"] = unit,
}
setmetatable(o, self)
self.__index = self
return o
end,
GetAuras = function(self, auraFunc, name, type)
return nil
end,
GetAuras = function(self, auraFunc, name, type) return nil end,
}
local BasicUnit = Unit:New("player")
local BasicUnit = Unit:New "player"
function BasicUnit:GetAuras(auraFunc, name)
local aura, _, _, stacks, _, duration, expirationTime, _, _, _, spellID = auraFunc(self.unit, name)
if aura ~= nil then
return {
[UnitName(self.unit)] = {
["duration"] = duration,
["expirationTime"] = expirationTime,
["spellID"] = spellID,
["stacks"] = stacks or 1,
}
}
else
return {}
end
local aura, _, _, stacks, _, duration, expirationTime, _, _, _, spellID = auraFunc(self.unit, name)
if aura ~= nil then
return {
[UnitName(self.unit)] = {
["duration"] = duration,
["expirationTime"] = expirationTime,
["spellID"] = spellID,
["stacks"] = stacks or 1,
},
}
else
return {}
end
end
-- Maybe implement some sort of throttle to group unit?
local GroupUnit = Unit:New("group")
local GroupUnit = Unit:New "group"
function GroupUnit:GetAuras(auraFunc, name)
local num = GetNumGroupMembers()
local unitPrefix = "party"
if IsInRaid() then
unitPrefix = "raid"
end
auras = {}
for i = 1, num do
-- local aura, _, _, stacks, _, duration, expirationTime, _, _, _, spellID = auraFunc(unitPrefix .. i, name)
local auraIndex = GetAuraIndex(auraFunc, unitPrefix .. i, name)
if auraIndex > 0 then
local aura, _, _, stacks, _, duration, expirationTime, _, _, _, spellID = auraFunc(unitPrefix .. i, auraIndex)
auras[UnitName(unitPrefix .. i)] = {
["duration"] = duration,
["expirationTime"] = expirationTime,
["spellID"] = spellID,
["class"] = UnitClass(unitPrefix .. i) or "Paladin",
["stacks"] = stacks or 1,
}
end
end
if unitPrefix == "party" then
-- local aura, _, _, stacks, _, duration, expirationTime, _, _, _, spellID = auraFunc("player", name)
local auraIndex = GetAuraIndex(auraFunc, "player", name)if auraIndex > 0 then
local aura, _, _, stacks, _, duration, expirationTime, _, _, _, spellID = auraFunc("player", auraIndex)
auras[UnitName("player")] = {
["duration"] = duration,
["expirationTime"] = expirationTime,
["spellID"] = spellID,
["class"] = UnitClass(unitPrefix .. i) or "Paladin",
["stacks"] = stacks or 1,
}
end
end
return auras
local num = GetNumGroupMembers()
local unitPrefix = "party"
if IsInRaid() then unitPrefix = "raid" end
auras = {}
for i = 1, num do
-- local aura, _, _, stacks, _, duration, expirationTime, _, _, _, spellID = auraFunc(unitPrefix .. i, name)
local auraIndex = GetAuraIndex(auraFunc, unitPrefix .. i, name)
if auraIndex > 0 then
local aura, _, _, stacks, _, duration, expirationTime, _, _, _, spellID =
auraFunc(unitPrefix .. i, auraIndex)
auras[UnitName(unitPrefix .. i)] = {
["duration"] = duration,
["expirationTime"] = expirationTime,
["spellID"] = spellID,
["class"] = UnitClass(unitPrefix .. i) or "Paladin",
["stacks"] = stacks or 1,
}
end
end
if unitPrefix == "party" then
-- local aura, _, _, stacks, _, duration, expirationTime, _, _, _, spellID = auraFunc("player", name)
local auraIndex = GetAuraIndex(auraFunc, "player", name)
if auraIndex > 0 then
local aura, _, _, stacks, _, duration, expirationTime, _, _, _, spellID = auraFunc("player", auraIndex)
auras[UnitName "player"] = {
["duration"] = duration,
["expirationTime"] = expirationTime,
["spellID"] = spellID,
["class"] = UnitClass(unitPrefix .. i) or "Paladin",
["stacks"] = stacks or 1,
}
end
end
return auras
end
-- Nameplate does not work, find out why?
local NameplateUnit = Unit:New("nameplate")
local NameplateUnit = Unit:New "nameplate"
function NameplateUnit:GetAuras(auraFunc, name)
local unitPrefix = "nameplate"
auras = {}
for i = 1, 40 do
-- local aura, _, _, stacks, _, duration, expirationTime, _, _, _, spellID = auraFunc(unitPrefix .. i, name)
local auraIndex = GetAuraIndex(auraFunc, unitPrefix .. i, name)if auraIndex > 0 then
local aura, _, _, stacks, _, duration, expirationTime, _, _, _, spellID = auraFunc("player", auraIndex)
auras[UnitName(unitPrefix .. i)] = {
["duration"] = duration,
["expirationTime"] = expirationTime,
["spellID"] = spellID,
["stacks"] = stacks or 1,
}
end
end
return auras
local unitPrefix = "nameplate"
auras = {}
for i = 1, 40 do
-- local aura, _, _, stacks, _, duration, expirationTime, _, _, _, spellID = auraFunc(unitPrefix .. i, name)
local auraIndex = GetAuraIndex(auraFunc, unitPrefix .. i, name)
if auraIndex > 0 then
local aura, _, _, stacks, _, duration, expirationTime, _, _, _, spellID = auraFunc("player", auraIndex)
auras[UnitName(unitPrefix .. i)] = {
["duration"] = duration,
["expirationTime"] = expirationTime,
["spellID"] = spellID,
["stacks"] = stacks or 1,
}
end
end
return auras
end
local UnitFactory = {
New = function(self)
o = {}
setmetatable(o, self)
self.__index = self
return o
end,
New = function(self)
o = {}
setmetatable(o, self)
self.__index = self
return o
end,
CreateUnit = function(self, target)
target = string.lower(target)
if target == "player" or target == "target" or target == "focus" then
return BasicUnit:New(target)
elseif target == "group" then
return GroupUnit:New(target)
elseif target == "nameplate" then
return NameplateUnit:New(target)
end
end,
CreateUnit = function(self, target)
target = string.lower(target)
if target == "player" or target == "target" or target == "focus" then
return BasicUnit:New(target)
elseif target == "group" then
return GroupUnit:New(target)
elseif target == "nameplate" then
return NameplateUnit:New(target)
end
end,
}
local unitFactory = UnitFactory:New()
local Aura = {
New = function(self, entry, index)
o = {
["name"] = entry.auraName,
["unit"] = entry.target,
["hasCooldown"] = entry.hasCooldown,
["index"] = index,
["GetAura"] = entry.GetAura,
}
setmetatable(o, self)
self.__index = self
return o
end,
New = function(self, entry, index)
o = {
["name"] = entry.auraName,
["unit"] = entry.target,
["hasCooldown"] = entry.hasCooldown,
["index"] = index,
["GetAura"] = entry.GetAura,
}
setmetatable(o, self)
self.__index = self
return o
end,
IsActive = function(self)
for k,v in pairs(self.unit:GetAuras(self.GetAura, self.name)) do
return true
end
return false
end,
IsOnCooldown = function(self)
if not self.hasCooldown then
return false
end
return GetSpellCooldown(self.name) > 0
end,
IsActive = function(self)
for k, v in pairs(self.unit:GetAuras(self.GetAura, self.name)) do
return true
end
return false
end,
IsOnCooldown = function(self)
if not self.hasCooldown then return false end
return GetSpellCooldown(self.name) > 0
end,
AddAsAura = function(self, allstates)
local auras = self.unit:GetAuras(self.GetAura, self.name)
for k,v in pairs(auras) do
duration = v.duration
expirationTime = v.expirationTime
icon = self:GetAuraIcon(v.spellID)
allstates[self.name .. k] = {
changed = true,
show = true,
resort = true,
progressType = "timed",
duration = duration,
expirationTime = expirationTime,
index = self.index,
icon = icon,
pname = k,
stacks = v.stacks,
pclass = v.class,
IsOnCooldown = true,
IsActive = true,
IsBad = self.GetAura == UnitDebuff,
}
end
end,
AddAsCooldown = function(self, allstates)
if not self.hasCooldown then
return false
end
startTime, duration = GetSpellCooldown(self.name)
icon = self:GetSpellIcon()
allstates[self.name] = {
changed = true,
show = true,
resort = true,
progressType = "timed",
duration = duration,
expirationTime = startTime + duration,
index = self.index,
icon = icon,
IsOnCooldown = true,
IsActive = false,
IsBad = self.GetAura == UnitDebuff,
}
end,
AddAsIcon = function(self, allstates)
if not self.hasCooldown then
return false
end
icon = self:GetSpellIcon()
allstates[self.name] = {
changed = true,
show = true,
resort = true,
progressType = "static",
value = 1,
total = 1,
index = self.index,
icon = icon,
IsOnCooldown = false,
IsActive = false,
IsBad = self.GetAura == UnitDebuff,
}
end,
AddAsAura = function(self, allstates)
local auras = self.unit:GetAuras(self.GetAura, self.name)
for k, v in pairs(auras) do
duration = v.duration
expirationTime = v.expirationTime
icon = self:GetAuraIcon(v.spellID)
allstates[self.name .. k] = {
changed = true,
show = true,
resort = true,
progressType = "timed",
duration = duration,
expirationTime = expirationTime,
index = self.index,
icon = icon,
pname = k,
stacks = v.stacks,
pclass = v.class,
IsOnCooldown = true,
IsActive = true,
IsBad = self.GetAura == UnitDebuff,
}
end
end,
AddAsCooldown = function(self, allstates)
if not self.hasCooldown then return false end
startTime, duration = GetSpellCooldown(self.name)
icon = self:GetSpellIcon()
allstates[self.name] = {
changed = true,
show = true,
resort = true,
progressType = "timed",
duration = duration,
expirationTime = startTime + duration,
index = self.index,
icon = icon,
IsOnCooldown = true,
IsActive = false,
IsBad = self.GetAura == UnitDebuff,
}
end,
AddAsIcon = function(self, allstates)
if not self.hasCooldown then return false end
icon = self:GetSpellIcon()
allstates[self.name] = {
changed = true,
show = true,
resort = true,
progressType = "static",
value = 1,
total = 1,
index = self.index,
icon = icon,
IsOnCooldown = false,
IsActive = false,
IsBad = self.GetAura == UnitDebuff,
}
end,
GetSpellIcon = function(self)
return select(3, GetSpellInfo(self.name))
end,
GetAuraIcon = function(self, spellID)
return select(3, GetSpellInfo(spellID))
end,
GetSpellIcon = function(self) return select(3, GetSpellInfo(self.name)) end,
GetAuraIcon = function(self, spellID) return select(3, GetSpellInfo(spellID)) end,
}
local Entry = {
New = function(self, entry)
entry = self:TrimWhitespace(entry)
New = function(self, entry)
entry = self:TrimWhitespace(entry)
local entryData = StrSplit(entry, ",")
local name = self:ReadEntryData(entryData, 1)
local type = self:ReadEntryData(entryData, 2) or "Buff"
local target = unitFactory:CreateUnit(self:ReadEntryData(entryData, 3) or "Player")
local cooldown = (self:ReadEntryData(entryData, 4) == "0") or false
cooldown = not cooldown
local GetAura = UnitBuff
local entryData = StrSplit(entry, ",")
local name = self:ReadEntryData(entryData, 1)
local type = self:ReadEntryData(entryData, 2) or "Buff"
local target = unitFactory:CreateUnit(self:ReadEntryData(entryData, 3) or "Player")
local cooldown = (self:ReadEntryData(entryData, 4) == "0") or false
cooldown = not cooldown
local GetAura = UnitBuff
if type == "Debuff" then GetAura = UnitDebuff end
if type == "Debuff" then GetAura = UnitDebuff end
o = {
["entry"] = entry,
["auraName"] = name,
["GetAura"] = GetAura,
["target"] = target,
["hasCooldown"] = cooldown,
}
setmetatable(o, self)
self.__index = self
return o
end,
o = {
["entry"] = entry,
["auraName"] = name,
["GetAura"] = GetAura,
["target"] = target,
["hasCooldown"] = cooldown,
}
setmetatable(o, self)
self.__index = self
return o
end,
ReadEntryData = function(self, entryData, index)
local str = entryData[index]
if str == nil then
return nil
end
str = self:TrimWhitespace(str)
return str
end,
ReadEntryData = function(self, entryData, index)
local str = entryData[index]
if str == nil then return nil end
str = self:TrimWhitespace(str)
return str
end,
TrimWhitespace = function(self, str)
str = str:gsub("^[ ]+", "")
str = str:gsub("\n$", "")
str = str:gsub("[ ]+$", "")
return str
end,
TrimWhitespace = function(self, str)
str = str:gsub("^[ ]+", "")
str = str:gsub("\n$", "")
str = str:gsub("[ ]+$", "")
return str
end,
}
aura_env.auras = {}
for entry in string.gmatch(aura_env.config.spellList, "([a-zA-Z,0-9 ]+)") do
entry = Entry:New(entry)
entry = Entry:New(entry)
auraObj = Aura:New(entry, #aura_env.auras + 1)
aura_env.auras[#aura_env.auras + 1] = auraObj
auraObj = Aura:New(entry, #aura_env.auras + 1)
aura_env.auras[#aura_env.auras + 1] = auraObj
end
aura_env.HandleEvent = function(allstates)
for k, v in ipairs(aura_env.auras) do
if v:IsActive() then
v:AddAsAura(allstates)
elseif v:IsOnCooldown() and not v:IsActive() then
v:AddAsCooldown(allstates)
elseif not v:IsOnCooldown() and not v:IsActive() then
v:AddAsIcon(allstates)
end
end
for k, v in ipairs(aura_env.auras) do
if v:IsActive() then
v:AddAsAura(allstates)
elseif v:IsOnCooldown() and not v:IsActive() then
v:AddAsCooldown(allstates)
elseif not v:IsOnCooldown() and not v:IsActive() then
v:AddAsIcon(allstates)
end
end
end

View File

@@ -2,7 +2,7 @@
aura_env.fn = {}
aura_env.damageHistory = {}
aura_env.historyCurrent = {}
aura_env.playerGUID = UnitGUID("player")
aura_env.playerGUID = UnitGUID "player"
aura_env.lastCleanup = 0
aura_env.historyWindow = 10
aura_env.cleanupInterval = 1
@@ -35,7 +35,7 @@ aura_env.iconz[aura_env.types.BLEED] = 1033474
--
-- Returns players current max health
--
aura_env.fn.getMaxHealth = function() return UnitHealthMax("player") end
aura_env.fn.getMaxHealth = function() return UnitHealthMax "player" end
aura_env.fn.isEnabled = function(damageType)
local enabled = damageType == aura_env.types.SWING and aura_env.config.enableSwing

View File

@@ -1,37 +1,39 @@
aura_env.buffs = {
["Null Barrier"] = 1,
["Empowered Null Barrier"] = 1,
["Null Barrier"] = 1,
["Empowered Null Barrier"] = 1,
}
aura_env.max = 0
aura_env.GetBuff = function(name)
for i = 1, 40 do
if UnitBuff("player", i) == name then
return i
end
end
return 0
for i = 1, 40 do
if UnitBuff("player", i) == name then return i end
end
return 0
end
aura_env.GetAbsorb = function(name)
local temp = select(16, UnitBuff("player", aura_env.GetBuff(name)))
if temp then return temp else return 0 end
local temp = select(16, UnitBuff("player", aura_env.GetBuff(name)))
if temp then
return temp
else
return 0
end
end
aura_env.GetAbsorbs = function()
local abs = 0
for k, v in pairs(aura_env.buffs) do
abs = abs + aura_env.GetAbsorb(k)
end
return abs
local abs = 0
for k, v in pairs(aura_env.buffs) do
abs = abs + aura_env.GetAbsorb(k)
end
return abs
end
aura_env.PrettyPrintNum = function(n)
if n > 1e6 then
return string.format("%.2fM", n / 1e6)
elseif n > 1e3 then
return string.format("%.2fk", n / 1e3)
else
return n
end
if n > 1e6 then
return string.format("%.2fM", n / 1e6)
elseif n > 1e3 then
return string.format("%.2fk", n / 1e3)
else
return n
end
end

View File

@@ -1,4 +1,4 @@
aura_env.buffs = {
["Null Barrier"] = 1,
["Null Barrier"] = 1,
}
aura_env.timeApplied = 0

View File

@@ -1,41 +1,43 @@
aura_env.buffs = {
["Null Barrier"] = 1,
["Empowered Null Barrier"] = 1,
["Resounding Protection"] = 1,
["Guard"] = 1,
["Void Shroud"] = 1,
["Stoneskin"] = 1,
["Null Barrier"] = 1,
["Empowered Null Barrier"] = 1,
["Resounding Protection"] = 1,
["Guard"] = 1,
["Void Shroud"] = 1,
["Stoneskin"] = 1,
}
aura_env.max = 0
aura_env.GetBuff = function(name)
for i = 1, 40 do
if UnitBuff("player", i) == name then
return i
end
end
return 0
for i = 1, 40 do
if UnitBuff("player", i) == name then return i end
end
return 0
end
aura_env.GetAbsorb = function(name)
local temp = select(16, UnitBuff("player", aura_env.GetBuff(name)))
if temp then return temp else return 0 end
local temp = select(16, UnitBuff("player", aura_env.GetBuff(name)))
if temp then
return temp
else
return 0
end
end
aura_env.GetAbsorbs = function()
local abs = 0
for k, v in pairs(aura_env.buffs) do
abs = abs + aura_env.GetAbsorb(k)
end
return abs
local abs = 0
for k, v in pairs(aura_env.buffs) do
abs = abs + aura_env.GetAbsorb(k)
end
return abs
end
aura_env.PrettyPrintNum = function(n)
if n > 1e6 then
return string.format("%.2fM", n / 1e6)
elseif n > 1e3 then
return string.format("%.2fk", n / 1e3)
else
return n
end
if n > 1e6 then
return string.format("%.2fM", n / 1e6)
elseif n > 1e3 then
return string.format("%.2fk", n / 1e3)
else
return n
end
end

View File

@@ -1,17 +1,17 @@
aura_env.specStatTable = {
["Windwalker"] = 2,
["Brewmaster"] = 2,
["Mistweaver"] = 4,
["Windwalker"] = 2,
["Brewmaster"] = 2,
["Mistweaver"] = 4,
}
aura_env.maxStat = 0
aura_env.currentStat = 0
aura_env.GetPrimaryStat = function()
stat = UnitStat("player", aura_env.GetPrimStatID())
return stat
stat = UnitStat("player", aura_env.GetPrimStatID())
return stat
end
aura_env.GetPrimStatID = function()
specID, specName = GetSpecializationInfo(GetSpecialization())
return aura_env.specStatTable[specName]
specID, specName = GetSpecializationInfo(GetSpecialization())
return aura_env.specStatTable[specName]
end