Files

493 lines
18 KiB
Lua

-- Pawn by Vger-Azjol-Nerub
-- www.vgermods.com
-- © 2006-2010 Green Eclipse. This mod is released under the Creative Commons Attribution-NonCommercial-NoDerivs 3.0 license.
-- See Readme.htm for more information.
--
-- Wowhead scales
------------------------------------------------------------
local ScaleProviderName = "Wowhead"
function PawnWowheadScaleProvider_AddScales()
------------------------------------------------------------
-- Warrior
------------------------------------------------------------
PawnAddPluginScale(
ScaleProviderName,
"WarriorArms",
PawnWowheadScale_WarriorArms,
"c79c6e",
{
["Strength"] = 100, ["HitRating"] = 90, ["ExpertiseRating"] = 85, ["CritRating"] = 80, ["Agility"] = 65, ["ArmorPenetration"] = 65, ["HasteRating"] = 50, ["Ap"] = 45, ["Armor"] = 1, ["Stamina"] = .1, ["MetaSocketEffect"] = 3600
},
1
)
PawnAddPluginScale(
ScaleProviderName,
"WarriorFury",
PawnWowheadScale_WarriorFury,
"c79c6e",
{
["ExpertiseRating"] = 100, ["Strength"] = 82, ["CritRating"] = 66, ["Agility"] = 53, ["ArmorPenetration"] = 52, ["HitRating"] = 48, ["HasteRating"] = 36, ["Ap"] = 31, ["Armor"] = 5, ["Stamina"] = .1, ["MetaSocketEffect"] = 3600
},
1
)
PawnAddPluginScale(
ScaleProviderName,
"WarriorTank",
PawnWowheadScale_WarriorTank,
"c79c6e",
{
["Stamina"] = 100, ["DodgeRating"] = 90, ["DefenseRating"] = 86, ["BlockValue"] = 81, ["Agility"] = 67, ["ParryRating"] = 67, ["BlockRating"] = 48, ["Strength"] = 48, ["ExpertiseRating"] = 19, ["HitRating"] = 10, ["ArmorPenetration"] = 10, ["CritRating"] = 7, ["Armor"] = 6, ["HasteRating"] = 1, ["Ap"] = 1, ["MetaSocketEffect"] = 3600
},
1
)
------------------------------------------------------------
-- Paladin
------------------------------------------------------------
PawnAddPluginScale(
ScaleProviderName,
"PaladinHoly",
PawnWowheadScale_PaladinHoly,
"f58cba",
{
["Intellect"] = 100, ["Mp5"] = 88, ["SpellPower"] = 58, ["CritRating"] = 46, ["HasteRating"] = 35, ["Stamina"] = .1, ["MetaSocketEffect"] = 3600
},
1
)
PawnAddPluginScale(
ScaleProviderName,
"PaladinTank",
PawnWowheadScale_PaladinTank,
"f58cba",
{
["Stamina"] = 100, ["Agility"] = 60, ["ExpertiseRating"] = 59, ["DodgeRating"] = 55, ["DefenseRating"] = 45, ["ParryRating"] = 30, ["Strength"] = 16, ["Armor"] = 8, ["BlockRating"] = 7, ["BlockValue"] = 6, ["MetaSocketEffect"] = 3600
},
1
)
PawnAddPluginScale(
ScaleProviderName,
"PaladinRetribution",
PawnWowheadScale_PaladinRetribution,
"f58cba",
{
["MeleeDps"] = 470, ["HitRating"] = 100, ["Strength"] = 80, ["ExpertiseRating"] = 66, ["CritRating"] = 40, ["Ap"] = 34, ["Agility"] = 32, ["HasteRating"] = 30, ["ArmorPenetration"] = 22, ["SpellPower"] = 9, ["Stamina"] = .1, ["MetaSocketEffect"] = 3600
},
1
)
------------------------------------------------------------
-- Hunter
------------------------------------------------------------
PawnAddPluginScale(
ScaleProviderName,
"HunterBeastMastery",
PawnWowheadScale_HunterBeastMastery,
"abd473",
{
["RangedDps"] = 213, ["HitRating"] = 100, ["Agility"] = 58, ["CritRating"] = 40, ["Intellect"] = 37, ["Ap"] = 30, ["ArmorPenetration"] = 28, ["HasteRating"] = 21, ["Stamina"] = .1, ["MetaSocketEffect"] = 3600
},
1
)
PawnAddPluginScale(
ScaleProviderName,
"HunterMarksman",
PawnWowheadScale_HunterMarksman,
"abd473",
{
["RangedDps"] = 379, ["HitRating"] = 100, ["Agility"] = 74, ["CritRating"] = 57, ["ArmorPenetration"] = 40, ["Intellect"] = 39, ["Ap"] = 32, ["HasteRating"] = 24, ["Stamina"] = .1, ["MetaSocketEffect"] = 3600
},
1
)
PawnAddPluginScale(
ScaleProviderName,
"HunterSurvival",
PawnWowheadScale_HunterSurvival,
"abd473",
{
["RangedDps"] = 181, ["HitRating"] = 100, ["Agility"] = 76, ["CritRating"] = 42, ["Intellect"] = 35, ["HasteRating"] = 31, ["Ap"] = 29, ["ArmorPenetration"] = 26, ["Stamina"] = .1, ["MetaSocketEffect"] = 3600
},
1
)
------------------------------------------------------------
-- Rogue
------------------------------------------------------------
PawnAddPluginScale(
ScaleProviderName,
"RogueAssassination",
PawnWowheadScale_RogueAssassination,
"fff569",
{
["MeleeDps"] = 170, ["Agility"] = 100, ["ExpertiseRating"] = 87, ["HitRating"] = 83, ["CritRating"] = 81, ["Ap"] = 65, ["ArmorPenetration"] = 65, ["HasteRating"] = 64, ["Strength"] = 55, ["Stamina"] = .1, ["MetaSocketEffect"] = 3600
},
1
)
PawnAddPluginScale(
ScaleProviderName,
"RogueCombat",
PawnWowheadScale_RogueCombat,
"fff569",
{
["MeleeDps"] = 220, ["ArmorPenetration"] = 100, ["Agility"] = 100, ["ExpertiseRating"] = 82, ["HitRating"] = 80, ["CritRating"] = 75, ["HasteRating"] = 73, ["Strength"] = 55, ["Ap"] = 50, ["Stamina"] = .1, ["MetaSocketEffect"] = 3600
},
1
)
PawnAddPluginScale(
ScaleProviderName,
"RogueSubtlety",
PawnWowheadScale_RogueSubtlety,
"fff569",
{
["MeleeDps"] = 228, ["ExpertiseRating"] = 100, ["Agility"] = 100, ["HitRating"] = 80, ["ArmorPenetration"] = 75, ["CritRating"] = 75, ["HasteRating"] = 75, ["Strength"] = 55, ["Ap"] = 50, ["Stamina"] = .1, ["MetaSocketEffect"] = 3600
},
1
)
------------------------------------------------------------
-- Priest
------------------------------------------------------------
PawnAddPluginScale(
ScaleProviderName,
"PriestDiscipline",
PawnWowheadScale_PriestDiscipline,
"ffffff",
{
["SpellPower"] = 100, ["Mp5"] = 67, ["Intellect"] = 65, ["HasteRating"] = 59, ["CritRating"] = 48, ["Spirit"] = 22, ["Stamina"] = .1, ["MetaSocketEffect"] = 3600
},
1
)
PawnAddPluginScale(
ScaleProviderName,
"PriestHoly",
PawnWowheadScale_PriestHoly,
"ffffff",
{
["Mp5"] = 100, ["Intellect"] = 69, ["SpellPower"] = 60, ["Spirit"] = 52, ["CritRating"] = 38, ["HasteRating"] = 31, ["Stamina"] = .1, ["MetaSocketEffect"] = 3600
},
1
)
PawnAddPluginScale(
ScaleProviderName,
"PriestShadow",
PawnWowheadScale_PriestShadow,
"ffffff",
{
["HitRating"] = 100, ["ShadowSpellDamage"] = 76, ["SpellPower"] = 76, ["CritRating"] = 54, ["HasteRating"] = 50, ["Spirit"] = 16, ["Intellect"] = 16, ["Stamina"] = .1, ["MetaSocketEffect"] = 3600
},
1
)
------------------------------------------------------------
-- DK
------------------------------------------------------------
PawnAddPluginScale(
ScaleProviderName,
"DeathKnightBloodDps",
PawnWowheadScale_DeathKnightBloodDps,
"ff4d6b",
{
["MeleeDps"] = 360, ["ArmorPenetration"] = 100, ["Strength"] = 99, ["HitRating"] = 91, ["ExpertiseRating"] = 90, ["CritRating"] = 57, ["HasteRating"] = 55, ["Ap"] = 36, ["Armor"] = 1, ["Stamina"] = .1, ["MetaSocketEffect"] = 3600
},
1
)
PawnAddPluginScale(
ScaleProviderName,
"DeathKnightBloodTank",
PawnWowheadScale_DeathKnightBloodTank,
"ff4d6b",
{
["MeleeDps"] = 500, ["Stamina"] = 100, ["DefenseRating"] = 90, ["Agility"] = 69, ["DodgeRating"] = 50, ["ParryRating"] = 43, ["ExpertiseRating"] = 38, ["Strength"] = 31, ["ArmorPenetration"] = 26, ["CritRating"] = 22, ["Armor"] = 18, ["HitRating"] = 16, ["HasteRating"] = 16, ["BonusArmor"] = 11, ["Ap"] = 8, ["MetaSocketEffect"] = 3600
},
1
)
PawnAddPluginScale(
ScaleProviderName,
"DeathKnightFrostDps",
PawnWowheadScale_DeathKnightFrostDps,
"ff4d6b",
{
["MeleeDps"] = 337, ["HitRating"] = 100, ["Strength"] = 97, ["ExpertiseRating"] = 81, ["ArmorPenetration"] = 61, ["CritRating"] = 45, ["Ap"] = 35, ["HasteRating"] = 28, ["Armor"] = 1, ["Stamina"] = .1, ["MetaSocketEffect"] = 3600
},
1
)
PawnAddPluginScale(
ScaleProviderName,
"DeathKnightFrostTank",
PawnWowheadScale_DeathKnightFrostTank,
"ff4d6b",
{
["MeleeDps"] = 419, ["ParryRating"] = 100, ["HitRating"] = 97, ["Strength"] = 96, ["DefenseRating"] = 85, ["ExpertiseRating"] = 69, ["DodgeRating"] = 61, ["Agility"] = 61, ["Stamina"] = 61, ["CritRating"] = 49, ["Ap"] = 41, ["ArmorPenetration"] = 31, ["Armor"] = 5, ["MetaSocketEffect"] = 3600
},
1
)
PawnAddPluginScale(
ScaleProviderName,
"DeathKnightUnholyDps",
PawnWowheadScale_DeathKnightUnholyDps,
"ff4d6b",
{
["MeleeDps"] = 209, ["Strength"] = 100, ["HitRating"] = 66, ["ExpertiseRating"] = 51, ["HasteRating"] = 48, ["CritRating"] = 45, ["Ap"] = 34, ["ArmorPenetration"] = 32, ["Armor"] = 1, ["Stamina"] = .1, ["MetaSocketEffect"] = 3600
},
1
)
------------------------------------------------------------
-- Shaman
------------------------------------------------------------
PawnAddPluginScale(
ScaleProviderName,
"ShamanElemental",
PawnWowheadScale_ShamanElemental,
"6e95ff",
{
["HitRating"] = 100, ["SpellPower"] = 60, ["HasteRating"] = 56, ["CritRating"] = 40, ["Intellect"] = 11, ["Stamina"] = .1, ["MetaSocketEffect"] = 3600
},
1
)
PawnAddPluginScale(
ScaleProviderName,
"ShamanEnhancement",
PawnWowheadScale_ShamanEnhancement,
"6e95ff",
{
["MeleeDps"] = 135, ["HitRating"] = 100, ["ExpertiseRating"] = 84, ["Agility"] = 55, ["Intellect"] = 55, ["CritRating"] = 55, ["HasteRating"] = 42, ["Strength"] = 35, ["Ap"] = 32, ["SpellPower"] = 29, ["ArmorPenetration"] = 26, ["Stamina"] = .1, ["MetaSocketEffect"] = 3600
},
1
)
PawnAddPluginScale(
ScaleProviderName,
"ShamanRestoration",
PawnWowheadScale_ShamanRestoration,
"6e95ff",
{
["Mp5"] = 100, ["Intellect"] = 85, ["SpellPower"] = 77, ["CritRating"] = 62, ["HasteRating"] = 35, ["Stamina"] = .1, ["MetaSocketEffect"] = 3600
},
1
)
------------------------------------------------------------
-- Mage
------------------------------------------------------------
PawnAddPluginScale(
ScaleProviderName,
"MageArcane",
PawnWowheadScale_MageArcane,
"69ccf0",
{
["HitRating"] = 100, ["HasteRating"] = 54, ["ArcaneSpellDamage"] = 49, ["SpellPower"] = 49, ["CritRating"] = 37, ["Intellect"] = 34, ["FrostSpellDamage"] = 24, ["FireSpellDamage"] = 24, ["Spirit"] = 14, ["Stamina"] = .1, ["MetaSocketEffect"] = 3600
},
1
)
PawnAddPluginScale(
ScaleProviderName,
"MageFire",
PawnWowheadScale_MageFire,
"69ccf0",
{
["HitRating"] = 100, ["HasteRating"] = 53, ["FireSpellDamage"] = 46, ["SpellPower"] = 46, ["CritRating"] = 43, ["FrostSpellDamage"] = 23, ["ArcaneSpellDamage"] = 23, ["Intellect"] = 13, ["Stamina"] = .1, ["MetaSocketEffect"] = 3600
},
1
)
PawnAddPluginScale(
ScaleProviderName,
"MageFrost",
PawnWowheadScale_MageFrost,
"69ccf0",
{
["HitRating"] = 100, ["HasteRating"] = 42, ["FrostSpellDamage"] = 39, ["SpellPower"] = 39, ["ArcaneSpellDamage"] = 19, ["FireSpellDamage"] = 19, ["CritRating"] = 19, ["Intellect"] = 6, ["Stamina"] = .1, ["MetaSocketEffect"] = 3600
},
1
)
------------------------------------------------------------
-- Warlock
------------------------------------------------------------
PawnAddPluginScale(
ScaleProviderName,
"WarlockAffliction",
PawnWowheadScale_WarlockAffliction,
"bca5ff",
{
["HitRating"] = 100, ["ShadowSpellDamage"] = 72, ["SpellPower"] = 72, ["HasteRating"] = 61, ["CritRating"] = 38, ["FireSpellDamage"] = 36, ["Spirit"] = 34, ["Intellect"] = 15, ["Stamina"] = .1, ["MetaSocketEffect"] = 3600
},
1
)
PawnAddPluginScale(
ScaleProviderName,
"WarlockDemonology",
PawnWowheadScale_WarlockDemonology,
"bca5ff",
{
["HitRating"] = 100, ["HasteRating"] = 50, ["FireSpellDamage"] = 45, ["ShadowSpellDamage"] = 45, ["SpellPower"] = 45, ["CritRating"] = 31, ["Spirit"] = 29, ["Intellect"] = 13, ["Stamina"] = .1, ["MetaSocketEffect"] = 3600
},
1
)
PawnAddPluginScale(
ScaleProviderName,
"WarlockDestruction",
PawnWowheadScale_WarlockDestruction,
"bca5ff",
{
["HitRating"] = 100, ["FireSpellDamage"] = 47, ["SpellPower"] = 47, ["HasteRating"] = 46, ["Spirit"] = 26, ["ShadowSpellDamage"] = 23, ["CritRating"] = 16, ["Intellect"] = 13, ["Stamina"] = .1, ["MetaSocketEffect"] = 3600
},
1
)
------------------------------------------------------------
-- Druid
------------------------------------------------------------
PawnAddPluginScale(
ScaleProviderName,
"DruidBalance",
PawnWowheadScale_DruidBalance,
"ff7d0a",
{
["HitRating"] = 100, ["SpellPower"] = 66, ["HasteRating"] = 54, ["CritRating"] = 43, ["Spirit"] = 22, ["Intellect"] = 22, ["Stamina"] = .1, ["MetaSocketEffect"] = 3600
},
1
)
PawnAddPluginScale(
ScaleProviderName,
"DruidFeralDps",
PawnWowheadScale_DruidFeralDps,
"ff7d0a",
{
["Agility"] = 100, ["ArmorPenetration"] = 90, ["Strength"] = 80, ["CritRating"] = 55, ["ExpertiseRating"] = 50, ["HitRating"] = 50, ["FeralAp"] = 40, ["Ap"] = 40, ["HasteRating"] = 35, ["Stamina"] = .1, ["MetaSocketEffect"] = 3600
},
1
)
PawnAddPluginScale(
ScaleProviderName,
"DruidFeralTank",
PawnWowheadScale_DruidFeralTank,
"ff7d0a",
{
["Agility"] = 100, ["Stamina"] = 75, ["DodgeRating"] = 65, ["DefenseRating"] = 60, ["ExpertiseRating"] = 16, ["Strength"] = 10, ["Armor"] = 10, ["HitRating"] = 8, ["HasteRating"] = 5, ["Ap"] = 4, ["FeralAp"] = 4, ["CritRating"] = 3, ["MetaSocketEffect"] = 3600
},
1
)
PawnAddPluginScale(
ScaleProviderName,
"DruidRestoration",
PawnWowheadScale_DruidRestoration,
"ff7d0a",
{
["SpellPower"] = 100, ["Mp5"] = 73, ["HasteRating"] = 57, ["Intellect"] = 51, ["Spirit"] = 32, ["CritRating"] = 11, ["Stamina"] = .1, ["MetaSocketEffect"] = 3600
},
1
)
------------------------------------------------------------
-- PawnWowheadScaleProviderOptions.LastAdded keeps track of the last time that we tried to automatically enable scales for this character.
if not PawnWowheadScaleProviderOptions then PawnWowheadScaleProviderOptions = { } end
if not PawnWowheadScaleProviderOptions.LastAdded then PawnWowheadScaleProviderOptions.LastAdded = 0 end
-- CoA/3.3.5a: UnitClass("player") returns nil at file-load and even at VARIABLES_LOADED on this client.
-- Defer the class-based auto-enable one frame so the unit is fully initialised.
local _PawnWowheadLastAdded = PawnWowheadScaleProviderOptions.LastAdded
C_Timer.After(0, function()
local _, Class = UnitClass("player")
if _PawnWowheadLastAdded < 1 then
-- Enable round one of scales based on the player's class.
if Class == "WARRIOR" then
PawnSetScaleVisible(PawnGetProviderScaleName(ScaleProviderName, "WarriorFury"), true)
PawnSetScaleVisible(PawnGetProviderScaleName(ScaleProviderName, "WarriorTank"), true)
elseif Class == "PALADIN" then
PawnSetScaleVisible(PawnGetProviderScaleName(ScaleProviderName, "PaladinHoly"), true)
PawnSetScaleVisible(PawnGetProviderScaleName(ScaleProviderName, "PaladinTank"), true)
PawnSetScaleVisible(PawnGetProviderScaleName(ScaleProviderName, "PaladinRetribution"), true)
elseif Class == "HUNTER" then
PawnSetScaleVisible(PawnGetProviderScaleName(ScaleProviderName, "HunterBeastMastery"), true)
PawnSetScaleVisible(PawnGetProviderScaleName(ScaleProviderName, "HunterMarksman"), true)
PawnSetScaleVisible(PawnGetProviderScaleName(ScaleProviderName, "HunterSurvival"), true)
elseif Class == "ROGUE" then
PawnSetScaleVisible(PawnGetProviderScaleName(ScaleProviderName, "RogueAssassination"), true)
PawnSetScaleVisible(PawnGetProviderScaleName(ScaleProviderName, "RogueCombat"), true)
PawnSetScaleVisible(PawnGetProviderScaleName(ScaleProviderName, "RogueSubtlety"), true)
elseif Class == "PRIEST" then
PawnSetScaleVisible(PawnGetProviderScaleName(ScaleProviderName, "PriestDiscipline"), true)
PawnSetScaleVisible(PawnGetProviderScaleName(ScaleProviderName, "PriestHoly"), true)
PawnSetScaleVisible(PawnGetProviderScaleName(ScaleProviderName, "PriestShadow"), true)
elseif Class == "DEATHKNIGHT" then
PawnSetScaleVisible(PawnGetProviderScaleName(ScaleProviderName, "DeathKnightBloodDps"), true)
PawnSetScaleVisible(PawnGetProviderScaleName(ScaleProviderName, "DeathKnightBloodTank"), true)
PawnSetScaleVisible(PawnGetProviderScaleName(ScaleProviderName, "DeathKnightFrostDps"), true)
PawnSetScaleVisible(PawnGetProviderScaleName(ScaleProviderName, "DeathKnightFrostTank"), true)
PawnSetScaleVisible(PawnGetProviderScaleName(ScaleProviderName, "DeathKnightUnholyDps"), true)
elseif Class == "SHAMAN" then
PawnSetScaleVisible(PawnGetProviderScaleName(ScaleProviderName, "ShamanElemental"), true)
PawnSetScaleVisible(PawnGetProviderScaleName(ScaleProviderName, "ShamanEnhancement"), true)
PawnSetScaleVisible(PawnGetProviderScaleName(ScaleProviderName, "ShamanRestoration"), true)
elseif Class == "MAGE" then
PawnSetScaleVisible(PawnGetProviderScaleName(ScaleProviderName, "MageArcane"), true)
PawnSetScaleVisible(PawnGetProviderScaleName(ScaleProviderName, "MageFire"), true)
PawnSetScaleVisible(PawnGetProviderScaleName(ScaleProviderName, "MageFrost"), true)
elseif Class == "WARLOCK" then
PawnSetScaleVisible(PawnGetProviderScaleName(ScaleProviderName, "WarlockAffliction"), true)
PawnSetScaleVisible(PawnGetProviderScaleName(ScaleProviderName, "WarlockDemonology"), true)
PawnSetScaleVisible(PawnGetProviderScaleName(ScaleProviderName, "WarlockDestruction"), true)
elseif Class == "DRUID" then
PawnSetScaleVisible(PawnGetProviderScaleName(ScaleProviderName, "DruidBalance"), true)
PawnSetScaleVisible(PawnGetProviderScaleName(ScaleProviderName, "DruidFeralDps"), true)
PawnSetScaleVisible(PawnGetProviderScaleName(ScaleProviderName, "DruidFeralTank"), true)
PawnSetScaleVisible(PawnGetProviderScaleName(ScaleProviderName, "DruidRestoration"), true)
end
end
if _PawnWowheadLastAdded < 2 then
if Class == "WARRIOR" then
PawnSetScaleVisible(PawnGetProviderScaleName(ScaleProviderName, "WarriorArms"), true)
end
end
-- Don't reenable those scales again after the user has disabled them previously.
PawnWowheadScaleProviderOptions.LastAdded = 2
end)
-- After this function terminates there's no need for it anymore, so cause it to self-destruct to save memory.
PawnWowheadScaleProvider_AddScales = nil
end -- PawnWowheadScaleProvider_AddScales
------------------------------------------------------------
PawnAddPluginScaleProvider(ScaleProviderName, PawnWowheadScale_Provider, PawnWowheadScaleProvider_AddScales)