It does not take into account enchants, and it only takes into account gems that are actually in the item. I plan to enable numbers on specific gems and maybe enchants soon.
All talents are detected and you need to be in cat form for the numbers to be accurate (since it is based off your current stats). This also means that the numbers will change based on buffs, etc.
It does not take into account debuffs on your target (though i plan to put that in).
It does take into account set bonuses (tier sets only), but there is no way right now to detect them (I am working on this piece).
Please post any problems/suggestions/comments here.
It does take into account set bonuses (tier sets only), but there is no way right now to detect them (I am working on this piece).
Xus over at www.fortegaming.com has implemented a feature in his ForteWarlock which checks for the Voidheart set. Perhaps his code will give you some pointers?
I'm using ItemBonusLib currently and have my local version modified to give me this info. Jerry said that he would look into adding support for this into the general release, but I'm not really sure what kind of time frame. It wont be the most efficient thing, but I can parse through the tooltip a second time.
It is currently set up to only add to tooltips when you are shifted into the appropriate form. I hope to add options as some point to modify this behavior. It also will not show anything if the value would be 0 (i.e. all caster stats, or the same item). Le me know if the info is not showing up when shifted into cat form.
it works in cat form, some things that may be good:
- show the computed value along with the diff between them, like: 100/120 (+20)
- if possible show the value in "normal form"
- add the option to show both 2.2 and 2.3 value until 2.3 is released
btw I am glad someone made these formulas into an addon :)
I plan to add a lot more values, so I need a way to filter them out.
Also, the values really only make sense when you are wearing the appropriate gear, and in the appropriate form (i.e. you will get some different values if you are not in the right form).
[2007/10/29 18:14:45-1788-x2]: attempt to concatenate a nil value:
<in C code>: in function `strjoin'
CatPoints-0.2\CatPoints.lua:180: in function <Interface\AddOns\CatPoints\CatPoints.lua:176>
CatPoints-0.2\CatPoints.lua:475: in function `DoTooltip'
CatPoints-0.2\CatPoints.lua:464: in function <Interface\AddOns\CatPoints\CatPoints.lua:459>
(tail call): ?:
<in C code>: in function `SetItemRef'
Interface\FrameXML\ChatFrame.lua:2257: in function `ChatFrame_OnHyperlinkShow':
<string>:"*:OnHyperlinkClick":1: in function <[string "*:OnHyperlinkClick"]:1>
For filtering you can look at RatingBuster, you can simply and quickly select what you want to display and how.
As for the form I don't really undertsnad, an item is the same whether you are in cat form or druid form, no ? isn't there a way to display computed value without being in cat form ?
You would just end up in druid form with a tooltip saying : "cat points: 546" or something like that.
by the way the only useful values are in bear and cat, the value in druid form is useless so I don't see a reason to even have it if this is what you thought of.
Sometimes it is just annoying to have to go to cat form to compare two equipment pieces, I currently have to do it with RatingBuster and I am not very happy with that (but RatingBuster serve a wider purpose).
[2007/10/29 18:14:45-1788-x2]: attempt to concatenate a nil value:
<in C code>: in function `strjoin'
CatPoints-0.2\CatPoints.lua:180: in function <Interface\AddOns\CatPoints\CatPoints.lua:176>
CatPoints-0.2\CatPoints.lua:475: in function `DoTooltip'
CatPoints-0.2\CatPoints.lua:464: in function <Interface\AddOns\CatPoints\CatPoints.lua:459>
(tail call): ?:
<in C code>: in function `SetItemRef'
Interface\FrameXML\ChatFrame.lua:2257: in function `ChatFrame_OnHyperlinkShow':
<string>:"*:OnHyperlinkClick":1: in function <[string "*:OnHyperlinkClick"]:1>
For filtering you can look at RatingBuster, you can simply and quickly select what you want to display and how.
As for the form I don't really undertsnad, an item is the same whether you are in cat form or druid form, no ? isn't there a way to display computed value without being in cat form ?
Yes and no, I guess it would just require a bit more work and introduce additional error. The main reason I am writing this is because I didn't like the static addons that just say 'agility=xxx points' because it is clear, the value of agility depends on many things: ap, crit, talents, form, etc. Now I should be able to calculate in the stat changes if you are not shifted, but (without saving out armor sets, which I dont want to do, though integration with somethign like outfitter might be cool) since you have to be in the gear you want to compare, doing the shift isn't that much more trouble.
As I get it more fleshed out I will probably put that in, but you'll just have to bear with me.
You would just end up in druid form with a tooltip saying : "cat points: 546" or something like that.
by the way the only useful values are in bear and cat, the value in druid form is useless so I don't see a reason to even have it if this is what you thought of.
I guess I'm not sure what you mean here. I have to reasons for hiding the value:
1. It will be incorrect (because you are in the wrong form or because you are wearing the wrong gear).
2. I dont want to tooltips to get too bloated because of me. I use a lot of addons that modify tooltips and there is a TON of stuff in there, so I want to add the minimum necessaryt o get the job done.
Basically I just see the shifting as a built in was to decide what to show, without having to resort to doing strange stuff like holding downt he shift key while showing the tooltip or something.
If you want to (and are comfortable doing it) you can change your local copy to always display.
change
function Options:display()
return GetShapeshiftForm(true)==3
end
I'm using ItemBonusLib currently and have my local version modified to give me this info. Jerry said that he would look into adding support for this into the general release, but I'm not really sure what kind of time frame. It wont be the most efficient thing, but I can parse through the tooltip a second time.
What you want is not the detection of the number of worn items of a known set, but a specific bonus to add to IBL.
If you ask me to add "Increases your strength by (%d+) in Cat Form." and "Increases your armor by (%d+) in Bear Form and Dire Bear Form." patterns, as STR_CAT and ARMOR_BEAR, for instance, I'll do it right away.
What you want is not the detection of the number of worn items of a known set, but a specific bonus to add to IBL.
If you ask me to add "Increases your strength by (%d+) in Cat Form." and "Increases your armor by (%d+) in Bear Form and Dire Bear Form." patterns, as STR_CAT and ARMOR_BEAR, for instance, I'll do it right away.
No, I do want the number of items in the set :)
I want to be able to know if the set bonus would change if I were to swap a given item for something I have equipped. Lets say i am wearing my normal cat dps gear, which includes the t4 feral shoulders (mantle of malorne) and the t4 feral gloves (greaves of malorne). These two items give me a GREAT set bonus (it doesn't translate to normal stats either, but that is not relevant). Anyway, I want to compare these to the Gloves of Dexterous Manipulation. I need to know when comparing these that I will lose the set bonus. If, on the other hand, I am wearing the Stag-Helm of Malorne also (3 items of the set) I can easily tell in code that I will not be losing the set bonus, and therefor, the gloves would be better for my overall DPS.
Similarly, with the 4 piece bonus, I need to know if I should add/remove the 30 str.
If there is another way to do this with IBL that I dont know about, let me know. The small change I made to my own local IBL works great for me, but I understand your concern with it not fitting in with the design.
If there is another way to do this with IBL that I dont know about, let me know. The small change I made to my own local IBL works great for me, but I understand your concern with it not fitting in with the design.
With ItemBonusLib, you should do:
local ibl = AceLibrary("ItemBonusLib-1.0")
local eq = ibl:GetUnitEquipment("player")
local base_details = ibl:BuildBonusSet(eq)
-- let's see with the Gloves of Dexterous Manipulation (itemLink available in gloveItemLink)
eq.Hands = gloveItemLink
local new_details = ibl:BuildBonusSet(eq)
-- now you can check the diff between base_details and new_details here.
That sounds reasonable for the normal stats. Of course this would mean I would need a bunch of new patterns to be added which are fairly specific.
(2) Set: Your melee attacks in Bear Form and Dire Bear Form have a chance to generate 10 additional rage.
(2) Set: Your melee attacks in Cat Form have a chance to generate 20 additional energy.
(4) Set: Your Shred ability deals an additional 75 damage, and your Lacerate ability does an additional 15 per application.
(2) Set: Reduces the energy cost of your Mangle ability in Cat Form by 5 and increases the threat generated by your Mangle ability in Bear Form by 15%.
(4) Set: Increases the damage dealt by your Rip, Swipe, and Ferocious Bite abilities by 15%.
I was thinking that because there are only a small number of them and because they are specific to raiding feral druids it would be better to handle them in my addon, rather than bloating IBL. I'm sure there are similar bonuses for most of the tier item sets. What do you think?
The thinking behind this is that detecting bonuses, even obscure ones, is a generic solution. If tomorrow, Blizzard were to add a staff with a bonus "Equipped: Increases your Strength by 45 in Cat Form", for instance, your code as it is now would need to be fixed. if the pattern is added to IBL, it would work.
BTW, there already are some obscure patterns in IBL.
I think I understand some of your concerns about how IBL should work, but I dont really know how I can do what I am talking about with the way it is now. How would you recommend handling this?
The first bonus I posted above is a VERY important proc ability. The other ones all modify abilities and not stats. It kind of seems like it is beyond the scope of IBL to have all these strange modifiers. This is the main reason why i suggested having the ability to sum up the number of a set worn.
to PATTERNS_OTHER? (I'm at work right now and cant test it out to see if it does what I am expecting, but I think it would work).
Of course, wowhead lists 354 items sets (http://www.wowhead.com/?itemsets) so this could get out of hand. It might be kind of scary, but what about having the ability for a client addon to inject the values it cares about? Something like:
function ItemBonusLib:CustomPattern(name, key, value)
if(bonus_names[key]) then
self:error(format("Pattern %s(%s) is already defined"), name, key)
return
end
table.insert(L.PATTERNS_OTHER, {pattern=name, effect=value, value=value})
bonus_names[key]=true
end
It does not take into account enchants, and it only takes into account gems that are actually in the item. I plan to enable numbers on specific gems and maybe enchants soon.
All talents are detected and you need to be in cat form for the numbers to be accurate (since it is based off your current stats). This also means that the numbers will change based on buffs, etc.
It does not take into account debuffs on your target (though i plan to put that in).
It does take into account set bonuses (tier sets only), but there is no way right now to detect them (I am working on this piece).
Please post any problems/suggestions/comments here.
Xus over at www.fortegaming.com has implemented a feature in his ForteWarlock which checks for the Voidheart set. Perhaps his code will give you some pointers?
Because I installed it and it does not show anything more in my tooltips.
- show the computed value along with the diff between them, like: 100/120 (+20)
- if possible show the value in "normal form"
- add the option to show both 2.2 and 2.3 value until 2.3 is released
btw I am glad someone made these formulas into an addon :)
Also, the values really only make sense when you are wearing the appropriate gear, and in the appropriate form (i.e. you will get some different values if you are not in the right form).
<in C code>: in function `strjoin'
CatPoints-0.2\CatPoints.lua:180: in function <Interface\AddOns\CatPoints\CatPoints.lua:176>
CatPoints-0.2\CatPoints.lua:475: in function `DoTooltip'
CatPoints-0.2\CatPoints.lua:464: in function <Interface\AddOns\CatPoints\CatPoints.lua:459>
(tail call): ?:
<in C code>: in function `SetItemRef'
Interface\FrameXML\ChatFrame.lua:2257: in function `ChatFrame_OnHyperlinkShow':
<string>:"*:OnHyperlinkClick":1: in function <[string "*:OnHyperlinkClick"]:1>
---
As for the form I don't really undertsnad, an item is the same whether you are in cat form or druid form, no ? isn't there a way to display computed value without being in cat form ?
You would just end up in druid form with a tooltip saying : "cat points: 546" or something like that.
by the way the only useful values are in bear and cat, the value in druid form is useless so I don't see a reason to even have it if this is what you thought of.
Sometimes it is just annoying to have to go to cat form to compare two equipment pieces, I currently have to do it with RatingBuster and I am not very happy with that (but RatingBuster serve a wider purpose).
Could you tell me what item causes this error?
Yes and no, I guess it would just require a bit more work and introduce additional error. The main reason I am writing this is because I didn't like the static addons that just say 'agility=xxx points' because it is clear, the value of agility depends on many things: ap, crit, talents, form, etc. Now I should be able to calculate in the stat changes if you are not shifted, but (without saving out armor sets, which I dont want to do, though integration with somethign like outfitter might be cool) since you have to be in the gear you want to compare, doing the shift isn't that much more trouble.
As I get it more fleshed out I will probably put that in, but you'll just have to bear with me.
I guess I'm not sure what you mean here. I have to reasons for hiding the value:
1. It will be incorrect (because you are in the wrong form or because you are wearing the wrong gear).
2. I dont want to tooltips to get too bloated because of me. I use a lot of addons that modify tooltips and there is a TON of stuff in there, so I want to add the minimum necessaryt o get the job done.
Basically I just see the shifting as a built in was to decide what to show, without having to resort to doing strange stuff like holding downt he shift key while showing the tooltip or something.
If you want to (and are comfortable doing it) you can change your local copy to always display.
change to
in each of the files.
What you want is not the detection of the number of worn items of a known set, but a specific bonus to add to IBL.
If you ask me to add "Increases your strength by (%d+) in Cat Form." and "Increases your armor by (%d+) in Bear Form and Dire Bear Form." patterns, as STR_CAT and ARMOR_BEAR, for instance, I'll do it right away.
No, I do want the number of items in the set :)
I want to be able to know if the set bonus would change if I were to swap a given item for something I have equipped. Lets say i am wearing my normal cat dps gear, which includes the t4 feral shoulders (mantle of malorne) and the t4 feral gloves (greaves of malorne). These two items give me a GREAT set bonus (it doesn't translate to normal stats either, but that is not relevant). Anyway, I want to compare these to the Gloves of Dexterous Manipulation. I need to know when comparing these that I will lose the set bonus. If, on the other hand, I am wearing the Stag-Helm of Malorne also (3 items of the set) I can easily tell in code that I will not be losing the set bonus, and therefor, the gloves would be better for my overall DPS.
Similarly, with the 4 piece bonus, I need to know if I should add/remove the 30 str.
If there is another way to do this with IBL that I dont know about, let me know. The small change I made to my own local IBL works great for me, but I understand your concern with it not fitting in with the design.
With ItemBonusLib, you should do:
(2) Set: Your melee attacks in Bear Form and Dire Bear Form have a chance to generate 10 additional rage.
(2) Set: Your melee attacks in Cat Form have a chance to generate 20 additional energy.
(4) Set: Your Shred ability deals an additional 75 damage, and your Lacerate ability does an additional 15 per application.
(2) Set: Reduces the energy cost of your Mangle ability in Cat Form by 5 and increases the threat generated by your Mangle ability in Bear Form by 15%.
(4) Set: Increases the damage dealt by your Rip, Swipe, and Ferocious Bite abilities by 15%.
I was thinking that because there are only a small number of them and because they are specific to raiding feral druids it would be better to handle them in my addon, rather than bloating IBL. I'm sure there are similar bonuses for most of the tier item sets. What do you think?
The thinking behind this is that detecting bonuses, even obscure ones, is a generic solution. If tomorrow, Blizzard were to add a staff with a bonus "Equipped: Increases your Strength by 45 in Cat Form", for instance, your code as it is now would need to be fixed. if the pattern is added to IBL, it would work.
BTW, there already are some obscure patterns in IBL.
I don't like patterns for procs, though.
The first bonus I posted above is a VERY important proc ability. The other ones all modify abilities and not stats. It kind of seems like it is beyond the scope of IBL to have all these strange modifiers. This is the main reason why i suggested having the ability to sum up the number of a set worn.
What about adding something like:
to PATTERNS_OTHER? (I'm at work right now and cant test it out to see if it does what I am expecting, but I think it would work).
Of course, wowhead lists 354 items sets (http://www.wowhead.com/?itemsets) so this could get out of hand. It might be kind of scary, but what about having the ability for a client addon to inject the values it cares about? Something like:
They happen as soon as I hover over any items.
I'm not sure about the second one, maybe I'll dl prat and take a look.