private static void Game_OnTick(EventArgs args) { if (!Flags.HasFlag(ChampionTrackerFlags.VisibilityTracker)) { return; } if (Game.Time * 1000 - _lastTick < 25) { return; } foreach (var visibilityTracker in ChampionVisibility.Where(x => Game.Time * 1000 - x.LastVisibleGameTime * 1000 < 1000)) { foreach (var unit in StaticCacheProvider.GetChampions(CachedEntityType.EnemyHero, x => (x.Hero == visibilityTracker.Hero.Hero) && !visibilityTracker.Hero.IsDead && !visibilityTracker.Hero.IsZombie && !visibilityTracker.Hero.IsHPBarRendered)) { if ((unit.Hero == Champion.KogMaw) && unit.Buffs.Any(x => x.Name.ToLowerInvariant() == "kogmawicathiansurprise")) { return; } OnLoseVisibility?.Invoke(null, new OnLoseVisibilityEventArgs(unit, visibilityTracker.LastVisibleGameTime, visibilityTracker.LastPosition, GetVisibilityTrackerData(unit))); } } foreach (var aiHeroClient in StaticCacheProvider.GetChampions(CachedEntityType.EnemyHero, x => !x.IsDead && x.IsHPBarRendered)) { var hero = ChampionVisibility.FirstOrDefault(x => x.Hero.NetworkId == aiHeroClient.NetworkId); if (hero == null) { continue; } hero.LastPosition = aiHeroClient.Position; hero.LastVisibleGameTime = Game.Time; hero.LastPath = aiHeroClient.Path.Last(); hero.LastHealth = aiHeroClient.Health; hero.LastHealthPercent = aiHeroClient.HealthPercent; hero.LastBuffs = aiHeroClient.Buffs; } _lastTick = Game.Time * 1000; }
private static void Game_OnTick(EventArgs args) { if (!Flags.HasFlag(ChampionTrackerFlags.VisibilityTracker)) { return; } if (Game.Time * 1000 - _lastTick < 25) { return; } foreach (var visibilityTracker in ChampionVisibility.Where(x => Game.Time * 1000 - x.LastVisibleGameTime * 1000 < 1000)) { foreach (var unit in EntityManager.Heroes.Enemies.Where( x => x.Hero == visibilityTracker.Hero.Hero && !visibilityTracker.Hero.IsDead && !visibilityTracker.Hero.IsHPBarRendered)) { OnLoseVisibility?.Invoke(null, new OnLoseVisibilityEventArgs(unit, visibilityTracker.LastVisibleGameTime, visibilityTracker.LastPosition)); } } foreach (var aiHeroClient in EntityManager.Heroes.Enemies.Where(x => !x.IsDead && x.IsHPBarRendered)) { var hero = ChampionVisibility.FirstOrDefault(x => x.Hero.NetworkId == aiHeroClient.NetworkId); if (hero != null) { hero.LastPosition = aiHeroClient.Position; hero.LastVisibleGameTime = Game.Time; hero.LastPath = aiHeroClient.Path.Last(); hero.LastHealth = aiHeroClient.Health; hero.LastHealthPercent = aiHeroClient.HealthPercent; } } _lastTick = Game.Time * 1000; }