Ejemplo n.º 1
0
        public IServerMsg.OperateRoomResponse OperateRoom(IClientHandler client, RoomOperateKind kind)
        {
            if (_owner != client.Id)
            {
                return(IServerMsg.OperateRoomResponse.PlayerIsNotOwner);
            }

            switch (kind)
            {
            case RoomOperateKind.StartPlaying:
            {
                if (RoomStatus == RoomStatus.Playing)
                {
                    return(IServerMsg.OperateRoomResponse.InvalidRoomStatus);
                }

                if (_clients.Count < _roomConfig.NumberOfPlayersRange.Item1)
                {
                    return(IServerMsg.OperateRoomResponse.NotEnoughPeople);
                }

                StartPlaying();

                break;
            }

            case RoomOperateKind.FinishPlaying:
            {
                if (RoomStatus != RoomStatus.Playing)
                {
                    return(IServerMsg.OperateRoomResponse.InvalidRoomStatus);
                }

                FinishPlaying();

                break;
            }

            default:
                break;
            }

            return(IServerMsg.OperateRoomResponse.Success);
        }
Ejemplo n.º 2
0
 public OperateRoom(RoomOperateKind operate)
 {
     Operate = operate;
 }
Ejemplo n.º 3
0
 public NotifyRoomOperation(RoomOperateKind operate)
 {
     Operate = operate;
 }
Ejemplo n.º 4
0
 public void OnNotifiedRoomOperation(RoomOperateKind kind)
 {
     IsPlaying = kind == RoomOperateKind.StartPlaying;
 }