diff --git a/RatingBuster/About RatingBuster.txt b/RatingBuster/About RatingBuster.txt deleted file mode 100644 index a08008a..0000000 --- a/RatingBuster/About RatingBuster.txt +++ /dev/null @@ -1,1125 +0,0 @@ -RatingBuster - A tool for item comparison - -************************ -** About RatingBuster ** -************************ - -RatingBuster started out as an addon that converts combat ratings in your tooltips into percentages, so that you have more meaningful information when comparing different items. - -The design aim of RatingBuster is to provide detailed, meaningful and customizable information about items so you can easily decide for yourself which item is better. - - -********************* -** Support Modules ** -********************* - -- RatingBuster_AlwaysBuffed: http://wow.curse.com/downloads/wow-addons/details/ratingbuster-alwaysbuffed.aspx - This addon enables RatingBuster to calculate selected buff effects even if you don't really have them. - -************** -** Features ** -************** - -- Rating Conversion: - Converts combat ratings into percentages. - -- Stat Breakdown: - Breakdown Strength, Agility, Stamina, Intellect and Spirit into base stats. - Supports talents, buffs and racials that give you extra bonuses. - Ex talent: Lunar Guidance - "Increases your spell damage and healing by 8%/16%/25% of your total Intellect." - Ex talent: Heart of the Wild - "Increases your Intellect by 4%/8%/12%/16%/20%. In addition, ......etc" - Ex: +13 Intellect (+234 Mana, +0.18% Spell Crit, +3.9 Dmg) - -- Stat Summary: - Summarizes all the stats from the item itself, enchants and gems, converts them to base stats and displays the total value and/or difference from your current equipped item. - Ex: Crit Chance - Adds up agility and crit rating from the item, enchant and gem. Converts agility and crit rating to crit chance, and displays the total in a single value. - -- Item Level and Item ID: - Item Level is obtained from the WoW API, not a calculated value. - Item ID is useful for advanced users. - -- Supports talents, buffs and racials that modify your stats for all classes. - -- Fully customizable, decide what you need to see and what you don't want. - - -************************************* -** Auto fill gems in empty sockets ** -************************************* - -1. You can set the default gems for each type of empty socket using "/rabu sum gem " or using the options window. -2. To specify the gem of your choice, you will need to give RatingBuster the ItemLink or the ItemID of the gem. -3. ItemLink example: type "/rabu sum gem blue " (last char is a space) and link the gem (from your bags, AH, ItemSync or whatever), then press . -4. What if you can't link the gem? Well thats what ItemID is for. Find your gem on http://www.wowhead.com/ and look at the URL, - for example "http://www.wowhead.com/?item=32193", 32193 is the ItemID for that gem. - Go back in wow, type "/rabu sum gem red 32193" and press . - -Note1: If you have "/rabu sum ignore gem" on, the auto fill gems won't work. -Note2: Meta gem conditions and SetBonuses work, so if you don't meet the conditions, StatSummary won't count them. -Note3: RatingBuster will only auto fill empty sockets, if the item already has some gems on it, it will remain. -Note4: Empty sockets filled by RatingBuster will keep the "Empty Socket Icon" so you can still easily tell what color socket it is. -Note5: Gem text filled by RatingBuster will be shown in gray color to differentiate from real gems. - - -********************** -** Supported Addons ** -********************** - -EquipCompare, EQCompare, tekKompare, -LinkWrangler, MultiTips, Links, -AtlasLoot, ItemMagic, Sniff, -LinkHeaven, Mirror, TooltipExchange, AtlasQuest. - -Also works with all bag mods! - - -************************ -** GUI Options Window ** -************************ - -Type /rabu win - - -******************** -** Slash Commands ** -******************** - -Use: /rabu or /ratingbuster - -/rabu : Display command help -/rabu standby : Toggle disable/enable RatingBuster in game, defaults Enable -/rabu level (0-83) : Set the level used in calculations, defaults 0 (0 = your level) -/rabu itemlevel : Toggle show/hide ItemLevel, defaults Show -/rabu itemid : Toggle show/hide ItemID, defaults Hide -/rabu usereqlv : Toggle calculate using the required level if you are below the required level, defaults Off -/rabu statmod : Toggle support for talent and buff mods, defaults On -/rabu avoidancedr : Dodge, Parry, Hit Avoidance values will be calculated using the avoidance deminishing return formula with your current stats, defaults On - -/rabu rating : Options for Rating Conversion -/rabu rating show : Toggle show/hide Rating Conversion in tooltips, defaults Show -/rabu rating def : Toggle Defense breakdown, Convert Defense into Crit Avoidance, Hit Avoidance, Dodge, Parry and Block, defaults Off -/rabu rating wpn : Toggle Weapon Skill breakdown, Convert Weapon Skill into Crit, Hit, Dodge Neglect, Parry Neglect and Block Neglect, defaults Off -/rabu rating color enable : Toggle enable/disable colored text, defaults On -/rabu rating color pick : Choose a color for the added text, defaults Light Yellow -/rabu rating spell : Show Spell Hit from Hit Rating -/rabu rating physical : Show Physical Hit from Hit Rating -/rabu rating detail : Show detailed text for Resiliance and Expertise conversions -/rabu rating exp : Convert Expertise into Dodge Neglect and Parry Neglect - -/rabu stat : Options for Stat Breakdown -/rabu stat show : Toggle show/hide Stat Breakdown in tooltips, defaults Show -/rabu stat str : Options for Strength breakdown -> AP, Block, Healing(Talent) -/rabu stat agi : Options for Agility breakdown -> Crit, Dodge, AP, RAP, Armor -/rabu stat sta : Options for Stamina breakdown -> Health, SpellDmg(Talent) -/rabu stat int : Options for Intellect breakdown -> Mana, SpellCrit, SpellDmg(Talent), Healing(Talent), MP5(Talent), RAP(Talent), Armor(Talent) -/rabu stat spi : Options for Spirit breakdown -> MP5(Talent), MP5NC, HP5, SpellDmg(Talent), Healing(Talent) - -/rabu sum : Options for Stat Summary -/rabu sum show : Toggle show/hide Stat Summary in tooltips, defaults Show -/rabu sum ignore unused : Show stat summary only for armor types you will and can use, and on items with uncommon quality and up, defaults On -/rabu sum ignore equipped : Hide stat summary for equipped items, defaults Off -/rabu sum ignore enchant : Ignore enchants on items when calculating the stat summary, defaults Off -/rabu sum ignore gem : Ignore gems on items when calculating the stat summary, defaults Off -/rabu sum diffstyle : Display diff values in the main tooltip or only in compare tooltips, defaults Main -/rabu sum space before : Add a blank line before stat summary for readability, defaults On -/rabu sum space after : Add a blank line after stat summary, defaults Off -/rabu sum icon : Show the sigma icon before summary listing, defaults On -/rabu sum title : Show the title text before summary listing, defaults On -/rabu sum showzerostat : Show zero value stats in summary for consistency, defaults Off -/rabu sum calcsum : Calculate the total stats for the item, defaults On -/rabu sum calcdiff : Calculate the stat difference for the item and equipped items, defaults On -/rabu sum sort : Enable to sort StatSummary alphabetically, disable to sort according to stat type(basic, physical, spell, tank) -/rabu sum avoidhasblock : Enable to include block chance in Avoidance summary, Disable for only dodge, parry, miss -/rabu sum basic : Choose basic stats for summary -/rabu sum physical : Choose physical stats for summary -/rabu sum spell : Choose spell stats for summary -/rabu sum tank : Choose tank stats for summary -/rabu sum gem : Auto fill gems in empty sockets - - -*********************************** -** Avoidance diminishing returns ** -*********************************** - -This includes: -1. Dodge from Dodge Rating, Defense Rating, Agility. -2. Parry from Parry Rating, Defense Rating. -3. Chance to be missed from Defense Rating. - -The following is the result of hours of work gathering data from beta servers and then spending even more time running multiple regression analysis on the data. -1. DR for Dodge, Parry, Missed are calculated separately. -2. Base avoidances are not affected by DR, (Ex: Dodge from base Agility) -3. Death Knight's Parry from base Strength is affected by DR, base for parry is 5%. -4. Direct percentage gains from talents and spells(ex: Evasion) are not affected by DR. -5. c and k values depend on class but does not change with level. - -Avoidance DR formula and k, C_p, C_d constants derived by Whitetooth (hotdogee [at] gmail [dot] com) -6. The DR formula: 1 / x' = 1 / c + k / x - x' is the diminished stat before converting to IEEE754. - x is the stat before diminishing returns. - c is the cap of the stat, and changes with class. - k is is a value that changes with class. - - k C_p 1/C_p C_d 1/C_d C_m -Warrior 0.9560 47.003525 0.021275 88.129021 0.011347 16 -Paladin 0.9560 47.003525 0.021275 88.129021 0.011347 16 -Hunter 0.9880 145.560408 0.006870 145.560408 0.006870 -Rogue 0.9880 145.560408 0.006870 145.560408 0.006870 -Priest 0.9830 0 0 150.375940 0.006650 -Deathknight 0.9560 47.003525 0.021275 88.129021 0.011347 16 -Shaman 0.9880 145.560408 0.006870 145.560408 0.006870 -Mage 0.9830 0 0 150.375940 0.006650 -Warlock 0.9830 0 0 150.375940 0.006650 -Druid 0.9720 0 0 116.890707 0.008555 - - Lv80 Dodge/Agi Lv80 Agi/1%Dodge Base Agi -Warrior 0.011800 84.74576271 3.66400 -Paladin 0.016700 59.88023952 3.49430 -Hunter 0.011600 86.20689655 -4.08730 -Rogue 0.020900 47.84688995 2.09570 -Priest 0.016700 59.88023952 3.41780 -Deathknight 0.011800 84.74576271 3.66400 -Shaman 0.016700 59.88023952 2.10800 -Mage 0.017000 58.82352941 3.65870 -Warlock 0.016700 59.88023952 2.42110 -Druid 0.020900 47.84688995 5.60970 - - -************************************** -** How I derived the Rating Formula ** -************************************** - -As soon as I saw the blue post on combat ratings system, I began to think about coding this addon. -But Blizzard only gave us level 60 and 70 data about this system, and for an addon like this to work you need exact formula that will work for all levels. -So I need to reverse engineer the Combat Rating formula, and the process of obtaining this formula can be broken up into two simple steps. - -1. Get more data -In order to obtain the exact formula, I will need more data points then just level 60 and 70. So I logged on and started asking random people about their crit% and crit ratings show in the Character frame, the problem was the crit% shown only has 2 two decimal places, which turned out to be insufficient for this matter. - -So I started to dig in the DefaultUI lua files in search for a new API that will give a more precise crit% and I came up with this script /script DEFAULT_CHAT_FRAME:AddMessage(GetCombatRatingBonus(9)). - -Now I need to log on again and ask random people to type that script and tell me that 13 decimal place crit% that it shows. This was not an easy task, as most people are unfamiliar with lua script, there are even people that immediately put me on ignore after I sent him this script lol. - -After hours of work, this is what I got: -A B C D E F G H -Lv Type Rating Percentage =C/D 60base =E/F =1/G -19 crit 2 0.6753247631 2.9615380764 14 0.211538434 4.727273342 -21 crit 2 0.5714285714 3.5000000000 14 0.25 4 -22 crit 2 0.5306122010 3.7692310810 14 0.269230792 3.714285407 -28 crit 2 0.3714286018 5.3846149445 14 0.384615353 2.6 -29 crit 2 0.3537415195 5.6538457870 14 0.403846128 2.476190637 -36 crit 14 1.8557142035 7.5442651532 14 0.538876082 1.855714204 -48 crit 14 1.2999998760 10.7692317963 14 0.769230843 1.3 -50 crit 14 1.2380952140 11.3076925278 14 0.807692323 1.238095214 -60 crit 112 8.0000000000 14.0000000000 14 1 1 -61 crit 56 3.8536582293 14.5316467285 14 1.037974766 0.963414557 -62 hit 50 4.6341464061 10.7894735336 10 1.078947353 0.926829281 -62 crit 56 3.7073167036 15.1052646637 14 1.078947476 0.926829176 -63 crit 31 1.9712541049 15.7260293961 14 1.123287814 0.890243789 -64 crit 17 1.0365853900 16.3999996185 14 1.171428544 0.853658556 -65 crit 56 3.2682925906 17.1343288422 14 1.223880632 0.817073148 -66 crit 168 9.3658536585 17.9375000000 14 1.28125 0.780487805 -66 sp_hit 48 4.6829268293 10.2500000000 8 1.28125 0.780487805 -67 crit 78 4.1445989933 18.8196735382 14 1.344262396 0.743902383 -67 crit 76 4.0383272242 18.8196735382 14 1.344262396 0.743902383 - -2. Think very hard -After some creative thinking, this is what I got: - -Percentage = Rating / F * H -Lv 8 to 60: 1/H = 1/52 * Level - 8/52 -Lv 60 to 70: H = -3/82 * Level + 131/41 -Lv 70 to 80: H = 82/52 * (131/63)^((Level - 70) / 10) - - F= -Expertise 2.5 -Defense 1.5 -Dodge 13.8 -Parry 13.8 -Block 5.0 -Hit 10.0 -Crit 14.0 -Haste 10.0 -Spell Hit 8.0 -Spell Crit 14.0 -Spell Haste 10.0 -Resilience 28.75 -Armor Penetration 3.756097412 - -This formula is correct to the 13th decimal place, so I'm 100% sure this is what blizzard uses. - - -**************************************** -** Stat Conversion Data for Reference ** -**************************************** -(Patch 3.2.0 Data) - Combat rating needed for 1 point of stat - Expt Def Dodge Parry Block M-Hit S-Hit Crit Resil Haste ArP -1 0.10 0.75 6.90 6.90 2.50 0.38 0.31 0.54 14.38 0.38 0.14 -2 0.10 0.75 6.90 6.90 2.50 0.38 0.31 0.54 14.38 0.38 0.14 -3 0.10 0.75 6.90 6.90 2.50 0.38 0.31 0.54 14.38 0.38 0.14 -4 0.10 0.75 6.90 6.90 2.50 0.38 0.31 0.54 14.38 0.38 0.14 -5 0.10 0.75 6.90 6.90 2.50 0.38 0.31 0.54 14.38 0.38 0.14 -6 0.10 0.75 6.90 6.90 2.50 0.38 0.31 0.54 14.38 0.38 0.14 -7 0.10 0.75 6.90 6.90 2.50 0.38 0.31 0.54 14.38 0.38 0.14 -8 0.10 0.75 6.90 6.90 2.50 0.38 0.31 0.54 14.38 0.38 0.14 -9 0.10 0.75 6.90 6.90 2.50 0.38 0.31 0.54 14.38 0.38 0.14 -10 0.10 0.75 6.90 6.90 2.50 0.38 0.31 0.54 14.38 0.38 0.14 -11 0.14 0.75 6.90 6.90 2.50 0.58 0.46 0.81 14.38 0.58 0.22 -12 0.19 0.75 6.90 6.90 2.50 0.77 0.62 1.08 14.38 0.77 0.29 -13 0.24 0.75 6.90 6.90 2.50 0.96 0.77 1.35 14.38 0.96 0.36 -14 0.29 0.75 6.90 6.90 2.50 1.15 0.92 1.62 14.38 1.15 0.43 -15 0.34 0.75 6.90 6.90 2.50 1.35 1.08 1.88 14.38 1.35 0.51 -16 0.38 0.75 6.90 6.90 2.50 1.54 1.23 2.15 14.38 1.54 0.58 -17 0.43 0.75 6.90 6.90 2.50 1.73 1.38 2.42 14.38 1.73 0.65 -18 0.48 0.75 6.90 6.90 2.50 1.92 1.54 2.69 14.38 1.92 0.72 -19 0.53 0.75 6.90 6.90 2.50 2.12 1.69 2.96 14.38 2.12 0.79 -20 0.58 0.75 6.90 6.90 2.50 2.31 1.85 3.23 14.38 2.31 0.87 -21 0.63 0.75 6.90 6.90 2.50 2.50 2.00 3.50 14.38 2.50 0.94 -22 0.67 0.75 6.90 6.90 2.50 2.69 2.15 3.77 14.38 2.69 1.01 -23 0.72 0.75 6.90 6.90 2.50 2.88 2.31 4.04 14.38 2.88 1.08 -24 0.77 0.75 6.90 6.90 2.50 3.08 2.46 4.31 14.38 3.08 1.16 -25 0.82 0.75 6.90 6.90 2.50 3.27 2.62 4.58 14.38 3.27 1.23 -26 0.87 0.75 6.90 6.90 2.50 3.46 2.77 4.85 14.38 3.46 1.30 -27 0.91 0.75 6.90 6.90 2.50 3.65 2.92 5.12 14.38 3.65 1.37 -28 0.96 0.75 6.90 6.90 2.50 3.85 3.08 5.38 14.38 3.85 1.44 -29 1.01 0.75 6.90 6.90 2.50 4.04 3.23 5.65 14.38 4.04 1.52 -30 1.06 0.75 6.90 6.90 2.50 4.23 3.38 5.92 14.38 4.23 1.59 -31 1.11 0.75 6.90 6.90 2.50 4.42 3.54 6.19 14.38 4.42 1.66 -32 1.15 0.75 6.90 6.90 2.50 4.62 3.69 6.46 14.38 4.62 1.73 -33 1.20 0.75 6.90 6.90 2.50 4.81 3.85 6.73 14.38 4.81 1.81 -34 1.25 0.75 6.90 6.90 2.50 5.00 4.00 7.00 14.38 5.00 1.88 -35 1.30 0.78 7.17 7.17 2.60 5.19 4.15 7.27 14.93 5.19 1.95 -36 1.35 0.81 7.43 7.43 2.69 5.38 4.31 7.54 15.48 5.38 2.02 -37 1.39 0.84 7.70 7.70 2.79 5.58 4.46 7.81 16.03 5.58 2.09 -38 1.44 0.87 7.96 7.96 2.88 5.77 4.62 8.08 16.59 5.77 2.17 -39 1.49 0.89 8.23 8.23 2.98 5.96 4.77 8.35 17.14 5.96 2.24 -40 1.54 0.92 8.49 8.49 3.08 6.15 4.92 8.62 17.69 6.15 2.31 -41 1.59 0.95 8.76 8.76 3.17 6.35 5.08 8.88 18.25 6.35 2.38 -42 1.63 0.98 9.02 9.02 3.27 6.54 5.23 9.15 18.80 6.54 2.46 -43 1.68 1.01 9.29 9.29 3.37 6.73 5.38 9.42 19.35 6.73 2.53 -44 1.73 1.04 9.55 9.55 3.46 6.92 5.54 9.69 19.90 6.92 2.60 -45 1.78 1.07 9.82 9.82 3.56 7.12 5.69 9.96 20.46 7.12 2.67 -46 1.83 1.10 10.08 10.08 3.65 7.31 5.85 10.23 21.01 7.31 2.74 -47 1.88 1.13 10.35 10.35 3.75 7.50 6.00 10.50 21.56 7.50 2.82 -48 1.92 1.15 10.62 10.62 3.85 7.69 6.15 10.77 22.12 7.69 2.89 -49 1.97 1.18 10.88 10.88 3.94 7.88 6.31 11.04 22.67 7.88 2.96 -50 2.02 1.21 11.15 11.15 4.04 8.08 6.46 11.31 23.22 8.08 3.03 -51 2.07 1.24 11.41 11.41 4.13 8.27 6.62 11.58 23.77 8.27 3.11 -52 2.12 1.27 11.68 11.68 4.23 8.46 6.77 11.85 24.33 8.46 3.18 -53 2.16 1.30 11.94 11.94 4.33 8.65 6.92 12.12 24.88 8.65 3.25 -54 2.21 1.33 12.21 12.21 4.42 8.85 7.08 12.38 25.43 8.85 3.32 -55 2.26 1.36 12.47 12.47 4.52 9.04 7.23 12.65 25.99 9.04 3.39 -56 2.31 1.38 12.74 12.74 4.62 9.23 7.38 12.92 26.54 9.23 3.47 -57 2.36 1.41 13.00 13.00 4.71 9.42 7.54 13.19 27.09 9.42 3.54 -58 2.40 1.44 13.27 13.27 4.81 9.62 7.69 13.46 27.64 9.62 3.61 -59 2.45 1.47 13.53 13.53 4.90 9.81 7.85 13.73 28.20 9.81 3.68 -60 2.50 1.50 13.80 13.80 5.00 10.00 8.00 14.00 28.75 10.00 3.76 -61 2.59 1.56 14.32 14.32 5.19 10.38 8.30 14.53 29.84 10.38 3.90 -62 2.70 1.62 14.89 14.89 5.39 10.79 8.63 15.11 31.02 10.79 4.05 -63 2.81 1.68 15.50 15.50 5.62 11.23 8.99 15.73 32.29 11.23 4.22 -64 2.93 1.76 16.17 16.17 5.86 11.71 9.37 16.40 33.68 11.71 4.40 -65 3.06 1.84 16.89 16.89 6.12 12.24 9.79 17.13 35.19 12.24 4.60 -66 3.20 1.92 17.68 17.68 6.41 12.81 10.25 17.94 36.84 12.81 4.81 -67 3.36 2.02 18.55 18.55 6.72 13.44 10.75 18.82 38.65 13.44 5.05 -68 3.53 2.12 19.51 19.51 7.07 14.14 11.31 19.79 40.65 14.14 5.31 -69 3.73 2.24 20.57 20.57 7.45 14.91 11.93 20.87 42.86 14.91 5.60 -70 3.94 2.37 21.76 21.76 7.88 15.77 12.62 22.08 45.34 15.77 5.92 -71 4.24 2.55 23.41 23.41 8.48 16.97 13.57 23.75 48.78 16.97 6.37 -72 4.56 2.74 25.19 25.19 9.13 18.26 14.60 25.56 52.48 18.26 6.86 -73 4.91 2.95 27.11 27.11 9.82 19.64 15.71 27.50 56.47 19.64 7.38 -74 5.28 3.17 29.16 29.16 10.57 21.13 16.91 29.59 60.76 21.13 7.94 -75 5.68 3.41 31.38 31.38 11.37 22.74 18.19 31.83 65.38 22.74 8.54 -76 6.12 3.67 33.76 33.76 12.23 24.47 19.57 34.25 70.34 24.47 9.19 -77 6.58 3.95 36.33 36.33 13.16 26.32 21.06 36.85 75.68 26.32 9.89 -78 7.08 4.25 39.09 39.09 14.16 28.32 22.66 39.65 81.43 28.32 10.64 -79 7.62 4.57 42.06 42.06 15.24 30.48 24.38 42.67 87.62 30.48 11.45 -80 8.20 4.92 45.25 45.25 16.39 32.79 26.23 45.91 94.27 32.79 12.32 - Expt Def Dodge Parry Block M-Hit S-Hit Crit Resil Haste ArP - - Agility needed for 1% Crit - War Pal Hun Rog Pri DK Sha Mage Lock Dru -1 3.87 4.62 3.52 2.23 10.96 3.87 9.62 12.94 8.41 7.92 -2 4.42 4.62 3.53 2.33 10.96 4.42 9.62 12.94 8.41 7.92 -3 4.42 4.62 3.69 2.43 10.96 4.42 10.10 12.94 8.83 8.32 -4 4.42 5.20 3.95 2.62 11.52 4.42 10.10 13.59 8.83 8.32 -5 4.42 5.20 4.12 2.72 11.52 4.42 10.58 13.59 8.83 8.71 -6 4.97 5.20 4.28 2.82 11.52 4.97 10.58 13.59 9.25 8.71 -7 4.97 5.20 4.44 3.01 11.52 4.97 10.58 13.59 9.25 9.11 -8 4.97 5.77 4.61 3.11 12.06 4.97 11.07 13.59 9.25 9.11 -9 4.97 5.77 4.88 3.21 12.06 4.97 11.07 13.59 9.67 9.51 -10 4.97 5.77 5.04 3.40 12.06 4.97 11.55 14.22 9.67 10.30 -11 5.52 5.77 5.41 3.79 12.06 5.52 11.55 14.22 10.09 10.70 -12 5.52 5.77 5.99 4.18 12.61 5.52 12.03 14.22 10.09 10.70 -13 6.08 6.35 6.46 4.66 12.61 6.08 12.03 14.22 10.09 11.09 -14 6.08 6.35 6.94 5.05 12.61 6.08 12.52 14.22 10.43 11.09 -15 6.63 6.93 7.52 5.63 12.61 6.63 12.99 14.88 10.59 11.88 -16 6.63 6.93 7.89 6.02 13.16 6.63 13.48 14.88 10.78 11.88 -17 6.63 6.93 8.38 6.41 13.16 6.63 13.48 14.88 10.94 12.29 -18 7.18 7.51 8.95 6.90 13.16 7.18 13.95 14.88 11.12 12.67 -19 7.18 7.51 9.43 7.38 13.72 7.18 13.95 14.88 11.30 12.67 -20 7.73 8.08 10.02 7.87 13.72 7.73 14.93 15.53 11.48 14.27 -21 7.73 8.08 10.40 8.35 13.72 7.73 14.93 15.53 11.67 14.27 -22 7.73 8.08 10.99 8.74 13.72 7.73 15.41 15.53 11.85 14.66 -23 8.29 8.67 11.47 9.23 14.27 8.29 15.41 15.53 12.03 15.06 -24 8.83 9.24 12.06 9.62 14.27 8.83 15.87 16.18 12.22 15.06 -25 8.83 9.24 12.55 10.20 14.27 8.83 16.37 16.18 12.42 15.85 -26 9.39 9.24 13.04 10.68 14.81 9.39 16.84 16.18 12.63 15.85 -27 9.39 9.81 13.62 11.07 14.81 9.39 16.84 16.18 12.82 16.23 -28 9.94 9.81 14.10 11.56 14.81 9.94 17.33 16.18 13.02 16.64 -29 9.94 10.40 14.71 12.05 15.36 9.94 17.33 16.81 13.23 16.64 -30 10.49 10.40 15.29 12.63 15.36 10.49 18.28 16.81 13.42 18.21 -31 10.49 10.98 15.70 13.02 15.36 10.49 18.28 16.81 13.64 18.62 -32 11.05 10.98 16.29 13.50 15.90 11.05 18.76 16.81 13.85 18.62 -33 11.05 11.55 16.89 13.99 15.90 11.05 19.23 17.45 14.06 19.01 -34 11.60 11.55 17.39 14.47 15.90 11.60 19.23 17.45 14.29 19.42 -35 11.60 12.12 17.99 15.06 16.45 11.60 20.20 17.45 14.49 19.80 -36 12.15 12.12 18.48 15.55 16.45 12.15 20.70 18.12 14.73 20.20 -37 12.15 12.12 19.08 15.92 16.45 12.15 20.70 18.12 14.95 20.62 -38 12.71 12.71 19.69 16.42 17.01 12.71 21.19 18.12 15.17 20.62 -39 12.71 12.71 20.28 16.89 17.01 12.71 21.19 18.12 15.41 21.01 -40 13.25 13.28 20.79 17.48 17.01 13.25 22.12 18.76 15.65 22.57 -41 13.81 13.28 21.28 17.99 17.54 13.81 22.62 18.76 15.87 22.99 -42 13.81 13.28 21.88 18.45 17.54 13.81 22.62 18.76 16.13 22.99 -43 14.37 13.87 22.52 18.94 18.08 14.37 23.09 18.76 16.37 23.36 -44 14.37 14.43 23.09 19.53 18.08 14.37 23.58 19.42 16.61 23.75 -45 14.90 14.43 23.75 20.12 18.08 14.90 24.04 19.42 16.86 24.57 -46 14.90 15.02 24.21 20.58 18.66 14.90 24.57 19.42 17.12 24.94 -47 15.46 15.02 24.88 21.10 18.66 15.46 25.00 20.04 17.36 24.94 -48 16.03 15.60 25.58 21.55 19.19 16.03 25.51 20.04 17.64 25.38 -49 16.03 15.60 26.18 22.03 19.19 16.03 25.51 20.04 17.89 25.77 -50 16.56 16.18 26.81 22.73 19.19 16.56 26.46 20.70 18.15 27.32 -51 16.56 16.75 27.32 23.20 19.72 16.56 26.95 20.70 18.42 27.70 -52 17.12 16.75 27.93 23.70 19.72 17.12 27.40 20.70 18.69 28.09 -53 17.67 17.33 28.57 24.27 20.28 17.67 27.40 21.37 18.98 28.49 -54 17.67 17.33 29.33 24.75 20.28 17.67 27.93 21.37 19.27 28.49 -55 18.21 17.89 29.94 25.38 20.83 18.21 28.90 21.37 19.53 29.33 -56 18.21 17.89 30.49 25.91 20.83 18.21 29.33 21.98 19.84 29.67 -57 18.76 18.48 31.15 26.46 21.37 18.76 29.85 21.98 20.12 30.12 -58 19.34 19.05 31.85 27.03 21.37 19.34 29.85 21.98 20.41 30.49 -59 19.34 19.05 32.57 27.47 21.93 19.34 30.30 22.62 20.70 30.86 -60 19.88 19.65 33.22 28.17 21.93 19.88 31.25 22.62 21.01 32.47 -61 20.96 20.20 33.67 29.94 22.47 20.96 32.26 22.62 21.32 33.44 -62 22.08 20.79 34.48 31.06 22.42 22.08 32.89 22.62 21.65 33.90 -63 23.20 21.37 35.21 32.57 22.57 23.20 34.01 23.31 21.98 35.09 -64 23.75 21.93 35.84 33.78 23.04 23.75 35.09 23.31 22.27 35.84 -65 24.88 22.52 36.63 34.97 23.42 24.88 35.59 23.31 22.62 36.50 -66 25.97 22.52 37.04 36.23 23.75 25.97 36.63 23.92 22.94 37.17 -67 27.03 23.70 37.88 37.31 24.10 27.03 37.45 23.92 23.26 37.74 -68 28.17 23.70 38.61 38.17 24.21 28.17 38.31 23.92 23.58 38.76 -69 29.24 24.27 39.37 39.06 24.27 29.24 39.22 24.57 23.92 39.37 -70 29.85 24.81 40.00 40.00 24.94 29.85 40.00 24.57 24.27 40.00 -71 32.05 27.17 43.10 43.10 26.88 32.05 43.10 26.53 26.04 43.10 -72 34.84 28.90 46.30 46.30 29.07 34.84 46.30 28.49 28.17 46.30 -73 37.59 31.15 49.75 49.75 31.25 37.59 49.75 30.40 30.30 49.75 -74 40.32 33.44 53.48 53.48 33.44 40.32 53.48 33.00 32.36 53.48 -75 43.10 36.36 57.80 57.80 36.23 43.10 57.80 35.59 34.84 57.80 -76 46.30 38.76 62.11 62.11 38.91 46.30 62.11 38.17 37.88 62.11 -77 50.25 41.67 66.67 66.67 41.67 50.25 66.67 41.32 40.82 66.67 -78 54.05 45.05 71.94 71.94 45.05 54.05 71.94 44.05 43.67 71.94 -79 58.14 48.54 77.52 77.52 48.31 58.14 77.52 47.85 47.17 77.52 -80 62.50 52.08 83.33 83.33 52.08 62.50 83.33 51.02 50.51 83.33 - War Pal Hun Rog Pri DK Sha Mage Lock Dru - - Intellect needed for 1% Spell Crit - Pal Hun Pri Sha Mage Lock Dru -1 12.02 14.31 5.85 7.50 6.11 6.67 6.99 -2 12.61 15.02 6.11 7.86 6.35 6.97 7.30 -3 12.61 15.02 6.38 8.22 6.60 7.27 7.62 -4 13.21 15.75 6.64 8.22 7.09 7.58 7.94 -5 13.21 15.75 7.17 8.58 7.33 7.88 8.26 -6 13.81 16.45 7.44 8.93 7.58 8.18 8.58 -7 14.41 16.45 7.71 9.29 7.82 8.48 8.90 -8 14.41 17.15 7.97 9.64 8.06 8.79 8.90 -9 15.02 17.15 8.24 10.00 8.55 9.09 9.21 -10 15.02 17.89 8.77 10.00 8.80 9.39 10.16 -11 15.63 17.89 9.57 10.72 9.53 10.30 10.80 -12 16.23 18.59 10.63 11.43 10.75 11.21 11.75 -13 16.84 20.04 11.43 12.50 11.48 12.12 12.39 -14 17.42 20.04 12.76 13.23 13.68 13.04 13.33 -15 18.62 21.46 13.81 14.29 14.90 13.95 14.62 -16 18.62 21.46 14.62 15.02 15.65 14.53 15.24 -17 19.23 22.17 15.95 15.72 16.61 15.75 16.21 -18 20.41 23.58 16.75 16.78 17.61 16.67 16.84 -19 20.41 23.58 17.79 17.51 18.59 17.57 17.79 -20 21.65 25.06 19.12 18.59 19.80 18.48 19.38 -21 22.22 25.77 19.92 19.31 20.53 19.38 20.00 -22 22.83 25.77 21.28 20.00 21.74 20.28 20.96 -23 23.42 27.17 22.08 21.10 22.47 21.23 21.60 -24 24.04 27.93 23.36 21.79 23.70 22.42 22.88 -25 25.25 28.57 24.45 22.88 24.69 23.31 23.81 -26 25.84 29.33 25.51 23.58 25.64 23.92 24.45 -27 25.84 30.03 26.60 24.27 26.88 25.13 25.38 -28 27.03 30.77 27.62 25.38 29.59 26.04 26.04 -29 27.62 31.45 28.74 26.11 30.77 27.25 27.32 -30 28.82 32.89 30.03 27.17 32.05 28.17 28.90 -31 29.41 33.67 31.06 28.25 32.79 28.82 29.50 -32 30.03 33.67 32.15 28.90 34.01 30.03 30.77 -33 30.67 35.09 33.22 30.03 34.97 30.86 31.45 -34 31.25 35.71 34.60 30.77 35.97 32.15 32.36 -35 32.47 37.17 35.59 31.85 37.17 33.00 33.67 -36 33.00 37.88 36.63 32.89 38.17 33.90 34.25 -37 33.67 37.88 38.02 33.56 39.37 35.21 35.21 -38 34.84 39.37 39.06 34.60 40.32 36.10 36.23 -39 35.46 40.00 40.16 35.34 41.49 37.31 37.17 -40 36.63 41.49 41.49 36.76 42.55 38.17 39.06 -41 37.31 42.19 42.55 37.45 43.48 39.06 39.68 -42 37.88 42.19 43.86 38.17 46.51 40.32 40.98 -43 39.06 43.67 44.84 39.37 47.39 41.15 41.67 -44 39.06 44.44 46.30 40.32 48.54 42.37 42.92 -45 40.32 45.87 47.62 41.49 49.75 43.67 43.86 -46 40.82 46.51 48.54 42.55 50.76 44.64 44.84 -47 42.02 47.17 50.00 43.29 52.08 45.45 45.66 -48 43.29 48.54 51.02 44.25 53.19 46.73 46.73 -49 43.86 49.26 52.36 45.45 54.35 47.85 47.85 -50 45.05 50.76 53.76 46.51 55.87 49.02 49.50 -51 45.66 51.55 54.64 47.62 56.82 50.00 50.51 -52 46.30 52.08 56.18 48.31 57.80 51.28 51.81 -53 47.39 53.76 57.14 49.75 58.82 52.36 52.36 -54 48.08 54.35 58.48 50.25 60.24 53.76 53.76 -55 49.26 55.87 60.24 51.81 61.73 54.95 54.95 -56 49.75 56.50 60.98 52.63 64.94 55.87 55.87 -57 50.51 57.14 62.50 53.48 66.23 56.82 56.82 -58 52.36 58.82 63.69 54.95 67.11 58.14 57.80 -59 52.91 59.52 64.94 55.87 68.49 59.52 59.17 -60 54.05 60.98 66.23 57.14 69.93 60.61 60.98 -61 62.89 63.69 67.57 60.98 69.93 62.89 61.73 -62 64.94 64.94 68.97 62.89 69.93 64.94 63.69 -63 67.11 66.67 69.93 65.79 69.93 67.57 66.67 -64 68.97 69.44 71.94 68.03 69.93 69.93 68.49 -65 71.43 70.92 72.99 70.42 70.42 72.46 70.42 -66 73.53 72.99 74.63 72.46 72.46 74.07 72.99 -67 74.63 75.19 75.76 74.63 74.63 76.92 75.19 -68 76.34 76.92 76.92 76.34 76.34 78.74 76.34 -69 78.13 78.13 78.74 78.13 78.13 79.37 78.13 -70 80.00 80.00 80.00 80.00 80.00 80.00 80.00 -71 86.21 86.21 86.21 86.21 86.21 86.21 86.21 -72 92.59 92.59 92.59 92.59 92.59 92.59 92.59 -73 99.01 99.01 99.01 99.01 99.01 99.01 99.01 -74 107.53 107.53 107.53 107.53 107.53 107.53 107.53 -75 114.94 114.94 114.94 114.94 114.94 114.94 114.94 -76 123.46 123.46 123.46 123.46 123.46 123.46 123.46 -77 133.33 133.33 133.33 133.33 133.33 133.33 133.33 -78 142.86 142.86 142.86 142.86 142.86 142.86 142.86 -79 153.85 153.85 153.85 153.85 153.85 153.85 153.85 -80 166.67 166.67 166.67 166.67 166.67 166.67 166.67 - Pal Hun Pri Sha Mage Lock Dru - -******************************************** -** Spirit-Based Mana Regeneration Formula ** -******************************************** -(Patch 3.2.0 Data) - -ManaRegen(SPI, INT, LEVEL) = (0.001 + SPI * BASE_REGEN[LEVEL] * (INT^0.5)) * 5 - -BASE_REGEN[LEVEL]= -1 0.020979 21 0.011840 41 0.008235 61 0.006421 -2 0.020515 22 0.011494 42 0.008113 62 0.006314 -3 0.020079 23 0.011292 43 0.008018 63 0.006175 -4 0.019516 24 0.010990 44 0.007906 64 0.006072 -5 0.018997 25 0.010761 45 0.007798 65 0.005981 -6 0.018646 26 0.010546 46 0.007713 66 0.005885 -7 0.018314 27 0.010321 47 0.007612 67 0.005791 -8 0.017997 28 0.010151 48 0.007524 68 0.005732 -9 0.017584 29 0.009949 49 0.007430 69 0.005668 -10 0.017197 30 0.009740 50 0.007340 70 0.005596 -11 0.016551 31 0.009597 51 0.007268 71 0.005316 -12 0.015729 32 0.009425 52 0.007184 72 0.005049 -13 0.015229 33 0.009278 53 0.007116 73 0.004796 -14 0.014580 34 0.009123 54 0.007029 74 0.004555 -15 0.014008 35 0.008974 55 0.006945 75 0.004327 -16 0.013650 36 0.008847 56 0.006884 76 0.004110 -17 0.013175 37 0.008698 57 0.006805 77 0.003903 -18 0.012832 38 0.008581 58 0.006747 78 0.003708 -19 0.012475 39 0.008457 59 0.006667 79 0.003522 -20 0.012073 40 0.008338 60 0.006600 80 0.003345 - - -********** -** TODO ** -********** -Readme: -Combat rating needed for 1 point of stat: parry needs to be updated - -Long term: -- Support for sets -- Option: Hide default stats -- Option: Show only in city -- Support for "+2% Spirit" type - -- Modifier keys for showing Rating, StatSummary -- Second set of defualt gems that can be switched with modifier keys - -There is no good way(afaik) to detect prismatic sockets, you would have to: -1. Parse the Link and remember how many gems are in this item. -2. Create a clean link with no gems and see how many sockets are in this item. -3. If the current item has more gems then sockets then it has a prismatic gem. -4. Check if player has Blacksmith and what if the player is high enough to add sockets. - -Doing: - -Note: -"Intelligently compare Crit Immunity in the StatSummary?" -[ ] Tick Box. -Ticked -- Tooltip: StatSummary will now show '% to be critted' comparisons while AWARE of your opponent's level as defined below. -Unticked (Default) -- Tooltip: StatSummary will now show '% to be critted' comparisons while UNAWARE of your opponent's level. -[ ] Number Field. -Illuminates when Ticked and Dims when Unticked (Default value, but Dimmed, is 73) -- Tooltip: Type the opponent's level you'd like StatSummary to stop comparing 'crit immunity' for. - --- Failed -- -Try to fix mana oil enchants: was unable to find a way to scan the oil text - --- Transition to 3.0.2 -if select(2, GetBuildInfo()) >= "9061" then - - -********************* -** Version History ** -********************* -1.5.1 -- Support new API changes in LibStatLogic-1.1 r?? -1.5.0 -- NEW: Support for RatingBuster_AlwaysBuffed: http://wow.curse.com/downloads/wow-addons/details/ratingbuster-alwaysbuffed.aspx -- Rating options: "Show Spell Hit" changed to "Show Spell Hit/Haste", and "Show Physical Hit" changed to "Show Physical Hit/Haste" -- Stat Breakdown: Show MP5 from Int will now show effects from Replenishment -- Stat Summary: Added Expertise Rating Summary -- Localization updates -1.4.9 -- Update for 3.3.3 -- Use /rabu for commands, since /rb is now used by the blizzard interface to launch the new raid browser window. -- 3.3.3: Death Knight: Endless Winter: Grants 2/4% strength. -- 3.3.3: Death Knight: Unbreakable Armor: The amount of strength granted is now 20%, up from 10%. -- 3.3.3: Warrior: Vitality: Now boosts Stamina by 3/6/9% -1.4.8 -- Update for 3.3.0 -- NEW: Rating Conversion, Stat Breakdown, Stat Summary can each be set to show on ALT, SHIFT, CTRL, Always, or Never. -- NEW: Two extra default gem sets which you can toggle with a modifier key -- Improved "Ignore undesirable items" option: Separate options for Cloth, Leather, Mail, and Plate items, can also set the minimum item quality -- Warlock: Fixed Demonic Knowledge calculations -- Warlock: Added Glyph of Life Tap -- Mage: 2pc Tier 9 support -- 3.2.2: Paladin: Touched by the Light: This talent now provides 20/40/60% of the paladins strength as spell power instead of 10/20/30% of the paladins stamina. -- 3.2.0: Warrior: Armored to the Teeth: This talent now provides 1/2/3 attack power per 108 armor, up from per 180 armor. -- Change options text style to match Blizzard options -- Optimized checking of unusable items -- Locale updates -1.4.7 -- NEW: Option to ignore prismatic sockets -- LibDualSpec-1.0 now optional, can be deleted if not needed. -- Update for 3.2.2 -- Armor Penetration Rating: The 25% buff is scaled back to 10% -- Death Knight: Unbreakable Armor: Now grants 25% additional armor. The amount of strength granted has been reduced to 10%. -- Death Knight: Glyph of Unbreakable Armor: Now increases the armor gained from Unbreakable Armor by 20%. -- Paladin: Blessing of Sanctuary: This blessing now grants 10% strength in addition to its current effects. -- Priest: Twisted Faith now grants spell power equal to 4/8/12/16/20% of spirit, up from 2/4/6/8/10%. -- Bug Fixes -- Mage: Removed Arcane Instability: Does not increase spell power -- Fixed Dodge from Agi formula -1.4.6 -- NEW: Option to enable dual profile support, will automatically swap profiles on talent switch when enabled. -- NEW: Option to disable Blizzard's stat change summary. -- Fixed comp style stat summary -- Dodge/parry neglect no longer truncated to integer expertise -- No longer displays "query server" message on invalid gem input, and will correctly inform user of invalid input. -- Setting default gems in colorblind mode now works correctly -- Paladin: Fixed Touched by the Light detection -1.4.5 -- Updated for 3.2.0 -- Fixed Resilience formula for levels 1 to 34 -- Fixed parry conversion for classes that can't parry -- Dodge Rating: The amount of dodge rating required per percentage of dodge has been increased by 15%. -- Parry Rating: The amount of parry rating required per percentage of parry has been reduced by 8%. -- Resilience: The amount of resilience needed to reduce critical strike chance, critical strike damage and overall damage has been increased by 15%. -- Agility: BaseDodge changed for all classes -- Fixed Avoidance DR values for Priest, Mage and Warlock -- Druid: Updated Improved Moonkin Form: Now grants 10/20/30% of spirit as spell power. -- Druid: Updated Improved Tree of Life: The armor bonus to Tree of Life Form from this talent has been reduced to 67/133/200% bonus armor. -- Druid: Fixed Natural Reaction: Only add dodge in Bear Form and Dire Bear Form -- Death Knight: Updated Frost Presence: 10% bonus health reduced to 6% bonus stamina. -- Death Knight: Updated Toughness: This talent now grants 2/4/6/8/10% armor instead of 3/6/9/12/15%. -- Death Knight: Updated Veteran of the Third War: Stamina bonus reduced to 1/2/3%. -- Death Knight: Updated Improved Frost Presence: While in Blood Presence or Unholy Presence, you retain 3/6% stamina from Frost Presence, and damage done to you is decreased by an additional 1/2% in Frost Presence. -- Death Knight: Updated Unbreakable Armor: Now grants damage reduction instead of physical damage reduction, and increases your Strength by 25% up from 10% -- Paladin: Updated Blessing of Sanctuary: This blessing now also increases stamina by 10%. This effect is not cumulative with Blessing of Kings. -- Paladin: Updated Lay on Hands: Now reduces the physical damage taken by the target by 10/20% instead of increasing the target's armor. -- Paladin: Updated Divine Intellect: This talent now gives 2/4/6/8/10% increased intellect instead of 3/6/9/12/15%. -- Priest: Updated Inspiration: The buff from this ability now reduces the physical damage taken by the target by 3/7/10% instead of increasing the target's armor. -- Shaman: Updated Ancestral Healing: The buff from this ability now reduces the physical damage taken by the target by 3/7/10% instead of increasing the target's armor. -- Shaman: Updated Unleashed Rage: Reduced to 3 points, down from 5. -- Warlock: Updated Demonic Embrace: Now a 3 point talent, down from 5 points. -1.4.4 -- StatBreakdown now shows Armor to AP for Armored to the Teeth(Warrior) and Bladed Armor(Death Knight) -- Better support for 3.0.8 bonus armor changes -- Dodge Rating: Low-level players will now convert Dodge Rating at the same rate as level 34 players. -- Armor Penetration Rating: All classes now receive 25% more benefit from Armor Penetration Rating. -- Haste Rating: shamans, paladins, druids, and death knights now receive 30% more melee haste from Haste Rating. -- Spirit: The amount of mana regeneration granted by this stat has been reduced by 40%. -- Druid: Updated Talent: Heart of the Wild: Stamina bonus changed to 2/4/6/8/10%. -- Druid: Updated Talent: Survival of the Fittest: Bonus armor reduced to 11/22/33% instead of 22/44/66%. -- Druid: Added Talent: Improved Mark of the Wild: Now also increases all of your total attributes by 1/2%. -- Druid: Updated Talent: Intensity: Now grants 17/33/50% of mana regeneration while casting. -- Druid: Updated Talent: Improved Tree of Life: Now receives 80/160/240% increased armor. -- Hunter: Added Talent: Hunting Party: now increases your total agility by an additional 1/2/3%. -- Mage: Updated Buff: Mage Armor: Now grants 50% of mana regeneration while casting. -- Mage: Updated Talent: Arcane Meditation: Now grants 17/33/50% of mana regeneration while casting. -- Mage: Updated Talent: Pyromaniac: Now grants 17/33/50% of mana regeneration while casting. -- Mage: Molten Armor: 35% Spirit -> Spell Crit Rating -- Paladin: Updated Talent: Sacred Duty now increases stamina by 4/8%. -- Priest: Added Talent: Improved Power Word: Fortitude: Now also increases your total stamina by 2/4%. -- Priest: Updated Talent: Meditation: Now grants 17/33/50% of mana regeneration while casting. -- Shaman: Updated Talent: Toughness: No longer increases your armor. Instead, this talent now increases your total stamina by 2/4/6/8/10%. -1.4.3 -- Now uses Ace3 -- Partial support for 3.0.8 bonus armor changes -- Stat Breakdown: Fixed Parry from Strength not showing when values are < 0.5% -- Rogue: Added Talent: Endurance -- Rogue: Added Talent: Savage Combat -- Mage: Added Talent: Pyromaniac now gives mana regen -- Shaman: Fixed Talent: Unrelenting Storm is now 3 ranks -- Changed base stat mods to compute multiplicatively -- Updated localizations -1.4.2 -- Chance to be missed diminishing returns now supported -- Rating conversion and StatSummary sum now supports avoidance diminishing returns too -- Clear cache after profile switch -- Shield Mastery and Redoubt now affect block value from strength -- StatSummary: Put Health with Stamina, Mana with Intellect -- Mage: Added Buff: Mage Armor -- Mage: Added Glyph: Glyph of Mage Armor -- Death Knight: Added Glyph: Glyph of Unbreakable Armor -- Warrior: Will compare 2H weapons with MH and OH instead of MH+OH if player has Titan Grip -- Warrior: Fixed Talents: Vitality, Strength of Arms -- Tauren: Removed Endurance -- 3.0.8: Druid: Updated Talent: Survival of the Fittest: This talent now grants 22/44/66% bonus armor in Bear Form and Dire Bear Form in addition to all of its previous effects. -- Support for Argent Crusade head enchant (+37 sta / +20 defense rating) -- Support for direct Defense gains which isn't affected by DR (Rune of the Stoneskin Gargoyle) -- Support for meta gem statmods: -- Austere Earthsiege Diamond: 2% Increased Armor Value from Items -- Beaming Earthsiege Diamond: +2% Mana -- MetaGem: Eternal Earthsiege Diamond: +5% Shield Block Value -- MetaGem: Eternal Earthstorm Diamond: +5% Shield Block Value -- MetaGem: Ember Skyfire Diamond: +2% Intellect -- MetaGem: Ember Skyflare Diamond: +2% Intellect -- Support for enchant statmods: -- Enchant: Rune of the Stoneskin Gargoyle: +2% Stamina -- enUS: Fixed +2% Intellect parsed as +2 Intellect on Ember meta gems -- Use LibStatLogic-1.1 and LibTipHooker-1.1 -- Updated localizations: Russian, Spanish, Taiwan, China, French, German, Korean -- Code cleanup -1.4.1 -- Increase /rb level option max value to 83 -- Avoidance diminishing returns support for /rb sum avoidance -- Support for "+x to All Stats", "+x Armor Penetration Rating", "+x Expertise Rating" Gems -- Fixed: Error when Druids enable Show Ranged Attack Power in StatSummary -- Warlock: Fixed Buff: Fel Armor - 30% spell power from spirit wasn't being detected -- Priest: Removed Talent: Focused Power -- Hunter: Removed Talent: Master Marksman - No longer increases RAP -- Shaman: Updated Talent: Mental Quickness - Moved to 2,21 -- Paladin: Added Talent: Redoubt - Increases your block value by 10%/20%/30% -- Death Knight BaseDodge changed from 0.758% to 3.4636%. -- Updated localizations: Taiwan, French, Russian, German, Korean -1.4.0 -- Updated toc to 30000, this versions is compatible with both TBC and WotLK -- Fixed: when removing gems it will continue to show the gem text in empty sockets -- Added Russian localizations by Orsana -- Updated localizations: Korean, French, German -- Minor bug fixes -- **WotLK Support** -- WotLK support with version checking, up to date with build 9061 -- Formulas updated for Death Knights and level 80 -- Support for Spell Power stat -- Support for Armor Penetration Rating -- Avoidance diminishing returns implemented for StatSummary Dodge% and Parry% diff values, because I think thats where its most needed and makes most sense. -- (Dodge% and Parry% in Rating/Stat conversion and StatSummary totals are before dminishing returns) -- Option to show physical hit, spell hit or both from hit rating(crit and haste are the same for physical and spell) -- StatSummery: Added Ranged Hit Chance, Ranged Hit Rating, Ranged Haste, Ranged Haste Rating, Ranged Crit Chance, and Ranged Crit Rating -- StatSummery: Hit Rating, Critical Strike Rating, and Haste Rating now modify both melee attacks and spells. - -- Support for WotLK talent and buff stat mods, detailed change log for each class: -Warrior -- Added Talent: Armored to the Teeth: 1/2/3 for every 180 armor -- Added Talent: Strength of Arms: Increases Strength and Stamina by 2%/4%. -- Added Buff(TBC): Last Stand: +30% of your maximum health -- Updated Talent: Vitality: Increases your total Strength and Stamina by 2%/4%/6% -- Updated Talent: Shield Mastery: 10%/20%/30% -> 15%/30% - -Warlock -- Added options: Show Spell Damage from Spirit (Fel Armor) -- Added options: Show Healing from Spirit (Fel Armor) -- Added Talent: Demonic Aegis: Increases the effectiveness of your Demon Armor and Fel Armor spells by 10%/20%/30%. -- Added Talent: Fel Synergy: Your Summoned Demons share an additional 5%/10% of your Armor, Intellect and Stamina -- Added Talent: Fel Vitality: Increases your maximum health and mana by 1%/2%/3%. -- Added Buff: Fel Armor: Increases spell power equal to 30% of your Spirit. -- Added Buff: Demonic Pact: Your pet's criticals apply the Demonic Pact effect to your party or raid members. Demonic Pact increases spell power by 2%/4%/6%/8%/10% of your Spell Damage for 12 sec. -- Added Buff: Metamorphosis: You gain Demon Form, increasing your armor by 360%. -- Removed Talent: Fel Stamina -- Removed Talent: Fel Intellect -- Updated Talent: Demonic Embrace: No longer reduces spirit. Stamina 3%/6%/9%/12%/15% -> 2%/4%/6%/8%/10% - -Shaman -- Added options: Show Attack Power from Intellect (Mental Dexterity) -- Updated Formula: 1 AP from 1 Agi, 1AP from 1 Str -- Added Talent: Mental Dexterity: Increases your Attack Power by 33%/66%/100% of your Intellect. -- Added Buff: Astral Shift: When stunned, feared or silenced you shift into the Astral Plane reducing all damage taken by 30% -- Added Buff: Unleashed Rage: Melee attack power increased by 10%. -- Removed Talent: Shield Specialization -- Updated Talent: Nature's Blessing: spell damage and healing -> healing, 10%/20%/30% -> 5%/10%/15% -- Updated Talent: Anticipation: 1%/2%/3%/4%/5% -> 1%/2%/3% -- Updated Talent: Ancestral Knowledge: maximum Mana -> intellect. 1%/2%/3%/4%/5% -> 2%/4%/6%/8%/10%. - -Rogue -- Removed Talent: Vitality - -Priest -- Added Talent: Focused Power: Increases your total spell damage and healing done by 2%/4%. -- Added Talent: Twisted Faith: Increases your spell power by 2%/4%/6%/8%/10% of your total Spirit -- Updated Talent: Improved Divine Spirit: No longer increases spell power by spirit -- Updated Talent: Mental Strength: Increases your maximum Mana -> total Intellect -- Updated Talent: Enlightenment: Stamina, Intellect and Spirit -> Stamina, Spirit and Spell Haste - -Paladin -- Added options: Show Spell Damage from Stamina (Touched by the Light) -- Added options: Show Healing from Stamina (Touched by the Light) -- Added options: Show Spell Damage from Strength (Sheath of Light) -- Added options: Show Healing from Strength (Sheath of Light) -- Added Talent: Touched by the Light: Increases your spell power by an amount equal to 10%/20%/30% of your Stamina -- Added Talent: Sheath of Light: Increases your spell power by an amount equal to 10%/20%/30% of your attack power -- Updated Talent: Holy Guidance: 35% -> 20% -- Updated Talent: Divine Strength: Increases your total Strength by 3%/6%/9%/12%/15% -- Updated Talent: Combat Expertise: Changed to 3 ranks -- Removed Talent: Shield Specialization - -Mage -- Added Talent: Student of the Mind: Increases your total Spirit by 4%/7%/10%. -- Added Talent(WotLK & TBC): Arcane Instability: Increases your spell damage and critical strike chance by 1%/2%/3%. -- Updated Talent: Arcane Fortitude: Increases your armor by an amount equal to 50%/100%/150% of your Intellect. -- Updated Talent: Mind Mastery: Increases spell damage by up to 3%/6%/9%/12%/15% of your total Intellect. - -Hunter -- Added options: Show Spell Damage from Stamina -- Added options: Show Attack Power from Stamina (Hunter vs. Wild) -- Added Talent: Hunter vs. Wild: Increases you and your pet's attack power and ranged attack power equal to 10%/20%/30% of your total Stamina. -- Updated Buff: Aspect of the Viper: no longer gives MP5 from Int -- Updated Talent: Careful Aim: now adds 33%/66%/100% RAP from Int -- Updated Talent: Survivalist: Increases your Stamina by 2%/4%/6%/8%/10%. -- Updated Talent: Combat Experience: Increases your total Agility and Intellect by 2%/4%. -- Updated Talent: Survival Instincts - No longer increases AP - -DeathKnight -- Added options: Show Parry from Strength (Forceful Deflection) -- Added Pasive: Forceful Deflection: Increases your Parry Rating by 25% of your total Strength. -- Added Talent: Bladed Armor: 1/2/3/4/5 AP every 180 Armor. -- Added Talent: Veteran of the Third War: Increases your total Strength by 2%/4%/6% and your total Stamina by 1%/2%/3%. -- Added Talent: Will of the Necropolis: When you have less than 35% health, your total armor increases by 10%/20%/30%. -- Added Talent: Toughness: Increases your armor value from items by 3%/6%/9%/12%/15% -- Added Talent: Ravenous Dead: Increases the total Strength of you by 1%/2%/3% -- Added Talent: Shadow of Death: Increases your total Strength and Stamina by 2%. -- Added Talent: Abomination's Might: Increases your total Strength by 1%/2%. -- Added Buff: Abominable Might: Attack power increased by 10%. -- Added Buff: Unbreakable Armor: Increases your armor by 25%, your total Strength by 10%. -- Added Buff: Frost Presence: Increases armor by 60%, health by 10% - -Druid -- Added options: Show Spell Damage from Spirit (Improved Moonkin Form) -- Added options: Show Healing from Spirit (Improved Tree of Life) -- Added Talent: Predatory Strikes: Increases 20% of any attack power on your equipped weapon. -- Added Talent: Furor: Increases your total Intellect while in Moonkin form by 2%/4%/6%/8%/10%. -- Added Talent: Improved Tree of Life: Increases your Armor while in Tree of Life Form by 33%/66%/100%, increases healing by 5%/10%/15% of spirit. -- Added Talent: Protector of the Pack: Increases your attack power in Bear Form and Dire Bear Form by 2%/4%/6%. -- Added Buff: Survival Instincts: +30% of your maximum health -- Updated Talent: Lunar Guidance: 8%/16%/25% -> 4%/8%/12% -- Updated Talent: Nurturing Instinct: 50%/100% -> 35%/70% of your Agility -- Updated Talent: Survival of the Fittest: 1%/2%/3% -> 2%/4%/6% -- Updated Buff: Dire Bear Form, Moonkin Form: Armor +400% -> +370% -- Master Shapeshifter doesn't affect char window stats - -1.3.8 -- NEW: Support for negative stats -- Update for 2.4.3: Parry Rating, Defense Rating, and Block Rating: Low-level players will now convert these ratings into their corresponding defensive stats at the same rate as level 34 players -- Fixed: Better JewelTips support -- Fixed: Druid - Nurturing Instinct (Str->Agi) -- Fixed: Mage - Arcane Fortitude (50% -> 100% Armor from Int) -- Optimized library usage -- Updated localizations -1.3.7a -- Fixed: Loading error -1.3.7 -- Changed: Will only show stat breakdown options your class can use -- Changed: Class specific stat breakdown options will show the talents required -- Added: Stat breakdown support for Mental Quickness (Shaman) -- Fixed: Support for new Demonic Knowledge(Warlock) and Nurturing Instinct(Druid) -- Fixed: Library errors -1.3.6 -- Updated toc to 20400 -- Fixed: Able to clear default gem settings -- Fixed: Deadly Fire Opal now shows rating conversion -1.3.5 -- NEW: Default gems for empty sockets! Set the gems to use for each socket using /rb sum gem -- In 2.4.0: Spirit-Based Mana Regeneration: This system has been adjusted so that as your intellect rises, you will regenerate more mana per point of spirit. -- Fixed: Will now work with [Insightful Earthstorm Diamond] -- Fixed: Profiles should now work -- Changed: Use "/rb win" to open the options window instead of "/rb optionswin" -1.3.1 -- Fixed: Spell Haste summary works now -- Fixed: Doesn't match percentages anymore (ex: Increases healing by up to 10% of your total Intellect) -- Fixed: Error when sorting StatSummary alphabetically -- Updated localizations: Taiwan, French, China, German, Spanish -1.3.0 -- Updated: TOC to 20300 -- Updated localizations: Taiwan, Korean, China, German -- Fixed: Socketed gem stat text color after percentage conversion is no longer yellow -- Fixed: "+X healing and +X spell damage" type gems and enchants now gives correct healing summary -- NEW: Categorized StatSummery Options in to Basic, Physical damage, Spell damage and healing, Tank -- NEW: StatSummary is sorted(basic, physical damage, spell damage and healing, tank in that order) -- NEW: Option to sort StatSummary alphabetically instead of the above -- NEW: Option to include block chance in Avoidance summary -- StatSummary Added: - Resilience - Haste - Haste Rating - Spell Haste - Spell Haste Rating - Penetration - IgnoreArmor - HitRating - CritRating - SpellHitRating - SpellCritRating - DodgeRating - ParryRating - BlockRating -1.2.8 -- Fixed: +X Spell Power gives healing too -- In 2.3.0: Support for Spell Damage bonus in +Healing stats -1.2.7 -- NEW: Option to Show detail text for Resilience and Expertise conversions -- NEW: Option to Show Avoidance Summary <- Dodge, Parry, MobMiss -- NEW: TankPoints support, if you have TankPoints loaded you get 2 new summary options: TankPoints and Total Reduction -- In 2.3.0: Added Expertise stat support -- In 2.3.0: Heart of the Wild (Druid Feral Combat talent) provides 2/4/6/8/10% bonus attack power in Cat form instead -- In 2.3.0: Intensity (Druid Restoration talent) increased to 10/20/30% mana regeneration -- In 2.3.0: Arcane Meditation (Mage Arcane talent) increased to 10/20/30% mana regeneration -- In 2.3.0: Meditation (Priest Discipline talent) increased to 10/20/30% mana regeneration -- In 2.3.0: Weapon Expertise (Paladin Protection talent) renamed Combat Expertise, now increases expertise by 1/2/3/4/5 and total Stamina by 2/4/6/8/10% -- In 2.3.0: Mental Quickness (Shaman Enhancement talent) now also increases spell damage and healing equal to 10/20/30% of your attack power -- All 2.3.0 Changes will only take affect when using a 2.3.0 client. -- Updated: German localization -1.2.6 -- Fixed: Ranged AP Calculations -1.2.5 -- Updated: toc to 20200 -- Fixed: Haste rating change in 2.2.0 -- Fixed: Hunter Survival Instincts talent support -- Fixed: Armor multiplier no longer apply to Armor from enchants -- NEW: Added China localization by iceburn(candykiss) -- Updated: Taiwan localization -- Updated: Korean localization by fenlis -- Updated: German localization by Dleh -- Code optimizations -- Updated: Libs -1.2.4 -- Fixed: Error when difftype is set to comp -- Made Waterfall-1.0 optional -1.2.3 -- NEW: You can now open the options window using /rb optionswin -- Updated Taiwan localization -- Updated Korean localizations by fenlis -1.2.2 -- New option to hide the StatSummary title -- New option to hide the sigma icon in the StatSummary title -- New option to add a empty line after the StatSummary -- Updated Taiwan localization -- Other localizations needs to be updated -1.2.1 -- Updated Taiwan localization -- Improved stat scanning -- Updated German localization -1.2.0 -- Updated French localization by Tixu and Silaor, now supports StatSummary -- Fixed a bug causing StatSummary not showing correctly for languages other then English -- Fixed Parry/SpellHaste rating conversions -- Updated libs -1.1.9 -- Pre updated the TOC to 2.1.0 -- Improved the Sigma icon -- Updated readme file -1.1.8 -- StatSummary: "Mana Regen while Not casting" now shows the correct value -- StatSummary: "Health Regen while Out of Combat" now shows the correct value -- StatSummary: fixed lines with "and" counting stats twice -- Added support for Gnome +5% Intellect Racial -- Added support for Human +10% Spirit Racial -- Fixed StatLogic line 6285 strfind error (thanks to everyone that helped) -- Updated Korean localizations by fenlis -1.1.7 -- Minor bug fixes -- Updated Taiwan localizations by mcc -- Updated Korean localizations by fenlis -- Updated French localizations by renchap -1.1.6 -- Stat Summary now has the option to show resistances -- Fixed Feral Attack Power name -- /rb sum ignore unused now shows leather for hunters -- Fixed an error when mousing over items that goes into a slot you currently have no equipment in when you have the ignore enchant or gem option on -1.1.5 -- Fixed MP5NC, HP5OC summary -- Changed default diff style from comp to main, since not everyone uses a compare addon -- Attempt to fix some more funny bugs -1.1.4 -- Option to display Weapon Max Damage in summary -- Improved option for ignoring enchants and gems, they are now 2 different options -- Fixed some classes not showing summary for cloaks -- Fixed incorrect shield diffs -- Improved diff style code should fix funny errors -1.1.3 -- Fixed EQCompare, tekKompare support -- Updated Taiwan localizations -1.1.2 -- Option to Display diff values in the main tooltip or only in compare tooltips for readability -- Option to Ignore enchants and gems on items when calculating the stat summary -- /rb sum ignore unused now shows all armor types they are use for druids, paladins and shamans -- Updated Taiwan localizations -- Code clean up -1.1.1 -- Option to Show stat summary only for highest level armor type and items you can use with uncommon quality and up -- Option to Hide stat summary for equipped items -- Option to Add a blank line before stat summary for readability -- Mage, Warlock, Shaman now shows spellcrit as default summary instead of crit -- Updated Taiwan localizations -- Minor bug fixes -1.1.0 -- NEW: Stat Summary - Display the sum of stats of the item and/or the stat difference of the item and your equipped items -- Choose the stats you really care about to be show in the summary -- Composite stats are broken down and added into base stats, and supports talent/buff mods, Ex: "Spell Crit Chance" is calculated from "Spell Crit Rating" and "Intellect" -- Option descriptions now show class names for class specific stat conversions -- Added support for Aspect of the Viper -- Option to hide rating conversions -- Option to hide all base stat conversions -- Option to further breakdown Defense into Crit Avoidance, Hit Avoidance, Dodge, Parry and Block -- Option to further breakdown Weapon Skills into Crit, Hit, Dodge Neglect, Parry Neglect, Block Neglect -- Fixed Taiwan and French localization errors -- Fixed locale registering twice error -- Fixed mp5 and hp5 calculations for Shaman, Druid, Mage, Warlock -- Agi -> Dodge only works for your current level, for best results turn off /rb usereqlv, and set /rb level 0 -1.0.0 -- Support for talents and buffs that modify your stats -- Supports the following stat conversions -- Str -> AP, Block, Healing(Talent) -- Agi -> Crit, Dodge, AP, RAP, Armor -- Sta -> Health, SpellDmg(Talent) -- Int -> Mana, SpellCrit, SpellDmg(Talent), Healing(Talent), MP5(Talent), RAP(Talent), Armor(Talent) -- Spi -> MP5(Talent), MP5NC, HP5, SpellDmg(Talent), Healing(Talent) -- If you need a GUI config window for RatingBuster, use Niagara (Download at: http://files.wowace.com/) -0.9.5 -- Fixed library error -0.9.4 -- Added Taiwan localizations by CuteMiyu -0.9.3 -- Updated Korean localization by kcgcom -0.9.2 -- Code clean up -- Finally removed Compost -0.9.1a -- Really fixed locales -0.9.1 -- Fixed locales -- Added Korean localization by kcgcom -0.9.0 -- Optimized parsing algorithm to use fewer resources -- showCritFromAgi and showSpellCritFromInt will now correctly save as per class data -- /rb level will now save -- No longer scans buffs -- Code clean up -0.8.6 -- tekKompare support -- Sniff support -0.8.5 -- AtlasLoot support -- ItemMagic support -- Fixed line 785 error -0.8.4 -- Spell Crit from Intellect defaults off for Hunters too -0.8.3 -- Fixed color picker bug -- Updated French localization (Tixu) -0.8.2 -- Fixed % signs showing before some periods bug -0.8.1 -- Option to enable colored text (/rb color) -- Fixed Defense showing the % sign bug -- Fixed Haste Rating conversion -- Updated French localization (Tixu) -0.8.0 -- Option to show Crit from Agility, Ex: "+15 Agility (+0.72% Crit)" -- Option to show Spell Crit from Intellect, Ex: "+23 Intellect (+0.35% Spell Crit)" -- Support for "grant you xx stat" type pattern, ex: Quel'Serrar, Assassination Armor set -- "+14 (1.21%) Rating" type strings changed to "+14 Rating (+1.21%)" -- Recoded tooltip scanner is now more easily extendable and has support for multiple separators for better accuracy. -0.7.6 -- The amount of haste granted by a point of haste rating has been increased by 50% (Patch 2.0.7) -- Fixed Mutltitips support -- Minor code tweaks -0.7.5 -- Fixed double conversion bug -- Fixed GetItem error -- Support for Hit Avoidance Rating (assuming its the same as melee Hit Rating) -0.7.1 -- Fixed a hooking bug -0.7.0 -- Now uses the OnTooltipSetItem script handler instead of hooking all the SetX methods, - this combined with the new Tooltip:GetItem() method should also fix problems where - RatingBuster doesn't always work, like at the mailbox. -0.6.6 -- MultiTips support -0.6.5 -- LinkWrangler support -0.6.4 -- Updated Libs -0.6.3 -- Use Required Level defaults to true -- Support for EQCompare -- Changed toc to 20003 for TBC (It will show up as out-of-date until TBC goes live, enable loading out-of-date to load it) -0.6.2 -- Added German localization by Runenstetter@Nathrezim.EU -- Fixed French localization -0.6.1 -- Added French localization by Tixu -0.6 -- Added option to calculate using the required level if you are below the required level -- Redesigned the tooltip scanner to be more locale friendly, should be easier to do translations now. -0.5.1 -- Fixed line 457 error -0.5 -- Improved ItemLevel and ItemID algorithm, will now work on most tooltips -- Updated Libs -0.4.3 -- Fixed line 499 error -- Temporarily removed ItemLevel and ID support for Bagnon, working on a better implementation -0.4.2 -- Fixed a rare error in line 487 -- Updated Libs -0.4.1 -- Inspect frame support for ItemLevel and ItemID -- Two-Handed skill ratings now works -0.4 -- Bagnon support for ItemLevel and ItemID -- Fixed some errors -- Updated libs -0.3.2 -- Fixed auction house bug -0.3.1 -- Fixed keyring bug -0.3 -- Works with enchant links -- Works with keyring items -0.2.1 -- Fixed AceConsole error -0.2 -- Simplified the localization file for easier localization -- Added keyword "spell crit" -- Added Item Level, Item ID support for profession trainer items -- Set Debugging to false -0.1.1 -- Removed AceHook2.1 cause it was causing problems with other Ace2 addons -0.1 -- Initial release \ No newline at end of file diff --git a/RatingBuster/Changelog-RatingBuster-r295.txt b/RatingBuster/Changelog-RatingBuster-r295.txt deleted file mode 100644 index a6e6a45..0000000 --- a/RatingBuster/Changelog-RatingBuster-r295.txt +++ /dev/null @@ -1,79 +0,0 @@ ------------------------------------------------------------------------- -r295 | cremor | 2010-10-22 16:37:30 +0000 (Fri, 22 Oct 2010) | 1 line -Changed paths: - M /trunk/RatingBuster-Locale-deDE.lua - -- deDE update ------------------------------------------------------------------------- -r294 | whitetooth | 2010-10-22 16:07:47 +0000 (Fri, 22 Oct 2010) | 2 lines -Changed paths: - M /trunk/RatingBuster-Locale-deDE.lua - M /trunk/RatingBuster-Locale-enUS.lua - M /trunk/RatingBuster-Locale-esES.lua - M /trunk/RatingBuster-Locale-frFR.lua - M /trunk/RatingBuster-Locale-koKR.lua - M /trunk/RatingBuster-Locale-ruRU.lua - M /trunk/RatingBuster-Locale-zhCN.lua - M /trunk/RatingBuster-Locale-zhTW.lua - M /trunk/RatingBuster.lua - -- Removed deprecated stats -- Update libs ------------------------------------------------------------------------- -r293 | cremor | 2010-10-22 14:12:12 +0000 (Fri, 22 Oct 2010) | 1 line -Changed paths: - M /trunk/RatingBuster-Locale-deDE.lua - -- deDE update ------------------------------------------------------------------------- -r292 | whitetooth | 2010-10-21 07:47:03 +0000 (Thu, 21 Oct 2010) | 1 line -Changed paths: - M /trunk/RatingBuster-Locale-deDE.lua - M /trunk/RatingBuster-Locale-enUS.lua - M /trunk/RatingBuster-Locale-esES.lua - M /trunk/RatingBuster-Locale-frFR.lua - M /trunk/RatingBuster-Locale-koKR.lua - M /trunk/RatingBuster-Locale-ruRU.lua - M /trunk/RatingBuster-Locale-zhCN.lua - M /trunk/RatingBuster-Locale-zhTW.lua - M /trunk/RatingBuster.lua - -- Partial support for Master Rating ------------------------------------------------------------------------- -r289 | whitetooth | 2010-10-19 17:22:17 +0000 (Tue, 19 Oct 2010) | 1 line -Changed paths: - M /trunk/RatingBuster.lua - -- Removed "ADD_AP_MOD_SPELL_DMG" ------------------------------------------------------------------------- -r288 | whitetooth | 2010-10-19 17:01:30 +0000 (Tue, 19 Oct 2010) | 1 line -Changed paths: - M /trunk - M /trunk/.pkgmeta - M /trunk/About RatingBuster.txt - M /trunk/RatingBuster.lua - M /trunk/RatingBuster.toc - M /trunk/embeds.xml - -- Core updated to LibStatLogic-1.2 ------------------------------------------------------------------------- -r287 | 7destiny | 2010-10-15 16:39:21 +0000 (Fri, 15 Oct 2010) | 1 line -Changed paths: - M /trunk/RatingBuster-Locale-koKR.lua - -- koKR Update ------------------------------------------------------------------------- -r286 | whitetooth | 2010-10-02 10:15:26 +0000 (Sat, 02 Oct 2010) | 1 line -Changed paths: - M /trunk/RatingBuster.lua - -- Fixed some loading errors in 4.0 ------------------------------------------------------------------------- -r285 | cremor | 2010-06-03 14:46:28 +0000 (Thu, 03 Jun 2010) | 2 lines -Changed paths: - M /trunk/RatingBuster-Locale-deDE.lua - M /trunk/RatingBuster.lua - -- "Hide Blizzard Item Comparisons" now also works for ItemRefTooltips -- deDE update ------------------------------------------------------------------------- diff --git a/RatingBuster/RB-Example.jpg b/RatingBuster/RB-Example.jpg deleted file mode 100644 index e412bf0..0000000 Binary files a/RatingBuster/RB-Example.jpg and /dev/null differ diff --git a/RatingBuster/RatingBuster-Locale-deDE.lua b/RatingBuster/RatingBuster-Locale-deDE.lua index 10bce6a..e01dd05 100644 --- a/RatingBuster/RatingBuster-Locale-deDE.lua +++ b/RatingBuster/RatingBuster-Locale-deDE.lua @@ -1,6 +1,6 @@ --[[ Name: RatingBuster deDE locale -Revision: $Revision: 295 $ +Revision: $Revision: 282 $ Translated by: - Kuja ]] @@ -62,14 +62,20 @@ L["Options for Rating display"] = "Optionen für die Wertungsanzeige" L["Show Rating Conversions"] = "Zeige Wertungsumrechnung" L["Show Rating conversions in tooltips"] = "Zeige Wertungsumrechnung im Tooltip" -- /rb rating spell -L["Show Spell Hit/Haste"] = "Zeige Zaubertempo/-trefferchance" -L["Show Spell Hit/Haste from Hit/Haste Rating"] = "Zeige Zaubertempo/-trefferchance von Tempo-/Trefferwertung" +--L["Show Spell Hit/Haste"] = true +--L["Show Spell Hit/Haste from Hit/Haste Rating"] = true -- /rb rating physical -L["Show Physical Hit/Haste"] = "Zeige physisches Tempo/Trefferchance" -L["Show Physical Hit/Haste from Hit/Haste Rating"] = "Zeige physisches Tempo/Trefferchance von Tempo-/Trefferwertung" +--L["Show Physical Hit/Haste"] = true +--L["Show Physical Hit/Haste from Hit/Haste Rating"] = true -- /rb rating detail L["Show Detailed Conversions Text"] = "Zeige detaillierten Umrechnungtext" L["Show detailed text for Resilience and Expertise conversions"] = "Zeige detaillierten Text für Abhärtungs- und Waffenkundeumrechnung" +-- /rb rating def +L["Defense Breakdown"] = "Verteidigungsanalyse" +L["Convert Defense into Crit Avoidance, Hit Avoidance, Dodge, Parry and Block"] = "Wandle Verteidigung in Vermeidung von (kritischen) Treffern, Ausweichen, Parieren und Blocken um" +-- /rb rating wpn +L["Weapon Skill Breakdown"] = "Waffenfertigkeitswertungsanalyse" +L["Convert Weapon Skill into Crit, Hit, Dodge Neglect, Parry Neglect and Block Neglect"] = "Wandle Waffenfertigkeitswertung in (kritische) Trefferchance, Ausweich-, Parier- und Blockmissachtung um" -- /rb rating exp L["Expertise Breakdown"] = "Waffenkundeanalyse" L["Convert Expertise into Dodge Neglect and Parry Neglect"] = "Wandle Waffenkunde in Ausweich- und Pariermissachtung um" @@ -320,12 +326,6 @@ L["Intellect Summary"] = "Intelligenzübersicht" -- /rb sum basic spi L["Sum Spirit"] = "Willenskraft zusammenrechnen" L["Spirit Summary"] = "Willenkraftübersicht" --- /rb sum basic mastery -L["Sum Mastery"] = "Meisterschaft zusammenrechnen" -L["Mastery Summary"] = "Meisterschaftsübersicht" --- /rb sum basic masteryrating -L["Sum Mastery Rating"] = "Meisterschaftswertung zusammenrechnen" -L["Mastery Rating Summary"] = "Meisterschaftswertungsübersicht" --------------------------------------------------------------------------- -- /rb sum physical L["Stat - Physical"] = "Werte - Physisch" @@ -341,13 +341,13 @@ L["Sum Feral Attack Power"] = "Feral Angriffskraft zusammenrechnen" L["Feral Attack Power <- Feral Attack Power, Attack Power, Strength, Agility"] = "Feral Angriffskraft <- Feral Angriffskraft, Angriffskraft, Stärke, Beweglichkeit" -- /rb sum physical hit L["Sum Hit Chance"] = "Trefferchance zusammenrechnen" -L["Hit Chance <- Hit Rating"] = "Trefferchance <- Trefferwertung" +L["Hit Chance <- Hit Rating, Weapon Skill Rating"] = "Trefferchance <- Trefferwertung, Waffenfertigkeitswertung" -- /rb sum physical hitrating L["Sum Hit Rating"] = "Trefferwertung zusammenrechnen" L["Hit Rating Summary"] = "Trefferwertungsübersicht" -- /rb sum physical crit L["Sum Crit Chance"] = "Kritische Trefferchance zusammenrechnen" -L["Crit Chance <- Crit Rating, Agility"] = "Kritische Trefferchance <- kritische Trefferwertung, Beweglichkeit" +L["Crit Chance <- Crit Rating, Agility, Weapon Skill Rating"] = "Kritische Trefferchance <- kritische Trefferwertung, Beweglichkeit, Waffenfertigkeitswertung" -- /rb sum physical critrating L["Sum Crit Rating"] = "Kritische Trefferwertung zusammenrechnen" L["Crit Rating Summary"] = "Kritische Trefferwertungsübersicht" @@ -359,13 +359,13 @@ L["Sum Haste Rating"] = "Tempowertung zusammenrechnen" L["Haste Rating Summary"] = "Tempowertungsübersicht" -- /rb sum physical rangedhit L["Sum Ranged Hit Chance"] = "Distanztrefferchance zusammenrechnen" -L["Ranged Hit Chance <- Hit Rating, Ranged Hit Rating"] = "Distanztrefferchance <- Trefferwertung, Distanztrefferwertung" +L["Ranged Hit Chance <- Hit Rating, Weapon Skill Rating, Ranged Hit Rating"] = "Distanztrefferchance <- Trefferwertung, Waffenfertigkeitswertung, Distanztrefferwertung" -- /rb sum physical rangedhitrating L["Sum Ranged Hit Rating"] = "Distanztrefferwertung zusammenrechnen" L["Ranged Hit Rating Summary"] = "Distanztrefferwertungsübersicht" -- /rb sum physical rangedcrit L["Sum Ranged Crit Chance"] = "Kritische Distanztrefferchance zusammenrechnen" -L["Ranged Crit Chance <- Crit Rating, Agility, Ranged Crit Rating"] = "Kritische Distanztrefferchance <- kritische Trefferwertung, Beweglichkeit, kritische Distanztrefferwertung" +L["Ranged Crit Chance <- Crit Rating, Agility, Weapon Skill Rating, Ranged Crit Rating"] = "Kritische Distanztrefferchance <- kritische Trefferwertung, Beweglichkeit, Waffenfertigkeitswertung, kritische Distanztrefferwertung" -- /rb sum physical rangedcritrating L["Sum Ranged Crit Rating"] = "Kritische Distanztrefferwertung zusammenrechnen" L["Ranged Crit Rating Summary"] = "Kritische Distanztrefferwertungsübersicht" @@ -378,6 +378,12 @@ L["Ranged Haste Rating Summary"] = "Distanztempowertungsübersicht" -- /rb sum physical maxdamage L["Sum Weapon Max Damage"] = "Waffenmaximalschaden zusammenrechnen" L["Weapon Max Damage Summary"] = "Waffenmaximalschadensübersicht" +-- /rb sum physical ignorearmor +L["Sum Ignore Armor"] = "Rüstungsmissachtung zusammenrechnen" +L["Ignore Armor Summary"] = "Rüstungsmissachtungsübersicht" +-- /rb sum physical arp +L["Sum Armor Penetration"] = "Rüstungsdurchlag zusammenrechnen" +L["Armor Penetration Summary"] = "Rüstungsdurchlagsübersicht" -- /rb sum physical weapondps --L["Sum Weapon DPS"] = true --L["Weapon DPS Summary"] = true @@ -388,8 +394,11 @@ L["Weapon Skill <- Weapon Skill Rating"] = "Waffenfertigkeit <- Waffenfertigkeit L["Sum Expertise"] = "Waffenkunde zusammenrechnen" L["Expertise <- Expertise Rating"] = "Waffenkunde <- Waffenkundewertung" -- /rb sum physical exprating -L["Sum Expertise Rating"] = "Waffenkundewertung zusammenrechnen" -L["Expertise Rating Summary"] = "Waffenkundewertungsübersicht" +--L["Sum Expertise Rating"] = true +--L["Expertise Rating Summary"] = true +-- /rb sum physical arprating +L["Sum Armor Penetration Rating"] = "Rüstungsdurchlagwertung zusammenrechnen" +L["Armor Penetration Rating Summary"] = "Rüstungsdurchlagwertungsübersicht" --------------------------------------------------------------------------- -- /rb sum spell L["Stat - Spell"] = "Werte - Zauber" @@ -445,22 +454,34 @@ L["Stat - Tank"] = "Werte - Verteidigung" L["Choose tank stats for summary"] = "Wähle Verteidigungswerte für die Übersicht" -- /rb sum tank armor L["Sum Armor"] = "Rüstung zusammenrechnen" -L["Armor <- Armor from items and bonuses"] = "Rüstung <- Rüstung von Gegenständen und Boni" +L["Armor <- Armor from items, Armor from bonuses, Agility, Intellect"] = "Rüstung <- Rüstung von Gegenständen, Rüstung von Boni, Beweglichkeit, Intelligenz" +-- /rb sum tank blockvalue +L["Sum Block Value"] = "Blockwert zusammenrechnen" +L["Block Value <- Block Value, Strength"] = "Blockwert <- Blockwert, Stärke" -- /rb sum tank dodge L["Sum Dodge Chance"] = "Ausweichchance zusammenrechnen" -L["Dodge Chance <- Dodge Rating, Agility"] = "Ausweichchance <- Ausweichwertung, Beweglichkeit" +L["Dodge Chance <- Dodge Rating, Agility, Defense Rating"] = "Ausweichchance <- Ausweichwertung, Beweglichkeit, Verteidigungswertung" -- /rb sum tank parry L["Sum Parry Chance"] = "Parierchance zusammenrechnen" -L["Parry Chance <- Parry Rating"] = "Parierchance <- Parierwertung" +L["Parry Chance <- Parry Rating, Defense Rating"] = "Parierchance <- Parierwertung, Verteidigungswertung" -- /rb sum tank block L["Sum Block Chance"] = "Blockchance zusammenrechnen" -L["Block Chance <- Block Rating"] = " Blockchance <- Blockwertung" +L["Block Chance <- Block Rating, Defense Rating"] = " Blockchance <- Blockwertung, Verteidigungswertung" +-- /rb sum tank avoidhit +L["Sum Hit Avoidance"] = "Treffervermeidung zusammenrechnen" +L["Hit Avoidance <- Defense Rating"] = "Treffervermeidung <- Verteidigungswertung" +-- /rb sum tank avoidcrit +L["Sum Crit Avoidance"] = "Kritische Treffervermeidung" +L["Crit Avoidance <- Defense Rating, Resilience"] = "Kritische Treffervermeidung <- Verteidigungswertung, Abhärtungswertung" -- /rb sum tank neglectdodge L["Sum Dodge Neglect"] = "Ausweichmissachtung zusammenrechnen" -L["Dodge Neglect <- Expertise"] = "Ausweichmissachtung <- Waffenkunde" +L["Dodge Neglect <- Expertise, Weapon Skill Rating"] = "Ausweichmissachtung <- Waffenkunde, Waffenfertigkeitswertung" -- /rb sum tank neglectparry L["Sum Parry Neglect"] = "Pariermissachtung zusammenrechnen" -L["Parry Neglect <- Expertise"] = "Pariermissachtung <- Waffenkunde" +L["Parry Neglect <- Expertise, Weapon Skill Rating"] = "Pariermissachtung <- Waffenkunde, Waffenfertigkeitswertung" +-- /rb sum tank neglectblock +L["Sum Block Neglect"] = "Blockmissachtung" +L["Block Neglect <- Weapon Skill Rating"] = "Blockmissachtung <- Waffenfertigkeitswertung" -- /rb sum tank resarcane L["Sum Arcane Resistance"] = "Arkanwiderstand zusammenrechnen" L["Arcane Resistance Summary"] = "Arkanwiderstandsübersicht" @@ -477,8 +498,8 @@ L["Frost Resistance Summary"] = "Frostwiderstandsübersicht" L["Sum Shadow Resistance"] = "Schattenwiderstand zusammenrechnen" L["Shadow Resistance Summary"] = "Schattenwiderstandsübersicht" -- /rb sum tank dodgerating -L["Sum Dodge Rating"] = "Ausweichwertung zusammenrechnen" -L["Dodge Rating Summary"] = "Ausweichwertungsübersicht" +L["Sum Dodge Rating"] = "Verteidigungswertung zusammenrechnen" +L["Dodge Rating Summary"] = "Verteidigungswertungsübersicht" -- /rb sum tank parryrating L["Sum Parry Rating"] = "Parierwertung zusammenrechnen" L["Parry Rating Summary"] = "Parierwertungsübersicht" @@ -488,12 +509,15 @@ L["Block Rating Summary"] = "Blockwertungsübersicht" -- /rb sum tank res L["Sum Resilience"] = "Abhärtung zusammenrechnen" L["Resilience Summary"] = "Abhärtungsübersicht" +-- /rb sum tank def +L["Sum Defense"] = "Verteidigung zusammenrechnen" +L["Defense <- Defense Rating"] = "Verteidigung <- Verteidigungswertung" -- /rb sum tank tp L["Sum TankPoints"] = "TankPoints zusammenrechnen" L["TankPoints <- Health, Total Reduction"] = "TankPoints <- Leben, Gesamtreduzierung" -- /rb sum tank tr L["Sum Total Reduction"] = "Gesamtreduzierung zusammenrechnen" -L["Total Reduction <- Armor, Dodge, Parry, Block, MobMiss, MobCrit, MobCrush, DamageTakenMods"] = "Gesamtreduzierung <- Rüstung, Ausweichen, Parieren, Blocken, Gegner-Verfehlen, Gegner-Kritisch, Gegner-Schmettern, Schadensmodifikatoren" +L["Total Reduction <- Armor, Dodge, Parry, Block, Block Value, Defense, Resilience, MobMiss, MobCrit, MobCrush, DamageTakenMods"] = "Gesamtreduzierung <- Rüstung, Ausweichen, Parieren, Blocken, Blockwert, Verteidigung, Abhärtung, Gegner-Verfehlen, Gegner-Kritisch, Gegner-Schmettern, Schadensmodifikatoren" -- /rb sum tank avoid L["Sum Avoidance"] = "Vermeidung zusammenrechnen" L["Avoidance <- Dodge, Parry, MobMiss, Block(Optional)"] = "Vermeidung <- Ausweichen, Parieren, Gegner-Verfehlen, Blocken (optional)" @@ -671,7 +695,6 @@ L["statList"] = { {pattern = "waffenkundewertung", id = CR_EXPERTISE}, -- {pattern = "hit avoidance rating", id = CR_HIT_TAKEN_MELEE}, - seit 2.0.10 gibt es kein item mehr damit {pattern = "rüstungsdurchschlagwertung", id = CR_ARMOR_PENETRATION}, - {pattern = "meisterschaftswertung", id = CR_MASTERY}, {pattern = string.lower(ARMOR), id = ARMOR}, --[[ {pattern = "dagger skill rating", id = CR_WEAPON_SKILL}, diff --git a/RatingBuster/RatingBuster-Locale-enUS.lua b/RatingBuster/RatingBuster-Locale-enUS.lua index d7d2264..53bd6ca 100644 --- a/RatingBuster/RatingBuster-Locale-enUS.lua +++ b/RatingBuster/RatingBuster-Locale-enUS.lua @@ -1,6 +1,6 @@ --[[ Name: RatingBuster enUS locale -Revision: $Revision: 294 $ +Revision: $Revision: 282 $ Translated by: - Whitetooth (hotdogee [at] gmail [dot] com) ]] @@ -70,6 +70,12 @@ L["Show Physical Hit/Haste from Hit/Haste Rating"] = true -- /rb rating detail L["Show Detailed Conversions Text"] = true L["Show detailed text for Resilience and Expertise conversions"] = true +-- /rb rating def +L["Defense Breakdown"] = true +L["Convert Defense into Crit Avoidance, Hit Avoidance, Dodge, Parry and Block"] = true +-- /rb rating wpn +L["Weapon Skill Breakdown"] = true +L["Convert Weapon Skill into Crit, Hit, Dodge Neglect, Parry Neglect and Block Neglect"] = true -- /rb rating exp L["Expertise Breakdown"] = true L["Convert Expertise into Dodge Neglect and Parry Neglect"] = true @@ -100,6 +106,12 @@ L["Show Attack Power from Strength"] = true -- /rb stat str block L["Show Block Value"] = true L["Show Block Value from Strength"] = true +-- /rb Ascension Custom Conviction +L["Show Conviction"] = true +L["Show Spell Crit from Strength"] = true +-- /rb Ascension Custom Divine Strenth +L["Show Divine Strength"] = true +L["Show Hit Rating from Strength"] = true -- /rb stat str dmg L["Show Spell Damage"] = true L["Show Spell Damage from Strength"] = true @@ -109,6 +121,9 @@ L["Show Healing from Strength"] = true -- /rb stat str parry L["Show Parry"] = true L["Show Parry from Strength"] = true +-- /rb Ascension Custom Iron Will +L["Show Iron Will"] = true +L["Show Parry Rating from Strength"] = true --------------------------------------------------------------------------- -- /rb stat agi L["Agility"] = true @@ -131,6 +146,16 @@ L["Show Armor from Agility"] = true -- /rb stat agi heal L["Show Healing"] = true L["Show Healing from Agility"] = true +-- /rb Ascension Custom Thundering Strikes +L["Show Thundering Strikes"] = true +L["Show Spell Crit from Agility"] = true +-- /rb Ascension Custom Shamanistic Focus/Combat Experience +L["Show Shamanistic Focus"] = true +L["Show Combat Experience"] = true +L["Show Spell Hit from Agility"] = true +-- /rb Ascension Custom Natural Reaction +L["Show Natural Reaction"] = true +L["Show Dodge from Natural Reaction"] = true --------------------------------------------------------------------------- -- /rb stat sta L["Stamina"] = true @@ -147,6 +172,9 @@ L["Show Healing from Stamina"] = true -- /rb stat sta ap L["Show Attack Power"] = true L["Show Attack Power from Stamina"] = true +-- /rb Ascension Custom Hunter VS Wild +L["Show Hunter vs. Wild"] = true +L["Show Attack Power from Stamina"] = true --------------------------------------------------------------------------- -- /rb stat int L["Intellect"] = true @@ -200,6 +228,11 @@ L["Show Healing from Spirit"] = true -- /rb stat spi spellcrit L["Show Spell Crit"] = true L["Show Spell Crit chance from Spirit"] = true +--/rb Ascension Custom Spirit Spell crit +L["Show Meditation"] = true +L["Show Molten Armor"] = true +L["Show Improved Spirit Tap"] = true +L["Show Crit Rating from Spirit"] = true --------------------------------------------------------------------------- -- /rb stat armor L["Armor"] = true @@ -320,12 +353,6 @@ L["Intellect Summary"] = true -- /rb sum basic spi L["Sum Spirit"] = true L["Spirit Summary"] = true --- /rb sum basic mastery -L["Sum Mastery"] = true -L["Mastery Summary"] = true --- /rb sum basic masteryrating -L["Sum Mastery Rating"] = true -L["Mastery Rating Summary"] = true --------------------------------------------------------------------------- -- /rb sum physical L["Stat - Physical"] = true @@ -341,13 +368,13 @@ L["Sum Feral Attack Power"] = true L["Feral Attack Power <- Feral Attack Power, Attack Power, Strength, Agility"] = true -- /rb sum physical hit L["Sum Hit Chance"] = true -L["Hit Chance <- Hit Rating"] = true +L["Hit Chance <- Hit Rating, Weapon Skill Rating"] = true -- /rb sum physical hitrating L["Sum Hit Rating"] = true L["Hit Rating Summary"] = true -- /rb sum physical crit L["Sum Crit Chance"] = true -L["Crit Chance <- Crit Rating, Agility"] = true +L["Crit Chance <- Crit Rating, Agility, Weapon Skill Rating"] = true -- /rb sum physical critrating L["Sum Crit Rating"] = true L["Crit Rating Summary"] = true @@ -359,13 +386,13 @@ L["Sum Haste Rating"] = true L["Haste Rating Summary"] = true -- /rb sum physical rangedhit L["Sum Ranged Hit Chance"] = true -L["Ranged Hit Chance <- Hit Rating, Ranged Hit Rating"] = true +L["Ranged Hit Chance <- Hit Rating, Weapon Skill Rating, Ranged Hit Rating"] = true -- /rb sum physical rangedhitrating L["Sum Ranged Hit Rating"] = true L["Ranged Hit Rating Summary"] = true -- /rb sum physical rangedcrit L["Sum Ranged Crit Chance"] = true -L["Ranged Crit Chance <- Crit Rating, Agility, Ranged Crit Rating"] = true +L["Ranged Crit Chance <- Crit Rating, Agility, Weapon Skill Rating, Ranged Crit Rating"] = true -- /rb sum physical rangedcritrating L["Sum Ranged Crit Rating"] = true L["Ranged Crit Rating Summary"] = true @@ -378,6 +405,12 @@ L["Ranged Haste Rating Summary"] = true -- /rb sum physical maxdamage L["Sum Weapon Max Damage"] = true L["Weapon Max Damage Summary"] = true +-- /rb sum physical ignorearmor +L["Sum Ignore Armor"] = true +L["Ignore Armor Summary"] = true +-- /rb sum physical arp +L["Sum Armor Penetration"] = true +L["Armor Penetration Summary"] = true -- /rb sum physical weapondps --L["Sum Weapon DPS"] = true --L["Weapon DPS Summary"] = true @@ -390,6 +423,9 @@ L["Expertise <- Expertise Rating"] = true -- /rb sum physical exprating L["Sum Expertise Rating"] = true L["Expertise Rating Summary"] = true +-- /rb sum physical arprating +L["Sum Armor Penetration Rating"] = true +L["Armor Penetration Rating Summary"] = true --------------------------------------------------------------------------- -- /rb sum spell L["Stat - Spell"] = true @@ -445,22 +481,34 @@ L["Stat - Tank"] = true L["Choose tank stats for summary"] = true -- /rb sum tank armor L["Sum Armor"] = true -L["Armor <- Armor from items and bonuses"] = true +L["Armor <- Armor from items, Armor from bonuses, Agility, Intellect"] = true +-- /rb sum tank blockvalue +L["Sum Block Value"] = true +L["Block Value <- Block Value, Strength"] = true -- /rb sum tank dodge L["Sum Dodge Chance"] = true -L["Dodge Chance <- Dodge Rating, Agility"] = true +L["Dodge Chance <- Dodge Rating, Agility, Defense Rating"] = true -- /rb sum tank parry L["Sum Parry Chance"] = true -L["Parry Chance <- Parry Rating"] = true +L["Parry Chance <- Parry Rating, Defense Rating"] = true -- /rb sum tank block L["Sum Block Chance"] = true -L["Block Chance <- Block Rating"] = true +L["Block Chance <- Block Rating, Defense Rating"] = true +-- /rb sum tank avoidhit +L["Sum Hit Avoidance"] = true +L["Hit Avoidance <- Defense Rating"] = true +-- /rb sum tank avoidcrit +L["Sum Crit Avoidance"] = true +L["Crit Avoidance <- Defense Rating, Resilience"] = true -- /rb sum tank neglectdodge L["Sum Dodge Neglect"] = true -L["Dodge Neglect <- Expertise"] = true +L["Dodge Neglect <- Expertise, Weapon Skill Rating"] = true -- /rb sum tank neglectparry L["Sum Parry Neglect"] = true -L["Parry Neglect <- Expertise"] = true +L["Parry Neglect <- Expertise, Weapon Skill Rating"] = true +-- /rb sum tank neglectblock +L["Sum Block Neglect"] = true +L["Block Neglect <- Weapon Skill Rating"] = true -- /rb sum tank resarcane L["Sum Arcane Resistance"] = true L["Arcane Resistance Summary"] = true @@ -488,12 +536,15 @@ L["Block Rating Summary"] = true -- /rb sum tank res L["Sum Resilience"] = true L["Resilience Summary"] = true +-- /rb sum tank def +L["Sum Defense"] = true +L["Defense <- Defense Rating"] = true -- /rb sum tank tp L["Sum TankPoints"] = true L["TankPoints <- Health, Total Reduction"] = true -- /rb sum tank tr L["Sum Total Reduction"] = true -L["Total Reduction <- Armor, Dodge, Parry, Block, MobMiss, MobCrit, MobCrush, DamageTakenMods"] = true +L["Total Reduction <- Armor, Dodge, Parry, Block, Block Value, Defense, Resilience, MobMiss, MobCrit, MobCrush, DamageTakenMods"] = true -- /rb sum tank avoid L["Sum Avoidance"] = true L["Avoidance <- Dodge, Parry, MobMiss, Block(Optional)"] = true @@ -658,6 +709,7 @@ L["statList"] = { {pattern = "spell hit rating", id = CR_HIT_SPELL}, {pattern = "ranged hit rating", id = CR_HIT_RANGED}, {pattern = "hit rating", id = CR_HIT_MELEE}, + {pattern = "resilience", id = CR_CRIT_TAKEN_MELEE}, -- resilience is implicitly a rating @@ -671,7 +723,6 @@ L["statList"] = { {pattern = "hit avoidance rating", id = CR_HIT_TAKEN_MELEE}, {pattern = "armor penetration rating", id = CR_ARMOR_PENETRATION}, - {pattern = "mastery rating", id = CR_MASTERY}, {pattern = string.lower(ARMOR), id = ARMOR}, --[[ {pattern = "dagger skill rating", id = CR_WEAPON_SKILL}, @@ -698,6 +749,8 @@ L["statList"] = { -- EX: "Crit $value%" -> "Crit +1.34%" L["$value% Crit"] = true L["$value% Spell Crit"] = true +L["$value% Melee Hit"] = true +L["$value% Spell Hit"] = true L["$value% Dodge"] = true L["$value HP"] = true L["$value MP"] = true diff --git a/RatingBuster/RatingBuster-Locale-esES.lua b/RatingBuster/RatingBuster-Locale-esES.lua index bb8d03d..68a1155 100644 --- a/RatingBuster/RatingBuster-Locale-esES.lua +++ b/RatingBuster/RatingBuster-Locale-esES.lua @@ -1,6 +1,6 @@ --[[ Name: RatingBuster esES locale -Revision: $Revision: 294 $ +Revision: $Revision: 282 $ Translated by: - carahuevo@Curse - kaiemg @@ -63,6 +63,12 @@ L["Show Rating conversions in tooltips"] = "Mostrar conversion de indices en too -- /rb rating detail L["Show Detailed Conversions Text"] = "Mostrar texto detallado conversiones" L["Show detailed text for Resilience and Expertise conversions"] = "Mostrar texto detallado de conversiones de Temple y Pericia" +-- /rb rating def +L["Defense Breakdown"] = "Desglose Defensa" +L["Convert Defense into Crit Avoidance, Hit Avoidance, Dodge, Parry and Block"] = "Convierte Defensa en evitar Critico, evitar Golpe, Esquivar, Parar y Bloquear" +-- /rb rating wpn +L["Weapon Skill Breakdown"] = "Desglose Habilidad arma" +L["Convert Weapon Skill into Crit, Hit, Dodge Neglect, Parry Neglect and Block Neglect"] = "Convierta Habilidad arma en Critico, Golpe, falla Esquivar, y fallo Bloquear" -- /rb rating exp -- 2.3.0 L["Expertise Breakdown"] = "Desglose Pericia" L["Convert Expertise into Dodge Neglect and Parry Neglect"] = "Convierte Pericia en fallo Esquivar y fallo Parar" @@ -297,15 +303,9 @@ L["Stamina Summary"] = "Resumen Aguante" -- /rb sum basic int L["Sum Intellect"] = "Res. Intelecto" L["Intellect Summary"] = "Resumen Intelecto" --- /rb sum basic spi +-- /rb sum statcomp spi L["Sum Spirit"] = "Res. Espiritu" L["Spirit Summary"] = "Resumen Espiritu" --- /rb sum basic mastery ---L["Sum Mastery"] = "" ---L["Mastery Summary"] = "" --- /rb sum basic masteryrating ---L["Sum Mastery Rating"] = "" ---L["Mastery Rating Summary"] = "" ---------------------------------------------------------------------------------------- -- /rb sum physical L["Stat - Physical"] = "Datos - Fisicas" @@ -321,13 +321,13 @@ L["Sum Feral Attack Power"] = "Res. P.Ataque feral" L["Feral Attack Power <- Feral Attack Power, Attack Power, Strength, Agility"] = "P.Ataque feral <- P.Ataque feral, P.Ataque, Fuerza, Agilidad" -- /rb sum physical hit L["Sum Hit Chance"] = "Res. prob. Golpe" ---L["Hit Chance <- Hit Rating"] = "prob. Golpe <- Indice Golpe, Indice pericia" +L["Hit Chance <- Hit Rating, Weapon Skill Rating"] = "prob. Golpe <- Indice Golpe, Indice pericia" -- /rb sum physical hitrating L["Sum Hit Rating"] = "Res. Indice Golpe" L["Hit Rating Summary"] = "Resumen Indice Golpe" -- /rb sum physical crit L["Sum Crit Chance"] = "Res. Prob. Crit." ---L["Crit Chance <- Crit Rating, Agility"] = "Prob.Crit <- Crit, Agilidad, Indice Pericia" +L["Crit Chance <- Crit Rating, Agility, Weapon Skill Rating"] = "Prob.Crit <- Crit, Agilidad, Indice Pericia" -- /rb sum physical critrating L["Sum Crit Rating"] = "Res. Indice Critico" L["Crit Rating Summary"] = "Resumen Indice Critico" @@ -339,13 +339,13 @@ L["Sum Haste Rating"] = "Res. Indice Celeridad" L["Haste Rating Summary"] = "Resumen Indice Celeridad" -- /rb sum physical rangedhit L["Sum Ranged Hit Chance"] = "Res. Prob. Golpe a Distancia" --- --L["Ranged Hit Chance <- Hit Rating, Ranged Hit Rating"] = true +-- L["Ranged Hit Chance <- Hit Rating, Weapon Skill Rating, Ranged Hit Rating"] = true -- /rb sum physical rangedhitrating L["Sum Ranged Hit Rating"] = "Res. Indice Golpe a Distancia" -- L["Ranged Hit Rating Summary"] = true -- /rb sum physical rangedcrit L["Sum Ranged Crit Chance"] = "Res. Prob. Critico a Distancia" --- --L["Ranged Crit Chance <- Crit Rating, Agility, Ranged Crit Rating"] = true +-- L["Ranged Crit Chance <- Crit Rating, Agility, Weapon Skill Rating, Ranged Crit Rating"] = true -- /rb sum physical rangedcritrating -- L["Sum Ranged Crit Rating"] = true -- L["Ranged Crit Rating Summary"] = true @@ -358,6 +358,12 @@ L["Sum Ranged Crit Chance"] = "Res. Prob. Critico a Distancia" -- /rb sum physical maxdamage L["Sum Weapon Max Damage"] = "Res. Max Dano Arma" L["Weapon Max Damage Summary"] = "Resumen de Maximo Dano Arma" +-- /rb sum physical ignorearmor +L["Sum Ignore Armor"] = "Res. Ignorar armadura" +L["Ignore Armor Summary"] = "Resumen de Ignorar Armadura" +-- /rb sum physical arp +L["Sum Armor Penetration"] = "Res. Penetracion Armadura" +L["Armor Penetration Summary"] = "Resumen de Penetracion Armadura" -- /rb sum physical weapondps --L["Sum Weapon DPS"] = true --L["Weapon DPS Summary"] = true @@ -370,6 +376,9 @@ L["Expertise <- Expertise Rating"] = "Pericia <- Indice Pericia" -- /rb sum physical exprating --L["Sum Expertise Rating"] = true --L["Expertise Rating Summary"] = true +-- /rb sum physical arprating +L["Sum Armor Penetration Rating"] = "Res. Indice Penetracion Armadura" +L["Armor Penetration Rating Summary"] = "Resumen Indice Penetracion de Armadura" ---------------------------------------------------------------------------------------- -- /rb sum spell L["Stat - Spell"] = "Datos - Hechizo" @@ -425,22 +434,34 @@ L["Stat - Tank"] = "Datos - Tanque" L["Choose tank stats for summary"] = "Escoge datos de tanque para resumen" -- /rb sum tank armor L["Sum Armor"] = "Res. Armadura" ---L["Armor <- Armor from items and bonuses"] = "Armadura <- Armadura de items, Armadura de bonus, Agilidad, Intelecto" +L["Armor <- Armor from items, Armor from bonuses, Agility, Intellect"] = "Armadura <- Armadura de items, Armadura de bonus, Agilidad, Intelecto" +-- /rb sum tank blockvalue +L["Sum Block Value"] = "Res. Valor Bloqueo" +L["Block Value <- Block Value, Strength"] = "Valor Bloqueo <- Valor Bloqueo, Fuerza" -- /rb sum tank dodge L["Sum Dodge Chance"] = "Res. prob. Esquivar" ---L["Dodge Chance <- Dodge Rating, Agility"] = "Prob. Esquivar <- Indice Esquivar, Agilidad, Indice Defensa" +L["Dodge Chance <- Dodge Rating, Agility, Defense Rating"] = "Prob. Esquivar <- Indice Esquivar, Agilidad, Indice Defensa" -- /rb sum tank parry L["Sum Parry Chance"] = "Res. prob. Parar" ---L["Parry Chance <- Parry Rating"] = "Prob. Parar <- Indice Parar, Indice Defensa" +L["Parry Chance <- Parry Rating, Defense Rating"] = "Prob. Parar <- Indice Parar, Indice Defensa" -- /rb sum tank block L["Sum Block Chance"] = "Res. prob Bloqueo" ---L["Block Chance <- Block Rating"] = "Prob. Bloqueo <- Indice Bloqueo, Indice Defensa" +L["Block Chance <- Block Rating, Defense Rating"] = "Prob. Bloqueo <- Indice Bloqueo, Indice Defensa" +-- /rb sum tank avoidhit +L["Sum Hit Avoidance"] = "Res. Elusion golpe" +L["Hit Avoidance <- Defense Rating"] = "Elusion golpe <- Indice Defensa" +-- /rb sum tank avoidcrit +L["Sum Crit Avoidance"] = "Res. Elusion Critico" +L["Crit Avoidance <- Defense Rating, Resilience"] = "Elusion Critico <- Indice Defensa, Temple" -- /rb sum tank neglectdodge L["Sum Dodge Neglect"] = "Res. fallo Esquivar" ---L["Dodge Neglect <- Expertise"] = "Fallo Esquivar <- Pericia, Indice habilidad arma" +L["Dodge Neglect <- Expertise, Weapon Skill Rating"] = "Fallo Esquivar <- Pericia, Indice habilidad arma" -- /rb sum tank neglectparry L["Sum Parry Neglect"] = "Res. fallo Parar" ---L["Parry Neglect <- Expertise"] = "Fallo Parar <- Pericia, Indice habilidad arma" +L["Parry Neglect <- Expertise, Weapon Skill Rating"] = "Fallo Parar <- Pericia, Indice habilidad arma" +-- /rb sum tank neglectblock +L["Sum Block Neglect"] = "Res. fallo Bloquear" +L["Block Neglect <- Weapon Skill Rating"] = "Fallo Bloquear <- Indice habilidad arma" -- /rb sum tank resarcane L["Sum Arcane Resistance"] = "Res. Resist. Arcana" L["Arcane Resistance Summary"] = "Resumen Resistencia Arcana" @@ -468,12 +489,15 @@ L["Block Rating Summary"] = "Resumen Indice Bloquear" -- /rb sum tank res L["Sum Resilience"] = "Res. Temple" L["Resilience Summary"] = "Resumen Temple" +-- /rb sum tank def +L["Sum Defense"] = "Res. Defensa" +L["Defense <- Defense Rating"] = "Defensa <- Indice Defensa" -- /rb sum tank tp L["Sum TankPoints"] = "Res. Ptos. Tanque" L["TankPoints <- Health, Total Reduction"] = "Ptos. Tanque <- Salud, Total Reduccion" -- /rb sum tank tr L["Sum Total Reduction"] = "Res. Total Reduccion" ---L["Total Reduction <- Armor, Dodge, Parry, Block, MobMiss, MobCrit, MobCrush, DamageTakenMods"] = "Total Reduccion <- Armadura, Esquivar, Parar, Bloquear, Valor bloqueo, Defensa, Temple, FalloEnemigo, CriticoEnemigo, AplastamientoEnemigo, Modifics.DanoRecibido" +L["Total Reduction <- Armor, Dodge, Parry, Block, Block Value, Defense, Resilience, MobMiss, MobCrit, MobCrush, DamageTakenMods"] = "Total Reduccion <- Armadura, Esquivar, Parar, Bloquear, Valor bloqueo, Defensa, Temple, FalloEnemigo, CriticoEnemigo, AplastamientoEnemigo, Modifics.DanoRecibido" -- /rb sum tank avoid L["Sum Avoidance"] = "Res. Elusion" L["Avoidance <- Dodge, Parry, MobMiss, Block(Optional)"] = "Elusion <- Esquivar, Parar, FalloEnemigo, Bloqueo(Opcional)" diff --git a/RatingBuster/RatingBuster-Locale-frFR.lua b/RatingBuster/RatingBuster-Locale-frFR.lua index b1a9a4d..aa03ecd 100644 --- a/RatingBuster/RatingBuster-Locale-frFR.lua +++ b/RatingBuster/RatingBuster-Locale-frFR.lua @@ -1,6 +1,6 @@ --[[ Name: RatingBuster frFR locale (incomplete) -Revision: $Revision: 294 $ +Revision: $Revision: 282 $ Translated by: - Tixu@Curse, Silaor and renchap ]] @@ -70,8 +70,10 @@ L["Show Rating conversions in tooltips"] = "Affiche dans l'infobulle les gains a -- /rb rating detail --L["Show Detailed Conversions Text"] = true -- à traduire --L["Show detailed text for Resilience and Expertise conversions"] = true -- à traduire +-- /rb rating def --L["Defense Breakdown"] = true -- à traduire --L["Convert Defense into Crit Avoidance, Hit Avoidance, Dodge, Parry and Block"] = true +-- /rb rating wpn --L["Weapon Skill Breakdown"] = true -- à traduire --L["Convert Weapon Skill into Crit, Hit, Dodge Neglect, Parry Neglect and Block Neglect"] = true -- à traduire -- /rb rating exp @@ -335,13 +337,13 @@ L["Sum Healing"] = "Cumul Soins" L["Healing <- Healing, Intellect, Spirit, Agility, Strength"] = "Soins <- Soins, Intel, Esprit, Agi, Force" -- /rb sum stat hit L["Sum Hit Chance"] = "Cumul Toucher" ---L["Hit Chance <- Hit Rating"] = "Toucher <- Toucher, Score Arme" +L["Hit Chance <- Hit Rating, Weapon Skill Rating"] = "Toucher <- Toucher, Score Arme" -- /rb sum stat hitspell L["Sum Spell Hit Chance"] = "Cumul Toucher des Sorts" L["Spell Hit Chance <- Spell Hit Rating"] = "Toucher des Sorts <- Toucher des Sorts" -- /rb sum stat crit L["Sum Crit Chance"] = "Cumul Crit" ---L["Crit Chance <- Crit Rating, Agility"] = "Crit <- %Crit, Agi, Comp Arme" +L["Crit Chance <- Crit Rating, Agility, Weapon Skill Rating"] = "Crit <- %Crit, Agi, Comp Arme" -- /rb sum stat critspell L["Sum Spell Crit Chance"] = "Cumul Crit Sorts" L["Spell Crit Chance <- Spell Crit Rating, Intellect"] = "Crit Sorts <- %Crit Sorts, Intel" @@ -359,19 +361,25 @@ L["Sum Health Regen when out of combat"] = "Cumul Regen Vie HC" L["Health Regen when out of combat <- Spirit"] = "Regen Vie HC <- Esprit" -- /rb sum stat armor L["Sum Armor"] = "Cumul Armure" ---L["Armor <- Armor from items and bonuses"] = "Armure <- Armure Objets, Armure Bonus, Agi, Intel" +L["Armor <- Armor from items, Armor from bonuses, Agility, Intellect"] = "Armure <- Armure Objets, Armure Bonus, Agi, Intel" -- /rb sum stat blockvalue +L["Sum Block Value"] = "Cumul Dégats Bloqués" +L["Block Value <- Block Value, Strength"] = "Dégats Bloqués <- Dégats Bloqués, Force" -- /rb sum stat dodge L["Sum Dodge Chance"] = "Cumul Esquive" ---L["Dodge Chance <- Dodge Rating, Agility"] = "Esquive <- Score Esquive, Agi, Score Def" +L["Dodge Chance <- Dodge Rating, Agility, Defense Rating"] = "Esquive <- Score Esquive, Agi, Score Def" -- /rb sum stat parry L["Sum Parry Chance"] = "Cumul Parade" ---L["Parry Chance <- Parry Rating"] = "Parade <- Score Parade, Score Def" +L["Parry Chance <- Parry Rating, Defense Rating"] = "Parade <- Score Parade, Score Def" -- /rb sum stat block L["Sum Block Chance"] = "Cumul Bloquage" ---L["Block Chance <- Block Rating"] = "Bloquage <- Score Bloquage, Score Def" +L["Block Chance <- Block Rating, Defense Rating"] = "Bloquage <- Score Bloquage, Score Def" -- /rb sum stat avoidhit +L["Sum Hit Avoidance"] = "Cumul Raté" +L["Hit Avoidance <- Defense Rating"] = "Raté <- Score Def" -- /rb sum stat avoidcrit +L["Sum Crit Avoidance"] = "Cumul Def Crit" +L["Crit Avoidance <- Defense Rating, Resilience"] = "Def Crit <- Score Def, Resilience" -- /rb sum stat neglectdodge L["Sum Dodge Neglect"] = "Cumul Ignore Esquive" --L["Dodge Neglect <- Weapon Skill Rating"] = "Ignore Esquive <- Score Arme" @@ -379,6 +387,8 @@ L["Sum Dodge Neglect"] = "Cumul Ignore Esquive" L["Sum Parry Neglect"] = "Cumul Ignore Parade" --L["Parry Neglect <- Weapon Skill Rating"] = "Ignore Parade <- Score Arme" -- /rb sum stat neglectblock +L["Sum Block Neglect"] = "Cumul Ignore Bloquage" +L["Block Neglect <- Weapon Skill Rating"] = "Ignore Bloquage <- Score Arme" -- /rb sum stat resarcane L["Sum Arcane Resistance"] = "Cumul RA" L["Arcane Resistance Summary"] = "Résumé de la RA" @@ -419,6 +429,7 @@ L["Intellect Summary"] = "Résumé de l'Intelligence" L["Sum Spirit"] = "Cumul Esprit" L["Spirit Summary"] = "Résumé de l'Esprit" -- /rb sum statcomp def +L["Sum Defense"] = "Cumul Def" L["Defense <- Defense Rating"] = "Def <- Score def" -- /rb sum statcomp wpn L["Sum Weapon Skill"] = "Cumul Comp Arme" @@ -426,12 +437,6 @@ L["Weapon Skill <- Weapon Skill Rating"] = "Comp Arme <- Score Arme" -- /rb sum physical exprating --L["Sum Expertise Rating"] = true --L["Expertise Rating Summary"] = true --- /rb sum basic mastery ---L["Sum Mastery"] = "" ---L["Mastery Summary"] = "" --- /rb sum basic masteryrating ---L["Sum Mastery Rating"] = "" ---L["Mastery Rating Summary"] = "" --------------------------------------------------------------------------- -- /rb sum gemset L["Gem Set"] = "Set de gemme" diff --git a/RatingBuster/RatingBuster-Locale-koKR.lua b/RatingBuster/RatingBuster-Locale-koKR.lua index 8256941..bbb230d 100644 --- a/RatingBuster/RatingBuster-Locale-koKR.lua +++ b/RatingBuster/RatingBuster-Locale-koKR.lua @@ -1,6 +1,6 @@ --[[ Name: RatingBuster koKR locale -Revision: $Revision: 294 $ +Revision: $Revision: 282 $ Translated by: - Slowhand, 7destiny, kcgcom, fenlis ]] @@ -62,14 +62,20 @@ L["Options for Rating display"] = "전투 숙련도 표시에 대한 설정입 L["Show Rating Conversions"] = "전투 숙련도 계산 표시" L["Show Rating conversions in tooltips"] = "툴팁에 전투 숙련도를 전투 능력치로 계산하여 표시합니다." -- /rb rating spell -L["Show Spell Hit/Haste"] = "주문 적중/가속 표시" -L["Show Spell Hit/Haste from Hit/Haste Rating"] = "주문의 적중/가속을 표시합니다." +--L["Show Spell Hit/Haste"] = true +--L["Show Spell Hit/Haste from Hit/Haste Rating"] = true -- /rb rating physical -L["Show Physical Hit/Haste"] = "물리 적중/가속 표시" -L["Show Physical Hit/Haste from Hit/Haste Rating"] = "물리 적중/가속을 표시합니다." +--L["Show Physical Hit/Haste"] = true +--L["Show Physical Hit/Haste from Hit/Haste Rating"] = true -- /rb rating detail L["Show Detailed Conversions Text"] = "세부적인 전투 숙련도 계산 표시" L["Show detailed text for Resilience and Expertise conversions"] = "탄력도와 숙련을 세부적인 전투 능력치로 계산해서 표시합니다." +-- /rb rating def +L["Defense Breakdown"] = "방어 숙련 세분화" +L["Convert Defense into Crit Avoidance, Hit Avoidance, Dodge, Parry and Block"] = "방어 숙련을 치명타 감소, 빗맞힘, 회피, 무기 막기, 방패 막기로 계산해서 표시합니다." +-- /rb rating wpn +L["Weapon Skill Breakdown"] = "무기 숙련 세분화" +L["Convert Weapon Skill into Crit, Hit, Dodge Neglect, Parry Neglect and Block Neglect"] = "무기 숙련을 치명타, 적중, 회피 무시, 무기 막기 무시, 방패막기 무시로 계산해서 표시합니다." -- /rb rating exp L["Expertise Breakdown"] = "숙련 세분화" L["Convert Expertise into Dodge Neglect and Parry Neglect"] = "숙련을 회피 무시와 무기 막기 무시로 계산해서 표시합니다." @@ -320,12 +326,6 @@ L["Intellect Summary"] = "지능 요약" -- /rb sum basic spi L["Sum Spirit"] = "정신력 합계" L["Spirit Summary"] = "정신력 요약" --- /rb sum basic mastery ---L["Sum Mastery"] = "" ---L["Mastery Summary"] = "" --- /rb sum basic masteryrating ---L["Sum Mastery Rating"] = "" ---L["Mastery Rating Summary"] = "" --------------------------------------------------------------------------- -- /rb sum physical L["Stat - Physical"] = "능력치 - 물리" @@ -341,13 +341,13 @@ L["Sum Feral Attack Power"] = "야성 전투력 합계" L["Feral Attack Power <- Feral Attack Power, Attack Power, Strength, Agility"] = "야성 전투력 <- 야성 전투력, 전투력, 힘, 민첩성" -- /rb sum physical hit L["Sum Hit Chance"] = "적중률 합계" ---L["Hit Chance <- Hit Rating"] = "적중률 <- 적중도, 무기 숙련도" +L["Hit Chance <- Hit Rating, Weapon Skill Rating"] = "적중률 <- 적중도, 무기 숙련도" -- /rb sum physical hitrating L["Sum Hit Rating"] = "적중도 합계" L["Hit Rating Summary"] = "적중도 요약" -- /rb sum physical crit L["Sum Crit Chance"] = "치명타율 합계" ---L["Crit Chance <- Crit Rating, Agility"] = "치명타율 <- 치명타 적중도, 민첩성, 무기 숙련도" +L["Crit Chance <- Crit Rating, Agility, Weapon Skill Rating"] = "치명타율 <- 치명타 적중도, 민첩성, 무기 숙련도" -- /rb sum physical critrating L["Sum Crit Rating"] = "치명타 적중도 합계" L["Crit Rating Summary"] = "치명타 적중도 요약" @@ -359,13 +359,13 @@ L["Sum Haste Rating"] = "공격 가속도 합계" L["Haste Rating Summary"] = "공격 가속도 요약" -- /rb sum physical rangedhit L["Sum Ranged Hit Chance"] = "원거리 적중률 합계" ---L["Ranged Hit Chance <- Hit Rating, Ranged Hit Rating"] = "원거리 적중률 <- 적중도, 무기 숙련도, 원거리 적중도" +L["Ranged Hit Chance <- Hit Rating, Weapon Skill Rating, Ranged Hit Rating"] = "원거리 적중률 <- 적중도, 무기 숙련도, 원거리 적중도" -- /rb sum physical rangedhitrating L["Sum Ranged Hit Rating"] = "원거리 적중도 합계" L["Ranged Hit Rating Summary"] = "원거리 적중도 요약" -- /rb sum physical rangedcrit L["Sum Ranged Crit Chance"] = "원거리 치명타율 합계" ---L["Ranged Crit Chance <- Crit Rating, Agility, Ranged Crit Rating"] = "원거리 치명타율 <- 치명타 적중도, 민첩성, 무기 숙련도, 치명타 적중도" +L["Ranged Crit Chance <- Crit Rating, Agility, Weapon Skill Rating, Ranged Crit Rating"] = "원거리 치명타율 <- 치명타 적중도, 민첩성, 무기 숙련도, 치명타 적중도" -- /rb sum physical rangedcritrating L["Sum Ranged Crit Rating"] = "원거리 치명타 적중도 합계" L["Ranged Crit Rating Summary"] = "원거리 치명타 적중도 요약" @@ -378,6 +378,12 @@ L["Ranged Haste Rating Summary"] = "원거리 공격 가속도 요약" -- /rb sum physical maxdamage L["Sum Weapon Max Damage"] = "무기 최대 공격력 합계" L["Weapon Max Damage Summary"] = "무기 최대 공격력 요약" +-- /rb sum physical ignorearmor +L["Sum Ignore Armor"] = "방어도 무시 합계" +L["Ignore Armor Summary"] = "방어도 무시 요약" +-- /rb sum physical arp +L["Sum Armor Penetration"] = "방어도 관통력 합계" +L["Armor Penetration Summary"] = "방어도 관통력 요약" -- /rb sum physical weapondps --L["Sum Weapon DPS"] = true --L["Weapon DPS Summary"] = true @@ -390,6 +396,9 @@ L["Expertise <- Expertise Rating"] = "숙련 <- 숙련도" -- /rb sum physical exprating --L["Sum Expertise Rating"] = true --L["Expertise Rating Summary"] = true +-- /rb sum physical arprating +L["Sum Armor Penetration Rating"] = "방어도 관통도 합계" +L["Armor Penetration Rating Summary"] = "방어도 관통도 요약" --------------------------------------------------------------------------- -- /rb sum spell L["Stat - Spell"] = "능력치 - 주문" @@ -445,22 +454,34 @@ L["Stat - Tank"] = "능력치 - 방어" L["Choose tank stats for summary"] = "방어 능력치를 선택합니다." -- /rb sum tank armor L["Sum Armor"] = "방어도 합계" ---L["Armor <- Armor from items and bonuses"] = "방어도 <- 아이템 방어도, 방어도 보너스, 민첩성, 지능" +L["Armor <- Armor from items, Armor from bonuses, Agility, Intellect"] = "방어도 <- 아이템 방어도, 방어도 보너스, 민첩성, 지능" +-- /rb sum tank blockvalue +L["Sum Block Value"] = "피해 방어량 합계" +L["Block Value <- Block Value, Strength"] = "피해 방어량 <- 피해 방어량, 힘" -- /rb sum tank dodge L["Sum Dodge Chance"] = "회피율 합계" ---L["Dodge Chance <- Dodge Rating, Agility"] = "회피율 <- 회피 숙련도, 민첩성, 방어 숙련도" +L["Dodge Chance <- Dodge Rating, Agility, Defense Rating"] = "회피율 <- 회피 숙련도, 민첩성, 방어 숙련도" -- /rb sum tank parry L["Sum Parry Chance"] = "무기 막기 확률 합계" ---L["Parry Chance <- Parry Rating"] = "무기 막기 확률 <- 무기 막기 숙련도, 방어 숙련도" +L["Parry Chance <- Parry Rating, Defense Rating"] = "무기 막기 확률 <- 무기 막기 숙련도, 방어 숙련도" -- /rb sum tank block L["Sum Block Chance"] = "방패 막기 확률 합계" ---L["Block Chance <- Block Rating"] = "방패 막기 확률 <- 방패 막기 숙련도, 방어 숙련도" +L["Block Chance <- Block Rating, Defense Rating"] = "방패 막기 확률 <- 방패 막기 숙련도, 방어 숙련도" +-- /rb sum tank avoidhit +L["Sum Hit Avoidance"] = "빗맞힘 합계" +L["Hit Avoidance <- Defense Rating"] = "빗맞힘 <- 방어 숙련도" +-- /rb sum tank avoidcrit +L["Sum Crit Avoidance"] = "치명타 감소 합계" +L["Crit Avoidance <- Defense Rating, Resilience"] = "치명타 감소 <- 방어 숙련도, 탄력도" -- /rb sum tank neglectdodge L["Sum Dodge Neglect"] = "회피 무시 합계" ---L["Dodge Neglect <- Expertise"] = "회피 무시 <- 숙련도, 무기 숙련도" +L["Dodge Neglect <- Expertise, Weapon Skill Rating"] = "회피 무시 <- 숙련도, 무기 숙련도" -- /rb sum tank neglectparry L["Sum Parry Neglect"] = "무기 막기 무시 합계" ---L["Parry Neglect <- Expertise"] = "무기 막기 무시 <- 숙련도, 무기 숙련도" +L["Parry Neglect <- Expertise, Weapon Skill Rating"] = "무기 막기 무시 <- 숙련도, 무기 숙련도" +-- /rb sum tank neglectblock +L["Sum Block Neglect"] = "방패 막기 무시 합계" +L["Block Neglect <- Weapon Skill Rating"] = "방패 막기 무시 <- 무기 숙련도" -- /rb sum tank resarcane L["Sum Arcane Resistance"] = "비전 저항력 합계" L["Arcane Resistance Summary"] = "비전 저항력 요약" @@ -488,12 +509,15 @@ L["Block Rating Summary"] = "방어 막기 숙련도 요약" -- /rb sum tank res L["Sum Resilience"] = "탄력 합계" L["Resilience Summary"] = "탄력 요약" +-- /rb sum tank def +L["Sum Defense"] = "방어 숙련 합계" +L["Defense <- Defense Rating"] = "방어 숙련 <- 방어 숙련도" -- /rb sum tank tp L["Sum TankPoints"] = "탱킹 점수 (TankPoint) 합계" L["TankPoints <- Health, Total Reduction"] = "탱킹 점수 (TankPoint) <- 생명력, 총 피해감소" -- /rb sum tank tr L["Sum Total Reduction"] = "총 피해감소 합계" ---L["Total Reduction <- Armor, Dodge, Parry, Block, MobMiss, MobCrit, MobCrush, DamageTakenMods"] = "총 피해감소 <- 방어도, 회피, 무기 막기, 방패 막기, 피해 방어량, 방어 숙련, 탄력, 빗맞힘(자신), 치명타 감소, 몹강타, 피해감소 효과" +L["Total Reduction <- Armor, Dodge, Parry, Block, Block Value, Defense, Resilience, MobMiss, MobCrit, MobCrush, DamageTakenMods"] = "총 피해감소 <- 방어도, 회피, 무기 막기, 방패 막기, 피해 방어량, 방어 숙련, 탄력, 빗맞힘(자신), 치명타 감소, 몹강타, 피해감소 효과" -- /rb sum tank avoid L["Sum Avoidance"] = "총 방어행동 합계" L["Avoidance <- Dodge, Parry, MobMiss, Block(Optional)"] = "방어행동 (Avoidance) <- 회피, 무기 막기, 빗맞힘, 방패 막기(선택적)" diff --git a/RatingBuster/RatingBuster-Locale-ruRU.lua b/RatingBuster/RatingBuster-Locale-ruRU.lua index c568d5b..64ec8ba 100644 --- a/RatingBuster/RatingBuster-Locale-ruRU.lua +++ b/RatingBuster/RatingBuster-Locale-ruRU.lua @@ -1,6 +1,6 @@ --[[ Name: RatingBuster ruRU locale -Revision: $Revision: 294 $ +Revision: $Revision: 283 $ Translated by: - Orsana \ StingerSoft \ Swix ]] @@ -70,6 +70,12 @@ L["Show Physical Hit/Haste from Hit/Haste Rating"] = "Показывать ме -- /rb rating detail L["Show Detailed Conversions Text"] = "Детальная конвертация рейтингов" L["Show detailed text for Resilience and Expertise conversions"] = "Показывать детальную конвертацию рейтингов мастерства и устойчивости" +-- /rb rating def +L["Defense Breakdown"] = "Разбивать защиту" +L["Convert Defense into Crit Avoidance, Hit Avoidance, Dodge, Parry and Block"] = "Разбивать защиту на избежание крита, поподание, уклонение, парирование и блокирование" +-- /rb rating wpn +L["Weapon Skill Breakdown"] = "Разбивать уровень владения оружием" +L["Convert Weapon Skill into Crit, Hit, Dodge Neglect, Parry Neglect and Block Neglect"] = "Разбивать уровень владения оружием на крит, попадание, игнорирование уклона, игнорирование парирования и блока" -- /rb rating exp L["Expertise Breakdown"] = "Разбивать уровень мастерства" L["Convert Expertise into Dodge Neglect and Parry Neglect"] = "Разбивать уровень мастерства на игнорирование уклонения и парирования" @@ -320,12 +326,6 @@ L["Intellect Summary"] = "Суммировать интеллект" -- /rb sum basic spi L["Sum Spirit"] = "Сумма духа" L["Spirit Summary"] = "Суммировать дух" --- /rb sum basic mastery ---L["Sum Mastery"] = "" ---L["Mastery Summary"] = "" --- /rb sum basic masteryrating ---L["Sum Mastery Rating"] = "" ---L["Mastery Rating Summary"] = "" --------------------------------------------------------------------------- -- /rb sum physical L["Stat - Physical"] = "Статы - физические" @@ -341,13 +341,13 @@ L["Sum Feral Attack Power"] = "Сумма силы атаки в облике з L["Feral Attack Power <- Feral Attack Power, Attack Power, Strength, Agility"] = "Силы атаки в облике зверя <- Сила атаки в облике зверя, Сила атаки, Сила, Ловкость" -- /rb sum physical hit L["Sum Hit Chance"] = "Сумма вероятности поподания" ---L["Hit Chance <- Hit Rating"] = "Вероятности поподания <- Рейтинг меткости, Рейтинг владения оружием" +L["Hit Chance <- Hit Rating, Weapon Skill Rating"] = "Вероятности поподания <- Рейтинг меткости, Рейтинг владения оружием" -- /rb sum physical hitrating L["Sum Hit Rating"] = "Сумма рейтинга меткости" L["Hit Rating Summary"] = "Суммировать рейтинг меткости" -- /rb sum physical crit L["Sum Crit Chance"] = "Сумма вероятности крит удара" ---L["Crit Chance <- Crit Rating, Agility"] = "Вероятности крит удара <- Рейтинг крит удара, Ловкость, Рейтинг владения оружием" +L["Crit Chance <- Crit Rating, Agility, Weapon Skill Rating"] = "Вероятности крит удара <- Рейтинг крит удара, Ловкость, Рейтинг владения оружием" -- /rb sum physical critrating L["Sum Crit Rating"] = "Сумма рейтинга крита" L["Crit Rating Summary"] = "Суммировать рейтинг крит удара" @@ -359,13 +359,13 @@ L["Sum Haste Rating"] = "Сумма рейтинга скорости" L["Haste Rating Summary"] = "Суммировать рейтинг скорости" -- /rb sum physical rangedhit L["Sum Ranged Hit Chance"] = "Сумма вероятности поподания в дальнем бою" ---L["Ranged Hit Chance <- Hit Rating, Ranged Hit Rating"] = "Вероятность поподания в дальнем бою <- Рейтинг меткости, Рейтинг владения оружием, Рейтинг меткости дальнего боя" +L["Ranged Hit Chance <- Hit Rating, Weapon Skill Rating, Ranged Hit Rating"] = "Вероятность поподания в дальнем бою <- Рейтинг меткости, Рейтинг владения оружием, Рейтинг меткости дальнего боя" -- /rb sum physical rangedhitrating L["Sum Ranged Hit Rating"] = "Сумма рейтинга меткости дальнего боя" L["Ranged Hit Rating Summary"] = "Суммировать рейтинг меткости дальнего боя" -- /rb sum physical rangedcrit L["Sum Ranged Crit Chance"] = "Сумма вероятности крита в дальнем бою" ---L["Ranged Crit Chance <- Crit Rating, Agility, Ranged Crit Rating"] = "Вероятность крита в дальнем бою <- Рейтинг крита, Ловкость, Рейтинг владения оружием, Рейтинга крит удара дальнего боя" +L["Ranged Crit Chance <- Crit Rating, Agility, Weapon Skill Rating, Ranged Crit Rating"] = "Вероятность крита в дальнем бою <- Рейтинг крита, Ловкость, Рейтинг владения оружием, Рейтинга крит удара дальнего боя" -- /rb sum physical rangedcritrating L["Sum Ranged Crit Rating"] = "Сумма рейтинга крит удара дальнего боя" L["Ranged Crit Rating Summary"] = "Суммировать рейтинг критического удара в дальнем бою" @@ -378,6 +378,12 @@ L["Ranged Haste Rating Summary"] = "Суммировать рейтинг ско -- /rb sum physical maxdamage L["Sum Weapon Max Damage"] = "Сумма макс урона оружия" L["Weapon Max Damage Summary"] = "Суммировать макс урон уружия" +-- /rb sum physical ignorearmor +L["Sum Ignore Armor"] = "Сумма игнорирования брони" +L["Ignore Armor Summary"] = "Суммировать игнорирование брони" +-- /rb sum physical arp +L["Sum Armor Penetration"] = "Сумма пробивание брони" +L["Armor Penetration Summary"] = "Суммировать пробивание брони" -- /rb sum physical weapondps L["Sum Weapon DPS"] = "Сумма УВС оружия" L["Weapon DPS Summary"] = "Суммировать урон в секунду от оружия" @@ -390,6 +396,9 @@ L["Expertise <- Expertise Rating"] = "Мастерство <- рейтинг м -- /rb sum physical exprating L["Sum Expertise Rating"] = "Сумма рейтинга мастерства" L["Expertise Rating Summary"] = "Суммировать рейтинг мастерства" +-- /rb sum physical arprating +L["Sum Armor Penetration Rating"] = "Сумма рейтинга пробивание брони" +L["Armor Penetration Rating Summary"] = "Суммировать рейтинг пробивания брони" --------------------------------------------------------------------------- -- /rb sum spell L["Stat - Spell"] = "Статы - заклинания" @@ -445,22 +454,34 @@ L["Stat - Tank"] = "Статы - танкования" L["Choose tank stats for summary"] = "Выбор статов танкования для подсчета" -- /rb sum tank armor L["Sum Armor"] = "Сумма брони" ---L["Armor <- Armor from items and bonuses"] = "Броня <- Броня с одежды, Броня от бонусов, Ловкость, Интеллект" +L["Armor <- Armor from items, Armor from bonuses, Agility, Intellect"] = "Броня <- Броня с одежды, Броня от бонусов, Ловкость, Интеллект" +-- /rb sum tank blockvalue +L["Sum Block Value"] = "Сумма значение блока" +L["Block Value <- Block Value, Strength"] = "Значение блока <- Значение блока, Сила" -- /rb sum tank dodge L["Sum Dodge Chance"] = "Сумма вероятности уклонения" ---L["Dodge Chance <- Dodge Rating, Agility"] = "Вероятность уклонения <- рейтинг уклонения, ловкость, рейтинг защиты" +L["Dodge Chance <- Dodge Rating, Agility, Defense Rating"] = "Вероятность уклонения <- рейтинг уклонения, ловкость, рейтинг защиты" -- /rb sum tank parry L["Sum Parry Chance"] = "Сумма вероятности парирования" ---L["Parry Chance <- Parry Rating"] = "Вероятность парирования <- рейтинг парирования, рейтинг защиты" +L["Parry Chance <- Parry Rating, Defense Rating"] = "Вероятность парирования <- рейтинг парирования, рейтинг защиты" -- /rb sum tank block L["Sum Block Chance"] = "Сумма вероятности блокирования" ---L["Block Chance <- Block Rating"] = "Вероятность блокирования <- рейтинг блокирования, рейтинг защиты" +L["Block Chance <- Block Rating, Defense Rating"] = "Вероятность блокирования <- рейтинг блокирования, рейтинг защиты" +-- /rb sum tank avoidhit +L["Sum Hit Avoidance"] = "Сумма уклонения от удара" +L["Hit Avoidance <- Defense Rating"] = "Уклонение от удара <- Рейтинг защиты" +-- /rb sum tank avoidcrit +L["Sum Crit Avoidance"] = "Сумма уклонения от крит. удара" +L["Crit Avoidance <- Defense Rating, Resilience"] = "Уклонения от крит. удара <- Рейтинг защиты, Устойчивость" -- /rb sum tank neglectdodge L["Sum Dodge Neglect"] = "Сумма игнорирования уклонения" ---L["Dodge Neglect <- Expertise"] = "Игнорирование уклонения <- Мастерство, Рейтинг владения оружием" +L["Dodge Neglect <- Expertise, Weapon Skill Rating"] = "Игнорирование уклонения <- Мастерство, Рейтинг владения оружием" -- /rb sum tank neglectparry L["Sum Parry Neglect"] = "Сумма игнорирования парирования" ---L["Parry Neglect <- Expertise"] = "Игнорирование парирования <- Мастерство, Рейтинг владения оружием" +L["Parry Neglect <- Expertise, Weapon Skill Rating"] = "Игнорирование парирования <- Мастерство, Рейтинг владения оружием" +-- /rb sum tank neglectblock +L["Sum Block Neglect"] = "Сумма игнорирования блока" +L["Block Neglect <- Weapon Skill Rating"] = "Игнорирование блока <- Рейтинг владения оружием" -- /rb sum tank resarcane L["Sum Arcane Resistance"] = "Сумма защиты от тайной магии" L["Arcane Resistance Summary"] = "Суммировать сопротивление тайной магии" @@ -488,12 +509,15 @@ L["Block Rating Summary"] = "Суммировать рейтинг блока" -- /rb sum tank res L["Sum Resilience"] = "Сумма устойчивости" L["Resilience Summary"] = "Суммировать устойчивость" +-- /rb sum tank def +L["Sum Defense"] = "Сумма защиты" +L["Defense <- Defense Rating"] = "Защита <- Рейтинг защиты" -- /rb sum tank tp L["Sum TankPoints"] = "Самма TankPoints" L["TankPoints <- Health, Total Reduction"] ="TankPoints <- Здоровье, Общее Cнижение" -- /rb sum tank tr L["Sum Total Reduction"] = "Самма общего снижения" ---L["Total Reduction <- Armor, Dodge, Parry, Block, MobMiss, MobCrit, MobCrush, DamageTakenMods"] = "Общее снижение <- Броня, Уклонение, Парирование, Блок, Значение блока, Защита, Устойчивость, ПромахСущества, КритСущества, MobCrush, DamageTakenMods" +L["Total Reduction <- Armor, Dodge, Parry, Block, Block Value, Defense, Resilience, MobMiss, MobCrit, MobCrush, DamageTakenMods"] = "Общее снижение <- Броня, Уклонение, Парирование, Блок, Значение блока, Защита, Устойчивость, ПромахСущества, КритСущества, MobCrush, DamageTakenMods" -- /rb sum tank avoid L["Sum Avoidance"] = "Сумма уклонения от удара" L["Avoidance <- Dodge, Parry, MobMiss, Block(Optional)"] = "Уклонение от удара <- Уклонение, Парирование, ПромахСущества, Блок(дополнительный)" diff --git a/RatingBuster/RatingBuster-Locale-zhCN.lua b/RatingBuster/RatingBuster-Locale-zhCN.lua index 9e2bce4..203802e 100644 --- a/RatingBuster/RatingBuster-Locale-zhCN.lua +++ b/RatingBuster/RatingBuster-Locale-zhCN.lua @@ -1,6 +1,6 @@ --[[ Name: RatingBuster zhCN locale -Revision: $Revision: 294 $ +Revision: $Revision: 282 $ Translated by: - iceburn - 急云@CWDG @@ -63,6 +63,12 @@ L["Show Physical Hit/Haste from Hit/Haste Rating"] = "显示命中/急速等级 -- /rb rating detail L["Show Detailed Conversions Text"] = "显示详细转换文本" L["Show detailed text for Resilience and Expertise conversions"] = "显示详细的抗性和精准等级转换" +-- /rb rating def +L["Defense Breakdown"] = "分析防御" +L["Convert Defense into Crit Avoidance, Hit Avoidance, Dodge, Parry and Block"] = "将防御分为避免爆击、避免击中、躲闪、招架和格挡" +-- /rb rating wpn +L["Weapon Skill Breakdown"] = "分析武器技能" +L["Convert Weapon Skill into Crit, Hit, Dodge Neglect, Parry Neglect and Block Neglect"] = "加武器技能分为爆击、击中、防止被躲闪、防止被招架和防止被格挡" -- /rb rating exp L["Expertise Breakdown"] = "精准效能" L["Convert Expertise into Dodge Neglect and Parry Neglect"] = "转换精准等级为忽略躲闪和忽略招架" @@ -300,12 +306,6 @@ L["Intellect Summary"] = "统计智力" -- /rb sum basic spi L["Sum Spirit"] = "统计精神" L["Spirit Summary"] = "统计精神" --- /rb sum basic mastery ---L["Sum Mastery"] = "" ---L["Mastery Summary"] = "" --- /rb sum basic masteryrating ---L["Sum Mastery Rating"] = "" ---L["Mastery Rating Summary"] = "" --------------------------------------------------------------------------- -- /rb sum physical L["Stat - Physical"] = "属性 - 物理" @@ -321,13 +321,13 @@ L["Sum Feral Attack Power"] = "统计野性攻击强度" L["Feral Attack Power <- Feral Attack Power, Attack Power, Strength, Agility"] = "野性攻击强度 ← 野性攻击强度、攻击强度、力量、敏捷" -- /rb sum physical hit L["Sum Hit Chance"] = "统计物理命中几率" ---L["Hit Chance <- Hit Rating"] = "物理命中几率 ← 命中等级、武器技能等级" +L["Hit Chance <- Hit Rating, Weapon Skill Rating"] = "物理命中几率 ← 命中等级、武器技能等级" -- /rb sum physical hitrating L["Sum Hit Rating"] = "统计命中等级" L["Hit Rating Summary"] = "统计命中等级" -- /rb sum physical crit L["Sum Crit Chance"] = "统计物理爆击几率" ---L["Crit Chance <- Crit Rating, Agility"] = "物理爆击几率 ← 爆击等级、敏捷、武器技能等级" +L["Crit Chance <- Crit Rating, Agility, Weapon Skill Rating"] = "物理爆击几率 ← 爆击等级、敏捷、武器技能等级" -- /rb sum physical critrating L["Sum Crit Rating"] = "统计爆击等级" L["Crit Rating Summary"] = "统计爆击等级" @@ -339,13 +339,13 @@ L["Sum Haste Rating"] = "统计急速等级" L["Haste Rating Summary"] = "统计急速等级" -- /rb sum physical rangedhit L["Sum Ranged Hit Chance"] = "统计远程命中几率" ---L["Ranged Hit Chance <- Hit Rating, Ranged Hit Rating"] = "远程米中几率 ← 命中等级、武器技能等级、远程命中等级" +L["Ranged Hit Chance <- Hit Rating, Weapon Skill Rating, Ranged Hit Rating"] = "远程米中几率 ← 命中等级、武器技能等级、远程命中等级" -- /rb sum physical rangedhitrating L["Sum Ranged Hit Rating"] = "统计远程命中等级" L["Ranged Hit Rating Summary"] = "统计远程命中等级" -- /rb sum physical rangedcrit L["Sum Ranged Crit Chance"] = "统计远爆击几率" ---L["Ranged Crit Chance <- Crit Rating, Agility, Ranged Crit Rating"] = "远程爆击几率 ← 爆击等级、敏捷、武器技能等级、远程爆击等级" +L["Ranged Crit Chance <- Crit Rating, Agility, Weapon Skill Rating, Ranged Crit Rating"] = "远程爆击几率 ← 爆击等级、敏捷、武器技能等级、远程爆击等级" -- /rb sum physical rangedcritrating L["Sum Ranged Crit Rating"] = "统计远程爆击等级" L["Ranged Crit Rating Summary"] = "统计远程爆击等级" @@ -358,6 +358,12 @@ L["Ranged Haste Rating Summary"] = "统计远程急速等级" -- /rb sum physical maxdamage L["Sum Weapon Max Damage"] = "统计武器最大伤害" L["Weapon Max Damage Summary"] = "统计武器最大伤害" +-- /rb sum physical ignorearmor +L["Sum Ignore Armor"] = "统计忽略护甲" +L["Ignore Armor Summary"] = "统计忽略护甲效果" +-- /rb sum physical arp +L["Sum Armor Penetration"] = "统计护甲穿透" +L["Armor Penetration Summary"] = "统计无视护甲穿透" -- /rb sum physical weapondps --L["Sum Weapon DPS"] = "统计武器DPS" --L["Weapon DPS Summary"] = "武器DPS统计" @@ -370,6 +376,9 @@ L["Expertise <- Expertise Rating"] = "精准 ← 精准等级" -- /rb sum physical exprating L["Sum Expertise Rating"] = "统计精准等级" L["Expertise Rating Summary"] = "统计精准等级" +-- /rb sum physical arprating +L["Sum Armor Penetration Rating"] = "统计无视护甲穿透等级" +L["Armor Penetration Rating Summary"] = "统计无视护甲穿透等级" --------------------------------------------------------------------------- -- /rb sum spell L["Stat - Spell"] = "属性 - 法术" @@ -425,22 +434,34 @@ L["Stat - Tank"] = "属性 - 抗打击" L["Choose tank stats for summary"] = "选择你想要统计的抗打击能力的属性" -- /rb sum tank armor L["Sum Armor"] = "统计护甲值" ---L["Armor <- Armor from items and bonuses"] = "护甲值 ← 物品护甲、护甲加成、敏捷、智力" +L["Armor <- Armor from items, Armor from bonuses, Agility, Intellect"] = "护甲值 ← 物品护甲、护甲加成、敏捷、智力" +-- /rb sum tank blockvalue +L["Sum Block Value"] = "统计格挡值" +L["Block Value <- Block Value, Strength"] = "格挡值 ← 格挡值、力量" -- /rb sum tank dodge L["Sum Dodge Chance"] = "统计躲闪几率" ---L["Dodge Chance <- Dodge Rating, Agility"] = "躲闪几率 ← 躲闪等级、敏捷、防御等级" +L["Dodge Chance <- Dodge Rating, Agility, Defense Rating"] = "躲闪几率 ← 躲闪等级、敏捷、防御等级" -- /rb sum tank parry L["Sum Parry Chance"] = "统计招架几率" ---L["Parry Chance <- Parry Rating"] = "招架几率 ← 招架等级、防御等级" +L["Parry Chance <- Parry Rating, Defense Rating"] = "招架几率 ← 招架等级、防御等级" -- /rb sum tank block L["Sum Block Chance"] = "统计格挡几率" ---L["Block Chance <- Block Rating"] = "格挡几率 ← 格挡等级、防御等级" +L["Block Chance <- Block Rating, Defense Rating"] = "格挡几率 ← 格挡等级、防御等级" +-- /rb sum tank avoidhit +L["Sum Hit Avoidance"] = "统计物理命中躲闪" +L["Hit Avoidance <- Defense Rating"] = "物理命中躲闪 ← 防御等级" +-- /rb sum tank avoidcrit +L["Sum Crit Avoidance"] = "统计物理爆击躲闪" +L["Crit Avoidance <- Defense Rating, Resilience"] = "物理爆击躲闪 ← 防御等级、韧性" -- /rb sum tank neglectdodge L["Sum Dodge Neglect"] = "统计防止被躲闪" ---L["Dodge Neglect <- Expertise"] = "防止被躲闪 ← 精准等级、武器技能等级" +L["Dodge Neglect <- Expertise, Weapon Skill Rating"] = "防止被躲闪 ← 精准等级、武器技能等级" -- /rb sum tank neglectparry L["Sum Parry Neglect"] = "统计防止被招架" ---L["Parry Neglect <- Expertise"] = "防止被招架 ← 精准等级、武器技能等级" +L["Parry Neglect <- Expertise, Weapon Skill Rating"] = "防止被招架 ← 精准等级、武器技能等级" +-- /rb sum tank neglectblock +L["Sum Block Neglect"] = "统计防止被格挡" +L["Block Neglect <- Weapon Skill Rating"] = "防止被格挡 ← 武器技能等级" -- /rb sum tank resarcane L["Sum Arcane Resistance"] = "统计奥术抗性" L["Arcane Resistance Summary"] = "统计奥术抗性" @@ -468,12 +489,15 @@ L["Block Rating Summary"] = "统计格挡等级" -- /rb sum tank res L["Sum Resilience"] = "统计韧性" L["Resilience Summary"] = "统计韧性等级" +-- /rb sum tank def +L["Sum Defense"] = "统计防御" +L["Defense <- Defense Rating"] = "防御 ← 防御等级" -- /rb sum tank tp L["Sum TankPoints"] = "统计抗打击能力" L["TankPoints <- Health, Total Reduction"] = "抗打击能力 ← 生命值, 所有伤害减免" -- /rb sum tank tr L["Sum Total Reduction"] = "统计伤害减免" ---L["Total Reduction <- Armor, Dodge, Parry, Block, MobMiss, MobCrit, MobCrush, DamageTakenMods"] = "所有伤害减免 <- 护甲值, 躲闪, 招架, 格挡, 格挡值, 防御技能, 韧性, 怪物未击中几率, 怪物重击几率, 怪物碾压打击几率, 伤害减免" +L["Total Reduction <- Armor, Dodge, Parry, Block, Block Value, Defense, Resilience, MobMiss, MobCrit, MobCrush, DamageTakenMods"] = "所有伤害减免 <- 护甲值, 躲闪, 招架, 格挡, 格挡值, 防御技能, 韧性, 怪物未击中几率, 怪物重击几率, 怪物碾压打击几率, 伤害减免" -- /rb sum tank avoid L["Sum Avoidance"] = "统计躲避" L["Avoidance <- Dodge, Parry, MobMiss, Block(Optional)"] = "躲避 ← 躲闪, 招架, 怪物未命中, 格挡(可选)" diff --git a/RatingBuster/RatingBuster-Locale-zhTW.lua b/RatingBuster/RatingBuster-Locale-zhTW.lua index 23d02e0..adb2e26 100644 --- a/RatingBuster/RatingBuster-Locale-zhTW.lua +++ b/RatingBuster/RatingBuster-Locale-zhTW.lua @@ -1,6 +1,6 @@ --[[ Name: RatingBuster zhTW locale -Revision: $Revision: 294 $ +Revision: $Revision: 282 $ Translated by: - Whitetooth@Cenarius (hotdogee@bahamut.twbbs.org) - CuteMiyu @@ -73,6 +73,12 @@ L["Show Physical Hit/Haste from Hit/Haste Rating"] = "顯示命中/加速給的 -- /rb rating detail L["Show Detailed Conversions Text"] = "顯示詳細轉換文字" L["Show detailed text for Resilience and Expertise conversions"] = "顯示韌性和熟練技能的詳細轉換文字" +-- /rb rating def +L["Defense Breakdown"] = "分析防禦" +L["Convert Defense into Crit Avoidance, Hit Avoidance, Dodge, Parry and Block"] = "將防禦分為避免致命、避免命中、閃躲、招架和格擋" +-- /rb rating wpn +L["Weapon Skill Breakdown"] = "分析武器技能" +L["Convert Weapon Skill into Crit, Hit, Dodge Neglect, Parry Neglect and Block Neglect"] = "將武器技能分為致命、擊中、防止被閃躲、防止被招架和防止被格擋" -- /rb rating exp L["Expertise Breakdown"] = "分析熟練技能" L["Convert Expertise into Dodge Neglect and Parry Neglect"] = "將熟練技能分為防止被閃躲、防止被招架" @@ -323,12 +329,6 @@ L["Intellect Summary"] = "統計智力" -- /rb sum basic spi L["Sum Spirit"] = "統計精神" L["Spirit Summary"] = "統計精神" --- /rb sum basic mastery -L["Sum Mastery"] = "統計精通" -L["Mastery Summary"] = "統計精通" --- /rb sum basic masteryrating -L["Sum Mastery Rating"] = "統計精通等級" -L["Mastery Rating Summary"] = "統計精通等級" --------------------------------------------------------------------------- -- /rb sum physical L["Stat - Physical"] = "統計物理屬性" @@ -344,13 +344,13 @@ L["Sum Feral Attack Power"] = "統計野性攻擊強度" L["Feral Attack Power <- Feral Attack Power, Attack Power, Strength, Agility"] = "野性攻擊強度 ← 野性攻擊強度、攻擊強度、力量、敏捷" -- /rb sum physical hit L["Sum Hit Chance"] = "統計命中機率" ---L["Hit Chance <- Hit Rating"] = "命中機率 ← 命中等級、武器技能等級" +L["Hit Chance <- Hit Rating, Weapon Skill Rating"] = "命中機率 ← 命中等級、武器技能等級" -- /rb sum physical hitrating L["Sum Hit Rating"] = "統計命中等級" L["Hit Rating Summary"] = "統計命中等級" -- /rb sum physical crit L["Sum Crit Chance"] = "統計致命一擊機率" ---L["Crit Chance <- Crit Rating, Agility"] = "致命一擊機率 ← 致命一擊等級、敏捷、武器技能等級" +L["Crit Chance <- Crit Rating, Agility, Weapon Skill Rating"] = "致命一擊機率 ← 致命一擊等級、敏捷、武器技能等級" -- /rb sum physical critrating L["Sum Crit Rating"] = "統計致命等級" L["Crit Rating Summary"] = "統計致命等級" @@ -362,13 +362,13 @@ L["Sum Haste Rating"] = "統計加速等級" L["Haste Rating Summary"] = "統計加速等級" -- /rb sum physical rangedhit L["Sum Ranged Hit Chance"] = "統計遠程命中機率" ---L["Ranged Hit Chance <- Hit Rating, Ranged Hit Rating"] = "遠程命中機率 ← 命中等級、武器技能等級、遠程命中等級" +L["Ranged Hit Chance <- Hit Rating, Weapon Skill Rating, Ranged Hit Rating"] = "遠程命中機率 ← 命中等級、武器技能等級、遠程命中等級" -- /rb sum physical rangedhitrating L["Sum Ranged Hit Rating"] = "統計遠程命中等級" L["Ranged Hit Rating Summary"] = "統計遠程命中等級" -- /rb sum physical rangedcrit L["Sum Ranged Crit Chance"] = "統計遠程致命一級機率" ---L["Ranged Crit Chance <- Crit Rating, Agility, Ranged Crit Rating"] = "遠程致命一擊機率 ← 致命一擊等級、敏捷、武器技能等級、遠程致命一級等級" +L["Ranged Crit Chance <- Crit Rating, Agility, Weapon Skill Rating, Ranged Crit Rating"] = "遠程致命一擊機率 ← 致命一擊等級、敏捷、武器技能等級、遠程致命一級等級" -- /rb sum physical rangedcritrating L["Sum Ranged Crit Rating"] = "統計遠程致命一級等級" L["Ranged Crit Rating Summary"] = "統計遠程致命一級等級" @@ -381,6 +381,12 @@ L["Ranged Haste Rating Summary"] = "統計遠程加速等級" -- /rb sum physical maxdamage L["Sum Weapon Max Damage"] = "統計武器最大傷害" L["Weapon Max Damage Summary"] = "統計武器最大傷害" +-- /rb sum physical ignorearmor +L["Sum Ignore Armor"] = "統計無視護甲" +L["Ignore Armor Summary"] = "統計無視護甲" +-- /rb sum physical arp +L["Sum Armor Penetration"] = "統計護甲穿透" +L["Armor Penetration Summary"] = "統計無視護甲穿透" -- /rb sum physical weapondps --L["Sum Weapon DPS"] = true --L["Weapon DPS Summary"] = true @@ -393,6 +399,9 @@ L["Expertise <- Expertise Rating"] = "熟練技能 ← 熟練等級" -- /rb sum physical exprating L["Sum Expertise Rating"] = "統計熟練等級" L["Expertise Rating Summary"] = "統計熟練等級" +-- /rb sum physical arprating +L["Sum Armor Penetration Rating"] = "統計無視護甲穿透等級" +L["Armor Penetration Rating Summary"] = "統計無視護甲穿透等級" --------------------------------------------------------------------------- -- /rb sum spell L["Stat - Spell"] = "統計魔法屬性" @@ -448,22 +457,34 @@ L["Stat - Tank"] = "統計坦克屬性" L["Choose tank stats for summary"] = "自訂坦克屬性統計項目" -- /rb sum tank armor L["Sum Armor"] = "統計護甲值" ---L["Armor <- Armor from items and bonuses"] = "護甲值 ← 物品護甲、護甲加成、敏捷、智力" +L["Armor <- Armor from items, Armor from bonuses, Agility, Intellect"] = "護甲值 ← 物品護甲、護甲加成、敏捷、智力" +-- /rb sum tank blockvalue +L["Sum Block Value"] = "統計格擋值" +L["Block Value <- Block Value, Strength"] = "格擋值 ← 格擋值、力量" -- /rb sum tank dodge L["Sum Dodge Chance"] = "統計閃躲機率" ---L["Dodge Chance <- Dodge Rating, Agility"] = "閃躲機率 ← 閃躲等級、敏捷、防禦等級" +L["Dodge Chance <- Dodge Rating, Agility, Defense Rating"] = "閃躲機率 ← 閃躲等級、敏捷、防禦等級" -- /rb sum tank parry L["Sum Parry Chance"] = "統計招架機率" ---L["Parry Chance <- Parry Rating"] = "招架機率 ← 招架等級、防禦等級" +L["Parry Chance <- Parry Rating, Defense Rating"] = "招架機率 ← 招架等級、防禦等級" -- /rb sum tank block L["Sum Block Chance"] = "統計格擋機率" ---L["Block Chance <- Block Rating"] = "格擋機率 ← 格擋等級、防禦等級" +L["Block Chance <- Block Rating, Defense Rating"] = "格擋機率 ← 格擋等級、防禦等級" +-- /rb sum tank avoidhit +L["Sum Hit Avoidance"] = "統計迴避命中" +L["Hit Avoidance <- Defense Rating"] = "迴避命中 ← 防禦等級" +-- /rb sum tank avoidcrit +L["Sum Crit Avoidance"] = "統計迴避致命一擊" +L["Crit Avoidance <- Defense Rating, Resilience"] = "迴避致命一擊 ← 防禦等級、韌性" -- /rb sum tank neglectdodge L["Sum Dodge Neglect"] = "統計防止被閃躲" ---L["Dodge Neglect <- Expertise"] = "防止被閃躲 ← 熟練技能、武器技能等級" +L["Dodge Neglect <- Expertise, Weapon Skill Rating"] = "防止被閃躲 ← 熟練技能、武器技能等級" -- /rb sum stat neglectparry L["Sum Parry Neglect"] = "統計防止被招架" ---L["Parry Neglect <- Expertise"] = "防止被招架 ← 熟練技能、武器技能等級" +L["Parry Neglect <- Expertise, Weapon Skill Rating"] = "防止被招架 ← 熟練技能、武器技能等級" +-- /rb sum tank neglectblock +L["Sum Block Neglect"] = "統計防止被格擋" +L["Block Neglect <- Weapon Skill Rating"] = "防止被格擋 ← 武器技能等級" -- /rb sum tank resarcane L["Sum Arcane Resistance"] = "統計秘法抗性" L["Arcane Resistance Summary"] = "統計秘法抗性" @@ -491,12 +512,15 @@ L["Block Rating Summary"] = "統計格檔等級" -- /rb sum tank res L["Sum Resilience"] = "統計韌性" L["Resilience Summary"] = "統計韌性" +-- /rb sum tank def +L["Sum Defense"] = "統計防禦" +L["Defense <- Defense Rating"] = "防禦 ← 防禦等級" -- /rb sum tank tp L["Sum TankPoints"] = "統計坦克點" L["TankPoints <- Health, Total Reduction"] = "坦克點 ← 生命力、傷害減免總值" -- /rb sum tank tr L["Sum Total Reduction"] = "統計傷害減免總值" ---L["Total Reduction <- Armor, Dodge, Parry, Block, MobMiss, MobCrit, MobCrush, DamageTakenMods"] = "傷害減免總值 ← 護甲、閃躲、招架、格擋、格檔值、防禦、韌性、怪物未擊中、怪物致命、怪物輾壓、DamageTakenMods (?)" +L["Total Reduction <- Armor, Dodge, Parry, Block, Block Value, Defense, Resilience, MobMiss, MobCrit, MobCrush, DamageTakenMods"] = "傷害減免總值 ← 護甲、閃躲、招架、格擋、格檔值、防禦、韌性、怪物未擊中、怪物致命、怪物輾壓、DamageTakenMods (?)" -- /rb sum tank avoid L["Sum Avoidance"] = "統計傷害迴避" L["Avoidance <- Dodge, Parry, MobMiss, Block(Optional)"] = "傷害迴避 ← 閃躲、招架、怪物未擊中、格擋(選項)" diff --git a/RatingBuster/RatingBuster.lua b/RatingBuster/RatingBuster.lua index 6f071f1..49eb4f7 100644 --- a/RatingBuster/RatingBuster.lua +++ b/RatingBuster/RatingBuster.lua @@ -1,10 +1,10 @@ --[[ Name: RatingBuster Description: Converts combat ratings in tooltips into normal percentages. -Revision: $Revision: 294 $ +Revision: $Revision: 284 $ Author: Whitetooth Email: hotdogee [at] gmail [dot] com -LastUpdate: $Date: 2010-10-22 16:07:47 +0000 (Fri, 22 Oct 2010) $ +LastUpdate: $Date: 2010-04-28 03:39:19 +0000 (Wed, 28 Apr 2010) $ ]] --------------- @@ -15,7 +15,7 @@ local AceConfigDialog = LibStub("AceConfigDialog-3.0") local AceConfigRegistry = LibStub("AceConfigRegistry-3.0") local AceDB = LibStub("AceDB-3.0") local TipHooker = LibStub("LibTipHooker-1.1") -local StatLogic = LibStub("LibStatLogic-1.2") +local StatLogic = LibStub("LibStatLogic-1.1") local L = LibStub("AceLocale-3.0"):GetLocale("RatingBuster") local BI = LibStub("LibBabble-Inventory-3.0"):GetLookupTable() @@ -25,20 +25,21 @@ local BI = LibStub("LibBabble-Inventory-3.0"):GetLookupTable() -------------------- -- AceAddon Initialization RatingBuster = LibStub("AceAddon-3.0"):NewAddon("RatingBuster", "AceConsole-3.0", "AceEvent-3.0") -RatingBuster.version = "1.5.0 (r"..gsub("$Revision: 294 $", "$Revision: (%d+) %$", "%1")..")" -RatingBuster.date = gsub("$Date: 2010-10-22 16:07:47 +0000 (Fri, 22 Oct 2010) $", "^.-(%d%d%d%d%-%d%d%-%d%d).-$", "%1") +RatingBuster.version = "1.5.0 (r" .. gsub("$Revision: 284 $", "$Revision: (%d+) %$", "%1") .. ")" +RatingBuster.date = gsub("$Date: 2010-04-28 03:39:19 +0000 (Wed, 28 Apr 2010) $", "^.-(%d%d%d%d%-%d%d%-%d%d).-$", "%1") ----------- -- Cache -- ----------- local cache = {} -setmetatable(cache, {__mode = "kv"}) -- weak table to enable garbage collection +setmetatable(cache, { __mode = "kv" }) -- weak table to enable garbage collection local function clearCache() for k in pairs(cache) do cache[k] = nil end end + --debug --RatingBuster.cache = cache @@ -47,7 +48,7 @@ end -- Local Variables -- --------------------- local _ -local _, class = UnitClass("player") +local class = "DRUID" local playerLevel = UnitLevel("player") or 80 local calcLevel local profileDB -- Initialized in :OnInitialize() @@ -89,7 +90,7 @@ local profileDefault = { showItemID = false, useRequiredLevel = true, customLevel = 0, - textColor = {r = 1.0, g = 0.996, b = 0.545, hex = "|cfffffe8b"}, + textColor = { r = 1.0, g = 0.996, b = 0.545, hex = "|cfffffe8b" }, enableTextColor = true, enableStatMods = true, enableAvoidanceDiminishingReturns = true, @@ -97,6 +98,8 @@ local profileDefault = { ratingSpell = false, ratingPhysical = false, detailedConversionText = false, + defBreakDown = false, + wpnBreakDown = false, expBreakDown = false, showStats = 0, showSum = 0, @@ -120,7 +123,7 @@ local profileDefault = { showZeroValueStat = false, calcDiff = true, calcSum = true, ---[[ + --[[ Str -> AP, Block, Healing Agi -> Crit, Dodge, AP, RAP, Armor Sta -> Health, SpellDmg @@ -130,34 +133,54 @@ Spi -> MP5, MP5NC, HP5, SpellDmg, Healing -- Base stat conversions showAPFromStr = false, showBlockValueFromStr = false, - + showCritFromAgi = true, showDodgeFromAgi = true, showAPFromAgi = false, showRAPFromAgi = false, showArmorFromAgi = false, showHealingFromAgi = false, -- Druid - Nurturing Instinct - + showHealthFromSta = false, showSpellDmgFromSta = false, -- Warlock - + showManaFromInt = false, showSpellCritFromInt = true, showSpellDmgFromInt = false, -- Druid, Mage, Paladin, Shaman, Warlock showHealingFromInt = false, -- Druid, Paladin, Shaman - showMP5FromInt = false, + showMP5FromInt = false, showMP5NCFromInt = false, showRAPFromInt = false, -- Hunter showArmorFromInt = false, -- Mage - + showMP5FromSpi = false, -- Druid, Mage, Priest showMP5NCFromSpi = false, showHP5FromSpi = false, showSpellDmgFromSpi = false, -- Priest showHealingFromSpi = false, -- Priest showSpellCritFromSpi = false, -- Mage - + showAPFromArmor = false, -- Warrior, DK + + + --Ascension custom stuff + showArmoredToTheTeeth = false, + showConviction = false, + showDivineStrength = false, + showIronWill = false, + + showHunterVSWild = false, + + showCombatExperience = false, + showNaturalReaction = false, + showShamanisticFocus = false, + showThunderingStrikes = false, + + showSpiritTap = false, + showMeditation = false, + showMoltenArmor = false, + showFelArmor = false, + ------------------ -- Stat Summary -- ------------------ @@ -173,8 +196,6 @@ Spi -> MP5, MP5NC, HP5, SpellDmg, Healing sumSta = false, sumInt = false, sumSpi = false, - sumMastery = false, - sumMasteryRating = false, -- Physical sumAP = false, sumRAP = false, @@ -192,11 +213,16 @@ Spi -> MP5, MP5NC, HP5, SpellDmg, Healing sumRangedHaste = false, sumRangedHasteRating = false, sumExpertise = false, - sumExpertiseRating = false, + sumExpertiseRating = false, + sumWeaponSkill = false, sumDodgeNeglect = false, sumParryNeglect = false, + sumBlockNeglect = false, sumWeaponMaxDamage = false, sumWeaponDPS = false, + sumIgnoreArmor = false, + sumArmorPenetration = false, -- new + sumArmorPenetrationRating = false, -- new -- Spell sumSpellDmg = false, sumArcaneDmg = false, @@ -221,6 +247,7 @@ Spi -> MP5, MP5NC, HP5, SpellDmg, Healing sumParryRating = false, sumBlock = false, sumBlockRating = false, + sumBlockValue = false, sumHitAvoid = false, sumCritAvoid = false, sumArcaneResist = false, @@ -229,6 +256,7 @@ Spi -> MP5, MP5NC, HP5, SpellDmg, Healing sumFireResist = false, sumShadowResist = false, sumResilience = false, + sumDefense = false, sumTankPoints = false, sumTotalReduction = false, sumAvoidance = false, @@ -325,7 +353,6 @@ Spi -> MP5, MP5NC, HP5, SpellDmg, Healing -- Class specific defaults if class == "DRUID" then - profileDefault.sumMastery = true profileDefault.ratingSpell = true profileDefault.ratingPhysical = true profileDefault.sumHP = true @@ -335,6 +362,7 @@ if class == "DRUID" then profileDefault.sumCrit = true profileDefault.sumHaste = true profileDefault.sumExpertise = true + profileDefault.sumArmorPenetration = true profileDefault.sumDodge = true profileDefault.sumArmor = true profileDefault.sumResilience = true @@ -354,7 +382,6 @@ if class == "DRUID" then profileDefault.sumIgnoreCloth = false profileDefault.sumIgnoreLeather = false elseif class == "HUNTER" then - profileDefault.sumMastery = true profileDefault.ratingPhysical = true profileDefault.sumHP = true profileDefault.sumMP = true @@ -363,6 +390,7 @@ elseif class == "HUNTER" then profileDefault.sumRangedHit = true profileDefault.sumRangedCrit = true profileDefault.sumRangedHaste = true + profileDefault.sumArmorPenetration = true profileDefault.sumMP5 = true profileDefault.showMP5FromInt = true -- Aspect of the Viper profileDefault.showDodgeFromAgi = false @@ -372,7 +400,6 @@ elseif class == "HUNTER" then profileDefault.sumIgnoreLeather = false profileDefault.sumIgnoreMail = false elseif class == "MAGE" then - profileDefault.sumMastery = true profileDefault.ratingSpell = true profileDefault.sumHP = true profileDefault.sumMP = true @@ -391,7 +418,6 @@ elseif class == "MAGE" then profileDefault.showSpellCritFromSpi = true -- Molten Armor profileDefault.sumIgnoreCloth = false elseif class == "PALADIN" then - profileDefault.sumMastery = true profileDefault.ratingSpell = true profileDefault.ratingPhysical = true profileDefault.sumHP = true @@ -402,6 +428,7 @@ elseif class == "PALADIN" then profileDefault.sumCrit = true profileDefault.sumHaste = true profileDefault.sumExpertise = true + profileDefault.sumArmorPenetration = true profileDefault.sumHolyDmg = true profileDefault.sumSpellHit = true profileDefault.sumSpellCrit = true @@ -411,6 +438,8 @@ elseif class == "PALADIN" then profileDefault.sumDodge = true profileDefault.sumParry = true profileDefault.sumBlock = true + profileDefault.sumBlockValue = true + profileDefault.sumDefense = true profileDefault.showSpellDmgFromInt = true profileDefault.showHealingFromInt = true profileDefault.showSpellDmgFromStr = true @@ -420,7 +449,6 @@ elseif class == "PALADIN" then profileDefault.sumIgnoreMail = false profileDefault.sumIgnorePlate = false elseif class == "PRIEST" then - profileDefault.sumMastery = true profileDefault.ratingSpell = true profileDefault.sumHP = true profileDefault.sumMP = true @@ -439,7 +467,6 @@ elseif class == "PRIEST" then profileDefault.showHealingFromSpi = true profileDefault.sumIgnoreCloth = false elseif class == "ROGUE" then - profileDefault.sumMastery = true profileDefault.ratingPhysical = true profileDefault.sumHP = true profileDefault.sumResilience = true @@ -448,10 +475,10 @@ elseif class == "ROGUE" then profileDefault.sumCrit = true profileDefault.sumHaste = true profileDefault.sumExpertise = true + profileDefault.sumArmorPenetration = true profileDefault.showSpellCritFromInt = false profileDefault.sumIgnoreLeather = false elseif class == "SHAMAN" then - profileDefault.sumMastery = true profileDefault.ratingSpell = true profileDefault.ratingPhysical = true profileDefault.sumHP = true @@ -473,7 +500,6 @@ elseif class == "SHAMAN" then profileDefault.sumIgnoreLeather = false profileDefault.sumIgnoreMail = false elseif class == "WARLOCK" then - profileDefault.sumMastery = true profileDefault.ratingSpell = true profileDefault.sumHP = true profileDefault.sumMP = true @@ -490,7 +516,6 @@ elseif class == "WARLOCK" then profileDefault.showSpellDmgFromSpi = true profileDefault.sumIgnoreCloth = false elseif class == "WARRIOR" then - profileDefault.sumMastery = true profileDefault.ratingPhysical = true profileDefault.sumHP = true profileDefault.sumResilience = true @@ -499,9 +524,12 @@ elseif class == "WARRIOR" then profileDefault.sumCrit = true profileDefault.sumHaste = true profileDefault.sumExpertise = true + profileDefault.sumArmorPenetration = true profileDefault.sumDodge = true profileDefault.sumParry = true profileDefault.sumBlock = true + profileDefault.sumBlockValue = true + profileDefault.sumDefense = true profileDefault.showSpellCritFromInt = false profileDefault.showAPFromArmor = true if playerLevel < 40 then @@ -509,7 +537,6 @@ elseif class == "WARRIOR" then end profileDefault.sumIgnorePlate = false elseif class == "DEATHKNIGHT" then - profileDefault.sumMastery = true profileDefault.ratingPhysical = true profileDefault.sumHP = true profileDefault.sumResilience = true @@ -518,8 +545,10 @@ elseif class == "DEATHKNIGHT" then profileDefault.sumCrit = true profileDefault.sumHaste = true profileDefault.sumExpertise = true + profileDefault.sumArmorPenetration = true profileDefault.sumDodge = true profileDefault.sumParry = true + profileDefault.sumDefense = true profileDefault.showSpellCritFromInt = false profileDefault.showParryFromStr = true profileDefault.showAPFromArmor = true @@ -581,7 +610,7 @@ local function setGem(info, value) clearCache() -- Is option set by AceConfigCmd or AceConfigDialog? --if not debugstack():find("AceConfigCmd") then - RatingBuster:Print(L["|cffffff7f%s|r is now set to |cffffff7f[%s]|r"]:format(info.option.name, link)) + RatingBuster:Print(L["|cffffff7f%s|r is now set to |cffffff7f[%s]|r"]:format(info.option.name, link)) --end elseif gemID == false then -- invalid input RatingBuster:Print(L["Invalid input: %s. ItemID or ItemLink required."]:format(value)) @@ -652,7 +681,9 @@ local options = { order = 4, width = "double", name = L["Enable Avoidance Diminishing Returns"], - desc = L["Dodge, Parry, Hit Avoidance values will be calculated using the avoidance deminishing return formula with your current stats"], + desc = L[ + "Dodge, Parry, Hit Avoidance values will be calculated using the avoidance deminishing return formula with your current stats" + ], arg = "enableAvoidanceDiminishingReturns", get = getProfileOption, set = setProfileOptionAndClearCache, @@ -751,6 +782,26 @@ local options = { get = getProfileOption, set = setProfileOptionAndClearCache, }, + def = { + type = 'toggle', + order = 5, + width = "double", + name = L["Defense Breakdown"], + desc = L["Convert Defense into Crit Avoidance, Hit Avoidance, Dodge, Parry and Block"], + arg = "defBreakDown", + get = getProfileOption, + set = setProfileOptionAndClearCache, + }, + wpn = { + type = 'toggle', + order = 6, + width = "double", + name = L["Weapon Skill Breakdown"], + desc = L["Convert Weapon Skill into Crit, Hit, Dodge Neglect, Parry Neglect and Block Neglect"], + arg = "wpnBreakDown", + get = getProfileOption, + set = setProfileOptionAndClearCache, + }, exp = { type = 'toggle', order = 7, @@ -789,7 +840,9 @@ local options = { end, set = function(info, r, g, b, a) profileDB.textColor.r, profileDB.textColor.g, profileDB.textColor.b = r, g, b - profileDB.textColor.hex = "|cff"..string.format("%02x%02x%02x", profileDB.textColor.r * 255, profileDB.textColor.g * 255, profileDB.textColor.b * 255) + profileDB.textColor.hex = "|cff" .. + string.format("%02x%02x%02x", profileDB.textColor.r * 255, profileDB.textColor.g * 255, + profileDB.textColor.b * 255) clearCache() end, }, @@ -803,12 +856,15 @@ local options = { CloseMenus() ColorPickerFrame.func = function() profileDB.textColor.r, profileDB.textColor.g, profileDB.textColor.b = ColorPickerFrame:GetColorRGB(); - profileDB.textColor.hex = "|cff"..string.format("%02x%02x%02x", profileDB.textColor.r * 255, profileDB.textColor.g * 255, profileDB.textColor.b * 255) + profileDB.textColor.hex = "|cff" .. + string.format("%02x%02x%02x", profileDB.textColor.r * 255, profileDB.textColor.g * 255, + profileDB.textColor.b * 255) --clear cache clearCache() end ColorPickerFrame:SetColorRGB(profileDB.textColor.r, profileDB.textColor.g, profileDB.textColor.b); - ColorPickerFrame.previousValues = {r = profileDB.textColor.r, g = profileDB.textColor.g, b = profileDB.textColor.b}; + ColorPickerFrame.previousValues = { r = profileDB.textColor.r, g = profileDB.textColor.g, + b = profileDB.textColor.b }; ColorPickerFrame:Show() end, }, @@ -859,6 +915,34 @@ local options = { get = getProfileOption, set = setProfileOptionAndClearCache, }, + --Ascension Custom + spellcrit = { + type = 'toggle', + width = "full", + name = L["Show Conviction"], + desc = L["Show Spell Crit from Strength"], + arg = "showConviction", + get = getProfileOption, + set = setProfileOptionAndClearCache, + }, + hitrating = { + type = 'toggle', + width = "full", + name = L["Show Divine Strength"], + desc = L["Show Hit Rating from Strength"], + arg = "showDivineStrength", + get = getProfileOption, + set = setProfileOptionAndClearCache, + }, + parry = { + type = 'toggle', + width = "full", + name = L["Show Iron Will"], + desc = L["Show Parry Rating from Strength"], + arg = "showIronWill", + get = getProfileOption, + set = setProfileOptionAndClearCache, + }, }, }, agi = { @@ -912,6 +996,43 @@ local options = { get = getProfileOption, set = setProfileOptionAndClearCache, }, + --Ascension Custom + spellcrit = { + type = 'toggle', + width = "full", + name = L["Show Thundering Strikes"], + desc = L["Show Spell Crit from Agility"], + arg = "showThunderingStrikes", + get = getProfileOption, + set = setProfileOptionAndClearCache, + }, + hitrating = { + type = 'toggle', + width = "full", + name = L["Show Shamanistic Focus"], + desc = L["Show Spell Hit from Agility"], + arg = "showShamanisticFocus", + get = getProfileOption, + set = setProfileOptionAndClearCache, + }, + hitrating2 = { + type = 'toggle', + width = "full", + name = L["Show Combat Experience"], + desc = L["Show Spell Hit from Agility"], + arg = "showCombatExperience", + get = getProfileOption, + set = setProfileOptionAndClearCache, + }, + dodge2 = { + type = 'toggle', + width = "full", + name = L["Show Natural Reaction"], + desc = L["Show Dodge from Natural Reaction"], + arg = "showNaturalReaction", + get = getProfileOption, + set = setProfileOptionAndClearCache, + }, }, }, sta = { @@ -929,6 +1050,15 @@ local options = { get = getProfileOption, set = setProfileOptionAndClearCache, }, + ap = { + type = 'toggle', + width = "full", + name = L["Show Hunter vs. Wild"], + desc = L["Show Attack Power from Stamina"], + arg = "showHunterVSWild", + get = getProfileOption, + set = setProfileOptionAndClearCache, + }, }, }, int = { @@ -999,6 +1129,33 @@ local options = { get = getProfileOption, set = setProfileOptionAndClearCache, }, + spellcrit = { + type = 'toggle', + width = "full", + name = L["Show Improved Spirit Tap"], + desc = L["Show Crit Rating from Spirit"], + arg = "showSpiritTap", + get = getProfileOption, + set = setProfileOptionAndClearCache, + }, + spellcrit2 = { + type = 'toggle', + width = "full", + name = L["Show Meditation"], + desc = L["Show Crit Rating from Spirit"], + arg = "showMeditation", + get = getProfileOption, + set = setProfileOptionAndClearCache, + }, + spellcrit3 = { + type = 'toggle', + width = "full", + name = L["Show Molten Armor"], + desc = L["Show Crit Rating from Spirit"], + arg = "showMoltenArmor", + get = getProfileOption, + set = setProfileOptionAndClearCache, + }, }, }, }, @@ -1028,7 +1185,7 @@ local options = { order = 2, name = L["Display Style For Diff Value"], desc = L["Display diff values in the main tooltip or only in compare tooltips"], - values = {comp = "comp", main = "main"}, + values = { comp = "comp", main = "main" }, arg = "sumDiffStyle", }, ignore = { @@ -1052,11 +1209,11 @@ local options = { name = L["Minimum Item Quality"], desc = L["Show stat summary only for selected quality items and up"], values = { - [0] = "|cff9d9d9d"..ITEM_QUALITY0_DESC.."|r", - [1] = "|cffffffff"..ITEM_QUALITY1_DESC.."|r", - [2] = "|cff1eff00"..ITEM_QUALITY2_DESC.."|r", - [3] = "|cff0070dd"..ITEM_QUALITY3_DESC.."|r", - [4] = "|cffa335ee"..ITEM_QUALITY4_DESC.."|r", + [0] = "|cff9d9d9d" .. ITEM_QUALITY0_DESC .. "|r", + [1] = "|cffffffff" .. ITEM_QUALITY1_DESC .. "|r", + [2] = "|cff1eff00" .. ITEM_QUALITY2_DESC .. "|r", + [3] = "|cff0070dd" .. ITEM_QUALITY3_DESC .. "|r", + [4] = "|cffa335ee" .. ITEM_QUALITY4_DESC .. "|r", }, arg = "sumMinQuality", disabled = function() return not profileDB.sumIgnoreUnused end, @@ -1209,7 +1366,9 @@ local options = { name = L["Sort StatSummary Alphabetically"], order = 10, width = "double", - desc = L["Enable to sort StatSummary alphabetically, disable to sort according to stat type(basic, physical, spell, tank)"], + desc = L[ + "Enable to sort StatSummary alphabetically, disable to sort according to stat type(basic, physical, spell, tank)" + ], arg = "sumSortAlpha", get = getProfileOption, set = setProfileOptionAndClearCache, @@ -1318,22 +1477,6 @@ local options = { get = getProfileOption, set = setProfileOptionAndClearCache, }, - mastery = { - type = 'toggle', - name = L["Sum Mastery"], - desc = L["Mastery Summary"], - arg = "sumMastery", - get = getProfileOption, - set = setProfileOptionAndClearCache, - }, - masteryrating = { - type = 'toggle', - name = L["Sum Mastery Rating"], - desc = L["Mastery Rating Summary"], - arg = "sumMasteryRating", - get = getProfileOption, - set = setProfileOptionAndClearCache, - }, }, }, physical = { @@ -1369,7 +1512,7 @@ local options = { hit = { type = 'toggle', name = L["Sum Hit Chance"], - desc = L["Hit Chance <- Hit Rating"], + desc = L["Hit Chance <- Hit Rating, Weapon Skill Rating"], arg = "sumHit", get = getProfileOption, set = setProfileOptionAndClearCache, @@ -1385,7 +1528,7 @@ local options = { rangedhit = { type = 'toggle', name = L["Sum Ranged Hit Chance"], - desc = L["Ranged Hit Chance <- Hit Rating, Ranged Hit Rating"], + desc = L["Ranged Hit Chance <- Hit Rating, Weapon Skill Rating, Ranged Hit Rating"], arg = "sumRangedHit", get = getProfileOption, set = setProfileOptionAndClearCache, @@ -1401,7 +1544,7 @@ local options = { crit = { type = 'toggle', name = L["Sum Crit Chance"], - desc = L["Crit Chance <- Crit Rating, Agility"], + desc = L["Crit Chance <- Crit Rating, Agility, Weapon Skill Rating"], arg = "sumCrit", get = getProfileOption, set = setProfileOptionAndClearCache, @@ -1417,7 +1560,7 @@ local options = { rangedcrit = { type = 'toggle', name = L["Sum Ranged Crit Chance"], - desc = L["Ranged Crit Chance <- Crit Rating, Agility, Ranged Crit Rating"], + desc = L["Ranged Crit Chance <- Crit Rating, Agility, Weapon Skill Rating, Ranged Crit Rating"], arg = "sumRangedCrit", get = getProfileOption, set = setProfileOptionAndClearCache, @@ -1465,7 +1608,7 @@ local options = { neglectdodge = { type = 'toggle', name = L["Sum Dodge Neglect"], - desc = L["Dodge Neglect <- Expertise"], + desc = L["Dodge Neglect <- Expertise, Weapon Skill Rating"], arg = "sumDodgeNeglect", get = getProfileOption, set = setProfileOptionAndClearCache, @@ -1473,11 +1616,27 @@ local options = { neglectparry = { type = 'toggle', name = L["Sum Parry Neglect"], - desc = L["Parry Neglect <- Expertise"], + desc = L["Parry Neglect <- Expertise, Weapon Skill Rating"], arg = "sumParryNeglect", get = getProfileOption, set = setProfileOptionAndClearCache, }, + neglectblock = { + type = 'toggle', + name = L["Sum Block Neglect"], + desc = L["Block Neglect <- Weapon Skill Rating"], + arg = "sumBlockNeglect", + get = getProfileOption, + set = setProfileOptionAndClearCache, + }, + wpn = { + type = 'toggle', + name = L["Sum Weapon Skill"], + desc = L["Weapon Skill <- Weapon Skill Rating"], + arg = "sumWeaponSkill", + get = getProfileOption, + set = setProfileOptionAndClearCache, + }, exp = { type = 'toggle', name = L["Sum Expertise"], @@ -1502,6 +1661,43 @@ local options = { get = getProfileOption, set = setProfileOptionAndClearCache, }, + --[[ + weapondps = { + type = 'toggle', + name = L["Sum Weapon DPS"], + desc = L["Weapon DPS Summary"], + get = function() return profileDB.sumWeaponDPS end, + set = function(v) + profileDB.sumWeaponDPS = v + -- clear cache + clearCache() + end, + }, + --]] + ignorearmor = { + type = 'toggle', + name = L["Sum Ignore Armor"], + desc = L["Ignore Armor Summary"], + arg = "sumIgnoreArmor", + get = getProfileOption, + set = setProfileOptionAndClearCache, + }, + arp = { + type = 'toggle', + name = L["Sum Armor Penetration"], + desc = L["Armor Penetration Summary"], + arg = "sumArmorPenetration", + get = getProfileOption, + set = setProfileOptionAndClearCache, + }, + arprating = { + type = 'toggle', + name = L["Sum Armor Penetration Rating"], + desc = L["Armor Penetration Rating Summary"], + arg = "sumArmorPenetrationRating", + get = getProfileOption, + set = setProfileOptionAndClearCache, + }, }, }, spell = { @@ -1641,15 +1837,23 @@ local options = { armor = { type = 'toggle', name = L["Sum Armor"], - desc = L["Armor <- Armor from items and bonuses"], + desc = L["Armor <- Armor from items, Armor from bonuses, Agility, Intellect"], arg = "sumArmor", get = getProfileOption, set = setProfileOptionAndClearCache, }, + def = { + type = 'toggle', + name = L["Sum Defense"], + desc = L["Defense <- Defense Rating"], + arg = "sumDefense", + get = getProfileOption, + set = setProfileOptionAndClearCache, + }, dodge = { type = 'toggle', name = L["Sum Dodge Chance"], - desc = L["Dodge Chance <- Dodge Rating, Agility"], + desc = L["Dodge Chance <- Dodge Rating, Agility, Defense Rating"], arg = "sumDodge", get = getProfileOption, set = setProfileOptionAndClearCache, @@ -1665,7 +1869,7 @@ local options = { parry = { type = 'toggle', name = L["Sum Parry Chance"], - desc = L["Parry Chance <- Parry Rating"], + desc = L["Parry Chance <- Parry Rating, Defense Rating"], arg = "sumParry", get = getProfileOption, set = setProfileOptionAndClearCache, @@ -1681,7 +1885,7 @@ local options = { block = { type = 'toggle', name = L["Sum Block Chance"], - desc = L["Block Chance <- Block Rating"], + desc = L["Block Chance <- Block Rating, Defense Rating"], arg = "sumBlock", get = getProfileOption, set = setProfileOptionAndClearCache, @@ -1694,6 +1898,30 @@ local options = { get = getProfileOption, set = setProfileOptionAndClearCache, }, + blockvalue = { + type = 'toggle', + name = L["Sum Block Value"], + desc = L["Block Value <- Block Value, Strength"], + arg = "sumBlockValue", + get = getProfileOption, + set = setProfileOptionAndClearCache, + }, + avoidhit = { + type = 'toggle', + name = L["Sum Hit Avoidance"], + desc = L["Hit Avoidance <- Defense Rating"], + arg = "sumHitAvoid", + get = getProfileOption, + set = setProfileOptionAndClearCache, + }, + avoidcrit = { + type = 'toggle', + name = L["Sum Crit Avoidance"], + desc = L["Crit Avoidance <- Defense Rating, Resilience"], + arg = "sumCritAvoid", + get = getProfileOption, + set = setProfileOptionAndClearCache, + }, res = { type = 'toggle', name = L["Sum Resilience"], @@ -2003,7 +2231,9 @@ if TankPoints and (tonumber(strsub(TankPoints.version, 1, 3)) >= 2.6) then options.args.sum.args.tank.args.tr = { type = 'toggle', name = L["Sum Total Reduction"], - desc = L["Total Reduction <- Armor, Dodge, Parry, Block, Block Value, Defense, Resilience, MobMiss, MobCrit, MobCrush, DamageTakenMods"], + desc = L[ + "Total Reduction <- Armor, Dodge, Parry, Block, Block Value, Defense, Resilience, MobMiss, MobCrit, MobCrush, DamageTakenMods" + ], arg = "sumTotalReduction", get = getProfileOption, set = setProfileOptionAndClearCache, @@ -2023,385 +2253,327 @@ end -- Class specific options if class == "DRUID" then - if GetSpellInfo(47180) then - options.args.stat.args.agi.args.heal = { -- Nurturing Instinct (Rank 2) - 2,14 - type = 'toggle', - width = "full", - name = L["Show Healing"].." ("..GetSpellInfo(47180)..")", -- ["Nurturing Instinct"] - desc = L["Show Healing from Agility"].." ("..GetSpellInfo(47180)..")", -- ["Nurturing Instinct"] - arg = "showHealingFromAgi", - get = getProfileOption, - set = setProfileOptionAndClearCache, - } - end - if GetSpellInfo(33591) then - options.args.stat.args.int.args.dmg = { -- Lunar Guidance (Rank 3) - 1,12 - type = 'toggle', - width = "full", - name = L["Show Spell Damage"].." ("..GetSpellInfo(33591)..")", -- ["Lunar Guidance"] - desc = L["Show Spell Damage from Intellect"].." ("..GetSpellInfo(33591)..")", -- ["Lunar Guidance"] - arg = "showSpellDmgFromInt", - get = getProfileOption, - set = setProfileOptionAndClearCache, - } - end - if GetSpellInfo(33591) then - options.args.stat.args.int.args.heal = { -- Lunar Guidance (Rank 3) - 1,12 - type = 'toggle', - width = "full", - name = L["Show Healing"].." ("..GetSpellInfo(33591)..")", - desc = L["Show Healing from Intellect"].." ("..GetSpellInfo(33591)..")", - arg = "showHealingFromInt", - get = getProfileOption, - set = setProfileOptionAndClearCache, - } - end - if GetSpellInfo(35359) then - options.args.stat.args.spi.args.mp5 = { -- Intensity (Rank 3) - 3,6 - type = 'toggle', - width = "full", - name = L["Show Mana Regen"].." ("..GetSpellInfo(35359)..")", - desc = L["Show Mana Regen while casting from Spirit"].." ("..GetSpellInfo(35359)..")", - arg = "showMP5FromSpi", - get = getProfileOption, - set = setProfileOptionAndClearCache, - } - end - if GetSpellInfo(48384) then - options.args.stat.args.spi.args.dmg = { -- Improved Moonkin Form (Rank 3) - 1,19 - type = 'toggle', - width = "full", - name = L["Show Spell Damage"].." ("..GetSpellInfo(48384)..")", - desc = L["Show Spell Damage from Spirit"].." ("..GetSpellInfo(48384)..")", - arg = "showSpellDmgFromSpi", - get = getProfileOption, - set = setProfileOptionAndClearCache, - } - end - if GetSpellInfo(48537) then - options.args.stat.args.spi.args.heal = { -- Improved Tree of Life (Rank 3) - 3,24 - type = 'toggle', - width = "full", - name = L["Show Healing"].." ("..GetSpellInfo(48537)..")", - desc = L["Show Healing from Spirit"].." ("..GetSpellInfo(48537)..")", - arg = "showHealingFromSpi", - get = getProfileOption, - set = setProfileOptionAndClearCache, - } - end + options.args.stat.args.agi.args.heal = { -- Nurturing Instinct (Rank 2) - 2,14 + type = 'toggle', + width = "full", + name = L["Show Healing"] .. " (" .. GetSpellInfo(47180) .. ")", -- ["Nurturing Instinct"] + desc = L["Show Healing from Agility"] .. " (" .. GetSpellInfo(47180) .. ")", -- ["Nurturing Instinct"] + arg = "showHealingFromAgi", + get = getProfileOption, + set = setProfileOptionAndClearCache, + } + options.args.stat.args.int.args.dmg = { -- Lunar Guidance (Rank 3) - 1,12 + type = 'toggle', + width = "full", + name = L["Show Spell Damage"] .. " (" .. GetSpellInfo(33591) .. ")", -- ["Lunar Guidance"] + desc = L["Show Spell Damage from Intellect"] .. " (" .. GetSpellInfo(33591) .. ")", -- ["Lunar Guidance"] + arg = "showSpellDmgFromInt", + get = getProfileOption, + set = setProfileOptionAndClearCache, + } + options.args.stat.args.int.args.heal = { -- Lunar Guidance (Rank 3) - 1,12 + type = 'toggle', + width = "full", + name = L["Show Healing"] .. " (" .. GetSpellInfo(33591) .. ")", + desc = L["Show Healing from Intellect"] .. " (" .. GetSpellInfo(33591) .. ")", + arg = "showHealingFromInt", + get = getProfileOption, + set = setProfileOptionAndClearCache, + } + options.args.stat.args.spi.args.mp5 = { -- Intensity (Rank 3) - 3,6 + type = 'toggle', + width = "full", + name = L["Show Mana Regen"] .. " (" .. GetSpellInfo(35359) .. ")", + desc = L["Show Mana Regen while casting from Spirit"] .. " (" .. GetSpellInfo(35359) .. ")", + arg = "showMP5FromSpi", + get = getProfileOption, + set = setProfileOptionAndClearCache, + } + options.args.stat.args.spi.args.dmg = { -- Improved Moonkin Form (Rank 3) - 1,19 + type = 'toggle', + width = "full", + name = L["Show Spell Damage"] .. " (" .. GetSpellInfo(48384) .. ")", + desc = L["Show Spell Damage from Spirit"] .. " (" .. GetSpellInfo(48384) .. ")", + arg = "showSpellDmgFromSpi", + get = getProfileOption, + set = setProfileOptionAndClearCache, + } + options.args.stat.args.spi.args.heal = { -- Improved Tree of Life (Rank 3) - 3,24 + type = 'toggle', + width = "full", + name = L["Show Healing"] .. " (" .. GetSpellInfo(48537) .. ")", + desc = L["Show Healing from Spirit"] .. " (" .. GetSpellInfo(48537) .. ")", + arg = "showHealingFromSpi", + get = getProfileOption, + set = setProfileOptionAndClearCache, + } elseif class == "HUNTER" then - if GetSpellInfo(34484) then - options.args.stat.args.int.args.rap = { -- Careful Aim - type = 'toggle', - width = "full", - name = L["Show Ranged Attack Power"].." ("..GetSpellInfo(34484)..")", - desc = L["Show Ranged Attack Power from Intellect"].." ("..GetSpellInfo(34484)..")", - arg = "showRAPFromInt", - get = getProfileOption, - set = setProfileOptionAndClearCache, - } - end - if GetSpellInfo(56341) then - options.args.stat.args.sta.args.ap = { -- Hunter: Hunter vs. Wild - type = 'toggle', - width = "full", - name = L["Show Attack Power"].." ("..GetSpellInfo(56341)..")", - desc = L["Show Attack Power from Stamina"].." ("..GetSpellInfo(56341)..")", - arg = "showAPFromSta", - get = getProfileOption, - set = setProfileOptionAndClearCache, - } - end + options.args.stat.args.int.args.rap = { -- Careful Aim + type = 'toggle', + width = "full", + name = L["Show Ranged Attack Power"] .. " (" .. GetSpellInfo(34484) .. ")", + desc = L["Show Ranged Attack Power from Intellect"] .. " (" .. GetSpellInfo(34484) .. ")", + arg = "showRAPFromInt", + get = getProfileOption, + set = setProfileOptionAndClearCache, + } + options.args.stat.args.sta.args.ap = { -- Hunter: Hunter vs. Wild + type = 'toggle', + width = "full", + name = L["Show Attack Power"] .. " (" .. GetSpellInfo(56341) .. ")", + desc = L["Show Attack Power from Stamina"] .. " (" .. GetSpellInfo(56341) .. ")", + arg = "showAPFromSta", + get = getProfileOption, + set = setProfileOptionAndClearCache, + } elseif class == "MAGE" then - if GetSpellInfo(31588) then - options.args.stat.args.int.args.dmg = { -- Mind Mastery (Rank 5) - 1,22 - type = 'toggle', - width = "full", - name = L["Show Spell Damage"].." ("..GetSpellInfo(31588)..")", - desc = L["Show Spell Damage from Intellect"].." ("..GetSpellInfo(31588)..")", - arg = "showSpellDmgFromInt", - get = getProfileOption, - set = setProfileOptionAndClearCache, - } - end - if GetSpellInfo(28574) then - options.args.stat.args.int.args.armor = { -- Arcane Fortitude - 1,9 - type = 'toggle', - width = "full", - name = L["Show Armor"].." ("..GetSpellInfo(28574)..")", - desc = L["Show Armor from Intellect"].." ("..GetSpellInfo(28574)..")", - arg = "showArmorFromInt", - get = getProfileOption, - set = setProfileOptionAndClearCache, - } - end - if GetSpellInfo(18464) then - options.args.stat.args.spi.args.mp5 = { -- Arcane Meditation (Rank 3) - 1,12 - type = 'toggle', - width = "full", - name = L["Show Mana Regen"].." ("..GetSpellInfo(18464)..")", - desc = L["Show Mana Regen while casting from Spirit"].." ("..GetSpellInfo(18464)..")", - arg = "showMP5FromSpi", - get = getProfileOption, - set = setProfileOptionAndClearCache, - } - end - if GetSpellInfo(30482) then - options.args.stat.args.spi.args.spellcrit = { -- Molten Armor - type = 'toggle', - width = "full", - name = L["Show Spell Crit"].." ("..GetSpellInfo(30482)..")", - desc = L["Show Spell Crit chance from Spirit"].." ("..GetSpellInfo(30482)..")", - arg = "showSpellCritFromSpi", - get = getProfileOption, - set = setProfileOptionAndClearCache, - } - end + options.args.stat.args.int.args.dmg = { -- Mind Mastery (Rank 5) - 1,22 + type = 'toggle', + width = "full", + name = L["Show Spell Damage"] .. " (" .. GetSpellInfo(31588) .. ")", + desc = L["Show Spell Damage from Intellect"] .. " (" .. GetSpellInfo(31588) .. ")", + arg = "showSpellDmgFromInt", + get = getProfileOption, + set = setProfileOptionAndClearCache, + } + options.args.stat.args.int.args.armor = { -- Arcane Fortitude - 1,9 + type = 'toggle', + width = "full", + name = L["Show Armor"] .. " (" .. GetSpellInfo(28574) .. ")", + desc = L["Show Armor from Intellect"] .. " (" .. GetSpellInfo(28574) .. ")", + arg = "showArmorFromInt", + get = getProfileOption, + set = setProfileOptionAndClearCache, + } + options.args.stat.args.spi.args.mp5 = { -- Arcane Meditation (Rank 3) - 1,12 + type = 'toggle', + width = "full", + name = L["Show Mana Regen"] .. " (" .. GetSpellInfo(18464) .. ")", + desc = L["Show Mana Regen while casting from Spirit"] .. " (" .. GetSpellInfo(18464) .. ")", + arg = "showMP5FromSpi", + get = getProfileOption, + set = setProfileOptionAndClearCache, + } + options.args.stat.args.spi.args.spellcrit = { -- Molten Armor + type = 'toggle', + width = "full", + name = L["Show Spell Crit"] .. " (" .. GetSpellInfo(30482) .. ")", + desc = L["Show Spell Crit chance from Spirit"] .. " (" .. GetSpellInfo(30482) .. ")", + arg = "showSpellCritFromSpi", + get = getProfileOption, + set = setProfileOptionAndClearCache, + } elseif class == "PALADIN" then - if GetSpellInfo(31841) then - options.args.stat.args.int.args.dmg = { -- Paladin: Holy Guidance (Rank 5) - 1,19 - type = 'toggle', - width = "full", - name = L["Show Spell Damage"].." ("..GetSpellInfo(31841)..")", - desc = L["Show Spell Damage from Intellect"].." ("..GetSpellInfo(31841)..")", - arg = "showSpellDmgFromInt", - get = getProfileOption, - set = setProfileOptionAndClearCache, - } - end - if GetSpellInfo(31841) then - options.args.stat.args.int.args.heal = { -- Paladin: Holy Guidance (Rank 5) - 1,19 - type = 'toggle', - width = "full", - name = L["Show Healing"].." ("..GetSpellInfo(31841)..")", - desc = L["Show Healing from Intellect"].." ("..GetSpellInfo(31841)..")", - arg = "showHealingFromInt", - get = getProfileOption, - set = setProfileOptionAndClearCache, - } - end - if GetSpellInfo(53501) and GetSpellInfo(53592) then - options.args.stat.args.str.args.dmg = { -- Paladin: Sheath of Light, Touched by the Light - type = 'toggle', - width = "full", - name = L["Show Spell Damage"].." ("..GetSpellInfo(53501)..", "..GetSpellInfo(53592)..")", - desc = L["Show Spell Damage from Strength"].." ("..GetSpellInfo(53501)..", "..GetSpellInfo(53592)..")", - arg = "showSpellDmgFromStr", - get = getProfileOption, - set = setProfileOptionAndClearCache, - } - end - if GetSpellInfo(53501) and GetSpellInfo(53592) then - options.args.stat.args.str.args.heal = { -- Paladin: Sheath of Light, Touched by the Light - type = 'toggle', - width = "full", - name = L["Show Healing"].." ("..GetSpellInfo(53501)..", "..GetSpellInfo(53592)..")", - desc = L["Show Healing from Strength"].." ("..GetSpellInfo(53501)..", "..GetSpellInfo(53592)..")", - arg = "showHealingFromStr", - get = getProfileOption, - set = setProfileOptionAndClearCache, - } - end + options.args.stat.args.int.args.dmg = { -- Paladin: Holy Guidance (Rank 5) - 1,19 + type = 'toggle', + width = "full", + name = L["Show Spell Damage"] .. " (" .. GetSpellInfo(31841) .. ")", + desc = L["Show Spell Damage from Intellect"] .. " (" .. GetSpellInfo(31841) .. ")", + arg = "showSpellDmgFromInt", + get = getProfileOption, + set = setProfileOptionAndClearCache, + } + options.args.stat.args.int.args.heal = { -- Paladin: Holy Guidance (Rank 5) - 1,19 + type = 'toggle', + width = "full", + name = L["Show Healing"] .. " (" .. GetSpellInfo(31841) .. ")", + desc = L["Show Healing from Intellect"] .. " (" .. GetSpellInfo(31841) .. ")", + arg = "showHealingFromInt", + get = getProfileOption, + set = setProfileOptionAndClearCache, + } + options.args.stat.args.str.args.dmg = { -- Paladin: Sheath of Light, Touched by the Light + type = 'toggle', + width = "full", + name = L["Show Spell Damage"] .. " (" .. GetSpellInfo(53501) .. ", " .. GetSpellInfo(53592) .. ")", + desc = L["Show Spell Damage from Strength"] .. " (" .. GetSpellInfo(53501) .. ", " .. GetSpellInfo(53592) .. ")", + arg = "showSpellDmgFromStr", + get = getProfileOption, + set = setProfileOptionAndClearCache, + } + options.args.stat.args.str.args.heal = { -- Paladin: Sheath of Light, Touched by the Light + type = 'toggle', + width = "full", + name = L["Show Healing"] .. " (" .. GetSpellInfo(53501) .. ", " .. GetSpellInfo(53592) .. ")", + desc = L["Show Healing from Strength"] .. " (" .. GetSpellInfo(53501) .. ", " .. GetSpellInfo(53592) .. ")", + arg = "showHealingFromStr", + get = getProfileOption, + set = setProfileOptionAndClearCache, + } elseif class == "PRIEST" then - if GetSpellInfo(38346) then - options.args.stat.args.spi.args.mp5 = { -- Meditation (Rank 3) - 1,9 - type = 'toggle', - width = "full", - name = L["Show Mana Regen"].." ("..GetSpellInfo(38346)..")", - desc = L["Show Mana Regen while casting from Spirit"].." ("..GetSpellInfo(38346)..")", - arg = "showMP5FromSpi", - get = getProfileOption, - set = setProfileOptionAndClearCache, - } - end - if GetSpellInfo(15031) and GetSpellInfo(47573) then - options.args.stat.args.spi.args.dmg = { -- Spiritual Guidance (Rank 5) - 2,14, Twisted Faith - 3,26 - type = 'toggle', - width = "full", - name = L["Show Spell Damage"].." ("..GetSpellInfo(15031)..", "..GetSpellInfo(47573)..")", - desc = L["Show Spell Damage from Spirit"].." ("..GetSpellInfo(15031)..", "..GetSpellInfo(47573)..")", - arg = "showSpellDmgFromSpi", - get = getProfileOption, - set = setProfileOptionAndClearCache, - } - end - if GetSpellInfo(15031) and GetSpellInfo(47573) then - options.args.stat.args.spi.args.heal = { -- Spiritual Guidance (Rank 5) - 2,14, Twisted Faith - 3,26 - type = 'toggle', - width = "full", - name = L["Show Healing"].." ("..GetSpellInfo(15031)..", "..GetSpellInfo(47573)..")", - desc = L["Show Healing from Spirit"].." ("..GetSpellInfo(15031)..", "..GetSpellInfo(47573)..")", - arg = "showHealingFromSpi", - get = getProfileOption, - set = setProfileOptionAndClearCache, - } - end + options.args.stat.args.spi.args.mp5 = { -- Meditation (Rank 3) - 1,9 + type = 'toggle', + width = "full", + name = L["Show Mana Regen"] .. " (" .. GetSpellInfo(38346) .. ")", + desc = L["Show Mana Regen while casting from Spirit"] .. " (" .. GetSpellInfo(38346) .. ")", + arg = "showMP5FromSpi", + get = getProfileOption, + set = setProfileOptionAndClearCache, + } + options.args.stat.args.spi.args.dmg = { -- Spiritual Guidance (Rank 5) - 2,14, Twisted Faith - 3,26 + type = 'toggle', + width = "full", + name = L["Show Spell Damage"] .. " (" .. GetSpellInfo(15031) .. ", " .. GetSpellInfo(47573) .. ")", + desc = L["Show Spell Damage from Spirit"] .. " (" .. GetSpellInfo(15031) .. ", " .. GetSpellInfo(47573) .. ")", + arg = "showSpellDmgFromSpi", + get = getProfileOption, + set = setProfileOptionAndClearCache, + } + options.args.stat.args.spi.args.heal = { -- Spiritual Guidance (Rank 5) - 2,14, Twisted Faith - 3,26 + type = 'toggle', + width = "full", + name = L["Show Healing"] .. " (" .. GetSpellInfo(15031) .. ", " .. GetSpellInfo(47573) .. ")", + desc = L["Show Healing from Spirit"] .. " (" .. GetSpellInfo(15031) .. ", " .. GetSpellInfo(47573) .. ")", + arg = "showHealingFromSpi", + get = getProfileOption, + set = setProfileOptionAndClearCache, + } elseif class == "ROGUE" then elseif class == "SHAMAN" then - if GetSpellInfo(30814) then - options.args.stat.args.str.args.dmg = { -- Mental Quickness (Rank 3) - 2,15 - type = 'toggle', - width = "full", - name = L["Show Spell Damage"].." ("..GetSpellInfo(30814)..")", - desc = L["Show Spell Damage from Strength"].." ("..GetSpellInfo(30814)..")", - arg = "showSpellDmgFromStr", - get = getProfileOption, - set = setProfileOptionAndClearCache, - } - end - if GetSpellInfo(30814) then - options.args.stat.args.str.args.heal = { -- Mental Quickness (Rank 3) - 2,15 - type = 'toggle', - width = "full", - name = L["Show Healing"].." ("..GetSpellInfo(30814)..")", - desc = L["Show Healing from Strength"].." ("..GetSpellInfo(30814)..")", - arg = "showHealingFromStr", - get = getProfileOption, - set = setProfileOptionAndClearCache, - } - end - if GetSpellInfo(30869) then - options.args.stat.args.int.args.dmg = { -- Nature's Blessing (Rank 3) - 3,18 - type = 'toggle', - width = "full", - name = L["Show Spell Damage"].." ("..GetSpellInfo(30869)..")", - desc = L["Show Spell Damage from Intellect"].." ("..GetSpellInfo(30869)..")", - arg = "showSpellDmgFromInt", - get = getProfileOption, - set = setProfileOptionAndClearCache, - } - end - if GetSpellInfo(30869) then - options.args.stat.args.int.args.heal = { -- Nature's Blessing (Rank 3) - 3,18 - type = 'toggle', - width = "full", - name = L["Show Healing"].." ("..GetSpellInfo(30869)..")", - desc = L["Show Healing from Intellect"].." ("..GetSpellInfo(30869)..")", - arg = "showHealingFromInt", - get = getProfileOption, - set = setProfileOptionAndClearCache, - } - end - if GetSpellInfo(51885) then - options.args.stat.args.int.args.ap = { -- Shaman: Mental Dexterity - type = 'toggle', - width = "full", - name = L["Show Attack Power"].." ("..GetSpellInfo(51885)..")", - desc = L["Show Attack Power from Intellect"].." ("..GetSpellInfo(51885)..")", - arg = "showAPFromInt", - get = getProfileOption, - set = setProfileOptionAndClearCache, - } - end + options.args.stat.args.str.args.dmg = { -- Mental Quickness (Rank 3) - 2,15 + type = 'toggle', + width = "full", + name = L["Show Spell Damage"] .. " (" .. GetSpellInfo(30814) .. ")", + desc = L["Show Spell Damage from Strength"] .. " (" .. GetSpellInfo(30814) .. ")", + arg = "showSpellDmgFromStr", + get = getProfileOption, + set = setProfileOptionAndClearCache, + } + options.args.stat.args.str.args.heal = { -- Mental Quickness (Rank 3) - 2,15 + type = 'toggle', + width = "full", + name = L["Show Healing"] .. " (" .. GetSpellInfo(30814) .. ")", + desc = L["Show Healing from Strength"] .. " (" .. GetSpellInfo(30814) .. ")", + arg = "showHealingFromStr", + get = getProfileOption, + set = setProfileOptionAndClearCache, + } + options.args.stat.args.int.args.dmg = { -- Nature's Blessing (Rank 3) - 3,18 + type = 'toggle', + width = "full", + name = L["Show Spell Damage"] .. " (" .. GetSpellInfo(30869) .. ")", + desc = L["Show Spell Damage from Intellect"] .. " (" .. GetSpellInfo(30869) .. ")", + arg = "showSpellDmgFromInt", + get = getProfileOption, + set = setProfileOptionAndClearCache, + } + options.args.stat.args.int.args.heal = { -- Nature's Blessing (Rank 3) - 3,18 + type = 'toggle', + width = "full", + name = L["Show Healing"] .. " (" .. GetSpellInfo(30869) .. ")", + desc = L["Show Healing from Intellect"] .. " (" .. GetSpellInfo(30869) .. ")", + arg = "showHealingFromInt", + get = getProfileOption, + set = setProfileOptionAndClearCache, + } + options.args.stat.args.int.args.ap = { -- Shaman: Mental Dexterity + type = 'toggle', + width = "full", + name = L["Show Attack Power"] .. " (" .. GetSpellInfo(51885) .. ")", + desc = L["Show Attack Power from Intellect"] .. " (" .. GetSpellInfo(51885) .. ")", + arg = "showAPFromInt", + get = getProfileOption, + set = setProfileOptionAndClearCache, + } elseif class == "WARLOCK" then - if GetSpellInfo(35693) then - options.args.stat.args.sta.args.dmg = { -- Demonic Knowledge (Rank 3) - 2,20 - UnitExists("pet") - type = 'toggle', - width = "full", - name = L["Show Spell Damage"].." ("..GetSpellInfo(35693)..")", - desc = L["Show Spell Damage from Stamina"].." ("..GetSpellInfo(35693)..")", - arg = "showSpellDmgFromSta", - get = getProfileOption, - set = setProfileOptionAndClearCache, - } - end - if GetSpellInfo(35693) then - options.args.stat.args.int.args.dmg = { -- Demonic Knowledge (Rank 3) - 2,20 - UnitExists("pet") - type = 'toggle', - width = "full", - name = L["Show Spell Damage"].." ("..GetSpellInfo(35693)..")", - desc = L["Show Spell Damage from Intellect"].." ("..GetSpellInfo(35693)..")", - arg = "showSpellDmgFromInt", - get = getProfileOption, - set = setProfileOptionAndClearCache, - } - end - if GetSpellInfo(28176) then - options.args.stat.args.spi.args.dmg = { -- Warlock: Fel Armor - type = 'toggle', - width = "full", - name = L["Show Spell Damage"].." ("..GetSpellInfo(28176)..")", - desc = L["Show Spell Damage from Spirit"].." ("..GetSpellInfo(28176)..")", - arg = "showSpellDmgFromSpi", - get = getProfileOption, - set = setProfileOptionAndClearCache, - } - end - if GetSpellInfo(28176) then - options.args.stat.args.spi.args.heal = { -- Warlock: Fel Armor - type = 'toggle', - width = "full", - name = L["Show Healing"].." ("..GetSpellInfo(28176)..")", - desc = L["Show Healing from Spirit"].." ("..GetSpellInfo(28176)..")", - arg = "showHealingFromSpi", - get = getProfileOption, - set = setProfileOptionAndClearCache, - } - end + options.args.stat.args.sta.args.dmg = { -- Demonic Knowledge (Rank 3) - 2,20 - UnitExists("pet") + type = 'toggle', + width = "full", + name = L["Show Spell Damage"] .. " (" .. GetSpellInfo(35693) .. ")", + desc = L["Show Spell Damage from Stamina"] .. " (" .. GetSpellInfo(35693) .. ")", + arg = "showSpellDmgFromSta", + get = getProfileOption, + set = setProfileOptionAndClearCache, + } + options.args.stat.args.int.args.dmg = { -- Demonic Knowledge (Rank 3) - 2,20 - UnitExists("pet") + type = 'toggle', + width = "full", + name = L["Show Spell Damage"] .. " (" .. GetSpellInfo(35693) .. ")", + desc = L["Show Spell Damage from Intellect"] .. " (" .. GetSpellInfo(35693) .. ")", + arg = "showSpellDmgFromInt", + get = getProfileOption, + set = setProfileOptionAndClearCache, + } + options.args.stat.args.spi.args.dmg = { -- Warlock: Fel Armor + type = 'toggle', + width = "full", + name = L["Show Spell Damage"] .. " (" .. GetSpellInfo(28176) .. ")", + desc = L["Show Spell Damage from Spirit"] .. " (" .. GetSpellInfo(28176) .. ")", + arg = "showSpellDmgFromSpi", + get = getProfileOption, + set = setProfileOptionAndClearCache, + } + options.args.stat.args.spi.args.heal = { -- Warlock: Fel Armor + type = 'toggle', + width = "full", + name = L["Show Healing"] .. " (" .. GetSpellInfo(28176) .. ")", + desc = L["Show Healing from Spirit"] .. " (" .. GetSpellInfo(28176) .. ")", + arg = "showHealingFromSpi", + get = getProfileOption, + set = setProfileOptionAndClearCache, + } elseif class == "WARRIOR" then - options.args.stat.args.armor = { -- Armored to the Teeth (Rank 3) - 2,1 - type = 'group', - order = 7, - name = L["Armor"], - desc = L["Changes the display of Armor"], - args = { - ap = { - type = 'toggle', - width = "full", - name = L["Show Attack Power"], - desc = L["Show Attack Power from Armor"], - arg = "showAPFromArmor", - get = getProfileOption, - set = setProfileOptionAndClearCache, - }, - }, - } + options.args.stat.args.armor = { -- Armored to the Teeth (Rank 3) - 2,1 + type = 'group', + order = 7, + name = L["Armor"], + desc = L["Changes the display of Armor"], + args = { + ap = { + type = 'toggle', + width = "full", + name = L["Show Attack Power"], + desc = L["Show Attack Power from Armor"], + arg = "showAPFromArmor", + get = getProfileOption, + set = setProfileOptionAndClearCache, + }, + }, + } elseif class == "DEATHKNIGHT" then - if GetSpellInfo(49410) then - options.args.stat.args.str.args.parry = { -- Death Knight: Forceful Deflection - Passive - type = 'toggle', - width = "full", - name = L["Show Parry"].." ("..GetSpellInfo(49410)..")", - desc = L["Show Parry from Strength"].." ("..GetSpellInfo(49410)..")", - arg = "showParryFromStr", - get = getProfileOption, - set = setProfileOptionAndClearCache, - } - end - options.args.stat.args.armor = { -- Bladed Armor (Rank 5) - 1,4 - type = 'group', - order = 7, - name = L["Armor"], - desc = L["Changes the display of Armor"], - args = { - ap = { - type = 'toggle', - width = "full", - name = L["Show Attack Power"], - desc = L["Show Attack Power from Armor"], - arg = "showAPFromArmor", - get = getProfileOption, - set = setProfileOptionAndClearCache, - }, - }, - } + options.args.stat.args.str.args.parry = { -- Death Knight: Forceful Deflection - Passive + type = 'toggle', + width = "full", + name = L["Show Parry"] .. " (" .. GetSpellInfo(49410) .. ")", + desc = L["Show Parry from Strength"] .. " (" .. GetSpellInfo(49410) .. ")", + arg = "showParryFromStr", + get = getProfileOption, + set = setProfileOptionAndClearCache, + } + options.args.stat.args.armor = { -- Bladed Armor (Rank 5) - 1,4 + type = 'group', + order = 7, + name = L["Armor"], + desc = L["Changes the display of Armor"], + args = { + ap = { + type = 'toggle', + width = "full", + name = L["Show Attack Power"], + desc = L["Show Attack Power from Armor"], + arg = "showAPFromArmor", + get = getProfileOption, + set = setProfileOptionAndClearCache, + }, + }, + } end function RatingBuster:SetupOptions() -- Inject profile options options.args.profile = LibStub("AceDBOptions-3.0"):GetOptionsTable(self.db) options.args.profile.order = -2 - + -- Add dual-spec support local LibDualSpec = LibStub("LibDualSpec-1.0", true) if LibDualSpec then LibDualSpec:EnhanceDatabase(self.db, "RatingBuster") LibDualSpec:EnhanceOptions(options.args.profile, self.db) end - + -- Register options table - AceConfig:RegisterOptionsTable("RatingBuster", options, {"rb", "rabu", "ratingbuster"}) - + AceConfig:RegisterOptionsTable("RatingBuster", options, { "rb", "rabu", "ratingbuster" }) + -- Setup Blizzard option frames self.optionsFrames = {} -- The ordering here matters, it determines the order in the Blizzard Interface Options @@ -2432,7 +2604,7 @@ local function copyTable(to, from) else to = {} end - for k,v in pairs(from) do + for k, v in pairs(from) do if type(k) == "table" then k = copyTable({}, k) end @@ -2462,10 +2634,11 @@ end -- API -- --------- function RatingBuster:GetStatMod(stat, school, talentGroup) - return StatLogic:GetStatMod(stat, school, talentGroup) + return StatLogic:GetStatMod(stat, school, talentGroup) end + function RatingBuster:ClearCache() - clearCache() + clearCache() end --------------------- @@ -2492,18 +2665,15 @@ function RatingBuster:OnInitialize() self.db.RegisterCallback(self, "OnProfileChanged", "OnProfileChanged") self.db.RegisterCallback(self, "OnProfileCopied", "OnProfileChanged") self.db.RegisterCallback(self, "OnProfileReset", "OnProfileChanged") - + profileDB = self.db.profile self:SetupOptions() - + -- Hook ShoppingTooltips to enable options to Hide Blizzard Item Comparisons HookSetHyperlinkCompareItem(ShoppingTooltip1) HookSetHyperlinkCompareItem(ShoppingTooltip2) HookSetHyperlinkCompareItem(ShoppingTooltip3) - HookSetHyperlinkCompareItem(ItemRefShoppingTooltip1) - HookSetHyperlinkCompareItem(ItemRefShoppingTooltip2) - HookSetHyperlinkCompareItem(ItemRefShoppingTooltip3) end -- OnEnable() called at PLAYER_LOGIN @@ -2538,15 +2708,16 @@ function RatingBuster:UNIT_AURA(event, unit) if unit ~= "player" then return end clearCache() end + --local tooltips = {} function RatingBuster:MODIFIER_STATE_CHANGED(event, key, state) -- self:Print("MODIFIER_STATE_CHANGED") -- for tooltip, link in pairs(tooltips) do - -- if tooltip:IsShown() and not strfind(tooltip:GetName(), "ompar") and not strfind(tooltip:GetName(), "Shopping") then - -- tooltip:ClearLines() - -- ShowUIPanel(tooltip) - -- tooltip:SetHyperlink(link) - -- end + -- if tooltip:IsShown() and not strfind(tooltip:GetName(), "ompar") and not strfind(tooltip:GetName(), "Shopping") then + -- tooltip:ClearLines() + -- ShowUIPanel(tooltip) + -- tooltip:SetHyperlink(link) + -- end -- end clearCache() end @@ -2628,7 +2799,8 @@ function RatingBuster.ProcessTooltip(tooltip, name, link, ...) blue = profileDB.sumGemBlue.gemID meta = profileDB.sumGemMeta.gemID end - local _, mainlink, difflink1, difflink2 = StatLogic:GetDiffID(tooltip, profileDB.sumIgnoreEnchant, profileDB.sumIgnoreGems, red, yellow, blue, meta, profileDB.sumIgnorePris) + local _, mainlink, difflink1, difflink2 = StatLogic:GetDiffID(tooltip, profileDB.sumIgnoreEnchant, + profileDB.sumIgnoreGems, red, yellow, blue, meta, profileDB.sumIgnorePris) StatLogic:GetSum(difflink1, equippedSum) equippedSum["STR"] = (equippedSum["STR"] or 0) * RatingBuster:GetStatMod("MOD_STR") equippedSum["AGI"] = (equippedSum["AGI"] or 0) * RatingBuster:GetStatMod("MOD_AGI") @@ -2646,7 +2818,7 @@ function RatingBuster.ProcessTooltip(tooltip, name, link, ...) processedParry = 0 processedMissed = 0 end - + if isModifierKeyDown[profileDB.sumGem2Toggle] and isModifierKeyDown[profileDB.sumGem2Toggle]() then EmptySocketLookup[EMPTY_SOCKET_RED] = "sumGemRed2" EmptySocketLookup[EMPTY_SOCKET_YELLOW] = "sumGemYellow2" @@ -2664,13 +2836,13 @@ function RatingBuster.ProcessTooltip(tooltip, name, link, ...) EmptySocketLookup[EMPTY_SOCKET_META] = "sumGemMeta" end -- Loop through tooltip lines starting at line 2 - local tipTextLeft = tooltip:GetName().."TextLeft" + local tipTextLeft = tooltip:GetName() .. "TextLeft" for i = 2, tooltip:NumLines() do - local fontString = _G[tipTextLeft..i] + local fontString = _G[tipTextLeft .. i] local text = fontString:GetText() if text then -- Get data from cache if available - local cacheID = text..calcLevel + local cacheID = text .. calcLevel local cacheText = cache[cacheID] if cacheText then if cacheText ~= text then @@ -2714,13 +2886,13 @@ function RatingBuster.ProcessTooltip(tooltip, name, link, ...) local _, _, id = strfind(link, "item:(%d+)") local newLine = "" if level and profileDB.showItemLevel then - newLine = newLine..L["ItemLevel: "]..level + newLine = newLine .. L["ItemLevel: "] .. level end if id and profileDB.showItemID then if newLine ~= "" then - newLine = newLine..", " + newLine = newLine .. ", " end - newLine = newLine..L["ItemID: "]..id + newLine = newLine .. L["ItemID: "] .. id end if newLine ~= "" then cache[link] = newLine @@ -2799,8 +2971,8 @@ end function RatingBuster:SplitDoJoin(text, separatorTable, tooltip) if type(separatorTable) == "table" and table.maxn(separatorTable) > 0 then local sep = tremove(separatorTable, 1) - text = gsub(text, sep, "@") - text = {strsplit("@", text)} + text = gsub(text, sep, "@") + text = { strsplit("@", text) } local processedText = {} local tempTable = {} for _, t in ipairs(text) do @@ -2816,7 +2988,6 @@ function RatingBuster:SplitDoJoin(text, separatorTable, tooltip) end end - function RatingBuster:ProcessText(text, tooltip) --self:Print(text) -- Check if test has a matching pattern @@ -2835,7 +3006,8 @@ function RatingBuster:ProcessText(text, tooltip) if (not partialtext and strfind(lowerText, stat.pattern)) or (partialtext and strfind(partialtext, stat.pattern)) then value = tonumber(value) local infoString = "" - if type(stat.id) == "number" and stat.id >= 1 and stat.id <= 26 and isModifierKeyDown[profileDB.showRatings] and isModifierKeyDown[profileDB.showRatings]() then + if type(stat.id) == "number" and stat.id >= 1 and stat.id <= 25 and isModifierKeyDown[profileDB.showRatings] and + isModifierKeyDown[profileDB.showRatings]() then -------------------- -- Combat Ratings -- -------------------- @@ -2844,12 +3016,33 @@ function RatingBuster:ProcessText(text, tooltip) --self:Print(reversedAmount..", "..amount..", "..v[2]..", "..RatingBuster.targetLevel)-- debug -- If rating is resilience, add a minus sign -- (d0.12%, p0.12%, b0.12%, m0.12%, c-0.12%) - if strID == "DODGE" and profileDB.enableAvoidanceDiminishingReturns then - infoString = format("%+.2f%%", StatLogic:GetAvoidanceGainAfterDR("DODGE", processedDodge + effect) - StatLogic:GetAvoidanceGainAfterDR("DODGE", processedDodge)) + if strID == "DEFENSE" and profileDB.defBreakDown then + effect = effect * 0.04 + processedDodge = processedDodge + effect + processedMissed = processedMissed + effect + local numStats = 5 + if GetParryChance() == 0 then + numStats = numStats - 1 + else + processedParry = processedParry + effect + end + if GetBlockChance() == 0 then + numStats = numStats - 1 + end + infoString = format("%+.2f%% x" .. numStats, effect) + elseif strID == "DODGE" and profileDB.enableAvoidanceDiminishingReturns then + infoString = format("%+.2f%%", + StatLogic:GetAvoidanceGainAfterDR("DODGE", processedDodge + effect) - + StatLogic:GetAvoidanceGainAfterDR("DODGE", processedDodge)) processedDodge = processedDodge + effect elseif strID == "PARRY" and profileDB.enableAvoidanceDiminishingReturns then - infoString = format("%+.2f%%", StatLogic:GetAvoidanceGainAfterDR("PARRY", processedParry + effect) - StatLogic:GetAvoidanceGainAfterDR("PARRY", processedParry)) + infoString = format("%+.2f%%", + StatLogic:GetAvoidanceGainAfterDR("PARRY", processedParry + effect) - + StatLogic:GetAvoidanceGainAfterDR("PARRY", processedParry)) processedParry = processedParry + effect + elseif strID == "WEAPON_SKILL" and profileDB.wpnBreakDown then + effect = effect * 0.04 + infoString = format("%+.2f%% x5", effect) elseif strID == "EXPERTISE" and profileDB.expBreakDown then effect = effect * -0.25 if profileDB.detailedConversionText then @@ -2860,36 +3053,39 @@ function RatingBuster:ProcessText(text, tooltip) elseif stat.id >= 15 and stat.id <= 17 then -- Resilience effect = effect * -1 if profileDB.detailedConversionText then - infoString = gsub(L["$value to be Crit"], "$value", format("%+.2f%%%%", effect))..", "..gsub(L["$value Crit Dmg Taken"], "$value", format("%+.2f%%%%", effect * 2))..", "..gsub(L["$value DOT Dmg Taken"], "$value", format("%+.2f%%%%", effect)) + infoString = gsub(L["$value to be Crit"], "$value", format("%+.2f%%%%", effect)) .. + ", " .. + gsub(L["$value Crit Dmg Taken"], "$value", format("%+.2f%%%%", effect * 2)) .. + ", " .. gsub(L["$value DOT Dmg Taken"], "$value", format("%+.2f%%%%", effect)) else infoString = format("%+.2f%%", effect) end - -- CR_HIT_MELEE = 6 - -- CR_CRIT_MELEE = 9 - -- CR_HASTE_MELEE = 18 - -- Crit and Haste conversions are the same for melee and haste, only hit is different + -- CR_HIT_MELEE = 6 + -- CR_CRIT_MELEE = 9 + -- CR_HASTE_MELEE = 18 + -- Crit and Haste conversions are the same for melee and haste, only hit is different elseif stat.id == 6 then if profileDB.ratingPhysical and profileDB.ratingSpell then -- stat.id + 2 = SpellID local effectSpell = StatLogic:GetEffectFromRating(value, stat.id + 2, calcLevel) - infoString = format("%+.2f%%, ", effect)..gsub(L["$value Spell"], "$value", format("%+.2f%%%%", effectSpell)) + infoString = format("%+.2f%%, ", effect) .. gsub(L["$value Spell"], "$value", format("%+.2f%%%%", effectSpell)) elseif profileDB.ratingPhysical then infoString = format("%+.2f%%", effect) elseif profileDB.ratingSpell then local effectSpell = StatLogic:GetEffectFromRating(value, stat.id + 2, calcLevel) infoString = format("%+.2f%%", effectSpell) end - -- CR_HASTE_MELEE = 18 - -- shamans7, paladins2, druids10, and death knights6 now receive 30% more melee haste from Haste Rating. + -- CR_HASTE_MELEE = 18 + -- shamans7, paladins2, druids10, and death knights6 now receive 30% more melee haste from Haste Rating. elseif stat.id == 18 then if profileDB.ratingPhysical and profileDB.ratingSpell then -- stat.id + 2 = SpellID local effectSpell = StatLogic:GetEffectFromRating(value, stat.id + 2, calcLevel) - if effectSpell == effect then - infoString = format("%+.2f%%", effect) - else - infoString = format("%+.2f%%, ", effect)..gsub(L["$value Spell"], "$value", format("%+.2f%%%%", effectSpell)) - end + if effectSpell == effect then + infoString = format("%+.2f%%", effect) + else + infoString = format("%+.2f%%, ", effect) .. gsub(L["$value Spell"], "$value", format("%+.2f%%%%", effectSpell)) + end elseif profileDB.ratingPhysical then infoString = format("%+.2f%%", effect) elseif profileDB.ratingSpell then @@ -2901,10 +3097,11 @@ function RatingBuster:ProcessText(text, tooltip) -- Build info string infoString = format("%+.2f", effect) if (stat.id > 2 and stat.id < 21) or stat.id == 25 then -- if rating is a percentage - infoString = infoString.."%" + infoString = infoString .. "%" end end - elseif stat.id == SPELL_STAT1_NAME and isModifierKeyDown[profileDB.showStats] and isModifierKeyDown[profileDB.showStats]() then + elseif stat.id == SPELL_STAT1_NAME and isModifierKeyDown[profileDB.showStats] and + isModifierKeyDown[profileDB.showStats]() then -------------- -- Strength -- -------------- @@ -2924,17 +3121,57 @@ function RatingBuster:ProcessText(text, tooltip) end end if profileDB.showBlockValueFromStr then - local effect = value * StatLogic:GetBlockValuePerStr(class) * RatingBuster:GetStatMod("MOD_BLOCK_VALUE") - if floor(abs(effect) * 10 + 0.5) > 0 then + --local effect = value * StatLogic:GetBlockValuePerStr(class) * RatingBuster:GetStatMod("MOD_BLOCK_VALUE") + --if floor(abs(effect) * 10 + 0.5) > 0 then + -- tinsert(infoTable, (gsub(L["$value Block"], "$value", format("%+.1f", effect)))) + --end + effect = value * 0.5 + if effect > 0 then tinsert(infoTable, (gsub(L["$value Block"], "$value", format("%+.1f", effect)))) end end + + ---Ascension Custom Conviction + if profileDB.showConviction then + local effect = StatLogic:GetEffectFromRating(value * 0.3, CR_CRIT_SPELL, calcLevel) + if effect > 0 then + tinsert(infoTable, (gsub(L["$value% Spell Crit"], "$value", format("%+.2f", effect)))) + end + end + + ---Ascension Custom Divine Strength + if profileDB.showDivineStrength then + local effect = StatLogic:GetEffectFromRating(value * 0.06, "MELEE_HIT_RATING", calcLevel) + local effectSpell = StatLogic:GetEffectFromRating(value * 0.06, "SPELL_HIT_RATING", calcLevel) + if effect > 0 then + tinsert(infoTable, (gsub(L["$value% Melee Hit"], "$value", format("%+.2f", effect)))) + end + if effectSpell > 0 then + tinsert(infoTable, (gsub(L["$value% Spell Hit"], "$value", format("%+.2f", effectSpell)))) + end + end + + ---Ascension Custom Iron Will + if profileDB.showIronWill then + local rating = value * 0.25 + local effect = StatLogic:GetEffectFromRating(rating, 4, calcLevel) + if profileDB.enableAvoidanceDiminishingReturns then + local effectNoDR = effect + effect = StatLogic:GetAvoidanceGainAfterDR("PARRY", processedParry + effect) - + StatLogic:GetAvoidanceGainAfterDR("PARRY", processedParry) + processedParry = processedParry + effectNoDR + end + if effect > 0 then + tinsert(infoTable, (gsub(L["$value% Parry"], "$value", format("%+.2f", effect)))) + end + end + -- Shaman: Mental Quickness (Rank 3) - 2,15 -- Paladin: Sheath of Light - if profileDB.showSpellDmgFromStr then + if profileDB.showSpellDmgFromStr then local mod = RatingBuster:GetStatMod("MOD_AP") * RatingBuster:GetStatMod("MOD_SPELL_DMG") local effect = (value * StatLogic:GetAPPerStr(class) * RatingBuster:GetStatMod("ADD_SPELL_DMG_MOD_AP") - + value * RatingBuster:GetStatMod("ADD_SPELL_DMG_MOD_STR")) * mod + + value * RatingBuster:GetStatMod("ADD_SPELL_DMG_MOD_STR")) * mod if (mod ~= 1 or statmod ~= 1) and floor(abs(effect) * 10 + 0.5) > 0 then tinsert(infoTable, (gsub(L["$value Dmg"], "$value", format("%+.1f", effect)))) elseif floor(abs(effect) + 0.5) > 0 then @@ -2943,10 +3180,10 @@ function RatingBuster:ProcessText(text, tooltip) end -- Shaman: Mental Quickness (Rank 3) - 2,15 -- Paladin: Sheath of Light - if profileDB.showHealingFromStr then - local mod = RatingBuster:GetStatMod("MOD_AP") * RatingBuster:GetStatMod("MOD_HEAL") - local effect = (value * StatLogic:GetAPPerStr(class) * RatingBuster:GetStatMod("ADD_HEAL_MOD_AP") - + value * RatingBuster:GetStatMod("ADD_HEAL_MOD_STR")) * mod + if profileDB.showHealingFromStr then + local mod = RatingBuster:GetStatMod("MOD_AP") * RatingBuster:GetStatMod("MOD_HEALING") + local effect = (value * StatLogic:GetAPPerStr(class) * RatingBuster:GetStatMod("ADD_HEALING_MOD_AP") + + value * RatingBuster:GetStatMod("ADD_HEALING_MOD_STR")) * mod if (mod ~= 1 or statmod ~= 1) and floor(abs(effect) * 10 + 0.5) > 0 then tinsert(infoTable, (gsub(L["$value Heal"], "$value", format("%+.1f", effect)))) elseif floor(abs(effect) + 0.5) > 0 then @@ -2954,23 +3191,25 @@ function RatingBuster:ProcessText(text, tooltip) end end if profileDB.showParryFromStr then -- Death Knight: Forceful Deflection - Passive - local rating = value * RatingBuster:GetStatMod("ADD_PARRY_RATING_MOD_STR") + local rating = value * RatingBuster:GetStatMod("ADD_CR_PARRY_MOD_STR") local effect = StatLogic:GetEffectFromRating(rating, 4, calcLevel) if profileDB.enableAvoidanceDiminishingReturns then local effectNoDR = effect - effect = StatLogic:GetAvoidanceGainAfterDR("PARRY", processedParry + effect) - StatLogic:GetAvoidanceGainAfterDR("PARRY", processedParry) + effect = StatLogic:GetAvoidanceGainAfterDR("PARRY", processedParry + effect) - + StatLogic:GetAvoidanceGainAfterDR("PARRY", processedParry) processedParry = processedParry + effectNoDR end if effect > 0 then tinsert(infoTable, (gsub(L["$value% Parry"], "$value", format("%+.2f", effect)))) end else - local rating = value * RatingBuster:GetStatMod("ADD_PARRY_RATING_MOD_STR") + local rating = value * RatingBuster:GetStatMod("ADD_CR_PARRY_MOD_STR") local effect = StatLogic:GetEffectFromRating(rating, 4, calcLevel) processedParry = processedParry + effect end infoString = strjoin(", ", unpack(infoTable)) - elseif stat.id == SPELL_STAT2_NAME and isModifierKeyDown[profileDB.showStats] and isModifierKeyDown[profileDB.showStats]() then + elseif stat.id == SPELL_STAT2_NAME and isModifierKeyDown[profileDB.showStats] and + isModifierKeyDown[profileDB.showStats]() then ------------- -- Agility -- ------------- @@ -3006,9 +3245,16 @@ function RatingBuster:ProcessText(text, tooltip) end if profileDB.showDodgeFromAgi and (calcLevel == playerLevel) then local effect = StatLogic:GetDodgeFromAgi(value) + local effectNR = 0 + + if profileDB.showNaturalReaction then + effect = effect + StatLogic:GetEffectFromRating(value * 0.25, "DODGE_RATING", calcLevel) + end + if profileDB.enableAvoidanceDiminishingReturns then local effectNoDR = effect - effect = StatLogic:GetAvoidanceGainAfterDR("DODGE", processedDodge + effect) - StatLogic:GetAvoidanceGainAfterDR("DODGE", processedDodge) + effect = StatLogic:GetAvoidanceGainAfterDR("DODGE", processedDodge + effect) - + StatLogic:GetAvoidanceGainAfterDR("DODGE", processedDodge) processedDodge = processedDodge + effectNoDR end if effect > 0 then @@ -3025,14 +3271,36 @@ function RatingBuster:ProcessText(text, tooltip) end end if profileDB.showHealingFromAgi then - local mod = RatingBuster:GetStatMod("MOD_HEAL") - local effect = value * RatingBuster:GetStatMod("ADD_HEAL_MOD_AGI") * mod + local mod = RatingBuster:GetStatMod("MOD_HEALING") + local effect = value * RatingBuster:GetStatMod("ADD_HEALING_MOD_AGI") * mod if floor(abs(effect) * 10 + 0.5) > 0 then tinsert(infoTable, (gsub(L["$value Heal"], "$value", format("%+.1f", effect)))) end end + + --Ascension Custom Thundering Strikes + if profileDB.showThunderingStrikes then + local effect = StatLogic:GetEffectFromRating(value * 0.3, CR_CRIT_SPELL, calcLevel) + if effect > 0 then + tinsert(infoTable, (gsub(L["$value% Spell Crit"], "$value", format("%+.2f", effect)))) + end + end + + ---Ascension Custom Shamanistic Focus/Combat Experience + if (profileDB.showShamanisticFocus or profileDB.showCombatExperience) then + local effect = StatLogic:GetEffectFromRating(value * 0.1, "SPELL_HIT_RATING", calcLevel) + if (profileDB.showShamanisticFocus and profileDB.showCombatExperience) then + effect = effect * 2 + end + if effect > 0 then + tinsert(infoTable, (gsub(L["$value% Spell Hit"], "$value", format("%+.2f", effect)))) + end + end + + infoString = strjoin(", ", unpack(infoTable)) - elseif stat.id == SPELL_STAT3_NAME and isModifierKeyDown[profileDB.showStats] and isModifierKeyDown[profileDB.showStats]() then + elseif stat.id == SPELL_STAT3_NAME and isModifierKeyDown[profileDB.showStats] and + isModifierKeyDown[profileDB.showStats]() then ------------- -- Stamina -- ------------- @@ -3054,24 +3322,24 @@ function RatingBuster:ProcessText(text, tooltip) -- "ADD_SPELL_DMG_MOD_AP" -- Warlock: Demonic Knowledge if profileDB.showSpellDmgFromSta then local mod = RatingBuster:GetStatMod("MOD_SPELL_DMG") - local effect = value * mod * (RatingBuster:GetStatMod("ADD_SPELL_DMG_MOD_STA") - + RatingBuster:GetStatMod("ADD_SPELL_DMG_MOD_PET_STA") * RatingBuster:GetStatMod("ADD_PET_STA_MOD_STA")) + local effect = value * mod * (RatingBuster:GetStatMod("ADD_SPELL_DMG_MOD_STA") + + RatingBuster:GetStatMod("ADD_SPELL_DMG_MOD_PET_STA") * RatingBuster:GetStatMod("ADD_PET_STA_MOD_STA")) if floor(abs(effect) * 10 + 0.5) > 0 then tinsert(infoTable, (gsub(L["$value Dmg"], "$value", format("%+.1f", effect)))) end end - -- "ADD_HEAL_MOD_STA" -- Warlock: Demonic Knowledge + -- "ADD_HEALING_MOD_STA" -- Warlock: Demonic Knowledge if profileDB.showHealingFromSta then - local mod = RatingBuster:GetStatMod("MOD_HEAL") - local effect = value * RatingBuster:GetStatMod("ADD_HEAL_MOD_STA") * mod + local mod = RatingBuster:GetStatMod("MOD_HEALING") + local effect = value * RatingBuster:GetStatMod("ADD_HEALING_MOD_STA") * mod if floor(abs(effect) * 10 + 0.5) > 0 then tinsert(infoTable, (gsub(L["$value Heal"], "$value", format("%+.1f", effect)))) end end -- "ADD_AP_MOD_STA" -- Hunter: Hunter vs. Wild - if profileDB.showAPFromSta then + if profileDB.showHunterVSWild then local mod = RatingBuster:GetStatMod("MOD_AP") - local effect = value * RatingBuster:GetStatMod("ADD_AP_MOD_STA") * mod + local effect = value * 0.2 if (mod ~= 1 or statmod ~= 1) and floor(abs(effect) * 10 + 0.5) > 0 then tinsert(infoTable, (gsub(L["$value AP"], "$value", format("%+.1f", effect)))) elseif floor(abs(effect) + 0.5) > 0 then @@ -3079,7 +3347,8 @@ function RatingBuster:ProcessText(text, tooltip) end end infoString = strjoin(", ", unpack(infoTable)) - elseif stat.id == SPELL_STAT4_NAME and isModifierKeyDown[profileDB.showStats] and isModifierKeyDown[profileDB.showStats]() then + elseif stat.id == SPELL_STAT4_NAME and isModifierKeyDown[profileDB.showStats] and + isModifierKeyDown[profileDB.showStats]() then --------------- -- Intellect -- --------------- @@ -3106,15 +3375,15 @@ function RatingBuster:ProcessText(text, tooltip) end if profileDB.showSpellDmgFromInt then local mod = RatingBuster:GetStatMod("MOD_SPELL_DMG") - local effect = value * mod * (RatingBuster:GetStatMod("ADD_SPELL_DMG_MOD_INT") - + RatingBuster:GetStatMod("ADD_SPELL_DMG_MOD_PET_INT") * RatingBuster:GetStatMod("ADD_PET_INT_MOD_INT")) + local effect = value * mod * (RatingBuster:GetStatMod("ADD_SPELL_DMG_MOD_INT") + + RatingBuster:GetStatMod("ADD_SPELL_DMG_MOD_PET_INT") * RatingBuster:GetStatMod("ADD_PET_INT_MOD_INT")) if floor(abs(effect) * 10 + 0.5) > 0 then tinsert(infoTable, (gsub(L["$value Dmg"], "$value", format("%+.1f", effect)))) end end if profileDB.showHealingFromInt then - local mod = RatingBuster:GetStatMod("MOD_HEAL") - local effect = value * RatingBuster:GetStatMod("ADD_HEAL_MOD_INT") * mod + local mod = RatingBuster:GetStatMod("MOD_HEALING") + local effect = value * RatingBuster:GetStatMod("ADD_HEALING_MOD_INT") * mod if floor(abs(effect) * 10 + 0.5) > 0 then tinsert(infoTable, (gsub(L["$value Heal"], "$value", format("%+.1f", effect)))) end @@ -3123,9 +3392,10 @@ function RatingBuster:ProcessText(text, tooltip) local _, int = UnitStat("player", 4) local _, spi = UnitStat("player", 5) local effect = value * RatingBuster:GetStatMod("ADD_MANA_REG_MOD_INT") - + (StatLogic:GetNormalManaRegenFromSpi(spi, int + value, calcLevel) - - StatLogic:GetNormalManaRegenFromSpi(spi, int, calcLevel)) * RatingBuster:GetStatMod("ADD_MANA_REG_MOD_MANA_REG_NOT_CASTING") - + value * 15 * RatingBuster:GetStatMod("MOD_MANA") * RatingBuster:GetStatMod("ADD_MANA_REG_MOD_MANA") -- Replenishment + + (StatLogic:GetNormalManaRegenFromSpi(spi, int + value, calcLevel) + - StatLogic:GetNormalManaRegenFromSpi(spi, int, calcLevel)) * + RatingBuster:GetStatMod("ADD_MANA_REG_MOD_NORMAL_MANA_REG") + + value * 15 * RatingBuster:GetStatMod("MOD_MANA") * RatingBuster:GetStatMod("ADD_MANA_REG_MOD_MANA") -- Replenishment if floor(abs(effect) * 10 + 0.5) > 0 then tinsert(infoTable, (gsub(L["$value MP5"], "$value", format("%+.1f", effect)))) end @@ -3134,9 +3404,9 @@ function RatingBuster:ProcessText(text, tooltip) local _, int = UnitStat("player", 4) local _, spi = UnitStat("player", 5) local effect = value * RatingBuster:GetStatMod("ADD_MANA_REG_MOD_INT") - + StatLogic:GetNormalManaRegenFromSpi(spi, int + value, calcLevel) - - StatLogic:GetNormalManaRegenFromSpi(spi, int, calcLevel) - + value * 15 * RatingBuster:GetStatMod("MOD_MANA") * RatingBuster:GetStatMod("ADD_MANA_REG_MOD_MANA") + + StatLogic:GetNormalManaRegenFromSpi(spi, int + value, calcLevel) + - StatLogic:GetNormalManaRegenFromSpi(spi, int, calcLevel) + + value * 15 * RatingBuster:GetStatMod("MOD_MANA") * RatingBuster:GetStatMod("ADD_MANA_REG_MOD_MANA") if floor(abs(effect) * 10 + 0.5) > 0 then tinsert(infoTable, (gsub(L["$value MP5(NC)"], "$value", format("%+.1f", effect)))) end @@ -3165,7 +3435,8 @@ function RatingBuster:ProcessText(text, tooltip) end end infoString = strjoin(", ", unpack(infoTable)) - elseif stat.id == SPELL_STAT5_NAME and isModifierKeyDown[profileDB.showStats] and isModifierKeyDown[profileDB.showStats]() then + elseif stat.id == SPELL_STAT5_NAME and isModifierKeyDown[profileDB.showStats] and + isModifierKeyDown[profileDB.showStats]() then ------------ -- Spirit -- ------------ @@ -3176,7 +3447,7 @@ function RatingBuster:ProcessText(text, tooltip) end local infoTable = {} if profileDB.showMP5FromSpi then - local mod = RatingBuster:GetStatMod("ADD_MANA_REG_MOD_MANA_REG_NOT_CASTING") + local mod = RatingBuster:GetStatMod("ADD_MANA_REG_MOD_NORMAL_MANA_REG") local effect = StatLogic:GetNormalManaRegenFromSpi(value, nil, calcLevel) * mod if floor(abs(effect) * 10 + 0.5) > 0 then tinsert(infoTable, (gsub(L["$value MP5"], "$value", format("%+.1f", effect)))) @@ -3194,16 +3465,19 @@ function RatingBuster:ProcessText(text, tooltip) tinsert(infoTable, (gsub(L["$value HP5"], "$value", format("%+.1f", effect)))) end end + -- "ADD_SCHOOL_SP_MOD_SPI" -- Priest: Twisted Faith, Warlock: Fel Armor if profileDB.showSpellDmgFromSpi then local mod = RatingBuster:GetStatMod("MOD_SPELL_DMG") - local effect = value * (RatingBuster:GetStatMod("ADD_SPELL_DMG_MOD_SPI")) * mod + local effect = value * + (RatingBuster:GetStatMod("ADD_SPELL_DMG_MOD_SPI") + RatingBuster:GetStatMod("ADD_SCHOOL_SP_MOD_SPI", "SHADOW")) + * mod if floor(abs(effect) * 10 + 0.5) > 0 then tinsert(infoTable, (gsub(L["$value Dmg"], "$value", format("%+.1f", effect)))) end end if profileDB.showHealingFromSpi then - local mod = RatingBuster:GetStatMod("MOD_HEAL") - local effect = value * RatingBuster:GetStatMod("ADD_HEAL_MOD_SPI") * mod + local mod = RatingBuster:GetStatMod("MOD_HEALING") + local effect = value * RatingBuster:GetStatMod("ADD_HEALING_MOD_SPI") * mod if floor(abs(effect) * 10 + 0.5) > 0 then tinsert(infoTable, (gsub(L["$value Heal"], "$value", format("%+.1f", effect)))) end @@ -3215,8 +3489,34 @@ function RatingBuster:ProcessText(text, tooltip) tinsert(infoTable, (gsub(L["$value% Spell Crit"], "$value", format("%+.2f", effect)))) end end + + --Ascension Custom Spirit Crit + if (profileDB.showMeditation or profileDB.showMoltenArmor or profileDB.showSpiritTap) then + local mod = 0 + if profileDB.showMeditation then + mod = mod + 0.15 + end + if profileDB.showSpiritTap then + mod = mod + 0.2 + end + if profileDB.showMoltenArmor then + mod = mod + 0.05 + end + + local effect = StatLogic:GetEffectFromRating(value * mod, CR_CRIT_SPELL, calcLevel) + if effect > 0 then + tinsert(infoTable, (gsub(L["$value% Spell Crit"], "$value", format("%+.2f", effect)))) + end + end + infoString = strjoin(", ", unpack(infoTable)) - elseif profileDB.showAPFromArmor and stat.id == ARMOR and isModifierKeyDown[profileDB.showStats] and isModifierKeyDown[profileDB.showStats]() then + + + + + + elseif profileDB.showAPFromArmor and stat.id == ARMOR and isModifierKeyDown[profileDB.showStats] and + isModifierKeyDown[profileDB.showStats]() then ----------- -- Armor -- ----------- @@ -3229,35 +3529,35 @@ function RatingBuster:ProcessText(text, tooltip) end local infoTable = {} --if profileDB.showAPFromArmor then - local effect = value * RatingBuster:GetStatMod("ADD_AP_MOD_ARMOR") * RatingBuster:GetStatMod("MOD_AP") - if floor(abs(effect) * 10 + 0.5) > 0 then - tinsert(infoTable, (gsub(L["$value AP"], "$value", format("%+.1f", effect)))) - end + local effect = value * RatingBuster:GetStatMod("ADD_AP_MOD_ARMOR") * RatingBuster:GetStatMod("MOD_AP") + if floor(abs(effect) * 10 + 0.5) > 0 then + tinsert(infoTable, (gsub(L["$value AP"], "$value", format("%+.1f", effect)))) + end --end infoString = strjoin(", ", unpack(infoTable)) end if infoString ~= "" then -- Add parenthesis - infoString = "("..infoString..")" + infoString = "(" .. infoString .. ")" -- Add Color if profileDB.enableTextColor then - infoString = profileDB.textColor.hex..infoString..currentColorCode + infoString = profileDB.textColor.hex .. infoString .. currentColorCode end -- Build replacement string if num.addInfo == "AfterNumber" then -- Add after number infoString = gsub(infoString, "%%", "%%%%%%%%") -- sub "%" with "%%%%" - infoString = gsub(strsub(text, s, e), "%d+", "%0 "..infoString, 1) -- sub "33" with "33 (3.33%)" + infoString = gsub(strsub(text, s, e), "%d+", "%0 " .. infoString, 1) -- sub "33" with "33 (3.33%)" else -- Add after stat infoString = gsub(infoString, "%%", "%%%%") s, e = strfind(lowerText, stat.pattern) - infoString = "%0 "..infoString + infoString = "%0 " .. infoString end -- Insert info into text - RusLocalstr = gsub(strsub(text, s, e),"%(","%%(") - RusLocalstr = gsub(RusLocalstr,"%)","%%)") + RusLocalstr = gsub(strsub(text, s, e), "%(", "%%(") + RusLocalstr = gsub(RusLocalstr, "%)", "%%)") --RatingBuster:Print("Итоговая строка состоит из " .. text .. " в котором " .. strsub(text, s, e) .. " меняется на " .. infoString ..", в итоге " .. gsub(text, RusLocalstr, infoString, 1)) --RatingBuster:Print(RusLocalstr) - --RatingBuster:Print("-----------------------") + --RatingBuster:Print("-----------------------") return (gsub(text, RusLocalstr, infoString, 1)) -- because gsub has 2 return values, but we only want 1 end return text @@ -3268,7 +3568,6 @@ function RatingBuster:ProcessText(text, tooltip) return text end - -- Color Numbers local GREEN_FONT_COLOR_CODE = GREEN_FONT_COLOR_CODE -- "|cff20ff20" Green local HIGHLIGHT_FONT_COLOR_CODE = HIGHLIGHT_FONT_COLOR_CODE -- "|cffffffff" White @@ -3276,11 +3575,11 @@ local RED_FONT_COLOR_CODE = RED_FONT_COLOR_CODE -- "|cffffffff" White local FONT_COLOR_CODE_CLOSE = FONT_COLOR_CODE_CLOSE -- "|r" local function colorNum(text, num) if num > 0 then - return GREEN_FONT_COLOR_CODE..text..FONT_COLOR_CODE_CLOSE + return GREEN_FONT_COLOR_CODE .. text .. FONT_COLOR_CODE_CLOSE elseif num < 0 then - return RED_FONT_COLOR_CODE..text..FONT_COLOR_CODE_CLOSE + return RED_FONT_COLOR_CODE .. text .. FONT_COLOR_CODE_CLOSE else - return HIGHLIGHT_FONT_COLOR_CODE..text..FONT_COLOR_CODE_CLOSE + return HIGHLIGHT_FONT_COLOR_CODE .. text .. FONT_COLOR_CODE_CLOSE end end @@ -3329,7 +3628,8 @@ local summaryCalcData = { { option = "sumHP", name = "HEALTH", - func = function(sum, sumType, link) return ((sum["HEALTH"] or 0) + (sum["STA"] * 10)) * RatingBuster:GetStatMod("MOD_HEALTH") end, + func = function(sum, sumType, link) return ((sum["HEALTH"] or 0) + (sum["STA"] * 10)) * + RatingBuster:GetStatMod("MOD_HEALTH") end, }, -- Intellect - INT { @@ -3341,7 +3641,8 @@ local summaryCalcData = { { option = "sumMP", name = "MANA", - func = function(sum, sumType, link) return ((sum["MANA"] or 0) + (sum["INT"] * 15)) * RatingBuster:GetStatMod("MOD_MANA") end, + func = function(sum, sumType, link) return ((sum["MANA"] or 0) + (sum["INT"] * 15)) * + RatingBuster:GetStatMod("MOD_MANA") end, }, -- Spirit - SPI { @@ -3359,7 +3660,8 @@ local summaryCalcData = { { option = "sumHP5OC", name = "HEALTH_REG_OUT_OF_COMBAT", - func = function(sum, sumType, link) return (sum["HEALTH_REG"] or 0) + StatLogic:GetHealthRegenFromSpi(sum["SPI"], class) end, + func = function(sum, sumType, link) return (sum["HEALTH_REG"] or 0) + + StatLogic:GetHealthRegenFromSpi(sum["SPI"], class) end, }, -- Mana Regen - MANA_REG, SPI, INT { @@ -3369,10 +3671,11 @@ local summaryCalcData = { local _, int = UnitStat("player", 4) local _, spi = UnitStat("player", 5) return (sum["MANA_REG"] or 0) - + (sum["INT"] * RatingBuster:GetStatMod("ADD_MANA_REG_MOD_INT")) - + (StatLogic:GetNormalManaRegenFromSpi(spi + sum["SPI"], int + sum["INT"], calcLevel) - - StatLogic:GetNormalManaRegenFromSpi(spi, int, calcLevel)) * RatingBuster:GetStatMod("ADD_MANA_REG_MOD_MANA_REG_NOT_CASTING") - + summaryFunc["MANA"](sum, sumType, link) * RatingBuster:GetStatMod("ADD_MANA_REG_MOD_MANA") + + (sum["INT"] * RatingBuster:GetStatMod("ADD_MANA_REG_MOD_INT")) + + (StatLogic:GetNormalManaRegenFromSpi(spi + sum["SPI"], int + sum["INT"], calcLevel) + - StatLogic:GetNormalManaRegenFromSpi(spi, int, calcLevel)) * + RatingBuster:GetStatMod("ADD_MANA_REG_MOD_NORMAL_MANA_REG") + + summaryFunc["MANA"](sum, sumType, link) * RatingBuster:GetStatMod("ADD_MANA_REG_MOD_MANA") end, }, -- Mana Regen while Not casting - MANA_REG, SPI, INT @@ -3383,26 +3686,27 @@ local summaryCalcData = { local _, int = UnitStat("player", 4) local _, spi = UnitStat("player", 5) return (sum["MANA_REG"] or 0) - + (sum["INT"] * RatingBuster:GetStatMod("ADD_MANA_REG_MOD_INT")) - + StatLogic:GetNormalManaRegenFromSpi(spi + sum["SPI"], int + sum["INT"], calcLevel) - - StatLogic:GetNormalManaRegenFromSpi(spi, int, calcLevel) - + summaryFunc["MANA"](sum, sumType, link) * RatingBuster:GetStatMod("ADD_MANA_REG_MOD_MANA") + + (sum["INT"] * RatingBuster:GetStatMod("ADD_MANA_REG_MOD_INT")) + + StatLogic:GetNormalManaRegenFromSpi(spi + sum["SPI"], int + sum["INT"], calcLevel) + - StatLogic:GetNormalManaRegenFromSpi(spi, int, calcLevel) + + summaryFunc["MANA"](sum, sumType, link) * RatingBuster:GetStatMod("ADD_MANA_REG_MOD_MANA") end, }, --------------------- -- Physical Damage -- --------------------- - -- Attack Power - AP, STR, AGI. + -- Attack Power - AP, STR, AGI. -- "ADD_AP_MOD_STA" -- Hunter: Hunter vs. Wild -- "ADD_AP_MOD_ARMOR" -- Death Knight: Bladed Armor -- "ADD_AP_MOD_INT" -- Shaman: Mental Dexterity + -- "ADD_AP_MOD_SPELL_DMG" -- Warlock: Metamorphosis { option = "sumAP", name = "AP", func = function(sum, sumType, link) - local ap = (sum["AP"] or 0) - + (sum["STR"] * StatLogic:GetAPPerStr(class)) - + (sum["AGI"] * StatLogic:GetAPPerAgi(class)) + local ap = (sum["AP"] or 0) + + (sum["STR"] * StatLogic:GetAPPerStr(class)) + + (sum["AGI"] * StatLogic:GetAPPerAgi(class)) if RatingBuster:GetStatMod("ADD_AP_MOD_STA") ~= 0 then ap = ap + (sum["STA"] * RatingBuster:GetStatMod("ADD_AP_MOD_STA")) end @@ -3412,6 +3716,14 @@ local summaryCalcData = { if RatingBuster:GetStatMod("ADD_AP_MOD_INT") ~= 0 then ap = ap + (sum["INT"] * RatingBuster:GetStatMod("ADD_AP_MOD_INT")) end + if RatingBuster:GetStatMod("ADD_AP_MOD_SPELL_DMG") ~= 0 then + local spellDmg = ((sum["SPELL_DMG"] or 0) + + (sum["STA"] * RatingBuster:GetStatMod("ADD_SPELL_DMG_MOD_STA")) + + (sum["INT"] * RatingBuster:GetStatMod("ADD_SPELL_DMG_MOD_INT")) + + (sum["SPI"] * RatingBuster:GetStatMod("ADD_SPELL_DMG_MOD_SPI")) + ) * RatingBuster:GetStatMod("MOD_SPELL_DMG") + ap = ap + (spellDmg * RatingBuster:GetStatMod("ADD_AP_MOD_SPELL_DMG")) + end -- Druid: Predatory Strikes 2,10: Increases 7%/14%/20% of any attack power on your equipped weapon. local p = 0 if class == "DRUID" and select(5, GetTalentInfo(2, 10)) > 0 and weaponItemEquipLoc[select(9, GetItemInfo(link))] then @@ -3434,8 +3746,8 @@ local summaryCalcData = { name = "RANGED_AP", func = function(sum, sumType, link) local rap = (sum["RANGED_AP"] or 0) - + (sum["AP"] or 0) - + (sum["AGI"] * StatLogic:GetRAPPerAgi(class)) + + (sum["AP"] or 0) + + (sum["AGI"] * StatLogic:GetRAPPerAgi(class)) if RatingBuster:GetStatMod("ADD_RANGED_AP_MOD_INT") ~= 0 then rap = rap + (sum["INT"] * RatingBuster:GetStatMod("ADD_RANGED_AP_MOD_INT")) end @@ -3448,6 +3760,14 @@ local summaryCalcData = { if RatingBuster:GetStatMod("ADD_AP_MOD_INT") ~= 0 then rap = rap + (sum["INT"] * RatingBuster:GetStatMod("ADD_AP_MOD_INT")) end + if RatingBuster:GetStatMod("ADD_AP_MOD_SPELL_DMG") ~= 0 then + local spellDmg = ((sum["SPELL_DMG"] or 0) + + (sum["STA"] * RatingBuster:GetStatMod("ADD_SPELL_DMG_MOD_STA")) + + (sum["INT"] * RatingBuster:GetStatMod("ADD_SPELL_DMG_MOD_INT")) + + (sum["SPI"] * RatingBuster:GetStatMod("ADD_SPELL_DMG_MOD_SPI")) + ) * RatingBuster:GetStatMod("MOD_SPELL_DMG") + rap = rap + (spellDmg * RatingBuster:GetStatMod("ADD_AP_MOD_SPELL_DMG")) + end return rap * (RatingBuster:GetStatMod("MOD_RANGED_AP") + RatingBuster:GetStatMod("MOD_AP") - 1) end, }, @@ -3473,12 +3793,18 @@ local summaryCalcData = { return fap end, }, - -- Hit Chance - MELEE_HIT_RATING + -- Hit Chance - MELEE_HIT_RATING, WEAPON_RATING { option = "sumHit", name = "MELEE_HIT", func = function(sum, sumType, link) local s = 0 + for id, v in pairs(sum) do + if strsub(id, -13) == "WEAPON_RATING" then + s = s + StatLogic:GetEffectFromRating(v, CR_WEAPON_SKILL, calcLevel) * 0.04 + break + end + end return s + StatLogic:GetEffectFromRating((sum["MELEE_HIT_RATING"] or 0), "MELEE_HIT_RATING", calcLevel) end, ispercent = true, @@ -3489,14 +3815,20 @@ local summaryCalcData = { name = "MELEE_HIT_RATING", func = function(sum, sumType, link) return (sum["MELEE_HIT_RATING"] or 0) end, }, - -- Ranged Hit Chance - MELEE_HIT_RATING, RANGED_HIT_RATING + -- Ranged Hit Chance - MELEE_HIT_RATING, WEAPON_RATING, RANGED_HIT_RATING { option = "sumRangedHit", name = "RANGED_HIT", func = function(sum, sumType, link) local s = 0 + for id, v in pairs(sum) do + if strsub(id, -13) == "WEAPON_RATING" then + s = s + StatLogic:GetEffectFromRating(v, CR_WEAPON_SKILL, calcLevel) * 0.04 + break + end + end return s + StatLogic:GetEffectFromRating((sum["MELEE_HIT_RATING"] or 0), "MELEE_HIT_RATING", calcLevel) - + StatLogic:GetEffectFromRating((sum["RANGED_HIT_RATING"] or 0), "RANGED_HIT_RATING", calcLevel) + + StatLogic:GetEffectFromRating((sum["RANGED_HIT_RATING"] or 0), "RANGED_HIT_RATING", calcLevel) end, ispercent = true, }, @@ -3506,14 +3838,20 @@ local summaryCalcData = { name = "RANGED_HIT_RATING", func = function(sum, sumType, link) return (sum["MELEE_HIT_RATING"] or 0) + (sum["RANGED_HIT_RATING"] or 0) end, }, - -- Crit Chance - MELEE_CRIT_RATING, AGI + -- Crit Chance - MELEE_CRIT_RATING, WEAPON_RATING, AGI { option = "sumCrit", name = "MELEE_CRIT", func = function(sum, sumType, link) local s = 0 + for id, v in pairs(sum) do + if strsub(id, -13) == "WEAPON_RATING" then + s = s + StatLogic:GetEffectFromRating(v, CR_WEAPON_SKILL, calcLevel) * 0.04 + break + end + end return s + StatLogic:GetEffectFromRating((sum["MELEE_CRIT_RATING"] or 0), "MELEE_CRIT_RATING", calcLevel) - + StatLogic:GetCritFromAgi(sum["AGI"], class, calcLevel) + + StatLogic:GetCritFromAgi(sum["AGI"], class, calcLevel) end, ispercent = true, }, @@ -3523,15 +3861,21 @@ local summaryCalcData = { name = "MELEE_CRIT_RATING", func = function(sum, sumType, link) return (sum["MELEE_CRIT_RATING"] or 0) end, }, - -- Ranged Crit Chance - MELEE_CRIT_RATING, AGI, RANGED_CRIT_RATING + -- Ranged Crit Chance - MELEE_CRIT_RATING, WEAPON_RATING, AGI, RANGED_CRIT_RATING { option = "sumRangedCrit", name = "RANGED_CRIT", func = function(sum, sumType, link) local s = 0 + for id, v in pairs(sum) do + if strsub(id, -13) == "WEAPON_RATING" then + s = s + StatLogic:GetEffectFromRating(v, CR_WEAPON_SKILL, calcLevel) * 0.04 + break + end + end return s + StatLogic:GetEffectFromRating((sum["MELEE_CRIT_RATING"] or 0), "MELEE_CRIT_RATING", calcLevel) - + StatLogic:GetEffectFromRating((sum["RANGED_CRIT_RATING"] or 0), "RANGED_CRIT_RATING", calcLevel) - + StatLogic:GetCritFromAgi(sum["AGI"], class, calcLevel) + + StatLogic:GetEffectFromRating((sum["RANGED_CRIT_RATING"] or 0), "RANGED_CRIT_RATING", calcLevel) + + StatLogic:GetCritFromAgi(sum["AGI"], class, calcLevel) end, ispercent = true, }, @@ -3545,7 +3889,8 @@ local summaryCalcData = { { option = "sumHaste", name = "MELEE_HASTE", - func = function(sum, sumType, link) return StatLogic:GetEffectFromRating((sum["MELEE_HASTE_RATING"] or 0), "MELEE_HASTE_RATING", calcLevel) end, + func = function(sum, sumType, link) return StatLogic:GetEffectFromRating((sum["MELEE_HASTE_RATING"] or 0), + "MELEE_HASTE_RATING", calcLevel) end, ispercent = true, }, -- Haste Rating - MELEE_HASTE_RATING @@ -3560,7 +3905,7 @@ local summaryCalcData = { name = "RANGED_HASTE", func = function(sum, sumType, link) return StatLogic:GetEffectFromRating((sum["MELEE_HASTE_RATING"] or 0), "MELEE_HASTE_RATING", calcLevel) - + StatLogic:GetEffectFromRating((sum["RANGED_HASTE_RATING"] or 0), "RANGED_HASTE_RATING", calcLevel) + + StatLogic:GetEffectFromRating((sum["RANGED_HASTE_RATING"] or 0), "RANGED_HASTE_RATING", calcLevel) end, ispercent = true, }, @@ -3574,7 +3919,8 @@ local summaryCalcData = { { option = "sumExpertise", name = "EXPERTISE", - func = function(sum, sumType, link) return StatLogic:GetEffectFromRating((sum["EXPERTISE_RATING"] or 0), "EXPERTISE_RATING", calcLevel) end, + func = function(sum, sumType, link) return StatLogic:GetEffectFromRating((sum["EXPERTISE_RATING"] or 0), + "EXPERTISE_RATING", calcLevel) end, }, -- Expertise Rating - EXPERTISE_RATING { @@ -3582,44 +3928,78 @@ local summaryCalcData = { name = "EXPERTISE_RATING", func = function(sum, sumType, link) return (sum["EXPERTISE_RATING"] or 0) end, }, - -- Mastery - MASTERY_RATING + -- Armor Penetration - ARMOR_PENETRATION_RATING { - option = "sumMastery", - name = "MASTERY", - func = function(sum, sumType, link) return StatLogic:GetEffectFromRating((sum["MASTERY_RATING"] or 0), "MASTERY_RATING", calcLevel) end, + option = "sumArmorPenetration", + name = "ARMOR_PENETRATION", + func = function(sum, sumType, link) return StatLogic:GetEffectFromRating((sum["ARMOR_PENETRATION_RATING"] or 0), + "ARMOR_PENETRATION_RATING", calcLevel) end, + ispercent = true, }, - -- Mastery Rating - MASTERY_RATING + -- Armor Penetration Rating - ARMOR_PENETRATION_RATING { - option = "sumMasteryRating", - name = "MASTERY_RATING", - func = function(sum, sumType, link) return (sum["MASTERY_RATING"] or 0) end, + option = "sumArmorPenetrationRating", + name = "ARMOR_PENETRATION_RATING", + func = function(sum, sumType, link) return (sum["ARMOR_PENETRATION_RATING"] or 0) end, }, - -- Dodge Neglect - EXPERTISE_RATING + -- Dodge Neglect - EXPERTISE_RATING, WEAPON_RATING -- 2.3.0 { option = "sumDodgeNeglect", name = "DODGE_NEGLECT", func = function(sum, sumType, link) - local s = StatLogic:GetEffectFromRating((sum["EXPERTISE_RATING"] or 0), "EXPERTISE_RATING", calcLevel) * 0.25 + local s = 0 + for id, v in pairs(sum) do + if strsub(id, -13) == "WEAPON_RATING" then + s = StatLogic:GetEffectFromRating(v, CR_WEAPON_SKILL, calcLevel) * 0.04 + end + end + s = s + StatLogic:GetEffectFromRating((sum["EXPERTISE_RATING"] or 0), "EXPERTISE_RATING", calcLevel) * 0.25 return s end, ispercent = true, }, - -- Parry Neglect - EXPERTISE_RATING + -- Parry Neglect - EXPERTISE_RATING, WEAPON_RATING -- 2.3.0 { option = "sumParryNeglect", name = "PARRY_NEGLECT", func = function(sum, sumType, link) - local s = StatLogic:GetEffectFromRating((sum["EXPERTISE_RATING"] or 0), "EXPERTISE_RATING", calcLevel) * 0.25 + local s = 0 + for id, v in pairs(sum) do + if strsub(id, -13) == "WEAPON_RATING" then + s = StatLogic:GetEffectFromRating(v, CR_WEAPON_SKILL, calcLevel) * 0.04 + end + end + s = s + StatLogic:GetEffectFromRating((sum["EXPERTISE_RATING"] or 0), "EXPERTISE_RATING", calcLevel) * 0.25 return s end, ispercent = true, }, + -- Block Neglect - WEAPON_RATING + { + option = "sumBlockNeglect", + name = "BLOCK_NEGLECT", + func = function(sum, sumType, link) + for id, v in pairs(sum) do + if strsub(id, -13) == "WEAPON_RATING" then + return StatLogic:GetEffectFromRating(v, CR_WEAPON_SKILL, calcLevel) * 0.04 + end + end + return 0 + end, + ispercent = true, + }, -- Weapon Max Damage - MAX_DAMAGE { option = "sumWeaponMaxDamage", name = "MAX_DAMAGE", func = function(sum, sumType, link) return (sum["MAX_DAMAGE"] or 0) end, }, + -- Ignore Armor - IGNORE_ARMOR + { + option = "sumIgnoreArmor", + name = "IGNORE_ARMOR", + func = function(sum, sumType, link) return (sum["IGNORE_ARMOR"] or 0) end, + }, ------------------------------ -- Spell Damage and Healing -- ------------------------------ @@ -3645,110 +4025,123 @@ local summaryCalcData = { spellDmg = spellDmg + (summaryFunc["AP"](sum, sumType, link) * RatingBuster:GetStatMod("ADD_SPELL_DMG_MOD_AP")) end if RatingBuster:GetStatMod("ADD_PET_STA_MOD_STA") ~= 0 then - spellDmg = spellDmg + (sum["STA"] * RatingBuster:GetStatMod("ADD_SPELL_DMG_MOD_PET_STA") * RatingBuster:GetStatMod("ADD_PET_STA_MOD_STA")) - spellDmg = spellDmg + (sum["INT"] * RatingBuster:GetStatMod("ADD_SPELL_DMG_MOD_PET_INT") * RatingBuster:GetStatMod("ADD_PET_INT_MOD_INT")) + spellDmg = spellDmg + + ( + sum["STA"] * RatingBuster:GetStatMod("ADD_SPELL_DMG_MOD_PET_STA") * RatingBuster:GetStatMod("ADD_PET_STA_MOD_STA") + ) + spellDmg = spellDmg + + ( + sum["INT"] * RatingBuster:GetStatMod("ADD_SPELL_DMG_MOD_PET_INT") * RatingBuster:GetStatMod("ADD_PET_INT_MOD_INT") + ) end return spellDmg * RatingBuster:GetStatMod("MOD_SPELL_DMG") end, }, - -- Holy Damage - HOLY_SPELL_DMG, SPELL_DMG, + -- Holy Damage - HOLY_SPELL_DMG, SPELL_DMG, { option = "sumHolyDmg", name = "HOLY_SPELL_DMG", func = function(sum, sumType, link) return summaryFunc["SPELL_DMG"](sum, sumType, link) - + ((sum["HOLY_SPELL_DMG"] or 0)) - * RatingBuster:GetStatMod("MOD_SPELL_DMG") + + ((sum["HOLY_SPELL_DMG"] or 0) + + (sum["SPI"] * RatingBuster:GetStatMod("ADD_SCHOOL_SP_MOD_SPI", "HOLY"))) + * RatingBuster:GetStatMod("MOD_SPELL_DMG") end, }, - -- Arcane Damage - ARCANE_SPELL_DMG, SPELL_DMG, + -- Arcane Damage - ARCANE_SPELL_DMG, SPELL_DMG, { option = "sumArcaneDmg", name = "ARCANE_SPELL_DMG", func = function(sum, sumType, link) return summaryFunc["SPELL_DMG"](sum, sumType, link) - + ((sum["ARCANE_SPELL_DMG"] or 0)) - * RatingBuster:GetStatMod("MOD_SPELL_DMG") + + ((sum["ARCANE_SPELL_DMG"] or 0) + + (sum["SPI"] * RatingBuster:GetStatMod("ADD_SCHOOL_SP_MOD_SPI", "ARCANE"))) + * RatingBuster:GetStatMod("MOD_SPELL_DMG") end, }, - -- Fire Damage - FIRE_SPELL_DMG, SPELL_DMG, + -- Fire Damage - FIRE_SPELL_DMG, SPELL_DMG, { option = "sumFireDmg", name = "FIRE_SPELL_DMG", func = function(sum, sumType, link) return summaryFunc["SPELL_DMG"](sum, sumType, link) - + ((sum["FIRE_SPELL_DMG"] or 0)) - * RatingBuster:GetStatMod("MOD_SPELL_DMG") + + ((sum["FIRE_SPELL_DMG"] or 0) + + (sum["SPI"] * RatingBuster:GetStatMod("ADD_SCHOOL_SP_MOD_SPI", "FIRE"))) + * RatingBuster:GetStatMod("MOD_SPELL_DMG") end, }, - -- Nature Damage - NATURE_SPELL_DMG, SPELL_DMG, + -- Nature Damage - NATURE_SPELL_DMG, SPELL_DMG, { option = "sumNatureDmg", name = "NATURE_SPELL_DMG", func = function(sum, sumType, link) return summaryFunc["SPELL_DMG"](sum, sumType, link) - + ((sum["NATURE_SPELL_DMG"] or 0)) - * RatingBuster:GetStatMod("MOD_SPELL_DMG") + + ((sum["NATURE_SPELL_DMG"] or 0) + + (sum["SPI"] * RatingBuster:GetStatMod("ADD_SCHOOL_SP_MOD_SPI", "NATURE"))) + * RatingBuster:GetStatMod("MOD_SPELL_DMG") end, }, - -- Frost Damage - FROST_SPELL_DMG, SPELL_DMG, + -- Frost Damage - FROST_SPELL_DMG, SPELL_DMG, { option = "sumFrostDmg", name = "FROST_SPELL_DMG", func = function(sum, sumType, link) return summaryFunc["SPELL_DMG"](sum, sumType, link) - + ((sum["FROST_SPELL_DMG"] or 0)) - * RatingBuster:GetStatMod("MOD_SPELL_DMG") + + ((sum["FROST_SPELL_DMG"] or 0) + + (sum["SPI"] * RatingBuster:GetStatMod("ADD_SCHOOL_SP_MOD_SPI", "FROST"))) + * RatingBuster:GetStatMod("MOD_SPELL_DMG") end, }, - -- Shadow Damage - SHADOW_SPELL_DMG, SPELL_DMG + -- Shadow Damage - SHADOW_SPELL_DMG, SPELL_DMG, ADD_SCHOOL_SP_MOD_SPI { option = "sumShadowDmg", name = "SHADOW_SPELL_DMG", func = function(sum, sumType, link) return summaryFunc["SPELL_DMG"](sum, sumType, link) - + ((sum["SHADOW_SPELL_DMG"] or 0)) - * RatingBuster:GetStatMod("MOD_SPELL_DMG") + + ((sum["SHADOW_SPELL_DMG"] or 0) + + (sum["SPI"] * RatingBuster:GetStatMod("ADD_SCHOOL_SP_MOD_SPI", "SHADOW"))) + * RatingBuster:GetStatMod("MOD_SPELL_DMG") end, }, -- Healing - HEAL, AGI, STR, INT, SPI - -- "ADD_HEAL_MOD_STR" -- Paladin: Touched by the Light - -- "ADD_HEAL_MOD_AGI" -- Druid: Nurturing Instinct - -- "ADD_HEAL_MOD_STA" - -- "ADD_HEAL_MOD_INT" - -- "ADD_HEAL_MOD_SPI" - -- "ADD_HEAL_MOD_AP" -- Shaman: Mental Quickness + -- "ADD_HEALING_MOD_STR" -- Paladin: Touched by the Light + -- "ADD_HEALING_MOD_AGI" -- Druid: Nurturing Instinct + -- "ADD_HEALING_MOD_STA" + -- "ADD_HEALING_MOD_INT" + -- "ADD_HEALING_MOD_SPI" + -- "ADD_HEALING_MOD_AP" -- Shaman: Mental Quickness { option = "sumHealing", name = "HEAL", func = function(sum, sumType, link) local heal = (sum["HEAL"] or 0) - if RatingBuster:GetStatMod("ADD_HEAL_MOD_STR") ~= 0 then - heal = heal + (sum["STR"] * RatingBuster:GetStatMod("ADD_HEAL_MOD_STR")) + if RatingBuster:GetStatMod("ADD_HEALING_MOD_STR") ~= 0 then + heal = heal + (sum["STR"] * RatingBuster:GetStatMod("ADD_HEALING_MOD_STR")) end - if RatingBuster:GetStatMod("ADD_HEAL_MOD_AGI") ~= 0 then - heal = heal + (sum["AGI"] * RatingBuster:GetStatMod("ADD_HEAL_MOD_AGI")) + if RatingBuster:GetStatMod("ADD_HEALING_MOD_AGI") ~= 0 then + heal = heal + (sum["AGI"] * RatingBuster:GetStatMod("ADD_HEALING_MOD_AGI")) end - if RatingBuster:GetStatMod("ADD_HEAL_MOD_STA") ~= 0 then - heal = heal + (sum["STA"] * RatingBuster:GetStatMod("ADD_HEAL_MOD_STA")) + if RatingBuster:GetStatMod("ADD_HEALING_MOD_STA") ~= 0 then + heal = heal + (sum["STA"] * RatingBuster:GetStatMod("ADD_HEALING_MOD_STA")) end - if RatingBuster:GetStatMod("ADD_HEAL_MOD_INT") ~= 0 then - heal = heal + (sum["INT"] * RatingBuster:GetStatMod("ADD_HEAL_MOD_INT")) + if RatingBuster:GetStatMod("ADD_HEALING_MOD_INT") ~= 0 then + heal = heal + (sum["INT"] * RatingBuster:GetStatMod("ADD_HEALING_MOD_INT")) end - if RatingBuster:GetStatMod("ADD_HEAL_MOD_SPI") ~= 0 then - heal = heal + (sum["SPI"] * RatingBuster:GetStatMod("ADD_HEAL_MOD_SPI")) + if RatingBuster:GetStatMod("ADD_HEALING_MOD_SPI") ~= 0 then + heal = heal + (sum["SPI"] * RatingBuster:GetStatMod("ADD_HEALING_MOD_SPI")) end - if RatingBuster:GetStatMod("ADD_HEAL_MOD_AP") ~= 0 then - heal = heal + (summaryFunc["AP"](sum, sumType, link) * RatingBuster:GetStatMod("ADD_HEAL_MOD_AP")) + if RatingBuster:GetStatMod("ADD_HEALING_MOD_AP") ~= 0 then + heal = heal + (summaryFunc["AP"](sum, sumType, link) * RatingBuster:GetStatMod("ADD_HEALING_MOD_AP")) end - return heal * RatingBuster:GetStatMod("MOD_HEAL") + return heal * RatingBuster:GetStatMod("MOD_HEALING") end, }, -- Spell Hit Chance - SPELL_HIT_RATING { option = "sumSpellHit", name = "SPELL_HIT", - func = function(sum, sumType, link) return StatLogic:GetEffectFromRating((sum["SPELL_HIT_RATING"] or 0), "SPELL_HIT_RATING", calcLevel) end, + func = function(sum, sumType, link) return StatLogic:GetEffectFromRating((sum["SPELL_HIT_RATING"] or 0), + "SPELL_HIT_RATING", calcLevel) end, ispercent = true, }, -- Spell Hit Rating - SPELL_HIT_RATING @@ -3762,8 +4155,9 @@ local summaryCalcData = { option = "sumSpellCrit", name = "SPELL_CRIT", func = function(sum, sumType, link) - return StatLogic:GetEffectFromRating((sum["SPELL_CRIT_RATING"] or 0) + sum["SPI"] * RatingBuster:GetStatMod("ADD_SPELL_CRIT_RATING_MOD_SPI"), "SPELL_CRIT_RATING", calcLevel) - + StatLogic:GetSpellCritFromInt(sum["INT"], class, calcLevel) + return StatLogic:GetEffectFromRating((sum["SPELL_CRIT_RATING"] or 0) + + sum["SPI"] * RatingBuster:GetStatMod("ADD_SPELL_CRIT_RATING_MOD_SPI"), "SPELL_CRIT_RATING", calcLevel) + + StatLogic:GetSpellCritFromInt(sum["INT"], class, calcLevel) end, ispercent = true, }, @@ -3771,13 +4165,15 @@ local summaryCalcData = { { option = "sumSpellCritRating", name = "SPELL_CRIT_RATING", - func = function(sum, sumType, link) return (sum["SPELL_CRIT_RATING"] or 0) + sum["SPI"] * RatingBuster:GetStatMod("ADD_SPELL_CRIT_RATING_MOD_SPI") end, + func = function(sum, sumType, link) return (sum["SPELL_CRIT_RATING"] or 0) + + sum["SPI"] * RatingBuster:GetStatMod("ADD_SPELL_CRIT_RATING_MOD_SPI") end, }, -- Spell Haste - SPELL_HASTE_RATING { option = "sumSpellHaste", name = "SPELL_HASTE", - func = function(sum, sumType, link) return StatLogic:GetEffectFromRating((sum["SPELL_HASTE_RATING"] or 0), "SPELL_HASTE_RATING", calcLevel) end, + func = function(sum, sumType, link) return StatLogic:GetEffectFromRating((sum["SPELL_HASTE_RATING"] or 0), + "SPELL_HASTE_RATING", calcLevel) end, ispercent = true, }, -- Spell Haste Rating - SPELL_HASTE_RATING @@ -3800,30 +4196,32 @@ local summaryCalcData = { option = "sumArmor", name = "ARMOR", func = function(sum, sumType, link) - -- Bonus armor beyond the base armor of an item will no longer be multiplied, + -- Bonus armor beyond the base armor of an item will no longer be multiplied, -- this includes armor from Necks, Rings, Trinkets, Weapons -- Commented out because StatLogic now handles this -- local itemType = select(9, GetItemInfo(link)) -- local mod = 1 -- if not modFreeArmorItemEquipLoc[itemType] then - -- mod = RatingBuster:GetStatMod("MOD_ARMOR") + -- mod = RatingBuster:GetStatMod("MOD_ARMOR") -- end return (sum["ARMOR"] or 0) * RatingBuster:GetStatMod("MOD_ARMOR") - + (sum["ARMOR_BONUS"] or 0) + + (sum["ARMOR_BONUS"] or 0) + ((sum["AGI"] or 0) * 2) + + ((sum["INT"] or 0) * RatingBuster:GetStatMod("ADD_ARMOR_MOD_INT")) end, }, - -- Dodge Chance Before DR - DODGE_RATING, AGI + -- Dodge Chance Before DR - DODGE_RATING, DEFENSE_RATING, AGI { option = "sumDodgeBeforeDR", name = "DODGE_NO_DR", func = function(sum, sumType, link) local dodge = StatLogic:GetEffectFromRating((sum["DODGE_RATING"] or 0), "DODGE_RATING", calcLevel) - + StatLogic:GetDodgeFromAgi(sum["AGI"] or 0) + + StatLogic:GetEffectFromRating((sum["DEFENSE_RATING"] or 0), "DEFENSE_RATING", calcLevel) * 0.04 + + StatLogic:GetDodgeFromAgi(sum["AGI"] or 0) return dodge end, ispercent = true, }, - -- Dodge Chance - DODGE_RATING, AGI + -- Dodge Chance - DODGE_RATING, DEFENSE_RATING, AGI { option = "sumDodge", name = "DODGE", @@ -3833,7 +4231,8 @@ local summaryCalcData = { if (sumType == "diff1") or (sumType == "diff2") then dodge = StatLogic:GetAvoidanceGainAfterDR("DODGE", dodge) elseif sumType == "sum" then - dodge = StatLogic:GetAvoidanceGainAfterDR("DODGE", equippedDodge + dodge) - StatLogic:GetAvoidanceGainAfterDR("DODGE", equippedDodge) + dodge = StatLogic:GetAvoidanceGainAfterDR("DODGE", equippedDodge + dodge) - + StatLogic:GetAvoidanceGainAfterDR("DODGE", equippedDodge) end end return dodge @@ -3846,28 +4245,30 @@ local summaryCalcData = { name = "DODGE_RATING", func = function(sum, sumType, link) return (sum["DODGE_RATING"] or 0) end, }, - -- Parry Chance Before DR - PARRY_RATING + -- Parry Chance Before DR - PARRY_RATING, DEFENSE_RATING { option = "sumParryBeforeDR", name = "PARRY_NO_DR", func = function(sum, sumType, link) if GetParryChance() == 0 then return 0 end local parryRating = (sum["PARRY_RATING"] or 0) - if RatingBuster:GetStatMod("ADD_PARRY_RATING_MOD_STR") ~= 0 then - if(sumType == "diff1" or sumType == "diff2") then + if RatingBuster:GetStatMod("ADD_CR_PARRY_MOD_STR") ~= 0 then + if (sumType == "diff1" or sumType == "diff2") then local str = UnitStat("player", 1) local newStr = (sum["STR"] or 0) + str - parryRating = parryRating + floor(newStr * RatingBuster:GetStatMod("ADD_PARRY_RATING_MOD_STR")) - floor(str * RatingBuster:GetStatMod("ADD_PARRY_RATING_MOD_STR")) + parryRating = parryRating + floor(newStr * RatingBuster:GetStatMod("ADD_CR_PARRY_MOD_STR")) - + floor(str * RatingBuster:GetStatMod("ADD_CR_PARRY_MOD_STR")) else - parryRating = parryRating + (sum["STR"] or 0) * RatingBuster:GetStatMod("ADD_PARRY_RATING_MOD_STR") + parryRating = parryRating + (sum["STR"] or 0) * RatingBuster:GetStatMod("ADD_CR_PARRY_MOD_STR") end end local parry = StatLogic:GetEffectFromRating(parryRating, "PARRY_RATING", calcLevel) + + StatLogic:GetEffectFromRating((sum["DEFENSE_RATING"] or 0), "DEFENSE_RATING", calcLevel) * 0.04 return parry end, ispercent = true, }, - -- Parry Chance - PARRY_RATING + -- Parry Chance - PARRY_RATING, DEFENSE_RATING { option = "sumParry", name = "PARRY", @@ -3877,7 +4278,8 @@ local summaryCalcData = { if (sumType == "diff1") or (sumType == "diff2") then parry = StatLogic:GetAvoidanceGainAfterDR("PARRY", parry) elseif sumType == "sum" then - parry = StatLogic:GetAvoidanceGainAfterDR("PARRY", equippedParry + parry) - StatLogic:GetAvoidanceGainAfterDR("PARRY", equippedParry) + parry = StatLogic:GetAvoidanceGainAfterDR("PARRY", equippedParry + parry) - + StatLogic:GetAvoidanceGainAfterDR("PARRY", equippedParry) end end return parry @@ -3885,19 +4287,21 @@ local summaryCalcData = { ispercent = true, }, -- Parry Rating - PARRY_RATING - -- "ADD_PARRY_RATING_MOD_STR" -- Death Knight: Forceful Deflection - Passive + -- "ADD_CR_PARRY_MOD_STR" -- Death Knight: Forceful Deflection - Passive { option = "sumParryRating", name = "PARRY_RATING", - func = function(sum, sumType, link) return (sum["PARRY_RATING"] or 0) + (sum["STR"] * RatingBuster:GetStatMod("ADD_PARRY_RATING_MOD_STR")) end, + func = function(sum, sumType, link) return (sum["PARRY_RATING"] or 0) + + (sum["STR"] * RatingBuster:GetStatMod("ADD_CR_PARRY_MOD_STR")) end, }, - -- Block Chance - BLOCK_RATING + -- Block Chance - BLOCK_RATING, DEFENSE_RATING { option = "sumBlock", name = "BLOCK", func = function(sum, sumType, link) if GetBlockChance() == 0 then return 0 end return StatLogic:GetEffectFromRating((sum["BLOCK_RATING"] or 0), "BLOCK_RATING", calcLevel) + + StatLogic:GetEffectFromRating((sum["DEFENSE_RATING"] or 0), "DEFENSE_RATING", calcLevel) * 0.04 end, ispercent = true, }, @@ -3907,14 +4311,28 @@ local summaryCalcData = { name = "BLOCK_RATING", func = function(sum, sumType, link) return (sum["BLOCK_RATING"] or 0) end, }, - -- Hit Avoidance Before DR - MELEE_HIT_AVOID_RATING + -- Block Value - BLOCK_VALUE, STR + { + option = "sumBlockValue", + name = "BLOCK_VALUE", + func = function(sum, sumType, link) + if GetBlockChance() == 0 then return 0 end + return ((sum["BLOCK_VALUE"] or 0) + ((sum["STR"] or 0) * StatLogic:GetBlockValuePerStr(class))) * + RatingBuster:GetStatMod("MOD_BLOCK_VALUE") + + end, + }, + -- Hit Avoidance Before DR - DEFENSE_RATING, MELEE_HIT_AVOID_RATING { option = "sumHitAvoidBeforeDR", name = "MELEE_HIT_AVOID_NO_DR", - func = function(sum, sumType, link) return StatLogic:GetEffectFromRating((sum["MELEE_HIT_AVOID_RATING"] or 0), "MELEE_HIT_AVOID_RATING", calcLevel) end, + func = function(sum, sumType, link) return StatLogic:GetEffectFromRating((sum["MELEE_HIT_AVOID_RATING"] or 0), + "MELEE_HIT_AVOID_RATING", calcLevel) + + StatLogic:GetEffectFromRating((sum["DEFENSE_RATING"] or 0), "DEFENSE_RATING", calcLevel) * 0.04 + end, ispercent = true, }, - -- Hit Avoidance Before DR - MELEE_HIT_AVOID_RATING + -- Hit Avoidance Before DR - DEFENSE_RATING, MELEE_HIT_AVOID_RATING { option = "sumHitAvoid", name = "MELEE_HIT_AVOID", @@ -3924,19 +4342,23 @@ local summaryCalcData = { if (sumType == "diff1") or (sumType == "diff2") then missed = StatLogic:GetAvoidanceGainAfterDR("MELEE_HIT_AVOID", missed) elseif sumType == "sum" then - missed = StatLogic:GetAvoidanceGainAfterDR("MELEE_HIT_AVOID", equippedMissed + missed) - StatLogic:GetAvoidanceGainAfterDR("MELEE_HIT_AVOID", equippedMissed) + missed = StatLogic:GetAvoidanceGainAfterDR("MELEE_HIT_AVOID", equippedMissed + missed) - + StatLogic:GetAvoidanceGainAfterDR("MELEE_HIT_AVOID", equippedMissed) end end return missed end, ispercent = true, }, - -- Crit Avoidance - RESILIENCE_RATING, MELEE_CRIT_AVOID_RATING + -- Crit Avoidance - DEFENSE_RATING, RESILIENCE_RATING, MELEE_CRIT_AVOID_RATING { option = "sumCritAvoid", name = "MELEE_CRIT_AVOID", - func = function(sum, sumType, link) return StatLogic:GetEffectFromRating((sum["MELEE_CRIT_AVOID_RATING"] or 0), "MELEE_CRIT_AVOID_RATING", calcLevel) - + StatLogic:GetEffectFromRating((sum["RESILIENCE_RATING"] or 0), "RESILIENCE_RATING", calcLevel) end, + func = function(sum, sumType, link) return StatLogic:GetEffectFromRating((sum["MELEE_CRIT_AVOID_RATING"] or 0), + "MELEE_CRIT_AVOID_RATING", calcLevel) + + StatLogic:GetEffectFromRating((sum["RESILIENCE_RATING"] or 0), "RESILIENCE_RATING", calcLevel) + + StatLogic:GetEffectFromRating((sum["DEFENSE_RATING"] or 0), "DEFENSE_RATING", calcLevel) * 0.04 + end, ispercent = true, }, -- Resilience - RESILIENCE_RATING @@ -3975,6 +4397,13 @@ local summaryCalcData = { name = "SHADOW_RES", func = function(sum, sumType, link) return (sum["SHADOW_RES"] or 0) end, }, + -- Defense - DEFENSE_RATING + { + option = "sumDefense", + name = "DEFENSE", + func = function(sum, sumType, link) return StatLogic:GetEffectFromRating((sum["DEFENSE_RATING"] or 0), "DEFENSE_RATING" + , calcLevel) end, + }, -- Avoidance - DODGE, PARRY, MELEE_HIT_AVOID, BLOCK(Optional) { option = "sumAvoidance", @@ -4026,9 +4455,11 @@ if tpSupport == true then -- if not equipped shield and item is not shield then nil -- if equipped shield and item is shield then nil -- if equipped shield and item is not shield then force off - if ((diffTable1.diffItemType1 ~= "INVTYPE_SHIELD") and (diffTable1.diffItemType2 ~= "INVTYPE_SHIELD")) and (itemType == "INVTYPE_SHIELD") then + if ((diffTable1.diffItemType1 ~= "INVTYPE_SHIELD") and (diffTable1.diffItemType2 ~= "INVTYPE_SHIELD")) and + (itemType == "INVTYPE_SHIELD") then forceShield = true - elseif ((diffTable1.diffItemType1 == "INVTYPE_SHIELD") or (diffTable1.diffItemType2 == "INVTYPE_SHIELD")) and (itemType ~= "INVTYPE_SHIELD") then + elseif ((diffTable1.diffItemType1 == "INVTYPE_SHIELD") or (diffTable1.diffItemType2 == "INVTYPE_SHIELD")) and + (itemType ~= "INVTYPE_SHIELD") then forceShield = false end -- Get the tp table @@ -4041,7 +4472,7 @@ if tpSupport == true then TP:GetTankPoints(tpTable, TP_MELEE, forceShield) -- Calculate tp difference local diff = floor(tpTable.tankPoints[TP_MELEE]) - floor(TP.resultsTable.tankPoints[TP_MELEE]) - + return diff end, }) @@ -4078,9 +4509,11 @@ if tpSupport == true then -- if not equipped shield and item is not shield then nil -- if equipped shield and item is shield then nil -- if equipped shield and item is not shield then force off - if ((diffTable1.diffItemType1 ~= "INVTYPE_SHIELD") and (diffTable1.diffItemType2 ~= "INVTYPE_SHIELD")) and (itemType == "INVTYPE_SHIELD") then + if ((diffTable1.diffItemType1 ~= "INVTYPE_SHIELD") and (diffTable1.diffItemType2 ~= "INVTYPE_SHIELD")) and + (itemType == "INVTYPE_SHIELD") then forceShield = true - elseif ((diffTable1.diffItemType1 == "INVTYPE_SHIELD") or (diffTable1.diffItemType2 == "INVTYPE_SHIELD")) and (itemType ~= "INVTYPE_SHIELD") then + elseif ((diffTable1.diffItemType1 == "INVTYPE_SHIELD") or (diffTable1.diffItemType2 == "INVTYPE_SHIELD")) and + (itemType ~= "INVTYPE_SHIELD") then forceShield = false end -- Get the tp table @@ -4093,7 +4526,7 @@ if tpSupport == true then TP:GetTankPoints(tpTable, TP_MELEE, forceShield) -- Calculate tp difference local diff = tpTable.totalReduction[TP_MELEE] - TP.resultsTable.totalReduction[TP_MELEE] - + return diff * 100 end, }) @@ -4165,7 +4598,7 @@ end function RatingBuster:StatSummary(tooltip, name, link, ...) -- Hide stat summary for equipped items if profileDB.sumIgnoreEquipped and IsEquippedItem(link) then return end - + -- Show stat summary only for highest level armor type and items you can use with uncommon quality and up if profileDB.sumIgnoreUnused then local _, _, itemRarity, _, _, _, itemSubType, _, itemEquipLoc = GetItemInfo(link) @@ -4181,11 +4614,12 @@ function RatingBuster:StatSummary(tooltip, name, link, ...) return elseif canUseItemType[itemSubType] == nil then local tName = tooltip:GetName() - if (_G[tName.."TextRight3"]:GetText() and select(2, _G[tName.."TextRight3"]:GetTextColor()) < 0.2) or - (_G[tName.."TextRight4"]:GetText() and select(2, _G[tName.."TextRight4"]:GetTextColor()) < 0.2) or - (_G[tName.."TextRight5"]:GetText() and select(2, _G[tName.."TextRight5"]:GetTextColor()) < 0.2) or - select(2, _G[tName.."TextLeft3"]:GetTextColor()) < 0.2 or select(2, _G[tName.."TextLeft4"]:GetTextColor()) < 0.2 or - select(2, _G[tName.."TextLeft5"]:GetTextColor()) < 0.2 then + if (_G[tName .. "TextRight3"]:GetText() and select(2, _G[tName .. "TextRight3"]:GetTextColor()) < 0.2) or + (_G[tName .. "TextRight4"]:GetText() and select(2, _G[tName .. "TextRight4"]:GetTextColor()) < 0.2) or + (_G[tName .. "TextRight5"]:GetText() and select(2, _G[tName .. "TextRight5"]:GetTextColor()) < 0.2) or + select(2, _G[tName .. "TextLeft3"]:GetTextColor()) < 0.2 or select(2, _G[tName .. "TextLeft4"]:GetTextColor()) < 0.2 + or + select(2, _G[tName .. "TextLeft5"]:GetTextColor()) < 0.2 then canUseItemType[itemSubType] = false return else @@ -4193,7 +4627,7 @@ function RatingBuster:StatSummary(tooltip, name, link, ...) end end end - + -- Ignore enchants and gems on items when calculating the stat summarythen local red, yellow, blue, meta if isModifierKeyDown[profileDB.sumGem2Toggle] and isModifierKeyDown[profileDB.sumGem2Toggle]() then @@ -4212,7 +4646,7 @@ function RatingBuster:StatSummary(tooltip, name, link, ...) blue = profileDB.sumGemBlue.gemID meta = profileDB.sumGemMeta.gemID end - + if profileDB.sumIgnoreEnchant then link = StatLogic:RemoveEnchant(link) end @@ -4224,7 +4658,7 @@ function RatingBuster:StatSummary(tooltip, name, link, ...) else link = StatLogic:BuildGemmedTooltip(link, red, yellow, blue, meta) end - + -- Diff Display Style -- Main Tooltip: tooltipLevel = 0 -- Compare Tooltip 1: tooltipLevel = 1 @@ -4252,19 +4686,21 @@ function RatingBuster:StatSummary(tooltip, name, link, ...) end end end - local _, mainlink = StatLogic:GetDiffID(mainTooltip, profileDB.sumIgnoreEnchant, profileDB.sumIgnoreGems, red, yellow, blue, meta, profileDB.sumIgnorePris) + local _, mainlink = StatLogic:GetDiffID(mainTooltip, profileDB.sumIgnoreEnchant, profileDB.sumIgnoreGems, red, yellow, + blue, meta, profileDB.sumIgnorePris) if not mainlink then return end -- Construct id if tooltipLevel > 0 then - id = link..mainlink + id = link .. mainlink else - id = "sum"..link + id = "sum" .. link end else - id = StatLogic:GetDiffID(link, profileDB.sumIgnoreEnchant, profileDB.sumIgnoreGems, red, yellow, blue, meta, profileDB.sumIgnorePris) + id = StatLogic:GetDiffID(link, profileDB.sumIgnoreEnchant, profileDB.sumIgnoreGems, red, yellow, blue, meta, + profileDB.sumIgnorePris) if not id then return end end - + -- Check Cache if cache[id] then if #cache[id] == 0 then return end @@ -4273,15 +4709,15 @@ function RatingBuster:StatSummary(tooltip, name, link, ...) tooltip:AddLine(" ") end if profileDB.sumShowTitle then - tooltip:AddLine(HIGHLIGHT_FONT_COLOR_CODE..L["Stat Summary"]..FONT_COLOR_CODE_CLOSE) + tooltip:AddLine(HIGHLIGHT_FONT_COLOR_CODE .. L["Stat Summary"] .. FONT_COLOR_CODE_CLOSE) if profileDB.sumShowIcon then tooltip:AddTexture("Interface\\AddOns\\RatingBuster\\images\\Sigma") end end -- local left, right = "", "" -- for _, o in ipairs(cache[id]) do - -- left = left..o[1].."\n" - -- right = right..o[2].."\n" + -- left = left..o[1].."\n" + -- right = right..o[2].."\n" -- end -- left = strsub(left, 1, -3) -- right = strsub(right, 1, -3) @@ -4294,7 +4730,7 @@ function RatingBuster:StatSummary(tooltip, name, link, ...) end return end - + ------------------------- -- Build Summary Table -- local statData = {} @@ -4303,18 +4739,21 @@ function RatingBuster:StatSummary(tooltip, name, link, ...) if not profileDB.calcSum then statData.sum = nil end - + -- Ignore bags if not StatLogic:GetDiff(link) then return end - + -- Get Diff Data if profileDB.calcDiff then if profileDB.sumDiffStyle == "comp" then if tooltipLevel > 0 then - statData.diff1 = select(tooltipLevel, StatLogic:GetDiff(mainTooltip, nil, nil, profileDB.sumIgnoreEnchant, profileDB.sumIgnoreGems, red, yellow, blue, meta, profileDB.sumIgnorePris)) + statData.diff1 = select(tooltipLevel, + StatLogic:GetDiff(mainTooltip, nil, nil, profileDB.sumIgnoreEnchant, profileDB.sumIgnoreGems, red, yellow, blue, + meta, profileDB.sumIgnorePris)) end else - statData.diff1, statData.diff2 = StatLogic:GetDiff(link, nil, nil, profileDB.sumIgnoreEnchant, profileDB.sumIgnoreGems, red, yellow, blue, meta, profileDB.sumIgnorePris) + statData.diff1, statData.diff2 = StatLogic:GetDiff(link, nil, nil, profileDB.sumIgnoreEnchant, profileDB.sumIgnoreGems + , red, yellow, blue, meta, profileDB.sumIgnorePris) end end -- Apply Base Stat Mods @@ -4370,10 +4809,62 @@ function RatingBuster:StatSummary(tooltip, name, link, ...) tinsert(summary, entry) end end - + local calcSum = profileDB.calcSum local calcDiff = profileDB.calcDiff - + -- Weapon Skill - WEAPON_RATING + if profileDB.sumWeaponSkill then + local weapon = {} + if calcSum then + for id, v in pairs(statData.sum) do + if strsub(id, -13) == "WEAPON_RATING" then + weapon[id] = true + local entry = { + name = strsub(id, 1, -8), + } + entry.sum = StatLogic:GetEffectFromRating(v, CR_WEAPON_SKILL, calcLevel) + if calcDiff and statData.diff1 then + entry.diff1 = StatLogic:GetEffectFromRating((statData.diff1[id] or 0), CR_WEAPON_SKILL, calcLevel) + if statData.diff2 then + entry.diff2 = StatLogic:GetEffectFromRating((statData.diff2[id] or 0), CR_WEAPON_SKILL, calcLevel) + end + end + tinsert(summary, entry) + end + end + end + if calcDiff and statData.diff1 then + for id, v in pairs(statData.diff1) do + if (strsub(id, -13) == "WEAPON_RATING") and not weapon[id] then + weapon[id] = true + local entry = { + name = strsub(id, 1, -8), + sum = 0, + } + entry.diff1 = StatLogic:GetEffectFromRating(v, CR_WEAPON_SKILL, calcLevel) + if statData.diff2 then + entry.diff2 = StatLogic:GetEffectFromRating((statData.diff2[id] or 0), CR_WEAPON_SKILL, calcLevel) + end + tinsert(summary, entry) + end + end + if statData.diff2 then + for id, v in pairs(statData.diff2) do + if (strsub(id, -13) == "WEAPON_RATING") and not weapon[id] then + weapon[id] = true + local entry = { + name = strsub(id, 1, -8), + sum = 0, + diff1 = 0, + } + entry.diff2 = StatLogic:GetEffectFromRating(v, CR_WEAPON_SKILL, calcLevel) + tinsert(summary, entry) + end + end + end + end + end + local showZeroValueStat = profileDB.showZeroValueStat ------------------------ -- Build Output Table -- @@ -4390,7 +4881,8 @@ function RatingBuster:StatSummary(tooltip, name, link, ...) end if not skip then if calcSum and calcDiff then - local d = ((not s) or ((s - floor(s)) == 0)) and ((not d1) or ((d1 - floor(d1)) == 0)) and ((not d2) or ((d2 - floor(d2)) == 0)) + local d = ((not s) or ((s - floor(s)) == 0)) and ((not d1) or ((d1 - floor(d1)) == 0)) and + ((not d2) or ((d2 - floor(d2)) == 0)) if s then if d then s = format("%d", s) @@ -4496,7 +4988,7 @@ function RatingBuster:StatSummary(tooltip, name, link, ...) else left = StatLogic:GetStatNameFromID(n) end - tinsert(output, {left, right}) + tinsert(output, { left, right }) end end end @@ -4513,7 +5005,7 @@ function RatingBuster:StatSummary(tooltip, name, link, ...) tooltip:AddLine(" ") end if profileDB.sumShowTitle then - tooltip:AddLine(HIGHLIGHT_FONT_COLOR_CODE..L["Stat Summary"]..FONT_COLOR_CODE_CLOSE) + tooltip:AddLine(HIGHLIGHT_FONT_COLOR_CODE .. L["Stat Summary"] .. FONT_COLOR_CODE_CLOSE) if profileDB.sumShowIcon then tooltip:AddTexture("Interface\\AddOns\\RatingBuster\\images\\Sigma") end @@ -4526,7 +5018,6 @@ function RatingBuster:StatSummary(tooltip, name, link, ...) end end - -- RatingBuster:Bench(1000) --------- -- self:SplitDoJoin("+24 Agility/+4 Stamina, +4 Dodge and +4 Spell Crit/+5 Spirit", {"/", " and ", ","}) diff --git a/RatingBuster/RatingBuster.toc b/RatingBuster/RatingBuster.toc index ee86dae..b72b283 100644 --- a/RatingBuster/RatingBuster.toc +++ b/RatingBuster/RatingBuster.toc @@ -1,18 +1,19 @@ -## Interface: 30300 +## Interface: 30301 ## Title: RatingBuster ## Notes: Item stat breakdown, analysis and comparison ## Notes-zhTW: 裝備數值解析與比較 ## Author: Whitetooth +## Modder: Aramis/Fujoshi ## X-eMail: hotdogee [at] gmail [dot] com ## SavedVariables: RatingBusterDB -## OptionalDeps: Ace3, LibTipHooker-1.1, LibStatLogic-1.2, UTF8, LibBabble-Inventory-3.0, LibDualSpec-1.0, TankPoints -## X-Embeds: Ace3, LibTipHooker-1.1, LibStatLogic-1.2, UTF8, LibBabble-Inventory-3.0, LibDualSpec-1.0 +## OptionalDeps: Ace3, LibTipHooker-1.1, LibStatLogic-1.1, UTF8, LibBabble-Inventory-3.0, LibDualSpec-1.0, TankPoints +## X-Embeds: Ace3, LibTipHooker-1.1, LibStatLogic-1.1, UTF8, LibBabble-Inventory-3.0, LibDualSpec-1.0 ## X-Category: Interface Enhancements ## X-RelSite-WoWI: 5819 ## X-RelSite-Curse: 4991 ## X-License: GPL v2 ## X-Encoding: UTF-8 -## X-Curse-Packaged-Version: r295 +## X-Curse-Packaged-Version: r284 ## X-Curse-Project-Name: RatingBuster ## X-Curse-Project-ID: rating-buster ## X-Curse-Repository-ID: wow/rating-buster/mainline diff --git a/RatingBuster/embeds.xml b/RatingBuster/embeds.xml index 0c79489..2a79ba3 100644 --- a/RatingBuster/embeds.xml +++ b/RatingBuster/embeds.xml @@ -2,7 +2,7 @@ ..\FrameXML\UI.xsd">