private void OnTriggerEnter2D(Collider2D collision)
    {
        if (collision.gameObject.CompareTag("Player"))   //health, ammo, experience,
        {
            switch (Type)
            {
            case "Heal":
                collision.gameObject.GetComponent <Player>().AddHealth(_bonusHeal);
                break;

            case "Ammo":
                collision.gameObject.GetComponent <Player>().AddAmmo(_bonusAmmo);
                break;

            case "Exp":
                collision.gameObject.GetComponent <Player>().AddExp(_expGained);
                break;

            default:
                break;
            }
            OnCollected?.Invoke();
            Destroy(gameObject);
        }
    }
Beispiel #2
0
    private void OnTriggerEnter2D(Collider2D collision)
    {
        collectable = collision.GetComponent <Collectable>();

        if (collectable)
        {
            collectable.Collect();
            OnCollected?.Invoke(collectable.value);
        }

        switch (collision.tag)
        {
        case "Danger":
            TakeDamage(25, collision);
            break;

        case "Respawn":
            respawnPoint = transform.position;
            break;

        case "JumpPad":
            GetComponent <Movement>().JumpUp(jumpPadJumpMultiplier);
            break;

        case "enemy":
            TakeDamage(20, collision);
            break;

        default:
            break;
        }
    }
Beispiel #3
0
    private void OnMouseUp()
    {
        mouseUpPosition = transform.position;
        onHold          = false;

        Collider2D collider = Physics2D.OverlapCircle(transform.position, berryCollider.bounds.extents.x, LayerMask.GetMask(BASKET_LAYER));

        if (collider != null)
        {
            Basket _foundBasket = collider.GetComponent <Basket>();

            if (_foundBasket != null)
            {
                if (fruitData.fruitType == _foundBasket.basket.basketFruitType)
                {
                    MinimizeBerry();
                    correctBasket = true;
                    _foundBasket.AddBerry();
                    OnCollected?.Invoke();
                }
                else
                {
                    wrongParticlesInstance.GetComponent <ParticleSystemRenderer>().material = fruitData.berryVFXMaterial;
                    Instantiate(wrongParticlesInstance, this.transform.position, Quaternion.identity);
                    ReturnBerry();
                }
            }
        }
        else
        {
            ReturnBerry();
        }
    }
 private void DoCollect()
 {
     Collect();
     _isCollected = true;
     OnCollected?.Invoke(this);
     _effect.DetachAndStop();
     Destroy(gameObject);
 }
Beispiel #5
0
        public override void OnDeallocate()
        {
            m_onCollected = null;

            m_scrollingObject.Stop();
            m_scrollingObject.OnScrollComplete -= OnCollect;

            base.OnDeallocate();
        }
        public static void PickupCollected(Pickup p)
        {
            Collected += 1;
            OnCollected?.Invoke();

            if (Collected >= TotalPickups)
            {
                OnWin?.Invoke();
            }
        }
Beispiel #7
0
        public void Init(Vector3 startPosition, Vector3 endPosition, OnCollected onCollected, PoolManager poolManager)
        {
            m_scrollingObject.SetStartPoint(startPosition);
            m_scrollingObject.SetEndPoint(endPosition);

            m_scrollingObject.OnScrollComplete += OnCollect;
            m_scrollingObject.Play();

            m_onCollected = onCollected;

            m_poolManager = poolManager;
        }
Beispiel #8
0
        public void Init(int eggID, Vector3 startPosition, Vector3 endPosition, OnCollected onCollected, PoolManager poolManager)
        {
            //allocate the specified easter egg
            EasterEggs[eggID].SetActive(true);
            m_scrollingObject.SetStartPoint(startPosition);
            m_scrollingObject.SetEndPoint(endPosition);

            m_scrollingObject.OnScrollComplete += OnCollect;
            m_scrollingObject.Play();

            m_onCollected = onCollected;

            m_poolManager = poolManager;
        }
    private void Update()
    {
        if (!target)
        {
            return;
        }
        var direction = (target.position - transform.position).normalized;

        transform.position += direction * SPEED * Time.deltaTime;

        if (Vector3.Distance(target.position, transform.position) < 0.5f)
        {
            gameObject.SetActive(false);
            OnCollected?.Invoke();
        }
    }
Beispiel #10
0
        private void OnMouseUp()
        {
            _dragging = false;

            transform.localScale = Vector3.one;
            _material.SetFloat("_Highlight", 0f);
            _collider.enabled = true;

            Chest.Instance.Close();

            if (Chest.Instance.IsHovered())
            {
                Player.Instance.AddTreasure();
                OnCollected?.Invoke();
                Free();
            }
            else
            {
                OnDropped?.Invoke();
            }
        }
Beispiel #11
0
 internal void Collect()
 {
     OnCollected?.Invoke(this, EventArgs.Empty);
 }
Beispiel #12
0
        public void Interact()
        {
            OnCollected?.Invoke(this);

            Destroy(gameObject);
        }