Exemple #1
0
        private void CheckInstantSpells()
        {
            float facingAngle   = GetTarget.Direction.To2D().Perpendicular().AngleBetween(me.Direction.To2D().Perpendicular());
            bool  isRunningAway = facingAngle < 25;

            if (!RivenMenu.Combo["burstKey"].Cast <KeyBind>().CurrentValue&& Spells.E.IsReady() &&
                Orbwalker.ActiveModesFlags == Orbwalker.ActiveModes.Combo && RivenMenu.Combo["EGap"].Cast <CheckBox>().CurrentValue)
            {
                if (Prediction.Position.PredictUnitPosition(GetTarget, Spells.E.CastDelay).Distance(me) < Spells.E.Range + me.GetAutoAttackRange() &&
                    GetTarget.Distance(me) > me.GetAutoAttackRange())
                {
                    Spells.ForceE(GetTarget.Position.To2D());
                }
            }
            else if (!RivenMenu.Combo["burstKey"].Cast <KeyBind>().CurrentValue&& Spells.Q.IsReady() && !Spells.E.IsReady() &&
                     Orbwalker.ActiveModesFlags == Orbwalker.ActiveModes.Combo && RivenMenu.Combo["QGap"].Cast <CheckBox>().CurrentValue)
            {
                if (Farming.GetQCone().IsInside(Prediction.Position.PredictUnitPosition(GetTarget, Spells.Q.CastDelay)) &&
                    GetTarget.Distance(me) > me.GetAutoAttackRange() && isRunningAway)
                {
                    Spells.ForceQ(GetTarget.Position.To2D());
                }
            }
            else if (isRunningAway && RivenMenu.Combo["QGap"].Cast <CheckBox>().CurrentValue&&
                     RivenMenu.Combo["EGap"].Cast <CheckBox>().CurrentValue&&
                     Spells.Q.IsReady() && Spells.E.IsReady() &&
                     Prediction.Position.PredictUnitPosition(GetTarget, Spells.E.CastDelay).Distance(me) >
                     Spells.E.Range + me.GetAutoAttackRange() &&
                     Prediction.Position.PredictUnitPosition(GetTarget, Spells.E.CastDelay + Spells.Q.CastDelay)
                     .Distance(me) <= Spells.Q.Range + Spells.E.Range + me.GetAutoAttackRange())
            {
                Spells.ForceE(GetTarget.Position.To2D());
                Core.DelayAction(Spells.ForceQ, Spells.E.CastDelay);
            }

            bool laneClear = EntityManager.MinionsAndMonsters.GetLaneMinions(EntityManager.UnitTeam.Enemy, me.Position, 750).Any() &&
                             Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.LaneClear);

            if (RivenMenu.Combo["InstaW"].Cast <CheckBox>().CurrentValue&& Spells.W.IsReady() && !laneClear)
            {
                var pred = Prediction.Position.PredictUnitPosition(GetTarget, Spells.W.CastDelay /*+ 250*/);
                if (pred.Distance(Player.Instance) <= Spells.W.Range)
                {
                    Spells.ForceItem();
                    Core.DelayAction(Spells.ForceW, 250);
                }
            }
        }