Download
(10 Kb)
Download
Updated: 09-07-14 12:03 PM
Pictures
File Info
Compatibility:
Siege of Orgrimmar (5.4)
Escalation (5.3)
Thunder Isle (5.2)
Landfall (5.1)
Mists of Pandaria (5.0.4)
Updated:09-07-14 12:03 PM
Created:10-20-12 02:36 AM
Downloads:2,220
Favorites:20
MD5:
Categories:Warrior, Tank, Combat Mods
5.4
Shield Maid
Version: 1.4.1
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.


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.

Some configuration variables can still only be adjusted in the Config.lua file.
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.
Optional Files (0)


Archived Files (17)
File Name
Version
Size
Author
Date
1.4.0
10kB
Twattle
09-05-14 01:32 PM
1.3.8
5kB
Twattle
08-26-14 06:21 AM
1.3.7
5kB
Twattle
12-03-12 11:57 AM
1.3.6
5kB
Twattle
11-01-12 01:34 PM
1.3.5
5kB
Twattle
10-29-12 05:53 AM
1.3.4
5kB
Twattle
10-28-12 09:50 AM
1.3.3
5kB
Twattle
10-28-12 12:59 AM
1.3.2
5kB
Twattle
10-27-12 11:27 PM
1.3.1
5kB
Twattle
10-27-12 07:48 AM
1.2.2
4kB
Twattle
10-24-12 12:33 PM
1.2.1
4kB
Twattle
10-23-12 10:46 PM
1.2.0
4kB
Twattle
10-23-12 02:57 PM
1.1.0
4kB
Twattle
10-22-12 02:11 PM
1.0.3
3kB
Twattle
10-21-12 08:52 AM
1.0.2
2kB
Twattle
10-21-12 01:16 AM
1.0.1
2kB
Twattle
10-20-12 09:41 AM
1.0.0
2kB
Twattle
10-20-12 02:36 AM


Post A Reply Comment Options
Unread 10-24-12, 12:12 PM  
Saintvallen
A Fallenroot Satyr

Forum posts: 28
File comments: 142
Uploads: 0
Originally Posted by Twattle
Originally Posted by Saintvallen
anyone know where I can find the code for reducing the space between the icons? can't seem to find it in neither core nor config.
I'll add a configuration option in the next version. Think I'll upload it tonight.
Thank you, and maybe an option to swap the icons.
Saintvallen is offline Report comment to moderator  
Reply With Quote
Unread 10-24-12, 12:05 PM  
Twattle
A Kobold Labourer
AddOn Author - Click to view AddOns

Forum posts: 0
File comments: 15
Uploads: 1
Originally Posted by Saintvallen
anyone know where I can find the code for reducing the space between the icons? can't seem to find it in neither core nor config.
I'll add a configuration option in the next version. Think I'll upload it tonight.
Twattle is offline Report comment to moderator  
Reply With Quote
Unread 10-24-12, 12:03 PM  
Saintvallen
A Fallenroot Satyr

Forum posts: 28
File comments: 142
Uploads: 0
anyone know where I can find the code for reducing the space between the icons? can't seem to find it in neither core nor config.
Saintvallen is offline Report comment to moderator  
Reply With Quote
Unread 10-24-12, 08:16 AM  
Gallahead
A Kobold Labourer
 
Gallahead's Avatar
AddOn Compiler - Click to view compilations

Forum posts: 1
File comments: 196
Uploads: 2
thanks for all the changes!

fits perfectly

__________________
Thinktank UI
Gallahead, Tank since WoW 1.0
Gallahead is offline Report comment to moderator  
Reply With Quote
Unread 10-24-12, 04:29 AM  
Twattle
A Kobold Labourer
AddOn Author - Click to view AddOns

Forum posts: 0
File comments: 15
Uploads: 1
Originally Posted by zork
May I suggest adding another optional formatting function? What I like to use is

Lua Code:
  1. --number format func
  2.   local numFormat = function(v)
  3.     if v > 1E10 then
  4.       return (floor(v/1E9)).."b"
  5.     elseif v > 1E9 then
  6.       return (floor((v/1E9)*10)/10).."b"
  7.     elseif v > 1E7 then
  8.       return (floor(v/1E6)).."m"
  9.     elseif v > 1E6 then
  10.       return (floor((v/1E6)*10)/10).."m"
  11.     elseif v > 1E4 then
  12.       return (floor(v/1E3)).."k"
  13.     elseif v > 1E3 then
  14.       return (floor((v/1E3)*10)/10).."k"
  15.     else
  16.       return v
  17.     end
  18.   end

That restults in
1 = 1
11 = 11
110 = 110
1100 = 1.1k
11000 = 11k
110000 = 110k
1100000 = 1.1m
11000000 = 11m

I can read that number faster than the fullprint.
Good suggestion. I completely agree that it is easier to read. I'll add it tonight if I get some free time.
Twattle is offline Report comment to moderator  
Reply With Quote
Unread 10-24-12, 03:36 AM  
zork
A Pyroguard Emberseer
 
zork's Avatar
AddOn Author - Click to view AddOns

Forum posts: 1351
File comments: 3223
Uploads: 86
May I suggest adding another optional formatting function? What I like to use is

Lua Code:
  1. --number format func
  2.   local numFormat = function(v)
  3.     if v > 1E10 then
  4.       return (floor(v/1E9)).."b"
  5.     elseif v > 1E9 then
  6.       return (floor((v/1E9)*10)/10).."b"
  7.     elseif v > 1E7 then
  8.       return (floor(v/1E6)).."m"
  9.     elseif v > 1E6 then
  10.       return (floor((v/1E6)*10)/10).."m"
  11.     elseif v > 1E4 then
  12.       return (floor(v/1E3)).."k"
  13.     elseif v > 1E3 then
  14.       return (floor((v/1E3)*10)/10).."k"
  15.     else
  16.       return v
  17.     end
  18.   end

That restults in
1 = 1
11 = 11
110 = 110
1100 = 1.1k
11000 = 11k
110000 = 110k
1100000 = 1.1m
11000000 = 11m

I can read that number faster than the fullprint.
__________________
| Simple is beautiful.
| Roth UI | Roth UI FAQ | GoogleCode | Zork | TDMOG

"I wonder what the non-pathetic people are doing tonight?" - Rajesh Koothrappali (The Big Bang Theory)
Last edited by zork : 10-24-12 at 03:39 AM.
zork is offline Report comment to moderator  
Reply With Quote
Unread 10-22-12, 08:46 PM  
Gallahead
A Kobold Labourer
 
Gallahead's Avatar
AddOn Compiler - Click to view compilations

Forum posts: 1
File comments: 196
Uploads: 2
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!
__________________
Thinktank UI
Gallahead, Tank since WoW 1.0
Gallahead is offline Report comment to moderator  
Reply With Quote
Unread 10-22-12, 02:15 PM  
Twattle
A Kobold Labourer
AddOn Author - Click to view AddOns

Forum posts: 0
File comments: 15
Uploads: 1
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.
Twattle is offline Report comment to moderator  
Reply With Quote
Unread 10-22-12, 08:17 AM  
Twattle
A Kobold Labourer
AddOn Author - Click to view AddOns

Forum posts: 0
File comments: 15
Uploads: 1
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.
Twattle is offline Report comment to moderator  
Reply With Quote
Unread 10-22-12, 07:57 AM  
Gallahead
A Kobold Labourer
 
Gallahead's Avatar
AddOn Compiler - Click to view compilations

Forum posts: 1
File comments: 196
Uploads: 2
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
__________________
Thinktank UI
Gallahead, Tank since WoW 1.0
Gallahead is offline Report comment to moderator  
Reply With Quote
Unread 10-22-12, 05:50 AM  
Twattle
A Kobold Labourer
AddOn Author - Click to view AddOns

Forum posts: 0
File comments: 15
Uploads: 1
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.
Twattle is offline 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: 1191
File comments: 783
Uploads: 82
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.
Dridzt is offline Report comment to moderator  
Reply With Quote
Unread 10-21-12, 08:54 AM  
Twattle
A Kobold Labourer
AddOn Author - Click to view AddOns

Forum posts: 0
File comments: 15
Uploads: 1
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?
Twattle is offline Report comment to moderator  
Reply With Quote
Unread 10-21-12, 08:54 AM  
Twattle
A Kobold Labourer
AddOn Author - Click to view AddOns

Forum posts: 0
File comments: 15
Uploads: 1
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.
Twattle is offline Report comment to moderator  
Reply With Quote
Unread 10-21-12, 03:26 AM  
Gallahead
A Kobold Labourer
 
Gallahead's Avatar
AddOn Compiler - Click to view compilations

Forum posts: 1
File comments: 196
Uploads: 2
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
__________________
Thinktank UI
Gallahead, Tank since WoW 1.0
Last edited by Gallahead : 10-21-12 at 03:27 AM.
Gallahead is offline Report comment to moderator  
Reply With Quote
Post A Reply



Category Jump: