tag 5.4.27
ce6b559351dc39cba974703ee54f1606d1bbc032
Johnny C. Lam <jlam88@gmail.com>
2014-07-17 19:32:00 -0400

Tagging as 5.4.27 release.


--------------------

Johnny C. Lam:
	- Track the current stance in the simulator.
	Decorate spells that put the player into a specific stance.
	- Check every requirement instead of only the first matched requirement.
	When checking whether requirements for a spell are met for it to be
	usable, check every requirement instead of allowing the first met
	requirement and falling through.
	- Fix precedence of "not" to be above "and/or" but below comparisons.
	This fixes ticket 384 by @Draugrs, where expressions like:
	
	   not IcyVeinsCooldownRemains() > 0
	
	was being parsed as:
	
	   (not IcyVeinsCooldownRemains()) > 0
	
	instead of:
	
	   not (IcyVeinsCooldownRemains() > 0)
	- Always consume a "peeked" token before raising the syntax error.
	- Load more files in ast.t for script conditions to be classified properly.
	- Fix bug where script controls were being merged across script compilation.
	* Rename casesACocher -> checkBox and listes -> list (sorry, Sidoine!).
	* Provide method ResetControls() to empty the control definitions tables.
	* Call ResetControls() whenever a script needs to be compiled.
	* Rename the "compile" control flag to "triggerEvaluation" for accuracy.
	* Encapsulate "triggerEvaluation" usage entirely within OvaleCompile.
	- Check for the presence of script controls in a more accurate way.
	The actual control widgets are stored in Ovale.checkBoxWidget and
	Ovale.listWidget, so see if those tables are empty or not.
	- Follow Model-View-Controller better to avoid infinite loops.
	This avoids UpdateIcons() calling EvaluateScript() which may call
	UpdateIcons() again.
	- Clean up the widget management for checkboxes and dropdown lists.
	- Fix checkbox and list item checks in parameter lists.
	* A checkbox is only true if it is actually true, not just non-nil.
	* If any check fails, then fail immediately.  Before this was allowing any
	  checkbox condition to be true as long as one of them was true.
	- Slight code cleanup.
Sidoine De Wispelaere:
	- add .gitignore
Johnny C. Lam:
	- Monk: Use the Jab texture from the game.
	People were confused when the displayed icon didn't match the Jab icon on
	their action bar.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1557 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Rogue: Suggest Shadow Blades for Assassination rogues.
	Also Shadow Blades align with Vendetta if Vendetta is ready.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1556 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Rogue: Update Combat script to SimC profile as of 2014-07-01.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1555 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Add checkbox to show the icons for the current specialization.
	This checkbox defaults to checked.  This allows for permanently setting
	whether the icons for current specialization are displayed.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1554 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix script problems exposed by stricter parser.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1553 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix use of deprecated features of Ovale.
	* Use "specialization" instead of deprecated "mastery" parameter.
	* Use "checkbox=name" instead of deprecated "checkboxon=name".
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1552 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Allow for multiple checkbox and list/item pairs in parameters.
	List/item pairs should now use the following syntax:
	
	    list=name item=value   -->   listitem=name:value
	
	Isolate code to handle deprecated parameters (checkboxon, checkboxoff,
	list, item, mastery) into OvaleAST:FlattenParameters() so that other
	modules no longer need logic to handle the deprecated features when using
	parameters.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1551 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Add facility to print one-time messages (per session).
	Use one-time messages to print warnings for scripts using deprecated
	features.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1550 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Re-add some trace logging when looking up auras in the simulator.
	The logging was lost in Ovale 5.4.9 in r1140 as part of the changes that
	converted OvaleCondition into a script condition registry.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1549 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Put trace output into its own dialog box.
	This simplifies debugging complex scripts which have enormous traces by
	allowing one to copy the trace output and paste it into a text editor for
	browsing and searching.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1548 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Improve encapsulation of various "trace" flags.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1547 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Check that spell costs are positive before requiring them for spells.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1546 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Special handling of "mastery" keyword since it's also the name of a buff.
	Rename "mastery" keyword to "specialization", i.e., specialization=feral,
	so that it doesn't conflict with the name of the "mastery" raid buff.
	
	Mark the use of the "mastery" keyword as deprecated for removal in a
	future release.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1545 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix script problems exposed by new, more strict language parser.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1544 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Update Ovale to use abstract syntax trees.
	OvaleCompile has been restructured to only evaluate the declarations in
	the script and populate any databases used by other modules.  It makes a
	distinction between compiling the script (using OvaleAST) and evaluating
	the script.  Compiling the script only needs to happen when the script
	code changes.  All other events only require re-evaluating the script.
	
	OvaleBestAction has been restructured to more readily cache computed
	results of nodes during each update cycle.  Combined with the common
	function elimination optimization in OvaleAST, this allows for all
	function calls to be computed only once per AddIcon group.
	
	Other miscellaenous changes to modules were made to update to correct
	method names and to remove unused code.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1543 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Add OvaleAST module to generate an abstract syntax tree from a script.
	This module implements a recursive descent parser for the Ovale script
	language and generates an AST for further manipulation.
	
	There are some ambiguities in the script language:
	
	    * Unary negation versus binary subtraction.
	    * '{' and '}' can enclose either a statement group or an expression.
	
	The public methods for OvaleAST are:
	
	    ParseCode(code) to generate an AST from a block of code.
	    ParseScript(name) to generate an AST from a named script.
	    Unparse(node) to generate a block of code from an AST node.
	    Optimize(ast) to make optimization passes through the AST.
	
	Unparse(ParseCode(Code)) should be roughly idempotent in that the original
	code and the resulting code should have the same AST representation.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1542 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Move ComputeParameter into the dependent code to reduce dependencies.
	This has code duplication and needs to refactored.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1541 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Change OvaleLexer into an object factory to generate lexers.
	The calling code must provide an iterator, which is typically generated
	with OvaleLexer.scan.  The lexer buffers the token stream so that it may
	be accessed with look-ahead capabilities.
	
	The lexer provides two methods for accessing the buffered token stream:
	
	Peek(k) buffers the next k tokens from the stream and returns the k'th one.
	Consume(k) consumes the next k tokens from the buffer and returns the k'th one.
	
	This allows the following code to iterate through the token stream without
	consuming extra tokens.
	
	    -- Process tokens until seeing a '}'.
	    local tokenType, token = lexer:Peek()
	    while tokenType ~= "}" do
	        lexer:Consume()
	        -- do stuff here with the token
	        tokenType, token = lexer:Peek()
	    end
	    -- Here, the next token to be consumed is still '}'.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1540 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Encapsulate vendor code in a better way.
	Include the file verbatim with the minor changes needed to allow it to be
	part of an addon file.  Wrap the exported functions within an Ovale
	module.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1539 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Add new queue method :At() to return the queue element at the given index.
	Also, tweak the internal indices so that in the best case usage, the queue
	simply uses array table size for the queued elements.  Lastly, fix the
	documentation since queue = FIFO and stack = LIFO.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1538 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Remove unprintable characters that caused failures when loading in Lua.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1537 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Add test for properly loading all of the Ovale addon files.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1536 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Split out unit tests in OvaleTimeSpan into a separate file.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1535 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix generate.lua to work after WoWAPI module changes.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1534 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- WoWAPI: Add strsplit to string module and fix for "." in delimiter string.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1533 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Overhaul of WoWAPI unit testing module.
	The WoWAPI module tries to provide enough of the WoW environment to be
	able to load addon files and do unit testing or integration testing of
	addon components.
	
	WoWAPI contains fake implementations of some libraries that are used
	by Ovale.
	
	Example usage:
	
	    local state = {
	        class = "DRUID",
	        level = 90,
	    }
	    dofile("WoWAPI.lua")
	    WoWAPI:Initialize("Ovale", state)
	    WoWAPI:ExportSymbols()
	    WoWAPI:LoadTOC("Ovale.toc")
	
	This example loads all of the Ovale addon's files in the order listed in
	its TOC file.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1532 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Detect private functions defined using variable assignment.
	This detects functions defined as follows:
	
	    local foo
	    foo = function() ... end
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1531 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Quiet compiler.pl warnings.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1530 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Rename "name" field to "spellName" to avoid conflict with AceAddon.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1529 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Remove unused code.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1528 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Defer creation of frame for tooltip-scanning until addon is loaded.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1527 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Avoid needless use of GetInventorySlotInfo() when constants are provided.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1526 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix the addon broadcast message for requesting a version check.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1525 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Give default scripts a unique name to use via "Include(...)".
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1524 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Separate class spell information from functions and UI elements.
	This allows the spell information to be re-used in other scripts without
	also including unwanted functions or UI elements (checkboxes and lists).
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1523 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Re-compile script if spells change based on stance.
	This fixes a bug introduced in r1365 for 5.4.9 when SpellInfo syntax was
	extended to allow "!" to represent "not".
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1521 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Add RunicPowerCost(spellId) to get runic power needed to cast a spell.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1520 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Druid: Support Dream of Cenarius in Balance EJ rotation.
	Also split out Starfall guard conditions for Starfire into a separate
	function and add a separate EJ CD usage function.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1518 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Mage: Update to SimC Arcane APL as of 2014-06-03.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1517 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Add trinket.{proc|stat}.* and stacking variants for trinket buffs.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1516 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- "/ovale ping" requests Ovale versions from the group.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1515 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Allow for additional CHAT_MSG_ADDON messages than the Ovale score.
	This changes the score messages in an incompatible way with previous
	releases of Ovale.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1514 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Make "/ovale version" print the version number of the project.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1513 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Add more profiling to OvaleCompile.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1512 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Improve Profiler API.
	* Add method Profiler:Wrap() to wrap Blizzard API functions and use it in
	  various modules to profile usage of the Blizzard functions.
	
	- Add method Profiler:GetProfilingGroup() to get the methods collection
	  associated with a particular profiling group.
	
	- Extend Profiler:RegisterProfilingGroup() to take two callbacks for
	  group-specific enabling and disabling of profiling.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1511 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Improve display of profilng statistics.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1510 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix SimC translation of some "react" buffs to use BuffStacks().
	Most usage of "buff.name.react" is interpreted as
	"BuffPresent(name_buff)", but there are some cases where it really wants
	"BuffStacks(name_buff)".  Fix the few cases where this happens.
	
	This fixes ticket 375 by @only1yzerman that noted a problem with using up
	Maelstrom Weapon stacks on enhancement shamans.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1508 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Paladin: Mastery > stats when giving out raid buffs.
	This fixes ticket 374 by @Draugrs, who noted the error.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1507 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Death Knight: Don't cap resources on Blood DKs when using Blood Tap.
	Reduce the trigger for using Blood Tap from the maximum 12 Blood Charge
	stacks down to 10, and don't waste runic power by using Death Strike at 90
	runic power.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1506 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Instrument some profiling code into Ovale using the Profiler module.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1505 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Add new Profiler module to allow basic profiling of Ovale code.
	To get profiling stats for a function, execute Profiler:Start(tag) at the
	head of the function and Profiler:Stop(tag) before exiting the function,
	where "tag" is a unique label to track.
	
	Everything that happens in-between Start/Stop is attributed to the given
	tag.  If a profiled function calls another profiled function, then the
	time spent within the called function is not charged to the calling
	function.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1504 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- OvalePool and OvalePoolRefCount share the same API for a reason.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1503 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Druid: Use the Elitist Jerks balance druid rotation by default.
	The EJ rotation emphasizes better DoT uptime and smarter DoT refresh
	decisions than the SimulationCraft action list.
	
	This still needs logic to properly clip DoTs when powerful buffs are in
	effect.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1501 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Enhance OvaleEclipse to update the damage multiplier properly for spells.
	The damage multiplier stored in auras now includes the bonus from both
	Moonkin Form and Eclipse plus the mastery bonus.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1500 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Refactor OvaleEclipse:ApplySpellAfterCast() into smaller functions.
	Add state methods:
	
	    EclipseEnergy() returns the eclipse energy generated by a spell.
	    ApplyEclipseEnergy() updates the eclipse state.
	    AddEclipse() and RemoveEclipse() for managing Eclipse state effects.
	
	Also properly handle Celestial Alignment, which zeroed the eclipse energy
	but also granted the spell effects of both Lunar and Solar Eclipse.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1499 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix Casting() which returned the wrong value for boolean condition.
	In Ovale, proper boolean conditions return time spans that either contain
	(true) or do not contain (false) the current time.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1498 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Death Knight: Change how the level 75 talent is used for blood DKs.
	Follow Sentry Totem's Guide to Using the Level 75 Talents:
	
	    http://sentrytotem.com/classes/dk/guide-using-level-75-talents
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1497 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Add passive auras from Amplification trinkets and meta gems.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1495 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Item levels are ready in-game later than the items themselves.
	Treat the item levels being ready as the items themselves having changed
	and raise an "equipment has changed" event for other modules that use the
	item levels.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1494 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- An aura that never expires may still have changed if its values change.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1493 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Warrior: Update warrior scripts to MoP 5.4.8.
	Regenerate reference warrior scripts after improving the translation
	accuracy of OvaleSimulationCraft.
	
	Create new scripts for Arms, Fury, and Protection based on the reference
	scripts.
	
	The protection warrior script is very basic and needs improvement.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1491 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Enhance some methods for checking weapons to allow for Titan's Grip.
	Titan's Grip allows for a 2H weapon to be equipped in the off-hand.  Add
	extra parameters to HasOneHandedWeapon() and HasTwoHandedWeapon() to allow
	checking in a specific weapon slot, and to HasMainHandWeapon() and
	HasOffHandWeapon() to allow checking explicitly for either a 1H or 2H
	weapon.
	
	Give HasWeapon() condition an extra paramter "type=value" where value is
	"1h" or "2h" to allow checking explicitly for a 1H or 2H weapon in the
	given hand.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1490 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Add Potion of the Mountains to the common item database.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1489 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix the cooldown recovery rate for Vial of Living Corruption.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1488 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix SpellCooldown(spell) if spell is a shared cooldown name string.
	Make a list of spells associated with each sharedcd name during script
	compilation and loop through those spells to get the cooldown information.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1487 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Back out r1484 that added Outbreak to 1H Frost rotation.
	Outbreak and Unholy Blight are not the same priority.  Even though they
	both share the same GCD cost, the latter will apply diseases to everything
	around the DK while Outbreak only applies them to the current target.
	Outbreak was removed from the 1H Frost rotation in SimulationCraft as part
	of an optimization for MoP 5.4.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1486 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Death Knight: Add Outbreak to 1H Frost rotation.
	This looks to be an omission in the SimC code, but one should obviously
	apply diseases for free using Outbreak before using Unholy Blight for the
	same purpose.
	
	Fixes ticket 366 by @neevor who noticed the problem in the rotation.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1484 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix global variable leakage.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1483 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Monk: Suggest raid buffs as a windwalker.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1482 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Generate reference scripts from SimulationCraft profiles.
	These reference scripts are modified by hand to create the default Ovale
	scripts.  Save the generated scripts to more easily see what has changed
	in the SimulationCraft action lists and to determine what needs to be
	updated in the default scripts.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1481 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Add option to show hidden scripts, e.g., includes and reference scripts.
	Be explicit about files that contain full scripts.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1480 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- The generated scripts need some required symbols to be defined.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1479 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Support SimC property "distance".
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1478 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Add new module to manage passive auras from class or item effects.
	Manage the Readiness (cooldown reduction) passive, hidden buff from the
	Siege of Ogrimmar trinkets that grants cooldown reduction based on role.
	
	Add corresponding buffs to "ovale_items" script that match the SimC names
	fo the same buffs and can be used to track whether the buff is active:
	
	    cooldown_reduction_agility_buff
	    cooldown_reduction_strength_buff
	    cooldown_reduction_tank_buff
	
	Add a new SpellInfo() parameter "buff_cdr=ID" that lists the spell ID of
	the cooldown reduction buff that affects that spell.  Annotate spells
	whose cooldowns are affected by the trinkets.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1477 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Guard against removing auras that aren't in the aura database.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1476 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- De-couple OvaleFuture from OvaleComboPoints and OvalePower.
	Add a way for modules to register additional information that they would
	like to save to a spellcast at the time that it is cast.  This information
	can be later retrieved by other modules.
	
	Let OvaleComboPoints and OvalePower manage spellcast.combo and
	spellcast.holy, respectively.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1475 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix management of shadow_word_death_reset_cooldown_buff.
	The shadow_word_death_reset_cooldown_buff was never being set due to an
	improper class check (find-and-replace error) and the wrong information
	would have been set for the buff start and ending times.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1474 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Death Knight: Improve Blood script when using Runic Empowerment.
	Don't suggest ERW or DRW unless we've reached emergency Death Strike
	conditions.  We want to hold those cooldowns on reserve.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1472 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Reactivate runes in the simulator for ERW and DRW+4pT16 tanking bonus.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1471 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- A spellcast has already started if startCast <= now.
	The opposite of that is startCast > now -- fix the inequality.  This fixes
	ticket 364 where the rune cost of Army of the Dead was being applied in
	the simulator after the resources for the spell were already consumed in
	the game.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1470 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix wrong order of arguments in ConsumeRune() signature.
	Also add some additional debugging information.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1469 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Death Knight: Don't pool for Rune Strike when glyphing Outbreak.
	Most of the time, the pooling won't be necessary.  Just rely on the player
	to be smart enough to recognize a situation where he would need to pool
	some runic power to cast Outbreak.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1468 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Death Knight: Remove reference to undefined function.
	This fixes ticket 362 by @LunaEclipse and fixes unholy death knights.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1467 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Reformat item set database to be easier to maintain.
	Each row now represensts one item set.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1466 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Druid: Add "Weakened Armor" option for whether to apply the target debuff.
	Some classes apply the debuff automatically as part of their damage
	rotation so it's not worth it for a feral to do it.  The "weakened armor"
	option is on by default, but can be turned off as needed.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1464 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Death Knight: Only show Death Pact if a ghoul is present.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1463 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Death Knight: Correct the cost of Frost Strike for Frost DKs.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1462 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Death Knight: Add Blood tanking script for MoP 5.4.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1461 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Add TODO item to handle reactivating runes in the simulator.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1460 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Channeled spells cost resources at the start of the channel.
	Update the resources in the simulator at the appropriate time based on
	whether the spellcast is channeled or not.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1459 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix typos in project description.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1458 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Monk: Simplify Brewmaster CD conditions slightly.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1456 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Update cooldown state on all spellcast events.
	Blizzard gives spells a "GCD" cooldown while they're being cast before the
	real cooldown kicks in afterwards.  Update the cooldown state on all
	spellcast events to catch this "GCD" cooldown.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1455 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Death Knight: Update Frost and Unholy scripts to MoP 5.4.7.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1454 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Add parameter "excludeTarget" to conditions that scan over all targets.
	BuffCountOnAny, BuffRemainsOnAny, and BuffStacksOnAny now accept a new
	parameter "excludeTarget" (0 or 1) that signals whether to exclude the
	current target from the scan.  This allows for checking when DoTs are
	expiring on other targets and need to be spread from the current target
	again.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1453 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix GetRunesCooldown() calculation.
	Also remove the death condition from all rune conditions.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1452 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Add new parameter "buff_runes_none" for buffs that remove rune costs.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1451 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Add Cataclysm strength potion used by some scripts.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1450 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Translate "cooldown.spell.remains=0" as "not SpellCooldown(spell) > 0".
	This avoids an equality comparison, which allows for a time span to be
	computed for the condition.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1449 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Rudimentary translation of SimulationCraft's rune conditions.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1448 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Rename RuneCount() to Rune() and reimplement RuneCount() to just count.
	Rune() will return fractional numbers to indicate how far along a rune is
	to regenerating.  RuneCount() will always return a whole number for the
	actual count of active runes of the given type.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1447 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Script conditions use death=0 or death=1, not death=none or death=any.
	Support using either notation to specify the death rune condition.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1446 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Activate runes as the proper type in the simulator.
	Some specializations cause death runes to reactivate in place of consumed
	runes, which needed to be modeled in the simulator.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1445 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Add parameter to state:RuneCount() to get rune count at a given time.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1444 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Dynamically calculate whether a rune is active.
	This avoids having to update the "active" flag on a rune in the simulator.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1443 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix compiler operator precedence bugs.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1442 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Add DestructionSingleTargetShortCdActions() to short-cd icon.
	Fixes ticket 361 by @napgravy.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1440 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Suppress compiler.pl warning.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1439 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Lua coding best practices adds trailing commas table members.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1438 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Add a header and a simple one-icon rotation display for generated scripts.
	These generated scripts are now functional directly within Ovale.
	However, they will generally need more work to split up the functions into
	the usual "shortcd/main/aoe/cd" icons for default scripts.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1437 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Check that an item meets usability requirements by calling IsUsableItem().
	This fixes ticket 314 where Ovale was still suggesting using Synapse
	Springs on gloves even after Engineering was dropped as a profession.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1436 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Let modules flag themselves as ready for other modules to use.
	Check that certain modules are ready before allowing compiling the script.
	This fixes ticket 359.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1435 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix call to UpdateSpell() method that broke updating pet spells.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1434 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Track the total number of times a script has been compiled.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1433 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Hunter: Only suggest Kill Command if the pet can attack.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1431 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Mage: Don't be so zealous about Rune of Power or Evocation pre-pull.
	Only suggest planting a new Rune of Power or casting Evocation if 10s or
	more have elapsed since putting up the buff.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1430 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Mage: Remove incorrect target on Spell() in Wiljo script.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1429 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Rename some variables and re-document in English to ease my development.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1428 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Match changes in OvaleCooldown for parameter name "buff_no_cd".
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1427 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Add additional phase of tracking to spellcasts: "after hit".
	ApplySpellAfterHit() is called after the three previous phases:
	
	    ApplySpellStartCast
	    ApplySpellAfterCast
	    ApplySpellOnHit
	    ApplySpellAfterHit
	
	Apply spell auras to the target during ApplySpellAfterHit().  Only remove
	a spellcast from the spells-in-flight after it has applied any auras to
	the target, which can take a bit of time due to server event lag.  The
	simulator will continue to apply spells until it sees their aura effects
	appear on the target in reality.
	
	Remove the previous workaround for aura lag added to OvaleAura in r1411
	and r1413.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1426 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Use lazy evaluation to reduce the number of times the script is compiled.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1425 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Mage: Fix Evocation when using Invocation talent in Frost specialization.
	This fix causes the script to avoid suggesting Evocation until Invoker's
	Energy is close to expiration if Icy Veins is on cooldown.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1423 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Improve Bandit's Guile tracking in rogue scripts.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1422 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Localize "Appearance" properly in the interface options.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1421 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Change the default appearance of Ovale.
	Make the icons smaller by default and make the text size larger for
	keyboard shortcuts for readability.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1420 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Teach OvaleCooldown about spell charges.
	Lazily update the cooldown information of spells based on the age of the
	cooldown state, which is flagged to be updated when a spell's charges or
	cooldowns is changed or if a spell is successfully cast.
	
	Add a GetSpellCharges() method to the state machine to act like the
	Blizzard API function of the same name.
	
	Fixes ticket 357.
	
	Age cooldown state properly.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1419 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Hunter: Fix cooldowns of traps and Black Arrow for survival hunters.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1418 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Hunter: Move traps to a separate icon from AoE rotation.
	A trap might not be good to drop because mobs are moving.  Also show Ice
	Trap for Survival Hunters since they can get a Lock and Load proc from it.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1417 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Hunter: Improve Survival AoE rotation by removing Serpent Sting.
	The AoE rotation is now to pool focus for Multi-Shot while casting the
	talented abilities on cooldown.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1416 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix ticket 352 - Improve showing of keybindings.
	Update keybindings shown on the icon based on stance.  Also update
	keybindings for spell/item shown in a macro based on what will be cast if
	it is used.
	
	Original diff by @chipzzke with extension to macro items by @jlam.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1415 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Add better workaround for aura lag.
	"Aura lag" (more properly "event lag") is what happens when you cast a
	spell and there is some delay before the spell's effects are applied by
	the game server and recognized by the client.
	
	Deal with aura lag by persisting auras in the simulator that are applied
	by a spell by at least the aura lag time, even if the spell has finished
	casting and hit its target already.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1413 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Workaround for aura lag.
	This is ultimately a problem in OvaleFuture where a spell may have
	finished casting and landed on the target, but any target auras applied by
	the spell haven't yet been applied on the target due to aura lag.
	
	Need to find a way to still apply spell effects on a spell that has landed
	on its target but not yet applied auras.  Perhaps split out another level
	of ApplySpell() due to aura lag.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1411 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix ticket 356 to show Fist of Justice to interrupt.
	The IsSpellInRange() API function always returns nil for Fist of Justice,
	even if talented into the ability.  Remove the range check for Fist of
	Justice as a workaround.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1410 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Warlock: Add useful actions to optional left/right icons.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1409 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Allow actions to set their own help text via help=Text parameter.
	This allows Texture() actions to have a useful help text.  The text must
	have no spaces as that is not yet supported by the compiler.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1408 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Warlock: Update Destruction script to 5.4.7.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1407 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Add BuffStacksOnAny() condition for total stacks across all units.
	This can be used to track the number of stacks on an aura that can only
	be placed on a single target at a time.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1406 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Warlock: Update Affliction script to 5.4.7.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1405 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Import old MoP 5.2 scripts for warrior, warlock and death knight.
	These are for completeness until proper MoP 5.4.7 scripts can be created
	for warriors, warlocks and death knights.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1404 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix DebugRunes() methods after it moved to the state machine.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1403 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Rename function for clarity.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1402 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Slight generalization of code to allow for odd rune counts.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1401 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix variable name in state:RuneCount() that caused "death" to be ignored.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1400 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Document return values for state:RuneCount().
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1399 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix order in which rune slots are checked for death runes.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1398 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix the time the a spell is ready if it requires runes that are on CD.
	state:GetRunesCooldown() returns the number of seconds before all of the
	rune conditions are met, so the actual time that the spell is ready is at
	state.currentTime + state:GetRunesCooldown().
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1397 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Hunter: Pool focus to improve Black Arrow uptime for Survival spec.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1396 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix wrong comment left over from copy and paste.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1395 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Priest: Mind Flay (Insanity) is only available with the right talent.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1394 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- The GCD() and SpellCritChance() conditions do not take a spell ID.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1393 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Split out comparator names into a public table for conditions to access.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1392 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Make TickTime() return the tick length of a new DoT if one isn't present.
	This matches SimC semantics where if a DoT is present, then "tick_time" is
	the actual tick length of the DoT, but if the DoT is not present, then it
	is the tick length of a new DoT with a current stat snapshot.
	
	This fixes mage scripts not suggesting mage bombs.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1390 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Shaman: Use presence of glyph to choose whether to suggest Totemic Recall.
	If you're using the glyph, assume that you want to see Totemic Recall for
	mana recapture.  If not, then it's not worth the GCD to recapture the mana
	from spent totems.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1389 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Support SimC's max_cycle_targets=N expression for multi-dotting.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1388 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Monk: Fix chi cost of Tiger Palm for Windwalker monks.
	Also be more restrictive in SpellInfo statements so that the script
	compiles and runs more quickly.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1386 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Druid: Improve restoration druid script.
	- Use wider windows for refreshing buffs to help with uptime.
	- Remove fillers from the rotation so it's easier to see what's coming up.
	- Suggest Wild Mushroom: Bloom only when the mushroom is fully charged.
	- Don't show Genesis on short CD icon.
	- Cast Mark of the Wild if needed.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1385 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Default to checking for active auras in simulator after the current cast.
	Treat an aura in the simulator as active by default if it exists at
	the end of the current spellcast, or the current time if no spell is
	currently being cast.  This allows auras that are applied by the spell
	being cast to show as active.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1384 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Treat all auras as existing from gain time to ending time.
	Due to DoT refresh mechanics, the gain time of an aura may be before the
	start time of the aura (when it starts ticking again).  Treat all auras as
	existing from the gain time to expiration time.  A refreshed aura still
	exists when it is gained, even though it starts ticking later.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1383 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Properly detect the end of an instant-cast spell cast on yourself.
	Treat friendly spells cast on a target of yourself the same as a spellcast
	that procs a buff on the player -- we track the buff appearing on the
	player and remove the spell from the in-flight spell queue.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1382 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Trace aura state reset in OvaleAura for debugging.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1381 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Use proper syntax in .docmeta to generate documentation.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1380 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Add WildMushroomIsCharged() to test if healing mushroom is charged.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1379 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Add BuffRemainsOnAny() condition.
	BuffRemainsOnAny() returns the number of seconds before the given aura
	expires across all targets.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1378 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Extend BuffCount() condition to allow requiring a minimum stack.
	The syntax is BuffCount(id stacks=N) where N is the minimum stack size for
	the aura to count toward the running total.
	
	This allows one to get the count of Lifebloom x3 stacks across the raid.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1377 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Rename BuffCount() condition to BuffCountOnAny().
	This name makes it more explicit that the check is across all targets
	instead of one target.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1376 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Druid: Omen of Clarity is different for ferals and resto druids.
	Also fix the AOE checkbox for resto druids.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1375 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Paladin: WoG/EF costs no holy power if Bastion of Power is up.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1374 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Remove or fix the help for small icons to the sides of the main icon.
	Most of them were inaccurately labeled with "help=cd" which gave an
	incorrect hover tooltip suggesting that they were abilities that should be
	held for high damage phases.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1373 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Paladin: Use specialization names instead of numbers for readability.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1372 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix AOE checkbox in protection paladin and combat rogue scripts.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1371 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix and extend the tooltips shown when hovering over an icon.
	SVN revision r1117 -- that implemented a true timespan implementation --
	broke the tooltip that showed the name of the spell being shown when
	hovering over an icon.  Fix the tooltip to show the name of the spell
	again and extend the facility to allow for showing item or macro names in
	the future.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1370 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Druid: Add Guardian and Restoration scripts.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1368 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix bug that caused state auras to always be at least 1 stack.
	This bug was hidden before the change to garbage-collect only the state
	auras that were reflected in the real auras.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1367 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Activate SpellAddTargetBuff() declaration for completeness.
	All of the other player/target and buff/debuff combinations are already
	working.  Support for this was added in a previous commit but not
	activated.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1366 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Allow for expressing "if glyph NOT active" or for other parameters.
	SpellInfo parameter glyph=id currently means that the declaration is true
	only if the given glyph is active.  This change allows for the opposite
	meahing by using glyph=!id to mean that the declaration is true only if
	the given glyph is NOT active.
	
	Other parameters that allow for the key=!value syntax include:
	
	    glyph, mastery, if_stance, if_spell, talent
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1365 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Generate documentation for files in the conditions directory.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1363 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Update project description to note Ovale is a rotation helper addon.
	Also remove listing of locations for custom scripts. There is only the
	Ovale forums referenced earlier; Nerien's Ovale Scripts is merged into the
	Ovale distribution.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1362 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Remove the "last updated" comment from default scripts.
	The default scripts can just be tracked by the Ovale release number.
	Leave the "last updated" comment in imported 3rd party scripts to note the
	time that the script was last updated by the outisde 3rd party.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1361 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Rogue: Add default scripts for Assassination, Combat, and Subtlety.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1360 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Add debugging message for when a spell is delayed waiting for power.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1359 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix tracking of Bandit's Guile stacks before Insight buff appears.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1358 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Another change to buff conditions for constant values.
	Enforce the buff start and ending times for valid domains, and default to
	zero when outside of the domain.  This more closely matches the semantics
	that people expect with constant values.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1357 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Record the correct number of CPs used in a spellcast.
	The sanity-check condition wasn't right because it assumed that you must
	have at least one CP to cast any finisher; instead, it should honor any
	"min_combo" paraemter listed in SpellInfo().
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1356 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Support more power reduction buffs.
	Instead of just "_half" and "_none" for 50% and 100% reduction, also
	support "_less15" and "_less75" for 15% and 75% reduction as well.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1355 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Preserve auras applied by already-cast instant-cast spells between updates.
	This fixes the problem where an instant-cast spell cast in the simulator
	applies a debuff on the target which is added to the state machine, then
	instantly removed before being added to the true aura database.  For
	example, a subtlety rogue's Hemorrhage applies a DoT on the target, but
	there is a small lag betwen the spell hitting the target and the DoT being
	applied.  When the user casts the spell, OvaleFuture queues it up to the
	cast in the simulator, which applies a DoT to the target in the simulator.
	However, the simulator's state is reset on every update, so the debuff was
	being lost until it appeared on the actual target.  During that brief lag,
	Ovale thinks Hemorrhage still needs to be cast to apply the DoT.
	
	Instead of dumping the entire state aura database for each update, just
	remove state auras that are older than the corresponding auras in the true
	aura database.  This preserves debuffs applied in the simulator that are
	the result of instant-cast spells until they appear in the true aura
	database.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1354 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Hunter: Improve AoE rotations by removing checks for number of enemies.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1353 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- If "gcd=N" is specified in SpellInfo, then use that value directly.
	This allows for special GCD values that are less than the base or even 1s
	GCD of some classes.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1352 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Hunters also have a 1s GCD.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1351 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix spell IDs for trinket proc buffs.
	This corrects the lists for intellect, strength and crit rating.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1349 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Mage: Add Wiljo's frost mage script.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1348 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Mage: Add default scripts for Arcane, Fire, and Frost specializations.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1347 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Be more accurate when computing CritDamage().
	Factor in the increased crit effect from any meta gems and also the effect
	of the MoP amplification trinkets.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1346 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Track the equipped meta gem in OvaleEquipement.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1345 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Priest: Move Mindbender/Shadowfiend to long DPS CD icon.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1344 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Properly annotate auras that stack.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1343 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix workaround for Glyph of Touch of Death removing Chi cost.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1342 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Rename SpellInfo parameter "canStopChannelling" to "channel".
	Also remove unnecessary duration=N and tick=N parameters from channeled
	spells as they have no meaning there.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1340 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Priest: Add shadow script based on SimC profile.
	Implement a hidden buff for SimC's shadow_word_death_reset_cooldown that
	is added whenever the priest casts Shadow Word: Death and fails to kill
	the target.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1339 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Hunter: Move some short CD actions into the short CD icon.
	Also put a guard on Kill Command to require that a pet be present.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1338 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Another fix for buff conditions.
	Back out r1321 and partially re-implement r1252 by giving the results of
	those conditions a time span that starts when the buff starts and lasting
	to infinity.
	
	This fixes uses of buff conditions for buffs that are applied in the
	future, e.g., a spell applies a DoT at end of spellcast and something
	like:
	
	    if target.DebuffRemains(dot) < 3 Spell(spell_that_applies_dot)
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1337 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Code cleanup for clarity.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1336 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Druid: Improve balance script precombat actions.
	Move Wild Mushroom precombat actions to the Moving icon so as not to
	obscure the actual first cast of the main rotation.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1334 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Add Leafkiller feral/guardian druid script from Nerien's Ovale Scripts.
	The script's new home is with the default Ovale distribution and the other
	addon is to be deprecated.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1333 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Factor in power regen time for spell "readiness".
	- Add a new state method TimeToPower() for the number of seconds before
	  the given resource required is available for a spell.
	
	- If the time to pool resources is longer than the time needed for a spell
	  to come off cooldown, then add that additional time to the spell's
	  cooldown duration.
	
	These changes allow for "wait Spell(mangle_cat)" to have a time span for
	the energy pooling.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1332 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Make "runicpower" a secondary power type for Death Knights.
	The primary resource for which DKs wait on are runes.  If there is not
	enough runic power to cast a spell, DKs don't wait passively for runic
	power to pool, but rather spend runes to generate more runic power.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1331 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Add OvalePower.PRIMARY_POWER as a list of power types to wait on.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1330 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Druid: Note that Healing Touch procs DoC for ferals.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1329 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Druid: Fix feral script by implementing functions to compute damage.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1328 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Allow for SpellInfo() overrides for Damage() and LastEstimatedDamage().
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1327 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Re-add correct implementation of damage=Func SpellInfo parameter.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1326 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Don't rely on implicit default target=target in translated script.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1325 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- SimC "action.<action>.tick_damage" should translate to a debuff property.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1324 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Hunter: Focus Fire should remove Frenzy stacks from the player.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1323 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Monk: Don't show potions in the main or AoE icons.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1322 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix buff conditions by checking that an aura is active.
	Active auras have their properties returned with a time span of (0, inf)
	and inactive auras fall through to the default value of zero.
	
	This partly backs out r1252 and re-implements using broader time spans to
	avoid problems with comparisons.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1321 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Implement RuneOfPowerRemains() condition.
	This translates SimC's "buff.rune_of_power.remains" by returning the
	remaining time of the most recently-placed Rune of Power if the player is
	currently standing within a Rune of Power.
	
	The assumption here is that the player is standing in the most
	recently-placed Rune of Power.
	
	This fixes ticket #341.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1320 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix comments to shaman script.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1319 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix ticket 337: Value elements may not have a params field.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1318 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix intersecting time spans to avoid point sets.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1317 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- New Ovale scripts for 5.4.7 based on SimC profiles.
	Separate common parts into "#include"-style scripts and have the main
	scripts just be the logic.
	
	Add new default scripts for druids, hunters, monks, paladins and shamans.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1315 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://svn.curseforge.net/wow/ovale/mainline/trunk@1314 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://svn.curseforge.net/wow/ovale/mainline/trunk@1313 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://svn.curseforge.net/wow/ovale/mainline/trunk@1312 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://svn.curseforge.net/wow/ovale/mainline/trunk@1311 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Don't warn about unknown spell for SpellCooldown(sharedCd).
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1310 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix BuffCount() when the buff never expires.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1309 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Add WildMushroomCount() condition.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1308 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://svn.curseforge.net/wow/ovale/mainline/trunk@1307 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Allow for tracking hidden auras that are managed outside of OvaleAura.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1306 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix detection of SS/RS in Bandit's Guile module.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1305 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Add module to track Steady Focus for marksmanship hunters.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1304 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Be more efficient in registering for Eclipse events only in balance spec.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1303 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Sanity-check a table variable before using it.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1302 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://svn.curseforge.net/wow/ovale/mainline/trunk@1301 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Re-implement <power>Cost() conditions in clearer way.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1300 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Implement unit.IsDead() script condition.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1299 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://svn.curseforge.net/wow/ovale/mainline/trunk@1298 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Return proper IsUsableSpell() value if the name differs from GetSpellInfo.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1297 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://svn.curseforge.net/wow/ovale/mainline/trunk@1296 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix stance update if talent causes new stance to overwrite an old name.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1295 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Extend ItemCooldown() condition to take slot name instead of item ID.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1293 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Use the correct spell cost when determining usability of a spell.
	The cost defined in SpellInfo may be adjusted downward based on other
	parameters, and we should use the adjusted value, not the raw value, when
	checking whether the spell is able to be cast or not.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1292 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- De-couple OvaleBestAction from OvaleState.
	OvaleBestAction takes two bits of information (node tree & state machine)
	to compute the best action.  The state machine isn't intrinsic to the
	computation and is now a direct parameter of the relevant methods.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1291 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- New SpellInfo parameters "buffnocost" and "buffhalfcost".
	"buffnocost" specifies the player aura present that makes casting the
	spell resource-free.
	
	"buffhalfcost" specifies the player aura present that makes casting the
	spell cost half the normal amount of resources.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1290 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix local variable leaking into global scope.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1288 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Stash the player's class into the state machine via OvalePaperDoll.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1287 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Remove unnecessary module dependencies.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1286 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Factor out state method to compute the cost of a spell.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1285 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Move spellInfo damageAura into a sub-table of the existing aura table.
	This is a code-consistency change.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1284 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Work around bug in Blizzard's IsUsableSpell() API function.
	IsUsableSpell() doesn't always return the truth when given a spell ID, but
	its accuracy improves when given a spell name.  Wrap the API function in
	OvaleSpellBook so that it silently translates the spell ID to a spell name
	before invoking IsUsableSpell().
	
	Bug noted and workaround suggested by @ShmooDude.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1283 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Use specialization names instead of numbers, for clarity.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1282 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Documentation typo fix.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1281 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Track combat ratings for critical strike, haste and mastery.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1280 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Add ArmorSetBonus() script condition with SimC set_bonus semantics.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1279 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Add TotemRemains() condition to return seconds before a totem expires.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1278 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Make TicksAdded() semantics match SimC's add_ticks property.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1277 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Use the correct return value from state:GetDuration() for number of ticks.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1276 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Rename "death_knight_<presence>" to "deathknight_<presence>".
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1275 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix stance name for Aspect of the Iron Hawk.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1274 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix use of legacy armor set names, e.g., "T14", etc. for some classes.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1273 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Rename SpellInfo() parameter from "minCombo" to "mincombo".
	Most other parameters don't use camel-case, so adhere to precedence.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1272 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Move method to return the spell info table back into OvaleData.
	Aside from OvaleCompile, various class modules will also be using this
	method to inject additional spell information for various spells.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1271 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Add module to track Bandit's Guile for combat rogues.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1270 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Reorganize file layout a bit to allow for class-specific state to be kept.
	Also rename a few XML files to "files.xml" when listing/loading all of the
	files in a directory.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1269 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Avoid hard-coding "Ovale" name string to promote reusability.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1268 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Add a <class> comment tag for classes not named after their source files.
	The syntax is:
	
		<class name="ClassName" />
		<class name="ClassName" inherits="ParentClassName" />
	
	Replace "--inherits" with the new <class> tag.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1267 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Add TimeToMaxFocus() script condition.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1266 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Add dummy TimeToBloodlust() condition to match SimC's time_to_bloodlust.
	Currently doesn't do anything than return 1 hour into the future.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1265 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Add "Power"Deficit() script conditions for each power type.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1264 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Allow for providing "Power"Percent() script conditions for each power type.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1263 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Add partial implementation of WoW API for unit-testing and development.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1262 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Teach compiler.pl that public static methods are also valid properties.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1261 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Use string.sub instead of string.find where possible.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1260 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Avoid using "select" function unless required.
	It's simpler and more efficient to make use of setting variables to
	multiple return values.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1259 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Continuation of r1242: Use public properties to hold module state.
	This simplifies debugging and doesn't cause namespace conflicts.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1258 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Use the local upvalue instead of the global function reference.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1257 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Move spell cooldown-related functions from OvaleData into OvaleCooldown.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1256 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Uses spaces, not tabs, in .pkgmeta.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1254 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Add IsEnraged() script condition.
	- Use LibDispellable-1.0 if available to check for enrage buffs.
	
	- Re-implement state:GetStealable() as state:GetAuraWithProperty() to
	  check for an aura with an arbitrary matching property.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1253 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Most buff script conditions should be allowed to return non-active auras.
	The script evaluation engine (OvaleBestAction) handles expired auras just
	fine since it works in intersections and unions of time spans, but this
	will allow the engine to properly deal with auras that are applied in the
	future, e.g., after the current spellcast.  This fixes the balance druid
	scripts that recommend applying DoTs once an Eclipse state is reached.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1252 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix state:GetAura() to return expired auras as well.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1251 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Sprinkle some debugging print statements for OvaleEclipse.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1250 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Remove unset (nil) variable that doesn't change the return value.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1249 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Handle Eclipse in the state machine when crossing the zero threshold.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1248 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Add state method to remove an aura on a GUID.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1247 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix caster GUID of state aura copied from true aura.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1246 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Turn "aura lag" into an advanced slider option, defaulting to 400ms.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1245 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Verify that an aura has associated SpellInfo before using it.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1244 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Re-write of OvaleGUID.
	- Cleaner mappings between GUID <--> Unit ID <--> Unit name.
	
	- Create "unit ID" priority so that the "best" unit ID is returned for a
	  given GUID.
	
	- Update mappings more aggressively to fix ticket 326.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1243 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Use public, not private, properties to hold module state.
	This simplifies debugging and doesn't cause namespace conflicts.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1242 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- G/C auras in the state machine for each new frame.
	There aren't that many to G/C from frame to frame and it keeps the state
	aura table under control.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1240 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Move all aura-related methods into OvaleAura and its state machine.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1239 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Workaround for ticket 290 - Dream of Cenarius Second Charge Rip.
	When a buff expires simultaneous with a spellcast, a debuff applied by
	that spellcast may not snapshot the effects of the expired buff.
	
	Tag an expired buff as "consumed" if the aura ended early and the ending
	cast time of the previous spellcast is within 0.3s of the expiration time
	of the aura.  Treat an aura as still "active" if it was consumed and we
	are checking within 0.3s of when it has expired.  This allows an aura that
	provides a damage multiplier to still be added into the snapshot for any
	applied auras.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1238 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Move spellcast state from OvaleState into OvaleFuture.
	The following methods from OvaleState are now mix-in methods for the state
	machine:
	
	    OvaleState:ApplySpell()    --> state:ApplySpell()
	    OvaleState:StartNewFrame() --> state:Initialize()
	    OvaleState:Reset()         --> state:Reset()
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1237 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Verify that a spell has associated SpellInfo before using it.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1236 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix aura tick information for re-applied auras.
	Use the correct snapshot when estimating tick length and tick times of a
	periodic aura.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1235 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Move debugging statement to less verbose location.
	RemoveAurasOnGUID() is used in multiple places, sometimes just for
	clean-up, but we only care about when they are removed if it's for an
	inactive unit.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1234 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix spurious "nil" in debugging message output.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1233 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Return a more sensible value in GetStealable if no such auras are found.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1232 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Iterate through flyout spells when scanning spellbooks.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1231 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Print the total number of spells in the spellbook.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1230 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix global variable leakage.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1229 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- When the group composition changes, force a re-scan of all auras on units.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1227 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Modify functions so that there is always a clear returned value.
	This is a code-correctness issue -- don't silently return nil; instead,
	make it explicit for better readability and code analysis opportunities.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1226 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix BuffStealable script condition.
	Implement GetStealable(unitId) as a state machine mix-in method.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1225 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix usage of properties that were moved to the state machine.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1224 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Decorate code to identify state properties and enforce proper usage.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1223 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix scanning subdirectories of the current one with compiler.pl.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1222 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Re-add a BuffCount script condition.
	The returned count decays over time based on when the first aura to expire
	will change the total aura count.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1221 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Be consistent about using auraId for aura spell ID in OvaleAura.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1220 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- BuffGain script condition works when using the new OvaleAura module.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1219 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Reaching an Eclipse state trigger's Nature's Grace.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1218 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Periodically garbage-collect auras in the state machine.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1216 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Add CleanState methods to classes implementing state for the simulator.
	These methods are invoked when unregistering a class from a simulator.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1215 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Drain table pools when leaving combat.
	Also do more extensive clean-up when the addon is disabled.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1214 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Complete re-write of OvaleAura.
	- Simplify aura database layout.
	- Allow for returning expired auras to expose more information.
	- Make state of auras tracked in simulator more rigorously correct.
	- Move state:GetDamageMultiplier() to OvaleFuture where it's needed.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1213 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Modify some state mix-in methods to take an optional snapshot parameter.
	This allows for computing haste multipliers relative to the correct
	snapshot at the time the spell was cast.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1212 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Add state mix-in methods for DoT tick and duration information.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1211 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Hide snapshot reference-counting behind an API.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1210 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Add Get/ReleaseReference methods to all pool classes.
	This allows for using them interchangeably from an API standpoint.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1209 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix arguments passed to state:GetCD().
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1208 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Only reach Eclipse state if the spellcast got us there.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1207 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix ticket 208 - wrong key binding being displayed.
	Manage an additional mapping from slot number to action, and clear the
	mappings for a slot if an action is removed from that slot.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1206 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Simplify casting spells in the simulator.
	- Push more state into the simulator. This is a step towards allowing
	  multiple simulators managed by Ovale.
	
	- Remove OvaleState.now and replace with direct calls to API_GetTime().
	  Places that were using OvaleState.now were really needing the current
	  time, and the client already caches the current time for API_GetTime()
	  for the duration of a frame.
	
	- Re-arrange parameters to ApplySpell*() methods to simplify casting
	  spells in the simulator.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1205 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Decorate code to identify state mix-in methods and enforce proper usage.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1204 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Use simpler Lua idiom to express mix-in methods.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1203 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Check that an aura is active by checking its stacks and start/end times.
	This is a prelude to allowing expired auras to be returned by aura
	functions.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1202 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Move GetTickLength() back to OvaleData after module de-coupling changes.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1201 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Move initialization of OvaleData.spellInfo into OvaleCompile.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1200 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Rename UpdateFromSpellcast() to UpdateSnapshotFromSpellcast() for clarity.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1199 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Back out part of r1196 and defer saving the player's GUID.
	The player's GUID is actually not available at load-time and must wait
	until more of the game is initialized before the information can be
	queried.  Get the information during PLAYER_LOGIN time instead by adding
	it to the OnEnable() methods.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1198 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Just call UnitGUID("player") if saving the value in a static property.
	No need to force a module dependency on OvaleGUID for one tiny thing that
	is already available at load time.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1196 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Use a common table pool for intermediate aura tables.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1195 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Initialize power fields of state machine from OvalePower.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1194 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Change scope of state variable to note that it's a static value.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1193 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Teach OvalePaperDoll to manage snapshot state for the simulator.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1192 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Use reference-counted table pool to manage auras.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1191 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix module dependencies for script conditions.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1190 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- De-couple module dependencies so that load-order isn't as important.
	- Initialize module dependencies at OnInitialize() for the module.
	- Separate modules into core and non-core modules.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1189 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Update the power regen values if the power display changes.
	This fixes a bug where changing from caster form to cat form on druids
	showed the energy regen in cat form to be the mana regen from caster
	form.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1188 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Use reference-counted table pool to manage snapshots instead of a queue.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1187 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Set a default value for each snapshot stat if not available.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1186 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix name of method mixed into item stored in reference-counted pools.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1185 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Add :Clean() method to pool classes.
	This method can be used to release resources held in tables allocated from
	the pool object as part of releasing the item back to the pool via
	pool:Release(item).  The pool:Clean(item) method is called shortly before
	the table is wiped and returned to the table pool.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1184 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Remove incorrect comment.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1182 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Set correct aura start/end times in the simulator for channeled spells.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1181 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Start cooldowns in the simulator at the right time for channeled spells.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1180 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Pass an extra argument to ApplySpell that denotes a channeled spell.
	A channeled spell may cause different decisions on how the spell is
	applied in the state machine.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1179 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Properly reference OvaleState.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1178 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix the start time of an action displayed in the icon.
	This had assumed that the current time was in the first interval of the
	time-span, which is not always true.  Implement a new method for
	OvaleTimeSpan to determine the next time given a starting point, and use
	that method instead of making the assumption.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1177 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Move identical cast start and end checks from the individual methods into a wrapper around the main method invoked from OvaleState.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1176 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Rename the "ApplySpell" methods in OvaleState for better documentation.
	ApplySpellStart -> ApplySpellStartCast
	    ApplySpellOnPlayer -> ApplySpellAfterCast
	    ApplySpellOnTarget -> ApplySpellOnHit
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1175 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Teach Ovale that consuming runes generates runic power.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1174 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Ensure OvaleEclipse loads after OvalePower.
	OvalePower maintains the eclipse energy level for the state machine that
	gets manipulated by OvaleEclipse.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1173 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix typo in r1140 that broke LastEstimatedSpellDamage.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1172 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Output compiler.pl errors in English.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1171 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Simplify using common Lua idiom to set default values.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1170 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Treat the current time in the simulator as part of the state.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1169 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- There are no more toggled spells in WoW.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1168 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Undefined functions called in scripts are now always errors.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1167 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Remove unnecessary module dependencies.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1166 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Generalize state:AddEclipse() to state:AddAuraToGUID().
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1165 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Rename private variable.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1164 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix target used in "targetlifenocd" computation for spell cooldowns.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1163 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Provide cleaner way to reset a spell cooldown in the simulator.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1162 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Document legacy parameter "mine" for aura scripts conditions.
	Scripts should be using the "any" parameter instead since aura conditions
	already assume the aura to check belongs to the player by default.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1161 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix tooltip display of a value instead of a spell on mouseover.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1160 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Remove rune handling in OvaleState in favor of an OvaleRunes module.
	OvaleRunes tracks the current rune information via events instead of
	polling through the Blizzard API, and also keeps rune state for the
	simulator.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1159 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Remove Eclipse handling in OvaleState in favor of an OvaleEclipse module.
	OvaleEclipse properly tracks the current Eclipse information as well as
	keeps Eclipse state for the simulator.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1157 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Organize locale files into their own directory.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1156 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Remove legacy code from refactoring OvaleState.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1155 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- More complete fix to problem noted in r1108 with auras that don't expire.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1154 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://svn.curseforge.net/wow/ovale/mainline/trunk@1153 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://svn.curseforge.net/wow/ovale/mainline/trunk@1152 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Rename static property OvaleState.attenteFinCast to OvaleState.nextCast.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1151 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Rename static property OvaleState.maintenant to OvaleState.now.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1150 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://svn.curseforge.net/wow/ovale/mainline/trunk@1149 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://svn.curseforge.net/wow/ovale/mainline/trunk@1148 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Simplify OvaleState and only track regen for the current power resource.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1147 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Split the OvaleState:ApplySpell() method into smaller pieces.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1146 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Add more regression tests for OvaleTimeSpan.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1145 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://svn.curseforge.net/wow/ovale/mainline/trunk@1144 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- When displaying values in the icons, show the full value in the tooltip.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1143 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://svn.curseforge.net/wow/ovale/mainline/trunk@1142 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Allow registering a script for all classes.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1141 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://svn.curseforge.net/wow/ovale/mainline/trunk@1140 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Add method OvaleStance:GetStance() to return the current stance name.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1139 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://svn.curseforge.net/wow/ovale/mainline/trunk@1138 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://svn.curseforge.net/wow/ovale/mainline/trunk@1137 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Silence compiler.pl warnings.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1136 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Print timespans in a prettier way.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1135 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix error with using Mind Blast in default priest script.
	- Remove spurious "test" parameter to SpellInfo that shouldn't be there.
	
	- If a condition that returns a number is used as a boolean, then boolean
	  evaluation rules dictate that non-zero is true and zero is false.  Fix:
	
	    if SpellCooldown(mind_blast) Spell(mind_blast)
	
	  was probably intended to be:
	
	    if SpellCooldown(mind_blast) == 0 Spell(mind_blast)
	
	  which is simply just:
	
	    Spell(mind_blast)
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1133 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix bug where a table wasn't cleared before re-using.
	This fixes problems with using comparison operators noted by @Wiljo.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1131 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix "==" operator broken in r1045.
	This fixes scripts that compare a condition's return value using equality,
	e.g., pet.Health() == 0.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1129 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix ticket 312 - TimeToDie not working.
	Timespan computations were not working when the start a time interval was
	infinity (math.huge).  Clamp the time to die to be a very large number
	instead of infinity so that (start, math.huge) is still a valid timespan.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1125 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix TotemExpires and TotemPresent when passed "totem=..."
	This was broken in r1074 during a code cleanup.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1123 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Allow the Lua garbage collector to G/C unused scripts.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1120 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Move default scripts to new location under "scripts".
	The "scripts" directory is the new repository for all scripts or
	script-includes distributed with Ovale.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1119 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Rudimentary support for Include(name) directives in scripts.
	- Include(name) will cause the the contents of <name> from the script
	  library to be inserted at that point prior to compiling the script.
	
	- Include() may be nested, i.e., a script may include a script that
	  includes another script, etc.
	
	- A script that is intended to be included in other scripts and not to be
	  listed as a selectable script for evaluation at runtime should be
	  registered with OvaleScripts using:
	
	    :RegisterScript(class, name, description, code, scriptType)
	
	  where scriptType is anything other than "script", e.g., "include"
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1118 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- True time-span implementation.
	A time-span is a union of continuous interval subsets of the real number
	line (0, infinity).  Internally represented by an array of numbers
	representing alternately the left and right endpoints of an interval.
	Point sets and empty sets are both considered empty.
	
	Pre-allocate tables when creating parse tree nodes in OvaleCompile to be
	reused for time-span evaluation within OvaleBestAction.
	
	Convert OvaleBestAction to use time-spans for correctness when dealing
	with arbitrary unions and intersections of time intervals when evaluating
	nodes.
	
	This fixes ticket 306 - "and" "or" bugged by @Wiljo.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1117 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix ticket 307 - TimeToDie(comparison number) improperly returns true
	Add some arguments for TestOvaleValue missing in r1114.  This fixes
	TimeToDie and TimeToHealthPercent.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1116 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Narrow the domains for which changing values are valid.
	This is a temporary fix for ticket 306 - "and" "or" bugged.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1114 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Simplify some logic for doing time span operations.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1113 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Create a proper "no-lib" version of Ovale.
	- Strip out all libraries if a "no-lib" version is requested.
	
	- Remove LibDualSpec-1.0 from the list of required library dependencies
	  since its use in OvaleOptions only requires that it be an optional
	  dependency.
	
	- Sort the OptionalDeps metadata in the TOC file.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1111 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Don't load/reference script code for other classes that won't be used.
	Only register scripts that are for the current class and allow the garbage
	collector to sweep away unused code strings.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1110 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Reference OvalePaperDoll in a simpler way.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1109 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix ticket 304 - Buff tracking bugged.
	OvaleAura was missed in the code sweep to use time spans in r1045.
	
	OvaleAura was using nil to represent infinity in auras for both duration
	and expiration time.  This caused OvaleCondition to consider these auras
	as invalid because OvaleCondition is much more strict now when checking
	the start and ending times for auras.  Use math.huge (the correct value to
	represent infinity for time spans) instead.
	
	This bug only appeared when the aura has "infinite" duration, or no
	expiration time.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1108 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Rename the parameter to add a spell to a list from "list" to "addlist".
	This fixes a collision between this new meaning and the original meaning,
	which was to check whether "list=X item=Y" matches a list named "X" having
	value "Y".
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1106 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Support test conditions for SpellAdd{,Target}{Buff,Debuff}().
	This change also allows for multiple SpellAddBuff() lines (and similarly
	for the other conditions) for the same spell to have a cumulative effect.
	
	This makes it possible to declare separate information depending on spec
	or talents or glyphs.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1105 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix return value of OvaleAura:GetAura().
	This was a code commit missed in r942 from when the function signature
	changed.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1104 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Triggering Lunar Eclipse resets the cooldown of Starfall.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1103 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Spell cooldowns are triggered when a spell has finished casting.
	This change has no run-time effect, but is a documentation issue.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1102 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Raise an Ovale event for a spec change to help synchronize modules.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1101 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Rename Ovale_AuraRefreshed to Ovale_AuraChanged.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1100 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Sort conditions alphabetically for ease of maintenance.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1099 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Move private method to the proper section.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1098 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Back out r935 and remove the damage=Func parameter feature.
	This feature added dependency loops and is removed in favor of directly
	adding functions to scripts via AddFunction() with asValue=1 to force
	constant evaluation.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1097 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Change load order of files to match dependencies.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1096 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Move loading of locales into an XML file.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1095 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Move loading of scripts into an XML file for encapsulation.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1094 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Only show the snapshot count when the Paper doll debug option is checked.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1093 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Clean up table pool modules.
	Modify constructors so that prototype inheritance works properly.
	
	Remove the Reset() method and just call Drain() from the constructor to
	empty out the pool to start.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1092 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Properly handle public properties inherited from parent class.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1091 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Remove unnecessary properties from OvalePoolGC.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1090 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix leaks to global namespace in OvalePool and OvalePoolGC.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1089 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Add conditions for agility, intellect, spirit, stamina and strength.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1087 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix infinite loop introduced in r1083 when scanning pet spellbooks.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1085 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix ticket 302 noting inconsistent return value for SpellCooldown().
	Modify SpellCooldown to have constant value of 0 if the spell is off of
	cooldown.  This matches natural expectations for how to use this script
	condition.
	
	Make similar changes to other cooldown conditions.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1084 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Get correct spell ID for spells in the spellbook.
	When looping through the spellbook, GetSpellBookItemName() doesn't always
	return the name of the spell that's currently showing in the spellbook;
	instead it might show the underlying spell that may have been replaced by
	a new spell by either talents, glyphs, Symbiosis, etc.
	
	Use GetSpellLink() instead to get the hyperlink of the actual spell that's
	showing in the spellbook and parse it to determine the correct spell ID
	and spell name.  Associate both the original (replaced) spell ID and the
	the true spell ID with the correct spell name as some scripts, e.g.
	Leafkiller's feral script, reference the spell using the replaced spell
	ID.
	
	Fix by @ShmooDude and closes his tickets 282 and 283.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1083 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Placate compiler.pl.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1081 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://svn.curseforge.net/wow/ovale/mainline/trunk@1080 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://svn.curseforge.net/wow/ovale/mainline/trunk@1079 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Add temporary debugging code that tracks snapshots while in combat.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1078 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix the return value of TimeInCombat() script condition.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1077 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://svn.curseforge.net/wow/ovale/mainline/trunk@1076 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://svn.curseforge.net/wow/ovale/mainline/trunk@1075 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://svn.curseforge.net/wow/ovale/mainline/trunk@1074 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Remove broken and unused EffectiveMana() script condition.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1073 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Rename some variables for code consistency.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1072 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Track player's power using events in OvalePower.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1071 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://svn.curseforge.net/wow/ovale/mainline/trunk@1070 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://svn.curseforge.net/wow/ovale/mainline/trunk@1069 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Clarify how the complement of a time span is calculated.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1068 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Remove comment for removed TickValue() primary condition.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1067 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://svn.curseforge.net/wow/ovale/mainline/trunk@1066 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- 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://svn.curseforge.net/wow/ovale/mainline/trunk@1065 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix the return values of BuffExpires and BuffPresent in corner cases.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1063 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Rename some power-related variables for clarity.
	OvalePower.POWER -> POWER_INFO
	    OvalePower.power -> powerType
	
	Rename some local variables that use the values above in the same way.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1062 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix ticket 299 - BuffAmount()
	Add a new condition BuffAmount that returns one of the three values
	associated with a unit aura (see UnitAura documentation for more details).
	Make existing TickValue into an alias for BuffAmount as they are basically
	identical.
	
	Implementation from @ShmooDude.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1061 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Add new script condition HasEquippedItem(itemId).
	This is a generic condition that can test whether a particular itemId is
	currently equipped.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1060 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Store the item levels of equipped items in OvaleEquipement.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1059 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Allow for multiplication and division of conditions that return numbers.
	All "numbers" are actually linear functions of the form:
	
		f(t) = a + (t - b)*c.
	
	Multiplication and division of linear functions does not yield a linear
	function in the general case, but the resulting function can be
	approximated with a first order Taylor series expansion around the current
	time point.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1058 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Clean up OvaleBestAction:GetActionInfo() and add additional comments.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1057 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix the calculation of number of ticks of a channelled spell.
	This properly accounts for which type of haste affects the channelled
	spell.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1056 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Split "actions" from "functions", where actions are Spell/Item/Macro, etc.
	Actions are final actions to be suggested, while functions return booleans
	or values.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1055 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Sanity check some values before doing arithmetic with them.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1054 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Clamp infinite time values to one hour when displayed on an icon.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1053 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Update most conditions to support comparisons, e.g., ComboPoints(more 0).
	The CPU usage of an AttackPower() > 1000 call is about twice that of an
	AttackPower(more 1000) call, so update most of the script conditions to
	take comparators.
	
	From @ShmooDude in pullup request #7 with changes by @jlam.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1052 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Add new comparators "atMost" and "atLeast" for condition parameters.
	This allows for expressing "<= limit" or ">= limit", e.g., the following
	two conditions are the same:
	
		Chi(atMost 3)
		Chi() <= 3
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1051 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Add new private method TestOvaleValue().
	TestOvaleValue() returns either an "Ovale value", which is a linear
	function, or an "Ovale boolean", which is a time span.
	
	Reimplement TestValue() and Compare() using TestOvaleValue().
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1050 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Clarify comment on the return value of a node evaluated as a boolean.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1049 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix the return value of the PTR() condition for MoP 5.4.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1048 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix return value of Chi().
	Chi is a resource like holy power or combo points that doesn't have a rate
	of regeneration; instead, it is gained on lost strictly through abilities
	(while in combat).
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1047 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix return value of MaxFocus().
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1046 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Implement time spans, which are continuous open intervals of time.
	Convert OvaleBestAction and OvaleCondition to use actual time spans
	instead of start/ending/nil to represent times.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1045 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Split the generic "operator" node into "arithmetic" and "compare" nodes.
	"Arithmetic" and "compare" nodes return different things when computed, so
	split the computation into separate functions.
	
	Modify the arithmetic computations so that the resulting values have an
	origin of atTime, since all computations will ultimately be carried out at
	t = atTime.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1044 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Remove support for the older "natural English" script syntax.
	The older syntax for scripts tried to express time spans using natural
	English phrases, but were more difficult to write and were nonsensical
	when put together with other valid expressions that use the modern syntax.
	
	Remove support for the old syntax to simplify the compiler and the script
	engine.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1043 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Add a time component to the :Compute method of OvaleBestAction.
	The time represents the time at which to evaluate the time spans
	associated with the script nodes.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1042 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Remove reference to the wowdps.com SimC profile importer.
	Currently, the importer doesn't generate working scripts and causes
	needless tickets to be filed to the project.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1041 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Code cleanup.
	- Simplify constructors for OOP classes.
	- Fix leak to global namespace.
	- Be cleaner about using "function static" variables.
	- List private functions/methods used, including base Lua API functions.
	- Quiet harmless warnings in compiler.pl slightly.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1040 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix ticket 246 - Option to disable in pet battles
	Instead of an option, always hide Ovale when the Pet Battle UI is active.
	This should match player expectations.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1038 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix ticket 287 - IsFriend() doesn't work correctly
	Fix copy and paste error that was causing the IsFriend() condition to
	incorrectly return whether the target was flagged for PvP.
	
	Analysis and fix by @Xeltor.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1037 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix ticket 296 - Ovale double deducting for energy cost
	Only apply the power cost of the spell if the spellcast hasn't already
	finished.  A spellcast that has finished in-game has already had the power
	adjusted, which would be picked up when :Reset() is called to reset the
	frame state.
	
	Also, make this more readable by splitting out code from :ApplySpell()
	method to update the power state into a new method :ApplySpellCost().
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1036 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Refactor power code into a new module OvalePower.
	- Split out power code from OvalePaperDoll and OvaleData into a separate
	  module OvalePower.
	
	- Enhance power code to track the maximum power of all power types.
	
	- Add conditions Max<Power>() that return the maximum power of that power
	  type, e.g., MaxRage, MaxEnergy, MaxChi, etc.  This closes ticket 291.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1035 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Refactor OvaleData module.
	- Move the spellbook/talent/glyph-handling to a new module OvaleSpellBook.
	
	- Move methods closer to the place where they are mostly used:
	  - :GetTickLength() moved to OvaleAura.
	  - :GetDuration() moved to OvaleState, with simplifications.
	
	- Simplify OvaleData into a module without dependencies that can be used
	  as a global data store for other modules where needed.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1034 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Add a timestamp to the args associated with Ovale_Aura* events.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1032 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Enhance :DebugPrintf to automatically add a timestamp if requested.
	Simplify the modules that manually add timestamps to their debugging
	output and remove unnecessary calls to API_GetTime().
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1031 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Use GetTime() directly in modules instead of relying on Ovale.now.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1030 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Allow a "texture" parameter for SpellInfo to use a specific texture.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1029 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix ticket 295 - ShredBang causes Rip to incorrectly re-snapshot stats
	Add Shred! spell ID to the buffNoSnapshotSpellList for Rip DoTs.
	Fix from @ShmooDude.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1028 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix ticket 293 - TimeToHealthPercent.
	Add new script condition TimeToHealthPercent() that returns the number of
	seconds before the target's health percent reaches the given amount, e.g.,
	
	    if target.TimeToHealthPercent(25) <5 UsePotion()
	
	Patch from @ShmooDude.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1027 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Note that PowerCost(spellId) can return 0 for some spells.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1026 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Remove pre-MoP armor set lists.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1025 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Add SimCish armor set names to MoP armor sets.
	Append "_melee", "_caster", "_heal", "_tank" to the "T<NN>" names.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1024 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Add T16 tier pieces to armor set database.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1023 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Clean up pullup request #5 from ShmooDude/master.
	- Power type and regen values shouldn't be snapshotted.
	- Remove unnecessary call to GetPowerRegen().
	- Fix energy regen for druids and monks out of DPS stance.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1022 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Merge pullup request #5 from ShmooDude/master.
	Use GetPowerRegen() to get the true power regen rate instead of directly
	computing the value.  This fixes ticket 294.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1021 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Update TOC for 5.4.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1019 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix bug with SpellDamageBuff() information not being applied to DoTs.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1017 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Introduce new spell priority feature ``wait=N''.
	Setting wait=N in a Spell() or Item() action will cause that action to
	have priority over later actions if the later actions start within N
	seconds of that action's start time.
	
	In the following example, Crusader Strike will be suggested over later
	actions as long as it is within 0.2 seconds of the Crusader Strike
	cooldown, otherwise Judgment will be suggested within 0.2 seconds of the
	Judgment cooldown, followed by Templars Verdict or Holy Prism using normal
	start time comparisons.
	
	    Spell(crusader_strike wait=0.2)
	    Spell(judgment wait=0.2)
	    Spell(templars_verdict)
	    Spell(holy_prism)
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1015 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Warlock: Fixes to destruction script for Immolate and Rain of Fire.
	- Use the correct spell ID for the instant-cast Rain of Fire gained by
	  destruction warlocks after level 54 (Aftermath).
	
	- Also check for the Immolate debuff applied to targets near an Immolate
	  target when determining whether a fresh Immolate must be cast on the
	  current target.
	
	Fixes from @ShmooDude in ticket 284.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1014 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Alias IncomingDamage to DamageTaken to match SimC condition name.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1013 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Treat snapshotTime as a field that needs to be copied for snapshots.
	This fixes auras not gaining any snapshots when "aura" debugging is
	enabled.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1011 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Add more debugging info for OvaleAura for when DoTs are detected.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1010 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Add a "snapshot" debug toggle to only know when a new snapshot is taken.
	Quiet down the debugging for PaperDoll a bit by removing some lines that
	were needed solely for debugging the MH/OH damage computation.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1009 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Separate the base damage multiplier from the spell-specific one.
	The "base damage multiplier" is the one on the character sheet and applies
	to all attacks -- it is referenced as "baseDamageMultiplier" in the
	player's stat snapshot.
	
	The "spell-specific damage multiplier" for a spell is an extra damage
	multiplier for that spell, excluding the base effects, that includes
	effects from buffs, debuffs, and stances -- it is referenced as
	"damageMultiplier" in the spellcast and aura information.
	
	Move OvaleAura:GetDamageMultiplier into OvaleFuture and make it private
	since OvaleFuture is the only one that uses it.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1007 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Keep snapshots of player stats from the past 5 seconds.
	A snapshot is taken each time one of the player's stats changes, with
	changes that occur at the same time (based on GetTime()) collected into
	the same snapshot.
	
	OvalePaperDoll.stat is now a pointer to the head of the snapshot queue,
	pointing to the most recent snapshot.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1006 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Centralize stat descriptions so that they may be more easily localized.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1005 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Add timestamps to PaperDoll event handlers for debugging.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1004 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Refactor latency calculation into a separate OvaleLatency module.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1003 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Expose way to trace spellcasts by spell ID or spell name.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1002 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Minor changes to OvaleAura CLEU handler for readability.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1001 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Clean up debugging output for OvaleAura module.
	Remove the need to pass "event" as a function argument everywhere.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1000 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Make OvaleGUID:GetUnitId() prefer returning "primary" unit IDs.
	These unit IDs are ones that receive UNIT_AURA events from the game
	servers.  This makes the CLEU event handler not double-process any
	primary unit IDs that may happen to also have "secondary" names, e.g.,
	"mouseover".
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@999 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Remove unneeded private function isDebuffInList().
	We can check for a debuff named by a spell list directly using
	OvaleState:GetAura() more efficiently since it uses the cached auras
	instead of directly looping over the player's debuffs using the Blizzard
	API function UnitDebuff().
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@998 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Generalize TimeToEnergyFor to TimeToPowerFor and add more aliases.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@997 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix tickets 245 & 281 by adding Aura of the Elements as a magic debuff.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@996 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Update player's spells/glyphs/talents when a spec-change is detected.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@995 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Add Reset method to Pool modules that re-initializes to empty states.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@994 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Add a wrapper for the Lua garbage collector using the Pool interface.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@993 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Size() method returns the size/length of a queue.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@992 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Comment and add additional debugging information for "unless".
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@990 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix ticket 275 - Energy() comparisons
	This was a bug in how a "not" node was evaluated -- it was missing the
	case where the time interval to invert was {t: t > start}, which should
	return {t: t < start}.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@989 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix ticket 274 - WeaponDamage() giving wrong results
	Different pieces of information become available at different times
	depending on the event order, so force computing the weapon damage for
	each of those events so that the last one computes the correct values.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@988 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Add toggle for debugging OvalePaperDoll.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@987 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix copyright date information.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@986 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix ticket 88 - Threat does not work?
	Default to checking threat against the current target and fix the
	documentation to note that the Threat() condition can take a target
	parameter.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@985 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Add new conditions PowerCost(spell) and TimeToEnergyFor(spell).
	There is also an alias EnergyCost() for PowerCost() to make scripts for
	ferals and rogues more readable.  This fixes ticket 273 by @ShmooDude.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@984 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Clarify how OvaleCondition.defaultTarget is used within Ovale.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@983 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Improve latency measurement by using the correct events for timestamps.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@981 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Major changes to OvaleFuture to properly handle spellcast event sequence.
	* Fix long-standing bug regarding UNIT_SPELLCAST_* events.  The proper
	  order order of events is actually:
	
		SENT > START > SUCCEEDED (cast-time spells)
		SENT > SUCCEEDED (instant-cast spells)
	
	  Save the target, spell and lineID info from the SENT event to identify
	  later events regarding the same spellcast.
	
	* Save the most recent spellcast information in Ovale.lastSpellcast, which
	  includes a snapshot of the stats that are active for that spellcast.
	  Copy this snapshot information into DoT auras applied by the spellcast.
	  This assumes that the DoT being applied was caused by the most recent
	  spellcast.
	
	* Auras changes that are simultaneous with a spellcast actually occur
	  slightly after the UNIT_SPELLCAST_SUCCEEDED event and before the CLEU
	  SPELL_DAMAGE (or other spell result) event.  Capture new snapshots and
	  adjust the spellcast snapshot information accordingly to ensure
	  accuracy.
	
	This should fix the following tickets:
	
	* Ticket 260 where target.Debuff*() and Last*() script conditions don't
	  always show the same player stats for the same spell.  Both now pull
	  from the same source so they show the same information.
	
	* Ticket 262 where the DebuffComboPoints() condition was always returning
	  zero since previously OvaleAura didn't have access to combo point
	  information.  The combo point information is now saved with the
	  spellcast snapshot that is copied into the DoT aura.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@980 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Raise events in OvaleAura when auras are added, refreshed or deleted.
	The events are:
	
	    Ovale_AuraAdded
	    Ovale_AuraRefreshed
	    Ovale_AuraDeleted
	
	and the arguments for these events are:
	
	    unit GUID, aura spell ID, caster GUID
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@979 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Update copyright information for correctness.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@978 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Cache computed values of custom functions when evaluating the script.
	* Split out parsing AddFunction statements into its own function.
	
	* Functions declared using AddFunction compile into a new node type. The
	  new node type "customfunction" has a single child node that points to
	  the master node for the function.
	
	* Give the script an age depending on how many times it has been
	  evaluated. Cache the computed values of custom function so that
	  subsequent calls to the same function within the same script pull from
	  the cached values instead of re-computing from scratch.
	
	This fixes ticket 271 in the right way.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@977 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Push more debugging output out of OvaleOptions into the relevant modules.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@976 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix ticket 264 - update throttling functionality
	Missed changes in r758 that broke the existing throttling code. This makes
	the "update interval" option work again, defaulting to 0.1s == 100ms.
	
	Expose option to set the update interval to throttle the refresh rate.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@975 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Remove unused "latency correction" option.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@974 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Organize the Ovale configuration panel into logical units.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@973 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Change WeaponDamage() condition to return normalized weapon damage.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@972 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix ticket 268 - LastEstimatedDamage not acounting for DamageMultiplier.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@971 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix ticket 256 - DebuffAttackPower not updating properly on refresh
	Determining whether an aura needs a fresh snapshot requires some state to
	be kept.  In this case, we track the most recent spell cast by the player
	that preceded the aura being applied.  If that spell is one that doesn't
	trigger a new snapshot of the aura, then don't snapshot; but snapshot
	otherwise.
	
	Currently doesn't deal with DoTs that are spread by other spells, e.g.,
	Inferno Blast and Soul Swap.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@969 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix ticket 259 - Snapshots not reliable for macro'ed abilities
	Force OvalePaperDoll to update stats prior to a snapshot being taken if
	the live stats are requested.
	
	Also remove the explicit copy of damageMultiplier, which is now included
	as a baseline player stat.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@968 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix ticket 258 - DamageMultiplier experiences delay before updating
	UNIT_AURA fires before stat changes take effect, so we cannot hook a
	handler to update the damage multiplier onto this event.  Hook into
	UNIT_DAMAGE, which fires when a unit's melee damage changes and thus
	happens when/after the stat change occurs.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@967 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix ticket 257 - Please add a DebuffComboPoints function
	Add a {Buff,Debuff}ComboPoints condition that takes the saved combo point
	information from the target aura.
	
	Also add some default values for various stats.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@966 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix documentation of renamed conditions.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@965 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix ticket 255 - lua error in target.DebuffMeleeCritChance
	Add default crit chance in case it's missing from the aura.  Make the
	default non-zero in case it's used as a divisor in a calculation.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@964 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix weapon damage calculations.
	Calculate the average weapon damage of the currently equipped weapon by
	working backwards from the melee damage on the character sheet.  This
	avoids problems with damage stats on upgraded weapons.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@962 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Use Blizzard API to get the damage multiplier.
	The damage multiplier numbers aren't accurate from just scanning buffs
	because the tooltips aren't accurate.  For example, Savage Roar's tooltip
	says 30% increase but it's actually 40% increase, and the Fluidity buff in
	the Jin'Rohk encounter says 40% increase but in LFR it's actually 96%
	increase.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@961 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix typos in variable name that caused memory leaks in OvaleFuture.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@960 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Set reasonable defaults for various player stats in case they are missing.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@959 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix ticket 166 - Option to add framestrata please
	Set the Ovale frame strata to "MEDIUM", which is the same strata as
	UIParent frame.  This should prevent Ovale from slipping behind UI
	elements that depict the environment.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@958 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix ticket 254 - InFlightToTarget
	The InFlightToTarget script condition was not working due to an old
	implementation bug from the MoP merge in 5.0.0 where it was ignoring the
	spell ID parameter.
	
	Fix this issue by putting parentheses in the proper places and reordering
	for efficiency.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@957 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix ticket 252 - LastSpellSpellPower not working
	This was a code logic error: the broken code only updated the information
	if the previous information existed, so it never saved any information as
	a result.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@956 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Rename LastSpell<StatName> conditions to Last<StatName>.
	This makes the names of those script conditions slightly easier to
	remember and use (at least for me) and less awkward to type.
	
	Also make CritChance a direct alias of SpellCritChance since that is how
	it's implemented.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@955 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix ticket 253 - Add an upper/lower limit to CritChance functions
	Allow for an extra parameter "unlimited=1" that allows for the critical
	strike chance returned by the following script conditions to exceed 100:
	
	* BuffMeleeCritChance, DebuffMeleeCritChance
	* BuffRangedCritChance, DebuffRangedCritChance
	* BuffSpellCritChance, DebuffSpellCritChance
	* CritChance, SpellCritChance
	* MeleeCritChance
	* RangedCritChance
	* LastSpellMeleeCritChance
	* LastSpellRangedCritChance
	* LastSpellCritChance
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@954 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Document additional implied script conditions.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@953 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix ticket 251 - crit functions don't update with Agi/Int changes.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@952 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix error with LastSpellEstimatedDamage() script condition.
	GetLastSpellInfo is part of OvaleFuture.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@950 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix ticket 249 - Nature's Vigil is a 10% buff instead of 20%.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@948 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Simplify check for whether player is dual-wielding.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@947 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Add WeaponDamage(hand) script condition and use MH/OH damage in formulas.
	The Damage() and LastSpellEstimatedDamage() script conditions now include
	MH/OH weapon damage in their calculations as simple linear terms:
	
	    bonusmainhand * MH_WEAPON_DAMAGE
	    bonusoffhand * OH_WEAPON_DAMAGE
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@946 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Snapshot weapon damage as a player stat.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@945 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Snapshot a DoT's damage multiplier when it is applied or refreshed.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@944 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Add new script conditions.
	The following two conditions allow for inspection of the player's current
	stats:
	
	    MeleeCritChance
	    RangedCritChance
	
	The following script conditions allow for examining the player's stats at
	the time the given DoT was applied on the target.
	
	    DebuffAttackPower
	    DebuffSpellpower
	    DebuffMeleeCritChance
	    DebuffRangedCritChance
	    DebuffSpellCritChance
	    DebuffSpellHaste
	    DebuffMastery
	
	This information can be used to determine whether or not to overwrite an
	existing DoT on the target.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@943 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Adapt GetAura() to store results in a table passed to the method.
	This affects the GetAura method in OvaleAura, OvaleState and
	OvaleCondition.
	
	This change allows for efficient lookup of any of the properties of the
	aura found by GetAura if needed, while preserving the base information in
	the return values for GetAura (start, ending, count, gain).
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@942 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Snapshot player stats when a spell is cast and when DoTs are applied.
	The most recent successfully landed cast of a spell is saved in a table
	indexed by target and spell ID, and contains all of the information for
	that spellcast, including cast time and also a snapshot of the player
	stats.
	
	Player stats are snapshotted both at the start of a cast and when it is
	sent to the server so that OvaleState can approximately know the player's
	stats at the end an active spellcast.
	
	Player stats are also snapshotted when a DoT is applied or refreshed.
	
	Introduce a new generalized public method OvaleFuture:GetLastSpellInfo()
	that returns information about the last successfully landed spell.  Remove
	the following superseded methods:
	
		GetLastAttackPower
		GetLastComboPoints
		GetLastCritChance
		GetLastDamageMultiplier
		GetLastSpellpower
	
	Change the following conditions to take a target since spellcast
	information is also tracked by target:
	
		LastSpellAttackPower
		LastSpellComboPoints
		LastSpellCritChance
		LastSpellDamageMultiplier
		LastSpellEstimatedDamage
		LastSpellMastery
		LastSpellSpellpower
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@941 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Add OvalePaperDoll:SnapshotStats() method that snapshots player stats.
	Change the internal representation of player stats by storing them in a
	table whose members are the stat names, e.g., agility.  The table's
	contents are directly copied into the table provided to SnapshotStats(t).
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@940 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Don't cheat and stash an extra "Magic/Disease/etc." aura.
	Remove the workaround that stashed an extra aura whose spellId was the
	debuff type of the aura.  This was to allow for implicit spell lists named
	"Magic", "Poison", "Disease", and "Curse" that could be used where other
	spell list names are used.
	
	We now just check all of the auras on the target to see if there is one of
	the named debuff type on the target.
	
	As part of the cleanup, rename some "spellId" variable names to "auraID"
	to reduce namespace collision.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@939 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Extend tracking of auras cast by others to track all auras.
	The assumption is that it's not possible for one caster to put more than
	one aura of a given ID on a target, which should be true.
	
	Change GetMyAuraOnAnyTarget to GetAuraOnAnyTarget, which allows for
	specifying whether to check for only "my" auras or auras cast by anyone.
	With the associated change to extend aura tracking above, the following
	script conditions should provide more accurate answers:
	
	    BuffCount, DebuffCount
	    OtherBuffExpires, OtherDebuffExpires
	    OtherBuffPresent, OtherDebuffPresent
	    OtherBuffRemains, OtherDebuffRemains
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@938 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Catch up with Eclipse changes in MoP.
	- Eclipse energy is added at the end of the spellcast, not when the spell
	  lands on its target.
	
	- Similarly, the Eclipse buff state procs shortly after the final
	  spellcast is complete, not after the final spell lands on its target.
	
	- Handle spells like Starsurge that add energy in whatever direction we're
	  already moving by allowing a new SpellInfo parameter "eclipsedir=1" to
	  flag these types of spells.
	
	- Handle Euphoria, which doubles the amount of Eclipse energy generated by
	  spells when not in an Eclipse state.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@936 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Allow SpellInfo to specify a function to compute Damage().
	A SpellInfo() declaration can include a "damage=FunctionName" parameter,
	where FunctionName is an Ovale script function defined using AddFunction
	that is used directly by the Damage() script condition to compute the
	estimated damage of a spell.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@935 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Add list=<name> parameter to SpellInfo to add/create to the spell list.
	This is an alternative way to create a spell list via SpellInfo as opposed
	to listing them all directly in SpellList, i.e, these are equivalent:
	
	    Define(buff1 12345)
	      SpellInfo(buff1 list=trinket_proc_intellect)
	    Define(buff2 54321)
	      SpellInfo(buff2 list=trinket_proc_intellect)
	
	and
	
	    Define(buff1 12345)
	    Define(buff2 54321)
	    SpellList(trinket_proc_intellect buff1 buff2)
	
	This makes it easier to incrementally append to a spell list definition.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@934 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- UNIT_SPELLCAST_SENT returns the spell name, not spell ID.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@932 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix rest of stacking damage buffs error.
	Back out remainder of r814 that was causing errors with stacking damage
	buffs.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@931 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Change internal implementation of spell lists.
	Move internal representation of spell lists from lists whose values are
	the spell IDs to tables indexed by spell IDs with a default value of
	"true".  This makes it easier to do the most common operation, which is to
	check whether a given spell ID is in the spell list -- we can now do a
	simple table lookup instead of walking the list.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@930 d5049fe3-3747-40f7-a4b5-f36d6801af5f
Sidoine De Wispelaere:
	- Added CritChance and LastSpellCritChance conditions, needed by new SimulationCraft imports
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@929 d5049fe3-3747-40f7-a4b5-f36d6801af5f
Johnny C. Lam:
	- Update addon information for MoP 5.3.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@927 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Update existing MoP 5.2 default scripts for spell changes in MoP 5.3.
	This is a stopgap fix until new scripts are eventually imported using the
	SimC import tool for 5.3 SimC profiles.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@926 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- MoP 5.3 changes Savage Roar's bonus damage to 40%, up from 30%.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@925 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Add new script conditions: DamageTaken(interval) and Latency().
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@924 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Rename OvaleDeque to OvaleQueue and implement LIFO and FIFO structures.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@923 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- New module OvaleDamageTaken that keeps track of damage recently taken.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@922 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Add deque (double-ended queue) implementation in OvaleDeque.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@921 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Keep a current estimate of the current latency in OvaleFuture.latency.
	The latency is estimated by tracking the difference between the times of
	the most recent UNIT_SPELLCAST_SENT and UNIT_SPELLCAST_SUCCEEDED event
	pair.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@920 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Implement ItemInfo() script declaration.
	ItemInfo(itemId buff=buffId proc=procName) declares that the item
	specified by "itemId" procs the buff named by "buffId" of type "procName".
	The buffIds from all ItemInfo lines are collected into spell lists named
	"item_proc_<procName>".
	
	This is intended to mirror the SimulationCraft expression
	"trinket.proc.<buff>.<expr>".
	
	For example, the following declarations describe the various editions of
	the caster DPS trinket "Wushoolay's Final Choice" which procs an intellect
	buff called "Wushoolay's Lightning":
	
	  Define(wushoolays_lightning 138786)
	    SpellInfo(wushoolays_lightning duration=20)
	  ItemList(wushoolays_final_choice 94531 95669 96041 96413 96785)
	    ItemInfo(94531 buff=wushoolays_final_choice proc=intellect)
	    ItemInfo(95669 buff=wushoolays_final_choice proc=intellect)
	    ItemInfo(96041 buff=wushoolays_final_choice proc=intellect)
	    ItemInfo(96413 buff=wushoolays_final_choice proc=intellect)
	    ItemInfo(96785 buff=wushoolays_final_choice proc=intellect)
	
	And similarly for "Breath of the Hydra":
	
	  Define(breath_of_many_minds 138898)
	    SpellInfo(breath_of_many_minds duration=20)
	  ItemList(breath_of_the_hydra 94521 95711 96083 96455 96827)
	    ItemInfo(94521 buff=breath_of_many_minds proc=intellect)
	    ItemInfo(95711 buff=breath_of_many_minds proc=intellect)
	    ItemInfo(96083 buff=breath_of_many_minds proc=intellect)
	    ItemInfo(96455 buff=breath_of_many_minds proc=intellect)
	    ItemInfo(96827 buff=breath_of_many_minds proc=intellect)
	
	It is then possible to use "item_proc_intellect" as a buff name to
	represent the intellect proc from either trinket, e.g.,
	
	  # metamorphosis,if=trinket.proc.intellect.react
	  if BuffPresent(item_proc_intellect) Spell(metamorphosis)
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@919 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Add support for Jin'rokh Fluidity buff.  From @aggixx.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@918 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix ticket 241 by guarding against a missing script source.
	Sometimes, the script source may not be present because the addon that
	provided it is removed.  Protect against this by checking for nil tables
	appropriately.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@917 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Improvements to main project description.
	There is only one Judgment spell for paladins now.  Also improve use of
	punctuation and add a few more hyperlinks.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@916 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Dark Intent gives stamina, and Energizing Spores gives spell haste.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@914 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Don't account for stacking damage buffs for now.
	Back out part of r814 that multiplied the damage increase by the stack
	size.  There are very few stacking damage buffs, and those can be handled
	explicitly for now until Ovale gains a way to describe a stacking versus a
	non-stacking buff.
	
	This fixes the result of the Damage() and LastSpellEstimatedDamage()
	conditions.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@912 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Recognize shaman caster tier 15 gear.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@911 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Add support for Ji-Kun Primal Nutrient buff. From @aggixx.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@909 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Generalize SpellAddBuff to allow more than "refresh" or a number.
	Also fix ticket #240 "Monk keg smash LUA error" by sanity checking that
	the aura specified in SpellAddBuff is followed by a number before assuming
	it's a new aura applied by the spell.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@908 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Update stance list when a new spell is learned.
	Learning a new spell may change the stance bar, e.g., while leveling or
	gaining a new talent or a new temporary ability.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@907 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Initialize a variable in a more clearly-documented way.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@905 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Minor optimization: release nodes in O(n) time, not O(n^2) time.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@904 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Sanity check that all functions called within the script are defined.
	Create a new debugging toggle that reports undefined functions to the chat
	window when a script is compiled.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@903 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix ticket #237: Guard against nil aura table.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@902 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Shadow priest DoTs are affected by spell haste.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@900 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix ticket #236 - Fixes for Ovale priest default script
	Change the spell IDs of Halo and Divine Star to the shadow spec versions.
	Thanks to @napgravy for the fix.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@899 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix ticket #235 - Ret Paladin spell IDs
	Execution Sentence has a different spell ID for the ability (114157) and
	the debuff (114156).
	
	Guardian of Ancient Kings has spell ID 86698 for retribution paladins.
	
	Thanks to @stonecow for the correct spell IDs.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@898 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Dynamically update tick length of auras applied by the player.
	The tick times of a periodic aura applied by the player are taken from
	watching for SPELL_PERIODIC CLEU events.  Those tick times are used to
	update the estimate for the aura's tick length based on empirical
	evidence, and is hopefully more accurate.  It also avoids needing to store
	the haste percentage at which a periodic aura was applied.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@897 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Change the way that auras are scanned and kept in the aura database.
	Keep a separate aura age for each GUID so we can tell when an aura
	previously present is missing in a new aura scan of that GUID without
	affecting the determination of other unit's aura ages.  The age is simply
	the number of times the unit's auras were scanned.
	
	Be more strict about deciding when an aura found on a unit matches one
	that was recently scanned on the same unit.  An aura is the same if the
	following details match:
	
		caster, duration, expiration time, stack count
	
	Being more strict helps to "age" the auras properly, instead of tossing
	them out and getting new scans each time UpdateAuras/ScanUnitAuras is run.
	
	These changes will allow us to store more metadata in the aura properties
	about the player's state (e.g., tick length, crit chance, etc.) at the
	time the aura was gained.
	
	Also, store the caster's GUID in the aura properties instead of the
	caster's unit ID.  The former is invariant and better suited to aura
	scans triggered by CLEU events.
	
	Rename two methods to be more descriptive about what they do:
	
		UpdateAuras -> ScanUnitAuras
		AddAura -> UnitGainedAura
	
	Re-use code to remove expired auras and be more DRY.
	
	Be smarter about when to trigger an Ovale refresh event by checking
	whether auras have actually changed on a unit since they were last
	scanned.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@896 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Sanity-check "mouseover"-related units in OvaleGUID method results.
	Mouseover and mouseover-derived targets cached by OvaleGUID are not
	necessarily valid because the cursor may have moved off the previous
	mouseover target (there is no event fired for moving off).  Verify that
	the mouseover unit is still there before returning these unit IDs.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@895 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Handle new SpellInfo parameter "cd_haste".
	A spell whose cooldown is affected by haste effects can be tagged with
	"cd_haste=melee" or "cd_haste=spell".
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@893 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Allow for melee haste to affect the GCD between melee specials.
	This is primarily for paladins, for whom melee haste does this through
	Sanctity of Battle.  Those spells for which Sanctity of Battle apply
	should be tagged with "haste=melee" in a SpellInfo line.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@892 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Add StaggerRemains() to get the remaining Stagger damage on a target.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@891 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Add debugging message for cooldowns of spell launched in the simulator.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@890 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Leave "Ovale" in the global namespace to ease debugging.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@889 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Include node Id in the trace messages for easier debugging.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@888 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Remove unnecessary setting of Ovale.refreshNeeded["player"].
	It is already toggled in the Compile method.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@887 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Don't leak names into the global namespace.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@886 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix bug in OvaleFuture broke accounting for spells in flight.
	Catch up with removed method in debugging function.
	
	Be more DRY by using a custom print function for traced spells.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@885 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Update combo points when the target changes or when the player zones in.
	This fixes a bug where having 3 CPs up on one target then switching targets
	causes Ovale to assume there are still 3 CPs up on the new target.
	Reported by @Erizura in an Ovale rogue forum thread.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@883 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Catch up to a renamed function.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@881 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix for ticket 215 - Memory leak?
	Invert design by replacing a stateful iterator with a callback.  This
	avoids the (temporary) memory used by Lua to create and store closures.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@879 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Add new condition SpellKnown() to test for a spell in the spellbook.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@878 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Track critical strike chance and split bonus damage from bonus healing.
	This isn't perfect.  This only updates the player's critical strike chance
	if it's due to a change in critical strike rating.  If there is a buff
	applied that provides a flat increase to a player's critical strike
	chance, then it won't trigger the update.
	
	We also use two different events for updating bonus damage and bonus
	healing instead of just one, which may not necessarily have fired when
	bonus healing changed.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@876 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Use a lookup table to be more efficient in a CLEU event handler.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@875 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Add new condition IsPVP() to check for PvP-flagged units.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@874 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Remove accidentally duplicated line.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@873 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix ticket #225 - Chat window error when click target with DK.
	Change Death Knight script syntax to work around a parser bug with braces.
	The parser doesn't correctly parse "a + b * {c / d}".
	It parses it as "{a + b} * {c / d}".
	The modified script does "a + {b * c / d}" to force the proper parse.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@871 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Back out previous as it's not a complete fix.
	Leave it alone so that existing working scripts don't break.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@870 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix operator precedence error that was causing DK script issues.
	Ovale was incorrectly parsing:
	
	    a + b * {c / d}
	as:
	    {a + b} * {c + d}
	
	This change makes it correctly parse as:
	
	    a + {b * {c / d}}
	
	This error was been in Ovale since MoP was released but it takes a rather
	complex script to trigger it.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@869 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix "compare" node, which affected "Condition(more 5)" constructs.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@868 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Be explicit about tick length for auras that we request tick information.
	The default scripts for warlocks, priests and rogues use TickRemains,
	TickTime and Ticks conditions for several spells, and those spells now
	need an explicit tick=N parameter in their respective SpellInfo lines.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@867 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Rename avecHate() to TimeWithHaste() and improve the documentation.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@866 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Cleanup of OvaleCondition.
	* Rename getOtherAura to GetMyAuraOnAnyTarget and make it clear that it's
	  a wrapper for OvaleState:GetMyAuraOnAnyTarget, much like how GetAura is
	  a wrapper for OvaleState:GetAura.
	
	* Merge fixes to Buff/Debuff conditions into "Other" conditions.
	
	* Make function names start with a capital letter (cosmetic).
	
	* Sort the private methods by category.
	
	* Use OvaleDate:GetSpellName() instead of Blizzard API function
	  GetSpellInfo where possible for efficiency.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@865 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Make the check script pass the current code.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@864 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Make OvalaSkada into a direct module of Skada instead of proxying for one.
	The previous wrapper object did nothing except use our own OnEnable() and
	OnDisable() routines, which was unnecessary.  Simply add the required
	registration lines to the Skada modules's OnEnable() and OnDisable()
	routines directly.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@863 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Remove unnecessary comment since OvaleGUID has a debugging toggle.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@862 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Code consistency.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@860 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix buff/debuff conditions broken in commit r834.
	This fixes BuffPresent, BuffExpires, BuffRemains, BuffDuration, NextTick,
	Ticks, TicksRemain and TickTime to return the correct results again.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@859 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Use helper function to deal with nil arguments to formatted strings.
	This fixes using the trace functionality to explore the decisions that
	Ovale is making.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@858 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix renamed variable that was breaking support for channelled spells.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@856 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Back out changes in r842 and restore damage meter registration.
	OvaleFuture needs to send out messages to all of the registered
	damage meters when a scored spell has been cast.
	
	Improve the implementation of the registration so that it only
	requires a function or a method name instead of the module itself.
	This makes it easier for other damage meters to implement a small
	function to receive score information from Ovale instead of
	implementing a full-blown Ovale module.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@855 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Use SetFormattedText instead of SetText method for memory efficiency.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@854 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Use OvaleData:GetSpellName() for efficiency.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@853 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Remove two TODO list items that don't apply.
	* IsSpellInRange() doesn't take spell IDs.
	
	* Extending the grammar to allow function calls to be used as parameters
	  for other functions is a parser issue that is part of ticket #181.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@852 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix syntax error.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@850 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix two bugs in OvaleBestAction.
	(1) Missed a variable rename that caused channeled spells to trigger Lua
	    error, broken in commit r843.  This fixes ticket #226.
	
	(2) Spell priorities were broken in commit r816.
	
	Also improve some of the comments in this file to better document what's
	happening.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@848 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Also return number of ticks from OvaleData:GetDuration().
	It already computed the information, so return it as well so the caller
	doesn't have to make that same error-prone floating-point computation.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@847 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix arguments to GetDuration() (it only takes 3 arguments).
	Also guard against zero tick lengths (shouldn't happen but you never know)
	and add some comments to clarify what's happening in the code.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@846 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Begin cleanup to allow individual modules to register their own options.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@844 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Defer creating strings until the actual Print/Log/Error methods.
	Add new methods to Ovale -- Logf, Errorf, DebugPrintf -- that take a
	format string and arguments for interpolation, much like the standard
	AceConsole-3.0 Printf method.  Use the new methods in place of Log, Error,
	DebugPrintf so that the actual creation of strings is deferred until the
	arguments are interpolated into the format string within the new methods.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@843 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Disperse damage meter score-handling to the meter modules.
	Simplify main Ovale class by moving all of the routines for receiving the
	Ovale score broadcasts to the OvaleRecount and OvaleSkada modules
	directly.  The main Ovale class now just broadcasts the player's own score
	to any interested parties when combat ends.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@842 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Tag GetSpellTexture() as a Blizzard API function.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@841 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Add ItemName() script function to be used similarly to SpellName().
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@840 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix global variable leak.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@839 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Don't use OvaleDate:GetSpellInfo() where we don't want side-effects.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@838 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Code cleanup.
	* Protect against some nil values.
	* Remove awkward GetSpellInfoOrNil function.
	* Remove unused variables in OvaleAura.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@837 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Make explicit which aura changes are handled by CLEU and by UNIT_AURA.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@836 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Tag periodic auras that are affected by spell haste.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@835 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Save the tick length as part of the aura properties.
	Set the tick information directly in AddAura method instead of the CLEU
	event handler in case CLEU and UNIT_AURA events arrive out of order.
	
	Adjust the API by changing methods that returned the spell haste
	multiplier to return the tick length instead.  The primary use of the
	spell haste multiplier was to compute the tick length later on anyway.
	
	Drop the hasteMultiplier argument to GetDuration and GetTickLength since
	those two methods are now never called with that argument set.
	
	Enhance GetTickLength and GetDuration to accept spell list name in place
	of spell ID.
	
	Note that the various ``tick'' conditions can take a spell list.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@834 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Reorganize debug options and add a button to trace the next frame.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@833 d5049fe3-3747-40f7-a4b5-f36d6801af5f
Sidoine De Wispelaere:
	- LibDualSpec is optional
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@832 d5049fe3-3747-40f7-a4b5-f36d6801af5f
Johnny C. Lam:
	- Fix auras applied by traveling spells.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@830 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Add OvaleCondition GetAura method that works on conditions parameters.
	This extracts the relevant information from condition parameters and
	forwards them onward to OvaleState:GetAura() and has the same return
	values.
	
	Drop GetTargetAura and getAura local functions that are now unused.
	
	This simplifies the code and better highlights the parallels between
	OvaleAura, OvaleState, and OvaleCondition.
	
	Change getTarget local function to take a condition paramter table
	like all other similarly named methods.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@829 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Protect against nil tables.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@827 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Add missing embedded library AceTimer-3.0 used by OvaleEnemies.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@825 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Code consistency: rename a variable to match coding conventions.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@824 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Add a new method OvaleData.GetSpellName(spellId).
	This returns the name associated with the given spell ID and guards
	against nil spell IDs.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@823 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Enhance GetAura methods to accept the name of a spell list.
	This allows for doing things like:
	
	    OvaleAura:GetAura("player", "melee_haste", "HELPFUL")
	    OvaleState:GetAura("player", "melee_haste", "HELPFUL")
	
	to get the first buff from the melee_haste spell list that is found on the
	player.
	
	As a side-effect of this change, the SpellInfo parameters that take a
	buff spell ID, e.g., buffnocd, buff_combo, etc., can now take a spell list
	name instead.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@822 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Remove unused code and miscellaneous cleanup in OvaleCondition.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@821 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Only check across player-applied auras when checking auras on all targets.
	OvaleAura only accurately tracks every aura applied by the player.  For
	auras applied by anyone else, OvaleAura only saves the one with the latest
	expiration time.  Rename the GetAuraOnAnyTarget methods to
	GetMyAuraOnAnyTarget in both OvaleAura and OvaleState.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@820 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Rename some methods in OvaleState to be more descriptive of their actions.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@819 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Add rate-of-change to ``Health'', ``HealthMissing'', and ``HealthPercent''.
	The rates are calculated from the current health and maximum health of the
	specified unit and the estimated DPS against that unit.  This makes the
	``Health'', ``HealthMissing'', and ``HealthPercent'' conditions return a
	time interval that can be used by OvaleBestAction to compute sensible time
	intervals, e.g., ``target.HealthPercent() <25'' has a time estimate
	associated with it.
	
	Change the private TimeToDie() method to return a triplet of:
	
	    time to die, current health, maximum health
	
	to support the new calculations.
	
	Enhance the private TimeToDie() method to be more accurate within the
	first few seconds of targeting a new mob.
	
	Change the ``DeadIn'' condition to be an alias of the ``TimeToDie''
	condition.
	
	Change Life/LifeMissing/LifePercent to be aliases of
	Health/HealthMissing/HealthPercent instead of vice versa, as the latter
	are names that correspond to the SimulationCraft Action List grammar and
	are more likely to be looked up.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@818 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix TimeToMaxEnergy() when max energy exceeds 100.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@817 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Convert OvaleBestAction:Compute() to use a lookup table.
	This change converts the Compute() method of OvaleBestAction to use a
	lookup table instead of cascading if-else statements for efficiency.  As a
	side-effect, it is also easier to understand and maintain the code this
	way.
	
	Re-add node IDs to each node of the abstract syntax tree in OvaleCompile.
	Node IDs are used in the debugging messages for OvaleBestAction.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@816 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Improve encapsulation of OvaleFuture and improve memory usage.
	Make some unnecessarily public tables private and provide descriptive
	accessor methods to access those tables.
	
	Be slightly more memory-efficient in OvaleFuture by using a table pool
	managed by OvalePool to avoid creating then throwing away small tables
	each time the player casts a spell.
	
	Also rename some variables in OvaleFuture to make it more clear what the
	contents of those variables contain.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@815 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Add GetDamageMultiplier(spellId) method to OvaleState.
	This method accounts for auras that are removed by spells that are still
	in flight to their targets.  Use this method in place of the one from
	OvaleAura in OvaleCondition since OvaleCondition should only reference the
	current frame state.
	
	Change the implementation in OvaleAura to not maintain the current damage
	multiplier while scanning the auras and to try to account for stacking
	auras.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@814 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- OvaleAura's UpdateAuras() should never be called outside of the module.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@813 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Move debug method to dump unit auras to OvaleAura.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@812 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Teach compiler.pl how to properly inherit methods from parent classes.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@811 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Minor change to make local addon variable name match the file name.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@810 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix minor copy and paste error.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@809 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- No need to use GetLocale() -- the locale table is stored in Ovale.L
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@808 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix the documentation for SpellUsable() condition.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@807 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Attempt to fix ticket #191 - "Other" condition not working as expected.
	Change GetExpirationTimeOnAnyTarget() methods in OvaleAura and OvaleState
	into a new method GetAuraOnAnyTarget().  It returns a time interval
	similar to the GetAura() methods and takes similar arguments as well.
	
	Use the new method in OvaleCondition and change semantics of the private
	method getOtherAura() to return the same results as GetAuraOnAnyTarget().
	
	Change Other*() conditions to use the return value from getOtherAura()
	properly.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@805 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Guard against nil values.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@804 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix ticket #196 - DebuffPresent(Magic) wrong with Pally buffs
	The problem was caused by the Buff*() and Debuff*() conditions being
	aliases for each other that actually just checked every aura on a target,
	regardless of whether it was a buff or a debuff, e.g., the following two
	conditions returned the same result:
	
	    DebuffPresent(Magic)
	    BuffPresent(Magic)
	
	This made it impossible to do something like the following if the player
	had any dispellable raid buffs:
	
	    if DebuffPresent(Magic) Spell(cleanse)
	
	Fix this by splitting out the buffs and debuffs per unit into separate
	lists in OvaleAura and OvaleState, and teaching all of the methods that
	manipulate or reference the aura tables to take an additional ``filter''
	argument that can be ``HELPFUL'' (buff), ``HARMFUL'' (debuff) or nil
	(either).
	
	Introduce a new condition parameter ``filter''.  The ``filter'' parameter
	is used to narrow down the auras that Ovale inspects to check a condition.
	If specified, its valid values are ``buff'', ``debuff'' or ``any'',
	defaulting to ``any''.
	
	The Buff*() and Debuff*() conditions implicitly set the filter to ``buff''
	or ``debuff'', respectively.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@802 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Clean up implementation of time-to-die estimate.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@801 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Rename OvaleState:GetRunes to GetRunesCooldown() and be more DRY.
	Make OvaleConditions use OvaleState:GetRunesCooldown() instead of
	reimplementing almost the exact same function.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@800 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Enhance OvaleGUID to also track GUIDs when unitIDs change.
	Use a table to hold unitID-to-GUID mappings and provide a new method
	GetGUID(unitId) to access the table from other modules.
	
	Make some public properties private and create methods to access the data
	in those tables.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@799 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Save memory by not creating many small Lua tables per frame refresh.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@798 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Code consistency.
	Make local copies of all Blizzard API functions and prefix them with
	"API_". This makes it simpler to automatically audit the use of Blizzard
	API functions.
	
	Rename all private static variables by adding a "self_" prefix.  This
	reduces namespace conflicts with variable names when writing functions.
	
	Rename all constants and constant tables to be in all-capitals and to
	start with an "OVALE_" prefix.  This makes it clear what values are
	immutable and which may be changed.
	
	Also remove ``Ovale'' from the global namespace as a final clean-up.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@797 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Use addon variables to stash references to each module.
	The Ovale modules are all interdependent and unlikely to become
	independent addons at any point, so use a simpler way to store references
	to each module by just storing it in the addon namespace.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@796 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Protect against nil stanceList.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@795 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix energy regeneration calculations for rogues.
	Rogues don't always show their own self-buff for "melee_haste" and it
	always needs to be stripped out.
	
	Restrict the focus calculation to hunters and make the function more
	efficient.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@793 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Add additional event handlers so information is accurate on initial login.
	PLAYER_ALIVE is triggered when the player's talent & glyph information is
	first available and happens after PLAYER_ENTERING_WORLD.
	
	PLAYER_ENTERING_WORLD triggers every time there is a loading screen, so
	the information gathered during PLAYER_ALIVE is available at this time
	after the first login.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@792 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Mage: More fixes after SimulationCraft import.
	* Arcane Brilliance is one of several spell_power_multiplier and
	  critical_strike buffs.
	
	* Check that the required mage armor isn't present before suggesting it be
	  applied for each specialization.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@790 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix the event handler for Ovale_InactiveUnit in OvaleAura.
	Event handlers are passed the event as the first argument.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@789 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Add optional support for dual-spec profiles using LibDualSpec-1.0.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@787 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Set the frame anchor during UpdateFrame() instead of OnInitialize().
	This moves referencing the anchor stored in the profile to a later point
	where if the profile is changed, the anchor in the new profile is used to
	update the frame, and is needed for online profile-switching.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@785 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Query OvaleEquipement for equipped items in slots for efficiency.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@784 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Guard against bad slot names to GetEquippedItem().
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@783 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Prune auras from GUIDs that are no longer in the group.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@782 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Improve encapsulation of OvaleAura and reduce memory usage.
	Make the ``auras'' table and the ``serial'' variable private.
	
	Catch ``Ovale_InactiveUnit'' and remove auras for any inactive units as
	well as for dead ones.  This reduces the memory used by Ovale to track
	auras on units.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@781 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix OvaleEnemies to track the number of enemies correctly.
	Before this change, the enemies table was not being updated properly when
	UNIT_DIED was received.
	
	Split out the routines to add and remove enemies into public methods to
	make the code more DRY.
	
	API change: Remove method GetNumberOfEnemies() and introduce a public
	static variable ``activeEnemies'' that holds the number of active enemies.
	
	Schedule a timer to remove enemies that haven't been active for at least 3
	seconds.  These are either not in combat with your group, out of range, or
	incapacitated and shouldn't count toward your active enemies.
	
	When a unit is no longer an active enemy, throw a new Ovale event
	``Ovale_InactiveUnit'' that has the GUID of the dead unit as an event
	parameter.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@780 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Remove all addon variables from the global namespace.
	The only addon variable left in the global namespace is ``Ovale'', which
	represents the main addon object.
	
	This change also makes explicit the dependencies between modules. Reorder
	Lua files in the TOC file to ensure module dependencies are met.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@779 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Code cleanup.
	* Functions should start with a capital letter.
	* Lua coding style nit: use ``tinsert'' instead of ``a[#a+1] = ...''.
	* Remove unnecesary bookkeeping in OvaleCompile that was only used in a
	  rare debugging event.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@778 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Use OvalePool to reduce memory usage in OvaleAura.
	Create a pool of auras that are used (and reused) when recording the auras
	present on a unit.  This bounds the memory used by OvaleAura instead of
	letting the garbage collector reclaim unused memory.
	
	Don't pass around tables between modules; this decreases linkage between
	modules by not exposing internal data structures and improves overall
	encapsulation.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@777 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Use OvalePool to reduce memory usage in OvaleCompile.
	Create a pool of nodes that are used (and reused) by the parser when
	creating the abstract syntax tree for the script.  This bounds the memory
	used by OvaleCompile instead of letting the garbage collector reclaim
	unused memory.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@776 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Add simple memory pool implementation in OvalePool.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@775 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Make some more unnecessarily public variables private.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@774 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Move specialization tracking from OvaleStance to OvalePaperDoll.
	The class specialization/mastery isn't really stance-related, whereas it's
	available in the in-game paper doll.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@773 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Make code more DRY: get class and player GUID from the proper modules.
	Use OvalePaperDoll.class and OvaleGUID.player instead of calling
	UnitClass() and UnitGUID() in various modules that need the information.
	
	Make playerGUID private in the modules that use it since it isn't accessed
	outside of the individual modules.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@772 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Mage: Apply more fixes after SimulationCraft import.
	The buff from standing in Rune of Power has a different ID than the spell.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@771 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Stop after seeing the first melee_haste buff when computing focus regen.
	This is a sanity check just in case multiple buffs of the same type appear
	in your buff bar, and is also slightly more efficient.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@769 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Mage: Apply fixes after SimulationCraft import.
	Add damage coefficients to Fireball, Inferno Blast and Pyroblast so that
	the Damage() and CritDamage() conditions used in deciding when to use
	Combution return sensible numbers.
	
	Fix confusion between ``pyroblast'' and ``pyroblast_aura''.  The former is
	the ID of the spell as well as the DoT left on the target hit by
	Pyroblast.  The latter is the player buff that indicates the next
	Pyroblast is instant-cast.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@768 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Warrior: Apply fixes after SimulationCraft import.
	The spell ID generated by the SimC converter is incorrect.  46915 is the
	spell ID of the passive ability while 46916 is the spell ID of the actual
	buff gained by the warrior.
	
	Also add a SpellInfo line that notes the duration of the Bloodsurge buff.
	
	This matches the usage of "bloodsurge" in the Ovale script which checks
	for BuffStacks(bloodsurge), and which also has a SpellAddBuff line for
	wild_strike that deducts one from Bloodsurge stack.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@767 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Paladin: Apply fixes after SimulationCraft import.
	When using the Glyph of Mass Exorcism, the spell ID of Exorcism changes
	from 879 to 122032.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@766 d5049fe3-3747-40f7-a4b5-f36d6801af5f
Sidoine De Wispelaere:
	- warlock: fix for misery which is different with each spec
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@764 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- fix parenthesis in mind flay insanity
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@763 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Imported default from last simulationcraft scripts
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@761 d5049fe3-3747-40f7-a4b5-f36d6801af5f
Johnny C. Lam:
	- Reorder Lua files to load in order of dependencies required.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@759 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Store the current time, updated per frame refresh, in Ovale.now.
	Change the modules that update based on live events to use Ovale.now
	instead of OvaleState.maintenant.  Ovale.now tracks the actual current
	time.  OvaleState.maintenant tracks the time of the simulation which can
	lag behind due to the update interval set in the options.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@758 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Improve encapsulation of OvaleData.
	Split out OvaleData:GetComputedSpellCD() into a new method GetSpellCD()
	which queries the Blizzard API, and a second portion moved to
	OvaleState:GetComputedSpellCD() that checks the frame state for any spell
	CDs found there.  This de-couples OvaleData from OvaleState.
	
	Use OvaleState:GetComputedSpellCD() in place of the removed
	OvaleData:GetComputedSpellCD() in the various Ovale modules.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@757 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Improve encapsulation of OvaleFuture.
	Add new method to OvaleFuture that generates an iterator for other modules
	to walk the list of spells that are cast or are in flight to their
	targets.  Make the list of active spells private since it doesn't need to
	be accessed outside of OvaleFuture.
	
	Use the iterator in OvaleState to apply the spell effects of those
	travelling spells, and remove OvaleFuture:Apply() since it is no longer
	needed.  This de-couples OvaleFuture from OvaleState.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@756 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Improve encapsulation of OvalePaperDoll.
	Track player class and level in OvalePaperDoll.  They are player stats,
	in a way, and are available in the in-game paper doll.
	
	Use player class and level from OvalePaperDoll in the other modules and
	remove the same from OvaleData.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@755 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Move debugging code for OvaleCompile into OvaleCompile module.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@754 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Document what are the return values for a script condition.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@753 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Guard against nil ending times for auras when computing DoT ticks.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@752 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix error in using "more" or "less" with decreasing values.
	When using a script condition that has a decreasing value, e.g.,
	BuffRemains(), the value is a function
	
	    f(t) = value + (t - origin) * rate
	
	where rate is negative.  When using the "more"/"less" comparators, e.g.,
	BuffRemains(more 3), this effectively solves the following inequality:
	
	    f(t) = value + (t - origin) * rate > 3
	
	When the rate is negative, the inequality is reversed, and you end up
	with:
	
	   t < (3 - value)/rate + origin
	
	Prior to this commit, Ovale was using the wrong answer of:
	
	   t > (3 - value)/rate + origin
	
	This had broken scripts that were using the verbose method of comparing
	values.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@751 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix TicksRemain() condition.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@749 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Use 2nd arg of RegisterEvent() instead of creating new event handlers.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@747 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix nil string in error reporting.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@746 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix focus regeneration calculation hunters.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@745 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Track ranged haste separately from melee haste in OvalePaperDoll.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@744 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Back out parts of r625 and r627 to remove aura filtering changes.
	We now track all auras on all units, just like all raid frame addons do,
	instead of filtering away ones that aren't referenced in the current
	script.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@743 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix using ItemList name in HasTrinket() condition.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@741 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Add debugging to OvaleFuture to allow tracing a particular spell's events.
	Set OvaleFuture.traceSpellId to the ID of the spell that should be traced.
	Debugging information from the game events that are triggered by that spell
	are output to the chat window.
	
	Set OvaleFuture.traceSpellId to ``nil'' to cancel tracing.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@739 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Cache all equipped items in OvaleEquipement.
	Also add helper methods to OvaleEquipement to aid in common queries from
	OvaleConditions, e.g., HasShield(), HasTrinket(id), etc., that find the
	answers from the cached equipment.  This increases the efficiency of Ovale
	scripts at run-time.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@738 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix ticket #213 - Issue with Monk Energy Regeneration.
	This fix has several parts.
	
	Firstly, there was an error in energy regeneration calculations where the
	percent haste effect wasn't properly scaled.
	
	Secondly, the Way of the Monk passive effect will increase melee attack
	speed by 40% but we have to remove it from the melee haste effect when
	computing energy regeneration as that attack speed bonus has no effect.
	
	OvaleEquipement has been extended to cache the weapon types of the
	mainhand and offhand slots so that they may be easily checked.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@736 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Only monks in an energy-using stance have a 1s GCD.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@735 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Improvements to documentation for script conditions.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@734 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Detect Tier 15 armor pieces with relevant bonuses.
	Add "_melee", "_tank", "_caster" and "_heal" versions of T11, T12 and T13
	armor set names for hybrid classes.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@733 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Make BurningEmbers() and SoulShards() match in-game tooltips.
	This backs out r729 to make BurningEmbers() return between 0 and 40 and
	modifies SoulShards() so that it again returns between 0 and 4.  This
	matches the way the resources are tracked in-game via tooltips in terms of
	spell cost.
	
	Fix the default warlock script to match above usage.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@731 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Scale BurningEmbers() and SoulShards() to represent full resources.
	BurningEmbers() and SoulShards() are always between 0 and 4 and partial
	progress toward another full resource is represented by a fraction, e.g.
	``BurningEmbers() >1.5'' means ``at least one and a half Burning Embers''.
	
	This should break fewer existing warlock scripts.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@729 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Improve energy regeneration estimation for combat rogues.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@728 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Bump Interface in TOC for MoP 5.2 so that the addon isn't "out of date".
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@726 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Mark default Ovale scripts as generated for patch 5.2.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@724 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Add HasTrinket(id) condition to test whether a trinket is equipped.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@723 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Add ItemList(name id ...) that sets ``name'' to a list of item IDs.
	This works in the same fashion as SpellList(name id ...) for assigning a
	single name to a list of spell IDs.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@722 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix improper use of "self" in a local function.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@720 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Check whether Skada is present before using it in OvaleSkada.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@719 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Localize phrases.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@718 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Remove reference to "Restore default" button, which was removed.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@717 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Add new module OvaleScripts to manage scripts from multiple sources.
	Move the existing default scripts into OvaleScripts and decorate them with
	a description that allows a user to see what class specializations are
	supported by the default script.
	
	Teach Ovale to use the script ``source'' to find the code for the current
	script.  Custom code can be copied from an existing script to a blank
	custom template that may be modified and saved into the SavedVariables
	file.  The script ``source'' may be selected from a dropdown menu, with
	the default menu containing the Ovale default script and either a blank
	custom script or the custom script loaded from the SavedVariables file.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@715 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Better encapsulation of compile-related code into OvaleCompile module.
	The script needs to be recompiled if data that the script depends upon
	changes.  In the other modules that flagged ``needCompile'', cause the
	data changes due to Blizzard events to fire a new Ovale event after the
	data is changed.
	
	The new Ovale events are:
	
	    Ovale_CheckBoxValueChanged
	    Ovale_EquipmentChanged
	    Ovale_GlyphsChanged
	    Ovale_ListValueChanged
	    Ovale_ScriptChanged
	    Ovale_SpellsChanged
	    Ovale_StanceChanged
	    Ovale_TalentsChanged
	
	Make OvaleCompile into a full-fledged Ace3 addon module that listens for
	the new Ovale events that triggers script recompilation.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@714 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Re-apply script fixes after latest SimulationCraft import.
	Rogue:
	    CP generators cause an extra CP if Shadow Blades is present.
	
	Paladin:
	    When using the Glyph of Mass Exorcism, the spell ID of Exorcism
	    changes from 879 to 122032.
	
	Warrior:
	    The spell ID generated by the SimC converter is incorrect.  46915 is
	    the spell ID of the passive ability while 46916 is the spell ID of the
	    actual buff gained by the warrior.
	
	    Also add a SpellInfo line that notes the duration of the Bloodsurge
	    buff.
	
	    This matches the usage of "bloodsurge" in the Ovale script which
	    checks for BuffStacks(bloodsurge), and which also has a SpellAddBuff
	    line for wild_strike that deducts one from Bloodsurge stack.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@713 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Add new SpellInfo parameters to handle buffs generating extra resources.
	``buff_<resource>'' is an optional parameter that is set to the spell ID
	of the buff that causes extra resources to be generated when present.
	
	``buff_<resource>_amount'' is an optional parameter that is set to the
	number of extra resources generated when the buff listed in
	``buff_<resource>'' is present.  If not set, then it defaults to ``1''.
	
	Drop special handling of Shadow Blades in OvaleState now that it can be
	described and handled directly in the rogue script with the above
	parameters.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@712 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Back out part of r649 for handling combo points.
	Combo points should still be updated in OvaleState to reflect attacks that
	have been cast but not yet arrived at their target (either damaging or
	missing the target).  OvaleComboPoints will update combo points to reflect
	"crit combo" events only after the attacks have landed, not after
	spellcast.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@711 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix ticket #211 - Burning Ember Number
	UnitPower() has a hidden 3rd argument to get the true value of a warlock's
	secondary power value.  This fixes BurningEmbers() and SoulShards() to
	return values from 0 to 40 (for the number of ember or shard segments)
	instead of 0 to 4 (full ember or shard).  This also now correctly
	correlates with the burningembers=xxx and shards=xxx values in warlock
	script SpellInfo() lines.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@710 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Better encapsulation of damage meter modules.
	OvaleRecount and OvaleSkada are full-fledged Ovale modules and encapsulate
	the code for adding a new reporting mode for their respective damage meter
	addon.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@709 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Drop GetApparence() method from OvaleOptions; just use GetProfile().
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@708 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Use standard AceAddon methods instead of deferring with FirstInit().
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@707 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Convert all Ovale helper classes into Ace3 modules of Ovale addon.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@706 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Remove unused haste buff table - haste is tracked by OvalePlayerDoll.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@705 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Cache active glyphs in OvaleData and update on GLYPH_* events.
	This change causes the OvaleData module to update the active glyph cache
	on GLYPH_* events.
	
	All modules now reference the OvaleData.glyphs table instead of looping
	through all of the glyph sockets and querying their contents each time we
	need to find out if a particular glyph is active.
	
	This is an efficiency boost for scripts.
	
	Also fix "/ovale glyph" to output the currently active glyphs.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@704 d5049fe3-3747-40f7-a4b5-f36d6801af5f
Sidoine De Wispelaere:
	- - imported last simulationcraft scripts (overwrote feral druid changes :( ) - added Charges(), CritDamage(), and PTR() functions - added raid_movement buff
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@703 d5049fe3-3747-40f7-a4b5-f36d6801af5f
Johnny C. Lam:
	- Monks have a 1s GCD by default.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@701 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Use OvaleStance instead of directly calling Blizzard API for efficiency.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@700 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Implement OvalePaperDoll class that tracks the in-game paper doll stats.
	OvalePaperDoll caches the current player stats when it receives events
	noting that the stats have changed.  Use OvalePaperDoll properties instead
	of Blizzard API when referencing player stats.  This avoids a lot of
	unnecessary Blizzard API calls.
	
	The current stats cached by OvalePaperDoll are:
	
	   * Primary stats: Agility, Intellect, Stamina, Strength, Spirit
	   * Attack Power, Ranged Attack Power
	   * Spellpower: bonus damage, bonus healing
	   * Melee haste percent increase
	   * Spell haste percent increase
	   * Mastery effect percent increase
	
	Remove haste-tracking from OvaleAura as it is now maintained in
	OvalePaperDoll.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@699 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Better encapsulation of OvaleEquipement module.
	Only refresh snapshot of equipped items when PLAYER_EQUIPMENT_CHANGED
	fires instead of when UNIT_INVENTORY_CHANGED fires.  The latter event
	fires every time an item is added or removed from a player's bags, which
	can cause unnecessary script compilations.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@698 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Re-scan the action bar for when the player zones in or changes specs.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@696 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Hunter aspects are also managed via the stance/shapeshift action bar.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@695 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Remove references to tank scripts from Ovale documentation.
	At this point in the Ovale life cycle, it is primarily concerned with
	converting SimulationCraft profiles into scripts, and the SimulationCraft
	profiles are really only generated for DPS classes and specs.
	
	Also remove reference to Fluid Druid kitty forums as the script there is
	maintained within Nerien's Ovale Scripts.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@694 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Update the list of dispellable Enrage effects.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@693 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Split ``debug'' into separate toggles to make options panel prettier.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@692 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix Lua error: check for nil before using values.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@691 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix ticket #209 regarding stance numbers.
	There are occasions where the order of stances on the stance/shapeshift
	bar differ between Mac and PC, which causes problems in scripts that
	reference stance numbers (indices).
	
	Implement new module OvaleStance to track stance and mastery changes.
	OvaleStance maps stance indices (in the stance bar) to Ovale stance names
	in a locale-independent way.
	
	The list of stance names is available by running "/ovale stance", e.g.:
	
	    druid_bear_form
	    druid_cat_form
	    monk_stance_of_the_sturdy_ox
	    monk_stance_of_the_fierce_tiger
	    warrior_battle_stance
	
	These stance names can be used in place of the stance indices, e.g.:
	
	    unless Stance(monk_stance_of_the_sturdy_ox)
	        Spell(stance_of_the_sturdy_ox)
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@689 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Update copyright due to recent changes.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@687 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix documentation for IsFriend(), TickTime() and TimeToDie() conditions.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@686 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix error in how variable quantities are added and subtracted.
	The values should be appropriately scaled by the origins in the case where
	the quantities are "parallel" to each other.
	
	Also fix NextTick() condition to account for the math correction.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@685 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix long-standing typo that may have caused bugs in Other*() conditions.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@683 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Save debug flags in the profile to persist them across sessions.
	Remove "debugflags" and "toggledebug" command actions since the flags are
	toggled and saved from the main Ovale options panel.
	
	Rename "debug" command action to "power".
	
	Use "debug" commnd action to open the Ovale debug options panel.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@682 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Don't fill the spellbook with missing spells before compiling new script.
	Before this change, the spellbook (OvaleData.spellList) would be populated
	with entries found from a previous script compilation, which may have
	changed after the event SPELLS_CHANGED is received.
	
	This change makes filling the spellbook with missing spells found in the
	script happen *after* the script is compiled, and moves the responsibility
	into OvaleCompile:Compile().
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@681 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Update copyrights of files touched in 2013.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@680 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Add Tier 14 gear for all classes.
	Only tier gear whose set bonuses affect either the cooldown or duration of
	spells are tracked.
	
	Make the names of the Tier 14 item sets for hybrid classes more like the
	names used in SimC by appending one of the following suffices to the
	standard "T14" name:
	
		_caster, _heal, _melee, _tank
	
	This allows for differentiating, for example, between a druid wearing 4
	pieces of feral gear versus 4 pieces of guardian gear.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@678 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix ticket 207 - new spell ID under magic_vulnerability.
	This adds the aura ID of ``Soulburn: Curse of the Elements'' to the
	``magic_vulnerability'' spell list.
	
	Thanks to @napgravy for the fix provided in the ticket.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@676 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix ``wait'' nodes that are part of ``if'' and ``unless'' nodes.
	Slightly change the way that the ``wait'' node is flagged by directly
	setting and clearing a flag instead of fiddling with a negative/positive
	priority.  This is simpler and more clear.
	
	Only clear ``wait'' flag in elements returned from ``if'' and ``unless''.
	This fixes ``wait'' to work as expected in the following example:
	
	    {
	        if Conditions()
	            wait if PoolingConditions() Actions()
	        MoreActions()
	    }
	
	If Conditions() is false, then treat the ``wait'' like it's not there and
	fall through to MoreActions().
	
	If Conditions() is true, then wait for ``if PoolingConditions() Actions()''
	to be true and stop processing the script at that point.
	
	Before this fix, ``wait'' was tainting the element returned by the ``if''
	so that the entire group stopped processing at the wait statement,
	regardless of the return value of Conditions().
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@675 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Add ``bleed'' debuff spell list.
	You can now use ``target.DebuffPresent(bleed)'' to verify that a bleed
	effect is on the target, which causes additional damage for some attacks.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@674 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Sort the buffSpellList table into categories.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@673 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix ticket 175 - Paladin Priority broken with Glyph of Exorcism
	When using the Glyph of Mass Exorcism, the spell ID of Exorcism changes
	from 879 to 122032.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@671 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix for ticket 199 - Wrong Spell-id for Bloodsurge
	The spell ID generated by the SimC converter is incorrect.  46915 is the
	spell ID of the passive ability while 46916 is the spell ID of the actual
	buff gained by the warrior.
	
	Also add a SpellInfo line that notes the duration of the Bloodsurge buff.
	
	This matches the usage of "bloodsurge" in the Ovale script which checks
	for BuffStacks(bloodsurge), and which also has a SpellAddBuff line for
	wild_strike that deducts one from Bloodsurge stack.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@670 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix for ticket 198 - Wrong SpellID for bloodbath.
	The spell ID generated by the SimC converter is incorrect.  113344 is the
	spell ID of the debuff that is applied to the targets hit by the warrior
	when the warrior has the buff with ID 12292 that is triggered by the spell
	with the same ID.
	
	Also fix the SpellInfo and SpellAddBuff lines associated with Bloodbath to
	match the buff and not the debuff.
	
	This matches the usage of the "bloodbath" references in the SimC profile,
	which refer to "buff.bloodbath.up".
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@669 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Document optional "totem" parameter of Totem{Expires,Present}.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@668 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Document optional parameter for TotemExpires().
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@667 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix typo that causes IsStunned() to throw Lua errors.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@666 d5049fe3-3747-40f7-a4b5-f36d6801af5f
Sidoine De Wispelaere:
	- some scripts updates
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@665 d5049fe3-3747-40f7-a4b5-f36d6801af5f
Johnny C. Lam:
	- Add ``burst_haste_debuff'' spell list for the debuff gained after Heroism.
	This allows DebuffExpires(burst_haste_debuff) to be used as a condition
	for suggesting a burst-haste spell such as Time Warp or Heroism.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@663 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Add a "wait" statement to interrupt evaluation of a group.
	The syntax is "wait <node>" that returns the given node.  If part of a
	group node, then it causes the group to evaluate to the best node of the
	group up to and including the wait statement.
	
	A "wait" node has the same priority as its child node.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@661 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Print aura and spell lists alphabetically as suggested in ticket 188.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@660 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix global variable leak introduced by r646.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@659 d5049fe3-3747-40f7-a4b5-f36d6801af5f
Sidoine De Wispelaere:
	- faerie fire is optional
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@657 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- - added expose armor to rogue script and sunder armor to warrior script - fix warlock immolate (not a good fix but a better fix would be too much work) - faerie fire with any=1 - fix for multiple targets with the same name
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@656 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- overpower buff does not exist
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@655 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- update with last simulationcraft scripts
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@654 d5049fe3-3747-40f7-a4b5-f36d6801af5f
Johnny C. Lam:
	- Hide "unknown spell" error behind an "unknown_spells" debug flag.
	This error is primarily for script authors to toggle when they verify
	their scripts are correct.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@652 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Plug some global variable leaks.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@651 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix for ticket 195.
	Add a separate module to track the player's combo points.  Deal with the
	"combo point delay" from Seal Fate or Primal Fury by pre-adding the extra
	combo points before being updated through UNIT_COMBO_POINTS.  This assumes
	the delay is less than one GCD.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@649 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Add a new SpellInfo() parameter "if_spell=SPELL"
	Adding "if_spell=SPELL" causes the SpellInfo() line to be ignored
	if the given SPELL isn't in the player's spellbook, e.g,:
	
	  Define(mangle 33876)
	    Spellinfo(mangle combo=1 energy=35 inccounter=ripshreds)
	    SpellInfo(mangle critcombo=1 if_spell=primal_fury)
	  Define(primal_fury 16961)
	
	This causes the critcombo=1 to apply only if Primal Fury is in the
	spellbook (druid is at least level 30).
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@648 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix ticket 193 by catching up to UnitAura() changes in MoP 5.1.
	UnitAura() has a different return value list in MoP 5.1.  The values
	associated with an aura have been shifted one argument further down, i.e.,
	from 14-15-16 to 15-16-17.  The 14th return value is now "isCastByPlayer".
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@646 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Ascension in 5.1 grants 15% increased energy regen for monks.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@644 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix ticket 184 by limiting when OvaleState updates auras.
	The purpose of OvaleState is to take the current game state and tweak it
	to reflect the effects of the spell being cast in the simulator.
	
	There are three phases to a spell being cast:
	
	  (1) Spell cast started.
	  (2) Spell is casting.
	  (3) Spell cast finished and traveling to target (in flight).
	
	We always update auras for cases (1) and (2).  However, we now insert a
	check so that we only update auras in case (3) if it's not a player aura.
	Player auras are updated by the game as soon as a spell cast is finished,
	so OvaleState doesn't need to do anything to see the player's correct
	auras while the spell is still traveling to the target.  It's different
	for target auras because the game has to see if the spell will hit or not
	before updating the target's auras, so we still need to account for the
	spell effects while it's in flight to the target.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@641 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix a copy-and-paste error.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@639 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Reimplement aura-handling in OvaleState:AddSpellToStack().
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@637 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Remove split compilation and use a single pass for compiling again.
	Back out part of r604 that split compilation into a "quick" part and
	an expensive part.  The more efficient method in r606 for searching
	and replacing defines with key values seems to have fixed the slow
	compilation enough that it fits within the Lua execution window.
	
	Re-merging the compilation phases fixes some issues with Ovale not
	properly updating the script when a toon levels, as well as some
	other edge cases.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@636 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Avoid nil GUIDs.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@633 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Avoid nil unit IDs.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@632 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Cache aura values if available when updating auras on units.
	Use the cached values in TickValue() script condition.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@630 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix ticket 186 & re-enable CLEU event handler for *target unit IDs.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@629 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Major bug fix for aura-tracking.
	- CLEU events don't fire properly when auras are not directly refreshed,
	  e.g., refreshed by a spell other than the one that applies it.  Switch
	  to using UNIT_AURA events instead for all "primary" unit IDs and only
	  use the less accurate CLEU events for *target unit IDs.
	
	- Fix missing detection of filtered buffs.
	
	- Add new tables auraConditions & spellbookConditions that list conditions
	  that refer to aura IDs or player's spell IDs.  These are used by the
	  script compiler to tag spell IDs for further processing.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@627 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Filter out spells that we don't care about from the aura-tracking code.
	This reduces the number of events for which Ovale updates auras.  Also fix
	a bug in the compilation where missing spells weren't re-added to the
	spellbook after reloading the UI or zoning into a new zone.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@625 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Add TickValue() script condition to get tick amounts of DoTs.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@624 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Return a usable tick length even if spell haste is unknown.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@623 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Remove the use of some temporary tables.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@622 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Cache player level in OvaleData.
	This avoids calling UnitLevel("player") except for player entering the
	world.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@621 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Make local copies of global references.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@620 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- needCompile is false/"quick"/true.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@618 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Add a warning when compiling the script if the spell ID is unknown.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@616 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Force a full compile if player gains new talents.
	New talents could mean new spells in the spellbook, so reprocess the
	entire script in case the new spells are referenced in the script.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@615 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Print correct debugging statements even if strings are nil.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@613 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Teach compiler.pl more methods in Frame and ActionButtonTemplate.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@612 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix bad search-and-replace.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@610 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Replace some commented out :Print() with :debugPrint().
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@608 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Add a debugging module to Ovale to selectively print debugging messages.
	Add a new public method Ovale:debugPrint(flag, ...) that prints the
	message if the debugging flag has been set.  The flag can be any string.
	Flags may be toggled with: /ovale toggledebug <flag>.
	Flags may be listed with: /ovale debugflags.
	
	Add some debugging print statements for when a script compilation is
	requested using a "compile" flag.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@607 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Use a more efficient method to replace constants with values.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@606 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Split compilation into two phases: "quick" and "full".
	The "quick" phase only compiles the parts of the script that may change as
	a result of things that trigger recompilation.  This includes changing
	SpellInfo(), AddCheckBox() and AddListItem().
	
	The "full" phase compiles the entire script.  This has been modified to
	also compile AddIcon() groups that may be disabled and storing their nodes
	in Ovale.masterNodes.
	
	At run-time, when a "quick" compile is requested, Ovale executes the quick
	compile and then updates the status of each master node (corresponding to
	an icon) as to whether the node is enabled or not.
	
	OvaleFrame only shows icons for enabled master nodes.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@604 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Teach compiler.pl about more AceAddon methods.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@603 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Don't leak variables into global namespace.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@602 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Don't compile the script so often during combat.
	The UPDATE_SHAPESHIFT_FORM event fires far more often than it should
	according to the documentation.  It will fire even when the player's
	shapeshift form or stance doesn't change.  Modify the OvaleAura to catch
	UPDATE_SHAPESHIFT_FORM(S) and verify that the stance actually changed
	before raising a new event Ovale_UpdateShapeshiftForm that may caught by
	other Ovale modules that care about stances.
	
	This should fix the problem where the script was compiling very often
	during combat for some classes.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@600 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix for ticket 176.
	The Ovale icon bar is being shown/hidden improperly when the player is in
	a pseudo-vehicle where the player is controlling something other than
	himself.  Use UnitHasVehicleUI() instead of UnitInVehicle() to detect this
	condition properly.  UnitHasVehicleUI() returns true if the player has a
	vehicle action bar, which corresponds to the player not being able to use
	his own abilities.
	
	Analysis and fix from Galvin in ticket 176.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@599 d5049fe3-3747-40f7-a4b5-f36d6801af5f
Sidoine De Wispelaere:
	- minor fixes for warrior script
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@598 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- updated simulationcraft scripts better AOE support for shaman and warrior
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@596 d5049fe3-3747-40f7-a4b5-f36d6801af5f
Johnny C. Lam:
	- Training dummies can have up to 2 health points.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@594 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Add more documentation for script conditions.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@592 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Parameter "if_stance" means "only if in the given stance".
	Use if_stance parameter in the monk script instead of hard-coding the
	extra Chi generated by Jab and Expel Harm for monks in Stance of the
	Fierce Tiger.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@591 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Use local references for global functions and constants.
	This is a minor Lua optimization. It's also documentation for which WoW
	API functions are used within each class module.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@590 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Use standard library function "tostring" instead of nilstring.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@589 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Conditions using testValue can't take "equal" as an operator.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@588 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Add EnergyRegen() and FocusRegen() conditions.
	These correspond to the SimulationCraft action list properties
	energy.regen and focus.regen, respectively.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@586 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix for ticket 179.
	Add new condition "HasWeapon" to test for presence of a weapon in the
	named slot (mainhand or offhand).
	
	Also fix some yesno parameter descriptions.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@585 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Support monk statues (actually totems in-game) in totem conditions.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@584 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Word-wrap comments for readability.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@583 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix trace when the best group element doesn't have params array.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@582 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Minor fixes to condition documentation.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@581 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix TimeToMaxEnergy().
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@579 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix aura ID for monk's Legacy of the Emporer buff.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@578 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Cache the player's current mastery (specialization) and stance.
	Use the cached stance information instead of calling the WoW function
	GetShapeshiftForm().
	
	Correctly set the energy regeneration for Brewmaster Monks in Stance of
	the Sturdy Ox (increased by 10%).
	
	All monks in Stance of the Fierce Tiger will generate one extra Chi per
	Jab Expel Harm.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@577 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Bound combo points at 5.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@576 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Add missing @name LuaDoc tag for the "Speed" condition.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@575 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Add in-line documentation for the script conditions.
	The documentation on the CurseForge addon project page will be generated
	automatically from the comments using LuaDoc.
	
	Most of the conditions have been documented.  There are still a few
	undocumented conditions that have been deprecated in favor of more
	recently added conditions.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@574 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- burst haste buff is no longer named "bloodlust".
	It should be referred to as "burst_haste", "bloodlust_aura", or
	"heroism_aura".
	
	Add bits to the default shaman script so that Alliance shamans are told to
	cast Heroism at the right time.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@572 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Prettify the documentation for optional parameters to conditions.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@571 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Abuse @paramsig to say what type of value is returned.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@570 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Prettify the generated documentation for conditions.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@569 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- LuaDoc wants @param to be one word, not word=value.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@568 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Document some of the conditions for testing purposes.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@567 d5049fe3-3747-40f7-a4b5-f36d6801af5f
Sidoine De Wispelaere:
	- heroism renamed burst haste
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@565 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- all scripts have been updated using SC importer last version DeadIn returned nil on boss target dummy predicted aura on current spell cast was not always correct getticklength was not working if tick was not set in spellinfo bug with prediction and nil elements
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@563 d5049fe3-3747-40f7-a4b5-f36d6801af5f
Johnny C. Lam:
	- Settle on template for LuaDoc commenting of conditions.
	Use the following tags:
	
	    @name ConditionName
	    @paramsig
	    @param param1 Description of first parameter.
	    @param param2 Description of second parameter.
	    @return Description of returned value.
	    @usage Example uses of the condition in a script.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@562 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Test dropping @name from LuaDoc comments.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@561 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Final pass at template for LuaDoc for conditions.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@560 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Test empty @paramsig.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@559 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Test if indentation affects the generated LuaDoc.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@558 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Strip extra leading and trailing parens from @paramsig.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@557 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Use @paramsig to specify the correct params for ArmorSetParts.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@556 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Test using LuaDoc to generate documentation for conditions.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@555 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix some raid buff checks so that they may be cast by anyone.
	The affected buffs/debuffs are:
	
	    mastery
	    str_agi_int
	    stamina
	    spell_power_multiplier
	    weakened_blows
	
	Rename the buff aliases for burst_haste:
	
	    bloodlust -> bloodlust_aura
	    heroism -> heroism_aura
	
	This should allow shaman scripts for both Alliance and Horde to define the
	spell names with the same names granting buffs of the same name.  When
	checking for the burst_haste buff, use one of the following buff class
	names:
	
	    burst_haste
	    bloodlust_aura
	    heroism_aura
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@554 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Generate the project description from a README file.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@553 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Use the "project_version" repository keyword replacement for TOC version.
	Ovale is packaged when tagged as beta or release, and "project_version" is
	replaced with the tag name in that case.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@552 d5049fe3-3747-40f7-a4b5-f36d6801af5f
Sidoine De Wispelaere:
	- update toc
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@551 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- paladin: wait icon is optional warrior: ability shown only if rage is sufficient protection warrior: script imported from simulationcraft
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@550 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Shadow form fix
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@549 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- imported SimulationCraft 505-1
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@548 d5049fe3-3747-40f7-a4b5-f36d6801af5f
Johnny C. Lam:
	- Add Master of Subtlety self-damage buff for sub rogues.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@546 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Allow underscores in SpellList() names.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@545 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Rogue Shadow Blades ability causes an extra combo point to be generated.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@544 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Update raid buff & debuff lists.
	Information taken from Mists of Pandaria Buffs and Debuffs guide on
	Wowhead:
	
	    http://www.wowhead.com/guide=1100
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@543 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix off-by-one error in itemcount condition.
	"itemset=T14 itemcount=2" should mean that at least 2 pieces of T14 are
	required.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@542 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Change semantics of DoT durations to match game defaults.
	By default, abilities that consume combo points to apply a DoT of varying
	length will be listed in the spell database with a "0 CP" duration.  For
	these DoTs, set the SpellInfo() with "duration" equal to this "0 CP"
	duration.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@541 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix bug in r538: Ovale.state.combo -> OvaleState.state.combo.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@539 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix for ticket 165.
	Fix use of missing global 'duration' in OvaleCondition.lua.
	
	Extend OvaleData:GetDuration() to also return the tick length for
	efficiency.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@538 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Note the copyright and license under which Ovale is distributed.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@536 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix for ticket 163.
	* Add GetDuration(id) and GetTickLength(id, haste) methods to OvaleData to
	  extract the correct numbers from the given spell's info.  These numbers
	  are fixed up for magic DoTs as regards to spell haste.
	
	* Modify OvaleData:GetDamage() to use named arguments to be slightly more
	  clear.
	
	* Teach OvaleState how to properly extend a DoT by allowing the next tick
	  of the previous DoT (at the previous spell haste) before adding the
	  duration of the new DoT with new snapshotted stats.
	
	  Right now, it is assumed that a DoT that gets refreshed by another spell
	  gets a new snapshot of the player's stats when refreshed.
	
	* The duration calculation for OvaleState:GetTargetAura() is wrong.
	
	  It doesn't take into account the spell haste of the aura and any
	  additions to the duration through combo points or holy power, nor any
	  DoT extensions.
	
	* Fix the nexttick, ticks, ticksremain, and ticktime conditions.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@535 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Access public data directly.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@534 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Savage Roar damage buff comes in glyphed and unglyphed versions.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@533 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Haste effects are multiplicative, not additive.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@532 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Add combat rogue melee haste buff (Adrenaline Rush).
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@531 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Add IsAggroed() function.
	TargetIsAggroed() can be used to check if the target's primary target is
	the player, regardless of if the target is momentarily targeting another
	toon.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@529 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Add SpellCharges(id) and SpellChargeCooldown(id) conditions.
	SpellCharges(id) returns the remaining number of charges of the given
	spell.
	
	SpellChargeCooldown(id) returns the remaining CD before another charge is
	added to the spell.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@528 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix for ticket 161.
	Don't multiply the damage multiplier by the number of combo points used by
	a combo finisher.  That's too simplistic given the variety of formulas for
	scaling the finisher to both combo points and current attack power.
	
	Add OvaleData:GetDamage() that returns the estimated damage for the given
	spell using the information from SpellInfo().
	
	Add new script conditions LastSpellEstimatedDamage(id) and
	LastSpellComboPoints(id) that return the estimated damage and the number
	of combo points consumed by the last cast of spell id, respectively.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@527 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Add some rogue self-damage buffs.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@526 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix for ticket 135.
	* Add additional druid "self" buffs that increase damage done.
	
	* Add Mastery() and LastSpellMastery(id) script conditions
	
	* Track the mastery information at the time a spell is cast.
	
	* Add a SpellData(id key) script condition that takes two parameters, a
	  spell ID and a key, and returns the data associated with that key from
	  the SpellInfo() for that spell ID.
	
	  SpellInfo()/SpellData() can be used together to stash and retrieve extra
	  spell information that may be referenced within the script.
	
	* Get the damage multiplier using OvaleAura:GetDamageMultiplier(spellId),
	  which factors in the multipliers for the presence of the buffs and
	  debuffs in the given spell's damageAura table (from OvaleData).
	
	* Add new script statements SpellDamageBuff() and SpellDamageDebuff(),
	  which take a spellId followed by a list of aura1=x1, aura2=x2, etc.,
	  where auraN is the aura spell ID and xN is the damage multiplier if
	  auraN is present.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@524 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fade out the "Restore default" button if using the default script.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@523 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix for ticket 159.
	OvaleAura needs to update the number of stacks of an aura if it differs
	from the previous number, not just if it has increased.  This fixes the
	problem of BuffStacks() not showing stack counts correctly when they
	decrease.
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@521 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix for ticket 156.
	Modify ParseFunction() to check for Spell() and SpellCooldown() statements
	in the script and check if the given spell ID is in the spellbook or not.
	If it's not, then see if it matches another spell with the same name that
	is in the spellbook.  If so, then add that spell ID to the OvaleData
	spellbook.
	
	Track the function nodes with unknown spell IDs in a list and tag the
	unknown spell IDs with ":unknown" when invoking DebugNode().
	
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@520 d5049fe3-3747-40f7-a4b5-f36d6801af5f
Sidoine De Wispelaere:
	- allows division
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@519 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- last simulationcraft version some bug fixes
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@517 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- MoP merge
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@515 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- fixed a bug with aura refreshing spell
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@509 d5049fe3-3747-40f7-a4b5-f36d6801af5f
Johnny C. Lam:
	- Fix opening the standalone Ovale config and code windows.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@491 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Add a button to the code window to restore the code to the default script.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@490 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix item() condition.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@489 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix glyph=... parameter.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@488 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix the buff ID for priest's Power Word: Fortitude.
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@487 d5049fe3-3747-40f7-a4b5-f36d6801af5f
Sidoine De Wispelaere:
	- fix in < and > operators
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@486 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Delete useless directory
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@485 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- - code refactoring - added target option to AddIcon - better support for casting on focus
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@484 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- fixes for arm warrior execution phase added Italian language
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@482 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- warlock: improved soul fire talent id fixed
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@480 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- added debuffTick function
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@479 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- judgment of the pure fix balance druid: move typhoon to aoe in movement
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@477 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- masternode fix (again)
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@476 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- compile error with glyphs
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@475 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- bug fix with masterNodes
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@474 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- - added itemcount and itemset conditions - retribution paladin: added 2T13
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@473 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- bug fix for DeadIn bug fix for OtherDebuffExpires
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@471 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- bump toc
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@469 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- added T13 support to feral druid script
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@468 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Bug fix in RelativeLevel
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@467 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- - more buffs and debuffs - fix for attackPower - combat rogue: import from SimulationCraft
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@466 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- shadow priest: update from last simulationcraft
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@465 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- - protection paladin: fix for hammer of wrath - bug fix for nil values
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@463 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- - frost DK: updated from SC - elemental shaman: updated from SC + fix - retribution paladin: updated from SC - balance druid: added mushrooms - added rune() function - added otherAura() function - added OtherAuraExpires() et OtherAuraPresent(): works with buffs too (for healers) - now +, -, *, and / have a higher priority than < and >
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@461 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- - arm warrior: latest simulationcraft script - shaman: aoe in a separate icon - retribution paladin: aoe in a separate icon - holy paladin: healing script instead of dps script - added "item" function - added several T12 and T13 armor parts
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@459 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- test if operand is null
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@457 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- uses Masque instead of LibButtonFacade
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@456 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- toc bump
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@454 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- added inner rage to warrior script
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@453 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- silent defined on locale-frFR which is the first included in the toc
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@452 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Reduce memory leak
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@451 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- small regression fix
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@450 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- better values support
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@449 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- maxMana and maxLife were bugged #112
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@448 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- kOKR file
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@447 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- ptBR is the correct name for the brazilian localization!
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@446 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- chain lightning has no cd
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@445 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- - warrior fix (added aoe icon, collossus smash add sunder armor) - destro warlock small fixes - added koKR and zhCN - added feral T13
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@443 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- bump toc
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@441 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- added more values fix for value buttons fix for predictive icon
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@439 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- fix pet swap for demono warlock
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@437 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- better mind freeze setup for dk fix demono warlock filler better protection paladin script
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@435 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- koKR localization added
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@434 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- bug fix
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@433 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- - added damage function - added text icons
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@432 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- test
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@431 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- bug with eclipse
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@430 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- added damageMultiplier functions
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@429 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- new demonology warlock script added spellPower, lastSpellPower, attackPower, and lastAttackPower functions
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@427 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- divide by zero fix
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@426 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- ptBR localization
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@425 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- rogue bladeflurry
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@424 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- warrior patch from jlam
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@423 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- bug fix in rogue script
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@421 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- various fixes for default scripts added spell list, harmful, and helpful parameters to IsCasting added remainingCastTime value added second icon scale option
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@419 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Use of Pyroblast!
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@418 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Slight changes in default scripts for 4.2
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@416 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- fixes for 4.2.0 scripts are NOT up to date
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@414 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- fix for blood dk fix for frost mage
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@413 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- added german language added stance dancing for arm warrior various fixes for fury warrior
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@411 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- - fix with BuffExpires and BuffDuration, which did not use the target parameter - added checkboxon, checkboxoff, and list/item parameters to AddListItem, AddCheckBox and AddIcon - fury warrior: death wish is not an enrage
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@409 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- various small fixes for 4.1
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@407 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- update to changes in 4.1 API
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@405 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- bug with "refresh" keyword
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@403 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- various fixes with buffs/debuffs and dots
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@401 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- last tick from a channeled spell was omitted
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@400 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- contributed rogue default script fixed spell haste effect on channeled spells
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@399 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- disable cooldown on the second icon fixes item id for rogue poisons
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@398 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- do not update the icons each frame
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@397 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- fix with refresh of unstable affliction
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@396 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- added enemies function
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@394 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- added Exists function added meleehaste and spellhaste buffs added alpha levels for icons and options fix bug with ButtonFacade
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@393 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- fixed a syntax error
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@391 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- added lifePercent function
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@390 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- forgot a fix for elemental shaman
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@388 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- balance druid: fixes with eclispe a lot of fixes allowing to use the second icon (the option was mostly broken) bug fix for the nored=1 option
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@386 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- frost dk: pillar of frost in cd icon balance druid: starsurge removes shooting stars
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@385 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- fix for DK slow debuff hunter: aimed shot removes fire!
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@383 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- mm hunter: fixes balance druid: some minor changes
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@381 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- nextSwing and lastSwing were bugged
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@379 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- warlock: removed soul burn from regular rotation
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@378 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- - added lua inline functions. ex [return GetCombatRating(11)] will return the spell critical rating - balance druid: some changes to match simulationcraft - fire mage, frost mage: minor changes to match simulationcraft - added T11 balance druid - fixes for AddFunction command - checkboxes and lists can be moved
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@376 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- - revert change for mm hunter - small fix for warlock - added AddFunction command
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@374 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- bm hunter fix for kill command various minor fixes for warlock bug fix for arm warrior
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@372 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- fixed LastSwing and NextSwing functions
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@370 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- - eclipse change when spell lands (doesn't work perfectly, the eclipse value seems to change some time after the spell lands) - fixed a bug with mm hunter - added OvaleSwing back
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@369 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- added russian translation
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@368 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- toc update
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@366 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- removed test option
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@365 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- bug fix for arcane mage and frost mage
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@364 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- syntax error in arcane mage script
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@363 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- added now=1 option to Eclipse
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@362 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- updated scripts from simulationcraft (except mage scripts) added charges option to ItemCount condition added warlock T11
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@360 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- added timeWithHaste function fixes in shaman script fixes in bm hunter script
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@359 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- added CreatureFamily function
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@358 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- - added Distance condition - added maxHealth and MaxHealth conditions - fixed BuffGain condition
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@357 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- -16 is minimum margin
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@356 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- frost mage: don't cast pet freeze if there is already finger of frost
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@355 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- fix for RelativeLevel function
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@354 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- fix for RelativeLevel
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@353 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- balance druid: fix bug with faerie fire feral druid: small fixes fury warrior: fixes for execute phase protection warrior: added victory rush destruction warlock: do not cast bane of agony if bane of havoc is selected
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@351 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- fixes for arm warrior script added Ovale:SetCheckBox updated with last mage and priest scripts from contributors
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@349 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- bug fix: TargetInRange bug fix: use of target=pet in scripts added jinx (aoe curse of elements) to known debuffs bug fix: check boxes toggled with a key were not saved rogue script: wrong buff name
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@347 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- - added functions that returns a time-dependent value and operators to manipulate them - updated shaman, hunter, druid, warrior, paladin and rogue scripts to match SimulationCraft scripts - T11 check for warrior and druid
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@345 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- warlock: added usable=1 to Spell(SOULBURN)
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@344 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- - fix with Macro command - fix with pet abilities - new priest script - new unholy dk script - added target magical crit chance debuff - added LastSpellDamage function
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@342 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- added TargetBuffSteable function
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@341 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Added SoulShards function
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@339 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Added TargetIsFriend
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@338 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- added some >80 abilities
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@337 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- use wowace localization
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@336 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- allows to customize the range indicator
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@335 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- added SpellList command to create a new spell list to use with Aura conditions added Curse, Disease, Magic, and Poison spell lists now player cc are spell lists added mine=0 condition (exclude your own auras) use SetScale to change icon size (compatible with ButtonFacade) added font scale option
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@333 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- forgot pets buffs
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@331 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- added hunter pets buff/debuff
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@330 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- frost dk: better script
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@329 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- fix in taiwanese blood dk: fixes
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@327 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- blood dk: some tweaks (glave)
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@326 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- added TW locales by l222lin changes in enhancement shaman script (evilkachu) changes in warlock script (Hinalover) added heroism as a generic buff
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@324 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- runes: bug fix blood dk: added death pact balance druid: some fixes shadow priest: new script cast interrupt function now check channeling too added TotemPresent function
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@322 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- fixes for death knight some changes in protection paladin priority fix in Speed function and added TargetSpeed function
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@320 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- fix problem where UnitClassification would not return worldboss
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@318 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- spell channeling: fixes spells that apply a debuff: fixes hunters: better focus support haste calculation fixes
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@317 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- some mage, rogue, and lvl 85 warrior fixes
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@316 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- check pet speed before kill command
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@315 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- ret pal: added hand of light buff fixed a bug where some spells were ignored (like aimed shot)
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@313 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- added option to hide the flash when the ability is ready
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@311 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- survival hunter: various fixes beast master hunter: kill shot at highest priority warrior: rend debuff fix frost mage: finger of frost fix
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@310 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- fix toc
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@308 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- some changes to druid and warrior script
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@307 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Fix to TargetInRange
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@306 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- bug fixes for spells that removes a buff when cast (molten core)
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@305 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- added OvaleSkada.lua
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@304 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Added Skada support
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@303 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- warlock: bane of doom was never used
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@301 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- warlock: curse elements => magicaldamagetaken
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@300 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- bug fix: instant attacks events were not received bug fix: changed syntax for checkboxes from "checked" to "default", as it was used in all default scripts
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@299 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- forgot to remove debug traces
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@297 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- revealing strike is a debuff not a buff
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@296 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- rogue script fixes
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@294 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- feral druid: added resetcounter and inccounter to shred and rip
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@293 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- simplify targetlifenocd syntax
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@292 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- bug with AddListItem: parameters were ignored warlock: some tweaks following evenprimes advices
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@290 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- added some development commands added targetlifepercentnocd option to SpellInfo for glyph of shadow word death bug fix: glyph commands did not work
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@289 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- feral druid: glyph of rip=>glyph of shred warlock: added improved soulfire
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@288 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- deathknight: bug fixes
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@287 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- fire mage: wait for dots before combustion
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@286 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- fire mage: bug fix with Talent => TalentPoints
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@285 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- arcane mage: new script various buff and debuffs
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@284 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- added buff and debuff fixes
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@283 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- bug fix for armor debuff
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@281 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- version number
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@279 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- warrior: sunder armor fix
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@278 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- use spellId instead of spellName warlock: various improvements
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@276 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- feral druid: added Ravage with Stampede
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@275 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- increase version number
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@273 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- fury warrior: bloodthirst is higher priority balance druid: fix of starsurge mage: bug fixes dk: removing glyph of disease unholy dk: adding dark infusion, sudden doom, festering strike, and dark transformation (thanks to Chronomaster) shadow priest: script from Moomeuh marksmanship hunter: script from Ilmendil protection paladin: script from Gabrielz retribution paladin: script from Gabrielz
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@272 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- new priest script from Nicho better starsurge
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@271 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- more robust against scripts
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@270 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- tag 4.0.0
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@268 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- heroic strike is off gcd
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@267 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- Recount score bug fixes and added spells in default script
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@266 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- bug fix for Recount score sharing
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@265 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- bug fix with mastery option and checkboxes fixed some feral druid bugs in the default script
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@264 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- added starsurge mechanism to eclipse added sunfire to druid default script better debug data about function calls
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@263 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- - added 4.0.1 support - added "equal" keyword in all comparison functions - added generic buff and debuff keywords (strengthagility, stamina, lowerarmor, magicaldamagetaken, lowerphysicaldamage, meleeslow, bleed) - added Eclipse and HolyPower functions - added TargetLifeMissing function - bug fix for TimeInCombat - added mastery keyword for AddIcon, AddCheckBox, and  AddListItem
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@262 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- adding TargetIsInterruptible function
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@261 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- added Speed function
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@259 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- buttonfacade colors were not saved
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@258 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- added talent option to AddIcon
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@256 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- enhancement shaman script by rsriv
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@255 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- temporary renamed to Ovale Spell Priority
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@254 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- do not hide cooldown when the cooldown reaches its end
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@253 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- added spell name in tooltips
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@252 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- added Threat function
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@251 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- bug fix for interrupted spells
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@250 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- add comments bug fix with time on icons
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@249 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- warrior: 4T10 proc deathknight: frost fixes
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@247 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- fix with castTime
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@245 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- fix for warrior, death knight and mage scripts
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@243 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- bug fix with cast time
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@242 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- fix for mage armor
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@240 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- bug fix: "before" keyword
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@238 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- - added InCombat,EndCastSpell functions - changes in arcane mage - every class uses InCombat to know if it should buff itself - corruption has a higher priority than agony - do not cast a curse if another curse is present
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@236 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- bug fix: aura should not remove a spell
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@234 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- mage: arcane mage fix warrior: devastate is no longer low priority paladin: allow to choose no sceal
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@232 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- bug fix with channelling
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@230 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- - error while compiling - use cast time while prioritizing spells
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@228 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- fix for latency correction
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@226 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- warlock: shadow embrace fix
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@225 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- toc uptade
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@223 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- - fix for canStopChannelling - do not cast horn of winter if strength of earth totem - latency correction is an option (disabled by default)
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@222 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- - arms warrior: new script - death knight: do not cast horn of winter if strength of earth totem is present
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@221 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- bug fixes
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@219 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- - use its own cooldown with death knight - arcane shot is optional for mm hunters if enough armor penetration rating
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@217 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- - added click through option - better buffnocd support - stacks more than 1 spell when lagging - warlock: drain soul can be interrupted - shadow priest: bug with vampiric touch - death knight: does not show Icy Touch if Glyph of Howling Blast - hunter; buffnocd allows better lock and load modeling / show dragonhawk when full mana
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@215 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- added bindings for check boxes
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@214 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- - bug fix with toggle spells - should not move icons when no action is shown
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@212 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- bug fix
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@210 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- bug fix relating to the new antilatency feature
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@208 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- warlock: added glyph of life tap
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@207 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- - new experimental feature: the use of SpellInfo allows to predict the effect of the spell before any feedback from the server, which should help in a situation with some lag (<300 ms) - added durationhaste to SpellInfo: allows DOT that use haste (Priest script is modified accordingly)
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@205 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- - priest: VT can be multidoted - Mana: better prediction for energy
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@204 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- rune strike in a separate icon
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@203 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- rune strike is a toggle
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@202 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- added horn of winter as an option (not tested)
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@201 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- garotte is a bleeding
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@200 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- bug fix for Mana(more)
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@198 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- fixed glyph of howling blast id
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@197 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- bug fix with glyph and talent option
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@196 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- - conditionally removed unused checkbox and list items (talent and glyph parameters)
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@195 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- - added buffs to warlock script - added CastTime(spellid more/less time) function
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@194 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- - added Stealthed function - some tweaks to Shaman, Hunter, Priest, and Druid scripts
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@192 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- added conflagrate glyph support
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@191 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- updating toc
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@189 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- more nice looking range indicator
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@188 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- added Counter() function and inccounter/resetcounter parameters to SpellInfo
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@186 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- sorry :(
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@184 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- added "at least" and "at most" comparisons
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@182 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- - bug with scrolling icons - added from X until Y (like between X and Y but X must be before Y)
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@180 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- - Some changes to the syntax introduced in 3.3.6. Now forceduration is a parameter to TargetDebuffPresent/Expires() functions. It can be a duration in seconds if SpellInfo is not defined for the spell. - The syntax of between X and X has been changed. Now it is "less than Ns between X and Y" or "more than Ns between X and Y" which should be more explicit - added "buff" text
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@178 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- - update is done even if Ovale is hidden, which allows to play sounds - added glyph and talent options to SpellInfo, which allows to modify spell infos based on a glyph spell id or a talent id - added forceduration to SpellInfo to tell Ovale to ignore the aura duration given by WoW and use its own duration (used for Glyph of Shred for example) - added addduration and addcd to SpellInfo to use in combination with glyph and talent parameter: allows to modify previous values (e.g. Glyph of Rip add 4s to the duration of Rip) - see Druid default script for an example (note that this script does not use the information anyway) It's experimental, please report any bug
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@176 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- change to friendly unit detection
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@175 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- bug fix with toggled aura like hunter aspects
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@173 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- - removing a debug - added soundtime parameter
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@171 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- - added sound parameter to Spell function & so
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@170 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- - bug fix with multidoting - more multidoting support for shadow priest (multidot is disabled by default now) - various fix for feral script - small fix for unholy death knight script - may fix bug with ButtonFacade range indicator? - fix TotemExpires
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@168 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- - fix for demonology warlock - fix for enhancement shaman
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@166 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- forgot to coommit Ovale.toc
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@164 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- - added Tracking function - added DEEPFREEZE to frost mage cycle - fix for arm warrior - arcane mage may want to use arcane barrage
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@162 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- bug fix when recount is not there
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@160 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- terrible bug with "or"
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@158 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- removing dk cd hack
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@156 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- nored=1 option for Spell() was not working
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@154 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- do not cast immolate if unstable affliction is on target
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@152 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- I'm stupid
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@150 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- adding dot icons to warlock script
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@149 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- destruction warlock fixes
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@148 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- some DK fixes
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@146 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- - prediction for enhancement shaman, feral druid and fire & arcane mage - some PTR changes in comments
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@145 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- - added shared cd
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@144 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- bug: undue script error
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@143 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- - some bug fixes - added spell description for paladin
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@142 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- - two spells are correctly displayed (need script support) - added TimeInCombat() function - all BuffPresent() functions use the same syntax as BuffExpires() now, and should work better
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@141 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- some corrections for feral druid
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@139 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- some feral druid fixes
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@138 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- - buggy message - added TargetDeadIn
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@136 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- do not spam if red
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@134 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- corrected CHAT_MSG_ADDON
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@132 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- - small change in elemental shaman script - added icon highlighting when ability should be spammed
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@131 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- - added the nored=1 option to Spell function: force the use of the spell cooldown - experimental: added sync for Recount (not tested) - some changes to protection paladin and fury warrior scripts
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@129 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- bug when Recount is missing
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@128 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- - added an help tooltip - option to hide the icon completely - tweaking the fury warrior script
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@126 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- moving victory rush where it belongs (at the bottom)
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@125 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- bug fix for TargetDeadIn()
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@123 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- bug fix with TargetDeadIn()
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@121 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- - added defaults for checkbox and dropdown lists - fixed bug with visibility - fixed localization bug - added TargetDeadIn() and OtherDebuffPresent() functions
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@120 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- updated toc
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@118 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- - added multidotting with OtherDebuffExpires() (see shadow priest example) - fixed a bug in prediction - added mind flay 2 ticks support (not quite complete) - "focus" is displayed on the icons if it is a spell to cast on the focus
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@117 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- fix to chaos bolt
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@115 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- added chaos bolt to warlock script
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@114 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- - death knight death coil used the wrong spell id
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@112 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- - added the nodeath option to Rune() - fixed blood and frost script, should be slighty better - added some abilities to warrior tanking script
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@110 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- - bug with recount support - better DK script (death rune for every ability)
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@108 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- - added scoring (with Recount) - added prediction beyond first spell (experimental, don't work) - some fixes with DK and Shadow priest
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@106 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- - fix for balance druid - DK: added an option to refresh disease with the glyphed pestilence - warlock: removed recklessness curse
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@104 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- 3.2.3 not packaged?
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@102 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- arcane mage: fix for empowerment
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@101 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- arcane mage change: wait for 4 debuffs now
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@99 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- - added an ItemCount(itemid more/less N) function - fixed Warlock default script (added Decimation, Incinerate, and Demonic Empowerment)
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@97 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- version update
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@95 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- - bug fixes in warrior and feral druid scripts (with dots) - added TargetLife and TargetMana functions (not percentage based, can be used to prevent doting bellow a certain life value) - target can be specified for Spell function (range will be computed to the specified target, e.g. Spell(123 target=focus) will show the range to your focus, useful for Polymorph and other CC)
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@94 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- - 3.2 for balance druid (eclipse) - 3.2 for retribution paladin (exorcism)
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@92 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- - better feral druid script (based on Murna "Cat DPS guide for Dummies" priority list) - added "Xs between A and B" keyword, which means that there must be at most X seconds between A and B. Used to unsync abilities using combo points
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@90 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- jkk9_JJK- druid: rake is not a finishing move! - druid: savageroar should be kept at all cost - paladin: increased crusader strike and hammer of wrath priority - paladin: added divine wrath option - warrior: sunder armor is an option - warrior: heroic strike in combat stance
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@89 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- - added WeaponEnchantExpires condition - bug fix: icons were always visible on startup even when option were set to hide them
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@87 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- - forgot to remove a debug :( - added trinket cooldown for every class
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@85 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- - bug fixes with trinkets
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@84 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- - hunter default script: added call of the wild
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@82 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- - hunter default script: added chimera shot
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@81 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- - display an action even if it is not in the action bar (do not work well for "on next action" spells)
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@80 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- - added arcane power to default mage script
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@79 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- - update toc
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@78 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- - bug fix: border were still visible when icons should be hidden
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@76 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- - trace removed
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@74 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- - ButtonFacade support
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@73 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- - added BuffGain: should be useful for 3.2 moonkin cycle - predict energy gain
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@72 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- - slight modifications in mage and rogue scripts- elemental chaman: use chain lightning if lightning would delay lava leash
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@71 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- - slight modifications in mage and rogue scripts
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@70 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- - bug : action bar were not updated when switching specs - added TargetBuffPresent
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@68 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- - added show/hide command
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@66 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- - bug fix in chaman script: added mine=1 to TargetDebuffExpires
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@64 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- toc udpate
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@62 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- - syntax error in hunter script
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@61 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- - bug fix (critical): if {a or b} c won't work - added some PvP-related conditions
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@59 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- toc udpate
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@57 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- - druid: fixes for balance - elemental shaman fixes - added TotemExpires() condition
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@56 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- - fixes for cat. should be fine now
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@55 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- - slight changes to priest code (should solve the problem with shadow weaving)
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@53 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- - hunter : do not cast steady shot during lock and load
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@52 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- - a lot of fixes for shaman (elemental and enhancement) and mage (fire and arcane) - and a small fix for rogue (better refresh for slice and dice) - added DebuffExpires function - added an optional time parameter to TargetDebuffPresent (see enh shaman) - added SpellAddDebuff, SpellAddTargetDebuff options(see Mage) for casted spells that add a buff or a debuff (better than doNotRepeat for DOTs because it allows stacking! I should correct other scripts)
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@51 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- - heroic strike should not be displayed in berserker stance if execute is available - bug fix: talents where not reseted when changing spec with dual spec
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@49 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- - turns the icon in red if should not be spammed
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@48 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- - hide heroic strike in combat stance
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@46 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- - fixed arm warrior default script, which was VERY bad
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@45 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- toc udpate, grrr
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@43 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- - paladin can cast exorcism on every target - death knight small fix
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@42 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- I keep forgetting to update this toc file!
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@40 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- - added default for rogues
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@39 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- toc update
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@37 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- - priest default from Whistle and Nicho - slight modification in balance druid default - bone shield even if not in frost stance
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@36 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- - added default for death knight - bug fix for TargetDebuffPresent
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@35 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- - toc update
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@33 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- - bug fix: uses new format of UnitAura
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@32 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- - bug fix: UnitBuff/UnitDebuff uses unitCaster and not isMine
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@31 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- - bug fix: hides the cooldown when a spell has no cooldown when it is first shown (e.g. a spell that is casted after a proc)
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@30 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- - bug fix: recursive {} - removed siphon life from Warlock spells - black arrow added to hunter
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@29 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- - compilation errors should print
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@28 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- toc update
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@26 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- - bug fix: sometimes the spell with the highest priority was not prioritized while casting a spell - default for mages of all specs
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@24 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- - bug when no script
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@23 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- more secure
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@22 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- ..\AddOns\Ovale\OvaleIcone.lua line 28:    attempt to compare number with nil
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@21 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- option haste=spell or haste=melee added to some functions
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@20 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- changes to druid and warrior default script
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@18 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- - bug fix for HasShield
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@17 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- - bug fix with "unless" - added some tolerance when comparing two CD - added before keyword - some options added
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@15 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- svn:external added
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@14 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- excorism can be caster on demons too!
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@13 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- version number
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@11 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- bug fixes for paladin
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@10 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- - death knight stub file - toc change
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@8 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- - added size=small and nocd=1 options to AddIcon - customizable small icon size - allow to display the remaining time in numerical form - allow to hide the shortcuts
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@7 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- modification of unless
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@6 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- - localization - better default scripts
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@5 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- - multiple icons - some customization - bug fixes
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@4 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- - stacks for BuffPresent
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@3 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- import initial
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@2 d5049fe3-3747-40f7-a4b5-f36d6801af5f
	- "ovale/mainline: Initial Import"
	git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1 d5049fe3-3747-40f7-a4b5-f36d6801af5f
