void OnTriggerEnter(Collider collider) { if (!isOn) { return; } if (collider.gameObject.name != "Head") { return; } if (collider.gameObject.tag == "Player") { GameObject cameraRig = GameObject.Find("/[CameraRig]"); ParticleSystem arrivalIndicator = cameraRig.GetComponentInChildren <ParticleSystem>(); arrivalIndicator.Play(); TeleportPlayer(cameraRig); } else if (collider.gameObject.tag == "Clone") { Debug.Log("In clone"); CloneController cloneCtrl = collider.gameObject.GetComponentInParent <CloneController>(); cloneCtrl.PlayArrivalIndicator(); } // play teleportation on player/clone teleportIndicator.time = 2; teleportIndicator.Play(); if (gameController != null) { gameController.StartGame(); } }
/// <summary> /// Function that runs after every frame. /// </summary> void Update() { CurrentFrameNumber++; Damaged = false; if (PreviousMovement != transform.position) { PreviousMovement = transform.position; ActionsInRound.AddAction(new PlayerMovementAction(PreviousMovement, CurrentFrameNumber)); } if (PreviousRotation != transform.rotation) { PreviousRotation = transform.rotation; ActionsInRound.AddAction(new PlayerTurnAction(PreviousRotation, CurrentFrameNumber)); } if (Input.GetMouseButtonDown(0) && isLocalPlayer) { if (FireSound != null) { FireSound.Play(); } CmdShoot(); ActionsInRound.AddAction(new PlayerShootAction(CurrentFrameNumber)); } if (CurrentFrameNumber == 200) { CloneController.SetActionReader(ActionsInRound); } }
private void ResetCount() { GameObject cloneController = GameObject.Find("Clone_Controller"); CloneController cloneControllerScript = cloneController.GetComponent <CloneController>(); if (cloneControllerScript.istalking == true) { float remainingtime = 6 - timecount; Invoke("ResetCount", remainingtime); Debug.Log(remainingtime); } else if (cloneControllerScript.istalking == false) { if (count == 1) { qpressed = true; reset = false; count = count - 1; timecount = 0; Invoke("NoMorePressed", 2.4f); returning = false; cloned = false; cloned1 = false; cloned2 = false; cloned3 = false; cloned4 = false; timeslider.gameObject.SetActive(false); timeslider1.gameObject.SetActive(false); timeslider2.gameObject.SetActive(false); timeslider3.gameObject.SetActive(false); timeslider4.gameObject.SetActive(false); } } }
void CheckIfQPressed() { GameObject cloneController = GameObject.Find("Clone_Controller"); CloneController cloneControllerScript = cloneController.GetComponent <CloneController>(); if (cloneControllerScript.istalking == true) { if (player_near == true || clone_near == true) { if (Input.GetKeyDown(KeyCode.Q)) { if (qpressed1 == false) { clonedwithq = true; qpressed1 = true; currenty = y; } else { if (charsparsing == false) { clonedwithq = false; qpressed1 = false; Debug.Log(currenty); y = currenty - 1; Talk(); } } } } } }
GameObject CreateClone(int num) { GameObject clone = Instantiate(clonePrefab, new Vector3(num, -40, 0), Quaternion.identity) as GameObject; CloneController cloneCtrl = clone.GetComponent <CloneController>(); cloneCtrl.SetNumber(num + 1); return(clone); }
void Talk() { GameObject cloneController = GameObject.Find("Clone_Controller"); CloneController cloneControllerScript = cloneController.GetComponent <CloneController>(); cloneControllerScript.finishedtalking = false; if (dialoguecompleted == false) // controlla il playerprefs per vedere se già è stato completato il primo dialogo { textimage.interactable = true; lines[0] = ""; // Sempre vuoto, non si visualizza lines[1] = "First line"; lines[2] = "Second Line"; lines[3] = ""; //choice // lines4 dipende dalla choice // lines5 salta perchè una choice sbagliata ha 2 frasi, quindi si setta y per 5 e si richiama talk() lines[6] = "Good, dialogue complete"; lines[30] = "Second route"; y = y + 1; // StartCoroutine(Dialogue()); text.text = lines[y]; if (y == 3) { ChoiceToMakeOne(); textimage.gameObject.SetActive(false); textimage.interactable = false; } if (y == 5) //o tutte le posizioni di y in cui vi è una choice { textimage.interactable = false; wrongchoice = false; Invoke("CloseDialogue", 1f); } if (y > 30) { Invoke("CloseDialogue", 1f); } } else if (dialoguecompleted == true) { textimage.interactable = true; lines[0] = ""; // Sempre vuoto, non si visualizza lines[1] = "Second dialogue"; lines[2] = " "; y = y + 1; // StartCoroutine(Dialogue()); text.text = lines[y]; if (y == 2) { Invoke("CloseDialogue", 1f); } } }
void InstantiateClone() { GameObject clone = Instantiate(clonePrefab, null); CloneController controller = clone.GetComponent <CloneController>(); controller.playTime = Time.time; controller.recording = inputRecording; clone.transform.position = controller.recording[0].position; currLoop = clone; inputRecording = new List <InputAtTime>(); }
void Start() { offset = transform.position - player.transform.position; cloned = false; cloned_1 = false; cloned_2 = false; cloned_3 = false; cloned_4 = false; returning = false; GameObject cloneController = GameObject.Find("Clone_Controller"); CloneController cloneControllerScript = cloneController.GetComponent <CloneController>(); }
/// <summary> /// Stops the clones action counter, so that it will no longer perform actions. /// </summary> /// <param name="Clone"></param> private void StopClone(GameObject Clone) { CloneController controller = Clone.GetComponent <CloneController>(); if (controller != null) { controller.StopActions(); } else { Debug.Log("Cannot stop clone actions for an object without a CloneController component!"); return; } }
void SyncQ() { GameObject cloneController = GameObject.Find("Clone_Controller"); CloneController cloneControllerScript = cloneController.GetComponent <CloneController>(); if (cloneControllerScript.qpressed == false) { qpressed = false; } else { qpressed = true; } }
void CheckIfQPressed() { if (returning == false && qpressed == false) { GameObject cloneController = GameObject.Find("Clone_Controller"); CloneController cloneControllerScript = cloneController.GetComponent <CloneController>(); if (cloneControllerScript.istalking == false) { if (Input.GetKeyDown(KeyCode.Q)) { if (qpressed == false) { qpressed = true; Invoke("NoMorePressed", 1f); if (count <= 5) { if (countlocked == false) { count = count + 1; if (count == 1) { Invoke("Cloned", 1f); } else if (count == 2) { Invoke("Cloned1", 1f); } else if (count == 3) { Invoke("Cloned2", 1f); } else if (count == 4) { Invoke("Cloned3", 1f); } else if (count == 5) { Invoke("Cloned4", 1f); } else if (count > 5) { count = 5; } } } } } } } }
public void ConnectRemote(GameObject clone) { CloneController cloneCtrl = clone.GetComponent <CloneController>(); // attach left hand tracked object to clone cloneCtrl.AttachTrackedObject("LeftHand", srcLeftHand); // attach right hand tracked object to clone cloneCtrl.AttachTrackedObject("RightHand", srcRightHand); // attach left, right, and head of clone to motion recorder remoteLeftHand = cloneCtrl.GetPartMotionPlayer("LeftHand"); remoteRightHand = cloneCtrl.GetPartMotionPlayer("RightHand"); remoteHead = cloneCtrl.GetPartMotionPlayer("Head"); }
/// <summary> /// Resets a clone to its starting position, and sets its actions counter back to frame 0. /// </summary> /// <param name="Clone"></param> private void ResetClone(GameObject Clone) { CloneController controller = Clone.GetComponent <CloneController>(); if (controller != null) { controller.ResetActions(); controller.IsDead = false; controller.CurrentHealth = controller.MaxHealth; } else { Debug.Log("Cannot reset clone actions for an object without a CloneController component!"); return; } }
public void Init() { // setup player object Player = new GameObject(); Player.AddComponent <PlayerMovement>(); Player.AddComponent <Rigidbody2D>(); Player.AddComponent <CharacterController2D>(); GameObject ceilingCheckP = new GameObject(); GameObject floorCheckP = new GameObject(); ceilingCheckP.transform.parent = Player.transform; floorCheckP.transform.parent = Player.transform; Player.GetComponent <CharacterController2D>().GroundCheck = floorCheckP.transform; Player.GetComponent <CharacterController2D>().CeilingCheck = ceilingCheckP.transform; Player.GetComponent <PlayerMovement>().controller = Player.GetComponent <CharacterController2D>(); pArrow = new GameObject("pArrow"); pArrow.transform.parent = Player.transform; // setup clone object Clone = new GameObject(); Clone.AddComponent <PlayerMovement>(); Clone.AddComponent <Rigidbody2D>(); Clone.AddComponent <CharacterController2D>(); GameObject ceilingCheckC = new GameObject(); GameObject floorCheckC = new GameObject(); ceilingCheckC.transform.parent = Clone.transform; floorCheckC.transform.parent = Clone.transform; Clone.GetComponent <CharacterController2D>().GroundCheck = floorCheckC.transform; Clone.GetComponent <CharacterController2D>().CeilingCheck = ceilingCheckC.transform; Clone.GetComponent <PlayerMovement>().controller = Clone.GetComponent <CharacterController2D>(); cArrow = new GameObject("cArrow"); cArrow.transform.parent = Clone.transform; // setup clone controller GameObject cloneController = new GameObject(); cloneController.AddComponent <CloneController>(); cc = cloneController.GetComponent <CloneController>(); cc.cloneArrow = cArrow; cc.playerArrow = pArrow; cc.clone = Clone; cc.player = Player; }
void ResetWorld() { foreach (GameObject clone in this.clones) { CloneController cloneCtrl = clone.GetComponent <CloneController>(); cloneCtrl.RewindPlayback(); } foreach (GameObject gameObj in GameObject.FindGameObjectsWithTag("Dynamic")) { Resettable resettableObj = gameObj.GetComponent <Resettable>(); if (resettableObj == null) { continue; } resettableObj.ResetState(); } }
void CheckIfQPressed() { if (qpressed == false) { if (returning == false) { GameObject cloneController = GameObject.Find("Clone_Controller"); CloneController cloneControllerScript = cloneController.GetComponent <CloneController>(); if (cloneControllerScript.istalking == false) { if (Input.GetKeyDown(KeyCode.Q)) { qpressed = true; Invoke("NoMorePressed", 1f); count = count + 1; } } } } }
void Returning() { GameObject cloneController = GameObject.Find("Clone_Controller"); CloneController cloneControllerScript = cloneController.GetComponent <CloneController>(); if (cloneControllerScript.istalking == false) { if (count == 1 && cloned == true) { Vector3 new_pos_1; new_pos_1 = player.transform.position + offset; transform.position = new_pos_1; cloned = false; qpressed = true; count = count - 1; Invoke("ReturnBools", 2f); Invoke("NoMorePressed", 2.3f); } } }
void Returning4() { GameObject cloneController = GameObject.Find("Clone_Controller"); CloneController cloneControllerScript = cloneController.GetComponent <CloneController>(); if (cloneControllerScript.istalking == false) { if (count == 5 && cloned_4 == true) { Vector3 new_pos_1; new_pos_1 = target3.transform.position + offset; transform.position = new_pos_1; cloned_4 = false; count = count - 1; returning = true; countlocked = true; qpressed = true; Invoke("Returning3", 0.5f); } } }
/// <summary> /// Creates a new clone object at the specified starting position, that will use the passed in actions /// </summary> /// <param name="StartingPosition"></param> /// <param name="ActionReader"></param> /// <returns></returns> private GameObject CreateClone(Vector3 StartingPosition, PlayersActionsInRound ActionReader, Teams Team) { if (ActionReader == null) { Debug.Log("Cannot pass in a null starting position or action reader when creating a clone"); return(null); } if (ClonePrefab == null) { Debug.Log("Must set the clone prefab before creating a clone"); return(null); } GameObject Clone = (GameObject)Instantiate(ClonePrefab); CloneController Controller = Clone.GetComponent <CloneController>(); if (Controller == null) { Debug.Log("Cannot create a clone instance using a prefab that doesn't have the clone controller component!"); return(null); } Controller.SetStartingPosition(StartingPosition); Controller.SetActionReader(ActionReader); if (BoundsCheck != null) { Controller.SetBoundsCheck(BoundsCheck.GetComponent <Collider>()); } else { Debug.Log("RoundManager doesn't have a set bounds check!"); } Controller.Team = Team; Controller.RpcSetGlow(Team); return(Clone); }
void CloseDialogue() { if (clonedwithq == false && clonedtalking == false) { dialoguecompleted = true; } Debug.Log(dialoguecompleted); epressed = false; textimage.gameObject.SetActive(false); y = 0; Debug.Log(y); textimage.interactable = false; clonedwithq = false; qpressed1 = false; GameObject cloneController = GameObject.Find("Clone_Controller"); CloneController cloneControllerScript = cloneController.GetComponent <CloneController>(); cloneControllerScript.istalking = false; cloneControllerScript.finishedtalking = true; clone_near = false; if (clonedtalking == true) { clonedtalking = false; GameObject clone = GameObject.FindGameObjectWithTag("Player_Clone"); if (cloneControllerScript.cloned == true) { SimpleCharacterControl cloneScript = clone.GetComponent <SimpleCharacterControl>(); cloneScript.canWalk = true; } } else { GameObject player = GameObject.Find("Player"); SimpleCharacterControl playerScript = player.GetComponent <SimpleCharacterControl>(); playerScript.canWalk = true; } //checka se è un clone o il player e canWalk torna true, fare tutto su close dialogue, if y > x invoke CloseDialogue }
private void ResetCount4() { GameObject cloneController = GameObject.Find("Clone_Controller"); CloneController cloneControllerScript = cloneController.GetComponent <CloneController>(); if (cloneControllerScript.istalking == true) { float remainingtime = 6 - timecount4; Invoke("ResetCount4", remainingtime); } if (cloneControllerScript.istalking == false) { if (count == 5) { returning = true; qpressed = true; reset4 = false; count = count - 1; timecount4 = 0; Invoke("ResetCount3", 0.5f); } } }
IEnumerator Spawner() { do { yield return(WaitForFramesInSeconds(initialDelay - animationDelay)); } while (!waitForFramesDone); while (true) { cloneMachineAnim.SetTrigger("Spawn"); do { yield return(WaitForFramesInSeconds(animationDelay)); } while (!waitForFramesDone); controller.SetRunning(true); GameObject clone = Instantiate(obj); clone.transform.position = spawnPoint.transform.position; CloneController cloneController = clone.GetComponent <CloneController>(); cloneController.frameOffset = controller.GetCurrentFrame(); cloneController.destroyOnCollision = destroyOnCollision; cloneController.SetController(controller); if (camController != null && camController.TransformToFollow == null) { camController.TransformToFollow = clone.transform; } do { yield return(WaitForFramesInSeconds(secondDelay - animationDelay)); } while (!waitForFramesDone); } }
//public float turningspeed = 5; //CloneController cloneController; //// Start is called before the first frame update void Start() { player = GameObject.Find("Player").transform.Find("PlayerTurning").gameObject; //player = GameManager.Instance.player.transform.Find("PlayerTurning").gameObject; ; cloneController = transform.parent.GetComponent <CloneController>(); }
void Count() { GameObject cloneController = GameObject.Find("Clone_Controller"); CloneController cloneControllerScript = cloneController.GetComponent <CloneController>(); if (cloneControllerScript.istalking == false) { if (returning == false) { /* if (count == 0) * { * time.text = ""; * time1.text = ""; * time2.text = ""; * time3.text = ""; * time4.text = ""; * }*/ if (count == 1) { if (cloned == false) { timecount = timecount + Time.deltaTime; // time.text = "Time 1st Clone: " + timecount + ""; currenttime = timecount; timeslider.gameObject.SetActive(true); timeslider.value = timecount; if (reset == false) { Invoke("ResetCount", 6f); } reset = true; } } else if (count == 2) { cloned = true; if (cloned1 == false) { timecount1 = timecount1 + Time.deltaTime; // time1.text = "Time 2nd Clone: " + timecount1 + ""; currenttime1 = timecount; timeslider1.gameObject.SetActive(true); timeslider1.value = timecount1; if (reset1 == false) { Invoke("ResetCount1", 6f); } reset1 = true; } } else if (count == 3) { cloned1 = true; if (cloned2 == false) { timecount2 = timecount2 + Time.deltaTime; // time2.text = "Time 3rd Clone: " + timecount2; currenttime2 = timecount; timeslider2.gameObject.SetActive(true); timeslider2.value = timecount2; if (reset2 == false) { Invoke("ResetCount2", 6f); } reset2 = true; } } else if (count == 4) { cloned2 = true; if (cloned3 == false) { timecount3 = timecount3 + Time.deltaTime; // time3.text = "Time 4th Clone: " + timecount3; currenttime3 = timecount; timeslider3.gameObject.SetActive(true); timeslider3.value = timecount3; if (reset3 == false) { Invoke("ResetCount3", 6f); } reset3 = true; } } else if (count == 5) { cloned3 = true; if (cloned4 == false) { timecount4 = timecount4 + Time.deltaTime; // time4.text = "Time 5th Clone: " + timecount4; currenttime4 = timecount; timeslider4.gameObject.SetActive(true); timeslider4.value = timecount4; if (reset4 == false) { Invoke("ResetCount4", 6f); } reset4 = true; } } } } if (count > 5) { count = 5; } }
void FinishedTalking() { GameObject cloneController = GameObject.Find("Clone_Controller"); CloneController cloneControllerScript = cloneController.GetComponent <CloneController>(); if (cloneControllerScript.finishedtalking == true) { GameObject timeController = GameObject.Find("TimeController"); TimeController timeControllerScript = timeController.GetComponent <TimeController>(); if (count == 1 && cloned == true) { if (returncalledtalk == false) { // cloneControllerScript.finishedtalking = false; timecount = timeControllerScript.currenttime; returntime = 5.3f - timecount; Invoke("Returning", returntime); } returncalledtalk = true; } else if (count == 2 && cloned_1 == true) { if (returncalledtalk1 == false) { // cloneControllerScript.finishedtalking = false; timecount1 = timeControllerScript.currenttime1; returntime1 = 5.3f - timecount1; Invoke("Returning1", returntime1); } returncalledtalk1 = true; } else if (count == 3 && cloned_2 == true) { if (returncalledtalk2 == false) { // cloneControllerScript.finishedtalking = false; timecount2 = timeControllerScript.currenttime2; returntime2 = 5.3f - timecount2; Invoke("Returning2", returntime2); } returncalledtalk2 = true; } else if (count == 4 && cloned_3 == true) { if (returncalledtalk3 == false) { // cloneControllerScript.finishedtalking = false; timecount3 = timeControllerScript.currenttime3; returntime3 = 5.3f - timecount3; Invoke("Returning3", returntime3); } returncalledtalk3 = true; } else if (count == 5 && cloned_4 == true) { if (returncalledtalk4 == false) { // cloneControllerScript.finishedtalking = false; timecount4 = timeControllerScript.currenttime4; returntime4 = 5.3f - timecount4; Invoke("Returning4", returntime4); } returncalledtalk4 = true; } } }
void CheckIfCloned() { if (count == 0) { transform.position = player.transform.position + offset; } if (returning == false) { GameObject cloneController = GameObject.Find("Clone_Controller"); CloneController cloneControllerScript = cloneController.GetComponent <CloneController>(); if (cloneControllerScript.istalking == false) { if (count == 1 && cloned == true) { if (GameObject.Find("Player_Clone") != null) { target = GameObject.Find("Player_Clone").transform; Vector3 new_pos; new_pos = target.transform.position + offset; transform.position = new_pos; } if (returncalled == false) { Invoke("Returning", 5f); } returncalled = true; } else if (count == 2 && cloned_1 == true) { if (GameObject.Find("Player_Clone_1") != null) { target1 = GameObject.Find("Player_Clone_1").transform; Vector3 new_pos_1; new_pos_1 = target1.transform.position + offset; transform.position = new_pos_1; } if (returncalled1 == false) { Invoke("Returning1", 5f); } returncalled1 = true; } else if (count == 3 && cloned_2 == true) { if (GameObject.Find("Player_Clone_2") != null) { target2 = GameObject.Find("Player_Clone_2").transform; Vector3 new_pos_1; new_pos_1 = target2.transform.position + offset; transform.position = new_pos_1; } if (returncalled2 == false) { Invoke("Returning2", 5f); } returncalled2 = true; } else if (count == 4 && cloned_3 == true) { if (GameObject.Find("Player_Clone_3") != null) { target3 = GameObject.Find("Player_Clone_3").transform; Vector3 new_pos_1; new_pos_1 = target3.transform.position + offset; transform.position = new_pos_1; } if (returncalled3 == false) { Invoke("Returning3", 5f); } returncalled3 = true; } else if (count == 5 && cloned_4 == true) { if (GameObject.Find("Player_Clone_4") != null) { target4 = GameObject.Find("Player_Clone_4").transform; Vector3 new_pos_1; new_pos_1 = target4.transform.position + offset; transform.position = new_pos_1; } if (returncalled4 == false) { Invoke("Returning4", 5f); } returncalled4 = true; } } } }
void CheckIfEPressed() { if (epressed == false) { if (player_near == true || clone_near == true) { if (Input.GetKeyDown(KeyCode.E)) { epressed = true; GameObject cloneController = GameObject.Find("Clone_Controller"); CloneController cloneControllerScript = cloneController.GetComponent <CloneController>(); bool checkclone = cloneControllerScript.cloned; if (player_near == true && clone_near == false && checkclone == false) { GameObject player = GameObject.Find("Player"); SimpleCharacterControl playerScript = player.GetComponent <SimpleCharacterControl>(); playerScript.canWalk = false; cloneControllerScript.istalking = true; StartDialoguePlayer(); } else if (player_near == false && clone_near == true) { if (cloneControllerScript.cloned == true && cloneControllerScript.cloned1 == false) { GameObject clone = GameObject.Find("Player_Clone"); SimpleCharacterControl cloneScript = clone.GetComponent <SimpleCharacterControl>(); cloneScript.canWalk = false; cloneControllerScript.istalking = true; } else if (cloneControllerScript.cloned == true && cloneControllerScript.cloned1 == true && cloneControllerScript.cloned2 == false) { GameObject clone = GameObject.Find("Player_Clone_1"); SimpleCharacterControl cloneScript = clone.GetComponent <SimpleCharacterControl>(); cloneScript.canWalk = false; cloneControllerScript.istalking = true; } else if (cloneControllerScript.cloned == true && cloneControllerScript.cloned1 == true && cloneControllerScript.cloned2 == true && cloneControllerScript.cloned3 == false) { GameObject clone = GameObject.Find("Player_Clone_2"); SimpleCharacterControl cloneScript = clone.GetComponent <SimpleCharacterControl>(); cloneScript.canWalk = false; cloneControllerScript.istalking = true; } else if (cloneControllerScript.cloned == true && cloneControllerScript.cloned1 == true && cloneControllerScript.cloned2 == true && cloneControllerScript.cloned3 == true && cloneControllerScript.cloned4 == false) { GameObject clone = GameObject.Find("Player_Clone_3"); SimpleCharacterControl cloneScript = clone.GetComponent <SimpleCharacterControl>(); cloneScript.canWalk = false; cloneControllerScript.istalking = true; } else { GameObject clone = GameObject.Find("Player_Clone_4"); SimpleCharacterControl cloneScript = clone.GetComponent <SimpleCharacterControl>(); cloneScript.canWalk = false; cloneControllerScript.istalking = true; } StartDialogueClone(); } else if (player_near == true && clone_near == true) { Debug.Log("You can't both start a dialogue with the same npc"); } Talk(); } } } }