Exemple #1
0
    public void ClickTalent()
    {
        bool           selected = EventSystem.current.currentSelectedGameObject.GetComponent <TalentButtonData>().selected;
        MenuTalentData talent   = EventSystem.current.currentSelectedGameObject.GetComponent <TalentButtonData>().talentData;

        // After all above shit { remove or add talent to characterTalents }

        if (!selected)
        {
            character.talents.Add(talent);
            coloredTalents.Add(EventSystem.current.currentSelectedGameObject);
            EventSystem.current.currentSelectedGameObject.GetComponent <Outline>().effectColor = new Color32(169, 87, 202, 255);
        }
        else
        {
            for (int i = 0; i < character.talents.Count; i++)
            {
                if (character.talents[i].id == talent.id)
                {
                    character.talents.RemoveAt(i);
                    coloredTalents.Remove(EventSystem.current.currentSelectedGameObject);
                }
            }
            for (int j = 0; j < character.selectedTalents.abilities.Length; j++)
            {
                if (character.selectedTalents.abilities[j].id == talent.id)
                {
                    character.selectedTalents.abilities[j] = null;
                    break;
                }
            }
            for (int j = 0; j < character.selectedTalents.passives.Length; j++)
            {
                if (character.selectedTalents.passives[j].id == talent.id)
                {
                    character.selectedTalents.passives[j] = null;
                    break;
                }
            }
            for (int j = 0; j < character.selectedTalents.boons.Count; j++)
            {
                if (character.selectedTalents.boons[j].id == talent.id)
                {
                    character.selectedTalents.boons.Remove(character.selectedTalents.boons[j]);
                    break;
                }
            }
            if (character.selectedTalents.ultimate.id == talent.id)
            {
                character.selectedTalents.ultimate = null;
            }

            EventSystem.current.currentSelectedGameObject.GetComponent <Outline>().effectColor = new Color32(222, 222, 222, 255);
        }

        EventSystem.current.currentSelectedGameObject.GetComponent <TalentButtonData>().selected = !selected;
        GameObject.Find("TotalTalents").GetComponent <TextMeshProUGUI>().text = "Total Talents: " + character.talents.Count;
        data.SaveCharacter(character);
    }
Exemple #2
0
    // Use this for initialization
    public void Setup(MenuTalentData currentTalent, TalentSelectLoader loader, string talentTreeName, string subTreeName)
    {
        talent = currentTalent;

        talentName.text = currentTalent.name;
        switch (currentTalent.type)
        {
        case 0:
            type.text = "Ability";

            /* Get values for this from GetAbilityData
             * school.text = "Physical";
             * method.text = "Targeted";
             * range.text ;
             */
            break;

        case 1:
            type.text = "Passive";

            /* Get values for this from GetPassiveData
             * school.text = "Physical";
             * method.text = "Targeted";
             * range.text ;
             */
            break;

        case 3:
            type.text = "Ultimate";

            /* Get values for this from GetAbilityData
             * school.text = "Physical";
             * method.text = "Targeted";
             * range.text ;
             */
            break;
        }

        // Temporary
        school.text  = "Physical";
        method.text  = "Targeted";
        range.text   = "Melee";
        subtree.text = subTreeName + " (" + talentTreeName + ")";

        gameObject.GetComponent <Button>().onClick.RemoveAllListeners();
        gameObject.GetComponent <Button>().onClick.AddListener(SelectTalent);
    }
    public void SelectTalent(int type, MenuTalentData saveTalent)
    {
        switch (type)
        {
        case 0:
            character.selectedTalents.abilities[slotId] = saveTalent;
            break;

        case 1:
            character.selectedTalents.passives[slotId] = saveTalent;
            break;

        case 3:
            character.selectedTalents.ultimate = saveTalent;
            break;
        }

        data.SaveCharacter(character);
        SceneLoader sceneLoader = new SceneLoader();

        sceneLoader.CharacterMenu();
    }
Exemple #4
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;
        }
    }