Esempio n. 1
0
    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);
    }
Esempio n. 2
0
 void WaitMembers(RoomContent room)
 {
     if (timer > 5.0f)
     {
         RequestSearchRoom(room.roomId, -1);
         timer = 0.0f;
     }
 }
Esempio n. 3
0
 void WaitMembers(RoomContent room)
 {
     if (timer > 5.0f)
     {
         int roomId = room.roomId;
         SearchRoom(-1, roomId, room.level);
         timer = 0.0f;
     }
 }
Esempio n. 4
0
        RoomContent MapCreateRoomContentVmToRoomContent(CreateRoomContentVm createRoomContet, string content, string roomId)
        {
            var roomContent = new RoomContent();

            roomContent.id      = createRoomContet.Id;
            roomContent.roomId  = roomId;
            roomContent.content = content;

            return(roomContent);
        }
Esempio n. 5
0
    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);
        }
    }
Esempio n. 6
0
    //
    // 매칭 서버 측 처리.
    //



    void DisconnectRoomMembers(RoomContent room)
    {
        foreach (int node in room.members)
        {
            if (node != -1)
            {
                network_.Disconnect(node);
                m_members.Remove(node);
            }
        }
    }
Esempio n. 7
0
    ///////////////////////////////////////////////////

    /// <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);
            }
        }
    }
Esempio n. 8
0
    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);
    }
Esempio n. 9
0
    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);
    }
Esempio n. 10
0
    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());
    }
Esempio n. 13
0
    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);
        }
Esempio n. 16
0
	//
	// 매칭 서버 측 처리.
	//



	void DisconnectRoomMembers(RoomContent room)
	{
		foreach (int node in room.members) {
			if (node != -1) {
				network_.Disconnect(node);
				m_members.Remove(node);
			}
		}
	}
Esempio n. 17
0
	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);

	}
Esempio n. 18
0
	void WaitMembers(RoomContent room)
	{
		if (timer > 5.0f) {
			int roomId = room.roomId;
			SearchRoom(-1, roomId, room.level);
			timer = 0.0f;
		}
	}
Esempio n. 19
0
	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);
		}
	}
Esempio n. 20
0
	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);
		}
	}
Esempio n. 21
0
	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);
	}
Esempio n. 22
0
    // 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;
        }
    }
Esempio n. 23
0
    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;
                }
            }
        }
    }
Esempio n. 24
0
	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);
	}
Esempio n. 25
0
	void WaitMembers(RoomContent room)
	{
		if (timer > 5.0f) {
			RequestSearchRoom(room.roomId, -1);
			timer = 0.0f;
		}
	}
Esempio n. 26
0
    public RoomContent GetContent(Vector2 pos)
    {
        string id = RoomContent.GetIdFromPos(pos);

        return(allContents.FirstOrDefault(c => c.GetId() == id));
    }