From 36a67fa54ddfa8638c3488d00bbcd2d87a076041 Mon Sep 17 00:00:00 2001
From: client_linchunjie <461730578@qq.com>
Date: 星期四, 20 九月 2018 17:29:16 +0800
Subject: [PATCH] 1871天赋功能
---
System/Skill/TalentTreeBehaviourPattern1.cs | 24 ++++++
System/Skill/TalentTreeBehaviour.cs | 92 +++++++++++++++++++---
System/Skill/TalentWin.cs | 67 ++++------------
System/Skill/TalentTreeBehaviourPattern1.cs.meta | 12 +++
4 files changed, 130 insertions(+), 65 deletions(-)
diff --git a/System/Skill/TalentTreeBehaviour.cs b/System/Skill/TalentTreeBehaviour.cs
index 857aca8..7d624ba 100644
--- a/System/Skill/TalentTreeBehaviour.cs
+++ b/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;
+ }
}
}
diff --git a/System/Skill/TalentTreeBehaviourPattern1.cs b/System/Skill/TalentTreeBehaviourPattern1.cs
new file mode 100644
index 0000000..c96971e
--- /dev/null
+++ b/System/Skill/TalentTreeBehaviourPattern1.cs
@@ -0,0 +1,24 @@
+锘縰sing 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()
+ {
+
+ }
+ }
+}
+
diff --git a/System/Skill/TalentTreeBehaviourPattern1.cs.meta b/System/Skill/TalentTreeBehaviourPattern1.cs.meta
new file mode 100644
index 0000000..c07c66c
--- /dev/null
+++ b/System/Skill/TalentTreeBehaviourPattern1.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 5b3a062129a040a4f803e705f36a0298
+timeCreated: 1537433496
+licenseType: Pro
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/System/Skill/TalentWin.cs b/System/Skill/TalentWin.cs
index addb72e..df1b291 100644
--- a/System/Skill/TalentWin.cs
+++ b/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();
--
Gitblit v1.8.0