/Probably

Rotation automation helper for World of Warcraft Cataclysm

Primary LanguageLuaOtherNOASSERTION

Probably for Cataclysm

Probably is an event, module and timer based rotation optimization add-on for World of Warcraft Cataclysm.

Probably is licensed under a modified BSD license.

Notes

Probably is in alpha status.

Known Issues

  • You must /reload to get custom rotations to show up.
  • "player.party" and "player.raid" do not work properly.
  • "target.deathin" does not work properly.
  • "target.boss" returns false when it should not.
  • "!target.spell(Explosive Shot).range" may not be working.
  • "modifier.enemies" may not be working.
  • Need a way to see if X raid/party members are < Y health. ex: if 3 or more players are below 85% health use Chain Heal.
  • Better: Need a way to see if X raid/party members are within Y yards of target, [and under Z health].
  • Need a "health pressure" like deathin(seconds) for friendly targets. ex: If raid1.deathin(2) use Quick Heal.
  • A way to see if we are following. (Catch the "You are now following X" event?)

DSL Conditions

Unit Resources

ProbablyEngine.condition.register("focus", function(target, spell)
ProbablyEngine.condition.register("holypower", function(target, spell)
ProbablyEngine.condition.register("shadoworbs", function(target, spell)
ProbablyEngine.condition.register("energy", function(target, spell)
ProbablyEngine.condition.register("timetomax", function(target, spell)
ProbablyEngine.condition.register("tomax", function(target, spell)
ProbablyEngine.condition.register("rage", function(target, spell)
ProbablyEngine.condition.register("chi", function(target, spell)
ProbablyEngine.condition.register("demonicfury", function(target, spell)
ProbablyEngine.condition.register("embers", function(target, spell)
ProbablyEngine.condition.register("soulshards", function(target, spell
ProbablyEngine.condition.register("combopoints", function()
ProbablyEngine.condition.register("runicpower", function(target, spell)
ProbablyEngine.condition.register("runes.count", function(target, rune)
ProbablyEngine.condition.register("runes.depleted", function(target, spell)
ProbablyEngine.condition.register("runes", function(target, rune)
ProbablyEngine.condition.register("health", function(target, spell)
ProbablyEngine.condition.register("mana", function(target, spell)
ProbablyEngine.condition.register("raid.health", function()

Unit Form/Stance

ProbablyEngine.condition.register("stance", function(target, spell)
ProbablyEngine.condition.register("form", function(target, spell)
ProbablyEngine.condition.register("seal", function(target, spell)

Buff/Debuff Functions

ProbablyEngine.condition.register("buff", function(target, spell)
ProbablyEngine.condition.register("buff.any", function(target, spell)
ProbablyEngine.condition.register("buff.count", function(target, spell)
ProbablyEngine.condition.register("debuff", function(target, spell)
ProbablyEngine.condition.register("debuff.any", function(target, spell)
ProbablyEngine.condition.register("debuff.count", function(target, spell)
ProbablyEngine.condition.register("debuff.duration", function(target, spell)
ProbablyEngine.condition.register("buff.duration", function(target, spell)

Class Specific Functions

ProbablyEngine.condition.register("balance.sun", function(target, spell)
ProbablyEngine.condition.register("balance.moon", function(target, spell)
ProbablyEngine.condition.register("totem", function(target, totem)
ProbablyEngine.condition.register("totem.duration", function(target, totem)
ProbablyEngine.condition.register("mushrooms", function ()

Positioning and Movement

ProbablyEngine.condition.register("behind", function(target, spell)
ProbablyEngine.condition.register("infront", function(target, spell)

Unit Status

ProbablyEngine.condition.register("range", function(target, range)
ProbablyEngine.condition.register("level", function(target, range)
ProbablyEngine.condition.register("combat", function(target, range)
ProbablyEngine.condition.register("alive", function(target, spell)
ProbablyEngine.condition.register('dead', function (target)
ProbablyEngine.condition.register('swimming', function ()
ProbablyEngine.condition.register("target", function(target, spell)
ProbablyEngine.condition.register("player", function(target, spell)
ProbablyEngine.condition.register("isPlayer", function (target)
ProbablyEngine.condition.register("exists", function(target)
ProbablyEngine.condition.register("hashero", function(unit, spell)
ProbablyEngine.condition.register("charmed", function(unit, _)
ProbablyEngine.condition.register("modifier.player", function()
ProbablyEngine.condition.register("classification", function (target, spell)
ProbablyEngine.condition.register('boss', function (target, spell)
ProbablyEngine.condition.register("id", function(target, id)
ProbablyEngine.condition.register("toggle", function(toggle, spell)
ProbablyEngine.condition.register("threat", function(target, spell)
ProbablyEngine.condition.register("moving", function(target, spell)
ProbablyEngine.condition.register("friend", function(target, spell)
ProbablyEngine.condition.register("enemy", function(target, spell)
ProbablyEngine.condition.register("time", function(target, range)
ProbablyEngine.condition.register("deathin", function(target, range)
ProbablyEngine.condition.register("ttd", function(target, range)
ProbablyEngine.condition.register("role", function(target, role)
ProbablyEngine.condition.register("name", function (target, expectedName)
ProbablyEngine.condition.register("creatureType", function (target, expectedType)
ProbablyEngine.condition.register("class", function (target, expectedClass)

Keybinds

ProbablyEngine.condition.register("modifier.shift", function()
ProbablyEngine.condition.register("modifier.control", function()
ProbablyEngine.condition.register("modifier.alt", function()
ProbablyEngine.condition.register("modifier.lshift", function()
ProbablyEngine.condition.register("modifier.lcontrol", function()
ProbablyEngine.condition.register("modifier.lalt", function()
ProbablyEngine.condition.register("modifier.rshift", function()
ProbablyEngine.condition.register("modifier.rcontrol", function()
ProbablyEngine.condition.register("modifier.ralt", function()

Toggle Buttons

ProbablyEngine.condition.register("modifier.multitarget", function()
ProbablyEngine.condition.register("modifier.cooldowns", function()
ProbablyEngine.condition.register("modifier.cooldown", function()
ProbablyEngine.condition.register("modifier.toggle", function(toggle)
ProbablyEngine.condition.register("modifier.taunt", function()

Spells

ProbablyEngine.condition.register("spell.cooldown", function(target, spell)
ProbablyEngine.condition.register("spell.recharge", function(target, spell)
ProbablyEngine.condition.register("spell.usable", function(target, spell)
ProbablyEngine.condition.register("spell.exists", function(target, spell)
ProbablyEngine.condition.register("spell.casted", function(target, spell)
ProbablyEngine.condition.register("spell.charges", function(target, spell)
ProbablyEngine.condition.register("spell.cd", function(target, spell)
ProbablyEngine.condition.register("spell.range", function(target, spell)

Interrupts and Casting

ProbablyEngine.condition.register('casting.time', function(target, spell)
ProbablyEngine.condition.register('casting.delta', function(target, spell)
ProbablyEngine.condition.register('channeling', function (target, spell)
ProbablyEngine.condition.register("casting", function(target, spell)
ProbablyEngine.condition.register('interruptsAt', function (target, spell)
ProbablyEngine.condition.register('interruptAt', function (target, spell)
ProbablyEngine.condition.register("modifier.interrupts", function()
ProbablyEngine.condition.register("modifier.interrupt", function()
ProbablyEngine.condition.register("modifier.last", function(target, spell)

Misc

ProbablyEngine.condition.register("dispellable", function(target, spell)
ProbablyEngine.condition.register("disarmable", function(target, spell)
ProbablyEngine.condition.register("modifier.enemies", function()
ProbablyEngine.condition.register("enchant.mainhand", function()
ProbablyEngine.condition.register("enchant.offhand", function()
ProbablyEngine.condition.register("glyph", function(target, spell)
ProbablyEngine.condition.register("modifier.party", function()
ProbablyEngine.condition.register("modifier.raid", function()
ProbablyEngine.condition.register("modifier.members", function()
ProbablyEngine.condition.register("falling", function()
ProbablyEngine.condition.register("modifier.timeout", function(_, spell, time)