public bool ExecuteNextAction(ActionQueueList list) { var rnd = new Random(); if (list.Count > 0) { if (Game.Time > list[0].Time + 2F) { list.Remove(list[0]); return true; } if (list[0].PreConditionFunc.Invoke()) { if (!MenuManager.IDDQD) Core.DelayAction(list[0].ComboAction.Invoke, rnd.Next(50, 125)); else list[0].ComboAction.Invoke(); } if (list[0].ConditionToRemoveFunc.Invoke() || Game.Time > list[0].Time + 1.5F) { list.Remove(list[0]); if (list.Count > 0) { var nextItem = list[0]; nextItem.Time = Game.Time; list[0] = nextItem; } } return true; } return false; }
public bool ExecuteNextAction(ActionQueueList list) { if (list.Count > 0) { if (Game.Time > list[0].Time + 2F) { list.Remove(list[0]); return true; } if (list[0].PreConditionFunc.Invoke()) { list[0].ComboAction.Invoke(); } if (list[0].ConditionToRemoveFunc.Invoke() || Game.Time > list[0].Time + 1.5F) { list.Remove(list[0]); if (list.Count > 0) { var nextItem = list[0]; nextItem.Time = Game.Time; list[0] = nextItem; } } return true; } else { return false; } }
public Brain() { actionManager = new ActionManager(); comboQueue = new ActionQueueList(); lastHitQueue = new ActionQueueList(); harassQueue = new ActionQueueList(); laneQueue = new ActionQueueList(); jungleQueue = new ActionQueueList(); }
public void EnqueueAction(ActionQueueList list, Func<bool> preCondition, Action comboAction, Func<bool> conditionToRemove) { list.Add(new ActionQueueItem() { Time = Game.Time, PreConditionFunc = preCondition, ComboAction = comboAction, ConditionToRemoveFunc = conditionToRemove }); }
public override void InitVariables() { Selector.Init(); Q = new Spell.Skillshot(SpellSlot.Q, 900, SkillShotType.Circular, 250, int.MaxValue); W = new Spell.Skillshot(SpellSlot.W, 550, SkillShotType.Linear, 500, int.MaxValue); E = new Spell.Active(SpellSlot.E, 290); R = new Spell.Targeted(SpellSlot.R, 625); ActionQueue = new ActionQueue(); ComboQueue = new ActionQueueList(); InitMenu(); }
public ZedAntiGapCloser(ZedMenu menu, ZedSpells spells, ZedShadows shadows) { zedMenu = menu; w = spells.W; e = spells.E; this.shadows = shadows; player = ObjectManager.Player; actionQueue = new ActionQueue(); antiGapCloserList = new ActionQueueList(); AntiGapcloser.OnEnemyGapcloser += AntiGapcloser_OnEnemyGapcloser; }
public ZedCore(ZedSpells zedSpells, Orbwalking.Orbwalker zedOrbwalker, ZedMenu zedMenu, ZedShadows zedShadows) { q = zedSpells.Q; w = zedSpells.W; e = zedSpells.E; r = zedSpells.R; player = ObjectManager.Player; ZedOrbwalker = zedOrbwalker; this.zedMenu = zedMenu; actionQueue = new ActionQueue(); harasQueue = new ActionQueueList(); comboQueue = new ActionQueueList(); zedItems = new ZedOffensiveItems(zedMenu); energy = new ZedEnergyChecker(zedMenu); shadows = zedShadows; Game.OnUpdate += Game_OnUpdate; }
public OlafCore(OlafSpells olafSpells, Orbwalking.Orbwalker olafOrbwalker, OlafMenu olafMenu) { q = olafSpells.Q; w = olafSpells.W; e = olafSpells.E; r = olafSpells.R; player = ObjectManager.Player; this.olafOrbwalker = olafOrbwalker; this.olafMenu = olafMenu; actionQueue = new ActionQueue(); harasQueue = new ActionQueueList(); comboQueue = new ActionQueueList(); laneClearQueue = new ActionQueueList(); autoAttackCheck = new ActionQueueCheckAutoAttack(); olafItems = new OlafOffensiveItems(olafMenu); Game.OnUpdate += Game_OnUpdate; }
public bool ExecuteNextAction(ActionQueueList list) { if (list.Count > 0) { if (list[0].PreConditionFunc.Invoke()) { list[0].ComboAction.Invoke(); } if (list[0].ConditionToRemoveFunc.Invoke() || Game.Time > list[0].Time + 0.75F) { list.Remove(list[0]); } return true; } else { return false; } }
public ZedCore(ZedSpells zedSpells, Orbwalking.Orbwalker zedOrbwalker, ZedMenu zedMenu, ZedShadows zedShadows, ZedEnergyChecker zedEnergy) { q = zedSpells.Q; w = zedSpells.W; e = zedSpells.E; r = zedSpells.R; player = ObjectManager.Player; ZedOrbwalker = zedOrbwalker; this.zedMenu = zedMenu; energy = zedEnergy; actionQueue = new ActionQueue(); harasQueue = new ActionQueueList(); comboQueue = new ActionQueueList(); laneClearQueue = new ActionQueueList(); lastHitQueue = new ActionQueueList(); checkAutoAttack = new ActionQueueCheckAutoAttack(); zedItems = new ZedOffensiveItems(zedMenu); shadows = zedShadows; zedComboSelector = new ZedComboSelector(zedMenu); Game.OnUpdate += Game_OnUpdate; }
public ZedCore(ZedSpells zedSpells, Orbwalking.Orbwalker zedOrbwalker, ZedMenu zedMenu, ZedShadows zedShadows, ZedEnergyChecker zedEnergy) { q = zedSpells.Q; w = zedSpells.W; e = zedSpells.E; r = zedSpells.R; player = ObjectManager.Player; ZedOrbwalker = zedOrbwalker; this.zedMenu = zedMenu; energy = zedEnergy; actionQueue = new ActionQueue(); harasQueue = new ActionQueueList(); comboQueue = new ActionQueueList(); laneClearQueue = new ActionQueueList(); lastHitQueue = new ActionQueueList(); checkAutoAttack = new ActionQueueCheckAutoAttack(); zedItems = new ZedOffensiveItems(zedMenu); shadows = zedShadows; zedComboSelector = new ZedComboSelector(zedMenu); Game.OnUpdate += Game_OnUpdate; }
public void LaneClear(ActionQueue actionQueue, ActionQueueList laneClearQueue) { Obj_AI_Base shadow = GetShadows().FirstOrDefault(); if (!energy.ReadyToLaneClear || shadow == null) { return; } if (e.UseOnLaneClear && e.IsReady()) { int extendedWillHit = MinionManager.GetMinions(shadow.Position, e.Range).Count(); int shortenWillHit = MinionManager.GetMinions(e.Range).Count; int param = zedMenu.GetParamSlider("koreanzed.laneclearmenu.useeif"); if (extendedWillHit >= param || shortenWillHit >= param) { actionQueue.EnqueueAction( laneClearQueue, () => true, () => e.Cast(), () => !e.IsReady()); //Console.WriteLine("shadow lc e 1"); return; } } if (q.UseOnLaneClear && q.IsReady()) { int extendedWillHit = 0; Vector3 extendedFarmLocation = Vector3.Zero; foreach (Obj_AI_Base objAiBase in MinionManager.GetMinions(shadow.Position, q.Range)) { var colisionList = q.GetCollision( shadow.Position.To2D(), new List <Vector2>() { objAiBase.Position.To2D() }, w.Delay); if (colisionList.Count > extendedWillHit) { extendedFarmLocation = colisionList.OrderByDescending(c => c.Distance(shadow.Position)).FirstOrDefault().Position; extendedWillHit = colisionList.Count; } } var shortenFarmLocation = q.GetLineFarmLocation(MinionManager.GetMinions(q.Range)); int shortenWillHit = shortenFarmLocation.MinionsHit; int param = zedMenu.GetParamSlider("koreanzed.laneclearmenu.useqif"); if (CanCast && shadow.Position != Vector3.Zero && extendedWillHit >= param) { actionQueue.EnqueueAction( laneClearQueue, () => CanCast, () => Cast(shadow.Position), () => !CanCast); //Console.WriteLine("shadow lc w 2"); actionQueue.EnqueueAction( laneClearQueue, () => w.Instance.ToggleState != 0, () => q.Cast(extendedFarmLocation), () => !q.IsReady()); //Console.WriteLine("shadow lc q 3"); return; } else if (shortenWillHit >= param) { actionQueue.EnqueueAction( laneClearQueue, () => q.IsReady(), () => q.Cast(shortenFarmLocation.Position), () => !q.IsReady()); //Console.WriteLine("shadow lc q 4"); return; } } }
public void LaneClear(ActionQueue actionQueue, ActionQueueList laneClearQueue) { Obj_AI_Base shadow = GetShadows().FirstOrDefault(); if (!energy.ReadyToLaneClear || shadow == null) { return; } if (e.UseOnLaneClear && e.IsReady()) { int extendedWillHit = MinionManager.GetMinions(shadow.Position, e.Range).Count(); int shortenWillHit = MinionManager.GetMinions(e.Range).Count; int param = zedMenu.GetParamSlider("koreanzed.laneclearmenu.useeif"); if (extendedWillHit >= param || shortenWillHit >= param) { actionQueue.EnqueueAction( laneClearQueue, () => true, () => e.Cast(), () => !e.IsReady()); return; } } if (q.UseOnLaneClear && q.IsReady()) { int extendedWillHit = 0; Vector3 extendedFarmLocation = Vector3.Zero; foreach (Obj_AI_Base objAiBase in MinionManager.GetMinions(shadow.Position, q.Range)) { var colisionList = q.GetCollision( shadow.Position.To2D(), new List<Vector2>() { objAiBase.Position.To2D() }, w.Delay); if (colisionList.Count > extendedWillHit) { extendedFarmLocation = colisionList.OrderByDescending(c => c.Distance(shadow.Position)).FirstOrDefault().Position; extendedWillHit = colisionList.Count; } } var shortenFarmLocation = q.GetLineFarmLocation(MinionManager.GetMinions(q.Range)); int shortenWillHit = shortenFarmLocation.MinionsHit; int param = zedMenu.GetParamSlider("koreanzed.laneclearmenu.useqif"); if (CanCast && shadow.Position != Vector3.Zero && extendedWillHit >= param) { actionQueue.EnqueueAction( laneClearQueue, () => CanCast, () => Cast(shadow.Position), () => !CanCast); actionQueue.EnqueueAction( laneClearQueue, () => w.Instance.ToggleState != 0, () => q.Cast(extendedFarmLocation), () => !q.IsReady()); return; } else if (shortenWillHit >= param) { actionQueue.EnqueueAction( laneClearQueue, () => q.IsReady(), () => q.Cast(shortenFarmLocation.Position), () => !q.IsReady()); return; } } }