Beispiel #1
0
    public bool OnPowerUpTrigger(IPowerUpTrigger pwrUpTrigger)
    {
        if (pwrUpTrigger.GetType() == typeof(PuckCollisionTrigger))
        {
            PuckCollisionTrigger puckCollTrigger = (PuckCollisionTrigger)pwrUpTrigger;
            Collision2D          coll            = puckCollTrigger.Coll;

            if (coll.gameObject.tag == "Peg" && pegBreakCount < maxPegBreaks)
            {
                Puck puck = puckCollTrigger.Puck;

                // Ignore collision with this peg
                Collider2D puckCollider = puck.gameObject.GetComponent <Collider2D>();
                Physics2D.IgnoreCollision(coll.collider, puckCollider);

                pegBreakCount++;
                //Peg peg = coll.gameObject.GetComponent<Peg>();
                //peg.Explode();

                UpdatePuckVelPerPegCount();

                StartCoroutine("StutterPuckMovement");

                if (pegBreakCount == maxPegBreaks)
                {
                    PowerUpExpiredPayload pwrUpExpiredPayload = new PowerUpExpiredPayload(this);
                    pwrUpExpiredEvent.Invoke(pwrUpExpiredPayload);
                    Destroy(this);
                }
            }
            return(true);
        }
        return(false);
    }
Beispiel #2
0
    void OnCollisionEnter2D(Collision2D coll)
    {
        PuckCollisionTrigger puckCollTrigger = new PuckCollisionTrigger(coll, this);

        PowerUpManager.Instance.OnPowerUpTrigger(puckCollTrigger);
    }