tag 6.0.0
1b0dfe1d59fc40813882574bd12f324bddc7594b
Johnny C. Lam <jlam88@gmail.com>
2014-10-29 00:36:03 -0400

Tagging as 6.0.0 release.


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

Johnny C. Lam:
	- Update ruRU localization data.
	- Make it more apparent that balance druids are not yet supported.
	- Change "6.0.2" to "6.0" in scripts.
	The versions of WoW for which the scripts apply are the major release 6.0,
	all teeny versions.  Drop the last digit of the version number to make it
	more apparent, and to forestall questions about when a script will be
	updated for the latest teeny version update of WoW.
	
	Leave the teeny versions on the spell data scripts to indicate from which
	patch the data was taken.  The spell data can change substantially between
	teeny updates, so keep that number as documentation.
	- Mage: Update default scripts to SimulationCraft 6.0.3.
	- Improve SimulationCraft translator for mages.
	* Icy Veins only has a single spell ID in patch 6.0.
	* Add Name() condition for testing whether a target is the Prismatic
	  Crystal.  This will need to be revisited once I can actually summon
	  Prismatic Crystals.
	
	Regenerate reference scripts from SimulationCraft git master branch from
	2014-10-28, and pull in improvements into the default scripts.
	- Implement "xor" logical operator, mapping to SimulationCraft's "^".
	- Warrior: Update default scripts based on SimulationCraft for 6.0.3.
	The icon layout for warriors has changed to remove the "offgcd" icon.  It
	has been merged into the "shortcd" icon after changes in patch 6.0 make it
	unnecessary to track those abilities separately.
	- Fix bug where 'extra_<powerType>=N' was causing spells to have no cost.
	Sprinkle more logging information used to track down the bug.
	- Warriors gain "Gladiator Stance" in WoD.
	- Improve SimulationCraft translator.
	* Execute and Shield Barrier differ for each warrior specialization.
	* Warrior's Disrupting Shout was removed in patch 6.0.
	* Use Charge as a range-finder for Heroic Leap to avoid needing a
	  checkbox for warriors.
	* Impending Victory does not require the Victorious buff.
	* Implement GetInMeleeRange() for warriors.
	* Require incoming damage for Anti-Magic Shell for death knights.
	* Be neater in the translation if a number is implictly used a boolean.
	* Support druid "moonfire_cat" action.
	
	Regenerate reference scripts from SimulationCraft git master branch from
	2014-10-27, and pull in improvements into the default scripts.
	- Move "learn=1" spells ahead of other spell declarations.
	The spells need to be added to the spellbook before they can be used in
	later SpellInfo declarations.
	- Silence warning in shaman script for unknown talent ID.
	- Fix Blood DK rotation's Outbreak and Blood Boil usage.
	The SimulationCraft action list upon which this script was based is
	incorrect.  Fix the conditions for using Outbreak so that it is suggested
	when diseases are within 8 seconds of falling off, not when the diseases
	have more than 8 seconds left.  Also remove the Blood Boil spam, which was
	consuming all blood and death runes and starving the tank of resources to
	Death Strike.
	
	This fixes ticket 432.
	- Reimplement Diseases*() functions as script conditions.
	These are more efficient than the functions defined in the script and also
	properly check for existence of debuffs where needed.
	- Update localization data.
	- Add options to change flash colors for SpellFlash feature.
	The color to be used by SpellFlash is first looked up in the action
	parameters, e.g., Spell(moonfire flash=purple), then in the icon
	parameters, e.g., AddIcon flash=orange { ... }, before falling back to
	using default colors based on the icon "help" parameter.
	
	Valid colors are from the SpellFlashCore COLORTABLE:
	
	   aqua, blue, gray, green, orange, pink, purple, red, white, yellow
	
	This closes ticket 427.
	- Put the "Enabled" option on its own line for the Icon Group settings.
	- Gracefully upgrade old saved variables to the current layout.
	- Update to note Shaman support.
	- Shaman: Update default scripts based on SimulationCraft for 6.0.2.
	- Update scripts from SimulationCraft.
	Regenerate reference scripts from SimulationCraft git master branch from
	2014-10-27, and pull in improvements into the default scripts.
	- Flash the Stance bar in addition to the action bar on stance spells.
	- Fix typo.
	- Default SpellFlash to enabled.
	If SpellFlashCore is installed, then there is no second step necessary to
	make it work with Ovale (probably the expected behavior).
	- Provide more options for controlling SpellFlash display.
	- Change all scale sliders to use "percent" as the measure.
	This is a bit simpler to understand and makes the scale values a bit
	easier to display in the options UI.
	- Update min, max and step for the scale sliders to more usable values.
	- Make OvaleIcone actually use the alpha value from OvaleOptions.
	This was broken in the 5.4.35 release.  Also fix eferences to  nil "self".
	Fixes ticket 433 by @ShmooDude.
	- Use UnitPower() to get the player's combo points.
	UnitPower("player", 4) will always return the number of combo points on
	the player in patch 6.0.
	- Support additions to SimulationCraft profile syntax.
	* honor_among_thieves,cooldown=N,cooldown_stddev=M
	* gcd.max
	- Add SpellFlashCore as an optional dependency for Ovale.
	- Add link to SpellFlashCore in README.
	- Update localization data.
	- Update README to reflect current support for classes and new features.
	- Add feature to flash spells on action bars using SpellFlashCore.
	This feature requires that either SpellFlash or SpellFlashCore is
	installed in the Addons folder.
	
	This feature must be explicitly enabled in the Ovale options.
	- Tag spells that are used as spell interrupts with "interrupt=1".
	- Re-parent the options panel so it has independent visibility.
	The "contents" frame containing the script options widgets had the Ovale
	frame as it parent, so it was hidden when that frame was hidden.  Instead,
	set the updateFrame as the parent so that hiding/showing the Ovale frame
	only hides the icons and the green "move" bar.
	
	This allows for hiding the icons but still allowing to toggle the options
	panel via the minimap button.
	- Reorganize options to allow for an "enable icons" toggle.
	The Visibility options group is now a subgroup of the "Icon Group" options
	group, which has options for the bar of icons for the script.  There is a
	master option "Enabled" which toggles whether the icon bar is
	enabled/visible, and which triggers enabling the other options.
	
	This allows for hiding the icons while still having the script processed
	by Ovale.
	- Middle-click on the minimap icon will toggle the script options panel.
	- Refactor OvaleFrame so the code to update one icon is a separate function.
	The OnUpdate script handler now calls OvaleBestAction to compute the best
	action, then calls the UpdateActionIcon method to update the icons.
	- Let "texture" parameter set a texture path.
	- Priest: Update default scripts based on SimulationCraft for 6.0.2.
	- Improve SimulationCraft translator for priests.
	* Add InterruptActions() to the generated priest script.
	* Reorganize how InterruptActions() are auto-added to some class scripts.
	* Insanity requires the Shadow Word: Insanity buff to be usable.
	* Cascade, Divine Star and Halo all are specialization-specific.
	
	Regenerate reference scripts from SimulationCraft git master branch from
	2014-10-25, and pull in improvements into the default scripts.
	- Change the ID for the hidden Shadow Word: Death Reset Cooldown buff.
	Thd old ID collided with Enhanced Shadow Word: Death in patch 6.0.
	- New aura condition "buff,id" to require a buff to be present.
	"auraId=1,buff,id" means that the spell applies the aura only if the buff
	exists on the player.  "buff" may be replaced with "debuff", "target_buff"
	or "target_debuff" for the obvious meanings.
	- Death Knight: Update default scripts based on SimulationCraft for 6.0.2.
	- Improve SimulationCraft translator for death knights profiles.
	* Differentiate Soul Reaper for Blood death knights.
	* Add InterruptActions() to death knight scripts.
	* Only cast Horn of Winter if not raid-buffed.
	* Decorate function names for 1H/2H profile names.
	* Properly translate "dot.breath_of_singdragosa.ticking".
	
	Regenerate reference scripts from SimulationCraft git master branch from
	2014-10-24, and pull in improvements into the default scripts.
	- Forcibly learn certain spells to simplify expressing spell conditions.
	- Allow "learn=1" as a SpellInfo() parameter to force learning the spell.
	In patch 6.0, Blizzard removed many spells learned along the way while
	leveling that simply modified other spells.  However, these removed spells
	were useful as conditions for various spell effects.
	
	This change allows "learn=1" to force adding the spell to the spellbook so
	that it may be used as a test condition, regardless of whether the spell
	is truly in the in-game spellbook.
	- New syntax "auraId=extend,N" for spell aura lists to extend by N seconds.
	"auraId=extend,N" means that the spell extends the aura by N seconds and
	can be used in SpellAddBuff-style declarations.
	- Fix name of warlock script.
	- Fix typo in name of Beast Mastery AoE option.
	- Monk: Fix Brewmaster script when the AoE option is toggled on.
	- Remove the option to "Show Specialization icons".
	As an alternative, the user can select the "Disabled" script from the
	dropdown menu.  This value isn't saved per specialization, but it is
	simple and intuitive.
	- Register an empty "Disabled" script.
	This script may be selected from the dropdown menu to show no icons.
	- Warlock: Update default scripts based on SimulationCraft for 6.0.2.
	- Improve SimulationCraft translator.
	* Suggest Metamorphosis to toggle it off.
	* There is one Glyph of Dark Soul for all variations of Dark Soul.
	* Rain of Fire is a Destruction-only warlock spell.
	* Rename BuffDurationIfApplied() to BaseDuration() for brevity.
	* Restrict Slice and Dice condition to subtlety rogues.
	* Add translation for "max_fb_energy" SimulationCraft operand.
	
	Regenerate reference scripts from SimulationCraft git master branch from
	2014-10-23, and pull in improvements into the default scripts.
	- Prefer information from the state machine over the game.
	When checking whether a spell is usable, use the information in the state
	machine over information from the game.  The state machine reflects
	pending changes that might not already be true in the game.
	- Blizzard renamed the constant for the power token for Soul Shards in 6.0.
	- Add debugging option for power updates.
	- Fix format strings for logging code.
	- Add more logging to state method "IsUsableSpell()".
	Be more explicit about whether a requirement has passed or failed in the
	simulator.  If the spell has no spell information, then fall back to
	checking whether the spell is usable right now.
	- Allow comma-separated values to specify conditions for applying auras.
	Extend the syntax for SpellAddBuff-style lists to allow for
	"aura=value,condition1,condition2,...", where the conditions all must pass
	before the aura value is applied.
	
	This supersedes the "refresh_target_health_pct_N" parameter, which can now
	be replaced with "refresh,target_health_pct,N".
	- Extend parser to accept parameter values that are comma-separated values.
	This allows things like "rip=refresh,target_health_pct,25" as a parameter.
	The comma-separated values are still subject to variable substitution.
	- Be stricter when parsing "checkbox" and "listitem" parameters.
	Verify that the values for those parameters is only "name" or "!name".
	- Rename private function in OvaleAST for clarity.
	- Allow determining the maximum cost of a spell with state:PowerCost().
	Use the following to get the true cost of a spell:
	
	    state:PowerCost(spellId, powerType)
	
	Add an extra parameter to get the maximum cost of a spell:
	
	    state:PowerCost(spellId, powerType, true)
	
	This can be used for spells that use more power to do more damage, and we
	need a way to determine if we exceed that maximum power cost to do maximum
	damage with the spellcast, e.g., Ferocious Bite.
	- Mark spells which are off-GCD.
	- Implement a minimap icon for quicker access to Ovale options.
	The minimap icon can be toggled on and off and can be used by players
	without an LDB broker display.
	- Move the AceDB-3.0 database from OvaleOptions to Ovale.
	The SavedVariables database properly belongs in the core addon file and
	moving it there removes a weak dependency on OvaleOptions in many of the
	modules.
	- Move "debug" options to the "global" AceDB-3.0 data type.
	This makes debug options shared across all toons, which is what is
	normally expected.
	- Order the options in the config GUI appropriately.
	Options are ordered alphabetically by name by default, not by the order
	they are declared.  This fixes the placement of options in the config GUI.
	- Ensure that all CHAT_MSG_ADDON messages use the same prefix across Ovale.
	- Use a consistent way to set addon name and table in each module.
	Use "local OVALE, Ovale = ..." at the start of each module file to put the
	addon name and addon table into file scope in the same way across all
	files.  This is just for clarity and code consistency.
	- YAML files use spaces not tabs.
	- Monk: Update default scripts based on SimulationCraft for 6.0.2.
	The mistweaver specialization support has been removed but may re-appear
	in a later version.
	- Improve SimulationCraft translator.
	* Monk's Chi Explosion is different per specialization.
	* Monk's Expel Harm has a different spell ID when glyphed.
	* Monk's Guard has a different spell ID when glyphed.
	* Add guard condition for using monk's Touch of Death.
	* Always insert InterruptActions() into monk scripts.
	
	Regenerate reference scripts from SimulationCraft git master branch from
	2014-10-22, and pull in improvements into the default scripts.
	- Monks gained a new stance, "Stance of the Spirited Crane" in patch 6.0.
	- Generalize saving resources used when finishing moves are cast.
	Add Chi to the list of resources that are saved along with Holy power and
	Combo points.  Fix the process of saving resources to not ignore the buff
	that grants full resources with no cost.
	- Handle the periodic aura refresh mechanics from patch 6.0.
	There is still snapshotting in the game, but only with damage multipliers
	on the player.  All aura refreshes preserve the snapshot state of the
	originally-applied aura.
	
	Add a new refresh condition "refresh_target_health_pct_N" to tag auras
	that are only refreshed by a spell if the target is below N percent
	health, e.g., feral druid "Blood in the Water" mechanics.
	
	Move GetDuration and GetTickLength methods from OvaleAura to OvaleData.
	
	Remove script conditions for ticks no longer needed in scripts for patch
	6.0:
	
	    NextTick, Ticks, TicksAdded
	- Remove debugging code.
	As much fun as it is to point out how often Blizzard is screwing us over
	with weird in-game behavior, it's probably best to remove the warning.
	- Add power generated during a spell's cast time in the simulator.
	- Fix cooldown animation mysteriously disappearing.
	We constantly reset the cooldown animation's start and duration to
	counteract the mysterious resets to 0.
	- Make cooldown animation look more like Blizzard's action bar buttons.
	- Add some logging code to the frame Update handler.
	- Fix loading Ovale with no other addons.
	- Hunter: Update default scripts based on SimulationCraft for 6.0.2.
	- Improve SimulationCraft translator.
	* Add generic "potion_<stat>_buff" symbols.
	* Focusing Shot must be differentiated for marksmanship hunters.
	* Handle fake "careful_aim" buff.
	
	Regenerate reference scripts from SimulationCraft git master branch from
	2014-10-20.
	- Add legendary ring buffs from WoD.
	- Fix bug with being too aggressive with not using parentheses.
	Only associative operators should allow for removing parentheses.
	- Druid: Fix Rake multiplier to account for Incarnation buff.
	- Druid: Update default scripts based on SimulationCraft for 6.0.2.
	Support for balance and restoration specializations has been removed but
	may re-appear in a later version.
	- Improve SimulationCraft translator.
	* Various druid spells are different per specialization.
	* Remove various explicit talent checks that are handled automatically.
	* Add GetInMeleeRange() function for druids.
	
	Regenerate reference scripts based on SimulationCraft git master branch on
	2014-10-19, and pull in improvements into the default scripts.
	- Load more modules needed to use OvaleSimulationCraft within ast.t.
	- Support "extra_<powerType>=N" parameter in SpellInfo().
	Some abilities use "up to" N additional resources if available, e.g.,
	Ferocious Bite costs 25 energy but will use up to 25 additional energy for
	extra damage.  This can be described with "extra_energy=25".
	- There's no need to add fake durations to buffs.
	OvaleAura can cleanly handle infinite duration buffs.
	- Paladin: Update default scripts based on SimulationCraft for 6.0.2.
	The holy specialization support has been removed but may re-appear in a
	later version.
	- Rogue: Improvements from reference scripts.
	- Improve SimC translator and regenerate reference scripts.
	* Change "Condition(no)" to "not Condition()" for readability.
	* Paladin's Avenging Wrath is different per specialization.
	* Add a Righteous Fury check for paladins.
	* Monk's Gift of the Ox isn't a real spell and can be ignored.
	* Shaman's Windstrike is the Ascendance version of Stormstrike.
	* Remove various stance toggle checks because they are described in the
	  spell information as stance restrictions.
	* Move more usability checks into the spell information.
	* Add GetInMeleeRange() function for rogues and paladins.
	* Various other minor bug fixes in the code generator.
	
	Regenerate reference scripts based on SimulationCraft git master branch on
	2014-10-19.
	- Fix bug where spell information wasn't reset during script evaluation.
	- Fix bug where "level" and "maxLevel" were being ignored.
	- Don't execute unnecessary code if a spell isn't usable.
	When getting the action info for "Spell(id)", check first if the spell is
	usable via state:IsUsableSpell() and abort any additional processing if it
	is not.
	
	This improves the execution time for "Spell(id)" if the spell isn't known
	and there isn't an explicit check for whether the spell exists, e.g.:
	
	    Spell(holy_avenger)
	
	instead of:
	
	    if Talent(holy_avenger_talent) Spell(holy_avenger)
	- Support "unusable=1" parameter in SpellInfo().
	This allows us to flag a spell as unusable at compile-time.
	- Add "GetSpellInfo()" method to OvaleSpellBook.
	This method wraps the Blizzard API function and first tries to convert the
	given spell ID into a spellbook index, or else falls back to using the
	spell ID as the parameter to the Blizzard GetSpellInfo().  This makes sure
	that the spell information for any spell replacements in the spellbook are
	returned, as is common when a proc happens, or a spell that is different
	per specialization.
	- Rogue: Update default scripts based on SimulationCraft 6.0.2-5.
	- Add new reference scripts from SimulationCraft 6.0.2.
	Use Tier 16 Mythic profiles as the new base for default scripts.  The
	scripts are now named in a way that won't change between releases of Ovale
	and should make it easier to update the addon while running.
	- Hide old scripts and add empty default scripts for 6.0.2.
	Preserve old scripts as "legacy" scripts that are hidden from the
	selection menu (they can still be shown by forcing Ovale to show hidden
	scripts).
	- Remove old SimulationCraft scripts for patch 5.4.
	- Update OvaleSimulationCraft to parse profiles from SimulationCraft 6.0.2.
	- Add new SpellInfo() parameters "level=N" and "maxLevel=N".
	The "level" and "maxLevel" parameters sets the lowest level and highest
	level (inclusive) for the SpellInfo() information.
	- Add POOLED_RESOURCE property that maps a class to its pooled resource.
	- Allow SpellCharges() condition to return a fractional value.
	SpellCharges(ID) will still return a strict count of charges, but
	SpellCharges(ID count=0) will return a fractional value, e.g. 1.6 charges,
	depending on the remaining charge cooldown.
	- Enhance SpellCooldown() condition to take a list of spell IDs.
	SpellCooldown(id1 id2 ...) will return the number of seconds before any of
	the spells are ready.  If the parameter "usable=1" is specified, then only
	check the cooldowns of the spells that are usable.
	- Change SpellUsable() condition to ignore primary resource requirements.
	The underlying code now uses the state method "IsUsableSpell()" which
	allows for more accuracy within the simulator.
	- De-couple script conditions from OvaleState.
	Script conditions take at least two bits of information -- condition
	parameters and state machine -- when being evaluated.  The state machine
	isn't intrinsic to the evaluation and is now a direct parameter of each
	script condition.
	
	Treat the default target of a condition as a property of the state
	machine.
	- Weakened Armor and Weakened Blows have been removed in patch 6.0.
	- Add new conditions TimeToEnergy() and TimeToFocus().
	TimeToEnergy(level) returns the number of seconds until energy regenerates
	to the given level.  TimeToFocus(level) is the same thing for focus.
	- Add new condition "FocusCastingRegen()" for SimC's "cast_regen" operand.
	"cast_regen" is translated into "FocusCastingRegen()" which computes the
	amount of focus that would be regenerated during the cast time (including
	the GCD) of the given hunter spell.
	- Rename "EnergyRegen()" condition to "EnergyRegenRate()" for clarity.
	Also make the same change for the "FocusRegen()" script condition.
	- Fix API documentation bug.
	- Add "stealthed=1" parameter for spells that require Stealth to be usable.
	Also add a supporting parameter "buff_no_stealthed=ID" to specify a buff
	that allows the ability to ignore the stealth requirements.
	- Add "target_health_pct=N" parameter for spells that have an execute range.
	Also add a supporting parameter "buff_no_target_health_pct=ID" to specify
	a buff that allows the ability to ignore the target health percent
	requirements.
	- Implement new state method "IsUsableSpell()" in OvaleSpellBook.
	The state method IsUsableSpell() returns whether the spell can be cast
	given the restrictions set out in the spell information and whether there
	are enough secondary resources if necessary.  The implementation is taken
	from the GetActionSpellInfo() private method in OvaleBestAction, which has
	now been modified to use the state method instead.
	
	Also add some debugging and profiling support for OvaleSpellBook.
	- Remove workaround for IsUsableSpell() that (mis)used IsSpellOverlayed().
	We can now map from a spell ID to the index within the spellbook, so the
	Blizzard API function IsUsableSpell() called with index, bookType will
	always return the right information, regardless of if a spell was replaced
	due to a proc.
	- Implement "IsSpellInRange()" method in OvaleSpellBook.
	This is a convenience method that always works when given a spell ID,
	which is what is used throughout Ovale, and returns the same values as the
	Blizzard API function IsSpellInRange().
	- Overhaul OvaleEclipse for patch 6.0.
	* Remove "eclipse" from OvalePower as isn't not a resource in any sense.
	- Update OvaleSteadyFocus for patch 6.0.
	Steady Focus is now a level 60 talent for all hunters.  Steady Focus is
	now gained if two Steady Shot (Cobra Shot or Focusing Shot also
	acceptable) abilities are used back-to-back.  Track the use of the ability
	using UNIT_SPELLCAST_SUCCEEDED instead of CLEU.
	
	Add a debugging option for OvaleSteadyFocus that can be toggled in the
	"debug" options panel.
	- Update OvaleStances to patch 6.0.
	* Hunter aspects are no longer stances.
	* Warrior Berserker Stance has been removed.
	* Rogue Shadow Dance is no longer a stance for subtlety rogues.
	- Update OvaleRunes to patch 6.0.
	* Improved Blood Presence no longer increases rune regeneration rate.
	* Blood Strike and Blood Boil have been removed.
	- Track the new "multistrike" stat in OvalePaperDoll.
	Expose the multistrike chance in the usual script conditions.
	- Use a module-specific name for frames created within OvaleEquipement.
	- Update buff/debuff lists in OvaleData for patch 6.0.
	- Revealing Strike no longer advances Bandit's Guile in patch 6.0.
	- Change OvaleComboPoints to use a queue of events to track combo points.
	Every spell that can cause a change in the number of combo points creates
	pending combo point events that are queued when that spell is cast.
	
	Every actual combo point change, tracked through UNIT_COMBO_POINTS events,
	removes the corresponding pending combo point event.
	
	A new method OvaleComboPoints:GetComboPoints() returns the total number of
	combo points, taking into account any pending combo point events.  This
	total "looks ahead" and grants the combo points from Ruthlessness, Seal
	Fate, Primal Fury, and Anticipation before they are reflected in the game
	API.
	- Raise events when a spell is cast and when it finishes (hits or misses).
	Also, always count spells that miss as a spell-finishing event.  Prior to
	this change, spells that miss weren't being properly removed from the
	spell queue.
	- Split out LDB data broker object into a separate module.
	Structure the module so that it does nothing if LibDataBroker isn't
	present, and use .pkgmeta to pull LDB into the final package instead of
	hard-embedding LDB into the addon repository.
	
	This allows us to easily remove LDB support if the licensing terms change
	and permission to use LDB is revoked.
	- Restrict power updates in OvalePower to valid power types.
	The UNIT_POWER event fires for other power types that aren't tracked by
	OvalePower, e.g., COMBO_POINTS.  Ignore these power types so they don't
	trigger a loop update over all power types.
	- GetSpellInfo() changed its return values in patch 6.0.
	New return values are:
	
	    name, subName, icon, castingTime, minRange, maxRange
	
	Adapt GetSpellInfo() usage to the new return values.  Use the
	OvaleSpellBook:GetSpellName() wrapper method in place of the most common
	usage to get the name of a spell.  Also add a new method
	OvaleSpellBook:GetCastTime() to wrap using GetSpellInfo() to get the
	casting time of a spell.
	- Add new method OvalePower:PowerCost() that returns the cost of a spell.
	The Blizzard API function GetSpellInfo() in patch 6.0 no longer returns
	spell cost and power type information, so add a new method to OvalePower
	to return this lost information.  The information is gleaned from scanning
	the tooltip for a spell.
	
	The tooltip-scanning uses a method that should correctly return the cost
	and power type for any locale.
	- Adapt to changed GetTalentInfo() to properly update talents.
	GetTalentInfo() changed the parameters taken to:
	
	    GetTalentInfo(tier, column, talentGroup [, isInspect, inspectedUnit])
	
	and the returned values to:
	
	    talentID, name, iconTexture, selected, available
	
	Add placeholder constants for the number of talents, tiers and columns to
	sanity-check iterating over all of the talents in the active talent group.
	- Cooldown animations need to explicitly set the swipe color to black.
	- The PLAYER_AVG_ITEM_LEVEL_READY event has been removed in 6.0.
	Replace with PLAYER_AVG_ITEM_LEVEL_UPDATE event which fires more
	frequently.
	- CLEU events gained two additional parameters to deal with multistrike.
	- 1/nil/0 was changed to true/false across the Blizzard API.
	- Move compiler.pl to where other test scripts are located.
	During development, the "edit-compile-run" cycle can now be done mostly
	within the "tests" directory.
	- Update TOC for patch 6.0.
