예제 #1
0
    void OnTriggerEnter2D(Collider2D other)
    {
        if (GetComponent <PlayerController> ().IsJuggernaut)
        {
            return;
        }
        if (GetComponent <PlayerEnemyHandler> ().CheckForPanko())
        {
            return;
        }
        PickupRespawn pickupRespawn = other.GetComponent <PickupRespawn> ();

        if (pickupRespawn == null)
        {
            return;
        }
        if (!pickupRespawn.active)
        {
            return;
        }

        Powerup otherPowerup = other.GetComponent <Powerup> ();

        if (otherPowerup == null)
        {
            return;
        }
        {
            Powerup currentPowerup = GetComponent <Powerup> ();
            if (currentPowerup != null)
            {
                if (currentPowerup.CanStack)
                {
                    if (!otherPowerup.CanStack)
                    {
                        return;
                    }
                }
                else
                {
                    return;
                }
            }
        }
        Powerup thisPowerup = null;

        switch (otherPowerup.type)
        {
        case POWERUP_TYPE.DAMAGE:
            thisPowerup = gameObject.AddComponent <Powerup_Damage> ();
            break;

        case POWERUP_TYPE.SPEED:
            thisPowerup = gameObject.AddComponent <Powerup_Movement> ();
            break;

        case POWERUP_TYPE.HEALTH:
            thisPowerup = gameObject.AddComponent <Powerup_Health> ();
            break;
        }
        if (thisPowerup == null)
        {
            return;
        }
        thisPowerup.Copy(otherPowerup);
        StartCoroutine(UsePowerup(thisPowerup));
        pickupRespawn.StartRespawnTimer();
    }