| System/Skill/TalentTreeBehaviour.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/Skill/TalentTreeBehaviourPattern1.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/Skill/TalentTreeBehaviourPattern1.cs.meta | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/Skill/TalentWin.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
System/Skill/TalentTreeBehaviour.cs
@@ -2,33 +2,97 @@ using System.Collections.Generic; using UnityEngine; using System; using TableConfig; using UnityEngine.UI; namespace Snxxz.UI { public class TalentTreeBehaviour : MonoBehaviour { [SerializeField] TalentTree[] talentTrees; [SerializeField] TalentTree m_TalentTree; [SerializeField] TalentSkillBehaviour[] m_TalentSkills; [SerializeField] ScrollRect m_Scroller; TalentModel model { get { return ModelCenter.Instance.GetModel<TalentModel>(); } } public int series { get; private set; } public int talentType { get; private set; } public virtual void Display(int series, int type) { this.series = series; talentType = type; DisplaySkills(); m_Scroller.verticalNormalizedPosition = 1; } void DisplaySkills() { var job = PlayerDatas.Instance.baseData.Job; List<int> talentSkills; model.TryGetTalents(job, series, talentType, out talentSkills); for (int i = 0; i < m_TalentSkills.Length; i++) { m_TalentSkills[i].Dispose(); if (talentSkills != null && i < talentSkills.Count) { m_TalentSkills[i].gameObject.SetActive(true); m_TalentSkills[i].Display(talentSkills[i]); } else { m_TalentSkills[i].gameObject.SetActive(false); } } model.selectSkill = talentSkills != null ? talentSkills[0] : 0; } public virtual void Dispose() { } public bool BelongToTalentTree(int job, int series, int type) { for (int i = 0; i < talentTrees.Length; i++) { var talentTree = talentTrees[i]; if (talentTree.job == job && talentTree.series == series && talentTree.type == type) { return true; } } return false; return m_TalentTree.BelongToTalentTree(job, series, type); } } [Serializable] public struct TalentTree { public int job; public int series; public int type; public int[] jobs; public int[] series; public int[] types; public bool BelongToTalentTree(int job, int series, int type) { for (int i = 0; i < jobs.Length; i++) { if (jobs[i] != job) { continue; } for (int k = 0; k < this.series.Length; k++) { if (this.series[k] != series) { continue; } for (int q = 0; q < types.Length; q++) { if (types[q] == type) { return true; } } } } return false; } } } System/Skill/TalentTreeBehaviourPattern1.cs
New file @@ -0,0 +1,24 @@ using System.Collections; using System.Collections.Generic; using UnityEngine; namespace Snxxz.UI { public class TalentTreeBehaviourPattern1 : TalentTreeBehaviour { public override void Display(int series, int type) { base.Display(series, type); } public override void Dispose() { base.Dispose(); } void DisplaySkills() { } } } System/Skill/TalentTreeBehaviourPattern1.cs.meta
New file @@ -0,0 +1,12 @@ fileFormatVersion: 2 guid: 5b3a062129a040a4f803e705f36a0298 timeCreated: 1537433496 licenseType: Pro MonoImporter: serializedVersion: 2 defaultReferences: [] executionOrder: 0 icon: {instanceID: 0} userData: assetBundleName: assetBundleVariant: System/Skill/TalentWin.cs
@@ -16,15 +16,9 @@ { [SerializeField] TalentButtonBehaviour[] m_TalentButtons; [SerializeField] TalentTreeBehaviour[] m_TalentTrees; [SerializeField] RectTransform m_ContainerSelect; [SerializeField] Button m_TalentSeriesSelect; [SerializeField] Text m_TalentSeries; [SerializeField] ScrollRect m_SkillScroller; [SerializeField] TalentSkillBehaviour[] m_SkillBehaviours; [SerializeField] RectTransform m_ContainerSelectSkill; [SerializeField] Image m_SelectSkillIcon; [SerializeField] Text m_SelectSkillLevel; @@ -81,10 +75,9 @@ { m_TalentButtons[i].Dispose(); } for (int i = 0; i < m_SkillBehaviours.Length; i++) for (int i = 0; i < m_TalentTrees.Length; i++) { m_SkillBehaviours[i].Dispose(); m_TalentTrees[i].Dispose(); } } @@ -108,29 +101,20 @@ void DisplaySkills() { //var job = PlayerDatas.Instance.baseData.Job; //List<int> talentSkills; //model.TryGetTalents(job, model.selectSeries, model.selectTalentType, out talentSkills); //var config = model.selectTalentType == 1 ? m_TalentAtkConfig : model.selectTalentType == 2 ? // m_TalentDefConfig : m_TalentGeneralConfig; //m_SkillScroller.verticalNormalizedPosition = 1; //for (int i = 0; i < m_SkillBehaviours.Length; i++) //{ // if (talentSkills != null && i < talentSkills.Count) // { // m_SkillBehaviours[i].gameObject.SetActive(true); // var position = config == null ? Vector3.zero : config.GetSkillPosition(i); // m_SkillBehaviours[i].transform.localPosition = position; // m_SkillBehaviours[i].Display(talentSkills[i]); // } // else // { // m_SkillBehaviours[i].Dispose(); // m_SkillBehaviours[i].gameObject.SetActive(false); // } //} // //model.selectSkill = talentSkills != null ? talentSkills[0] : 0; var job = PlayerDatas.Instance.baseData.Job; for (int i = 0; i < m_TalentTrees.Length; i++) { m_TalentTrees[i].Dispose(); if (m_TalentTrees[i].BelongToTalentTree(job, model.selectSeries, model.selectTalentType)) { m_TalentTrees[i].gameObject.SetActive(true); m_TalentTrees[i].Display(model.selectSeries, model.selectTalentType); } else { m_TalentTrees[i].gameObject.SetActive(false); } } } void DisplaySeries() @@ -145,25 +129,6 @@ void DisplaySelectSkill() { m_ContainerSelect.gameObject.SetActive(false); var job = PlayerDatas.Instance.baseData.Job; List<int> talentSkills; model.TryGetTalents(job, model.selectSeries, model.selectTalentType, out talentSkills); if (talentSkills != null) { var index = talentSkills.FindIndex((x) => { return x == model.selectSkill; }); if (index != -1) { if (index < m_SkillBehaviours.Length) { m_ContainerSelect.gameObject.SetActive(true); m_ContainerSelect.SetParent(m_SkillBehaviours[index].transform); m_ContainerSelect.localPosition = Vector3.zero; } } } DisplaySkillInfo(); DisplayConditions();