/******************* Unity Function *******************/ protected virtual void Awake() { m_HasPlayed = false; m_CanPlay = true; m_Body = transform.Find("Body").gameObject; m_ArmorCollider = m_Body.GetComponent <Collider> (); m_MoveController = transform.GetComponent <MoveController> (); m_BuffController = transform.GetComponent <BuffController> (); m_WeaponController = transform.GetComponent <WeaponController> (); m_PassiveController = transform.GetComponent <PassiveController> (); m_HUDController = transform.GetComponent <HUDController> (); m_ArmorReductionMultiplier = 1; m_ShieldReductionMultiplier = 1; }
public override void Execute() { var q = PluginModel.Q; var w = PluginModel.W; var target = AdvancedTargetSelector.GetTarget(w.Range, DamageType.Physical); if (target == null || !target.IsValidTarget()) { return; } PluginModel.ActiveMode = EnumModeManager.Harass; Orbwalker.ForcedTarget = target; if (PassiveController.HasUltiPassive(target)) { var targetpos = Prediction.Position.PredictUnitPosition(target, 250); var poses = PassiveController.UltiPassivePos(target); var castpos = poses.OrderByDescending(x => x.Distance(targetpos)).FirstOrDefault(); q.Cast(castpos); } if (q.IsReady() && Misc.IsChecked(PluginModel.HarassMenu, "hsQ") && ManaManager.CanUseSpell(PluginModel.HarassMenu, "hsMana")) { var targetpos = Prediction.Position.PredictUnitPosition(target, 250); if (Misc.IsChecked(PluginModel.HarassMenu, "hsQPassiveRange") && q.IsInRange(targetpos.To3D()) && PassiveController.HasPassive(target)) { var castPos = PassiveController.PassivePosition(target); var validPositions = PassiveController.PassiveRadiusPoint(target); if (castPos.IsValid() && castPos.Distance(Player.Instance.ServerPosition) <= 300 && castPos.InTheCone(validPositions, castPos.To2D())) { Player.CastSpell(SpellSlot.Q, castPos); } } else { Player.CastSpell(SpellSlot.Q, target.ServerPosition); } } if (w.IsReady() && Misc.IsChecked(PluginModel.HarassMenu, "hsW") && ManaManager.CanUseSpell(PluginModel.HarassMenu, "hsMana")) { if (q.IsReady() || !(target.Distance(Player.Instance) > Player.Instance.GetAutoAttackRange())) { return; } var prediction = w.GetPrediction(target); if (prediction.HitChancePercent >= 70) { w.Cast(prediction.CastPosition); } } }