Пример #1
0
 internal static MsgStartBattle.StartPlay toStartPlay(int index, User user)
 {
     MsgStartBattle.StartPlay startPlay = new MsgStartBattle.StartPlay();
     startPlay.Id    = user.Userid;
     startPlay.X     = random.Next(1, 20);
     startPlay.Y     = random.Next(1, 70);
     startPlay.Index = index;
     return(startPlay);
 }
Пример #2
0
        public static void MsgStartBattle(ClientState c, MsgBase msgBase)
        {
            MsgStartBattle msg  = (MsgStartBattle)msgBase;
            User           user = c.user;

            if (user == null)
            {
                return;
            }
            //room
            Room room = RoomManager.GetRoom(user.RoomId);

            if (room == null)
            {
                msg.code   = HttpStatusCode.NotFound;
                msg.result = "房间不存在";
                NetManager.Send(c, msg);
                return;
            }
            //是否是房主
            if (!room.IsOwner(user))
            {
                msg.code   = HttpStatusCode.InternalServerError;
                msg.result = "你不是房主";
                NetManager.Send(c, msg);
                return;
            }
            //开战
            if (!room.StartBattle())
            {
                msg.code = HttpStatusCode.InternalServerError;
                NetManager.Send(c, msg);
                msg.result = "无法开始";
                return;
            }
            msg.startPlays = new List <MsgStartBattle.StartPlay>();
            for (int i = 0; i < room.Users.Count; i++)
            {
                MsgStartBattle.StartPlay startPlay = UserWrapper.toStartPlay(i, room.Users[i]);
                msg.startPlays.Add(startPlay);
            }
            room.Status = 1;
            msg.code    = HttpStatusCode.OK;
            //成功
            room.Broadcast(msg);
        }