internal static float GetRawDamage(Obj_AI_Base target) { float damage = 0; if (target != null) { if (_q.IsReady()) { damage += Player.Instance.GetSpellDamage(target, SpellSlot.Q); damage += Player.Instance.GetAutoAttackDamage(target); damage += SpellData.LucianPassive(); } if (_w.IsReady()) { damage += Player.Instance.GetSpellDamage(target, SpellSlot.W); damage += Player.Instance.GetAutoAttackDamage(target); damage += SpellData.LucianPassive(); } if (_e.IsReady()) { damage += Player.Instance.GetAutoAttackDamage(target); damage += SpellData.LucianPassive(); } } return(damage); }
private static void Killsteal() { if (KSTarget() == null) { return; } if (Value.Use("killsteal.e") && _e.IsReady()) { if (Prediction.Health.GetPrediction(KSTarget(), Game.Ping + _e.CastDelay) < Player.Instance.GetAutoAttackDamage(KSTarget()) + SpellData.LucianPassive()) { var safeE = OKTRGeometry.SafeDashLogic(_e.Range); if (safeE != Vector3.Zero) { _e.Cast(safeE); } } } if (Value.Use("killsteal.q") & _q.IsReady()) { if (Prediction.Health.GetPrediction(KSTarget(), Game.Ping + _q.CastDelay) < Player.Instance.GetSpellDamage(KSTarget(), SpellSlot.Q)) { QExtendLogic(KSTarget()); } } if (KSTarget().Distance(Player.Instance) < Player.Instance.GetAutoAttackRange()) { if (!Orbwalker.IsAutoAttacking && _passive && Prediction.Health.GetPrediction(KSTarget(), Game.Ping + _e.CastDelay) < Player.Instance.GetAutoAttackDamage(KSTarget()) + SpellData.LucianPassive()) { ToggleOrb(); Player.IssueOrder(GameObjectOrder.AttackUnit, KSTarget()); Core.DelayAction(ToggleOrb, (int)(Player.Instance.AttackCastDelay * 1000)); } else if (!Orbwalker.IsAutoAttacking && Prediction.Health.GetPrediction(KSTarget(), Game.Ping + _e.CastDelay) < Player.Instance.GetAutoAttackDamage(KSTarget())) { ToggleOrb(); Player.IssueOrder(GameObjectOrder.AttackUnit, KSTarget(), true); Core.DelayAction(ToggleOrb, (int)(Player.Instance.AttackCastDelay * 1000)); } } }