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 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()); 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; } } }