public static void MsgHit(ClientState c, MsgBase msgBase) { MsgHit msg = msgBase as MsgHit; Player player = c.player; Player targetPlayer = PlayerManager.GetPlayer(msg.targetId); if (player == null || targetPlayer == null) { return; } Room room = RoomManager.GetRoom(player.roomId); if (room == null || room.status != Room.Status.FIGHT) { return; } if (player.id != msg.id) { return; } int damage = 35; targetPlayer.hp -= damage; msg.id = player.id; msg.hp = targetPlayer.hp; msg.damage = damage; room.Broadcast(msg); }
public static void MsgSyncTank(ClientState c, MsgBase msgBase) { MsgSyncTank msg = msgBase as MsgSyncTank; Player player = c.player; if (player == null) { return; } Room room = RoomManager.GetRoom(player.roomId); if (room == null || room.status != Room.Status.FIGHT) { return; } player.x = msg.x; player.y = msg.y; player.z = msg.z; player.ex = msg.ex; player.ey = msg.ey; player.ez = msg.ez; msg.id = player.id; room.Broadcast(msg); }
//请求开始战斗 public static void MsgStartBattle(ClientState c, MsgBase msgBase){ MsgStartBattle msg = (MsgStartBattle)msgBase; Player player = c.player; if(player == null) return; //room Room room = RoomManager.GetRoom(player.roomId); if(room == null){ msg.result = 1; player.Send(msg); return; } //是否是房主 if(!room.isOwner(player)){ msg.result = 1; player.Send(msg); return; } //开战 if(!room.StartBattle()){ msg.result = 1; player.Send(msg); return; } //成功 msg.result = 0; player.Send(msg); }
/// <summary> /// Initializes the room api. /// </summary> void InitRoomApi() { // If we have a room, we'll join the first room we see. // If we are the user with the lowest user ID, we will create the room. // Otherwise we will wait for the room to be created. if (roomManager.GetRoomCount() == 0) { DisplayUI.Instance.AppendText("InitRoomApi() - RoomCount == 0"); if (LocalUserHasLowestUserId()) { DisplayUI.Instance.AppendText("InitRoomApi() - Creating room "); // To keep anchors alive even if all users have left the session ... // Pass in true instead of false in CreateRoom. currentRoom = roomManager.CreateRoom(new XString("DefaultRoom"), roomID, false); currentState = ImportExportState.InitialAnchorRequired; } else { DisplayUI.Instance.AppendText("InitRoomApi() - Not Lowest Id"); } } else { DisplayUI.Instance.AppendText("InitRoomApi() - RoomCount > 0 Joining room"); currentRoom = roomManager.GetRoom(0); roomManager.JoinRoom(currentRoom); currentState = ImportExportState.RoomApiInitialized; } if (currentRoom != null) { DisplayUI.Instance.AppendText("In room :" + roomManager.GetCurrentRoom().GetName().GetString()); } }
public ActionResult Validate() { ReservationVM reservation = (ReservationVM)TempData["Reservation"]; TempData["Reservation"] = reservation; List <Room> rooms = new List <Room>(); foreach (int id in reservation.RoomIds) { Room room = RoomManager.GetRoom(id); rooms.Add(room); } ReservationValidateVM reservationValidate = new ReservationValidateVM(); reservationValidate.Arrival = reservation.Arrival; reservationValidate.Departure = reservation.Departure; reservationValidate.TotalNight = ReservationManager.GetNumberOfNight(reservation.Arrival, reservation.Departure); reservationValidate.FirstName = reservation.Firstname; reservationValidate.LastName = reservation.Lastname; reservationValidate.Rooms = rooms; reservationValidate.TotalPrice = ReservationManager.CalculatePrice(reservation.RoomIds, reservation.Arrival, reservation.Departure); reservationValidate.RoomNumber = rooms.Count(); ViewBag.ReservationValidate = reservationValidate; return(View(reservation)); }
public static void MsgFaPai(ClientState c, MsgBase msgBase) { MsgFaPai msg = (MsgFaPai)msgBase; Player player = c.player; if (player == null) { return; } Room room = RoomManager.GetRoom(player.roomId); if (room == null) { return; } GameManager gameManager = room.gameManager; if (gameManager == null) { return; } msg = gameManager.ProcessMsgFaPai(msg); //广播 gameManager.Broadcast(msg); }
public Game(int roomID) { this.roomID = roomID; Room room = RoomManager.GetRoom(roomID); playNum = room.maxPlayer; }
public static void MsgEnter(ClientState c, MsgBase msg) { MsgEnter msgEnter = (MsgEnter)msg; Player player = new Player(c); player.hp = msgEnter.hp; player.id = msgEnter.playId; player.style = msgEnter.style; player.x = msgEnter.x; player.y = msgEnter.y; player.veloctity = msgEnter.veloctity; PlayerManager.AddPlayer(player); List <MsgEnter> lists = new List <MsgEnter>(); foreach (var item in PlayerManager.players.Values) { MsgEnter newMsg = new MsgEnter(); newMsg.hp = item.hp; newMsg.playId = item.id; newMsg.style = item.style; newMsg.x = item.x; newMsg.y = item.y; newMsg.veloctity = item.veloctity; lists.Add(newMsg); } msgEnter.players = lists; User user = c.user; //获取房间 Room room = RoomManager.GetRoom(user.RoomId); room.Broadcast(msgEnter); }
public static void MsgEnterRoom(ClientState c, MsgBase msgBase) { MsgEnterRoom msg = (MsgEnterRoom)msgBase; Player player = c.player; if (player == null) { return; } if (player.roomId >= 0) { msg.result = 1; player.Send(msg); return; } Room room = RoomManager.GetRoom(msg.id); if (room == null) { msg.result = 1; player.Send(msg); return; } if (!room.AddPlayer(player.id)) { msg.result = 1; player.Send(msg); return; } msg.result = 0; player.Send(msg); }
public static void MsgLeaveRoom(ClientState c, MsgBase msgBase) { MsgLeaveRoom msg = (MsgLeaveRoom)msgBase; User user = c.user; if (user == null) { return; } Room room = RoomManager.GetRoom(user.RoomId); if (room == null) { return; } bool delete = room.RemoveUser(user.Userid); if (!delete) { Console.WriteLine("离开房间异常"); return; } //返回协议 user.RoomId = -1; msg.code = HttpStatusCode.OK; msg.result = JsonConvert.SerializeObject(room); room.Broadcast(msg); }
public async Task OnCloseAsync() { foreach (var room in User.rooms) { _roomManager.GetRoom(room).UnSubscribe(this); } }
/// <summary> /// Initializes the room api. /// </summary> void InitRoomApi() { // If we have a room, we'll join the first room we see. // If we are the user with the lowest user ID, we will create the room. // Otherwise we will wait for the room to be created. if (roomManager.GetRoomCount() == 0) { if (HolographicCameraManager.Instance.localIPs.Contains(HolographicCameraManager.Instance.HolographicCameraIP.Trim())) { Debug.Log("Creating room "); // To keep anchors alive even if all users have left the session ... // Pass in true instead of false in CreateRoom. currentRoom = roomManager.CreateRoom(new XString("DefaultRoom"), roomID, false); currentState = ImportExportState.InitialAnchorRequired; } else { Debug.Log("Waiting for HolographicCamera to join and create the anchor"); } } else { Debug.Log("Joining room"); currentRoom = roomManager.GetRoom(0); roomManager.JoinRoom(currentRoom); currentState = ImportExportState.RoomApiInitialized; } if (currentRoom != null) { Debug.Log("In room :" + roomManager.GetCurrentRoom().GetName().GetString()); } }
public override async Task HandleMessage(object message, ClientSocket socket) { var auth = (AuthMessage)message; if (string.IsNullOrEmpty(auth.Name)) { throw new Exception("missing: name"); } if (string.IsNullOrEmpty(auth.Password)) { throw new Exception("missing: password"); } var user = _userDatabase.Load(auth.Name); if (user == null || user.Password != auth.Password) { throw new Exception("auth failed"); } socket.User = user; foreach (var roomName in user.rooms.ToArray()) { try { var room = _roomManager.GetRoom(roomName); room.Subscribe(socket); } catch (RoomNotFoundException e) { user.rooms.Remove(roomName); _userDatabase.Save(user.Name, user); } } }
//开火协议 public static void MsgFire(ClientState c, MsgBase msgBase) { MsgFire msg = (MsgFire)msgBase; Player player = c.player; if (player == null) { return; } //room Room room = RoomManager.GetRoom(player.roomId); if (room == null) { return; } //status if (room.status != Room.Status.FIGHT) { return; } //广播 msg.id = player.id; room.Broadcast(msg); }
/// <summary> /// Initializes the room api. /// </summary> private void InitRoomApi() { if (roomManager.GetRoomCount() == 0) { // There used to be a check here: we'll disable it //if (anchoring) { Debug.Log("Creating room "); // To keep anchors alive even if all users have left the session ... // Pass in true instead of false in CreateRoom. currentRoom = roomManager.CreateRoom(new XString("DefaultRoom"), roomID, false); currentState = ImportExportState.InitialAnchorRequired; } } else { Debug.Log("Joining room "); currentRoom = roomManager.GetRoom(0); roomManager.JoinRoom(currentRoom); currentState = (currentRoom.GetAnchorCount() > 0 ? ImportExportState.RoomApiInitialized : ImportExportState.InitialAnchorRequired); } if (currentRoom != null) { Debug.Log("In room: " + roomManager.GetCurrentRoom().GetName().GetString()); } }
//离开房间 public static void MsgLeaveRoom(ClientState c, MsgBase msgBase) { MsgLeaveRoom msg = (MsgLeaveRoom)msgBase; Player player = c.player; if (player == null) { return; } Room room = RoomManager.GetRoom(player.roomId); if (room == null) { msg.result = 1; player.Send(msg); return; } room.RemovePlayer(player.id); //返回协议 msg.result = 0; player.roomId = -1; player.Send(msgBase); }
public static void MsgEndBattle(ClientState c, MsgBase msgBase) { MsgEndBattle msg = (MsgEndBattle)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; } Dictionary <string, bool> dictionaries = room.UserStatus.ToDictionary(pair => pair.Key, pair => false); room.UserStatus = dictionaries; room.Status = 0; msg.code = HttpStatusCode.OK; msg.result = JsonConvert.SerializeObject(room); //成功 room.Broadcast(msg); }
/// <summary> /// Initializes the room api. /// </summary> void InitRoomApi() { // If we have a room, we'll join the first room we see. // If we are the user with the lowest user ID, we will create the room. // Otherwise we will wait for the room to be created. if (roomManager.GetRoomCount() == 0) { if (LocalUserHasLowestUserId() && Time.frameCount > 1500) { Debug.Log("Creating room "); // Keep the room open even when all users have left the shared session. // This will allow us to persist an anchor in the same room on the sharing service. currentRoom = roomManager.CreateRoom(new XString("DefaultRoom"), roomID, true); CurrentState = ImportExportState.InitialAnchorRequired; } } else { Debug.Log("Joining room "); currentRoom = roomManager.GetRoom(0); roomManager.JoinRoom(currentRoom); CurrentState = ImportExportState.RoomApiInitialized; } if (currentRoom != null) { Debug.Log("In room :" + roomManager.GetCurrentRoom().GetName().GetString()); } }
public static void MsgGetRoomInfo(ClientState c, MsgBase msgBase) { MsgGetRoomInfo msg = (MsgGetRoomInfo)msgBase; User user = c.user; if (user == null) { msg.code = HttpStatusCode.Unauthorized; msg.result = "请先登录"; NetManager.Send(c, msg); return; } Room room = RoomManager.GetRoom(user.RoomId); if (room == null) { msg.code = HttpStatusCode.NotFound; msg.result = "房间不存在"; return; } //获取玩家列表 msg.code = HttpStatusCode.OK; msg.result = JsonConvert.SerializeObject(room); NetManager.Send(c, msg); }
public static void MsgLeave(ClientState c, MsgBase msg) { User user = c.user; //获取房间 Room room = RoomManager.GetRoom(user.RoomId); room.Broadcast(msg); }
public async Task GetRoomState() { RoomState roomState = RoomManager.GetRoom(ContextRoomId); PlaylistItem item = roomState.Playlist.Count > 0 ? roomState.Playlist[0] : null; if (item != null) { item.CalculateStartTimeCorrection(); } await Clients.Caller.RoomStateReceived(roomState != null, roomState); }
public override bool GetIsPlayableFromHand(CardManager cardManager, RoomManager roomManager, out CardSelectionBehaviour.SelectionError selectionError) { int selectedRoom = roomManager.GetSelectedRoom(); if (roomManager.GetRoom(selectedRoom) == roomManager.GetPyreRoom()) { selectionError = CardSelectionBehaviour.SelectionError.None; return(true); } selectionError = CardSelectionBehaviour.SelectionError.Unplayable; return(false); }
public override async Task HandleMessage(object message, ClientSocket socket) { var chat = (ChatMessage)message; if (!socket.User.rooms.Contains(chat.Room)) { throw new Exception("not joined"); } chat.Sender = socket.User.Name; _roomManager.GetRoom(chat.Room).Broadcast(chat); }
// public static void MsgEnterRoom(ClientState c, MsgBase msgBase){ // MsgEnterRoom msg = (MsgEnterRoom)msgBase; // Player player = c.player; // if(player == null) return; // //已经在房间里 // if(player.roomId >=0 ){ // msg.result = 1; // player.Send(msg); // return; // } // //获取房间 // Room room = RoomManager.GetRoom(msg.id); // if(room == null){ // msg.result = 1; // player.Send(msg); // return; // } // //进入 // if(!room.AddPlayer(player.id)){ // msg.result = 1; // player.Send(msg); // return; // } // //返回协议 // msg.result = 0; // player.Send(msg); // } //获取房间信息 public static void MsgGetRoomInfo(ClientState c, MsgBase msgBase){ MsgGetRoomInfo msg = (MsgGetRoomInfo)msgBase; Player player = c.player; if(player == null) return; Room room = RoomManager.GetRoom(player.roomId); if(room == null){ player.Send(msg); return; } player.Send(room.ToMsg()); }
public override bool GetIsPlayableFromHand(CardManager cardManager, RoomManager roomManager, out CardSelectionBehaviour.SelectionError selectionError) { int selectedRoom = roomManager.GetSelectedRoom(); var capInfo = roomManager.GetRoom(selectedRoom).GetCapacityInfo(Team.Type.Monsters); if (capInfo.max >= capInfo.count + GetParamInt()) { selectionError = CardSelectionBehaviour.SelectionError.None; return(true); } selectionError = CardSelectionBehaviour.SelectionError.Unplayable; return(false); }
public async Task CompleteVideo(string uid) { //set the next video as is playing RoomState roomState = RoomManager.GetRoom(ContextRoomId); if (roomState != null && !string.IsNullOrEmpty(uid)) { if (roomState.Playlist.Count > 1) { roomState.Playlist[1].IsPlaying = true; roomState.Playlist[1].ResetStartTimeTracking(); } } await RemovePlaylistItem(uid); }
public static void MsgMove(ClientState c, MsgBase msgBase) { MsgMove msg = (MsgMove)msgBase; Player player = PlayerManager.GetPlayer(msg.spriteId); player.x = msg.x; player.y = msg.y; player.veloctity = msg.veloctity; User user = c.user; //获取房间 Room room = RoomManager.GetRoom(user.RoomId); room.Broadcast(msg); }
public override async Task HandleMessage(object message, ClientSocket socket) { var command = (RoomMessage)message; socket.User.rooms.Remove(command.Room); _userDatabase.Save(socket.User.Name, socket.User); var room = _roomManager.GetRoom(command.Room); room.UnSubscribe(socket); room.Broadcast(new ChatMessage { Room = command.Room, Message = socket.User.Name + " has left the room", Sender = "[System]" }); }
public async Task ResumeVideo(string uid, float seekSeconds) { RoomState roomState = RoomManager.GetRoom(ContextRoomId); if (roomState != null && !string.IsNullOrEmpty(uid)) { PlaylistItem item = roomState.Playlist.FirstOrDefault(el => el.Uid == uid); if (item != null) { item.StartTime = seekSeconds; item.IsPlaying = true; item.ResetStartTimeTracking(); await UpdateAllRoomState(); } } }
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); }