Exemple #1
0
    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();
            }
        }
    }
Exemple #2
0
    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();
            }
        }
    }
Exemple #3
0
    //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);
         }
     }
 }
Exemple #5
0
    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);
            }
        }
    }
Exemple #8
0
 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);
         }
     }
 }
Exemple #9
0
    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();
            }
        }
    }
Exemple #11
0
    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();
            }
        }
    }
Exemple #12
0
    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();
            }
        }
    }
Exemple #13
0
    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();
         }
     }
 }
Exemple #16
0
    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();
            }
        }
    }
Exemple #17
0
    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();
            }
        }
    }
Exemple #18
0
    /// <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);
    }
Exemple #20
0
    //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());
                }
            }
        }
    }
Exemple #21
0
 private void Start()
 {
     door = GetComponentInParent <KeyDoor>();
 }
Exemple #22
0
 private void Awake()
 {
     instance = this;
 }