コード例 #1
0
        private void OnSubmitChoosingMove(Vector2 currentPosition)
        {
            Debug.LogFormat("OnEnterChoosingMove: {0}", currentPosition);
            foreach (Transform movableSpace in SelectedCharacter.MovableTransforms)
            {
                if (currentPosition.x == movableSpace.position.x && currentPosition.y == movableSpace.position.y)
                {
                    Debug.Log("Found MovableSpace");
                    Character checkCharacter = GameManager.CurrentLevel.GetCharacter(currentPosition);
                    if (checkCharacter != null && !checkCharacter.Equals(SelectedCharacter))
                    {
                        Debug.Log("Spot already taken!");
                        CurrentState = State.ChoosingMove;
                        return;
                    }

                    SelectedCharacterOldPosition = SelectedCharacter.transform.position;
                    SelectedCharacter.Move(transform.position);
                    HideInformationPanels();
                    ShowCharacterActionMenu(SelectedCharacter);
                    return;
                }
            }

            Debug.Log("Enter was pressed outside MovableSpaces");
        }
コード例 #2
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();
        }