Print timespans in a prettier way.

git-svn-id: svn+ssh://svn.curseforge.net/wow/ovale/mainline/trunk@1135 d5049fe3-3747-40f7-a4b5-f36d6801af5f
Silence compiler.pl warnings.

git-svn-id: svn+ssh://svn.curseforge.net/wow/ovale/mainline/trunk@1136 d5049fe3-3747-40f7-a4b5-f36d6801af5f
Change all "dumb" modules into AceAddon-3.0 sub-modules of Ovale.

This allows for all modules to be accessed via the basic methods provided
by AceAddon-3.0 instead of needing to invent a separate registration
process for Ovale modules.

git-svn-id: svn+ssh://svn.curseforge.net/wow/ovale/mainline/trunk@1137 d5049fe3-3747-40f7-a4b5-f36d6801af5f
Allow for combo-point finishers to specify the minimum CPs required.

Combo-point finishers are tagged as combo=0 in SpellInfo(), and Ovale does
extra processing for CP finishers to keep track of their state.  However,
some finishers can be cast with no CPs, e.g., glyphed Savage Roar.

git-svn-id: svn+ssh://svn.curseforge.net/wow/ovale/mainline/trunk@1138 d5049fe3-3747-40f7-a4b5-f36d6801af5f
Add method OvaleStance:GetStance() to return the current stance name.

git-svn-id: svn+ssh://svn.curseforge.net/wow/ovale/mainline/trunk@1139 d5049fe3-3747-40f7-a4b5-f36d6801af5f
Redesign OvaleCondition so that it is a registry for script conditions.

Split out the various script conditions into their own files.

git-svn-id: svn+ssh://svn.curseforge.net/wow/ovale/mainline/trunk@1140 d5049fe3-3747-40f7-a4b5-f36d6801af5f
Allow registering a script for all classes.

git-svn-id: svn+ssh://svn.curseforge.net/wow/ovale/mainline/trunk@1141 d5049fe3-3747-40f7-a4b5-f36d6801af5f
Add a simple regression test for the PaperDoll stats.

Uncommenting the script registration adds a new script that may be
selected with instructions for how to pass the regression test.

git-svn-id: svn+ssh://svn.curseforge.net/wow/ovale/mainline/trunk@1142 d5049fe3-3747-40f7-a4b5-f36d6801af5f
When displaying values in the icons, show the full value in the tooltip.

git-svn-id: svn+ssh://svn.curseforge.net/wow/ovale/mainline/trunk@1143 d5049fe3-3747-40f7-a4b5-f36d6801af5f
Allow script condition to return "by value" if asValue=1 is a parameter.

This mirrors the way that custom functions defined via AddFunction work
when asValue=1 is in the function definition.

git-svn-id: svn+ssh://svn.curseforge.net/wow/ovale/mainline/trunk@1144 d5049fe3-3747-40f7-a4b5-f36d6801af5f
Add more regression tests for OvaleTimeSpan.

git-svn-id: svn+ssh://svn.curseforge.net/wow/ovale/mainline/trunk@1145 d5049fe3-3747-40f7-a4b5-f36d6801af5f
Split the OvaleState:ApplySpell() method into smaller pieces.

git-svn-id: svn+ssh://svn.curseforge.net/wow/ovale/mainline/trunk@1146 d5049fe3-3747-40f7-a4b5-f36d6801af5f
Simplify OvaleState and only track regen for the current power resource.

git-svn-id: svn+ssh://svn.curseforge.net/wow/ovale/mainline/trunk@1147 d5049fe3-3747-40f7-a4b5-f36d6801af5f
Add new module that manages pools of reference-counted tables.

This implementation is intrusive -- it adds additional properties to the
tables that it returns from the pools.

git-svn-id: svn+ssh://svn.curseforge.net/wow/ovale/mainline/trunk@1148 d5049fe3-3747-40f7-a4b5-f36d6801af5f
Move state kept in OvaleState into the relevant modules.

Each module now manages part of the state for the simulator.  A module
needs to define the following (possibly empty) methods:

    ResetState(state)
    ApplySpellStart(state, ...)
    ApplySpellToPlayer(state, ...)
    ApplySpellToTarget(state, ...)

The module also needs to define a state prototype with additional methods
that should be mixed into the state object maintained by OvaleState.

Modules register/unregister their state for the simulator using:

    OvaleState:RegisterState(...)
    OvaleState:UnregisterState(...)

This de-couples OvaleState from every module that tracks some piece of
information in the game.

git-svn-id: svn+ssh://svn.curseforge.net/wow/ovale/mainline/trunk@1149 d5049fe3-3747-40f7-a4b5-f36d6801af5f
Rename static property OvaleState.maintenant to OvaleState.now.

git-svn-id: svn+ssh://svn.curseforge.net/wow/ovale/mainline/trunk@1150 d5049fe3-3747-40f7-a4b5-f36d6801af5f
Rename static property OvaleState.attenteFinCast to OvaleState.nextCast.

git-svn-id: svn+ssh://svn.curseforge.net/wow/ovale/mainline/trunk@1151 d5049fe3-3747-40f7-a4b5-f36d6801af5f
Add new module OvaleCooldown that manages cooldown information.

Move GCD and spell cooldown state tracked in OvaleState into
OvaleCooldown.

git-svn-id: svn+ssh://svn.curseforge.net/wow/ovale/mainline/trunk@1152 d5049fe3-3747-40f7-a4b5-f36d6801af5f
Remove dependencies on OvalePaperDoll solely for the player's class.

Check the player's class in the individual modules independently by
calling UnitClass("player') instead.

This flattens out the module dependency tree.

git-svn-id: svn+ssh://svn.curseforge.net/wow/ovale/mainline/trunk@1153 d5049fe3-3747-40f7-a4b5-f36d6801af5f
More complete fix to problem noted in r1108 with auras that don't expire.

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