public void ActivatePowerUp(PowerUp powerup) { if (!IsPowerupActive(powerup)) { Debug.Log("Es momento de reaccionar el power up"); powerup.Start(player); if (powerup.duration > 0) { // Update Hud PowerupHudDisplay newDisplay = new PowerupHudDisplay { gameObject = Instantiate(powerupHudPrefab, hudPowerUpDisplayParent.transform) }; newDisplay.displayName = newDisplay.gameObject.transform.Find("PowerLabel").GetComponent <Text>(); newDisplay.countdown = newDisplay.gameObject.transform.Find("Effect/TimerLabel").GetComponent <Text>(); newDisplay.displayName.text = powerup.name; activePowerUpsDisplayHud.Add(powerup, newDisplay); activatePowerUps.Add(powerup.name, powerup.duration); keys.Add(powerup); } } else { activatePowerUps[powerup.name] += powerup.duration; } }
public void ActivatePowerup(PowerUp powerup) { if (!activePowerups.ContainsKey(powerup)) { powerup.Start(); activePowerups.Add(powerup, powerup.duration); } else { activePowerups[powerup] += powerup.duration; } keys = new List <PowerUp>(activePowerups.Keys); }
public void AddPowerUp(PowerUp powerUp) { // enable the power up first powerUp.Start(); // if power up is already active, reset its duration if (powerUps.Contains(powerUp)) { powerUps.Find(power => power == powerUp).ResetDuration(); Toast.get.Show(powerUp.powerUpName); } else { // check for other powerups with similar effect for (int i = 0; i < powerUps.Count; i++) { if (powerUps[i].targetStat == powerUp.targetStat) { // powerup with a stronger effect has been picked up if (powerUps[i].statMultiplier < powerUp.statMultiplier) { UnapplyPowerUp(powerUps[i]); ApplyPowerUp(powerUp); powerUps.RemoveAt(i); powerUps.Add(powerUp); Toast.get.Show(powerUp.powerUpName); return; } else if (powerUps[i].statMultiplier > powerUp.statMultiplier) { // a stronger power up is already active return; } } } // add to the list powerUps.Add(powerUp); // apply ApplyPowerUp(powerUp); // show text Toast.get.Show(powerUp.powerUpName); } }
public void ActivatePowerUp(PowerUp power) { if (power == null) { Debug.LogError("Error: Power is Null (probably)"); return; } if (!activePowers.Contains (power) && activePowers.Count < maxAmtPow) { activePowers.Add (power); power.Start(); gameObject.AddComponent (power.GetType ()); // Debug.Log("Adding: " + power.ToString ()); if (goodPowerUpIDs.Contains(power.getPowerUpID())){ powerUpParticles.startColor = Color.green; } else if (neutralPowerUpIDs.Contains(power.getPowerUpID())){ powerUpParticles.startColor = Color.yellow; } else if (badPowerUpIDs.Contains(power.getPowerUpID())){ powerUpParticles.startColor = Color.red; } powerUpParticles.enableEmission = true; } }