Cluster Info

ClusterInfo is a class that tracks data of units that are passed thru
during the clustering process.

Cluster conditions is an enum of flags that is used to describe general
things about the cluster.
--Weak/Strong, Large/Small, Elites/Boss, Fast/Ranged

Grouping now uses this cluster info in triggering the look for groups,
and the groups that are valid to engage.
TargetProperties added into CacheUnit

CacheUnit added TargetProperties as a property.

Disabled BackTrack behavior.
Ability Extraction

Began extracting each skill into its own class.
--Only the barbs skills have been updated with old constructor code--

IAbility added and Power related properties.

Precast and Cluster conditions are now created using a static method.
Added AbilityCriteria Class

AbilityCriteria is abstract class which is base for Ability.
This class holds criteria and static methods to create the funcs used.
update
changes

Added IsBuff into AbilityCriteria and is used for buff selector.

Finished Monk and Witch doctor Extraction.
Demon Hunter Skills -- Townrun pause rate reduced
Wizard Skills
Removed Unused Files
Item LOS, Arcane Orb

Items will now test LOS inside ObjectIsValidForTargeting.
This should fix stucks occuring with multiple items that are were cycled
causing perm stuck.

Arcane Orb has stricter conditions for cluster and single target.
Precast Condition None Fixed

Default abilities should now work again..
Misc Changes

CacheObject:
RequiresLOSCheck is now virtual.

CacheGizmo:
-Increased the range used in BarricadeTest Vector. (when obj is less
then 1f). Fixes issue with face-to-face and ignoring it.
-InteractionRange for non-melee classes will no longer increase range if
ability is not ranged.

CacheItem:
-CacheItem now overrides RequiresLOSCheck, which is set to false as
default.
-LosCheck will use modified position that increases the Z value by 1f.
-Increased range of ignoring gold/globes when already within pickup
range to 2.5f.

TargetMovement:
-Item LOS Check has been moved out of the block counter check and placed
in the non movement check.

-Blacklisted Search Points is now part of GPArea Class -- removed from
Navigation Class.
-When blacklisting a point occurs, it will increase index for searching
rects.

-Added Property: ClusterProperties into ClusterConditions

Bugs:
Fixed exception during town runs when no potions were in backpack.
Update

Interactables now use ActorMoveTo in TargetMovement.

SetupAbilityForUse now supports setup for destructible ability.

CheckCombatConditionMethod now uses ConditionCriteraTypes optional
parameter which can be used to specify the criteria checks.

Sucide Bombers and Treasure Goblins will now use criteria of single
target only.. to prevent other targets from being used.

Added Enum LocationFlags -- to describe each possible direction the bot
can take.
Added Class AreaBoundary which holds two points -- topleft and
bottomRight and is used to check other points to return LocationFlags.
BlockedLocationDirections added into Navigation Class.
GPArea checks BlockLocationDirections to skip GPRects.

Implemented override of ObjectIsValidForTargeting in CacheDestructable.

Refactored Cluster into new namespace FunkyTrinity.Movement.Clustering.
Update

Added debuffs into Player Class.
Fprecast is now accessible in abilities allowing custom conditions to be
added.
Clickable destructibles will no longer use location attack.
Added TrinityMoveToScene
update

Ability setup will now check the last successful condition passed before
using cluster as target.

Extracted CacheInteractable and CacheDestructable into new files.
Update

Removed Cost for Overpower and Threatening Shout.
Serenity Condition is now less than 30% HP and any mobs close range.
Arcane Strike now uses cluster condition.

Reduced unit counter for Large Cluster Property from 7 to 6.
Extracted AreaBoundary into new file.