private void OnTeleport(Obj_AI_Base sender, Teleport.TeleportEventArgs args) { // Only check for enemy Heroes and recall teleports if (sender.Type == GameObjectType.AIHeroClient && sender.IsEnemy && args.Type == TeleportType.Recall) { var print = PrintRecallStatus.CurrentValue; switch (args.Status) { case TeleportStatus.Start: RecallingHeroes[sender.NetworkId] = new Tuple <int, int>(Core.GameTickCount, args.Duration); if (print) { Chat.Print("<font color='#FF0000'>" + sender.ChampionName + "</font> has started a recall."); } break; case TeleportStatus.Abort: RecallingHeroes.Remove(sender.NetworkId); if (print) { Chat.Print("<font color='#FF0000'>" + sender.ChampionName + "</font> has aborted a recall."); } break; case TeleportStatus.Finish: LastSeen[sender.NetworkId] = Core.GameTickCount; LastSeenPosition[sender.NetworkId] = EnemySpawnPoint; LastSeenRange[sender.NetworkId] = 0; RecallingHeroes.Remove(sender.NetworkId); if (print) { Chat.Print("<font color='#FF0000'>" + sender.ChampionName + "</font> has finished a recall."); } break; } } }
private void OnTeleport(Obj_AI_Base sender, Teleport.TeleportEventArgs args) { // Only check for enemy Heroes and recall teleports if (sender.Type == GameObjectType.AIHeroClient && sender.IsEnemy && args.Type == TeleportType.Recall) { switch (args.Status) { case TeleportStatus.Start: RecallingHeroes[sender.NetworkId] = new Tuple <int, int>(Core.GameTickCount, args.Duration); break; case TeleportStatus.Abort: RecallingHeroes.Remove(sender.NetworkId); break; case TeleportStatus.Finish: LastSeen[sender.NetworkId] = Core.GameTickCount; LastSeenPosition[sender.NetworkId] = EnemySpawnPoint; LastSeenRange[sender.NetworkId] = 0; RecallingHeroes.Remove(sender.NetworkId); break; } } }