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); }
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); }