// Second overload method used for checking abilities that target tiles (Move for example)
        public static bool IsAbilityUseValid(LivingEntity caster, Ability abilityUsed, Tile targetTile)
        {
            // Ability must pass both checks to be a valid move
            bool passedApCheck      = false;
            bool passedInRangeCheck = false;

            // Check if caster actually has enough action points to pay for the ability
            if (HasEnoughActionPoints(caster, abilityUsed))
            {
                passedApCheck = true;
            }

            // Check that the target location is in range
            if (WorldController.IsTileAInRangeOfTileB(caster.Position, targetTile, abilityUsed.Range))
            {
                passedInRangeCheck = true;
            }

            // both checks succesful? if so, return true
            if (passedApCheck &&
                passedInRangeCheck)
            {
                return(true);
            }
            else
            {
                return(false);
            }


            // TO DO: implement code that checks if the targetTile is unoccupied when using 'Move'
        }
 public static bool IsTargetInRangeOfCaster(LivingEntity target, LivingEntity caster, int range)
 {
     return(WorldController.IsTileAInRangeOfTileB(target.Position, caster.Position, range));
 }