void OnPowerUpTimerEndCallback(TimedPowerUp powerUp) { Debug.Log("End Timer"); powerUp.OnTimerEnd.RemoveAllListeners(); Player.TimedPowerUp = PowerUpType.None; DestroyPowerUp(powerUp); }
public void Add(PowerUp powerUp) { if (powerUp.type == PowerUp.PowerUpType.Penalty) { AudioManager.Instance.Play(AudioManager.Instance.sfxPenalty); } else { AudioManager.Instance.Play(AudioManager.Instance.sfxBonus); } if (powerUp is TimedPowerUp) { TimedPowerUp currentPowerUp = gameObject.GetComponentInChildren(powerUp.GetType()) as TimedPowerUp; if (currentPowerUp != null) { currentPowerUp.Prolong(currentPowerUp.time); return; } } Transform slot = slots[GetNextFreeSlotIndex()].transform; PowerUp powerUpInstance = Instantiate(powerUp); powerUpInstance.name = powerUp.name; powerUpInstance.transform.position = slot.position; powerUpInstance.transform.SetParent(slot); }
public void Remove <T>() { TimedPowerUp powerUp = gameObject.GetComponentInChildren <T>() as TimedPowerUp; if (powerUp != null) { powerUp.Interrupt(); } }
void ActionTimedPowerUp(TimedPowerUp powerUp) { Debug.LogFormat("Action TimedPowerUp {0}", powerUp); Player.Points += powerUp.Points; Player.TimedPowerUp = powerUp.Type; powerUp.OnTimerEnd.AddListener(OnPowerUpTimerEndCallback); powerUp.StarTimer(); }