public static void SmiteQCombo(Spell spell) { if (Program.QStage != Program.QCastStage.IsReady) { return; } var t = AssassinManager.GetTarget(spell.Range); if (!t.IsValidTarget()) { return; } if (t.HasBlindMonkBuff()) { return; } int smiteDamage = (int)CalculateDamage(); //if (Program.Q.GetPrediction(t).CollisionObjects.Count == 1) //{ // Obj_AI_Base colObj = Program.Q.GetPrediction(t).CollisionObjects.FirstOrDefault(); // if (colObj != null && colObj.Health < smiteDamage && colObj.IsValidTarget(550f)) // { // if (Program.SmiteDamageSlot != SpellSlot.Unknown && ObjectManager.Player.Spellbook.CanUseSpell(Program.SmiteDamageSlot) == SpellState.Ready) // { // spell.Cast(t.Position); // ObjectManager.Player.Spellbook.CastSpell(Program.SmiteDamageSlot, colObj); // } // } //} //return; IEnumerable <Obj_AI_Base> xM = QGetCollisionMinions(ObjectManager.Player.Position, t.ServerPosition, spell.Width, spell.Range, new CollisionableObjects[(int)CollisionableObjects.Minions]); IEnumerable <Obj_AI_Base> objAiBases = xM as Obj_AI_Base[] ?? xM.ToArray(); if (xM != null && objAiBases.Count() == 1) { Obj_AI_Base xxx = objAiBases.FirstOrDefault(); if (xxx != null) { if (Program.SmiteDamageSlot != SpellSlot.Unknown && ObjectManager.Player.Spellbook.CanUseSpell(Program.SmiteDamageSlot) == SpellState.Ready) { if (xxx.Health < smiteDamage && spell.IsReady() && xxx.Distance(ObjectManager.Player.Position) < 650) { spell.Cast(t.Position); ObjectManager.Player.Spellbook.CastSpell(Program.SmiteDamageSlot, xxx); } } } } }
public static void ComboQwJumpRq() { var t = AssassinManager.GetTarget(Program.W.Range / 2); if (!t.IsValidTarget()) { return; } if (Program.Q.CastIfWillHit(t)) { Game.PrintChat("Can Cast"); } }
public static void HitAndRun() { var t = AssassinManager.GetTarget(Q.Range); if (!t.IsValidTarget()) { return; } if (WState != Program.WCastStage.IsReady) { return; } if (QState == Program.QCastStage.IsReady) { Q.Cast(t); } Obj_AI_Base obj = ObjectManager.Get <Obj_AI_Base>() .Where( o => o.IsAlly && !o.IsDead && !o.IsMe && !(o.Name.IndexOf("turret", StringComparison.InvariantCultureIgnoreCase) >= 0) && o.Distance(t.Position) < W.Range - 10 ) .OrderByDescending(o => o.Distance(t.Position)).FirstOrDefault(); if (obj == null) { return; } if (t.HasBlindMonkBuff() && QState == Program.QCastStage.IsCasted) { Q.Cast(); } if (ObjectManager.Player.Distance(t.Position) < 50 && QState == Program.QCastStage.NotReady) { W.CastOnUnit(obj); } }