public override void OnCombo() { var Target = TargetSelector.GetTarget(Q.Range, DamageType.Magical); if (Target == null || !Target.IsValidTarget()) { return; } var mode = Features.First(it => it.NameFeature == "Combo"); if (R.IsReady() && Player.CountEnemiesInRange(R.Range) >= mode.SliderValue("combo.r.minenemies")) { R.Cast(); } if (Q.IsReady() && Target.IsValidTarget(Q.Range) && mode.IsChecked("combo.q")) { SpellsUtil.HitChanceCast(Q, Target, mode.SliderValue("combo.q.hitchance%")); } if (W.IsReady() && !Target.CanMove() && mode.IsChecked("combo.w")) { W.Cast(Target.ServerPosition); } return; }
public bool CastSmite(Obj_AI_Base target) { if (target == null || !target.IsValidTarget() || target.IsStructure()) { return(false); } var summoner = SpellsUtil.GetTargettedSpell(SpellsUtil.Summoners.Smite); if (summoner != null && summoner.IsReady() && summoner.IsInRange(target)) { if (target.IsMinion()) { if (summoner.Cast(target)) { return(true); } } else if ((summoner.Name.Contains("gank") || summoner.Name.Contains("duel")) && summoner.Cast(target)) { return(true); } } return(false); }
//-----------------------------------------KS----------------------------------------- void KS() { if (Q.IsReady()) { var bye = EntityManager.Heroes.Enemies.FirstOrDefault(enemy => enemy.IsValidTarget(Q.Range) && DamageUtil.GetSpellDamage(enemy, SpellSlot.Q) >= enemy.Health); if (bye != null) { SpellsUtil.HitChanceCast(Q, bye); return; } } if (R.IsReady()) { var bye = EntityManager.Heroes.Enemies.FirstOrDefault(enemy => enemy.IsValidTarget(R.Range) && DamageUtil.GetSpellDamage(enemy, SpellSlot.R) >= enemy.Health); if (bye != null) { R.Cast(); return; } } if (Q.IsReady() && R.IsReady()) { var bye = EntityManager.Heroes.Enemies.FirstOrDefault(enemy => enemy.IsValidTarget(R.Range - 50) && DamageUtil.GetSpellDamage(enemy, SpellSlot.R) + DamageUtil.GetSpellDamage(enemy, SpellSlot.Q) >= enemy.Health); if (bye != null) { SpellsUtil.HitChanceCast(Q, bye); return; } } }
public override void OnAfterAttack(AttackableUnit target, EventArgs args) { base.OnAfterAttack(target, args); var jungleclear = Features.First(it => it.NameFeature == "Jungle Clear"); if (Player.ManaPercent < jungleclear.SliderValue("jungleclear.mana%")) { return; } var minion = EntityManager.MinionsAndMonsters.GetJungleMonsters(Player.Position, W.Range).FirstOrDefault(it => it.Health > 2 * Player.GetAutoAttackDamage(it)); if (minion == null) { return; } if (Q.IsReady() && jungleclear.IsChecked("jungleclear.q")) { SpellsUtil.HitChanceCast(Q, minion, 1); } if (W.IsReady() && jungleclear.IsChecked("jungleclear.w")) { SpellsUtil.HitChanceCast(W, minion); } }
public override void PermaActive() { var misc = Features.First(it => it.NameFeature == "Misc"); //----Auto Q/W on immobile enemies var immobile = EntityManager.Heroes.Enemies.FirstOrDefault(it => !it.IsDead && it.IsValidTarget(Q.Range) && !it.CanMove()); if (immobile != null) { if (misc.IsChecked("misc.autoqonimmobile") && Q.IsReady()) { SpellsUtil.HitChanceCast(Q, immobile); } if (misc.IsChecked("misc.autowonimmobile") && W.IsReady() && W.IsInRange(immobile)) { W.Cast(immobile.ServerPosition); } } //----KS if (misc.IsChecked("misc.ks") && EntityManager.Heroes.Enemies.Any(it => Q.IsInRange(it))) { KS(); } }
public bool CastGhost() { var summoner = SpellsUtil.GetActiveSpell(SpellsUtil.Summoners.Ghost); if (summoner != null && summoner.IsReady() && summoner.Cast()) { return(true); } return(false); }
public bool CastFlash(Vector3 position) { var summoner = SpellsUtil.GetSkillshotSpell(SpellsUtil.Summoners.Flash); if (Player.Distance(position) > summoner.Range) { position = Player.Position.Extend(position, summoner.Range).To3D(); } if (summoner != null && summoner.IsReady() && summoner.Cast(position)) { return(true); } return(false); }
public bool CastExhaust(Obj_AI_Base target) { if (target == null || !target.IsValidTarget() || target.IsStructure() || target.IsMinion) { return(false); } var summoner = SpellsUtil.GetTargettedSpell(SpellsUtil.Summoners.Exhaust); if (summoner != null && summoner.IsReady() && summoner.IsInRange(target) && summoner.Cast(target)) { return(true); } return(false); }
public override void OnFlee() { base.OnFlee(); if (!Q.IsReady()) { return; } var Target = TargetSelector.GetTarget(Q.Range, DamageType.Physical); if (Target != null && Target.IsValidTarget(Q.Range)) { SpellsUtil.HitChanceCast(Q, Target); } }
public override void OnGapCloser(AIHeroClient sender, Gapcloser.GapcloserEventArgs e) { base.OnGapCloser(sender, e); if (!Q.IsReady() || sender.IsMe || sender.IsAlly || !sender.IsValidTarget(Q.Range)) { return; } var gapclose = Features.First(it => it.NameFeature == "Misc").IsChecked("misc.gapcloser"); if (gapclose) { SpellsUtil.HitChanceCast(Q, sender); } return; }
public override void OnHarass() { var Target = TargetSelector.GetTarget(Q.Range, DamageType.Magical); if (Target == null || !Target.IsValidTarget()) { return; } var mode = Features.First(it => it.NameFeature == "Harass"); if (Player.ManaPercent < mode.SliderValue("harass.mana%")) { return; } if (Q.IsReady() && Target.IsValidTarget(Q.Range) && mode.IsChecked("harass.q")) { SpellsUtil.HitChanceCast(Q, Target, mode.SliderValue("harass.q.hitchance%")); } if (W.IsReady() && mode.IsChecked("harass.w")) { if (mode.IsChecked("harass.w.jitii")) { if (!Target.CanMove()) { W.Cast(Target.ServerPosition); } } else { SpellsUtil.HitChanceCast(W, Target); } } return; }
void InitVariables() { _itemUtil = new ItemUtil(); #region Summoners flash = SpellsUtil.GetSkillshotSpell(SpellsUtil.Summoners.Flash); ignite = SpellsUtil.GetTargettedSpell(SpellsUtil.Summoners.Ignite); exhaust = SpellsUtil.GetTargettedSpell(SpellsUtil.Summoners.Exhaust); smite = SpellsUtil.GetTargettedSpell(SpellsUtil.Summoners.Smite); heal = SpellsUtil.GetActiveSpell(SpellsUtil.Summoners.Heal); barrier = SpellsUtil.GetActiveSpell(SpellsUtil.Summoners.Barrier); ghost = SpellsUtil.GetActiveSpell(SpellsUtil.Summoners.Ghost); cleanse = SpellsUtil.GetActiveSpell(SpellsUtil.Summoners.Cleanse); #endregion #region Offensives hextech = _itemUtil.GetItem(ItemId.Hextech_Gunblade, 700); botrk = _itemUtil.GetItem(ItemId.Blade_of_the_Ruined_King, 550); bilgewater = _itemUtil.GetItem(ItemId.Bilgewater_Cutlass, 550); tiamat = _itemUtil.GetItem(ItemId.Tiamat_Melee_Only, 325); //range = 400 hydra = _itemUtil.GetItem(ItemId.Ravenous_Hydra_Melee_Only, 325); //range = 400 titanic = _itemUtil.GetItem(3053, 75); //range = 150 youmuus = _itemUtil.GetItem(ItemId.Youmuus_Ghostblade); #endregion #region Defensives faceMountain = _itemUtil.GetItem(ItemId.Face_of_the_Mountain, 600); mikael = _itemUtil.GetItem(ItemId.Mikaels_Crucible, 600); solari = _itemUtil.GetItem(ItemId.Locket_of_the_Iron_Solari, 600); randuin = _itemUtil.GetItem(ItemId.Randuins_Omen, 450);//range = 500 scimitar = _itemUtil.GetItem(ItemId.Mercurial_Scimitar); qss = _itemUtil.GetItem(ItemId.Quicksilver_Sash); seraph = _itemUtil.GetItem(3040); zhonya = _itemUtil.GetItem(ItemId.Zhonyas_Hourglass); #endregion #region Speed talisma = _itemUtil.GetItem(ItemId.Talisman_of_Ascension); righteousGlory = _itemUtil.GetItem(ItemId.Righteous_Glory, 600); #endregion #region Potions healthPotion = _itemUtil.GetItem(ItemId.Health_Potion); biscuitPotion = _itemUtil.GetItem(2010); corruptingPotion = _itemUtil.GetItem(2033); huntersPotion = _itemUtil.GetItem(2032); refillablePotion = _itemUtil.GetItem(2031); #endregion _itens = new ItemController(); _summoners = new SummonersController(); }
public override void OnHarass() { var target = TargetSelector.GetTarget(spiderForm ? E2.Range : E1.Range, DamageType.Magical); var harass = Features.Find(f => f.NameFeature == "Harass"); if (target == null || !target.IsValidTarget(1000) || harass.SliderValue("harass.mana") > Player.Instance.ManaPercent) { return; } if (spiderForm) { if (R.IsReady() && harass.IsChecked("harass.r")) { if (!W2.IsReady() && !Q2.IsReady() && !Player.Instance.IsInAutoAttackRange(target)) { R.Cast(); } } if (Q2.IsReady() && harass.IsChecked("harass.q2") && Q2.IsInRange(target)) { Q2.Cast(target); } if (E2.IsReady() && harass.IsChecked("harass.e2") && E2.IsInRange(target) && !Q2.IsInRange(target)) { E2.Cast(target); } if (W2.IsReady() && harass.IsChecked("harass.w2") && Player.Instance.IsInAutoAttackRange(target)) { W2.Cast(); } } else { if (R.IsReady() && harass.IsChecked("harass.r")) { if (!Q1.IsReady() && !E1.IsReady()) { if (W1.IsReady() && harass.IsChecked("harass.w") && W1.IsInRange(target)) { W1.Cast(W1.GetPrediction(target).CastPosition); EloBuddy.SDK.Core.DelayAction(() => R.Cast(), 250); } else { R.Cast(); } } } if (E1.IsReady() && harass.IsChecked("harass.e") && E1.IsInRange(target)) { SpellsUtil.HitChanceCast(E1, target); } if (Q1.IsReady() && harass.IsChecked("harass.q") && Q1.IsInRange(target)) { Q1.Cast(target); } if (W1.IsReady() && harass.IsChecked("harass.w") && W1.IsInRange(target)) { W1.Cast(W1.GetPrediction(target).CastPosition); } } }
public override void OnCombo() { var target = TargetSelector.GetTarget(spiderForm ? E2.Range : E1.Range, DamageType.Magical); if (target == null || !target.IsValidTarget()) { return; } var combo = Features.Find(f => f.NameFeature == "Combo"); if (spiderForm) { if (R.IsReady() && combo.IsChecked("combo.r")) { if (W1.IsReady() && Q1.IsReady() && E1.IsReady()) { R.Cast(); } } if (Q2.IsReady() && combo.IsChecked("combo.q2") && Q2.IsInRange(target)) { Q2.Cast(target); } if (E2.IsReady() && combo.IsChecked("combo.e2") && E2.IsInRange(target) && !Q2.IsInRange(target)) { E2.Cast(target); } if (W2.IsReady() && combo.IsChecked("combo.w2") && Player.Instance.IsInAutoAttackRange(target)) { W2.Cast(); } } else { if (R.IsReady() && combo.IsChecked("combo.r")) { if (!Q1.IsReady()) { if (W1.IsReady() && combo.IsChecked("combo.w") && W1.IsInRange(target)) { W1.Cast(W1.GetPrediction(target).CastPosition); EloBuddy.SDK.Core.DelayAction(() => R.Cast(), 250); } else { R.Cast(); } } } if (E1.IsReady() && combo.IsChecked("combo.e") && E1.IsInRange(target)) { SpellsUtil.HitChanceCast(E1, target); } if (Q1.IsReady() && combo.IsChecked("combo.q") && Q1.IsInRange(target)) { Q1.Cast(target); } } }