Go to Page... |
Compatibility: | Dragonflight (10.0.2) |
Updated: | 12-21-22 03:43 AM |
Created: | 06-12-18 02:08 PM |
Downloads: | 1,236 |
Favorites: | 5 |
MD5: |
This has been updated to [nominally] work in Dragonflight. No rotations have been entered, and hasn't been fully tested yet. Promised fixes were lost sometime in the last 4 years :P
GitHub project here
Overview
The aim of Prediction is to take your character's current state (gear, buffs, debuffs, etc) and attempt to predict what abilities you should be using within the next few moments. It does this by keeping an internal database of 'Rules' - similar to SimC - and a list of 'Effects'. These Rules and Effects make use of a simple API that has been exposed for the player to use, and can be edited/updated in-game. It also includes a personal dps meter, which allows you to easily test the efficacy of your priority list.
The config frame is restricted to your class and talent specialization, but it allows you to select/make different configs of your own choosing, based on your selected talents and/or named rulesets. You can also use the Import/Export feature to save and share Rulesets.
Updating this addon will cause the default Rulesets to be changed to the author's versions. You can create your own rulesets to prevent losing any customisations you may have made.
Priority Lists Implemented *
Death Knight (Blood)
Druid (Restoration)
Mage (Arcane - no talents)
Monk (Mistweaver)
Paladin (Holy)
Priest (Discipline, Holy)
Shaman (Elemental, Restoration)
* Not necessarily optimal, doesn't include healing abilities, and only effects of the included spells were implemented. The astute reader will note these are primarily healing specs - they are easier to start with, as have fewer dps abilities. See the Changelog to see a very brief description of the test builds.
Options
/prediction [option string]
ruleset [name]Switch to the specified ruleset. This can be done anytime, and is included mainly to facilitate interplay with other addons through a macro.
frequency [num]The frequency for calculations to take place. More results in a smoother experience. (0-30, default 16)
overlay [options]on|off
ooc on|offIf the debug overlay is visible or not. The overlay is a fixed size, and atm data overflowing the overlay results in loss of frames. Use the following options at your discretion.
[+-]spellsDisplay all spells in overlay. Some specs, such as BM Hunter, this will cause massive frame rate loss, so you're better off using the targeted version below.
[+-]spell [spell name]Display the selected spell in the overlay. This can be especially useful in the event the spell you are interested in is not automatically tracked (a victim of the Blizz IsSpellKnown bug).
[+-]predictionDisplay the prediction calculations. Useful for debugging your priority list, difficult to follow though. Screenshots are generally required to snapshot due to the pace of predictions.
Display the HUD when out of combat. Also, the HUD will only display on a non-friendly target.
latency [num]The latency in seconds (default 0.18).
size [pixels]The base size of the icons. All icons are scaled from this (default 80).
offsetX [pixels]Positioning of center of current prediction. Predictions slide in from the right of this location.
offsetY [pixels]Positioning of center of current prediction.
secondBest on|offDisplay the second best cast also. This is bugged at the moment and never displays.
showDPS on|offDisplay the personal damage meter. Non-configurable atm, to the bottom-right of the frame.
Evaluation Sequence
Player { name The character's name class The character's class spec The character's current specialization talents A list of the character's chosen talents gear A list of the character's equipped gear enchants NOT YET IMPLEMENTED haste The character's haste value, where 1 = 100% hp_percent The character's life, as percent resources A list of resources the character may have, with associated values maxResources A list of the maximums a character may have of each resource runes For Death Knights, recharge times for each rune buffs A named list of buffs that the character currently has debuffs A named list of debuffs that the character currently has spells A named list of spells that the character has available } Pet { name The pet's name class The pet's class spec The pet's current specialization haste The pet's haste value, where 1 = 100% hp_percent The pet's life, as percent resources A list of resources the pet may have, with associated values maxResources A list of the maximums a pet may have of each resource buffs A named list of buffs the pet currently has debuffs A named list of debuffs the pet currently has } Target { name The target's name hp_percent The target's life, as percent resources A list of resources the target may have, with associated values buffs A named list of buffs that the target currently has debuffs A named list of debuffs that the target currently has cast The name of the currently casting spell, or NIL channel The name of the currently channeled spell, or NIL interruptible If the cast/channel can be interrupted } Buff/Debuff { count How many stacks the buff/debuff has timeRemaining How long the buff/debuff has left till it is exhausted, in seconds caster Who cast the ability } Spell { spellId The id of the spell name The name of the spell icon Path to the icon file baseCastTime Cast time without haste taken into account castTime Current cast time baseCooldown Cooldown without haste and abilities taken into account effects List of effects that this spell has on successful cast maxCharges How many charges this spell may have currentCharges How many charges the spell currently has remainingCooldown How long (in seconds) till reusable }
Player.runes.available How many runes are available right now AddRunes(x) Recharge x runes UseRunes(x) Use x runes GetPeriod() Return how long in seconds to apply a buff/regen/cast update for Procced(chance) Returns true chance percent of the time OverrideGCD(time) Tell the engine the spell uses a different GCD. SetInstant() Tells the engine the spell used an instant version instead of a cast. SetDelayEffect(time, instructions) Tells the engine there is an effect that is delayed, e.g. Elemental T21_2PC causes Earthen Strength when spell lands, not when cast.
Target.debuffs['Flame Shock'] = { count = 0, timeRemaining = 15, caster = 'player', } local spent = math.min(20, Player.resources['Maelstrom']) if Player.talents['Aftershock'] then spent = spent * 0.7 end Player.resources['Maelstrom'] = Player.resources['Maelstrom'] - spent
(not Player.buffs['Totem Mastery'] or Player.buffs['Totem Mastery'].timeRemaining < 1.5)
(Target.debuffs['Flame Shock'] and Target.debuffs['Flame Shock'].timeRemaining < 9)
Comment Options |
Chosenfish |
View Public Profile |
Send a private message to Chosenfish |
Find More Posts by Chosenfish |
Add Chosenfish to Your Buddy List |
12-08-20, 10:05 AM | |
A Kobold Labourer
Forum posts: 0
File comments: 141
Uploads: 0
|
Did this addon ever took off?
|
|
soyolas |
View Public Profile |
Send a private message to soyolas |
Find More Posts by soyolas |
Add soyolas to Your Buddy List |