Beispiel #1
0
    // Update is called once per frame
    void Update()
    {
        elapsedTime += Time.deltaTime;

        if (player == null)
        {
            return;
        }

        //if (isCompleted || completedWaves)
        //    return;

        if (Vector3.Distance(player.transform.position, transform.position) < transform.localScale.x * 0.5f - 2.0f && !completedWaves)
        {
            if (!Spawner.activeSelf)
            {
                Spawner.SetActive(true);
                //Spawner.GetComponent<EnemySpawner>().SetTotalWave(totalNumWave);
                Spawner.SendMessage("StartSpawner");
            }

            LockDoor(DIRECTION.LEFT);
            LockDoor(DIRECTION.RIGHT);
            LockDoor(DIRECTION.UP);
            LockDoor(DIRECTION.DOWN);

            OnTriggerBox(DIRECTION.LEFT);
            OnTriggerBox(DIRECTION.RIGHT);
            OnTriggerBox(DIRECTION.UP);
            OnTriggerBox(DIRECTION.DOWN);

            if (!isLock)
            {
                if (Global.Instance.player.GetComponent <NetworkIdentity>().isServer)
                {
                    MessageHandler.Instance.SendLockDoor_S2C(roomScript.GetRoomID());
                }
                else
                {
                    MessageHandler.Instance.SendLockDoor_C2S(roomScript.GetRoomID());
                }
                isLock = true;
            }
        }
    }
Beispiel #2
0
    // Update is called once per frame
    void Update()
    {
        elapsedTime += Time.deltaTime;
        if (isCompleted || puzzleComplete)
        {
            return;
        }
        //Debug.Log(player.transform.position);

        if (Vector3.Distance(player.transform.position, transform.position) < transform.localScale.x * 0.5f - 2.0f && !puzzleComplete)
        {
            LockDoor(DIRECTION.LEFT);
            LockDoor(DIRECTION.RIGHT);
            LockDoor(DIRECTION.UP);
            LockDoor(DIRECTION.DOWN);

            OnTriggerBox(DIRECTION.LEFT);
            OnTriggerBox(DIRECTION.RIGHT);
            OnTriggerBox(DIRECTION.UP);
            OnTriggerBox(DIRECTION.DOWN);

            if (!isLock)
            {
                isLock = true;
                if (Global.Instance.player.GetComponent <NetworkIdentity>().isServer)
                {
                    MessageHandler.Instance.SendLockDoor_S2C(roomScript.GetRoomID());
                }
                else
                {
                    MessageHandler.Instance.SendLockDoor_C2S(roomScript.GetRoomID());
                }
            }
        }
    }
Beispiel #3
0
    // Use this for initialization

    //172.21.134.118

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

        roomScript = this.GetComponent <RoomScript>();

        //playersList = GameObject.FindGameObjectsWithTag("Player");
        //Debug.Log("numPlayer: " + playersList.Length);
        //for (int i = 0; i < playersList.Length; i++)
        //{
        //    if (playersList[i].GetComponent<NetworkIdentity>().isLocalPlayer == true)
        //    {
        //        player = playersList[i];
        //        break;
        //    }
        //}

        player = Global.Instance.player;


        if (!isPosSet || player.GetComponent <NetworkIdentity>().isServer)
        {
            //Debug.Log("IS SETTING AGN");
            ObjectivePos.Set(Random.Range((transform.position.x - transform.localScale.x * 0.5f + 2.0f), transform.position.x), Random.Range((transform.position.y - transform.localScale.y * 0.5f + 2.0f), (transform.position.y + transform.localScale.y * 0.5f - 2.0f)), 0);
            TargetPos.Set(Random.Range((transform.position.x + transform.localScale.x * 0.5f - 2.0f), transform.position.x), Random.Range((transform.position.y - transform.localScale.y * 0.5f + 2.0f), (transform.position.y + transform.localScale.y * 0.5f - 2.0f)), 0);

            //transform.GetChild(0).position = ObjectivePos;
            transform.GetChild(0).position = TargetPos;

            if (player.GetComponent <NetworkIdentity>().isServer)
            {
                spawnedObj = genericSpawner.GetComponent <GenericSpawner>().SpawnObject(ObjectivePos, objective);
                //put the obj as child of room
                spawnedObj.transform.SetParent(this.gameObject.transform);
            }
        }

        if (player.GetComponent <NetworkIdentity>().isServer)
        {
            MessageHandler.Instance.SendPushPuzzle_S2C(1, roomScript.GetRoomID(), ObjectivePos, TargetPos);
        }
        //else
        //{
        //    Debug.Log("pushRommId: " + roomScript.GetRoomID());
        //    MessageHandler.Instance.SendPushPuzzle_C2S(roomScript.GetRoomID());
        //}

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

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

        elapsedTime = 0.0f;
        timer       = 5.0f;

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

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

        Debug.Log("minDist: " + (transform.localScale.x * 0.5f - 2.0f));
    }
Beispiel #4
0
    // Update is called once per frame
    void Update()
    {
        elapsedTime += Time.deltaTime;

        timer -= Time.deltaTime;
        //if (player.GetComponent<NetworkIdentity>().isLocalPlayer)
        //   Debug.Log(Vector3.Distance(player.transform.position, transform.position));


        float dist = Vector3.Distance(player.transform.position, transform.position);

        if (dist < transform.localScale.x * 0.5f - 2.0f && !puzzleComplete)
        {
            LockDoor(DIRECTION.LEFT);
            LockDoor(DIRECTION.RIGHT);
            LockDoor(DIRECTION.UP);
            LockDoor(DIRECTION.DOWN);

            OnTriggerBox(DIRECTION.LEFT);
            OnTriggerBox(DIRECTION.RIGHT);
            OnTriggerBox(DIRECTION.UP);
            OnTriggerBox(DIRECTION.DOWN);

            if (!isLock)
            {
                if (Global.Instance.player.GetComponent <NetworkIdentity>().isServer)
                {
                    MessageHandler.Instance.SendLockDoor_S2C(roomScript.GetRoomID());
                }
                else
                {
                    MessageHandler.Instance.SendLockDoor_C2S(roomScript.GetRoomID());
                }
                isLock = true;
            }
        }

        if (timer <= 0 && !puzzleComplete)
        {
            timer = 5.0f;
            SendMessage("SpawnEnemy");
        }

        if (!Global.Instance.player.GetComponent <NetworkIdentity>().isServer &&
            puzzleComplete == true)
        {
            OnTarget();
            //foreach (DoorInfo doorInfo in doorInfoList)
            //{
            //    if (!doorInfo.isLocked)
            //        roomScript.UnlockDoor(doorInfo.dir);
            //    if (!doorInfo.haveTriggerBox)
            //        roomScript.OffTriggerBox(doorInfo.dir);
            //}
        }

        if (spawnedObj)
        {
            //Update the guideLine
            Vector3 objToTarget = -spawnedObj.transform.localPosition + targetObj.transform.localPosition;
            objToTarget = new Vector3(objToTarget.x, objToTarget.y, 0);//force 0
            float len = objToTarget.magnitude;
            objToTarget.Normalize();
            guideLine.transform.rotation      = Quaternion.FromToRotation(new Vector3(1, 0, 0), objToTarget);
            guideLine.transform.localPosition = spawnedObj.transform.localPosition + objToTarget * len * 0.5f;
            guideLine.transform.localScale    = new Vector3(len, guideLine.transform.localScale.y, guideLine.transform.localScale.z);
            //Debug.Log(spawnedObj.transform.position + " to " + TargetPos + "  len = " + len);
        }
    }
Beispiel #5
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);
        }
    }
Beispiel #6
0
    // Update is called once per frame
    void Update()
    {
        if (player == null)
        {
            return;
        }

        elapsedTime += Time.deltaTime;
        if (isCompleted || puzzleComplete)
        {
            return;
        }
        //Debug.Log(player.transform.position);

        // put a list of player connected in global and then cehck them
        if (Vector3.Distance(player.transform.position, transform.position) < transform.localScale.x * 0.5f - 2.0f && !puzzleComplete)
        {
            LockDoor(DIRECTION.LEFT);
            LockDoor(DIRECTION.RIGHT);
            LockDoor(DIRECTION.UP);
            LockDoor(DIRECTION.DOWN);

            OnTriggerBox(DIRECTION.LEFT);
            OnTriggerBox(DIRECTION.RIGHT);
            OnTriggerBox(DIRECTION.UP);
            OnTriggerBox(DIRECTION.DOWN);

            if (!isLock)
            {
                if (Global.Instance.player.GetComponent <NetworkIdentity>().isServer)
                {
                    MessageHandler.Instance.SendLockDoor_S2C(roomScript.GetRoomID());
                }
                else
                {
                    MessageHandler.Instance.SendLockDoor_C2S(roomScript.GetRoomID());
                }
                isLock = true;
            }
        }

        if (textTimer < elapsedTime)
        {
            wrongSelection = false;
        }


        if (puzzleComplete)
        {
            foreach (DoorInfo doorinfo in doorInfoList)
            {
                if (!doorinfo.isLocked)
                {
                    roomScript.UnlockDoor(doorinfo.dir);
                }
                if (!doorinfo.haveTriggerBox)
                {
                    roomScript.OffTriggerBox(doorinfo.dir);
                }
            }
        }
    }