Fix stance update if talent causes new stance to overwrite an old name.

git-svn-id: svn+ssh://svn.curseforge.net/wow/ovale/mainline/trunk@1295 d5049fe3-3747-40f7-a4b5-f36d6801af5f
Change OvaleSpellBook:IsUsableSpell() to allow checking unlearned spells.

Not every spell that is cast is in the spellbook, e.g., spells due to
procs.  Also, fudge the output slightly by checking value of
IsSpellOverlayed() in case the ID of the spell being checked has changed
due to a proc.

git-svn-id: svn+ssh://svn.curseforge.net/wow/ovale/mainline/trunk@1296 d5049fe3-3747-40f7-a4b5-f36d6801af5f
Return proper IsUsableSpell() value if the name differs from GetSpellInfo.

git-svn-id: svn+ssh://svn.curseforge.net/wow/ovale/mainline/trunk@1297 d5049fe3-3747-40f7-a4b5-f36d6801af5f
Fix bug in r1206 in the way that slot <--> action mappings are managed.

The spell/item/macro to slot ID mapping wasn't correctly being added due
to an improper condition.  Now add the mapping if it either doesn't
already exist or if the new slot ID is lower than the existing one (in the
case where a spell is present multiple times on the action bar).

This fixes the return values of the :GetForSpell(), :GetForMacro(), and
:GetForIem() methods to return something other than nil.

git-svn-id: svn+ssh://svn.curseforge.net/wow/ovale/mainline/trunk@1298 d5049fe3-3747-40f7-a4b5-f36d6801af5f
Implement unit.IsDead() script condition.

git-svn-id: svn+ssh://svn.curseforge.net/wow/ovale/mainline/trunk@1299 d5049fe3-3747-40f7-a4b5-f36d6801af5f
Re-implement <power>Cost() conditions in clearer way.

git-svn-id: svn+ssh://svn.curseforge.net/wow/ovale/mainline/trunk@1300 d5049fe3-3747-40f7-a4b5-f36d6801af5f
Add new power-type parameters to be used in SpellInfo().

- Make the "buff no cost" and "buff half cost" parameters power-specific.

  The new parameters are now:

    buff_<powerType>_none, e.g., "buff_chi_none", "buff_focus_none", etc.
    buff_<powerType>_half, e.g., "buff_energy_half", etc.

- Add "min_<powerType>" parameter for minimum resource requirements.

- Add "max_<powerType>" parameter for maximum resource requirements.

  For example, a holy power "finisher" denoted by holy=0 can be capped at
  using a maximum of 3 holy power.

- Teach state:PowerCost() to properly return the cost of a "finisher"
  spell that consumes all (or some variable portion) of the resource.

git-svn-id: svn+ssh://svn.curseforge.net/wow/ovale/mainline/trunk@1301 d5049fe3-3747-40f7-a4b5-f36d6801af5f
Sanity-check a table variable before using it.

git-svn-id: svn+ssh://svn.curseforge.net/wow/ovale/mainline/trunk@1302 d5049fe3-3747-40f7-a4b5-f36d6801af5f
Be more efficient in registering for Eclipse events only in balance spec.

git-svn-id: svn+ssh://svn.curseforge.net/wow/ovale/mainline/trunk@1303 d5049fe3-3747-40f7-a4b5-f36d6801af5f
Add module to track Steady Focus for marksmanship hunters.

git-svn-id: svn+ssh://svn.curseforge.net/wow/ovale/mainline/trunk@1304 d5049fe3-3747-40f7-a4b5-f36d6801af5f
Fix detection of SS/RS in Bandit's Guile module.

git-svn-id: svn+ssh://svn.curseforge.net/wow/ovale/mainline/trunk@1305 d5049fe3-3747-40f7-a4b5-f36d6801af5f
Allow for tracking hidden auras that are managed outside of OvaleAura.

git-svn-id: svn+ssh://svn.curseforge.net/wow/ovale/mainline/trunk@1306 d5049fe3-3747-40f7-a4b5-f36d6801af5f
Properly handle hunter attacks removing the pre-Steady Focus buff.

Some spells don't do any damage on hit and must be tracked in other ways,
e.g., checking for a debuff applied that does the actual damage, or
otherwise, just checking for successful spellcast.

git-svn-id: svn+ssh://svn.curseforge.net/wow/ovale/mainline/trunk@1307 d5049fe3-3747-40f7-a4b5-f36d6801af5f
Add WildMushroomCount() condition.

git-svn-id: svn+ssh://svn.curseforge.net/wow/ovale/mainline/trunk@1308 d5049fe3-3747-40f7-a4b5-f36d6801af5f
Fix BuffCount() when the buff never expires.

git-svn-id: svn+ssh://svn.curseforge.net/wow/ovale/mainline/trunk@1309 d5049fe3-3747-40f7-a4b5-f36d6801af5f
Don't warn about unknown spell for SpellCooldown(sharedCd).

git-svn-id: svn+ssh://svn.curseforge.net/wow/ovale/mainline/trunk@1310 d5049fe3-3747-40f7-a4b5-f36d6801af5f
Remove support for CanStopChannelling(...) statement.

The syntax for it no longer matches the canStopChannelling parameter
of SpellInfo(...).

git-svn-id: svn+ssh://svn.curseforge.net/wow/ovale/mainline/trunk@1311 d5049fe3-3747-40f7-a4b5-f36d6801af5f
Implement SimulationCraft profile translator module.

This does a fairly straightforward translation from SimC action lists into
the equivalent Ovale script language.  It does an incomplete job -- it
only generates functions from the equivalently-named action lists in a
SimC profile, which need hand-editing and inclusion into Ovale icons.

Lexer implemented using coroutines taken from Penlight Lua library.

git-svn-id: svn+ssh://svn.curseforge.net/wow/ovale/mainline/trunk@1312 d5049fe3-3747-40f7-a4b5-f36d6801af5f
Add class/spec-specific exceptions to symbol names for SimC translator.

Also make use of functions defined by standard script fragments when
translating SimC action lists.

git-svn-id: svn+ssh://svn.curseforge.net/wow/ovale/mainline/trunk@1313 d5049fe3-3747-40f7-a4b5-f36d6801af5f
Add Lua program to generate Ovale scripts from SimC profiles.

This program reads the hard-coded directory containing SimC profiles and
outputs the scripts to a "profiles" subdirectory in the current directory.

git-svn-id: svn+ssh://svn.curseforge.net/wow/ovale/mainline/trunk@1314 d5049fe3-3747-40f7-a4b5-f36d6801af5f