예제 #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);
    }
예제 #2
0
    /* ~~~~~~~~~~~~~~~~~~ PowerUp Trigger Handlers ~~~~~~~~~~~~~~~~~~ */

    public bool OnPowerUpTrigger(IPowerUpTrigger pwrUpTrigger)
    {
        bool wasHandled = false;

        activePowerUps.ForEach(delegate(IPowerUp pwrUp) {
            wasHandled |= pwrUp.OnPowerUpTrigger(pwrUpTrigger);
        });
        return(wasHandled);
    }
예제 #3
0
 public bool OnPowerUpTrigger(IPowerUpTrigger pwrUpTrigger)
 {
     return(false);
 }