private void SetSpierdalankoUnc(float sec) { spierdalanko = Game.Time + sec; if (active) return; LogicSelector.MainLogics returnT = current.SetLogic(LogicSelector.MainLogics.SurviLogic); if (returnT != LogicSelector.MainLogics.SurviLogic) returnTo = returnT; }
private void SetSpierdalanko(float sec) { spierdalanko = Game.Time + sec; if (active || (current.current == LogicSelector.MainLogics.CombatLogic && AutoWalker.p.HealthPercent() > 13)) return; LogicSelector.MainLogics returnT = current.SetLogic(LogicSelector.MainLogics.SurviLogic); if (returnT != LogicSelector.MainLogics.SurviLogic) returnTo = returnT; }
private void SetSpierdalankoUnc(float sec) { spierdalanko = Game.Time + sec; if (active) { return; } LogicSelector.MainLogics returnT = current.SetLogic(LogicSelector.MainLogics.SurviLogic); if (returnT != LogicSelector.MainLogics.SurviLogic) { returnTo = returnT; } }
private void SetSpierdalanko(float sec) { spierdalanko = Game.Time + sec; if (active || (current.current == LogicSelector.MainLogics.CombatLogic && AutoWalker.p.HealthPercent() > 13)) { return; } LogicSelector.MainLogics returnT = current.SetLogic(LogicSelector.MainLogics.SurviLogic); if (returnT != LogicSelector.MainLogics.SurviLogic) { returnTo = returnT; } }
private void Game_OnTick(EventArgs args) { if (_current.Current == LogicSelector.MainLogics.SurviLogic) { return; } AIHeroClient har = null; AIHeroClient victim = null; if (_current.SurviLogic.DangerValue < -15000) { victim = EntityManager.Heroes.Enemies.Where( vic => !vic.IsZombie && vic.Distance(AutoWalker.P) < vic.BoundingRadius + AutoWalker.P.AttackRange + 450 && vic.IsVisible() && vic.Health > 0 && _current.LocalAwareness.MyStrength() / _current.LocalAwareness.HeroStrength(vic) > 1.5) .OrderBy(v => v.Health) .FirstOrDefault(); } if (victim == null || AutoWalker.P.GetNearestTurret().Distance(AutoWalker.P) > 1100) { har = EntityManager.Heroes.Enemies.Where( h => !h.IsZombie && h.Distance(AutoWalker.P) < AutoWalker.P.AttackRange + h.BoundingRadius + 50 && h.IsVisible() && h.HealthPercent() > 0).OrderBy(h => h.Distance(AutoWalker.P)).FirstOrDefault(); } if ((victim != null || har != null) && !_active) { LogicSelector.MainLogics returnT = _current.SetLogic(LogicSelector.MainLogics.CombatLogic); if (returnT != LogicSelector.MainLogics.CombatLogic) { _returnTo = returnT; } } if (!_active) { return; } if (victim == null && har == null) { _current.SetLogic(_returnTo); return; } if (victim != null) { _current.MyChamp.Combo(victim); Vector3 vicPos = Prediction.Position.PredictUnitPosition(victim, 500).To3D(); Vector3 posToWalk = AutoWalker.P.Position.Away(vicPos, (victim.BoundingRadius + _current.MyChamp.OptimalMaxComboDistance - 30) * Math.Min(_current.LocalAwareness.HeroStrength(victim) / _current.LocalAwareness.MyStrength() * 1.6f, 1)); if (NavMesh.GetCollisionFlags(posToWalk).HasFlag(CollisionFlags.Wall)) { posToWalk = vicPos.Extend(_current.PushLogic.MyTurret, (victim.BoundingRadius + AutoWalker.P.AttackRange - 30) * Math.Min( _current.LocalAwareness.HeroStrength(victim) / _current.LocalAwareness.MyStrength() * 2f, 1)) .To3DWorld(); } Obj_AI_Turret nearestEnemyTurret = posToWalk.GetNearestTurret(); if (victim.Health < 10 + 4 * AutoWalker.P.Level && EntityManager.Heroes.Allies.Any(al => !al.IsDead() && al.Distance(vicPos) < 550)) { AutoWalker.UseIgnite(victim); } if (victim.Health + victim.HPRegenRate * 2.5f < 50 + 20 * AutoWalker.P.Level && vicPos.Distance(nearestEnemyTurret) < 1350) { AutoWalker.UseIgnite(victim); } _lastMode = "combo"; if (AutoWalker.P.Distance(nearestEnemyTurret) < 950 + AutoWalker.P.BoundingRadius) { if (victim.Health > AutoWalker.P.GetAutoAttackDamage(victim) + 15 || victim.Distance(AutoWalker.P) > AutoWalker.P.AttackRange + victim.BoundingRadius - 20) { _lastMode = "enemy under turret, ignoring"; _current.SetLogic(_returnTo); return; } _lastMode = "combo under turret"; } Orbwalker.DisableAttacking = _current.MyChamp.MaxDistanceForAa < AutoWalker.P.Distance(victim) + victim.BoundingRadius + 10; AutoWalker.SetMode(Orbwalker.ActiveModes.Combo); AutoWalker.WalkTo(posToWalk); if (AutoWalker.Ghost != null && AutoWalker.Ghost.IsReady() && AutoWalker.P.HealthPercent() / victim.HealthPercent() > 2 && victim.Distance(AutoWalker.P) > AutoWalker.P.AttackRange + victim.BoundingRadius + 150 && victim.Distance(victim.Position.GetNearestTurret()) > 1500) { AutoWalker.Ghost.Cast(); } if (ObjectManager.Player.HealthPercent() < 35) { if (AutoWalker.P.HealthPercent < 25) { AutoWalker.UseSeraphs(); } if (AutoWalker.P.HealthPercent < 20) { AutoWalker.UseBarrier(); } AutoWalker.UseHPot(); } } else { Vector3 harPos = Prediction.Position.PredictUnitPosition(har, 500).To3D(); harPos = AutoWalker.P.Position.Away(harPos, _current.MyChamp.HarassDistance + har.BoundingRadius - 20); _lastMode = "harass"; Obj_AI_Turret tu = harPos.GetNearestTurret(); AutoWalker.SetMode(Orbwalker.ActiveModes.Harass); if (harPos.Distance(tu) < 1000) { if (harPos.Distance(tu) < 850 + AutoWalker.P.BoundingRadius) { AutoWalker.SetMode(Orbwalker.ActiveModes.Flee); } harPos = AutoWalker.P.Position.Away(tu.Position, 1090); _lastMode = "harass under turret"; /*if (harPos.Distance(AutoWalker.MyNexus) > tu.Distance(AutoWalker.MyNexus)) * harPos = * tu.Position.Extend(AutoWalker.MyNexus, 1050 + AutoWalker.p.BoundingRadius).To3DWorld();*/ } _current.MyChamp.Harass(har); AutoWalker.WalkTo(harPos); } }
private void Game_OnTick(EventArgs args) { if (current.current == LogicSelector.MainLogics.SurviLogic) return; AIHeroClient har = null; AIHeroClient victim = null; if (current.surviLogic.dangerValue < -15000) victim = EntityManager.Heroes.Enemies.Where( vic => !vic.IsZombie && vic.Distance(AutoWalker.p) < vic.BoundingRadius + AutoWalker.p.AttackRange + 450 && vic.IsVisible() && vic.Health > 0 && current.localAwareness.MyStrength()/current.localAwareness.HeroStrength(vic) > 1.5) .OrderBy(v => v.Health) .FirstOrDefault(); if (victim == null || AutoWalker.p.GetNearestTurret().Distance(AutoWalker.p) > 1100) { har = EntityManager.Heroes.Enemies.Where( h => !h.IsZombie && h.Distance(AutoWalker.p) < AutoWalker.p.AttackRange + h.BoundingRadius + 50 && h.IsVisible() && h.HealthPercent() > 0).OrderBy(h => h.Distance(AutoWalker.p)).FirstOrDefault(); } if ((victim != null || har != null) && !active) { LogicSelector.MainLogics returnT = current.SetLogic(LogicSelector.MainLogics.CombatLogic); if (returnT != LogicSelector.MainLogics.CombatLogic) returnTo = returnT; } if (!active) return; if (victim == null && har == null) { current.SetLogic(returnTo); return; } if (victim != null) { current.myChamp.Combo(victim); Vector3 vicPos = Prediction.Position.PredictUnitPosition(victim, 500).To3D(); Vector3 posToWalk = AutoWalker.p.Position.Away(vicPos, (victim.BoundingRadius + current.myChamp.OptimalMaxComboDistance - 30)* Math.Min(current.localAwareness.HeroStrength(victim)/current.localAwareness.MyStrength()*1.6f, 1)); if (NavMesh.GetCollisionFlags(posToWalk).HasFlag(CollisionFlags.Wall)) { posToWalk = vicPos.Extend(current.pushLogic.myTurret, (victim.BoundingRadius + AutoWalker.p.AttackRange - 30)* Math.Min( current.localAwareness.HeroStrength(victim)/current.localAwareness.MyStrength()*2f, 1)) .To3DWorld(); } Obj_AI_Turret nearestEnemyTurret = posToWalk.GetNearestTurret(); if (victim.Health < 10 + 4 * AutoWalker.p.Level && EntityManager.Heroes.Allies.Any(al=>!al.IsDead()&&al.Distance(vicPos)<550)) AutoWalker.UseIgnite(victim); if (victim.Health + victim.HPRegenRate * 2.5f < 50 + 20 * AutoWalker.p.Level && vicPos.Distance(nearestEnemyTurret)<1350) AutoWalker.UseIgnite(victim); lastMode = "combo"; if (AutoWalker.p.Distance(nearestEnemyTurret) < 950 + AutoWalker.p.BoundingRadius) { if (victim.Health > AutoWalker.p.GetAutoAttackDamage(victim) + 15 || victim.Distance(AutoWalker.p) > AutoWalker.p.AttackRange + victim.BoundingRadius - 20) { lastMode = "enemy under turret, ignoring"; current.SetLogic(returnTo); return; } lastMode = "combo under turret"; } Orbwalker.DisableAttacking = current.myChamp.MaxDistanceForAA < AutoWalker.p.Distance(victim) + victim.BoundingRadius+10; AutoWalker.SetMode(Orbwalker.ActiveModes.Combo); AutoWalker.WalkTo(posToWalk); if (AutoWalker.Ghost != null && AutoWalker.Ghost.IsReady() && AutoWalker.p.HealthPercent()/victim.HealthPercent() > 2 && victim.Distance(AutoWalker.p) > AutoWalker.p.AttackRange + victim.BoundingRadius + 150 && victim.Distance(victim.Position.GetNearestTurret()) > 1500) AutoWalker.Ghost.Cast(); if (ObjectManager.Player.HealthPercent() < 35 && !Player.Instance.IsInShopRange()) { if (AutoWalker.p.HealthPercent < 25) AutoWalker.UseSeraphs(); if (AutoWalker.p.HealthPercent < 20) AutoWalker.UseBarrier(); AutoWalker.UseHPot(); } } else { Vector3 harPos = Prediction.Position.PredictUnitPosition(har, 500).To3D(); harPos = AutoWalker.p.Position.Away(harPos, current.myChamp.HarassDistance + har.BoundingRadius - 20); lastMode = "harass"; Obj_AI_Turret tu = harPos.GetNearestTurret(); AutoWalker.SetMode(Orbwalker.ActiveModes.Harass); if (harPos.Distance(tu) < 1000) { if (harPos.Distance(tu) < 850 + AutoWalker.p.BoundingRadius) AutoWalker.SetMode(Orbwalker.ActiveModes.Flee); harPos = AutoWalker.p.Position.Away(tu.Position, 1090); lastMode = "harass under turret"; /*if (harPos.Distance(AutoWalker.MyNexus) > tu.Distance(AutoWalker.MyNexus)) harPos = tu.Position.Extend(AutoWalker.MyNexus, 1050 + AutoWalker.p.BoundingRadius).To3DWorld();*/ } current.myChamp.Harass(har); AutoWalker.WalkTo(harPos); } }
private void Game_OnUpdate(EventArgs args) { if (current.current == LogicSelector.MainLogics.SurviLogic) return; AIHeroClient har = null; /* TODO Remove old logic if worse * AIHeroClient victim = EntityManager.Heroes.Enemies.Where( vic => vic.Distance(AutoWalker.p) < vic.BoundingRadius + AutoWalker.p.AttackRange + 450 && vic.IsVisible() && vic.Health > 0 && AutoWalker.p.HealthPercent/vic.HealthPercent > 1.3 && (AutoWalker.p.Distance(AutoWalker.p.GetNearestTurret()) > 1100 || (AutoWalker.p.HealthPercent > 40 && vic.HealthPercent < 10))) .OrderBy(vic => vic.HealthPercent) .FirstOrDefault(); if (victim != null &&( EntityManager.Heroes.Enemies.Count( def => def.NetworkId != victim.NetworkId && def.HealthPercent > AutoWalker.p.HealthPercent && def.IsHPBarRendered && def.Distance(victim) < 600 && def.Distance(AutoWalker.p) < 600))> EntityManager.Heroes.Allies.Count(ally => ally.HealthPercent > 5 && ally.IsVisible() && ally.Distance(AutoWalker.p) < 500 && ally.Distance(victim) < 500)) victim = null;*/ AIHeroClient victim = null; if (current.surviLogic.dangerValue < -15000) victim = EntityManager.Heroes.Enemies.Where( vic => vic.Distance(AutoWalker.p) < vic.BoundingRadius + AutoWalker.p.AttackRange + 450 && vic.IsVisible() && vic.Health > 0 && current.localAwareness.MyStrength()/current.localAwareness.HeroStrength(vic) > 1.5) .OrderBy(v => v.Health) .FirstOrDefault(); if (victim == null || AutoWalker.p.GetNearestTurret().Distance(AutoWalker.p) > 1100) { har = EntityManager.Heroes.Enemies.Where( h => h.Distance(AutoWalker.p) < AutoWalker.p.AttackRange + h.BoundingRadius + 50 && h.IsVisible() && h.HealthPercent > 0).OrderBy(h => h.Distance(AutoWalker.p)).FirstOrDefault(); } if ((victim != null || har != null) && !active) { LogicSelector.MainLogics returnT = current.SetLogic(LogicSelector.MainLogics.CombatLogic); if (returnT != LogicSelector.MainLogics.CombatLogic) returnTo = returnT; } if (!active) return; if (victim == null && har == null) { current.SetLogic(returnTo); return; } if (victim != null) { current.myChamp.Combo(victim); Vector3 vicPos=Prediction.Position.PredictUnitPosition(victim, 500).To3D(); Vector3 posToWalk = vicPos.Extend(AutoWalker.myNexus, (victim.BoundingRadius + AutoWalker.p.AttackRange - 30)* Math.Min(current.localAwareness.HeroStrength(victim)/current.localAwareness.MyStrength()*2f, 1)) .To3DWorld(); Obj_AI_Turret nearestEnemyTurret = posToWalk.GetNearestTurret(); lastMode = "combo"; if ( AutoWalker.p.Distance(nearestEnemyTurret)<950+AutoWalker.p.BoundingRadius) { if (victim.Health > AutoWalker.p.GetAutoAttackDamage(victim) + 15||victim.Distance(AutoWalker.p)>AutoWalker.p.AttackRange+victim.BoundingRadius-20) { lastMode = "enemy under turret, ignoring"; current.SetLogic(returnTo); return; } lastMode = "combo under turret"; } Orbwalker.ActiveModesFlags = Orbwalker.ActiveModes.Combo; AutoWalker.WalkTo(posToWalk); if (AutoWalker.Ghost != null && AutoWalker.Ghost.IsReady() && AutoWalker.p.HealthPercent/victim.HealthPercent > 2 && victim.Distance(AutoWalker.p) > AutoWalker.p.AttackRange + victim.BoundingRadius + 100 && victim.Distance(victim.Position.GetNearestTurret()) > 1500) AutoWalker.Ghost.Cast(); } else { Vector3 harPos = Prediction.Position.PredictUnitPosition(har, 500).To3D(); harPos=harPos.Extend(AutoWalker.p.Position, AutoWalker.p.AttackRange + har.BoundingRadius-20).To3D(); lastMode = "harass"; Obj_AI_Turret tu = harPos.GetNearestTurret(); if (harPos.Distance(tu) < 1090) { harPos = tu.Position.Extend(harPos, 1090).To3DWorld(); lastMode = "harass under turret"; if (harPos.Distance(AutoWalker.myNexus) > tu.Distance(AutoWalker.myNexus)) harPos = tu.Position.Extend(AutoWalker.myNexus, 1050 + AutoWalker.p.BoundingRadius).To3DWorld(); } Orbwalker.ActiveModesFlags = Orbwalker.ActiveModes.Harass; current.myChamp.Harass(har); AutoWalker.WalkTo(harPos); } }
private void Game_OnTick(EventArgs args) { if (current.current == LogicSelector.MainLogics.SurviLogic) { return; } AIHeroClient har = null; AIHeroClient victim = null; if (current.surviLogic.dangerValue < -20000) { victim = EntityManager.Heroes.Enemies.Where( vic => !vic.IsZombie && vic.Distance(AutoWalker.p) < vic.BoundingRadius + AutoWalker.p.AttackRange + 450 && vic.IsVisible() && vic.Health > 0 && current.localAwareness.MyStrength() / current.localAwareness.HeroStrength(vic) > 1.5) .OrderBy(v => v.Health) .FirstOrDefault(); } if (victim == null || AutoWalker.p.GetNearestTurret().Distance(AutoWalker.p) > 2000) { har = EntityManager.Heroes.Enemies.Where( h => !h.IsZombie && h.Distance(AutoWalker.p) < AutoWalker.p.AttackRange + h.BoundingRadius + 50 && h.IsVisible() && h.HealthPercent() > 0).OrderBy(h => h.Distance(AutoWalker.p)).FirstOrDefault(); } if ((victim != null || har != null) && !active) { var returnT = current.SetLogic(LogicSelector.MainLogics.CombatLogic); if (returnT != LogicSelector.MainLogics.CombatLogic) { returnTo = returnT; } } if (!active) { return; } if (victim == null && har == null) { current.SetLogic(returnTo); return; } if (victim != null) { if (MainMenu.GetMenu("AB").Get <CheckBox>("toUseOurChampLogic").CurrentValue) { current.myChamp.Combo(victim); } var vicPos = Prediction.Position.PredictUnitPosition(victim, 500).To3D(); var posToWalk = AutoWalker.p.Position.Away(vicPos, (victim.BoundingRadius + current.myChamp.OptimalMaxComboDistance - 30) * Math.Min(current.localAwareness.HeroStrength(victim) / current.localAwareness.MyStrength() * 1.6f, 1)); if (NavMesh.GetCollisionFlags(posToWalk).HasFlag(CollisionFlags.Wall)) { posToWalk = vicPos.Extend(current.pushLogic.myTurret, (victim.BoundingRadius + AutoWalker.p.AttackRange - 30) * Math.Min( current.localAwareness.HeroStrength(victim) / current.localAwareness.MyStrength() * 2f, 1)) .To3DWorld(); } var nearestEnemyTurret = posToWalk.GetNearestTurret(); if (victim.Health < 1000 + 4 * AutoWalker.p.Level && EntityManager.Heroes.Allies.Any(al => !al.IsDead() && al.Distance(vicPos) < 1050)) { AutoWalker.UseIgnite(victim); } if (victim.Health + victim.HPRegenRate * 2.5f < 500 + 20 * AutoWalker.p.Level && vicPos.Distance(nearestEnemyTurret) < 1850) { AutoWalker.UseIgnite(victim); } lastMode = "combo"; if (AutoWalker.p.Distance(nearestEnemyTurret) < 1350 + AutoWalker.p.BoundingRadius) { if (victim.Health + 200 > AutoWalker.p.GetAutoAttackDamage(victim) + 15 || victim.Distance(AutoWalker.p) > AutoWalker.p.AttackRange + victim.BoundingRadius - 40) { lastMode = "enemy under turret, ignoring"; current.SetLogic(returnTo); return; } lastMode = "combo under turret"; } AutoWalker.SetMode(Orbwalker.ActiveModes.Combo); AutoWalker.WalkTo(posToWalk); if (AutoWalker.HasGhost && AutoWalker.Ghost.IsReady() && AutoWalker.p.HealthPercent() / victim.HealthPercent() > 1.3 && victim.Distance(AutoWalker.p) > AutoWalker.p.AttackRange + victim.BoundingRadius + 50 && victim.Distance(victim.Position.GetNearestTurret()) > 2500) { AutoWalker.Ghost.Cast(); } if (ObjectManager.Player.HealthPercent() < 5) { if (AutoWalker.p.HealthPercent < 5) { AutoWalker.UseSeraphs(); } if (AutoWalker.p.HealthPercent < 2) { AutoWalker.UseBarrier(); } AutoWalker.UseHPot(); } if (Shop.CanShop == false) { var hppotval = Program.hpvaluePot; if (ObjectManager.Player.HealthPercent() < hppotval) { AutoWalker.UseHPot(); } } } else { var harPos = Prediction.Position.PredictUnitPosition(har, 500).To3D(); harPos = AutoWalker.p.Position.Away(harPos, current.myChamp.HarassDistance + har.BoundingRadius - 20); lastMode = "harass"; var tu = harPos.GetNearestTurret(); AutoWalker.SetMode(Orbwalker.ActiveModes.Harass); if (harPos.Distance(tu) < 1200) { if (harPos.Distance(tu) < 850 + AutoWalker.p.BoundingRadius) { AutoWalker.SetMode(Orbwalker.ActiveModes.Flee); } harPos = AutoWalker.p.Position.Away(tu.Position, 1090); lastMode = "harass under turret"; /*if (harPos.Distance(AutoWalker.MyNexus) > tu.Distance(AutoWalker.MyNexus)) * harPos = * tu.Position.Extend(AutoWalker.MyNexus, 1050 + AutoWalker.p.BoundingRadius).To3DWorld();*/ } if (MainMenu.GetMenu("AB").Get <CheckBox>("toUseOurChampLogic").CurrentValue) { current.myChamp.Harass(har); } AutoWalker.WalkTo(harPos); } }