public IEnumerator AttackableRangeTest3()
        {
            AttackableRange attackableRange = GameManager.Cursor.AttackableRange;
            Character       character       = GameManager.CurrentLevel.GetCharacter(2, 2);

            attackableRange.RemoveCharacter(character);
            LogAssert.Expect(UnityEngine.LogType.Error, "Cannot remove character Wizard from AttackableRange at (2.0, 2.0, 0.0)");
            yield return(null);
        }
Пример #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
 private void OnSubmitFree(Vector2 currentPosition)
 {
     SelectedCharacter = GameManager.CurrentLevel.GetCharacter(currentPosition);
     if (SelectedCharacter != null && !SelectedCharacter.HasMoved)
     {
         if (SelectedCharacter.Player.Equals(GameManager.CurrentPlayer))
         {
             CurrentState = State.ChoosingMove;
             Path.StartPath(SelectedCharacter);
         }
         else
         {
             AttackableRange.AddCharacter(SelectedCharacter);
         }
     }
     else
     {
         GameManager.ShowPlayerActionMenu();
         return;
     }
 }
        public IEnumerator AttackableRangeTest2()
        {
            AttackableRange attackableRange = GameManager.Cursor.AttackableRange;

            yield return(MoveCursor(2, 3));

            yield return(Submit());

            Assert.AreEqual(1, attackableRange.Characters.Count);
            Assert.AreEqual(9, attackableRange.AttackableTransforms.Count);

            yield return(Cancel());

            Assert.AreEqual(0, attackableRange.Characters.Count);
            Assert.AreEqual(0, attackableRange.AttackableTransforms.Count);

            yield return(MoveCursor(1, 2));

            yield return(Submit());

            Assert.AreEqual(1, attackableRange.Characters.Count);
            Assert.AreEqual(0, attackableRange.AttackableTransforms.Count);
        }