示例#1
0
 /// <summary>
 /// Callback when the user selects the wait option from the CharacterActionMenu.
 /// </summary>
 /// <param name="character"></param>
 private void CharacterActionMenuWait(Object[] objects)
 {
     SelectedCharacter.DestroyMovableAndAttackableAndAssistableTransforms();
     DestroyTradableSpaces();
     GameManager.CharacterActionMenu.Hide();
     SelectedCharacter.EndAction();
     CurrentState = State.Free;
     Focus();
 }
示例#2
0
        public override void OnCancel()
        {
            Debug.LogFormat("OnCancel: {0}", CurrentState);
            switch (CurrentState)
            {
            case State.Free:
                Character character = GameManager.CurrentLevel.GetCharacter(transform.position);

                if (character != null && AttackableRange.Characters.Contains(character))
                {
                    AttackableRange.RemoveCharacter(character);
                }
                else
                {
                    AttackableRange.Clear();
                }
                break;

            case State.ChoosingMove:     // --> Free

                SelectedCharacter.DestroyMovableAndAttackableAndAssistableTransforms();
                Path.Destroy();
                CurrentState = State.Free;
                break;

            case State.ChoosingAssistTarget:     // -->
                transform.position = SelectedCharacter.transform.position;
                GameManager.AssistDetailPanel.Hide();
                CharacterActionMenuAssist();
                break;

            case State.ChoosingAttackTarget:     // --> ItemSelectionMenu

                transform.position = SelectedCharacter.transform.position;
                GameManager.AttackDetailPanel.Hide();
                CharacterActionMenuAttack(null);
                break;

            case State.ChoosingTradeTarget:     // --> CharacterActionMenu
                DestroyTradableSpaces();
                transform.position = SelectedCharacter.transform.position;
                ShowCharacterActionMenu(SelectedCharacter);
                break;

            default:
                Debug.LogErrorFormat("Invalid Cursor.State in OnCancel: {0}", CurrentState);
                break;
            }
        }
示例#3
0
        /// <summary>
        /// Callback when the user cancels from the CharacterActionMenu.
        /// </summary>
        /// <param name="character"></param>
        public void CharacterActionMenuOnCancel(params Object[] objects)
        {
            SelectedCharacter.DestroyMovableAndAttackableAndAssistableTransforms();
            DestroyTradableSpaces();

            if (SelectedCharacter.HasTraded)
            {
                SelectedCharacter.EndAction();
                CurrentState = State.Free;
            }
            else
            {
                SelectedCharacter.Move(SelectedCharacterOldPosition);
                SelectedCharacter.CreateAttackableTransforms();
                CurrentState = State.ChoosingMove;
                Path.Show();
            }

            GameManager.CharacterActionMenu.Hide();
            Focus();
        }