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); }
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; } } }
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); } }
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); } }
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); }
internal static int GetDuration(Obj_AI_BaseTeleportEventArgs args) { switch (GetType(args)) { case TeleportType.Recall: return(GetRecallDuration(args)); default: return(3500); } }
internal static TeleportType GetType(Obj_AI_BaseTeleportEventArgs args) { switch (args.DisplayName) { case "Recall": return(TeleportType.Recall); default: return(TeleportType.Recall); } }
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")); }
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 + ")"); }
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); } }
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); } }
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); } }
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; }