| | |
| | | {
|
| | | 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
|
| | | {
|
| | |
| | |
|
| | | 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;
|
| | | }
|
| | | }
|
| | |
|