static float getComboDamage2(Obj_AI_Base enemy) { if (enemy != null) { float damage = 0; if (Q.IsReady()) { damage += Q.GetDamage2(enemy) + (float)Player.GetAutoAttackDamage2(enemy, true); } if (E.IsReady()) { damage += E.GetDamage2(enemy); } if (W.IsReady()) { damage += (float)Player.GetAutoAttackDamage2(enemy, true); } if (!Player.IsWindingUp) { damage += (float)Player.GetAutoAttackDamage2(enemy, true); } return(damage); } return(0); }
private static float getComboDamage(Obj_AI_Base enemy) { if (enemy != null) { float damage = 0; if (Q.IsReady()) { damage += Q.GetDamage2(enemy) + (float)Player.GetAutoAttackDamage2(enemy); } if (W.IsReady()) { damage += W.GetDamage2(enemy) * 2; } if (R.IsReady()) { damage += R.GetDamage2(enemy) * 2; } if (HasItem()) { damage += (float)Player.GetAutoAttackDamage2(enemy) * 0.7f; } return(damage); } return(0); }
private bool ShouldWait() { return (ObjectManager.Get <Obj_AI_Minion>() .Any( minion => minion.IsValidTarget() && minion.Team != GameObjectTeam.Neutral && InAutoAttackRange(minion) && HealthPrediction.LaneClearHealthPrediction( minion, (int)((Player.AttackDelay * 1000) * LaneClearWaitTimeMod), FarmDelay) <= Player.GetAutoAttackDamage2(minion))); }
static float getComboDamage2(Obj_AI_Base enemy) { if (enemy != null) { float damage = 0; if (E.IsReady()) { damage = damage + (float)Player.GetAutoAttackDamage2(enemy) * 2; } if (W.IsReady()) { damage = damage + W.GetDamage2(enemy) + (float)Player.GetAutoAttackDamage2(enemy); } if (Q.IsReady()) { damage = damage + Q.GetDamage2(enemy) + (float)Player.GetAutoAttackDamage2(enemy); } damage = damage + (float)Player.GetAutoAttackDamage2(enemy); return(damage); } return(0); }
static void OnDoCast(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args) { var spellName = args.SData.Name; if (!sender.IsMe || !Orbwalking.IsAutoAttack(spellName)) { return; } QTarget = (Obj_AI_Base)args.Target; if (args.Target is Obj_AI_Minion) { if (Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.LaneClear) { var Mobs = MinionManager.GetMinions(120 + 70 + Player.BoundingRadius, MinionTypes.All, MinionTeam.Neutral, MinionOrderTypes.MaxHealth); if (Mobs.Count != 0) { if (Q.IsReady()) { UseCastItem(300); forcecastQ(Mobs[0]); } else if (W.IsReady()) { UseCastItem(300); Utility.DelayAction.Add(1, () => UseW(500)); } else if (E.IsReady()) { E.Cast(Mobs[0].Position); } } } } if (args.Target is Obj_AI_Turret || args.Target is Obj_Barracks || args.Target is Obj_BarracksDampener || args.Target is Obj_Building) { if (args.Target.IsValid && args.Target != null && Q.IsReady() && LaneQ && Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.LaneClear) { forcecastQ((Obj_AI_Base)args.Target); } } if (args.Target is Obj_AI_Hero) { var target = (Obj_AI_Hero)args.Target; if (KillstealR && R.IsReady() && R.Instance.Name == IsSecondR) { if (target.Health < (Rdame(target, target.Health) + Player.GetAutoAttackDamage2(target)) && target.Health > Player.GetAutoAttackDamage2(target)) { R.Cast(target.Position); } } if (KillstealW && W.IsReady()) { if (target.Health < (W.GetDamage2(target) + Player.GetAutoAttackDamage2(target)) && target.Health > Player.GetAutoAttackDamage2(target)) { W.Cast(); } } if (Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.Combo) { if (Q.IsReady()) { UseCastItem(200); forcecastQ(target); } else if (W.IsReady() && InWRange(target)) { UseCastItem(200); Utility.DelayAction.Add(1, () => UseW(500)); } else if (E.IsReady() && !Orbwalking.InAutoAttackRange(target)) { E.Cast(target.Position); } } if (Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.FastHarass) { if (W.IsReady() && InWRange(target)) { UseCastItem(200); Utility.DelayAction.Add(1, () => UseW(500)); Utility.DelayAction.Add(2, () => forcecastQ(target)); } else if (Q.IsReady()) { UseCastItem(200); forcecastQ(QTarget); } else if (E.IsReady() && !Orbwalking.InAutoAttackRange(target) && !InWRange(target)) { E.Cast(target.Position); } } if (Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.Mixed) { if (QStack == 2 && Q.IsReady()) { UseCastItem(200); forcecastQ(QTarget); } } if (Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.Burst) { if (R.IsReady() && R.Instance.Name == IsSecondR) { UseCastItem(500); UseR(500); } else if (Q.IsReady()) { UseCastItem(200); forcecastQ(QTarget); } } } }