private void ClearSelected()
        {
            //clear previous selected
            foreach (var prev in _SelectedMultiple)
            {
                prev.IsSelected = false;
            }

            _SelectedSingle = null;
            _SelectedMultiple.Clear();
        }
        private void SetSingleSelected(HitAttackBoxDataProvider box)
        {
            ClearSelected();

            _SelectedSingle = box;

            _SelectedMultiple.Clear();
            _SelectedMultiple.Add(box);

            box.IsSelected = true;
        }
 private void AppendSelected(HitAttackBoxDataProvider box)
 {
     if (box.IsSelected)
     {
         //remove
         box.IsSelected = false;
         _SelectedMultiple.Remove(box);
         _SelectedSingle = _SelectedMultiple.LastOrDefault();
     }
     else
     {
         //add
         box.IsSelected = true;
         _SelectedMultiple.Add(box);
         _SelectedSingle = box;
     }
 }
 private RectPoint FindPointAt(HitAttackBoxDataProvider box, int x, int y)
 {
     if (IsInPointRange(box.LeftTop, x, y))
     {
         return(RectPoint.LT);
     }
     if (IsInPointRange(box.LeftBottom, x, y))
     {
         return(RectPoint.LB);
     }
     if (IsInPointRange(box.RightTop, x, y))
     {
         return(RectPoint.RT);
     }
     if (IsInPointRange(box.RightBottom, x, y))
     {
         return(RectPoint.RB);
     }
     return(RectPoint.None);
 }