void DrawRoomInformation(Rect rect, RoomContent room) { string infoText = ""; infoText += "방이름[" + room.roomId + "]: " + room.name + "\t\t"; int count = 0; string epStr = ""; for (int i = 0; i < maxMemberNum; ++i) { if (room.members[i] != -1) { IPEndPoint ep = network_.GetEndPoint(room.members[i]); if (ep != null) { epStr += "멤버" + (i + 1).ToString() + "의 주소: " + ep.Address + ":" + ep.Port + "\n"; ++count; } } } infoText += "인수: " + count + "\t\t레벨: " + levelString[room.level] + "\n\n"; infoText += epStr; GUI.TextField(new Rect(rect.x, rect.y, rect.width, rect.height), infoText); }
void WaitMembers(RoomContent room) { if (timer > 5.0f) { RequestSearchRoom(room.roomId, -1); timer = 0.0f; } }
void WaitMembers(RoomContent room) { if (timer > 5.0f) { int roomId = room.roomId; SearchRoom(-1, roomId, room.level); timer = 0.0f; } }
RoomContent MapCreateRoomContentVmToRoomContent(CreateRoomContentVm createRoomContet, string content, string roomId) { var roomContent = new RoomContent(); roomContent.id = createRoomContet.Id; roomContent.roomId = roomId; roomContent.content = content; return(roomContent); }
public void Link(RoomContent other) { RoomContentEdge edge = edges.FirstOrDefault(e => e.GetTargetContentId() == other.id); if (edge == null) { edge = new RoomContentEdge(other.id); edges.Add(edge); } }
// // 매칭 서버 측 처리. // void DisconnectRoomMembers(RoomContent room) { foreach (int node in room.members) { if (node != -1) { network_.Disconnect(node); m_members.Remove(node); } } }
/////////////////////////////////////////////////// /// <summary> /// Créer un graph vide rectangle de graphWidth x graphHeight cases avec des coordonnées sur 2 dimensions /// </summary> private void CreateEmptyContentGraph() { for (int y = 0; y < graphHeight; y++) { for (int x = 0; x < graphWidth; x++) { var newContent = new RoomContent(new Vector2(x, y)); allContents.Add(newContent); } } }
void JoinRoom(int node, int roomId) { Debug.Log("ReceiveJoinRoomPacket"); MatchingResponse response = new MatchingResponse(); response.roomId = -1; response.request = MatchingRequestId.JoinRoom; int memberNum = 0; if (rooms_.ContainsKey(roomId) == true) { RoomContent room = rooms_[roomId]; m_members[node].roomId = roomId; response.result = MatchingResult.MemberIsFull; for (int i = 0; i < maxMemberNum; ++i) { if (room.members[i] == -1) { // 자리가 있음. room.members[i] = node; rooms_[roomId] = room; response.result = MatchingResult.Success; response.roomId = roomId; response.name = room.name; break; } } // 정원 체크. for (int i = 0; i < room.members.Length; ++i) { if (room.members[i] != -1) { ++memberNum; } } } else { Debug.Log("JoinRoom failed."); response.result = MatchingResult.RoomIsGone; response.name = ""; } MatchingResponsePacket packet = new MatchingResponsePacket(response); network_.SendReliable <MatchingResponse>(node, packet); }
void CreateRoom(int node, string name, int level) { Debug.Log("ReceiveCreateRoomRequest"); MatchingResponse response = new MatchingResponse(); response.request = MatchingRequestId.CreateRoom; if (rooms_.Count < maxRoomNum) { RoomContent room = new RoomContent(); room.roomId = roomIndex; room.name = name; room.level = level; // 자기 자신을 맨앞으로 설정. room.members[0] = node; m_members[node].roomId = roomIndex; rooms_.Add(roomIndex, room); ++roomIndex; response.result = MatchingResult.Success; response.roomId = room.roomId; response.name = ""; string str = "Request node:" + node + " Created room id:" + response.roomId; Debug.Log(str); } else { response.result = MatchingResult.RoomIsFull; response.roomId = -1; Debug.Log("Create room failed."); } MatchingResponsePacket packet = new MatchingResponsePacket(response); network_.SendReliable <MatchingResponse>(node, packet); }
public DungeonRoom(int col, int row, int level, RoomContent content = RoomContent.None) { _position = new RoomPosition(col, row); _content = content; _connections = new List <RoomConnection>(); if (content == RoomContent.Start || content == RoomContent.Boss || content == RoomContent.None) { return; } _encounter = new EncounterData() { encounter = DataHolder._data.Encounters.GetRandomEncounter(_content), level = level, rarity = (Rarity)Random.Range(0, 5) }; }
void RequestStartSession(RoomContent room) { MatchingRequest request = new MatchingRequest(); request.request = MatchingRequestId.StartSession; request.version = NetConfig.SERVER_VERSION; request.name = room.roomName; request.roomId = room.roomId; Debug.Log("Request start session[room:" + room.roomName + " " + room.roomId + "]"); if (network_ != null) { MatchingRequestPacket packet = new MatchingRequestPacket(request); network_.SendReliable <MatchingRequest>(serverNode, packet); } }
public AEncounter GetRandomEncounter(RoomContent content) { switch (content) { case RoomContent.Obstacle: return(obstacleEncounters[Random.Range(0, obstacleEncounters.Length)]); case RoomContent.SkillCheck: return(skillEncounters[Random.Range(0, skillEncounters.Length)]); case RoomContent.Battle: return(battleEncounter[Random.Range(0, battleEncounter.Length)]); case RoomContent.Trap: return(trapEncounter[Random.Range(0, trapEncounter.Length)]); case RoomContent.Generic: return(genericEncounter[Random.Range(0, genericEncounter.Length)]); case RoomContent.Gift: return(giftEncounter[Random.Range(0, giftEncounter.Length)]); } return(GetRandom()); }
void SearchRoomResponse(int roomNum, RoomInfo[] rooms) { m_rooms.Clear(); for (int i = 0; i < roomNum; ++i) { RoomContent r = new RoomContent(); r.roomId = rooms[i].roomId; r.roomName = rooms[i].name; r.members[0] = rooms[i].members; m_rooms.Add(rooms[i].roomId, r); string str = "Room name[" + i + "]:" + rooms[i].name + " [id:" + rooms[i].roomId + ":" + rooms[i].members + "]"; Debug.Log(str); } }
void RequestJoinRoom(RoomContent room) { MatchingRequest request = new MatchingRequest(); request.request = MatchingRequestId.JoinRoom; request.version = NetConfig.SERVER_VERSION; request.name = ""; request.roomId = room.roomId; if (network_ != null) { MatchingRequestPacket packet = new MatchingRequestPacket(request); network_.SendReliable <MatchingRequest>(serverNode, packet); } string str = "RequestJoinRoom:" + room.roomId; Debug.Log(str); }
public PropertyRoomContent GetPropertyRoomContents(string PropertyCode) { var objPropertyRoomContent = new PropertyRoomContent(); try { var response = ServiceBridge <string, List <Model.ServiceModel.PropertyRoomContentResponse.PropertyRoomContentResponse> > .Run(PropertyCode, ServiceTypes.PropertyRoomContentSearch, HttpMethod.Get); objPropertyRoomContent.RoomContents = new List <RoomContent>(); RoomContent objRoomContent; if (response != null) { var objRoom = response.FirstOrDefault(); if (objRoom != null) { objPropertyRoomContent.Market = objRoom.market; objPropertyRoomContent.PropertyCode = objRoom.property; objPropertyRoomContent.PropertyName = objRoom.propertyName; } foreach (var item in response) { objRoomContent = new RoomContent(); objRoomContent.Name = item.name; objRoomContent.Summary = item.summary; objRoomContent.ImageUrl = item.thumbnail.url; objPropertyRoomContent.RoomContents.Add(objRoomContent); } } } catch (Exception ex) { } return(objPropertyRoomContent); }
void DrawRoomInformation(Rect rect, RoomContent room) { string infoText = ""; infoText += "방이름[" + room.roomId + "]: " + room.name + "\t\t"; int count = 0; string epStr = ""; for (int i = 0; i < maxMemberNum; ++i) { if (room.members[i] != -1) { IPEndPoint ep = network_.GetEndPoint(room.members[i]); if (ep != null) { epStr += "멤버" + (i+1).ToString() + "의 주소: " + ep.Address + ":" + ep.Port + "\n"; ++count; } } } infoText += "인수: " + count + "\t\t레벨: " + levelString[room.level] + "\n\n"; infoText += epStr; GUI.TextField(new Rect(rect.x, rect.y, rect.width, rect.height), infoText); }
void SearchRoomResponse(int roomNum, RoomInfo[] rooms) { m_rooms.Clear(); for (int i = 0; i < roomNum; ++i) { RoomContent r = new RoomContent(); r.roomId = rooms[i].roomId; r.roomName = rooms[i].name; r.members[0] = rooms[i].members; m_rooms.Add(rooms[i].roomId, r); string str = "Room name[" + i + "]:" + rooms[i].name + " [id:" + rooms[i].roomId + ":" + rooms[i].members +"]"; Debug.Log(str); } }
void RequestStartSession(RoomContent room) { MatchingRequest request = new MatchingRequest(); request.request = MatchingRequestId.StartSession; request.version = NetConfig.SERVER_VERSION; request.name = room.roomName; request.roomId = room.roomId; request.level = -1; Debug.Log("Request start session[room:" + room.roomName + " " + room.roomId + "]"); if (network_ != null) { MatchingRequestPacket packet = new MatchingRequestPacket(request); network_.SendReliable<MatchingRequest>(serverNode, packet); } }
void RequestJoinRoom(RoomContent room) { MatchingRequest request = new MatchingRequest(); request.request = MatchingRequestId.JoinRoom; request.version = NetConfig.SERVER_VERSION; request.name = ""; request.roomId = room.roomId; request.level = -1; if (network_ != null) { MatchingRequestPacket packet = new MatchingRequestPacket(request); network_.SendReliable<MatchingRequest>(serverNode, packet); } string str = "RequestJoinRoom:" + room.roomId; Debug.Log(str); }
// Use this for initialization void Start() { string jsonPath = Path.Combine(Application.streamingAssetsPath, mapJsonFile); print(jsonPath); if (File.Exists(jsonPath)) { // Read the json from the file into a string string dataAsJson = File.ReadAllText(jsonPath); // Pass the json to JsonUtility, and tell it to create a GameData object from it mapData = JsonUtility.FromJson <Map>(dataAsJson); } else { print("error on reading json file"); } Room prevRoom = Instantiate(startRoom, level); // instantiate player OVRCameraRig player = Instantiate(playerPrefab, playerSpawn.position, playerSpawn.rotation); ArcTeleporter teleporter = Instantiate(teleporterPrefab); teleporter.objectToMove = player.transform; teleporter.GetComponent <TallRaycaster>().trackingSpace = player.GetComponentInChildren <Transform>(); // generate rooms for (int i = 0; i < mapData.rooms.Length; i++) { // room type is middle room unless this is last room Room roomType = (i == mapData.rooms.Length - 1) ? endRoom : middleRoom; RoomContent rc = mapData.rooms[i]; Room currentRoom = Instantiate(roomType, level); // get the previous exit and this entrance Transform prevExit = prevRoom.exits[prevRoom.exits.Length - 1]; Transform roomEntrance = currentRoom.exits[0]; // calculate world offset based on previous exit currentRoom.transform.rotation = new Quaternion(roomEntrance.rotation.x - prevExit.rotation.x, roomEntrance.rotation.y - (prevExit.rotation.y + 180), roomEntrance.rotation.z - prevExit.rotation.z, roomEntrance.rotation.w - prevExit.rotation.w); currentRoom.transform.position = prevExit.position - currentRoom.transform.rotation * roomEntrance.localPosition; //room is created, fill with content for (int j = 0; j < rc.imagePaths.Length && j < currentRoom.paintingSpawns.Length; j++) { Texture2D texture = loadImage(new Vector2(100, 100), Path.Combine(Application.streamingAssetsPath, rc.imagePaths[j])); GameObject prefab = Instantiate(paintingPrefab, currentRoom.paintingSpawns[j].position, currentRoom.paintingSpawns[j].rotation); prefab.GetComponent <Renderer>().material.mainTexture = texture; } currentRoom.SetAudio(rc.audioPath); GameObject tmp = Instantiate(textMeshPro, currentRoom.textSpawn.position, currentRoom.textSpawn.rotation); tmp.GetComponent <TMPro.TextMeshPro>().text = rc.text; // instanstiate room prevRoom = currentRoom; } }
void StartSession(int node, int roomId) { string str = "ReceiveStartSessionRequest[roomId:" + roomId + "]"; Debug.Log(str); SessionData response = new SessionData(); RoomContent room = null; if (rooms_.ContainsKey(roomId) == true) { room = rooms_[roomId]; response.endPoints = new EndPointData[maxMemberNum]; int index = 0; for (int i = 0; i < maxMemberNum; ++i) { if (room.members[i] != -1) { IPEndPoint ep = network_.GetEndPoint(room.members[i]) as IPEndPoint; response.endPoints[index].ipAddress = ep.Address.ToString(); response.endPoints[index].port = NetConfig.GAME_PORT; ++index; } } response.members = index; response.result = MatchingResult.Success; } else { response.result = MatchingResult.RoomIsGone; } if (room != null) { rooms_[roomId].isClosed = true; str = "Request room id: " + roomId + " MemberNum:" + response.members + " result:" + response.result; Debug.Log(str); for (int i = 0; i < response.members; ++i) { str = "member[" + i + "]" + ":" + response.endPoints[i].ipAddress + ":" + response.endPoints[i].port; Debug.Log(str); } int index = 0; for (int i = 0; i < room.members.Length; ++i) { int target = room.members[i]; if (target != -1) { response.playerId = index; SessionPacket packet = new SessionPacket(response); network_.SendReliable <SessionData>(target, packet); ++index; } } } }
void CreateRoom(int node, string name, int level) { Debug.Log("ReceiveCreateRoomRequest"); MatchingResponse response = new MatchingResponse(); response.request = MatchingRequestId.CreateRoom; if (rooms_.Count < maxRoomNum) { RoomContent room = new RoomContent(); room.roomId = roomIndex; room.name = name; room.level = level; // 자기 자신을 맨앞으로 설정. room.members[0] = node; m_members[node].roomId = roomIndex; rooms_.Add(roomIndex, room); ++roomIndex; response.result = MatchingResult.Success; response.roomId = room.roomId; response.name = ""; string str = "Request node:" + node + " Created room id:" + response.roomId; Debug.Log(str); } else { response.result = MatchingResult.RoomIsFull; response.roomId = -1; Debug.Log("Create room failed."); } MatchingResponsePacket packet = new MatchingResponsePacket(response); network_.SendReliable<MatchingResponse>(node, packet); }
public RoomContent GetContent(Vector2 pos) { string id = RoomContent.GetIdFromPos(pos); return(allContents.FirstOrDefault(c => c.GetId() == id)); }