Exemple #1
0
        public virtual void Unselect()
        {
            if (!UpdateActiveState())
            {
                return;
            }

            if (!ShouldUnselect)
            {
                return;
            }

            ShouldUnselect = false;

            if (State != InteractorState.Select)
            {
                return;
            }

            UnselectInteractable();

            if (_interactable != null)
            {
                State = InteractorState.Hover;
            }
            else
            {
                State = InteractorState.Hover;
                State = InteractorState.Normal;
            }
        }
Exemple #2
0
 private void SelectInteractable(TInteractable interactable)
 {
     Unselect();
     _selectedInteractable = interactable;
     interactable.AddSelectingInteractor(this as TInteractor);
     InteractableSelected(interactable);
     State = InteractorState.Select;
 }
Exemple #3
0
 private void OnInteractorStateExit(InteractorState state)
 {
     if (state is CastState castState)
     {
         this.castingSkill = null;
         View.UnhighlightSkill(castState.Skill);
         View.HideActionPointUsage();
     }
 }
Exemple #4
0
        private void OnInteractorStateEnter(InteractorState state)
        {
            UpdateButtonActiveState();

            if (state is CastState castState)
            {
                View.ShowActionPointUsage(
                    (int)castState.Skill.GetCost().GetValueOrDefault(ResourceType.ActionPoint, 0));
                View.HighlightSkill(castState.Skill);
            }
        }
Exemple #5
0
        public void Disable()
        {
            if (State == InteractorState.Disabled)
            {
                return;
            }

            UnselectInteractable();
            UnsetInteractable();

            State = InteractorState.Disabled;
        }
Exemple #6
0
 private void SetInteractable(TInteractable interactable)
 {
     if (_interactable == interactable)
     {
         return;
     }
     UnsetInteractable();
     _interactable = interactable;
     interactable.AddInteractor(this as TInteractor);
     InteractableSet(interactable);
     State = InteractorState.Hover;
 }
Exemple #7
0
        private void UnsetInteractable()
        {
            TInteractable interactable = _interactable;

            if (interactable == null)
            {
                return;
            }
            _interactable = null;
            interactable.RemoveInteractor(this as TInteractor);
            InteractableUnset(interactable);
            State = InteractorState.Normal;
        }
Exemple #8
0
        private void OnStateEnter(InteractorState state)
        {
            if (!(state is CastState castState))
            {
                return;
            }

            if (!castState.Skill.Equals(Slot.Skill))
            {
                return;
            }

            this.highlight.color = this.highlight.color.With(a: 1);
        }
Exemple #9
0
        public void Enable()
        {
            if (!UpdateActiveState())
            {
                return;
            }

            if (State == InteractorState.Disabled)
            {
                State = InteractorState.Normal;
            }

            if (State == InteractorState.Normal)
            {
                NormalUpdate();
            }
        }
Exemple #10
0
        public virtual void Select()
        {
            if (State == InteractorState.Select)
            {
                if (!UpdateActiveState())
                {
                    ShouldSelect   = false;
                    ShouldUnselect = true;
                    return;
                }
                InteractableSelectChangesUpdate();
                SelectUpdate();
                return;
            }

            if (!ShouldSelect)
            {
                return;
            }

            ShouldSelect = false;

            TInteractable interactable = _interactable;

            if (interactable != null)
            {
                SelectInteractable(interactable);
            }
            else
            {
                // Selected with no interactable
                State = InteractorState.Hover;
                State = InteractorState.Select;
            }

            InteractableSelectChangesUpdate();
            SelectUpdate();
        }
Exemple #11
0
 private void OnStateExit(InteractorState state)
 {
     this.highlight.color = this.highlight.color.With(a: 0);
 }