protected virtual void PowerUpCollected(GameObject player) { if (State == PowerUpState.IsCollected || State == PowerUpState.IsExpiring) { return; } State = PowerUpState.IsCollected; PlayerController = player.GetComponent <PlayerController>(); Player = player.GetComponent <Player_G>(); gameObject.transform.parent = Player.gameObject.transform; gameObject.transform.position = Player.gameObject.transform.position; // Collection effects PowerUpEffects(); // Payload PowerUpPayload(); // Send message to any listeners foreach (GameObject go in EventSystemListeners.main.listeners) { ExecuteEvents.Execute <IPowerUpEvents>(go, null, (x, y) => x.OnPowerUpCollected(this, Player)); } Collider.enabled = false; }
void IPowerUpEvents.OnPowerUpCollected(PowerUp_G powerUp, Player_G player) { // We dont bother storing those that expire immediately if (!powerUp.ExpiresImmediately) { ActivePowerUps.Add(powerUp); //UpdateActivePowerUpUi(); } }
void IPowerUpEvents.OnPowerUpExpired(PowerUp_G powerUp, Player_G player) { ActivePowerUps.Remove(powerUp); //UpdateActivePowerUpUi(); }