Exemple #1
0
    public void RepositionObjectClient(SpotPuzzleRoomMessage _msg)
    {
        List <Vector3> tempList = new List <Vector3>();

        tempList.Add(_msg.shape01_pos);
        tempList.Add(_msg.shape02_pos);
        tempList.Add(_msg.shape03_pos);
        tempList.Add(_msg.shape04_pos);

        OriginalGroup = this.transform.GetChild(0);
        ChangedGroup  = this.transform.GetChild(1);

        for (int i = 0; i < OriginalGroup.childCount; ++i)
        {
            Vector3 newPos = tempList[i];
            OriginalGroup.GetChild(i).position = newPos;
            newPos.x += transform.localScale.x * 0.5f;
            ChangedGroup.GetChild(i).position = newPos;
        }

        changedObject = ChangedGroup.GetChild(_msg.changedObjectIndex).gameObject;

        Color newColor = changedObject.GetComponent <SpriteRenderer>().color;

        newColor = _msg.changedObjectColor;

        changedObject.GetComponent <SpriteRenderer>().color = newColor;
    }
Exemple #2
0
    public void SendSpotPuzzle_C2S(SpotPuzzleRoomMessage _message)
    {
        SpotPuzzleRoomMessage msg = _message;

        Debug.Log("SendSpotPuzzle_C2S");

        myClient.Send(MyMsgType.spotPuzzleMsgType_client, msg);
    }
Exemple #3
0
    public void SendSpotPuzzle_S2C(SpotPuzzleRoomMessage _message)
    {
        SpotPuzzleRoomMessage msg = _message;

        Debug.Log("SendSpotPuzzle_S2C");

        if (NetworkServer.active)
        {
            NetworkServer.SendToAll(MyMsgType.spotPuzzleMsgType_server, msg);
        }
    }
Exemple #4
0
    public void OnRecvSpotPuzzle_Client(NetworkMessage netMsg)
    {
        if (Global.Instance.player.GetComponent <NetworkIdentity>().isServer)
        {
            return;
        }

        SpotPuzzleRoomMessage msg = netMsg.ReadMessage <SpotPuzzleRoomMessage>();

        Debug.Log("ClientRecv_SpotPuzzle : room_" + msg.roomId);
        //reinit the pos of the puzzles to match with host
        Global.Instance.roomGen.GetRoomList()[msg.roomId].GetComponent <SpotPuzzleRoomScript>().
        RepositionObjectClient(msg);
    }
Exemple #5
0
    public void OnRecvSpotPuzzle_Server(NetworkMessage netMsg)
    {
        SpotPuzzleRoomMessage msg = netMsg.ReadMessage <SpotPuzzleRoomMessage>();

        Debug.Log("Host/ServerRecv_SpotPuzzle : room_" + msg.roomId);
    }
Exemple #6
0
    // Use this for initialization

    void Start()
    {
        //Random.Range(1, 1);
        //wad = new ArrayList();

        player = Global.Instance.player;

        OriginalGroup = this.transform.GetChild(0);
        ChangedGroup  = this.transform.GetChild(1);
        int   randIndex = 0;
        Color newColor  = new Color(1, 1, 1);

        if (player.GetComponent <NetworkIdentity>().isServer)
        {
            for (int i = 0; i < OriginalGroup.childCount; ++i)
            {
                Vector3 newPos = new Vector3(Random.Range(transform.position.x - transform.localScale.x * 0.5f + 2.5f, transform.position.x - 2.5f), Random.Range(transform.position.y - transform.localScale.y * 0.5f + 2.5f, transform.position.y + transform.localScale.y * 0.5f - 2.5f), 1);
                OriginalGroup.GetChild(i).position = newPos;
                newPos.x += transform.localScale.x * 0.5f;
                ChangedGroup.GetChild(i).position = newPos;
            }

            randIndex     = Random.Range(0, 4);
            changedObject = ChangedGroup.GetChild(randIndex).gameObject;

            newColor   = changedObject.GetComponent <SpriteRenderer>().color;
            newColor.r = Random.Range(0.0f, 1.0f);
            newColor.g = Random.Range(0.0f, 1.0f);
            newColor.b = Random.Range(0.0f, 1.0f);
            newColor.a = Random.Range(0.0f, 1.0f);

            changedObject.GetComponent <SpriteRenderer>().color = newColor;
        }



        roomScript = this.GetComponent <RoomScript>();

        doorInfoList.Add(new DoorInfo(roomScript.GetIsLocked(DIRECTION.LEFT), roomScript.GetHasTriggerBox(DIRECTION.LEFT), DIRECTION.LEFT));
        doorInfoList.Add(new DoorInfo(roomScript.GetIsLocked(DIRECTION.RIGHT), roomScript.GetHasTriggerBox(DIRECTION.RIGHT), DIRECTION.RIGHT));
        doorInfoList.Add(new DoorInfo(roomScript.GetIsLocked(DIRECTION.UP), roomScript.GetHasTriggerBox(DIRECTION.UP), DIRECTION.UP));
        doorInfoList.Add(new DoorInfo(roomScript.GetIsLocked(DIRECTION.DOWN), roomScript.GetHasTriggerBox(DIRECTION.DOWN), DIRECTION.DOWN));

        //doorList.Add(roomScript.GetIsLocked(DIRECTION.LEFT));
        //doorList.Add(roomScript.GetIsLocked(DIRECTION.RIGHT));
        //doorList.Add(roomScript.GetIsLocked(DIRECTION.UP));
        //doorList.Add(roomScript.GetIsLocked(DIRECTION.DOWN));

        //if (spotPuzzleMsg != null)
        //    RepositionObjectClient(spotPuzzleMsg);

        elapsedTime = 0.0f;

        puzzleComplete = false;
        isCompleted    = false;
        isLock         = false;

        style   = new GUIStyle();
        content = new GUIContent();

        //if is host/server
        if (player.GetComponent <NetworkIdentity>().isServer)
        {
            //send msg to clients
            SpotPuzzleRoomMessage message = new SpotPuzzleRoomMessage();
            message.roomId             = roomScript.GetRoomID();
            message.shape01_pos        = OriginalGroup.GetChild(0).position;
            message.shape02_pos        = OriginalGroup.GetChild(1).position;
            message.shape03_pos        = OriginalGroup.GetChild(2).position;
            message.shape04_pos        = OriginalGroup.GetChild(3).position;
            message.changedObjectIndex = randIndex;
            message.changedObjectColor = newColor;

            MessageHandler.Instance.SendSpotPuzzle_S2C(message);
        }
    }