Esempio n. 1
0
    public void Attract()
    {
        Vector3 direction = (playerTarget.transform.position - transform.position).normalized;

        GetComponent <Rigidbody>().MovePosition(transform.position + direction * movementSpeed * Time.deltaTime);
        if (Vector3.Distance(playerTarget.transform.position, transform.position) < GetComponent <BoxCollider>().bounds.extents.magnitude)
        {
            playerTarget.UpdateCollectableValue(GetComponent <Collectable>().type, (int)GetComponent <Collectable>().Value);

            if (AudioManager.Instance != null && AudioManager.Instance.coinFX != null)
            {
                AudioManager.Instance.PlayOneShot(AudioManager.Instance.coinFX);
            }

            if (GetComponent <PoolChild>())
            {
                GetComponent <PoolChild>().ReturnToPool();
            }
            else
            {
                if (GetComponent <Collectable>().type == CollectableType.Key)
                {
                    if (hasBeenSpawned)
                    {
                        int currentlyHoldByOwner = lastOwner.Collectables[(int)CollectableType.Key];

                        KeyReset keyData = lastOwner.KeysReset[currentlyHoldByOwner];
                        playerTarget.AddKeyInitialPosition(keyData);
                        lastOwner.KeysReset[currentlyHoldByOwner] = null;
                    }
                    else
                    {
                        playerTarget.AddKeyInitialPosition(transform, KeyFrom.Shelter);
                    }
                }

                Destroy(this.gameObject);
            }
        }
    }
Esempio n. 2
0
    public void AddKeyInitialPosition(KeyReset _keyData)
    {
        int currentlyHold = collectables[(int)CollectableType.Key];

        KeysReset[currentlyHold - 1] = _keyData;
    }
Esempio n. 3
0
    public void AddKeyInitialPosition(Transform _tr, KeyFrom _from)
    {
        int currentlyHold = collectables[(int)CollectableType.Key];

        KeysReset[currentlyHold - 1] = new KeyReset(_tr, _from);
    }