private void ColorSlider(StaminaLevel s) { switch (s) { case StaminaLevel.LOW: sliderColor.color = Color.red; break; case StaminaLevel.MID: sliderColor.color = Color.blue; break; case StaminaLevel.HIGH: sliderColor.color = Color.green; break; case StaminaLevel.SPECIAL: sliderColor.color = Color.white; break; default: break; } //sliderColor.color = }
protected override void Update() { // set these before base update, so base update can calculate temp effects currentStaminaRegenRate = staminaRegenRate; cantStumble = debug_noStumble; noStaminaLoss = false; base.Update(); // calculate stamina StaminaLevel currentStaminaLevel = StaminaLevel.SPECIAL; if (!noStaminaLoss) { // check if regening or using stamina if (currentMoveSpeed > speedToSpendStamina) { currentStamina = Mathf.Max(currentStamina - staminaUsageRate * Time.deltaTime, 0.0f); } else { currentStamina = Mathf.Min(currentStamina + currentStaminaRegenRate * Time.deltaTime, staminaMax); } // check stamina level if (currentStamina <= staminaLevelLow) { currentMaxMoveSpeed *= staminaLowDecreasedLevel; currentStaminaLevel = StaminaLevel.LOW; } else if (currentStamina >= staminaLevelHigh) { currentMaxMoveSpeed *= staminaHighIncreasedLevel; currentStaminaLevel = StaminaLevel.HIGH; } else { currentStaminaLevel = StaminaLevel.MID; } } sliderStamina.value = currentStamina / staminaMax; ColorSlider(currentStaminaLevel); if (Input.GetMouseButton(0)) { mouseHoldTime += Time.deltaTime; if (mouseHoldTime > mouseHoldTimeToStop) { currentMoveSpeed -= mouseHoldStopAmount; } } if (Input.GetMouseButtonUp(0)) { mouseHoldTime = 0.0f; } // update distance display distanceRun = transform.position.z - startZValue; distanceDisplay.text = (int)distanceRun + " meters"; if (debug_alwaysRun) { currentMoveSpeed = currentMaxMoveSpeed; } if (debug_infiniteStamina) { currentStamina = staminaMax; } // DEBUG! if (Input.GetKeyDown(KeyCode.Space)) { debug_noStumble = true; Debug_KeyboardStep(); } }