Beispiel #1
0
 /// <summary>
 /// 开始发牌、抢地主
 /// </summary>
 /// <param name="uidList"></param>
 public void StartFight(List <int> uidList)
 {
     SingleExecute.Instance.Execute(() =>
     {
         FightRoom room = FightCache.Create(uidList);
         room.InitPlayerCards();
         room.Sort();
         //返回给客户端
         foreach (var uid in uidList)
         {
             ClientPeer client       = UserCache.GetClient(uid);
             List <CardDto> cardDtos = room.GetUserCard(uid);
             client.Send(new SocketMsg
             {
                 OpCode  = MsgType.Fight,
                 SubCode = FightCode.Get_Card_Result,
                 value   = cardDtos
             });
         }
         //开始抢地主
         int firstUserId = room.GetFirstUId();
         var socketMsg   = new SocketMsg
         {
             OpCode  = MsgType.Fight,
             SubCode = FightCode.Turn_Grab_Bro,
             value   = firstUserId
         };
         BroCast(room, socketMsg);
     });
 }
Beispiel #2
0
 /// <summary>
 /// 抢地主
 /// </summary>
 /// <param name="client"></param>
 /// <param name="resulit"></param>
 private void GrabLandlord(ClientPeer client, bool resulit)
 {
     SingleExecute.Instance.Execute(() =>
     {
         if (UserCache.IsOnline(client) == false)
         {
             socketMsg.State = null;
             return;
         }
         //获取用户id
         int userId     = UserCache.GetClientUserId(client);
         FightRoom room = FightCache.GetRoomByUId(userId);
         if (resulit == true)
         {
             //抢地主
             room.SetLandlord(userId);
             //发放底牌
             GrabDto dto = new GrabDto
             {
                 UserId         = userId,
                 TableCardList  = room.TabkeCardList,
                 PlayerCardList = room.GetUserCard(userId)
             };
             socketMsg.SubCode = FightCode.Grab_Landlord_Bro;
             socketMsg.value   = dto;
             BroCast(room, socketMsg);
         }
         else
         {
             //不抢
             int nextUID       = room.GetNextUId(userId);
             socketMsg.SubCode = FightCode.Turn_Grab_Bro;
             socketMsg.value   = nextUID;
             BroCast(room, socketMsg);
         }
     });
 }