Ejemplo n.º 1
0
    public void Setup(Atom a)
    {
        atom = a;

        AtomData data = Game.Instance.gameData.FindAtomData(atom.GetAtomicNumber());
        AtomInfo info = Game.Instance.gameData.FindAtomInfo(atom.GetAtomicNumber());

        if (!data.IsDiscovered())
        {
            info = Game.Instance.gameData.GetUknownInfo();
            data = Game.Instance.gameData.GetUknownData();
            a    = Game.Instance.gameData.GetUknown();
        }

        // Color
        Color c = info.GetCategoryColor();

        background.color = c;
        c  *= .6f;
        c.a = 1f;
        darkBackground.color = c;

        var sizeDelta = rect == null ? Vector2.zero : rect.sizeDelta;

        // Name Text
        {
            var size = nameText.GetPreferredValues(a.GetName(), Mathf.Infinity, nameText.rectTransform.rect.height);
            size.y  = nameText.rectTransform.sizeDelta.y;
            size.x += 15f;
            if (size.x > sizeDelta.x)
            {
                sizeDelta.x = size.x;
            }

            nameText.text = a.GetName();
        }

        // Curr Amo Text
        {
            string text = "Amount:\n " + data.GetCurrAmo();

            var size = currAmoText.GetPreferredValues(text, Mathf.Infinity, currAmoText.rectTransform.rect.height);
            size.y  = currAmoText.rectTransform.sizeDelta.y;
            size.x += 15f;
            if (size.x > sizeDelta.x)
            {
                sizeDelta.x = size.x;
            }

            currAmoText.text = text;
        }

        // Passive Gain Text
        {
            string text = "(+" + data.GetPassiveGain() + ")";

            var size = passiveGainText.GetPreferredValues(text, Mathf.Infinity, passiveGainText.rectTransform.rect.height);
            size.y  = passiveGainText.rectTransform.sizeDelta.y;
            size.x += 15f;
            if (size.x > sizeDelta.x)
            {
                sizeDelta.x = size.x;
            }

            passiveGainText.text = text;
        }

        rect.sizeDelta = sizeDelta;
        LateUpdate();
    }