예제 #1
0
 public void AttemptCollect(KeyCollector collector)
 {
     if (!m_Collected)
     {
         Collect(collector);
     }
 }
예제 #2
0
    void Collect(KeyCollector collector)
    {
        m_Collected = true;

        collector.Collected(this);

        Destroy(gameObject);
    }
    /// <summary>
    /// Tries to open the door if enough keys have been collected
    /// </summary>
    /// <param name="keyCollector"></param>
    public bool TryOpenDoor(KeyCollector keyCollector)
    {
        if (!doorModel.IsOpened)
        {
            doorModel.TryOpenDoor(keyCollector);
            return(true);
        }

        return(false);
    }
예제 #4
0
    /// <summary>
    /// If enough keys have been collected the door opens
    /// </summary>
    /// <param name="collecter"></param>
    public bool TryOpenDoor(KeyCollector collecter)
    {
        if (collecter.KeyAmount >= KeyAmountNeeded)
        {
            Opened?.Invoke();
            IsOpened = true;
            return(true);
        }

        return(false);
    }
예제 #5
0
    private void OnTriggerEnter(Collider other)
    {
        KeyCollector key = other.gameObject.GetComponent <KeyCollector>();

        if (key)
        {
            if (key.GiveKey())
            {
                OnKeyPickup(this);
                Destroy(this.gameObject);
            }
        }
    }
    // Gets executed when the door opens
    private void OnTriggerEnter(Collider other)
    {
        if (IsLocked)
        {
            // if the door is locked, check if collided entity has a KeyCollector
            KeyCollector _collector = other.gameObject.GetComponent <KeyCollector>();

            if (_collector)
            {
                // try unlocking the door
                if (_collector.UnlockDoor())
                {
                    UnlockDoor();       // if that entity has a key then open the door
                }
            }
        }
    }
 void Start()
 {
     collector = GameObject.FindGameObjectWithTag("Player").GetComponent <KeyCollector>();
 }