• 0

posted a message on Ardent Defender Tracking Addon
Any sugestions?
I'm not to happy with listening to "UNIT_COMBAT" and I have no idea
how to write the FuBar stuff, saved vars and the localisation ...

-- DELETED --
• 0

posted a message on Ardent Defender Tracking Addon
The challenge:
Creating an addon that keeps track of the Paladin talent 'Ardent Defender' and
presents the gathered data in a readable fashion.

What is 'Ardent Defender'?
Ardent Defender
Rank 0/5
Requires 30 points in Protection Talents
When you have less than 35% health, all
damage taken is reduced by 6/12/18/24/30%.

Basic implementation, ideas:
The threshold at witch Ardent Defender kicks in has to be calculated.
An event has to be found, that triggers when the max hp changes.
A guessed event for this could be "UNIT_MAXHEALTH"

Events have to be found, that trigger for incoming damage.
If we are in the range for AD to kick in, before the damage is
landing, we have to calculate:
• The damage that would have landed if we didn't have Ardent Defender
• The damage that Ardent Defender mitigated
• Would we have died on this hit, if we didn't have Ardent Defender
• Would we have died on the last string of hits, if we didn't have Ardent Defender?

Now the last point may need some explanaitons.
For sake of simplicity, let's take a npc that hits
with 1000 damage, every time. Our Paladin is specced
Protection with 5 points in Ardent Defender and has
10000 Hitpoints.
That means Ardent Defender kicks in, if he is in HP
range of 1 to 3499 and it reduces his incoming damage
by 30% (1000 damage becomes 700).

'Would we have died on the last string of hits, if we didn't have Ardent Defender?'
Let's asume we are sitting at 3000 HP, well below the
threshold.
The first hit lands and brings us down to 2300 HP.
We didn't die, AD did not save us since even a 1000 hit
wouldn't have killed us. It mitigated 300 damage though.
Let the npc happily hit on us, without any heals.
We're going down to 1600, 900, 200, -500.
We have taken 5 Hits, bringing us down to -500 HP,
Now if we didn't have Ardent Defender, begining at 3000 HP.
The npc lands 1000 damage, bringing our Paladin down to 2000,
1000, 0, we're dead. We have taken 4 Hits.

In this scenario, Ardent Defender saved us at hit 4, if we
would have been healed at that time. 200 HP with AD vs 0 HP
without it. This has to be accounted for.

Now there are implementations of an Ardent Defender Tracker:

Both of them share the same calculations but they don't
honor the last point, saving the Paladin on a string of hits.
Also, they are both listening to the "COMBAT_TEXT_UPDATE" event,
supposedly used in blizzards scrolling combat text implementation.
Maybe this is not an optimal way of keeping track of the incoming
damage, but i'm not sure about that.