Exemple #1
0
    // Visually updates which talents are unlocked by this character
    private void DisplayTalents(UITalent currentTalent, int subTreeIndex, int talentIndex, MenuTalentData talentData)
    {
        // Do something with currentTalent to add it to the page, color it differently if its selected, ect
        GameObject talentButton = GetTalentButton(subTreeIndex, talentIndex);

        talentButton.GetComponent <Button>().onClick.RemoveAllListeners();
        talentButton.GetComponent <Button>().onClick.AddListener(ClickTalent);
        talentButton.AddComponent <TalentButtonData>(); // TODO for 'locking' talents behind their prerequisites
        talentButton.GetComponentInChildren <TextMeshProUGUI>().text = currentTalent.talent.name;
        talentButton.GetComponent <TalentButtonData>().talentData    = talentData;

        if (currentTalent.selected)
        {
            talentButton.GetComponent <Outline>().effectColor       = new Color32(169, 87, 202, 255);
            talentButton.GetComponent <TalentButtonData>().selected = true;
            coloredTalents.Add(talentButton);
        }
        else
        {
            talentButton.GetComponent <TalentButtonData>().selected = false;
        }
    }
Exemple #2
0
    // Adds talents to the respective sub trees
    private void PopulateSubTree(MenuSubTreeData subTree, int subTreeIndex)
    {
        switch (subTreeIndex)
        {
        case 0:
            GameObject.Find("Subtree1Name").GetComponent <TextMeshProUGUI>().text = subTree.name;
            break;

        case 1:
            GameObject.Find("Subtree2Name").GetComponent <TextMeshProUGUI>().text = subTree.name;
            break;

        case 2:
            GameObject.Find("Subtree3Name").GetComponent <TextMeshProUGUI>().text = subTree.name;
            break;
        }

        for (int i = 0; i < subTree.talents.Length; i++) // (MenuTalentData talent in subTree.talents) {
        {
            UITalent currentTalent = new UITalent {
                talent = subTree.talents[i]
            };

            if (character.talents.Exists(x => x.name == subTree.talents[i].name))
            {
                currentTalent.selected = true;
                selectedTreeTalents   += 1;
            }
            else
            {
                currentTalent.selected = false;
            }

            DisplayTalents(currentTalent, subTreeIndex, i, subTree.talents[i]);
        }
    }