Fix ticket 301 - Allow Define() to take decimal values.

Extend Define() to allow for non-alphanumeric values.  Also allow for "_",
".", and "=" in the value.  Spaces are still prohibited.

git-svn-id: svn+ssh://svn.curseforge.net/wow/ovale/mainline/trunk@1065 d5049fe3-3747-40f7-a4b5-f36d6801af5f
Clear functions defined by AddFunction before compiling the script.

Old function names were lingering between script compilations.
Noted by @ShmooDude.

git-svn-id: svn+ssh://svn.curseforge.net/wow/ovale/mainline/trunk@1066 d5049fe3-3747-40f7-a4b5-f36d6801af5f
Remove comment for removed TickValue() primary condition.

git-svn-id: svn+ssh://svn.curseforge.net/wow/ovale/mainline/trunk@1067 d5049fe3-3747-40f7-a4b5-f36d6801af5f
Clarify how the complement of a time span is calculated.

git-svn-id: svn+ssh://svn.curseforge.net/wow/ovale/mainline/trunk@1068 d5049fe3-3747-40f7-a4b5-f36d6801af5f
Rename "atTime" back to "origin" in OvaleConditions.

The use of atTime here doesn't match the semantics of atTime in
OvaleBestAction and it's clearer to use a different name.

git-svn-id: svn+ssh://svn.curseforge.net/wow/ovale/mainline/trunk@1069 d5049fe3-3747-40f7-a4b5-f36d6801af5f
Back out r1042 which added a time component to OvaleBestAction:Compute().

OvaleBestAction should always refer to the state maintained by OvaleState,
otherwise, there could be errors in computing an action.

git-svn-id: svn+ssh://svn.curseforge.net/wow/ovale/mainline/trunk@1070 d5049fe3-3747-40f7-a4b5-f36d6801af5f
Track player's power using events in OvalePower.

git-svn-id: svn+ssh://svn.curseforge.net/wow/ovale/mainline/trunk@1071 d5049fe3-3747-40f7-a4b5-f36d6801af5f
Rename some variables for code consistency.

git-svn-id: svn+ssh://svn.curseforge.net/wow/ovale/mainline/trunk@1072 d5049fe3-3747-40f7-a4b5-f36d6801af5f
Remove broken and unused EffectiveMana() script condition.

git-svn-id: svn+ssh://svn.curseforge.net/wow/ovale/mainline/trunk@1073 d5049fe3-3747-40f7-a4b5-f36d6801af5f
Sanity check arguments to script conditions.

Set local variables for all of the expected condition parameters at the
start of the condition implementation, and set the target as well if used.
Also properly set default values for script conditions.

git-svn-id: svn+ssh://svn.curseforge.net/wow/ovale/mainline/trunk@1074 d5049fe3-3747-40f7-a4b5-f36d6801af5f
Account for damage-multiplier auras that stack.

An aura whose effect stacks can set "stacking=1" in a SpellInfo
declaration.

git-svn-id: svn+ssh://svn.curseforge.net/wow/ovale/mainline/trunk@1075 d5049fe3-3747-40f7-a4b5-f36d6801af5f
Refactor spell-scoring to new module OvaleScore.

Fix scores not being sent to damage meters in change introduced in r855,
where the wrong module names were being used, so none were ever found
despite proper registration of the damage meter functions.

git-svn-id: svn+ssh://svn.curseforge.net/wow/ovale/mainline/trunk@1076 d5049fe3-3747-40f7-a4b5-f36d6801af5f
Fix the return value of TimeInCombat() script condition.

git-svn-id: svn+ssh://svn.curseforge.net/wow/ovale/mainline/trunk@1077 d5049fe3-3747-40f7-a4b5-f36d6801af5f
Add temporary debugging code that tracks snapshots while in combat.

git-svn-id: svn+ssh://svn.curseforge.net/wow/ovale/mainline/trunk@1078 d5049fe3-3747-40f7-a4b5-f36d6801af5f
Allow for custom functions in scripts to support the usual parameters.

The new syntax is:

    AddFunction FuncName param1=value1 param2=value2 { ... }

Where the parameter=value pairs can be used to determine if that function
meets the current conditions, e.g., mastery=1 to only have that function
be valid in the first specialization.

git-svn-id: svn+ssh://svn.curseforge.net/wow/ovale/mainline/trunk@1079 d5049fe3-3747-40f7-a4b5-f36d6801af5f
Support "casting" the return value of custom functions into constants.

A custom function is one that is defined by AddFunction.  If the function
is defined as:

    AddFunction FuncName asValue=1 { ... }

then the function is evaluated normally, then typecast to a constant as
follows:

(1) If the return value is a time span (a "boolean" value), then if the
    current time of the simulation is within the time span, then return 1,
    or 0 otherwise.

(2) If the return value is a linear function, then if the current time of
    the simulation is within the function's domain, then the function is
    simply evaluated at the current time, or 0 otherwise.

(3) If the return value is an action, then return 1 if the action is off
    of cooldown, or 0 if it is on cooldown.

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

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