private void FlashUlt() { if (!SummonerManager.Flash_Ready() || Utils.TickCount - _lastFlash < 500) { return; } var vec = Player.ServerPosition.Extend(Game.CursorPos, R.Range + 400); var count = HeroManager.Enemies.Count(x => x.IsValidTarget() && R2.WillHit(x, vec)); if (count == 0) { return; } Player.Spellbook.CastSpell(SpellSlot.R, vec); _flashVec = vec; _lastFlash = Utils.TickCount; }
private static void Fight(string mode) { if (GetValue <bool>(mode, "P") && HaveP && Orbwalk.GetBestHeroTarget != null && Orbwalk.CanAttack) { return; } if (GetValue <bool>(mode, "Q") && Q.IsReady()) { if (IsQOne) { var target = Q.GetTarget(); if (target != null) { var state = Q.Cast(target, PacketCast); if (state.IsCasted()) { return; } if (state == Spell.CastStates.Collision && GetValue <bool>(mode, "QCol") && Smite.IsReady()) { var pred = Q.GetPrediction(target); if ( pred.CollisionObjects.Count( i => i.IsValid <Obj_AI_Minion>() && IsSmiteable((Obj_AI_Minion)i)) == 1 && CastSmite(pred.CollisionObjects.First()) && Q.Cast(pred.CastPosition, PacketCast)) { return; } } } } else { var target = Q2.GetTarget(0, HeroManager.Enemies.Where(i => !HaveQ(i))); if (target != null && (QAgain(target) || ((target.HasBuffOfType(BuffType.Knockback) || target.HasBuffOfType(BuffType.Knockup)) && Player.Distance(target) > 300 && !R.IsReady() && Utils.TickCount - R.LastCastAttemptT < 1500) || Q.IsKillable(target, 1) || !Orbwalk.InAutoAttackRange(target, 100) || !HaveP) && Q2.Cast(PacketCast)) { return; } if (target == null) { var sub = Q2.GetTarget(); if (sub != null && ObjHaveQ.Any(i => i.Distance(sub) < Player.Distance(sub) && i.Distance(sub) < E.Range) && Q2.Cast(PacketCast)) { return; } } } } if (GetValue <bool>(mode, "Smite") && CurrentSmiteType == SmiteType.Red) { var target = TargetSelector.GetTarget(760, TargetSelector.DamageType.Physical); if (target != null) { CastSmite(target, false); } return; } if (GetValue <bool>(mode, "E") && E.IsReady()) { if (IsEOne) { if (E.GetTarget() != null && Player.Mana >= 70 && E.Cast(PacketCast)) { return; } } else if ( HeroManager.Enemies.Where(i => i.IsValidTarget(E2.Range) && HaveE(i)) .Any(i => EAgain(i) || !Orbwalk.InAutoAttackRange(i, 50) || !HaveP) && Player.Mana >= 50 && E2.Cast(PacketCast)) { return; } } if (GetValue <bool>(mode, "R") && R.IsReady()) { var target = R.GetTarget(0, HeroManager.Enemies.Where(i => !HaveQ(i))); if (GetValue <bool>(mode, "Q") && Q.IsReady() && !IsQOne && target != null) { if (CanKill(target, GetQ2Dmg(target, R.GetDamage(target))) && R.CastOnUnit(target, PacketCast)) { return; } } else { foreach (var enemy in HeroManager.Enemies.Where(i => i.IsValidTarget(R.Range) && !R.IsKillable(i))) { R2.UpdateSourcePosition(enemy.ServerPosition, enemy.ServerPosition); var enemyBehind = HeroManager.Enemies.Where( i => i.IsValidTarget(R2.Range) && i.NetworkId != enemy.NetworkId && R2.WillHit( i, enemy.ServerPosition.Extend(Player.ServerPosition, -R2.Range), (int)enemy.BoundingRadius)).ToList(); if (GetValue <bool>(mode, "RBehind") && enemyBehind.Any(i => R.IsKillable(i)) && R.CastOnUnit(enemy, PacketCast)) { break; } if (enemyBehind.Count >= GetValue <Slider>(mode, "RCount").Value&& R.CastOnUnit(enemy, PacketCast)) { break; } } } } if (GetValue <bool>(mode, "W") && W.IsReady() && Orbwalk.GetBestHeroTarget != null) { if (IsWOne) { if (Player.HealthPercent < GetValue <Slider>(mode, "WHpU").Value) { W.Cast(PacketCast); } } else if (!Player.HasBuff("BlindMonkSafeguard") && (Player.HealthPercent < GetValue <Slider>(mode, "WHpU").Value || !HaveP)) { W.Cast(PacketCast); } } }