public EvadePlus(SkillshotDetector detector)
        {
            Skillshots = new EvadeSkillshot[] { };
            Polygons = new Geometry.Polygon[] { };
            ClippedPolygons = new List<Geometry.Polygon>();
            StatusText = new Text("EvadePlus Enabled", new Font("Calisto MT", 10F, FontStyle.Bold));
            StatusTextShadow = new Text("EvadePlus Enabled", new Font("Calisto MT", 10F, FontStyle.Bold));

            SkillshotDetector = detector;
            SkillshotDetector.OnUpdateSkillshots += OnUpdateSkillshots;
            SkillshotDetector.OnSkillshotActivation += OnSkillshotActivation;
            SkillshotDetector.OnSkillshotDetected += OnSkillshotDetected;
            SkillshotDetector.OnSkillshotDeleted += OnSkillshotDeleted;

            Player.OnIssueOrder += PlayerOnIssueOrder;
            Game.OnTick += Ontick;
            Drawing.OnDraw += OnDraw;
        }
        public void AddSkillshot(EvadeSkillshot skillshot, bool isProcessSpell = false, bool triggerEvent = true)
        {
            if (LimitDetectionRange &&
                skillshot.GetPosition().Distance(Player.Instance, true) > (2 * skillshot.SpellData.Range).Pow())
            {
                return;
            }

            if (SkillshotActivationDelay <= 10)
                skillshot.IsActive = true;

            DetectedSkillshots.Add(skillshot);

            if (triggerEvent && EvadeMenu.IsSkillshotEnabled(skillshot))
            {
                if (OnSkillshotDetected != null)
                    OnSkillshotDetected(skillshot, isProcessSpell);

                if (OnUpdateSkillshots != null)
                    OnUpdateSkillshots(skillshot, false, isProcessSpell);
            }
        }
 public static bool IsSkillshotW(EvadeSkillshot skillshot)
 {
     if (!(skillshot is LinearMissileSkillshot)) return false;
     var valueBase = Config.Modes.EvaderMenu[skillshot + "/wEvade"];
     return valueBase != null && valueBase.Cast<CheckBox>().CurrentValue;
 }
 public static bool IsSkillshotEnabled(EvadeSkillshot skillshot)
 {
     var valueBase = Config.Modes.EvaderMenu[skillshot + "/enable"];
     return valueBase != null && valueBase.Cast<CheckBox>().CurrentValue;
 }
 private void OnUpdateSkillshots(EvadeSkillshot skillshot, bool remove, bool isProcessSpell)
 {
     CacheSkillshots();
 }
 private void OnSkillshotDetected(EvadeSkillshot skillshot, bool isProcessSpell)
 {
 }
 private void OnSkillshotDeleted(EvadeSkillshot skillshot)
 {
 }
 private void OnSkillshotActivation(EvadeSkillshot skillshot)
 {
     CacheSkillshots();
 }