コード例 #1
0
        /// <summary>
        /// Execute end turn command
        /// </summary>
        public override void Execute()
        {
            RefreshHandSignal.Dispatch();
            RefreshArenaSignal.Dispatch();

            // Activate battle cards
            ActivateBattleCardsSignal.Dispatch();

            // Switch active state
            BattleArena.ActiveSide =
                BattleArena.ActiveSide == BattleSide.Player ? BattleSide.Opponent : BattleSide.Player;

            RefreshHistoryLog.Dispatch();
            // refresh opponent views
            RefreshHandSignal.Dispatch();
            RefreshArenaSignal.Dispatch();

            // Check is game over
            if (BattleArena.IsGameOver())
            {
                EndGameSignal.Dispatch();
                return;
            }

            // Init battle turn
            InitBattleTurnSignal.Dispatch();
        }
コード例 #2
0
        /// <summary>
        /// On register mediator
        /// </summary>
        public override void OnRegister()
        {
            View.OnAddCartToBattleArena += AddCardToBattleArena;

            RefreshArenaSignal.AddListener(() =>
            {
                if (BattleArena.ActiveSide != View.Side)
                {
                    return;
                }
                _cardUnitViews.Clear();
                foreach (Transform child in View.transform)
                {
                    var view = child.GetComponent <BattleUnitView>();
                    _cardUnitViews.Add(view);
                }

                BattleArena.ArenaCardsCount = _cardUnitViews.Count;
            });

            ActivateBattleCardsSignal.AddListener(() =>
            {
                if (BattleArena.ActiveSide != View.Side)
                {
                    return;
                }
                ActivateBattleCards();
            });
        }