Exemple #1
0
        public static int GetRecallDuration(this Obj_AI_BaseTeleportEventArgs args)
        {
            if (args.Name.Equals("recall"))
            {
                return(8000);
            }

            if (args.Name.Equals("RecallImproved"))
            {
                return(7000);
            }

            if (args.Name.Equals("OdinRecall"))
            {
                return(4500);
            }

            if (args.Name.Equals("OdinRecallImproved") || args.Name.Equals("SuperRecall") ||
                args.Name.Equals("SuperRecallImproved"))
            {
                return(4000);
            }

            return(8000);
        }
Exemple #2
0
        private void Obj_AI_Base_OnTeleport(Obj_AI_Base sender, Obj_AI_BaseTeleportEventArgs e)
        {
            var hero = sender as Obj_AI_Hero;

            if (hero == null)
            {
                return;
            }

            if (!hero.IsValid || hero.IsAlly)
            {
                return;
            }

            if (e.DisplayName != null)
            {
                var name = e.DisplayName.ToLower();

                var data = Data[hero.NetworkId];

                if (name.Contains("recall"))
                {
                    data.RecallStartTime = Game.TickCount;
                    data.IsRecalling     = true;
                }

                else
                {
                    data.RecallCancelTime = Game.TickCount;
                }
            }
        }
Exemple #3
0
        internal static int GetRecallDuration(Obj_AI_BaseTeleportEventArgs args)
        {
            switch (args.DisplayName.ToLower())
            {
            case "recall":
                return(8000);

            case "recallimproved":
                return(7000);

            case "odinrecall":
                return(4500);

            case "odinrecallimproved":
                return(4000);

            case "superrecall":
                return(4000);

            case "superrecallimproved":
                return(4000);

            default: return(8000);
            }
        }
Exemple #4
0
        private void OnTeleport(Obj_AI_Base sender, Obj_AI_BaseTeleportEventArgs args)
        {
            if (sender.IsAlly)
            {
                return;
            }

            //normal recall 8 sec
            if (args.Name.ToLower() == "recall")
            {
                //Console.WriteLine(Game.ClockTime + " | " + sender.Name.ToLower() + " is recalling.");

                var TeleportingChamp = _lastPositions.FirstOrDefault(t => t.Champ.Name.ToLower().Equals(sender.Name.ToLower()));
                TeleportingChamp.IsTeleporting = true;
                DelayAction.Queue(8000, () => TeleportingChamp.Teleported = true);
            }

            //baron recall 4 sec
            if (args.Name.ToLower() == "superrecall")
            {
                var TeleportingChamp = _lastPositions.FirstOrDefault(t => t.Champ.Name.ToLower().Equals(sender.Name.ToLower()));
                TeleportingChamp.IsTeleporting = true;
                DelayAction.Queue(4000, () => TeleportingChamp.Teleported = true);
            }
        }
Exemple #5
0
        private static void OnUnitTeleport(Obj_AI_Base sender, Obj_AI_BaseTeleportEventArgs e)
        {
            var eventArgs = new TeleportEventArgs
            {
                Status = TeleportStatus.Unknown,
                Type   = TeleportType.Unknown
            };

            if (sender == null)
            {
                return;
            }

            if (!TeleportDataNetId.ContainsKey(sender.NetworkId))
            {
                TeleportDataNetId[sender.NetworkId] = eventArgs;
            }

            if (!string.IsNullOrEmpty(e.DisplayName))
            {
                eventArgs.Status   = TeleportStatus.Start;
                eventArgs.Duration = GetDuration(e);
                eventArgs.Type     = GetType(e);
                eventArgs.Start    = Game.TickCount;

                TeleportDataNetId[sender.NetworkId] = eventArgs;
            }
            else
            {
                eventArgs        = TeleportDataNetId[sender.NetworkId];
                eventArgs.Status = Game.TickCount - eventArgs.Start < eventArgs.Duration - 250 ? TeleportStatus.Abort : TeleportStatus.Finish;
            }

            OnTeleport?.Invoke(sender, eventArgs);
        }
Exemple #6
0
        internal static int GetDuration(Obj_AI_BaseTeleportEventArgs args)
        {
            switch (GetType(args))
            {
            case TeleportType.Recall: return(GetRecallDuration(args));

            default: return(3500);
            }
        }
Exemple #7
0
        internal static TeleportType GetType(Obj_AI_BaseTeleportEventArgs args)
        {
            switch (args.DisplayName)
            {
            case "Recall": return(TeleportType.Recall);

            default: return(TeleportType.Recall);
            }
        }
Exemple #8
0
        public static bool IsRecalling(this Obj_AI_BaseTeleportEventArgs args)
        {
            if (args.Sender != Player)
            {
                return(false);
            }

            return(args.Name.Equals("recall") || args.Name.Equals("RecallImproved") || args.Name.Equals("OdinRecall") ||
                   args.Name.Equals("OdinRecallImproved") || args.Name.Equals("SuperRecall") ||
                   args.Name.Equals("SuperRecallImproved"));
        }
Exemple #9
0
        private static void Obj_AI_Base_OnTeleport(Obj_AI_Base sender, Obj_AI_BaseTeleportEventArgs e)
        {
            if (!MenuManager.Root["Enable"].Enabled || sender != UtilityManager.Player ||
                !e.IsRecalling())
            {
                return;
            }

            _recallingTick = Game.TickCount + e.GetRecallDuration();
            UtilityManager.Print("Recall detected! (Actual Tick: " + Game.TickCount + " | End Tick: " + _recallingTick +
                                 ")");
        }
Exemple #10
0
 private void OnTeleport(Obj_AI_Base sender, Obj_AI_BaseTeleportEventArgs args)
 {
     if (args.Name.Equals("recall", StringComparison.InvariantCultureIgnoreCase) && !sender.IsAlly)
     {
         _recalls.Add(new Recall(Game.ClockTime, Game.ClockTime + 8, sender as Obj_AI_Hero));
     }
     else if (args.Name.Equals("SuperRecall", StringComparison.InvariantCultureIgnoreCase) && !sender.IsAlly)
     {
         _recalls.Add(new Recall(Game.ClockTime, Game.ClockTime + 4, sender as Obj_AI_Hero));
     }
     else if (string.IsNullOrWhiteSpace(args.Name))
     {
         _recalls.RemoveAll(it => it?.Caster?.NetworkId == sender?.NetworkId);
     }
 }
Exemple #11
0
        internal static int GetDuration(Obj_AI_BaseTeleportEventArgs args)
        {
            switch (GetType(args))
            {
            case TeleportType.Shen: return(3000);

            case TeleportType.Teleport: return(4500);

            case TeleportType.TwistedFate: return(1500);

            case TeleportType.Recall: return(GetRecallDuration(args));

            default: return(3500);
            }
        }
Exemple #12
0
        internal static TeleportType GetType(Obj_AI_BaseTeleportEventArgs args)
        {
            switch (args.DisplayName)
            {
            case "Recall": return(TeleportType.Recall);

            case "Teleport": return(TeleportType.Teleport);

            case "Gate": return(TeleportType.TwistedFate);

            case "Shen": return(TeleportType.Shen);

            default: return(TeleportType.Recall);
            }
        }
Exemple #13
0
        private static void ObjAiHeroOnOnTeleport(Obj_AI_Base sender, Obj_AI_BaseTeleportEventArgs e)
        {
            if (sender != null && sender.IsValid && sender.IsEnemy && sender.GetType() == typeof(Obj_AI_Hero) &&
                e.DisplayName != null)
            {
                Obj_AI_Hero hero = (Obj_AI_Hero)sender;
                switch (e.DisplayName)
                {
                case "Recall":
                    RecallingChampions.Add(hero.ChampionName);
                    break;

                case "":
                    RecallingChampions.Remove(hero.ChampionName);
                    break;
                }
            }
        }
        private void ObjAiBaseOnOnTeleport(Obj_AI_Base sender, Obj_AI_BaseTeleportEventArgs args)
        {
            if (sender is Obj_AI_Hero hero)
            {
                if (!hero.IsEnemy)
                {
                    return;
                }
                switch (args.Name)
                {
                case "recall":
                    Recalls.Add(new Recall(Game.ClockTime, Game.ClockTime + 8f, hero));
                    break;

                case "SuperRecall":
                    Recalls.Add(new Recall(Game.ClockTime, Game.ClockTime + 4f, hero));
                    break;

                case "":
                    Recalls.RemoveAll(x => x.Sender.NetworkId == hero.NetworkId);
                    break;
                }
            }
        }
 /// <summary>
 /// Called when [teleport].
 /// </summary>
 /// <param name="sender">The sender.</param>
 /// <param name="e">The <see cref="Obj_AI_BaseTeleportEventArgs"/> instance containing the event data.</param>
 protected virtual void OnTeleport(Obj_AI_Base sender, Obj_AI_BaseTeleportEventArgs e)
 {
     return;
 }