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); }
// 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(); }
// 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; } }