// 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; } } }
// 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()); } } } }
// 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)); }
// 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); } }
// 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); } }
// 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); } } } }