private void OnTriggerEnter2D(Collider2D collider) { Key key = collider.GetComponent <Key>(); if (key != null) { AddKey(key.GetKeyType()); Destroy(key.gameObject); } KeyDoor keyDoor = collider.GetComponent <KeyDoor>(); if (keyDoor != null) { if (ContainsKey(keyDoor.GetKeyType())) { // Currently holding Key to open this door RemoveKey(keyDoor.GetKeyType()); keyDoor.OpenDoor(); } else { keyDoor.PlayOpenFailAnim(); } } }
private void OnTriggerEnter2D(Collider2D collider) { if (collider.gameObject.name.Contains("Key")) { ui.foundKey(); GameObject key = collider.gameObject; AddKey(); Destroy(key); } KeyDoor keyDoor = collider.GetComponent <KeyDoor>(); if (keyDoor != null) { roomController = GameObject.FindGameObjectWithTag("CurrentRoom").GetComponent <RoomController>(); if (HasKey == true && (roomController.allDead == true || roomController.enemyCount == 0)) { ui.useKey(); RemoveKey(); keyDoor.OpenDoor(); } else { keyDoor.PlayOpenFailAnim(); } } }
//Umgang mit der Kollidierung des Spielers und dem Key, sowie der dazugehoerigen Door private void OnTriggerEnter2D(Collider2D collider) { Key key = collider.GetComponent <Key>(); //Kollision zwischen Spieler und Key if (key != null) { //Fuegt den Key einer Liste hinzu AddKey(key.GetKeyType()); //Entfernt den Key von der Map Destroy(key.gameObject); } KeyDoor keyDoor = collider.GetComponent <KeyDoor>(); //Kollision zwischen Spieler und Door if (keyDoor != null) { if (ContainsKey(keyDoor.GetKeyType())) { //hält den Key RemoveKey(keyDoor.GetKeyType()); keyDoor.OpenDoor(); } } }
private void OnTriggerEnter2D(Collider2D collider) { if (collider.CompareTag("Key")) { Key key = collider.gameObject.GetComponent <Key>(); AddKey(key.GetKeyType()); key.gameObject.SetActive(false); player.setActiveHaveKeyUI(key.GetKeyType().ToString()); } else if (collider.CompareTag("Jikan")) { Jikan jikan = collider.GetComponent <Jikan>(); if (ContainsKey(jikan.GetKeyType())) { jikan.ActiveJikan(); } else { // Debug.Log("Don't have Jikan Key " + jikan.GetKeyType().ToString()); player.setActiveNotHaveKeyUI(jikan.GetKeyType().ToString(), true); } } else if (collider.CompareTag("Door")) { KeyDoor keyDoor = collider.gameObject.GetComponent <KeyDoor>(); if (ContainsKey(keyDoor.GetKeyType())) { keyDoor.OpenDoor(); } else { player.setActiveNotHaveKeyUI(keyDoor.GetKeyType().ToString(), true); } } }
private void OnTriggerEnter(Collider other) { Key key = other.GetComponent <Key>(); if (key != null) { AddKey(key.GetKeyType()); Destroy(key.gameObject); pickup.Play(); } KeyDoor keyDoor = other.GetComponent <KeyDoor>(); if (keyDoor != null) { if (ContainsKey(keyDoor.GetKeyType())) { RemoveKey(keyDoor.GetKeyType()); keyDoor.OpenDoor(); doorBomb.Play(); bridge.SetActive(true); table.SetActive(false); } else { // keyDoor.CloseDoor(); } } }
public bool CheckKey(KeyDoor door) { if (keys.Contains(door.LockID)) { return(true); } return(false); }
private void OnTriggerEnter2D(Collider2D collider) { Key key = collider.GetComponent <Key>(); if (key != null) { AddKey(key.GetKeyType()); Destroy(key.gameObject); } KeyDoor keyDoor = collider.GetComponent <KeyDoor>(); if (keyDoor != null) { if (ContainsKey(keyDoor.GetKeyType())) { keyDoor.OpenDoor(); } else { string room = keyDoor.GetKeyType().ToString(); if (room.Equals("room1")) { room = "Room 1"; } else if (room.Equals("room2")) { room = "Room 2"; } else if (room.Equals("room3")) { room = "Room 3"; } else if (room.Equals("room4")) { room = "Room 4"; } else if (room.Equals("Hades")) { room = "Hades"; } else { room = "ERROR"; } Toast.Instance.Show("You need the key for " + room + "!", 5f); } } }
void OnTriggerEnter2D(Collider2D col) { if (col.tag != "Player") { return; } GameObject[] KeyDoors = GameObject.FindGameObjectsWithTag("KeyDoor"); foreach (GameObject KeyDoor in KeyDoors) { UnityEngine.Debug.Log(KeyDoor.GetComponent <KeyDoor>().color_type); if (KeyDoor.GetComponent <KeyDoor>().color_type == color_type) { FindObjectOfType <AudioManager>().Play("takekey"); KeyDoor.GetComponent <KeyDoor>().is_door_opened = true; Destroy(gameObject); } } }
public override bool Use() { GameObject itemInView = GameManager.Get().playerRef.GetComponent <PlayerInteraction>().GetItemInView(); if (itemInView) { KeyDoor keyDoor = itemInView.GetComponent <KeyDoor>(); if (keyDoor) { bool couldUnlock = keyDoor.OnItemUse(item); if (instantlyOpen) { keyDoor.InteractDoor(); } return(couldUnlock); } } return(false); }
private void OnTriggerEnter2D(Collider2D collision) { Key key = collision.GetComponent <Key>(); //Error on this row if (key != null) { AddKey(key.GetKeyType()); Destroy(key.gameObject); } KeyDoor keyDoor = collision.GetComponent <KeyDoor>(); if (keyDoor != null) { if (ContainsKey(keyDoor.GetKeyType())) { keyDoor.OpenDoor(); } } }
private void OnTriggerEnter2D(Collider2D collider) { Key key = collider.GetComponent <Key>(); if (key != null) { GameObject thePlayer = GameObject.Find("Player"); PlayerController playerController = thePlayer.GetComponent <PlayerController>(); Debug.Log("Candies: " + playerController.candies); if (playerController.candies >= key.GetKeyCost()) { playerController.candies = playerController.candies - key.GetKeyCost(); AddKey(key.GetKeyType()); Destroy(key.gameObject); //Activate Crunchies GameObject crunchyenemies = GameObject.Find("Crunchy"); crunchyenemies.GetComponent <FollowPlayer>().hostile = true; } else { Debug.Log("Not enough candies! Needed:" + key.GetKeyCost()); } } KeyDoor keyDoor = collider.GetComponent <KeyDoor>(); if (keyDoor != null) { Debug.Log("Has key (" + keyDoor.GetKeyType() + "): " + ContainsKey(keyDoor.GetKeyType())); if (ContainsKey(keyDoor.GetKeyType())) { //currently holding key to open door Debug.Log("Door Opened: " + keyDoor.GetKeyType().ToString()); RemoveKey(keyDoor.GetKeyType()); keyDoor.OpenDoor(); } } }
private void OnTriggerEnter2D(Collider2D collider) { Key key = collider.GetComponent <Key>(); if (key != null) { AddKey(key.GetKeyType()); Destroy(key.gameObject); } KeyDoor keyDoor = collider.GetComponent <KeyDoor>(); if (keyDoor != null) { if (ContainsKey(keyDoor.GetKeyType())) { RemoveKey(keyDoor.GetKeyType()); keyDoor.OpenDoor(); } } }
private void OnTriggerEnter(Collider other) { KeySystem key = other.GetComponent <KeySystem>(); if (key != null) { AddKey(key.GetKeyType()); Destroy(key.gameObject); } KeyDoor keyDoor = other.GetComponent <KeyDoor>(); if (keyDoor != null) { if (ContainsKey(keyDoor.GetKeyType())) { //Currently holding key to open this door RemoveKey(keyDoor.GetKeyType()); keyDoor.OpenDoor(); } } }
private void OnTriggerEnter2D(Collider2D collider) { KeyPickup key = collider.GetComponent <KeyPickup>(); if (key != null) { keySound.Play(); AddKey(key.GetKeyNumber()); Destroy(key.gameObject); } KeyDoor keyDoor = collider.GetComponent <KeyDoor>(); if (keyDoor != null) { if (ContainsKey(keyDoor.GetKeyNumber())) { RemoveKey(keyDoor.GetKeyNumber()); keyDoor.OpenDoor(); } } }
private void OnTriggerExit2D(Collider2D collider) { if (collider.CompareTag("Jikan")) { Jikan jikan = collider.GetComponent <Jikan>(); if (!ContainsKey(jikan.GetKeyType())) { player.setActiveNotHaveKeyUI(jikan.GetKeyType().ToString(), false); } } else if (collider.CompareTag("Door")) { KeyDoor keyDoor = collider.gameObject.GetComponent <KeyDoor>(); if (!ContainsKey(keyDoor.GetKeyType())) { player.setActiveNotHaveKeyUI(keyDoor.GetKeyType().ToString(), false); } else { keyDoor.CloseDoor(); } } }
private void OnTriggerEnter(Collider collider) { Key key = collider.GetComponent <Key>(); if (key != null) { AddKey(key.GetKeyType()); Destroy(key.gameObject); // Player picks up key and it's destroyed in-game } KeyDoor keyDoor = collider.GetComponent <KeyDoor>(); if (keyDoor != null) { if (ContainsKey(keyDoor.GetKeyType())) { // Player is holding the relevant key RemoveKey(keyDoor.GetKeyType()); keyDoor.OpenDoor(); } } }
private void OnTriggerEnter2D(Collider2D other) { Key key = other.GetComponent <Key>(); if (key != null && key.Tangible) { key.Tangible = false; AddKey(key.GetKeyType()); Destroy(key.gameObject); } KeyDoor keyDoor = other.GetComponent <KeyDoor>(); if (keyDoor != null) { if (ContainsKey(keyDoor.GetKeyType())) { // Currently holding Key to open this door; RemoveKey(keyDoor.GetKeyType()); keyDoor.OpenDoorPermanently(); } } }
/// <summary> /// Makes the guard check if they have a given key to open a door. /// If the guard doesn't have the key they may become suspicious or look for the key. /// </summary> /// <param name="doorKey">The type of key.</param> /// <returns>True if the key is present.</returns> public bool CheckKey(KeyDoor door) { // Does the guard think they have the key? if (currentKeys.Contains(door.LockID)) { KeyID requiredKey = door.LockID; // Make sure the key hasn't been stolen. foreach (DoorKey key in gameObject.GetComponents <DoorKey>()) { if (key.KeyIdentity == requiredKey) { return(true); } } // Otherwise the key has been stolen. currentKeys.Remove(requiredKey); stolenKeys.Add(requiredKey); // Update the pathing in navmesh. navAgent.areaMask -= NavUtilities.NavAreaFromKeyID(requiredKey); // React to the key loss with behavior: switch (Behavior) { case AIBehaviorState.Stationary: case AIBehaviorState.Patrolling: investigationPoints.Push(KeyRestock.RestockLocations[0].position); Behavior = AIBehaviorState.Investigating; break; case AIBehaviorState.Investigating: // Generate a cluster of suspicion points on the other side of the door. investigationPoints.Push(KeyRestock.RestockLocations[0].position); Behavior = AIBehaviorState.Investigating; break; } } return(false); }
private bool CanMove(Direction md) { Vector2 vec; switch (md) { case Direction.UP: vec = Vector2.up; break; case Direction.DOWN: vec = Vector2.down; break; case Direction.LEFT: vec = Vector2.left; break; case Direction.RIGHT: vec = Vector2.right; break; default: vec = Vector2.up; break; } RaycastHit2D hit = Physics2D.Raycast(transform.position, vec, .6f); // return if hit collides w/ something if (hit.collider != null) { if (hit.collider.tag == "WalkableTile" || hit.collider.tag == "Item") { return(true); } if (hit.collider.tag == "Actor") { } if (hit.collider.tag == "UnwalkableTile") { //Moving Wall Tile MovableBlock mb = hit.transform.gameObject.GetComponent <MovableBlock>(); if (mb != null) { return(mb.AcceptCollision(vec)); } KeyDoor kd = hit.transform.gameObject.GetComponent <KeyDoor>(); if (kd != null) { return(kd.TryToUnlock(player)); } //Wall return(false); } } return(true); }
//Check whether player has been seen IEnumerator CheckPlayerVisibility() { //We want the coroutine to repeat continuously while (true) { yield return(new WaitForSeconds(0.5f)); Vector3 Direction = (playerRef.transform.position - transform.position).normalized; float PlayerDistance = Vector3.Distance(transform.position, playerRef.transform.position); float PlayerAngle = Vector3.Angle(Direction, transform.forward); //Check if player is within viewing distance and within angle of view if (PlayerDistance < sightRadius && PlayerAngle < halfViewAngle && !player.isHiding) { StopCoroutine(LookForPlayer()); animator.SetBool("LostSight", false); //Moving the enemy pursuit here could make the enemy more aggresive since it can see the player //through walls /*navAgent.SetDestination(player.transform.position); * lastPosition = player.transform.position;*/ //Do a line trace to see if there is an object between the enemy and the player RaycastHit RayHit; if (Physics.Raycast(transform.position, Direction, out RayHit, sightRadius)) { if (RayHit.collider.tag == "Player") { navAgent.SetDestination(player.transform.position); lastPosition = player.transform.position; } else { if (RayHit.collider.tag == "Door") { KeyDoor door = RayHit.collider.GetComponent <KeyDoor>(); if (!door.isOpen) { door.InteractDoor(); } } navAgent.SetDestination(lastPosition); } Debug.DrawLine(transform.position, RayHit.point, Color.red, 0.5f); } else { navAgent.SetDestination(lastPosition); Debug.DrawLine(transform.position, RayHit.point, Color.green, 0.5f); } //If its in attack distance, kill the player if (PlayerDistance <= attackDistance) { animator.SetTrigger("Attack"); OnMonsterKillPlayer?.Invoke(); navAgent.isStopped = true; Debug.Log("Player Died"); } } else { //Go to last seen position animator.SetBool("LostSight", true); if (player.isHiding) { lastPosition = player.currentHidingPlace.transform.GetComponentInParent <HidingSpot>().enemyStandPoint.transform.position; } RaycastHit RayHit; if (Physics.Raycast(transform.position, Direction, out RayHit, sightRadius)) { if (RayHit.collider.tag == "Door") { KeyDoor door = RayHit.collider.GetComponent <KeyDoor>(); if (!door.isOpen) { door.InteractDoor(); } } } navAgent.SetDestination(lastPosition); if (Vector3.Distance(transform.position, lastPosition) <= minimumLookAroundDistance) { StartCoroutine(LookForPlayer()); } } } }
private void Start() { door = GetComponentInParent <KeyDoor>(); }
private void Awake() { instance = this; }