Ejemplo n.º 1
0
    // 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());
    }
Ejemplo n.º 2
0
    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;
        }
    }