private void OnInTurnOperationEvent(EventMessages.InTurnOperationInfo info) { if (info.PlayerIndex != CurrentRoundStatus.CurrentPlayerIndex) { Debug.Log($"[Server] It is not player {info.PlayerIndex}'s turn to perform a in turn operation, ignoring this message"); return; } // handle message according to its type var operation = info.Operation; switch (operation.Type) { case InTurnOperationType.Tsumo: HandleTsumo(operation); break; case InTurnOperationType.Kong: HandleKong(operation); break; case InTurnOperationType.RoundDraw: HandleRoundDraw(operation); break; case InTurnOperationType.Bei: HandleBei(operation); break; default: Debug.LogError($"[Server] This type of in turn operation should not be sent to server."); break; } }
private void OnInTurnOperationTaken(InTurnOperation operation, int bonusTurnTime) { var info = new EventMessages.InTurnOperationInfo { PlayerIndex = CurrentRoundStatus.LocalPlayerIndex, Operation = operation, BonusTurnTime = bonusTurnTime }; PhotonNetwork.RaiseEvent( EventMessages.InTurnOperationEvent, info, EventMessages.ToMaster, EventMessages.SendReliable); }