Anatta Feral Snapshots

Anatta Feral Snapshots

0 Downloads

This is the version for WoW 7.3.5, it will not work in the BFA prepatch or BFA itself.

For the version that works in 8.0.1, look here: https://wago.io/r1UJQ5lAz

A set of bars that track which buffs were "snapshot" by the main Feral Druid DoT effects, along with their duration.

Feral Druids have a unique mechanic where certain buffs have their effect persist over the length of a DoT even after the buff has worn off. These bars help you maximise the benefits from that mechanic.

The icon for each DoT has coloured ribbons added to it for each relevant buff that it's benefiting from. Yellow for Tiger's Fury, red for Bloodtalons, and blue for Incarnation/Prowl/Shadowmeld's effect on Rake. The size of these ribbons is proportional to the damage increase from the buff, giving a visual representation of their importance. The snapshot information is stored by unique enemy ID, so it will work correctly when fighting several enemies at once.

The bar to the right of the icon shows the duration of the DoT. The bar's full length represents the maximum possible duration when using the "pandemic" mechanic to extend it. So a freshly applied DoT will not fill the bar, but refreshing the DoT before the pandemic window will allow you to fill the bar. The pandemic window is marked on each bar with a subtle vertical white line.

Because a Rip applied with fewer than 5 combo points does less damage per second, a warning is added to the bar if that is detected. This works correctly with the new 8.0 talent Feral Frenzy, despite the unusual way that adds combo points.

The icon for the Rip tracker changes to Ferocious Bite when there's an active Rip and either the target is below 25% health or the player has the Sabertooth talent. It's up to the player to look at the currently snapshot buffs on the Rip and decide if they should refresh it with Bite to continue that snapshot or create a new one by applying a fresh Rip.

If the player takes the Savage Roar talent, a bar is also displayed showing the duration of this buff. Although it's not a DoT and doesn't get snapshot, it's useful to track alongside your Rip so you can choose where to spend combo points. For this reason the Savage Roar buff's bar is set up to mimic Rip's so they tick down at the same rate. That means Savage Roar's duration will often reach beyond the end of the bar, but in practice I find that's enough information to know I don't need to worry about refreshing it any time soon. The pandemic mark for the Savage Roar duration is repositioned correctly depending on how many combo points were used on the current Savage Roar.

The bars account for the talents Jagged Wounds, Sabertooth, Savage Roar, Blootalons and Lunar Inspiration. There's currently no special case handling for set bonuses or legendaries.

This set of bars doesn't tell you what relevant buffs you have currently active (this is a deliberate choice to not try to do everything in a single WeakAura.) I recommend creating a simple buff tracker for Tiger's Fury, Incarnation, and Bloodtalons, and placing them nearby so you can compare your current buffs with what is snapshot on your DoTs.

Customisation

You can position the whole group however you wish, but avoid moving the bars individually as they get dynamically offset in code.

If you want to hide the bars outside combat or outside instances you can add triggers and load settings for the aura FeralDurationAnchor. If that's hidden, all the bars are also hidden.

You can resize both the width and height of the bars (increasing their height increases icon size). However you currently need to reload your interface by typing /reload for the bar positions to correctly update. Dramatically changing their size may make the pandemic markers look a bit ugly, although their position along the bar should always be correct.

You can adjust the space between bars: Open the AnattaFeralCore aura, go to the "Actions" tab, click Expand for "On Init" and look for the line AnattaFeral.bars.yPadding = 0; somewhere near the top. Change the 0 to whatever spacing you want between the bars.

To select which bars to enable: Open the AnattaFeralCore aura, go to the "Actions" tab, click Expand for "On Init".

For instance the false here can be changed to true to show a bar for Thrash.

AnattaFeral.bars.showThrash = true;

Bars for Moonfire and Savage Roar are automatically shown/hidden depending on talent choice, with the other bars shifted upwards to make space for Savage Roar.

Advanced

Most users can ignore this section.

AnattaFeralCore fires some events that creators of other WeakAuras might find useful, as well as making the snapshot information available if you prefer something other than the bar system used here.

If you wish to create your own display system you can safely delete all the auras except for AnattaFeralCore, and it'll process events and manage the snapshot data ready for your auras to work from. Note: Deleting just some of the bars might cause display errors as they position themselves based on eachother.

Generated WeakAura events:

ANATTAFERAL_FINISHER: destGuid, spellId, comboPoints, snapshot

Sent whenever the player uses a finisher. The comboPoints is how many the player had shortly before using the finisher. The snapshot is the state of buffs at the time the finisher was used (see below for details on that table.)

ANATTAFERAL_SAVAGEROAR_FADE

Simply sent when the Savage Roar buff is lost.

ANATTAFERAL_DOT_APPLIED: destGuid, spellId, snapshot

Triggered by application or reapplication of Rake, Rip, Moonfire (from Lunar Inspiration only).

It is triggered by Rip being reapplied by Rip, but not when refreshed by Ferocious Bite.

ANATTAFERAL_DOT_REMOVED: destGuid, spellId

Triggered when one of the player's Rake, Rip, or Moonfire DoTs wears off or is removed.

ANATTAFERAL_SNAPSHOT_BUFF_APPLIED: spellId

Triggered when a snapshot-relevant buff is applied to the player.

ANATTAFERAL_SNAPSHOT_BUFF_REMOVED: spellId

Triggered when a snapshot-relevant buff is lost on the player.

Snapshot table

Some events provide a snapshot table, recording which snapshot-applicable buffs were active when the event occurred. For instance

snapshot["Tiger's Fury"] will be true if Tiger's Fury was active at the time.

Several buffs can provide the Prowl damage increase to Rake, and if any was active at the time that will be shown in snapshot["Prowl"]. This takes into account that Prowl may have been removed by the ability triggering the event. So a ANATTAFERAL_DOT_APPLIED caused by a Rake from stealth will have snapshot["Prowl"] as true.

The buffs recorded in snapshot are "Tiger's Fury", "Bloodtalons, "Prowl".

Snapshot query

At any time you can request information on the snapshot status of DoTs. Any WeakAura can call:

AnattaFeral.snapshot.isDotBuffed(targetGuid, dotName, buffName)

targetGuid is the GUID as given by things like UnitGUID("target")

dotName is the DoT you're interested in. One of: "Rake", "Moonfire", "Rip", "Thrash". These are also listed in the table AnattaFeral.snapshot.Dots where they're key'd by their spellId.

buffName The buff whose presence you want to check for from when the DoT was cast. One of: "Tiger's Fury", "Bloodtalons", "Prowl".

The function also returns false if the DoT is missing from that unit.

Note that it records buffs even for the DoTs that don't benefit from that buff. So you can check if Prowl was active when Rip was used, even though that makes no difference to its damage.

Outside WeakAuras

If you want to access this information from outside of the WeakAuras environment you can make it globally accessible by uncommenting the line --setglobal("AnattaFeral", AnattaFeral); near the top of AnattaFeralCore's action:init code. Be very careful when setting a global variable like this as there's no checking for name collisions.

Changelog

Added options to pick which bars you want shown.

Added bar tracking Thrash, including the snapshot effect of Moment of Clarity (which only applies to Thrash.) And minor fixes.

Improved custom size support. Ribbons and pandemic markers now adjust to different heights of bars.

Changed how standard buffs are tracked to cope with extensions from the Behemoth Headdress legendary.