Пример #1
0
        public static void OnDestroy(GameObject sender)
        {
            if (sender.Name != "Gragas_Base_Q_Ally.troy" || Barrel == null)
            {
                return;
            }

            Barrel = null;
        }
Пример #2
0
        public static void OnProcessSpellCast(Obj_AI_Base sender, Obj_AI_BaseMissileClientDataEventArgs args)
        {
            if (!sender.IsMe || args.SpellSlot != SpellSlot.Q || args.SpellData.Name != "GragasQ")
            {
                return;
            }

            Barrel = new Geometry.Circle(args.End.To2D(), QRadius);
            DelayAction.Queue(4000, () => Barrel = null);
        }
Пример #3
0
        public static void OnUpdate()
        {
            var target = Global.TargetSelector.GetTarget(2500);

            if (target == null || !target.IsValidTarget())
            {
                return;
            }

            var targetDist = target.Distance(Global.Player);
            var minion     = MinionHelper.GetDashableMinion(target);

            var positionBehindMinion = MinionHelper.WalkBehindMinion(target, minion);

            if (!positionBehindMinion.IsZero && positionBehindMinion.Distance(Global.Player) <= MenuConfig.Combo["MRange"].Value)
            {
                MinionHelper.ExtendedMinion = positionBehindMinion;
                MinionHelper.ExtendedTarget = target.ServerPosition;
            }

            var dashDistance = MinionHelper.DashDistance(minion, target);

            if (SpellConfig.E.Ready && targetDist > Global.Player.AttackRange)
            {
                if (MinionHelper.IsDashable(target) && (Extension.CurrentMode == Mode.Tornado ||
                                                        targetDist > SpellConfig.E.Range - target.BoundingRadius && GameObjects.EnemyMinions.Count(MinionHelper.IsDashable) == 0))
                {
                    SpellConfig.E.CastOnUnit(target);
                }

                if (MenuConfig.Combo["Walk"].Enabled && Global.Orbwalker.CanMove() && !(MenuConfig.Combo["Turret"].Enabled && target.IsUnderEnemyTurret()))
                {
                    SpellConfig.CastE(target, true, MenuConfig.Combo["MRange"].Value);
                }
                else if (minion != null)
                {
                    if (MenuConfig.Combo["Turret"].Enabled && minion.ServerPosition.PointUnderEnemyTurret() ||
                        MenuConfig.Combo["Dash"].Value == 0 && minion.Distance(Game.CursorPos) > MenuConfig.Combo["Range"].Value)
                    {
                        return;
                    }

                    SpellConfig.CastE(minion);
                }
            }

            if (SpellConfig.Q.Ready)
            {
                switch (Extension.CurrentMode)
                {
                case Mode.Dashing:
                case Mode.DashingTornado:
                    if (MenuConfig.Combo["Flash"].Enabled && dashDistance < 425 && dashDistance > 250 && targetDist > 220 &&
                        (Dmg.Damage(target) * 1.25 > target.Health || target.ServerPosition.CountEnemyHeroesInRange(220) >= 2))
                    {
                        DelayAction.Queue(Game.Ping / 2,
                                          () =>
                        {
                            SpellConfig.Q.Cast();
                        },
                                          new CancellationToken(false));

                        DelayAction.Queue(Game.Ping / 2 + 50,
                                          () =>
                        {
                            SummonerSpells.Flash.Cast(target.Position);
                        },
                                          new CancellationToken(false));
                    }
                    else
                    {
                        var circle = new Geometry.Circle(Global.Player.GetDashInfo().EndPos, 220);
                        var count  = GameObjects.EnemyHeroes.Count(x => x.IsValidTarget() && x.Distance(circle.Center.To3D()) <= circle.Radius);

                        if (count != 0)
                        {
                            SpellConfig.Q.Cast(target);
                        }
                    }
                    break;

                default:
                    SpellConfig.CastQ(target);
                    break;
                }
            }

            if (SpellConfig.R.Ready && MenuConfig.Whitelist[target.ChampionName].Enabled && target.IsAirbone() && KnockUpHelper.IsItTimeToUlt(target))
            {
                var airbourneTargets = GameObjects.EnemyHeroes.Where(x => KnockUpHelper.KnockedUp(x) && x.Distance(Global.Player) <= SpellConfig.R.Range);
                var targetCount      = (airbourneTargets as Obj_AI_Hero[] ?? airbourneTargets.ToArray()).Length;

                if (targetCount >= MenuConfig.Combo["Count"].Value || targetDist > 350)
                {
                    SpellConfig.R.Cast();
                }
            }
        }