/// <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(); }
/// <summary> /// On register mediator /// </summary> public override void OnRegister() { ShowManaSignal.AddListener(manaCount => { if (BattleArena.ActiveSide != View.Side) { return; } OnShowMana(manaCount); }); RefreshHandSignal.AddListener(() => { if (BattleArena.ActiveSide != View.Side) { return; } OnRefreshHand(); }); }