Download
(13Kb)
Download
Updated: 03-03-15 12:40 PM
Pictures
File Info
Compatibility:
The Adventure Continues (6.1)
Updated:03-03-15 12:40 PM
Created:10-20-12 02:36 AM
Downloads:9,653
Favorites:22
MD5:
Categories:Warrior, Tank, Combat Mods

Shield Maid  Popular! (More than 5000 hits)

Version: 2.4.0
by: Twattle [More]

Introduction

Shield Maid is a tracker for the two Warrior abilities Shield Barrier and Shield Block. The addon helps decide what ability gives you the best mitigation for your rage points.

The addon adds an icon for each of the two abilities. The icons mimic buttons in indicating whether you have enough rage for each ability. When active, the icons show remaining duration for the buffs. The Shield Barrier icon shows remaining absorb value and the Shield Block icon shows total damage absorbed for the duration of the buff.


Mitigation estimates

The addon calculates the estimated value of Shield Barrier if cast, by looking at your current rage, attack power and stamina levels. The addon also keeps track of incoming, blockable, damage and uses this information to estimate how much your Shield Block ability will mitigate if activated.

The most feasible ability is highlighted with a glow to make it easy to choose where to spend your rage.

NB: When comparing estimated mitigation values, the estimated Shield Barrier value at 60 rage is compared to the estimated mitigation from block (including critical blocks) of the last 6 seconds of incoming damage. This means that the Shield Barrier icon will glow even though the estimated Shield Barrier value is less than the estimated Shield Block value if the mitigation to rage ratio is higher for Shield Barrier.

Learning which spells are blockable
There is no exact way to determine wether or not an incoming attack is blockable before you actually block it. The addon remembers each spell you block and uses the information in future predictions. This approach also means that the addon will interpret a spell as being unblockable until you have blocked it once.


Configuration

In-game configuration available via the /sm or /shieldmaid commands:
help - Displays the available commands.
reset - Resets to the default settings.
lock - Locks the icons.
unlock - Unlocks the icons for dragging.
size <pixels> - Sets the width and height of the icons in pixels.
scale <number> - Sets the scale of the icons.
margin <pixels> - Sets the margin on the icons, e.g. the width of the transparent black border.
hiddenOutOfCombat true/false - Sets a value indicating whether the icons should be hidden when out of combat.
showFrames true/false - Sets a value indicating whether the icon texture frames should be shown.
showGlow true/false - Sets a value indicating whether to show the glow.
showCooldown true/false - Sets a value indicating whether to show the classic cooldown "clock" on icons.

Some configuration variables can still only be adjusted in the Config.lua file.

2.4.0:
  • Updated for patch 6.1.

2.3.1:
  • Versatility scaling was mistakenly not being taken into account when calculating the estimated Shield Barrier value. This have now been fixed.

2.3.0:
  • Changed the way the addon determines whether or not an incoming attack is blockable. Instead of looking at the spell school, the addon now remembers which spells are blockable. See the description for more information.

2.2.0:
  • Added a Gladiator Stance mode. When in Gladiator Stance, the Shield Block and Shield Barrier icons will be replaced by a Shield Charge icon.

2.1.0:
  • Now using the proper glow animations when the glow gets enabled and disabled.
  • The glow will now appear on the most beneficial skill even though the opposite skill is active.
  • The glow will now appear on the most beneficial skill even though it is active, if there is less than 1 second left on the buff. The threshold is configurable in the Config.lua file.
  • The glow will now appear on the Shield Barrier icon even though the buff is active, in case that the spell is the most beneficial one and the remaining absorb left on the current buff is less than 25% of the estimated absorb. The percentage is configurable in the Config.lua file.

2.0.6:
  • Fixed icon names.

2.0.5:
  • Fixed a rare error that would happen when the addon was loaded before spells were initialized.

2.0.4:
  • Fixed an error that made the glow show out of combat even though the option to hide icons out of combat was chosen.

2.0.3:
  • Changed the default border color.
  • Gave names to the icons to make them accessible from other addons.

2.0.2:
  • Added Versatility scaling.
  • Hid the build-in cooldown numbers so only the cooldown "clock" show.

2.0.1:
  • Fixed the cooldown "clock" which was broken after patch 6.0.2.

2.0.0:
  • Updated for patch 6.0.2. Shield Barrier prediction now match the new formula and scales with Resolve.

1.5.0:
  • Added functionality for showing the classic cooldown "clock" on top of the icons. This will be particularly useful in WoD when the cooldown of Shield Block is incresed. The feature can be enabled/disabled via the /shieldmaid showCooldown command.

1.4.2:
  • Fixed a bug that would cause some configuration values to be overwritten by their defaults when the addon was reloaded.

1.4.2:
  • Accidentally hard-coded the update rate to 0.1 s. You can now change it in the Config.lua file again.

1.4.1:
  • Fixed a minor bug that resulted in "Shield Maid: Unloaded" being written multiple times to the console.

1.4.0:
  • Added in-game configuration.
  • Reorganized the addon into classes.

1.3.8:
  • Updated for patch 5.4.
  • Removed the glow alpha configuration option.

1.3.7:
  • Updated for patch 5.1.

1.3.6:
  • Added an option to hide the frames out of combat. Credit goes to Mock for implementation tips.

1.3.5:
  • Added a frame for the icons. The set the frameAlpha-variable to 0 if you wish to hide it.
  • Changed the name of the spacing-variable to margin. The variable now also controls the width of the frame.

1.3.4:
  • Loading and unloading should now work for players using other locales than enGB.

1.3.3:
  • Fixed a bug that sometimes prevented the addon from loading.

1.3.2:
  • The addon now dynamically loads and unloads depending on your class and spec.
  • Added a configuration option for frame strata that defaults to MEDIUM.

1.3.1:
  • Fixed a small bug that would pause logging of blockable damage while Shield Block was active.

1.3.0:
  • Changed the way Shield Block value is estimated. The addon now looks at incoming blockable damage and keeps a moving sum over the last 6 seconds.
  • Added an overlay bar that shows remaining Shield Barrier absorb value.
  • Changed when the glow indicator is shown. The indicator is now only visible when you have enough rage for the preferred ability.
  • Changed the default alpha of inactive icons.

1.2.2:
  • Changed the default font again. Finally satisfied.
  • Changed the default color for information text.
  • Changed the default color and opacity on the glow.
  • Added number truncation, ie. 12345 --> 12k.
  • Added an option for spacing between the two icons.

1.2.1:
  • Fixed a bug in the configuration option to hide the glow.

1.2.0:
  • Changed the font to a monospace font.
  • Removed the decimals from the countdown text.
  • Added an estimated block value which is set to the total amount blocked during the last Shield Block.
  • Added a glow effect that indicates what ability is most feasible. This can be turned off in the Config.lua-file.

1.1.0:
  • Icons are now always visible. Set the inactiveAlpha-variable to 0 in the Config.lua file if you wish to hide icons when the buffs are not active.
  • Icons are now tinted when you have insufficient rage for the corresponding ability.
  • The Shield Barrier icon now shows a predicted absorb value when the buff is not already active and you have sufficient rage.

1.0.3:
  • Added configuration options for anchor and scale.
  • Added several more configuration options for the two types of text.
  • Added an option to show thousands separators.

1.0.2:
  • Identifying spells by id instead of name to avoid localization-issues.
  • Split the config and core code into two separate files.
  • Set the frame strata to "HIGH" on icons to avoid overlap-issues.
  • Bug fixes.

1.0.1:
  • Bug fixes.
Post A Reply Comment Options
Unread 10-22-12, 08:46 PM  
Gallahead
A Defias Bandit
 
Gallahead's Avatar
AddOn Compiler - Click to view compilations

Forum posts: 2
File comments: 199
Uploads: 1
this addons now needs its ultimate clou.

when no shield block is up the amount blocked for the last shield block duration should be the predicted value for the next shield block.
bling bling! give the shield barrier icon a proc-like-glow when the estimated absorb value is higher then the last blocked values. on the other hand give the shield block icon a proc-like-glow when the last blocked amount is higher then the estimated absorb value.

do so and we have the ultimate prot-warrior finisher-deciding mod!
Report comment to moderator  
Reply With Quote
Unread 10-22-12, 02:15 PM  
Twattle
A Defias Bandit
AddOn Author - Click to view AddOns

Forum posts: 2
File comments: 24
Uploads: 2
Originally Posted by Dridzt
Also like the idea of this alot.

If you could incorporate a couple features from my own addon I'd retire it and use/suggest this one instead

BarrierText; Specifically my suggestion if you choose to implement it:

- Add the estimated absorb amount before casting SBar using your same icon at reduced alpha, go full alpha and update with the bubble value after it's cast. (like it shows now)
- [Optionally] similar to how you show blocked amount while SBlock is active, show absorbed amount after bubble is consumed or expires.

Both of these features are implemented in BarrierText, feel free to borrow the code verbatim or just get the formulas and replicate your own way if you think it fits with your addon purpose.
I added a predicted Shield Barrier absorb value using the same formula as you. It seems to be a tiny bit off when you are not at 60 rage though. It is still a pretty good estimate so I'll leave it for now. But I wonder if it is just because the rage increases by 1 (from the 1 rage/s passive) just as I use the ability, or if it is because it does not scale linearly with rage from 20-60.
Report comment to moderator  
Reply With Quote
Unread 10-22-12, 08:17 AM  
Twattle
A Defias Bandit
AddOn Author - Click to view AddOns

Forum posts: 2
File comments: 24
Uploads: 2
Originally Posted by Gallahead
the indicator idea is a great way to decide which skill to use. but it should be an estimated indicator based on something like this: (if possible blocked dmg last 6 sec. > possible shield barrier absorb (incl. vengeance, attack power and rage) then bling-bling-shield block
If there is a way to see if damage is blockable/absorbable (I know some bosses have attacks which is neither), then this is easy to implement. I'll get around to it when I find some spare time

Edit: It should propably be some kind of moving average since the indicators would become useless if theres a period without incoming damage (or dodge/parry streaks etc.).
Last edited by Twattle : 10-22-12 at 08:29 AM.
Report comment to moderator  
Reply With Quote
Unread 10-22-12, 07:57 AM  
Gallahead
A Defias Bandit
 
Gallahead's Avatar
AddOn Compiler - Click to view compilations

Forum posts: 2
File comments: 199
Uploads: 1
Thank you for the input. I will look into it tonight. I don't think I'll display the absorbed amount after the shield expires as I have another idea I just haven't got around to implementing: Whenever Shield Barrier or Shield Block expires, to analyze whether the rage would have been better spent on the other ability and display some kind of indication, maybe add a glow to the preferred ability.
the indicator idea is a great way to decide which skill to use. but it should be an estimated indicator based on something like this: (if possible blocked dmg last 6 sec. > possible shield barrier absorb (incl. vengeance, attack power and rage) then bling-bling-shield block
Report comment to moderator  
Reply With Quote
Unread 10-22-12, 05:50 AM  
Twattle
A Defias Bandit
AddOn Author - Click to view AddOns

Forum posts: 2
File comments: 24
Uploads: 2
Originally Posted by Dridzt
Also like the idea of this alot.

If you could incorporate a couple features from my own addon I'd retire it and use/suggest this one instead

BarrierText; Specifically my suggestion if you choose to implement it:

- Add the estimated absorb amount before casting SBar using your same icon at reduced alpha, go full alpha and update with the bubble value after it's cast. (like it shows now)
- [Optionally] similar to how you show blocked amount while SBlock is active, show absorbed amount after bubble is consumed or expires.

Both of these features are implemented in BarrierText, feel free to borrow the code verbatim or just get the formulas and replicate your own way if you think it fits with your addon purpose.
Thank you for the input. I will look into it tonight. I don't think I'll display the absorbed amount after the shield expires as I have another idea I just haven't got around to implementing: Whenever Shield Barrier or Shield Block expires, to analyze whether the rage would have been better spent on the other ability and display some kind of indication, maybe add a glow to the preferred ability.
Report comment to moderator  
Reply With Quote
Unread 10-21-12, 01:35 PM  
Dridzt
A Pyroguard Emberseer
 
Dridzt's Avatar
AddOn Author - Click to view AddOns

Forum posts: 1360
File comments: 829
Uploads: 55
Also like the idea of this alot.

If you could incorporate a couple features from my own addon I'd retire it and use/suggest this one instead

BarrierText; Specifically my suggestion if you choose to implement it:

- Add the estimated absorb amount before casting SBar using your same icon at reduced alpha, go full alpha and update with the bubble value after it's cast. (like it shows now)
- [Optionally] similar to how you show blocked amount while SBlock is active, show absorbed amount after bubble is consumed or expires.

Both of these features are implemented in BarrierText, feel free to borrow the code verbatim or just get the formulas and replicate your own way if you think it fits with your addon purpose.
Report comment to moderator  
Reply With Quote
Unread 10-21-12, 08:54 AM  
Twattle
A Defias Bandit
AddOn Author - Click to view AddOns

Forum posts: 2
File comments: 24
Uploads: 2
Originally Posted by jayg2772
Great little addon needs some tlc though and some in game scale and anchor abilities as well. Simple yet effective look forward to seeing future updates
I added configuration options for anchor and scale. I don't know if that was what you were after. Also, what is tlc?
Report comment to moderator  
Reply With Quote
Unread 10-21-12, 08:54 AM  
Twattle
A Defias Bandit
AddOn Author - Click to view AddOns

Forum posts: 2
File comments: 24
Uploads: 2
Originally Posted by Gallahead
Originally Posted by Twattle
Thanks a lot for the feedback. I have uploaded a new version with some of your suggestions. I haven't found a clever way to add thousands separators in the numbers since lua's string.format-function doesn't support it, but I'm looking into it. Also, can you tell me how to add Masque support?
wow, glad to see these changes.
no, i have no idea how to add masque support.

this may be not intended but i decided to use it as overlay
and it works pretty well


todey's suggestion:
  • please move the infotext and durationtext coords and color into the config.lua too.
  • add absorb = string.gsub(absorb, "^(-?%d+)(%d%d%d)", '%1.%2') above shieldBarrierIcon.infoText:SetText(absorb) to seperate digits
  • add shieldBlockIcon.totalBlocked = string.gsub(shieldBlockIcon.totalBlocked, "^(-?%d+)(%d%d%d)", '%1.%2') above shieldBlockIcon.infoText:SetText(shieldBlockIcon.totalBlocked) to seperate digits
I have now added more text configuration options. I also added support for using thousands separators. The method you suggested do not work on numbers greater than one million, but I found another method which is pretty clean.
Report comment to moderator  
Reply With Quote
Unread 10-21-12, 03:26 AM  
Gallahead
A Defias Bandit
 
Gallahead's Avatar
AddOn Compiler - Click to view compilations

Forum posts: 2
File comments: 199
Uploads: 1
Originally Posted by Twattle
Thanks a lot for the feedback. I have uploaded a new version with some of your suggestions. I haven't found a clever way to add thousands separators in the numbers since lua's string.format-function doesn't support it, but I'm looking into it. Also, can you tell me how to add Masque support?
wow, glad to see these changes.
no, i have no idea how to add masque support.

this may be not intended but i decided to use it as overlay
and it works pretty well


todey's suggestion:
  • please move the infotext and durationtext coords and color into the config.lua too.
  • add absorb = string.gsub(absorb, "^(-?%d+)(%d%d%d)", '%1.%2') above shieldBarrierIcon.infoText:SetText(absorb) to seperate digits
  • add shieldBlockIcon.totalBlocked = string.gsub(shieldBlockIcon.totalBlocked, "^(-?%d+)(%d%d%d)", '%1.%2') above shieldBlockIcon.infoText:SetText(shieldBlockIcon.totalBlocked) to seperate digits
Last edited by Gallahead : 10-21-12 at 03:27 AM.
Report comment to moderator  
Reply With Quote
Unread 10-21-12, 01:21 AM  
Twattle
A Defias Bandit
AddOn Author - Click to view AddOns

Forum posts: 2
File comments: 24
Uploads: 2
Originally Posted by Gallahead
great idea!
every protection warrior who wants to tank as good as possible will use this mod. keep on working.

i want to suggest some things:
  • seperate the absorb and block amount every third position with a dot.
    5.845 is way better readable than 85845.
  • add
    shieldBarrierIcon:SetFrameStrata("HIGH")
    shieldBlockIcon:SetFrameStrata("HIGH")
    to avoid overlay issues.
  • please, please, please add a lua option for a black, simple, square border with configurable bordersize.
    or add masque support.
    but i think the first one is alot easier and less time consuming.
  • seperate config and core code into 2 different *.lua files.
    this way we don't have to paste and rewrite all our changes on every shieldmaid update
  • use spellid's instead of names so we don't have to translate the skillnames

i got the following error:
Code:
Message: Interface\AddOns\ShieldMaid\ShieldMaid.lua:106: attempt to compare number with nil
Time: 10/20/12 17:26:43
Count: 8
Stack: Interface\AddOns\ShieldMaid\ShieldMaid.lua:106: in function <Interface\AddOns\ShieldMaid\ShieldMaid.lua:99>

Locals: self = <unnamed> {
 0 = <userdata>
}
event = "COMBAT_LOG_EVENT_UNFILTERED"
eventType = "SWING_DAMAGE"
target = "Gallahead"
playerName = "Gallahead"
spellName = -1
blocked = nil
(*temporary) = 16
(*temporary) = 1350746807.186
(*temporary) = "attempt to compare number with nil"
shieldBlockIcon = <unnamed> {
 0 = <userdata>
 durationText = <unnamed> {
 }
 hasShieldBlock = false
 infoText = <unnamed> {
 }
 totalBlocked = 23617
 texture = <unnamed> {
 }
}
Thanks a lot for the feedback. I have uploaded a new version with some of your suggestions. I haven't found a clever way to add thousands separators in the numbers since lua's string.format-function doesn't support it, but I'm looking into it. Also, can you tell me how to add Masque support?
Report comment to moderator  
Reply With Quote
Unread 10-20-12, 09:35 PM  
jayg2772
A Kobold Labourer
AddOn Author - Click to view AddOns

Forum posts: 0
File comments: 3
Uploads: 1
Great little addon needs some tlc though and some in game scale and anchor abilities as well. Simple yet effective look forward to seeing future updates
Report comment to moderator  
Reply With Quote
Unread 10-20-12, 08:45 PM  
zork
A Pyroguard Emberseer
 
zork's Avatar
AddOn Author - Click to view AddOns

Forum posts: 1740
File comments: 3728
Uploads: 77
Oh nice. A shield block damage comparsion against shield barrier value.
__________________
| Simple is beautiful.
| WoWI AddOns | GitHub | Zork (WoW)

"I wonder what the non-pathetic people are doing tonight?" - Rajesh Koothrappali (The Big Bang Theory)
Last edited by zork : 10-20-12 at 08:47 PM.
Report comment to moderator  
Reply With Quote
Unread 10-20-12, 09:16 AM  
Gallahead
A Defias Bandit
 
Gallahead's Avatar
AddOn Compiler - Click to view compilations

Forum posts: 2
File comments: 199
Uploads: 1
great idea!
every protection warrior who wants to tank as good as possible will use this mod. keep on working.

i want to suggest some things:
  • seperate the absorb and block amount every third position with a dot.
    5.845 is way better readable than 85845.
  • add
    shieldBarrierIcon:SetFrameStrata("HIGH")
    shieldBlockIcon:SetFrameStrata("HIGH")
    to avoid overlay issues.
  • please, please, please add a lua option for a black, simple, square border with configurable bordersize.
    or add masque support.
    but i think the first one is alot easier and less time consuming.
  • seperate config and core code into 2 different *.lua files.
    this way we don't have to paste and rewrite all our changes on every shieldmaid update
  • use spellid's instead of names so we don't have to translate the skillnames

i got the following error:
Code:
Message: Interface\AddOns\ShieldMaid\ShieldMaid.lua:106: attempt to compare number with nil
Time: 10/20/12 17:26:43
Count: 8
Stack: Interface\AddOns\ShieldMaid\ShieldMaid.lua:106: in function <Interface\AddOns\ShieldMaid\ShieldMaid.lua:99>

Locals: self = <unnamed> {
 0 = <userdata>
}
event = "COMBAT_LOG_EVENT_UNFILTERED"
eventType = "SWING_DAMAGE"
target = "Gallahead"
playerName = "Gallahead"
spellName = -1
blocked = nil
(*temporary) = 16
(*temporary) = 1350746807.186
(*temporary) = "attempt to compare number with nil"
shieldBlockIcon = <unnamed> {
 0 = <userdata>
 durationText = <unnamed> {
 }
 hasShieldBlock = false
 infoText = <unnamed> {
 }
 totalBlocked = 23617
 texture = <unnamed> {
 }
}
Last edited by Gallahead : 10-20-12 at 09:29 AM.
Report comment to moderator  
Reply With Quote
Post A Reply



Category Jump: