Log:
DrDamage:
- Talent data restructure
- Fixed Empowered Rejuvenation effects on Lifebloom and Regrowth
Modified:
trunk/DrDamage/Data/Druid.lua
trunk/DrDamage/Data/Mage.lua
trunk/DrDamage/Data/Paladin.lua
trunk/DrDamage/Data/Priest.lua
trunk/DrDamage/Data/Shaman.lua
trunk/DrDamage/Data/Warlock.lua
trunk/DrDamage/DrDamage.lua
Modified: trunk/DrDamage/Data/Druid.lua
==============================================================================
--- trunk/DrDamage/Data/Druid.lua (original)
+++ trunk/DrDamage/Data/Druid.lua Sun Jul 1 12:28:15 2007
@@ -7,7 +7,6 @@
--Relic slot items:
DrDamage.RelicSlot["Rejuvenation"] = { 25643, 86, 22398, 50, } --Harold's Rejuvenating Broach, Idol of Rejuvenation
- DrDamage.RelicSlot["Lifebloom"] = { 27886, 88, 28355, 87, ModType1 = "Dot", ModType2 = "Final" } --Idol of the Emerald Queen, Idol of Tenacity
DrDamage.RelicSlot["Healing Touch"] = { 28568, 136, 22399, 100, ModType1 = "Final", ModType2 = "Final" } --Idol of the Avian Heart, Idol of Health
DrDamage.RelicSlot["Wrath"] = { 31025, 25 } --Idol of the Avenger
DrDamage.RelicSlot["Moonfire"] = { 23197, 33 } --Idol of the Moon
@@ -35,6 +34,11 @@
if DrDamage:GetSetAmount( "Nordrassil Raiment" ) >= 4 then
calculation.finalMod = calculation.finalMod + 150
end
+ if IsEquippedItem(27886) then --Idol of the Emerald Queen, +88 to HOT portion
+ calculation.dotFinalMod = calculation.dotFinalMod + 88 * 1.115 * (7/15) * calculation.dmgM
+ elseif IsEquippedItem(28355) then --Idol of Tenacity
+ calculation.finalMod = calculation.finalMod + 87
+ end
end
DrDamage.SetBonuses["Starfire"] = function( calculation, ActiveAuras )
if DrDamage:GetSetAmount( "Nordrassil Regalia" ) >= 4 then
@@ -170,22 +174,28 @@
},
},
talentInfo = {
- ["Starlight Wrath"] = { Effect = 1, Spells = { "Wrath", "Starfire" }, ModType = "CastTime", },
- ["Focused Starlight"] = { Effect = 2, Spells = { "Wrath", "Starfire" }, ModType = "Crit", },
- ["Improved Moonfire"] = { Effect = 5, Spells = { "Moonfire" }, ModType = "Crit", Effect2 = 0.05, Spells2 = { "Moonfire" }, },
- ["Vengeance"] = { Effect = 0.1, Spells = { "Starfire", "Moonfire", "Wrath" }, ModType = "CritMultiplier", },
- ["Moonfury"] = { Effect = 0.02, Spells = { "Starfire", "Moonfire", "Wrath" }, },
- ["Balance of Power"] = { Effect = 2, Spells = { "All" }, ModType = "Hit" },
- ["Wrath of Cenarius"] = { Effect = 0.04, Spells = { "Starfire", }, ModType = "SpellDamage", Effect2 = 0.02, Spells2 = { "Wrath", }, ModType2 = "SpellDamage", },
- ["Naturalist"] = { Effect = 1, Spells = { "Healing Touch" }, ModType = "CastTime", },
- ["Gift of Nature"] = { Effect = 0.02, Spells = { "Healing" }, Add = true, },
- ["Improved Rejuvenation"] = { Effect = 0.05, Spells = { "Rejuvenation" }, Add = true, },
- ["Improved Regrowth"] = { Effect = 10, Spells = { "Regrowth" }, ModType = "Crit" },
- ["Empowered Touch"] = { Effect = 0.1, Spells = { "Healing Touch" }, ModType = "SpellDamage", },
- ["Empowered Rejuvenation"] = { Effect = 0.04, Spells = { "Rejuvenation", "Lifebloom", "Regrowth" }, ModType = "SpellDamage", Multiply = true, Effect2 = 0.04, Spells2 = { "Regrowth", "Lifebloom", }, ModType2 = "DotSpellDamage", Multiply2 = true, },
+ ["Starlight Wrath"] = { [1] = { Effect = 1, Spells = { "Wrath", "Starfire" }, ModType = "CastTime", }, },
+ ["Focused Starlight"] = { [1] = { Effect = 2, Spells = { "Wrath", "Starfire" }, ModType = "Crit", }, },
+ ["Improved Moonfire"] = { [1] = { Effect = 5, Spells = "Moonfire", ModType = "Crit", },
+ [2] = { Effect = 0.05, Spells = "Moonfire", },
+ },
+ ["Vengeance"] = { [1] = { Effect = 0.1, Spells = { "Starfire", "Moonfire", "Wrath" }, ModType = "CritMultiplier", }, },
+ ["Moonfury"] = { [1] = { Effect = 0.02, Spells = { "Starfire", "Moonfire", "Wrath" }, }, },
+ ["Balance of Power"] = { [1] = { Effect = 2, Spells = "All", ModType = "Hit" }, },
+ ["Wrath of Cenarius"] = { [1] = { Effect = 0.04, Spells = "Starfire", ModType = "SpellDamage", },
+ [2] = { Effect = 0.02, Spells = "Wrath", ModType = "SpellDamage", },
+ },
+ ["Naturalist"] = { [1] = { Effect = 1, Spells = "Healing Touch", ModType = "CastTime", }, },
+ ["Gift of Nature"] = { [1] = { Effect = 0.02, Spells = "Healing", Add = true, }, },
+ ["Improved Rejuvenation"] = { [1] = { Effect = 0.05, Spells = "Rejuvenation", Add = true, }, },
+ ["Improved Regrowth"] = { [1] = { Effect = 10, Spells = "Regrowth", ModType = "Crit" }, },
+ ["Empowered Touch"] = { [1] = { Effect = 0.1, Spells = "Healing Touch", ModType = "SpellDamage", }, },
+ ["Empowered Rejuvenation"] = { [1] = { Effect = 0.04, Spells = { "Rejuvenation", "Regrowth" }, ModType = "SpellDamage", Multiply = true, },
+ [2] = { Effect = 0.04, Spells = { "Regrowth", "Lifebloom", }, ModType = "DotSpellDamage", Multiply = true, },
+ },
--IGNORE BELOW: Only added due to translation issues
- ["Revenge"] = { Locale = { "deDE", "frFR" }, Effect = 0.1, Spells = { "Starfire", "Moonfire", "Wrath" }, ModType = "CritMultiplier", },
+ ["Revenge"] = { [1] = { Locale = { "deDE", "frFR" }, Effect = 0.1, Spells = { "Starfire", "Moonfire", "Wrath" }, ModType = "CritMultiplier", }, },
},
}
Modified: trunk/DrDamage/Data/Mage.lua
==============================================================================
--- trunk/DrDamage/Data/Mage.lua (original)
+++ trunk/DrDamage/Data/Mage.lua Sun Jul 1 12:28:15 2007
@@ -247,38 +247,35 @@
},
talentInfo = {
--ARCANE:
- --All
- ["Arcane Instability"] = { Effect = 0.01, Spells = { "All" }, },
- ["Spell Power"] = { Effect = 0.125, Spells = { "All" }, ModType = "CritMultiplier", },
- --Spell specific
- ["Arcane Focus"] = { Effect = 2, Spells = { "Arcane" }, ModType = "Hit", },
- ["Arcane Impact"] = { Effect = 2, Spells = { "Arcane Explosion", "Arcane Blast" }, ModType = "Crit", },
- ["Empowered Arcane Missiles"] = { Effect = 0.15, Spells = { "Arcane Missiles" }, ModType = "SpellDamage", },
+ ["Arcane Instability"] = { [1] = { Effect = 0.01, Spells = "All", }, },
+ ["Spell Power"] = { [1] = { Effect = 0.125, Spells = "All", ModType = "CritMultiplier", }, },
+ ["Arcane Focus"] = { [1] = { Effect = 2, Spells = "Arcane", ModType = "Hit", }, },
+ ["Arcane Impact"] = { [1] = { Effect = 2, Spells = { "Arcane Explosion", "Arcane Blast" }, ModType = "Crit", }, },
+ ["Empowered Arcane Missiles"] = { [1] = { Effect = 0.15, Spells = "Arcane Missiles", ModType = "SpellDamage", }, },
--FIRE:
- --All/School specific:
- ["Master of Elements"] = { Effect = 0.1, Spells = { "All" }, ModType = "FreeCrit" },
- ["Playing with Fire"] = { Effect = 0.01, Spells = { "All" }, },
- ["Ignite"] = { Effect = 0.08, Spells = { "Fire" }, ModType = "Ignite", },
- ["Fire Power"] = { Effect = 0.02, Spells = { "Fire" }, },
- --Spell specific
- ["Improved Fireball"] = { Effect = 1, Spells = { "Fireball" }, ModType = "CastTime" },
- ["Empowered Fireball"] = { Effect = 0.03, Spells = { "Fireball" }, ModType = "SpellDamage", },
- ["Incineration"] = { Effect = 2, Spells = { "Fire Blast", "Scorch", }, ModType = "Crit", },
- ["Improved Flamestrike"] = { Effect = 5, Spells = { "Flamestrike" }, ModType = "Crit", },
- ["Improved Fire Blast"] = { Effect = 0.5, Spells = { "Fire Blast" }, ModType = "Cooldown", },
+ ["Master of Elements"] = { [1] = { Effect = 0.1, Spells = "All", ModType = "FreeCrit" }, },
+ ["Playing with Fire"] = { [1] = { Effect = 0.01, Spells = "All", }, },
+ ["Ignite"] = { [1] = { Effect = 0.08, Spells = "Fire", ModType = "Ignite", }, },
+ ["Improved Fireball"] = { [1] = { Effect = 1, Spells = "Fireball", ModType = "CastTime" }, },
+ ["Empowered Fireball"] = { [1] = { Effect = 0.03, Spells = "Fireball", ModType = "SpellDamage", }, },
+ ["Incineration"] = { [1] = { Effect = 2, Spells = { "Fire Blast", "Scorch", }, ModType = "Crit", }, },
+ ["Improved Flamestrike"] = { [1] = { Effect = 5, Spells = "Flamestrike", ModType = "Crit", }, },
+ ["Improved Fire Blast"] = { [1] = { Effect = 0.5, Spells = "Fire Blast", ModType = "Cooldown", }, },
--FROST:
- ["Elemental Precision"] = { Effect = 1, Spells = { "Frost", "Fire" }, ModType = "Hit" },
- ["Improved Frostbolt"] = { Effect = 1, Spells = { "Frostbolt" }, ModType = "CastTime" },
- ["Ice Shards"] = { Effect = 0.10, Spells = { "Frost" }, ModType = "CritMultiplier", },
- ["Shatter"] = { Effect = 1, Spells = { "All" }, ModType = "BuffTalentRanks" },
- ["Piercing Ice"] = { Effect = 0.02, Spells = { "Frost" }, },
- ["Improved Cone of Cold"] = { Effect = { 0.15, 0.25, 0.35, }, Spells = { "Cone of Cold" }, },
- ["Empowered Frostbolt"] = { Effect = 0.02, Spells = { "Frostbolt" }, ModType = "SpellDamage", Effect2 = 1, Spells2 = { "Frostbolt" }, ModType2 = "Crit" },
- ["Arctic Winds"] = { Effect = 0.01, Spells = { "Frost" }, },
+ ["Elemental Precision"] = { [1] = { Effect = 1, Spells = { "Frost", "Fire" }, ModType = "Hit" }, },
+ ["Improved Frostbolt"] = { [1] = { Effect = 1, Spells = "Frostbolt", ModType = "CastTime" }, },
+ ["Ice Shards"] = { [1] = { Effect = 0.10, Spells = "Frost", ModType = "CritMultiplier", }, },
+ ["Shatter"] = { [1] = { Effect = 1, Spells = "All", ModType = "BuffTalentRanks" }, },
+ ["Piercing Ice"] = { [1] = { Effect = 0.02, Spells = "Frost", }, },
+ ["Improved Cone of Cold"] = { [1] = { Effect = { 0.15, 0.25, 0.35, }, Spells = "Cone of Cold", }, },
+ ["Empowered Frostbolt"] = { [1] = { Effect = 0.02, Spells = "Frostbolt", ModType = "SpellDamage", },
+ [2] = { Effect = 1, Spells = "Frostbolt", ModType = "Crit" }, },
+ },
+ ["Arctic Winds"] = { [1] = { Effect = 0.01, Spells = "Frost", },
--IGNORE BELOW: Only added due to translation issues, BabbleSpell will translate Incineration into Combustion due to identical names in German clients.
- ["Incinerate"] = { Locale = "koKR", Effect = 2, Spells = { "Fire Blast", "Scorch", }, ModType = "Crit", },
- ["Combustion"] = { Locale = "deDE", Effect = 2, Spells = { "Fire Blast", "Scorch", }, ModType = "Crit", },
+ ["Incinerate"] = { [1] = { Locale = "koKR", Effect = 2, Spells = { "Fire Blast", "Scorch", }, ModType = "Crit", }, },
+ ["Combustion"] = { [1] = { Locale = "deDE", Effect = 2, Spells = { "Fire Blast", "Scorch", }, ModType = "Crit", }, },
},
}
Modified: trunk/DrDamage/Data/Paladin.lua
==============================================================================
--- trunk/DrDamage/Data/Paladin.lua (original)
+++ trunk/DrDamage/Data/Paladin.lua Sun Jul 1 12:28:15 2007
@@ -146,7 +146,7 @@
DrDamage.PlayerAura["Divine Favor"] = { Spell = { BS["Flash of Light"], BS["Holy Light"], BS["Holy Shock"], }, ModType = "Crit", Value = 100, }
DrDamage.Debuffs["Seal of Vengeance"] = { ModType = "ActiveAura", Spell = BS["Seal of Vengeance"], ActiveAura = true }
- DrDamage.Debuffs["Judgement of the Crusader"] = { School = { "Holy", "Physical" }, ModType = "JotC", Ranks = 7, Value = { 20, 30, 50, 80, 110, 140, 190 }, }
+ DrDamage.Debuffs["Judgement of the Crusader"] = { ModType = "JotC", School = { "Holy", "Physical" }, Ranks = 7, Value = { 20, 30, 50, 80, 110, 140, 190 }, }
DrDamage.Debuffs["Intercept Stun"] = { Stun = true, Spell = BS["Seal of Command"], }
DrDamage.Debuffs["Starfire Stun"] = { Stun = true, Spell = BS["Seal of Command"], }
@@ -289,21 +289,22 @@
},
talentInfo = {
--Holy:
- ["Improved Seal of Righteousness"] = { Effect = 0.03, Spells = { "Seal of Righteousness", }, },
- ["Healing Light"] = { Effect = 0.04, Spells = { "Holy Light", "Flash of Light", }, },
- ["Sanctified Light"] = { Effect = 2, Spells = { "Holy Light", }, ModType = "Crit" },
- ["Improved Seal of the Crusader"] = { Effect = 1, Spells = { "Holy" }, ModType = "BuffTalentRanks" },
- ["Illumination"] = { Effect = 0.12, Spells = { "Holy Light", "Flash of Light", "Holy Shock" }, ModType = "FreeCrit" },
- ["Purifying Power"] = { Effect = 10, Spells = { "Holy Wrath", "Exorcism", }, ModType = "Crit" },
+ ["Improved Seal of Righteousness"] = { [1] = { Effect = 0.03, Spells = "Seal of Righteousness", }, },
+ ["Healing Light"] = { [1] = { Effect = 0.04, Spells = { "Holy Light", "Flash of Light", }, }, },
+ ["Sanctified Light"] = { [1] = { Effect = 2, Spells = "Holy Light", ModType = "Crit" }, },
+ ["Improved Seal of the Crusader"] = { [1] = { Effect = 1, Spells = "Holy", ModType = "BuffTalentRanks" }, },
+ ["Illumination"] = { [1] = { Effect = 0.12, Spells = { "Holy Light", "Flash of Light", "Holy Shock" }, ModType = "FreeCrit" }, },
+ ["Purifying Power"] = { [1] = { Effect = 10, Spells = { "Holy Wrath", "Exorcism", }, ModType = "Crit" }, },
--Retribution:
- ["Crusade"] = { Effect = 0.01, Spells = { "All" }, ModType = "Crusade" },
- ["Vengeance"] = { Effect = 1, Spells = { "Holy" }, ModType = "BuffTalentRanks", },
- ["Sanctified Crusader"] = { Effect = 1, Spells = { "All" }, ModType = "BuffTalentRanks" },
- ["Improved Sanctity Aura"] = { Effect = 1, Spells = { "All" }, ModType = "BuffTalentRanks" },
- ["Fanaticism"] = { Effect = 3, Spells = { "Judgement" }, ModType = "Crit" },
-
- ["Improved Holy Shield"] = { Effect = 0.1, Spells = { "Holy Shield" }, Effect2 = 2, Spells2 = { "Holy Shield" }, ModType2 = "Improved Holy Shield" },
- ["One-Handed Weapon Specialization"] = { Effect = 0.01, Spells = { "All" }, ModType = "One-Handed Weapon Specialization" },
+ ["Crusade"] = { [1] = { Effect = 0.01, Spells = "All", ModType = "Crusade" }, },
+ ["Vengeance"] = { [1] = { Effect = 1, Spells = "Holy", ModType = "BuffTalentRanks", }, },
+ ["Sanctified Crusader"] = { [1] = { Effect = 1, Spells = "All", ModType = "BuffTalentRanks" }, },
+ ["Improved Sanctity Aura"] = { [1] = { Effect = 1, Spells = "All", ModType = "BuffTalentRanks" }, },
+ ["Fanaticism"] = { [1] = { Effect = 3, Spells = "Judgement", ModType = "Crit" }, },
+ ["Improved Holy Shield"] = { [1] = { Effect = 0.1, Spells = "Holy Shield", },
+ [2] = { Effect = 2, Spells = "Holy Shield", ModType = "Improved Holy Shield" },
+ },
+ ["One-Handed Weapon Specialization"] = { [1] = { Effect = 0.01, Spells = "All", ModType = "One-Handed Weapon Specialization" }, },
},
}
Modified: trunk/DrDamage/Data/Priest.lua
==============================================================================
--- trunk/DrDamage/Data/Priest.lua (original)
+++ trunk/DrDamage/Data/Priest.lua Sun Jul 1 12:28:15 2007
@@ -253,20 +253,24 @@
},
talentInfo = {
--SHADOW:
- ["Shadow Focus"] = { Effect = 2, Spells = { "Shadow", }, ModType = "Hit" },
- ["Darkness"] = { Effect = 0.02, Spells = { "Shadow" }, },
- ["Improved Shadow Word: Pain"] = { Effect = 3, Spells = { "Shadow Word: Pain" }, ModType = "SpellDuration", },
- ["Shadow Power"] = { Effect = 3, Spells = { "Mind Blast", "Shadow Word: Death" }, ModType = "Crit", },
- ["Improved Mind Blast"] = { Effect = 0.5, Spells = { "Mind Blast" }, ModType = "Cooldown" },
+ ["Shadow Focus"] = { [1] = { Effect = 2, Spells = "Shadow", ModType = "Hit" }, },
+ ["Darkness"] = { [1] = { Effect = 0.02, Spells = "Shadow" }, },
+ ["Improved Shadow Word: Pain"] = { [1] = { Effect = 3, Spells = "Shadow Word: Pain", ModType = "SpellDuration", }, },
+ ["Shadow Power"] = { [1] = { Effect = 3, Spells = { "Mind Blast", "Shadow Word: Death" }, ModType = "Crit", }, },
+ ["Improved Mind Blast"] = { [1] = { Effect = 0.5, Spells = "Mind Blast", ModType = "Cooldown" }, },
--HOLY:
- ["Improved Renew"] = { Effect = 0.05, Spells = { "Renew" }, },
- ["Divine Fury"] = { Effect = 1, Spells = { "Smite", "Holy Fire", "Heal", "Greater Heal" }, ModType = "CastTime", },
- ["Searing Light"] = { Effect = 0.05, Spells = { "Smite", "Holy Fire" }, },
- ["Spiritual Healing"] = { Effect = 0.02, Spells = { "Healing" }, },
- ["Empowered Healing"] = { Effect = 0.04, Spells = { "Greater Heal" }, ModType = "SpellDamage", Effect2 = 0.02, Spells2 = { "Flash Heal", "Binding Heal" }, ModType2 = "SpellDamage", },
+ ["Improved Renew"] = { [1] = { Effect = 0.05, Spells = "Renew", }, },
+ ["Divine Fury"] = { [1] = { Effect = 1, Spells = { "Smite", "Holy Fire", "Heal", "Greater Heal" }, ModType = "CastTime", }, },
+ ["Searing Light"] = { [1] = { Effect = 0.05, Spells = { "Smite", "Holy Fire" }, }, },
+ ["Spiritual Healing"] = { [1] = { Effect = 0.02, Spells = "Healing", }, },
+ ["Empowered Healing"] = { [1] = { Effect = 0.04, Spells = "Greater Heal", ModType = "SpellDamage", },
+ [2] = { Effect = 0.02, Spells = { "Flash Heal", "Binding Heal" }, ModType = "SpellDamage", },
+ },
--DISCIPLINE:
- ["Improved Power Word: Shield"] = { Effect = 0.05, Spells = { "Power Word: Shield" }, },
- ["Force of Will"] = { Effect = 1, Spells = { "Smite", "Holy Fire", "Mind Blast", "Shadow Word: Death", }, ModType = "Crit", Effect2 = 0.01, Spells2 = { "Smite", "Holy Fire", "Starshards", "Shadow", }, },
+ ["Improved Power Word: Shield"] = { [1] = { Effect = 0.05, Spells = "Power Word: Shield", }, },
+ ["Force of Will"] = { [1] = { Effect = 1, Spells = { "Smite", "Holy Fire", "Mind Blast", "Shadow Word: Death", }, ModType = "Crit", },
+ [2] = { Effect = 0.01, Spells = { "Smite", "Holy Fire", "Starshards", "Shadow", }, },
+ },
},
}
Modified: trunk/DrDamage/Data/Shaman.lua
==============================================================================
--- trunk/DrDamage/Data/Shaman.lua (original)
+++ trunk/DrDamage/Data/Shaman.lua Sun Jul 1 12:28:15 2007
@@ -213,24 +213,24 @@
},
},
talentInfo = {
- ["Concussion"] = { Effect = 0.01, Spells = { "Nuke", "Shock" }, },
- ["Call of Flame"] = { Effect = 0.05, Spells = { "OffensiveTotem" }, },
- ["Call of Thunder"] = { Effect = { 1, 2, 3, 4, 6 } , Spells = { "Nuke" }, ModType = "Crit", },
- ["Elemental Focus"] = { Effect = 0.6, Spells = { "Nuke", "Shock", }, ModType = "FreeCrit" },
- ["Lightning Mastery"] = { Effect = 1, Spells = { "Nuke" }, ModType = "CastTime", },
- ["Elemental Fury"] = { Effect = 0.5, Spells = { "Nuke", "Shock", "OffensiveTotem" }, ModType="CritMultiplier", },
- ["Elemental Precision"] = { Effect = 2, Spells = { "Lightning Shield", "Nuke", "Shock", "OffensiveTotem", }, ModType = "Hit", },
- ["Nature's Guidance"] = { Effect = 1, Spells = { "All" }, ModType = "Hit", },
- ["Improved Lightning Shield"] = { Effect = 0.05, Spells = { "Lightning Shield" }, },
- ["Tidal Mastery"] = { Effect = 1, Spells = { "Healing", "Nuke" }, ModType = "Crit", },
- ["Purification"] = { Effect = 0.02, Spells = { "Healing" }, Effect2 = 1, Spells2 = { "Earth Shield" }, ModType2 = "BuffTalentRanks", },
- ["Improved Chain Heal"] = { Effect = 0.10, Spells = { "Chain Heal" }, },
- ["Improved Healing Wave"] = { Effect = 1, Spells = { "Healing Wave" }, ModType = "CastTime" },
- ["Restorative Totems"] = { Effect = 0.05, Spells = { "Healing Stream Totem" }, },
- ["Reverberation"] = { Effect = 0.2, Spells = { "Shock" }, ModType = "Cooldown" },
+ ["Concussion"] = { [1] = { Effect = 0.01, Spells = { "Nuke", "Shock" }, }, },
+ ["Call of Flame"] = { [1] = { Effect = 0.05, Spells = "OffensiveTotem" }, },
+ ["Call of Thunder"] = { [1] = { Effect = { 1, 2, 3, 4, 6 } , Spells = "Nuke", ModType = "Crit", }, },
+ ["Elemental Focus"] = { [1] = { Effect = 0.6, Spells = { "Nuke", "Shock" }, ModType = "FreeCrit" }, },
+ ["Lightning Mastery"] = { [1] = { Effect = 1, Spells = "Nuke", ModType = "CastTime", }, },
+ ["Elemental Fury"] = { [1] = { Effect = 0.5, Spells = { "Nuke", "Shock", "OffensiveTotem" }, ModType= "CritMultiplier", }, },
+ ["Elemental Precision"] = { [1] = { Effect = 2, Spells = { "Lightning Shield", "Nuke", "Shock", "OffensiveTotem", }, ModType = "Hit", }, },
+ ["Nature's Guidance"] = { [1] = { Effect = 1, Spells = "All", ModType = "Hit", }, },
+ ["Improved Lightning Shield"] = { [1] = { Effect = 0.05, Spells = "Lightning Shield", }, },
+ ["Tidal Mastery"] = { [1] = { Effect = 1, Spells = { "Healing", "Nuke" }, ModType = "Crit", }, },
+ ["Purification"] = { [1] = { Effect = 0.02, Spells = "Healing", },
+ [2] = { Effect = 1, Spells = "Earth Shield", ModType = "BuffTalentRanks", },
+ },
+ ["Improved Chain Heal"] = { [1] = { Effect = 0.10, Spells = "Chain Heal", }, },
+ ["Improved Healing Wave"] = { [1] = { Effect = 1, Spells = "Healing Wave", ModType = "CastTime" }, },
+ ["Restorative Totems"] = { [1] = { Effect = 0.05, Spells = "Healing Stream Totem", }, },
+ ["Reverberation"] = { [1] = { Effect = 0.2, Spells = "Shock", ModType = "Cooldown" }, },
},
-
}
-
return ShamanTable["spellInfo"], ShamanTable["talentInfo"]
end
\ No newline at end of file
Modified: trunk/DrDamage/Data/Warlock.lua
==============================================================================
--- trunk/DrDamage/Data/Warlock.lua (original)
+++ trunk/DrDamage/Data/Warlock.lua Sun Jul 1 12:28:15 2007
@@ -306,24 +306,24 @@
},
talentInfo = {
--Affliction:
- ["Shadow Mastery"] = { Effect = 0.02, Spells = { "Shadow" }, },
- ["Suppression"] = { Effect = 2, Spells = { "Affliction", }, ModType ="Hit", },
- ["Improved Corruption"] = { Effect = 1, Spells = { "Corruption" }, ModType = "CastTime" },
- ["Soul Siphon"] = { Effect = 1, Spells = { "Drain Life" }, ModType = "BuffTalentRanks", },
- ["Improved Life Tap"] = { Effect = 0.10, Spells = { "Life Tap" }, },
- ["Improved Curse of Agony"] = { Effect = 0.05, Spells = { "Curse of Agony" }, Add = true, }, --Multiplicative?
- ["Empowered Corruption"] = { Effect = 0.12, Spells = { "Corruption" }, ModType = "SpellDamage", },
- ["Contagion"] = { Effect = 0.01, Spells = { "Curse of Agony", "Corruption", "Seed of Corruption" }, Add = true, },
+ ["Shadow Mastery"] = { [1] = { Effect = 0.02, Spells = "Shadow" }, },
+ ["Suppression"] = { [1] = { Effect = 2, Spells = "Affliction", ModType = "Hit", }, },
+ ["Improved Corruption"] = { [1] = { Effect = 1, Spells = "Corruption", ModType = "CastTime" }, },
+ ["Soul Siphon"] = { [1] = { Effect = 1, Spells = "Drain Life", ModType = "BuffTalentRanks", }, },
+ ["Improved Life Tap"] = { [1] = { Effect = 0.10, Spells = "Life Tap", }, },
+ ["Improved Curse of Agony"] = { [1] = { Effect = 0.05, Spells = "Curse of Agony", Add = true, }, },
+ ["Empowered Corruption"] = { [1] = { Effect = 0.12, Spells = "Corruption", ModType = "SpellDamage", }, },
+ ["Contagion"] = { [1] = { Effect = 0.01, Spells = { "Curse of Agony", "Corruption", "Seed of Corruption" }, Add = true, }, },
--Destruction:
- ["Emberstorm"] = { Effect = 0.02, Spells = { "Fire" }, },
- ["Improved Immolate"] = { Effect = 0.05, Spells = { "Immolate" }, ModType = "BaseNuke" },
- ["Shadow and Flame"] = { Effect = 0.04, Spells = { "Shadow Bolt", "Incinerate" }, ModType = "SpellDamage", },
- ["Bane"] = { Effect = 1, Spells = { "Shadow Bolt", "Immolate", "Soul Fire" }, ModType = "CastTime" },
- ["Devastation"] = { Effect = 1, Spells = { "Destruction" }, ModType = "Crit", },
- ["Improved Searing Pain"] = { Effect = { 4, 7, 10, }, Spells = { "Searing Pain" }, ModType = "Crit", },
- ["Ruin"] = { Effect = 0.5, Spells = { "Destruction" }, ModType = "CritMultiplier", },
+ ["Emberstorm"] = { [1] = { Effect = 0.02, Spells = "Fire" }, },
+ ["Improved Immolate"] = { [1] = { Effect = 0.05, Spells = "Immolate", ModType = "BaseNuke" }, },
+ ["Shadow and Flame"] = { [1] = { Effect = 0.04, Spells = { "Shadow Bolt", "Incinerate" }, ModType = "SpellDamage", }, },
+ ["Bane"] = { [1] = { Effect = 1, Spells = { "Shadow Bolt", "Immolate", "Soul Fire" }, ModType = "CastTime" }, },
+ ["Devastation"] = { [1] = { Effect = 1, Spells = "Destruction", ModType = "Crit", }, },
+ ["Improved Searing Pain"] = { [1] = { Effect = { 4, 7, 10, }, Spells = "Searing Pain", ModType = "Crit", }, },
+ ["Ruin"] = { [1] = { Effect = 0.5, Spells = "Destruction", ModType = "CritMultiplier", }, },
--Demonology:
- ["Master Demonologist"] = { Effect = 1, Spells = { "All" }, ModType = "BuffTalentRanks" },
+ ["Master Demonologist"] = { [1] = { Effect = 1, Spells = "All", ModType = "BuffTalentRanks" }, },
},
}
return WarlockTable["spellInfo"], WarlockTable["talentInfo"]
Modified: trunk/DrDamage/DrDamage.lua
==============================================================================
--- trunk/DrDamage/DrDamage.lua (original)
+++ trunk/DrDamage/DrDamage.lua Sun Jul 1 12:28:15 2007
@@ -1841,14 +1841,16 @@
calculation.spellDmgM_AddTalent = 0 --Talents: Spell damage multiplier additive
calculation.dmgM_AddTalent = 0 --Talents: Damage multiplier additive
calculation.spellDmgM_AddNoDownrank = 0 --Additive spell damage modifier (not affected by downranking)
- calculation.dotSpellDmgM = 0 --Dot portion spelldamage modifier
+ calculation.dotSpellDmgM = calculation.eDuration / 15 --Dot portion spelldamage modifier
calculation.cooldown = baseSpell.Cooldown or 0 --Spell's cooldown
calculation.finalMod = 0 --Modifier to final damage +/-
calculation.dotFinalMod = 0 --Modifier to final dot damage +/-
calculation.minDam = spell[1] --Spell initial base min damage
calculation.maxDam = spell[2] --Spell initial base max damage
calculation.chainFactor = baseSpell.chainFactor --Chain effect spells
- calculation.manaRegen = select(2, GetManaRegen( "player" )) --Mana regen while casting
+ calculation.manaRegen = select(2, GetManaRegen( "player" )) --Mana regen while casting
+ calculation.lowRankFactor = 1
+ calculation.lowLevelFactor = 1
if type( baseSpell.School ) == "table" then
calculation.spellSchool = baseSpell.School[1]
@@ -1874,6 +1876,26 @@
else
calculation.spellDmgM = ( calculation.castTime / 3.5)
end
+
+ --Factor for downranking
+ if not baseSpell.NoDownRank then
+ local playerLevel = UnitLevel("player")
+ local downRankMod = spell.Downrank or baseSpell.Downrank or 0
+ local lowRankFactor = ( spell.spellLevel + 11 + downRankMod ) / playerLevel
+
+ if lowRankFactor < 1 then
+ calculation.lowRankFactor = lowRankFactor
+ end
+ end
+
+ --Factor for spells under level 20
+ if spell.spellLevel and spell.spellLevel < 20 and not baseSpell.NoLowLevelPenalty then
+ local lowLevelFactor = 1 - ((20 - spell.spellLevel) * 0.0375)
+
+ if lowLevelFactor < 1 and lowLevelFactor > 0 then
+ calculation.lowLevelFactor = lowLevelFactor
+ end
+ end
--Calculate base hit chance (only if needed)
if settings.HitTarget and UnitLevel( "target" ) ~= lastTargetLevel then
@@ -1914,8 +1936,6 @@
calculation.maxDam = calculation.maxDam + data[i+1]
elseif modType == "Final" then
calculation.finalMod = calculation.finalMod + data[i+1]
- elseif modType == "Dot" then
- calculation.dotFinalMod = calculation.dotFinalMod + data[i+1]
end
end
end
@@ -1923,7 +1943,7 @@
end
end
end
-
+
if not healingSpell then
if UnitCreatureType( "target" ) == "Undead" then
if IsEquippedItem( 19182 ) then --Rune of the Dawn
@@ -1940,6 +1960,33 @@
end
end
+ --Adding to spells base damage after levelups:
+ if baseSpell.BaseIncrease then
+ local playerLevel = UnitLevel("player")
+
+ if playerLevel > spell.spellLevel then
+ local spellmaxLevel
+ if baseSpell.LevelIncrease then
+ spellmaxLevel = spell.spellLevel + baseSpell.LevelIncrease
+ if spellmaxLevel > 70 then spellmaxLevel = 70 end
+ else
+ spellmaxLevel = 70
+ end
+ if playerLevel >= spellmaxLevel then
+ calculation.minDam = calculation.minDam + spell[3]
+ calculation.maxDam = calculation.maxDam + spell[4]
+ else
+ local diff = spellmaxLevel - spell.spellLevel
+
+ calculation.minDam = calculation.minDam + ( playerLevel - spell.spellLevel ) * ( spell[3] / diff )
+ calculation.maxDam = calculation.maxDam + ( playerLevel - spell.spellLevel ) * ( spell[4] / diff )
+ end
+ end
+
+ calculation.minDam = math_floor( calculation.minDam )
+ calculation.maxDam = math_ceil( calculation.maxDam )
+ end
+
--Manual variables from profile:
if settings.ManualDmg then
if not settings.ManualPlus then
@@ -1979,26 +2026,15 @@
--Apply talents
for talentName, talentRank in pairs( talents ) do
- local talent = talentEffects[talentName]
- local talentValue
-
- if type( talent.Effect ) == "table" then
- talentValue = talent.Effect[talentRank]
- else
- talentValue = talentRank * talent.Effect
- end
-
- for _, talentSpell in ipairs( talent.Spells ) do
- DrD_TalentCalc( baseSpell, spellName, talentName, talentSpell, talentValue, talent.ModType, talent.Add, talent.Multiply )
- end
-
- if talent.Spells2 then
- if talent.Effect2 then talentValue = talentRank * talent.Effect2 end
+ local talentTable = talentEffects[talentName]
+
+ for i = 1, #talentTable do
+ local talent = talentTable[i]
- for _, talentSpell in ipairs( talent.Spells2 ) do
- DrD_TalentCalc( baseSpell, spellName, talentName, talentSpell, talentValue, talent.ModType2, talent.Add2, talent.Multiply2 )
+ if DrD_MatchData( talent.Spells, spellName, calculation.spellType ) or not baseSpell.NoSchoolTalents and DrD_MatchData( talent.Spells, "All", calculation.spellSchool ) then
+ DrD_TalentCalc( baseSpell, talentName, talentRank, talent )
end
- end
+ end
end
--Add up additive components:
@@ -2137,9 +2173,25 @@
end
end
end
+ end
+
+ if self.SetBonuses[playerClass] then
+ self.SetBonuses[playerClass]( calculation, ActiveAuras )
+ end
+ if self.Calculation[playerClass] then
+ self.Calculation[playerClass]( calculation, ActiveAuras, BuffTalentRanks )
+ end
+ if self.SetBonuses[spellName] then
+ self.SetBonuses[spellName]( calculation, ActiveAuras )
+ end
+ if self.Calculation[spellName] then
+ self.Calculation[spellName]( calculation, ActiveAuras, BuffTalentRanks, spell )
+ end
+
+ --Calculate modified cast time
+ if GetCombatRatingBonus(20) > 1 and not baseSpell.Instant then
+ calculation.castTime = calculation.castTime / GetCombatRatingBonus(20)
end
-
- --Modified factors
--Split between bonus to dot and nuke
if baseSpell.hybridFactor then
@@ -2156,79 +2208,11 @@
calculation.spellDmgM = calculation.spellDmgM * spell.sFactor
end
- --Factor for downranking
- calculation.lowRankFactor = 1
-
- if not baseSpell.NoDownRank then
- local playerLevel = UnitLevel("player")
- local downRankMod = spell.Downrank or baseSpell.Downrank or 0
- local lowRankFactor = ( spell.spellLevel + 11 + downRankMod ) / playerLevel
-
- if lowRankFactor < 1 then
- calculation.spellDmgM = calculation.spellDmgM * lowRankFactor
- calculation.lowRankFactor = lowRankFactor
- end
- end
-
- --Factor for spells under level 20
- calculation.lowLevelFactor = 1
-
- if spell.spellLevel and spell.spellLevel < 20 and not baseSpell.NoLowLevelPenalty then
- local lowLevelFactor = 1 - ((20 - spell.spellLevel) * 0.0375)
-
- if lowLevelFactor < 1 and lowLevelFactor > 0 then
- calculation.spellDmgM = calculation.spellDmgM * lowLevelFactor
- calculation.lowLevelFactor = lowLevelFactor
- end
- end
+ --Low rank and low level penalties
+ calculation.spellDmgM = calculation.spellDmgM * calculation.lowRankFactor * calculation.lowLevelFactor
--Add additive components with no downranking effect
- calculation.spellDmgM = calculation.spellDmgM + calculation.spellDmgM_AddNoDownrank
-
- --Adding to spells base damage after levelups:
- if baseSpell.BaseIncrease then
- local playerLevel = UnitLevel("player")
-
- if playerLevel > spell.spellLevel then
- local spellmaxLevel
- if baseSpell.LevelIncrease then
- spellmaxLevel = spell.spellLevel + baseSpell.LevelIncrease
- if spellmaxLevel > 70 then spellmaxLevel = 70 end
- else
- spellmaxLevel = 70
- end
- if playerLevel >= spellmaxLevel then
- calculation.minDam = calculation.minDam + spell[3]
- calculation.maxDam = calculation.maxDam + spell[4]
- else
- local diff = spellmaxLevel - spell.spellLevel
-
- calculation.minDam = calculation.minDam + ( playerLevel - spell.spellLevel ) * ( spell[3] / diff )
- calculation.maxDam = calculation.maxDam + ( playerLevel - spell.spellLevel ) * ( spell[4] / diff )
- end
- end
-
- calculation.minDam = math_floor( calculation.minDam )
- calculation.maxDam = math_ceil( calculation.maxDam )
- end
-
- if self.SetBonuses[playerClass] then
- self.SetBonuses[playerClass]( calculation, ActiveAuras )
- end
- if self.Calculation[playerClass] then
- self.Calculation[playerClass]( calculation, ActiveAuras, BuffTalentRanks )
- end
- if self.SetBonuses[spellName] then
- self.SetBonuses[spellName]( calculation, ActiveAuras )
- end
- if self.Calculation[spellName] then
- self.Calculation[spellName]( calculation, ActiveAuras, BuffTalentRanks, spell )
- end
-
- --Calculate modified cast time
- if GetCombatRatingBonus(20) > 1 and not baseSpell.Instant then
- calculation.castTime = calculation.castTime / GetCombatRatingBonus(20)
- end
+ calculation.spellDmgM = calculation.spellDmgM + calculation.spellDmgM_AddNoDownrank
local returnAvgTotal, returnDPS, returnDPSC, returnAvg, returnMinDmg, returnMaxDmg, returnAvgHitTotal, returnMaxCritDmg = DrD_DmgCalc( spellName, baseSpell, spell, false, false, tooltip )
@@ -2295,13 +2279,8 @@
end
if calculation.finalMod ~= 0 then
- if calculation.finalMod > 0 then
- calcMinDmg = calcMinDmg + calculation.finalMod * calculation.dmgM * calculation.lowLevelFactor
- calcMaxDmg = calcMaxDmg + calculation.finalMod * calculation.dmgM * calculation.lowLevelFactor
- else
- calcMinDmg = calcMinDmg + calculation.finalMod
- calcMaxDmg = calcMaxDmg + calculation.finalMod
- end
+ calcMinDmg = calcMinDmg + calculation.finalMod
+ calcMaxDmg = calcMaxDmg + calculation.finalMod
if calcMinDmg < 0 then
calcMinDmg = 0
@@ -2371,7 +2350,7 @@
sFactor = baseSpell.hybridDotFactor * sFactor
end
- hybridDmgM = ( baseDuration / 15 + calculation.dotSpellDmgM ) * ( 1 - hybridFactor ) * sFactor * calculation.lowRankFactor * calculation.lowLevelFactor
+ hybridDmgM = calculation.dotSpellDmgM * ( 1 - hybridFactor ) * sFactor * calculation.lowRankFactor * calculation.lowLevelFactor
calcDotDmg = calculation.dmgM * ( hybridDmgM * calculation.spellDmg + spell.hybridDotDmg )
dispSpellDmgM = dispSpellDmgM + hybridDmgM
@@ -2394,7 +2373,7 @@
dispSpellDmgM = dispSpellDmgM + baseSpell.extraDotF * calculation.lowRankFactor * calculation.lowLevelFactor
end
end
-
+
calcDotDmg = calcDotDmg + calculation.dotFinalMod
--For chain effects (chain lightning, chain heal)
@@ -2529,68 +2508,80 @@
end
end
-DrD_TalentCalc = function( baseSpell, spellName, talentName, talentSpell, talentValue, ModType, add, multiply )
- if ( talentSpell == "All" or talentSpell == calculation.spellSchool ) and not baseSpell.NoSchoolTalents or talentSpell == calculation.spellType or talentSpell == spellName then
- if not ModType then
- if add then
- calculation.dmgM_AddTalent = calculation.dmgM_AddTalent + talentValue
- else
- calculation.dmgM = calculation.dmgM * ( 1 + talentValue )
- end
- elseif ModType == "SpellDamage" then
- if multiply then
- calculation.spellDmgM = calculation.spellDmgM * ( 1 + talentValue )
- else
- calculation.spellDmgM_AddTalent = calculation.spellDmgM_AddTalent + talentValue
- end
- elseif ModType == "Crit" then
- calculation.critPerc = calculation.critPerc + talentValue
- elseif ModType == "Hit" then
- calculation.hitPerc = calculation.hitPerc + talentValue
- elseif ModType == "CastTime" then
- if baseSpell.CastMod then
- calculation.castTime = calculation.castTime - baseSpell.CastMod * talentValue
- end
-
- if baseSpell.CastModDmg then
- calculation.spellDmgM = calculation.spellDmgM * ( 1 - baseSpell.CastModDmg * talentValue )
- end
- elseif ModType == "BaseNuke" then
- calculation.bNukeDmg = talentValue
- elseif ModType == "BaseDamage" then
- calculation.bDmgM = calculation.bDmgM + talentValue
- elseif ModType == "DotSpellDamage" then
- calculation.dotSpellDmgM = calculation.dotSpellDmgM + talentValue
- elseif ModType == "CritMultiplier" then
- calculation.critM = calculation.critM + talentValue
- elseif ModType == "SpellDuration" then
- calculation.eDuration = calculation.eDuration + talentValue
- elseif ModType == "Cooldown" then
- calculation.cooldown = calculation.cooldown - talentValue
- elseif ModType == "BuffTalentRanks" then
- BuffTalentRanks[talentName] = talentValue
- elseif ModType == "FreeCrit" then
- calculation.freeCrit = talentValue
+DrD_TalentCalc = function( baseSpell, talentName, talentRank, talent )
+ local modType = talent.ModType
+ local talentValue
+
+ if type( talent.Effect ) == "table" then
+ talentValue = talent.Effect[talentRank]
+ else
+ talentValue = talent.Effect * talentRank
+ end
+
+ if not modType then
+ if talent.Add then
+ calculation.dmgM_AddTalent = calculation.dmgM_AddTalent + talentValue
+ else
+ calculation.dmgM = calculation.dmgM * ( 1 + talentValue )
+ end
+ elseif modType == "SpellDamage" then
+ if talent.Multiply then
+ calculation.spellDmgM = calculation.spellDmgM * ( 1 + talentValue )
+ else
+ calculation.spellDmgM_AddTalent = calculation.spellDmgM_AddTalent + talentValue
+ end
+ elseif modType == "Crit" then
+ calculation.critPerc = calculation.critPerc + talentValue
+ elseif modType == "Hit" then
+ calculation.hitPerc = calculation.hitPerc + talentValue
+ elseif modType == "CastTime" then
+ if baseSpell.CastMod then
+ calculation.castTime = calculation.castTime - baseSpell.CastMod * talentValue
end
- if ModType then
- if DrDamage.Calculation[ModType] then DrDamage.Calculation[ModType]( calculation, talentValue ) end
+ if baseSpell.CastModDmg then
+ calculation.spellDmgM = calculation.spellDmgM * ( 1 - baseSpell.CastModDmg * talentValue )
+ end
+ elseif modType == "BaseNuke" then
+ calculation.bNukeDmg = talentValue
+ elseif modType == "BaseDamage" then
+ calculation.bDmgM = calculation.bDmgM + talentValue
+ elseif modType == "DotSpellDamage" then
+ if talent.Multiply then
+ calculation.dotSpellDmgM = calculation.dotSpellDmgM * ( 1 + talentValue )
+ else
+ calculation.dotSpellDmgM = calculation.dotSpellDmgM + talentValue
end
+ elseif modType == "CritMultiplier" then
+ calculation.critM = calculation.critM + talentValue
+ elseif modType == "SpellDuration" then
+ calculation.eDuration = calculation.eDuration + talentValue
+ elseif modType == "Cooldown" then
+ calculation.cooldown = calculation.cooldown - talentValue
+ elseif modType == "BuffTalentRanks" then
+ BuffTalentRanks[talentName] = talentValue
+ elseif modType == "FreeCrit" then
+ calculation.freeCrit = talentValue
+ end
+
+ if modType then
+ if DrDamage.Calculation[modType] then DrDamage.Calculation[modType]( calculation, talentValue ) end
end
end
DrD_BuffCalc = function( bName, bData, index, apps, texture, rank, spellName )
+ local modType = bData.ModType
+
if bData.ActiveAura then
if apps and apps > 0 then
ActiveAuras[bName] = apps
else
ActiveAuras[bName] = ( ActiveAuras[bName] or 0 ) + 1
end
+ if modType == "ActiveAura" then return end
end
if not bData.Value then return end
-
- local modType = bData.ModType
if bData.Ranks then
if rank then
@@ -2606,9 +2597,9 @@
calculation.spellDmg = calculation.spellDmg + bData.Value[rank]
elseif modType == "RankTable2" then
if spellName == bData.Spell[1] then
- calculation.finalMod = calculation.finalMod + bData.Value[rank]
+ calculation.finalMod = calculation.finalMod + bData.Value[rank] * calculation.lowLevelFactor * calculation.dmgM
elseif spellName == bData.Spell[2] then
- calculation.finalMod = calculation.finalMod + bData.Value2[rank]
+ calculation.finalMod = calculation.finalMod + bData.Value2[rank] * calculation.lowLevelFactor * calculation.dmgM
end
elseif modType == "JotC" then
ActiveAuras[bName] = bData.Value[rank]