Esempio n. 1
0
        private void TryR2Cast()
        {
            /*check min hits (by default 1) => doesnt influence the combo*/
            if (!RivenMenu.Combo["onlyR2ToKs"].Cast <CheckBox>().CurrentValue)
            {
                UltimatePrediction.CheckUltimateHits();
                return;
            }

            /*kill only*/
            var pred = Prediction.Position.PredictUnitPosition(GetTarget, (int)(Spells.R2.CastDelay + GetTarget.Distance(Player.Instance) / Spells.R2.Speed * 1000));

            Spells.ForceR2(me.Position.Extend(pred, 100));
        }
Esempio n. 2
0
        public static void CheckUltimateHits()
        {
            int     maxHitCount = 0;
            Vector2 bestEndVec  = Vector2.Zero;

            Geometry.Polygon BestCone = null;

            for (int i = 0; i < 360; i += 20)
            {
                var endVec            = PointOnCircle(i);
                Geometry.Polygon Cone = CreateUltimateCone(endVec);

                int currentHits = EntityManager.Heroes.Enemies.Where(x => x.IsValid && !x.IsDead && !x.IsZombie).Count(
                    x =>
                {
                    var pred = Prediction.Position.PredictUnitPosition(x, (int)(Spells.R2.CastDelay + x.Distance(Player.Instance) /
                                                                                Spells.R2.Speed * 1000));
                    bool inside = Cone.IsInside(pred);

                    return(inside);
                });

                if (currentHits > maxHitCount)
                {
                    maxHitCount = currentHits;
                    bestEndVec  = endVec;

                    BestCone = Cone;
                }
            }

            if (BestCone != null && maxHitCount >= RivenMenu.Combo["minR2Hits"].Cast <Slider>().CurrentValue)
            {
                Spells.ForceR2(Player.Instance.Position.Extend(bestEndVec, 100));
            }
        }