// Update is called once per frame void Update() { float hp = gameManager.GetHealth(); float maxHp = gameManager.GetMaxHealth(); float maxHpPool = 100; float eulerHPAngle = 180f * (hp / maxHpPool); RectTransform hullPointerTransform = hullPointer.GetComponent <RectTransform>(); hullPointerTransform.localEulerAngles = new Vector3(0, 0, -eulerHPAngle); float depth = GameManager.main.PlayerDepth; float eulerPressure = 180f * (depth / maxDepth); RectTransform pressurePointerTransform = pressurePointer.GetComponent <RectTransform>(); pressurePointerTransform.localEulerAngles = new Vector3(0, 0, -eulerPressure); float eulerMaxAngle = 180f * (maxHp / maxHpPool); for (int i = 0; i < hullIndicators.Count; i++) { GameObject indicator = hullIndicators[i]; RectTransform indicatorTransform = indicator.GetComponent <RectTransform>(); float angle = i == 0 ? eulerMaxAngle : eulerMaxAngle / (i * 3f); indicatorTransform.localEulerAngles = new Vector3(0, 0, -angle); } float maxHealth = gameManager.GetMaxHealth(); DepthDamage depthDmg = config.DepthDamages.Where(x => x.HealthBelow > maxHealth).FirstOrDefault(); float maxSafeDepth = maxDepth; if (depthDmg != null) { maxSafeDepth = depthDmg.Depth; } eulerPressure = 180f * (maxSafeDepth / maxDepth); RectTransform yellowIndicatorTransform = pressure_indicator_yellow.GetComponent <RectTransform>(); yellowIndicatorTransform.localEulerAngles = new Vector3(0, 0, -eulerPressure); RectTransform greenIndicatorTransform = pressure_indicator_green.GetComponent <RectTransform>(); greenIndicatorTransform.localEulerAngles = new Vector3(0, 0, -eulerPressure * 0.66f); moneyText.text = string.Format("{0:D6}", gameManager.GetMoney()); }
private void FindCurrentDepthDamage() { float playerDepth = GameManager.main.PlayerDepth; float playerMaxHealth = playerHurtable.GetMaxHealth(); DepthDamage depthDamage = upgradeConfig.DepthDamages .Where(damage => playerMaxHealth < damage.HealthBelow && damage.Depth <= playerDepth) .OrderByDescending(damage => damage.Depth) .FirstOrDefault(); if (depthDamage != null) { currentDepthDamage = depthDamage; HUDUI.main.StartPressureWarning(); } else { HUDUI.main.StopPressureWarning(); currentDepthDamage = null; damageTimer = 0f; } }