少年修仙传客户端代码仓库
client_linchunjie
2018-09-26 0ced6b94425308d2a672fb93e9d245906d1d4879
System/Skill/TalentTreeScriptable.cs
@@ -9,10 +9,10 @@
{
    public class TalentTreeScriptable : ScriptableObject
    {
        [SerializeField] TalentTree[] talentTrees;
        [SerializeField] TalentTree talentTrees;
        [SerializeField] Vector2 m_ContentSizeDelta;
        [SerializeField] TalentElement[] skillElements;
        [SerializeField] ArrowElement[] arrowElements;
        [SerializeField] List<TalentElement> skillElements;
        [SerializeField] List<ArrowElement> arrowElements;
        public Vector2 contentSizeDelta
        {
@@ -21,35 +21,83 @@
        public TalentElement GetTalentElement(int index)
        {
            if (index < skillElements.Length)
            if (skillElements != null && index < skillElements.Count)
            {
                return skillElements[index];
            }
            return default(TalentElement);
        }
#if UNITY_EDITOR
        public void ApplyTalentElement(int index,Vector3 _position)
        {
            if (index >= skillElements.Count)
            {
                skillElements.Add(new TalentElement()
                {
                    position = _position,
                });
            }
            else
            {
                skillElements[index] = new TalentElement()
                {
                    position = _position,
                };
            }
        }
        public void SyncElementsCount(int count)
        {
            if (count < skillElements.Count)
            {
                skillElements.RemoveRange(count, skillElements.Count - count);
            }
        }
#endif
        public bool Belong(int job, int talentType, int talentSeries)
        {
            for (int i = 0; i < talentTrees.Length; i++)
            {
                if (talentTrees[i].Belong(job, talentType, talentSeries))
                {
                    return true;
                }
            }
            return false;
            return talentTrees.Belong(job, talentType, talentSeries);
        }
        [Serializable]
        public struct TalentTree
        {
            public int job;
            public int talentType;
            public int talentSeries;
            public int[] jobs;
            public int[] talentTypes;
            public int[] talentSeriess;
            public bool Belong(int job, int talentType, int talentSeries)
            {
                return this.job == job && this.talentType == talentType && this.talentSeries == talentSeries;
                bool sameJob = false;
                for (int i = 0; i < jobs.Length; i++)
                {
                    if (jobs[i] == job)
                    {
                        sameJob = true;
                        break;
                    }
                }
                bool sameType = false;
                for (int i = 0; i < talentTypes.Length; i++)
                {
                    if (talentTypes[i] == talentType)
                    {
                        sameType = true;
                        break;
                    }
                }
                bool sameSeries = false;
                for (int i = 0; i < talentSeriess.Length; i++)
                {
                    if (talentSeriess[i] == talentSeries)
                    {
                        sameSeries = true;
                        break;
                    }
                }
                return sameJob && sameType && sameSeries;
            }
        }