示例#1
0
        public void OnDiscardTile(Tile tile, bool isLastDraw, int bonusTimeLeft)
        {
            Debug.Log($"Sending request of discarding tile {tile}");
            var info = new EventMessages.DiscardTileInfo
            {
                PlayerIndex        = CurrentRoundStatus.LocalPlayerIndex,
                IsRichiing         = CurrentRoundStatus.IsRichiing,
                DiscardingLastDraw = isLastDraw,
                Tile          = tile,
                BonusTurnTime = bonusTimeLeft
            };

            PhotonNetwork.RaiseEvent(
                EventMessages.DiscardTileEvent, info,
                EventMessages.ToMaster, EventMessages.SendReliable);
            var localDiscardState = new LocalDiscardState
            {
                CurrentRoundStatus = CurrentRoundStatus,
                CurrentPlayerIndex = CurrentRoundStatus.LocalPlayerIndex,
                IsRichiing         = CurrentRoundStatus.IsRichiing,
                DiscardingLastDraw = isLastDraw,
                Tile = tile
            };

            StateMachine.ChangeState(localDiscardState);
        }
示例#2
0
 private void OnDiscardTileEvent(EventMessages.DiscardTileInfo info)
 {
     if (info.PlayerIndex != CurrentRoundStatus.CurrentPlayerIndex)
     {
         Debug.Log($"[Server] It is not player {info.PlayerIndex}'s turn to discard a tile, ignoring this message");
         return;
     }
     // Change to discardTileState
     ServerBehaviour.Instance.DiscardTile(
         info.PlayerIndex, info.Tile, info.IsRichiing,
         info.DiscardingLastDraw, info.BonusTurnTime, TurnDoraAfterDiscard);
 }
示例#3
0
        public void OnDiscardTile(Tile tile, bool isLastDraw, int bonusTimeLeft)
        {
            Debug.Log($"Sending request of discarding tile {tile}");
            var info = new EventMessages.DiscardTileInfo
            {
                PlayerIndex        = CurrentRoundStatus.LocalPlayerIndex,
                IsRichiing         = CurrentRoundStatus.IsRichiing,
                DiscardingLastDraw = isLastDraw,
                Tile          = tile,
                BonusTurnTime = bonusTimeLeft
            };

            PhotonNetwork.RaiseEvent(
                EventMessages.DiscardTileEvent, info,
                EventMessages.ToMaster, EventMessages.SendReliable);
            controller.InTurnPanelManager.Close();
            CurrentRoundStatus.SetRichiing(false);
            controller.HandPanelManager.RemoveCandidates();
        }