public IEnumerator HoldTimer(int holdTime) { holdTimeLeft = holdTime; while (holdTimeLeft > 0) { PlayerUI.holdTimerText.text = "" + holdTimeLeft; yield return(new WaitForSeconds(1f)); holdTimeLeft--; } PlayerUI.holdTimerText.text = "" + holdTimeLeft; if (CurrentPowerUp == null) { yield break; } CurrentPowerUp.TargetColor = _color; CurrentPowerUp.PunishPlayer(); CurrentPowerUp = null; }
void Update() { if (GameManager.INSTANCE.gameOver) { return; } //update Player UI PlayerUI.UpdateUI(HasKey, CurrentPowerUp != null); //check if player got stunned by Thunder if (IsStunned) { if (CurrentPowerUp != null) { StopCoroutine("HoldTimer"); CurrentPowerUp = null; } return; } //detect shoulder-buttons and set bool to be used in Box.cs activatePressed = false; if (CurrentPowerUp == null && (Input.GetAxisRaw(ACTIVATE_BUTTON + playerNumber) == 1 || Input.GetAxisRaw(ACTIVATE_BUTTON + playerNumber) == -1)) { activatePressed = true; } //check if player already collected a Power up; if not, stop here if (CurrentPowerUp == null) { return; } needsTwoColors = CurrentPowerUp is AbstractMultipleTargetPowerUp; //check how many inputs the Power Up needs Debug.Log(CurrentPowerUp.GetType()); Colors colorPressed = CheckForColorInput(); //check if the Player pressed a collor on the controller, returns IDLE if not if (colorPressed == Colors.IDLE) { return; //no button pressed, stop here } if (needsTwoColors) //power Up needs two inputs/colors { AbstractMultipleTargetPowerUp multiTargetPowerUp = (AbstractMultipleTargetPowerUp)CurrentPowerUp; if (multiTargetPowerUp.TargetColor == Colors.IDLE) //target color isn't set yet, and gets the value of pressedColor { multiTargetPowerUp.TargetColor = colorPressed; } else //target color is already set { multiTargetPowerUp.SecondTargetColor = colorPressed; //second target color gets set to colorPressed StopCoroutine("HoldTimer"); multiTargetPowerUp.ExecutePowerUp(_color); CurrentPowerUp = null; } } else //power Up needs only one input/color { CurrentPowerUp.TargetColor = colorPressed; StopCoroutine("HoldTimer"); CurrentPowerUp.ExecutePowerUp(_color); CurrentPowerUp = null; } }