/// <summary>
        ///     Gets the best candidate target.
        /// </summary>
        /// <param name="spell">
        ///     The Spell instance
        /// </param>
        /// <param name="champsToIgnore">
        ///     Champions to ignore.
        /// </param>
        /// <param name="rangeCheckFrom">
        ///     The range Check From.
        /// </param>
        /// <returns>
        ///     The <see cref="Obj_AI_Hero" /> target.
        /// </returns>
        public static Obj_AI_Hero GetTargetNoCollision(
            Spell spell,
            IEnumerable<Obj_AI_Hero> champsToIgnore,
            Vector3? rangeCheckFrom = null)
        {
            var t = GetTarget(spell.Range, spell.DamageType, champsToIgnore, rangeCheckFrom);

            if (spell.Collision && spell.GetPrediction(t).Hitchance != HitChance.Collision)
            {
                return t;
            }

            return null;
        }