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(); }