From db256c944c978f7a36a56fdec296a556abc7ff0d Mon Sep 17 00:00:00 2001 From: Silversage of Eitrigg Date: Sun, 2 Oct 2011 21:41:08 -0700 Subject: [PATCH] split stats into separate stats.lua --- GearStatsRegistry.lua | 29 +++++++ stats.lua | 215 +++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 244 insertions(+) create mode 100644 GearStatsRegistry.lua create mode 100644 stats.lua diff --git a/GearStatsRegistry.lua b/GearStatsRegistry.lua new file mode 100644 index 0000000..75d12cb --- /dev/null +++ b/GearStatsRegistry.lua @@ -0,0 +1,29 @@ +local registeredClasses = {} + +namespace("sage.gear").StatsRegistrar = { + setClass = function(self, className) + self.class = className + return self + end, + setColor = function(self, t) + self.color = t + return self + end, + stats = function(self, t) + self.statsTable = t + return self + end, + registerAs = function(self, name) + if self.class and self.color and self.statsTable then + registeredClasses[name] = {class=self.class, color=self.color, + stats=self.statsTable} + end + self.class = nil + end +} + +namespace("sage.gear").AllStats = function(callback) + for spec,data in pairs(registeredClasses) do + callback(spec, data.class, data.stats, data.color) + end +end \ No newline at end of file diff --git a/stats.lua b/stats.lua new file mode 100644 index 0000000..b04f634 --- /dev/null +++ b/stats.lua @@ -0,0 +1,215 @@ +--[[ + +HOW TO EDIT THIS FILE: + +1. Use a text editor, not a word processor. +2. Look at the examples below to find the patterns. +3. To adjust the specs for one spec, just edit between the + ":stats({" and the closing "})". +4. The only value that matter in the stats are: + Agility, Intellect, Spirit, Stamina, Strength, + Crit, CritRanged, Dodge, Expertise, Haste, Hit, + Mastery, Parry, Resilience, AP, DPS, SP, Armor, + FireResist, FrostResist, + RedSocket, BlueSocket, YellowSocket, PrismaticSocket +5. If you don't assign values to socket coefficients, values + will be estimated for you. +6. To control the color of the tooltip, set r.ed, g.reen, and + b.lue values between 0.0 and 1.0. +7. You can register as many names as you want. + ]] + +local StatsRegistrar = namespace("sage.gear").StatsRegistrar +local function forClass(className) + return setmetatable({}, {__index=StatsRegistrar}) + :setClass(className) +end + +--DK +forClass("DEATHKNIGHT") + :setColor({r=1.0, g=0.2, b=0.4}) + :stats({MeleeDPS=500, Mastery=100, Stamina=100, Agility=69, Dodge=50, + Parry=43, Expertise=38, Strength=31, Armor=18, Haste=16, Hit=16, + AdditionalArmor=11}) + :registerAs("Blood DK") + +forClass("DEATHKNIGHT") + :setColor({r=0.2, g=0.4, b=1.0}) + :stats({Strength=100, MeleeDPS=100, Hit=43, Expertise=41, Haste=37, + Mastery=35, AP=32, Crit=26}) + :registerAs("Frost DK") + +forClass("DEATHKNIGHT") + :setColor({r=0.6, g=0.6, b=0.6}) + :stats({Strength=100, MeleeDPS=100, Hit=43, Expertise=41, Haste=37, + Mastery=35, AP=32, Crit=26}) + :registerAs("Unholy DK") + +--Druid +forClass("DRUID") + :setColor({r=0.3, g=0.3, b=1.0}) + :stats({Hit=100, Master=100, SP=66, Haste=54, Crit=43, + Intellect=22, Spirit=22}) + :registerAs("Moonkin") + +forClass("DRUID") + :setColor({r=1.0, g=1.0, b=0.5}) + :stats({DPS=151, Agility=100, Strength=78, AP=37, Mastery=35, Haste=32, + Expertise=29, Hit=28, Crit=28}) + :registerAs("Kitty") + +forClass("DRUID") + :setColor({r=1.0, g=0.4, b=0.4}) + :stats({Agility=100, Dodge=88, Armor=71, Mastery=48, Expertise=30, Crit=28, + Hit=15, Stamina=13, AP=12, Haste=4}) + :registerAs("Bear") + +forClass("DRUID") + :setColor({r=0.3, g=1.0, b=0.3}) + :stats({SP=100, Mastery=100, Haste=57, Intellect=51, Spirit=32, Crit=11}) + :registerAs("Tree") + +-- Hunter +forClass("HUNTER") + :setColor({r=0.7, g=0.3, b=1.0}) + :stats({RangedDPS=213, Hit=100, Mastery=100, Agility=58, Crit=40, + Intellect=37, Haste=21}) + :registerAs("BM Hunter") + +forClass("HUNTER") + :setColor({r=1.0, g=0.7, b=0.3}) + :stats({RangedDPS=379, Hit=100, Mastery=100, Agility=74, Crit=57, + Intellect=39, Haste=24}) + :registerAs("MM Hunter") + +forClass("HUNTER") + :setColor({r=0.3, g=1.0, b=0.7}) + :stats({RangedDPS=100, Agility=100, Hit=80, Crit=60, Haste=40, Mastery=20}) + :registerAs("SV Hunter") + +-- Mage +forClass("MAGE") + :setColor({r=1.0, g=1.0, b=1.0}) + :stats({Hit=100, Mastery=100, Haste=54, SP=49, Crit=37, Intellect=34, + Spirit=14}) + :registerAs("Arcane Mage") + +forClass("MAGE") + :setColor({r=1.0, g=0.8, b=0.4}) + :stats({Hit=100, Mastery=100, Haste=53, SP=46, Crit=43, Intellect=13}) + :registerAs("Fire Mage") + +forClass("MAGE") + :setColor({r=0.7, g=0.7, b=1.0}) + :stats({Hit=100, Mastery=100, Haste=42, SP=39, Crit=19, Intellect=6}) + :registerAs("Frost Mage") + +-- Paladin +forClass("PALADIN") + :setColor({r=0.3, g=1.0, b=0.3}) + :stats({Intellect=100, Mastery=100, SP=58, Crit=46, Haste=35}) + :registerAs("Holy Paladin") + +forClass("PALADIN") + :setColor({r=1.0, g=0.4, b=0.4}) + :stats({Parry=100, Dodge=100, Mastery=81, Stamina=49, Strength=28, + Expertise=8, Hit=4}) + :registerAs("Prot Paladin") + +forClass("PALADIN") + :setColor({r=1.0, g=1.0, b=0.5}) + :stats({MeleeDPS=470, Mastery=100, Hit=100, Strength=80, Expertise=66, + Crit=40, Agility=32, Haste=30, SP=9}) + :registerAs("Ret Paladin") + +--Priest +forClass("PRIEST") + :setColor({r=0.5, g=0.5, b=1.0}) + :stats({Intellect=100, Spirit=80, SP=19, Crit=11, Haste=10, Mastery=6}) + :registerAs("Disc Priest") + +forClass("PRIEST") + :setColor({r=0.3, g=1.0, b=0.3}) + :stats({Intellect=100, Spirit=95, Haste=85, Mastery=80, Crit=30}) + :registerAs("Holy Priest") + +forClass("PRIEST") + :setColor({r=0.5, g=0.5, b=0.5}) + :stats({Intellect=100, SP=79, Haste=50, Crit=40, Mastery=38, Spirit=37, + Hit=37}) + :registerAs("Shadow Priest") + +--Rogue +forClass("ROGUE") + :setColor({r=0.8, g=1.0, b=0.5}) + :stats({MeleeDPS=100, Agility=100, Hit=67, Mastery=50, Haste=46, + Expertise=42, Crit=35}) + :registerAs("Assassin") + +forClass("ROGUE") + :setColor({r=1.0, g=0.8, b=0.5}) + :stats({MeleeDPS=100, Agility=100, Hit=70, Expertise=59, Haste=56, Crit=35, + Mastery=33}) + :registerAs("Combat Rogue") + +forClass("ROGUE") + :setColor({r=1.0, g=1.0, b=0.3}) + :stats({MeleeDPS=100, Agility=100, Hit=40, Haste=37, Expertise=33, Crit=31, + Mastery=20}) + :registerAs("Subtlety") + +--Shaman +forClass("SHAMAN") + :setColor({r=0.5, g=0.5, b=1.0}) + :stats({Mastery=100, Hit=100, SP=60, Haste=56, Crit=40, Intellect=11}) + :registerAs("Ele Shaman") + +forClass("SHAMAN") + :setColor({r=1.0, g=1.0, b=0.5}) + :stats({MeleeDPS=124, Agility=100, Hit=60, Expertise=48, Mastery=44, + Strength=42, AP=40, Intellect=36, SP=36, Crit=28, Haste=16}) + :registerAs("Enh Shaman") + +forClass("SHAMAN") + :setColor({r=0.3, g=1.0, b=0.3}) + :stats({Intellect=100, SP=83, Spriti=75, Haste=67, Crit=58, Mastery=42, + Stamina=8}) + :registerAs("Resto Shaman") + +--Warlock +forClass("WARLOCK") + :setColor({r=1.0, g=0.2, b=1.0}) + :stats({Hit=100, Master=100, SP=72, Haste=61, Crit=38, Spirit=34, + Intellect=15}) + :registerAs("Aff Warlock") + +forClass("WARLOCK") + :setColor({r=0.8, g=0.2, b=1.0}) + :stats({Hit=100, Master=100, Haste=50, SP=45, Crit=31, Spirit=29, + Intellect=13}) + :registerAs("Dem Warlock") + +forClass("WARLOCK") + :setColor({r=1.0, g=0.6, b=0.0}) + :stats({Mastery=100, Hit=100, SP=47, Haste=46, Spirit=26, Crit=16, + Intellect=13}) + :registerAs("Destro Warlock") + +-- Warrior +forClass("WARRIOR") + :setColor({r=0.8, g=0.8, b=1.0}) + :stats({Mastery=100, Strength=100, Hit=90, Expertise=85, Crit=80, Agility=65, + Haste=50, Armor=1}) + :registerAs("Arms Warrior") + +forClass("WARRIOR") + :setColor({r=0.8, g=0.8, b=0.2}) + :stats({Mastery=100, Expertise=100, Strength=82, Crit=66, Agility=53, Hit=48, + Haste=36, Armor=5}) + :registerAs("Fury Warrior") + +forClass("WARRIOR") + :setColor({r=1.0, g=0.4, b=0.4}) + :stats({Stamina=100, Mastery=100, Dodge=90, Parry=67, Agility=67, Strength=48, + Expertise=19, Hit=10, Crit=7, Armor=6, Haste=1}) + :registerAs("Prot Warrior") -- 1.7.9.5