From 6fcd076e11f1ec6a6ba5427acfa0d739e2c2ea4f Mon Sep 17 00:00:00 2001
From: client_linchunjie <461730578@qq.com>
Date: 星期三, 26 九月 2018 21:33:44 +0800
Subject: [PATCH] 3687 天赋功能
---
System/Skill/TalentSeriesBehaviour.cs | 10 +++
System/Skill/TalentModel.cs | 43 +++++++++++--
Core/NetworkPackage/ClientPack/ClientToMapServer/CA5_Function/CA550_tagCMResetMasterSkill.cs | 16 +++++
System/Skill/TalentWin.cs | 64 ++++++++++++---------
Core/NetworkPackage/ClientPack/ClientToMapServer/CA5_Function/CA550_tagCMResetMasterSkill.cs.meta | 12 ++++
5 files changed, 110 insertions(+), 35 deletions(-)
diff --git a/Core/NetworkPackage/ClientPack/ClientToMapServer/CA5_Function/CA550_tagCMResetMasterSkill.cs b/Core/NetworkPackage/ClientPack/ClientToMapServer/CA5_Function/CA550_tagCMResetMasterSkill.cs
new file mode 100644
index 0000000..2b5b6eb
--- /dev/null
+++ b/Core/NetworkPackage/ClientPack/ClientToMapServer/CA5_Function/CA550_tagCMResetMasterSkill.cs
@@ -0,0 +1,16 @@
+using UnityEngine;
+using System.Collections;
+
+// A5 50 重置大师天赋技能 #tagCMResetMasterSkill
+
+public class CA550_tagCMResetMasterSkill : GameNetPackBasic {
+
+ public CA550_tagCMResetMasterSkill () {
+ combineCmd = (ushort)0x03FE;
+ _cmd = (ushort)0xA550;
+ }
+
+ public override void WriteToBytes () {
+ }
+
+}
diff --git a/Core/NetworkPackage/ClientPack/ClientToMapServer/CA5_Function/CA550_tagCMResetMasterSkill.cs.meta b/Core/NetworkPackage/ClientPack/ClientToMapServer/CA5_Function/CA550_tagCMResetMasterSkill.cs.meta
new file mode 100644
index 0000000..4e8f22a
--- /dev/null
+++ b/Core/NetworkPackage/ClientPack/ClientToMapServer/CA5_Function/CA550_tagCMResetMasterSkill.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 34385181537277e42aecb5e9c8fbcb67
+timeCreated: 1537966668
+licenseType: Pro
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/System/Skill/TalentModel.cs b/System/Skill/TalentModel.cs
index 644b254..6d9c44d 100644
--- a/System/Skill/TalentModel.cs
+++ b/System/Skill/TalentModel.cs
@@ -3,6 +3,7 @@
using UnityEngine;
using TableConfig;
using System;
+using System.Linq;
namespace Snxxz.UI
{
@@ -99,7 +100,8 @@
}
public int talentResetBook { get; private set; }
- public int storeId { get; private set; }
+ public int talentResetBookCost { get; private set; }
+ Dictionary<int, List<int>> jobTalentTypeDict = new Dictionary<int, List<int>>();
void ParseConfig()
{
var configs = Config.Instance.GetAllValues<TalentConfig>();
@@ -121,22 +123,47 @@
talentTreeDict.Add(skillConfig.UseType, talentTree);
}
talentTree.Add(configs[i], skillConfig.SkillTypeID);
+
+ List<int> list = null;
+ if (!jobTalentTypeDict.TryGetValue(skillConfig.UseType, out list))
+ {
+ list = new List<int>();
+ jobTalentTypeDict.Add(skillConfig.UseType, list);
+ }
+ if (!list.Contains(configs[i].type))
+ {
+ list.Add(configs[i].type);
+ }
}
}
+ var jobs = jobTalentTypeDict.Keys.ToList();
+ for (int i = 0; i < jobs.Count; i++)
+ {
+ var list = jobTalentTypeDict[jobs[i]];
+ list.Sort((x, y) =>
+ {
+ return x.CompareTo(y);
+ });
+ }
+
+
var config = Config.Instance.Get<FuncConfigConfig>("");
if (config != null)
{
talentResetBook = int.Parse(config.Numerical1);
+ talentResetBookCost = int.Parse(config.Numerical2);
}
- var storeConfigs = Config.Instance.GetAllValues<StoreConfig>();
- for (int i = 0; i < storeConfigs.Count; i++)
+ }
+
+ public int GetTalentType(int index)
+ {
+ var job = (int)Math.Pow(2, PlayerDatas.Instance.baseData.Job);
+ if (jobTalentTypeDict.ContainsKey(job))
{
- if (storeConfigs[i].ItemID == talentResetBook)
- {
- storeId = storeConfigs[i].ID;
- break;
- }
+ var list = jobTalentTypeDict[job];
+ return index < list.Count ? list[index] : list[0];
}
+ return 1;
}
public bool TryGetTalents(int job, int talentType, int talentSeries, out List<int> talents)
diff --git a/System/Skill/TalentSeriesBehaviour.cs b/System/Skill/TalentSeriesBehaviour.cs
index 4e2be8e..71ff779 100644
--- a/System/Skill/TalentSeriesBehaviour.cs
+++ b/System/Skill/TalentSeriesBehaviour.cs
@@ -32,12 +32,16 @@
public void Display()
{
m_Button.image.SetSprite(talentSeries == model.selectSeries ? "Title_TabRight" : "Title_TabDark");
+ m_TalentType.text = Language.Get(StringUtility.Contact("TalentBtnSeries_", talentSeries));
+
DisplayTalentPoint();
model.selectSeriesEvent -= OnSelectSeriesEvent;
model.selectSeriesEvent += OnSelectSeriesEvent;
model.selectTalentTypeEvnet -= OnSelectTalentTypeEvnet;
model.selectTalentTypeEvnet += OnSelectTalentTypeEvnet;
+ model.talentSkillUpdate -= TalentSkillUpdate;
+ model.talentSkillUpdate += TalentSkillUpdate;
}
void DisplayTalentPoint()
@@ -50,6 +54,12 @@
{
model.selectSeriesEvent -= OnSelectSeriesEvent;
model.selectTalentTypeEvnet -= OnSelectTalentTypeEvnet;
+ model.talentSkillUpdate -= TalentSkillUpdate;
+ }
+
+ private void TalentSkillUpdate(int skillId)
+ {
+ DisplayTalentPoint();
}
private void OnSelectSeriesEvent()
diff --git a/System/Skill/TalentWin.cs b/System/Skill/TalentWin.cs
index cd290fc..7863003 100644
--- a/System/Skill/TalentWin.cs
+++ b/System/Skill/TalentWin.cs
@@ -68,7 +68,7 @@
protected override void OnPreOpen()
{
model.selectSeries = 1;
- model.selectTalentType = 1;
+ model.selectTalentType = model.GetTalentType(0);
Display();
model.selectTalentTypeEvnet += OnSelectTalentTypeEvnet;
model.selectSeriesEvent += OnSelectSeriesEvent;
@@ -177,15 +177,19 @@
m_TalentSkills[i].gameObject.SetActive(false);
}
}
+
+ var talentTypeDisplay = Language.Get(StringUtility.Contact("TalentType_", model.selectTalentType));
+ var seriesDisplay = Language.Get(StringUtility.Contact("TalentSeries_", model.selectSeries));
+ m_TalentTitle.text = StringUtility.Contact(talentTypeDisplay, "路", seriesDisplay);
}
void DisplayTalentType()
{
- var point = model.GetTalentTypePoint(model.selectTalentType == 1 ? 2 : 1);
+ var unselectTalentType = model.selectTalentType == model.GetTalentType(0) ? model.GetTalentType(1) : model.GetTalentType(0);
+ var point = model.GetTalentTypePoint(unselectTalentType);
var job = PlayerDatas.Instance.baseData.Job;
- var talentTypeDisplay = Language.Get(StringUtility.Contact("TalentType_", job, "_", model.selectTalentType == 1 ? 2 : 1));
+ var talentTypeDisplay = Language.Get(StringUtility.Contact("TalentBtnType_", unselectTalentType));
m_TalentType.text = StringUtility.Contact(talentTypeDisplay, "锛�", point, "锛�");
- m_TalentTitle.text = Language.Get(StringUtility.Contact("TalentTitle_", job, "_", model.selectTalentType));
}
void DisplaySelectSkill()
@@ -209,8 +213,13 @@
if (requireSeriesPoint != 0 && index < m_SelectConditions.Length)
{
m_SelectConditions[index].gameObject.SetActive(true);
- m_SelectConditions[index].text = StringUtility.Contact(model.GetSeriesPoint(talentConfig.type,
- skillConfig.RequireSeries()), "/", requireSeriesPoint);
+ var requireSeries = skillConfig.RequireSeries();
+ var point = model.GetSeriesPoint(talentConfig.type, requireSeries);
+ var requireDisplay = StringUtility.Contact(point, "/", requireSeriesPoint);
+ requireDisplay = UIHelper.GetTextColorByItemColor(point >= requireSeriesPoint ?
+ TextColType.Green : TextColType.Red, requireDisplay);
+ var seriesDisplay = Language.Get("TalentSeriesCondition", Language.Get(StringUtility.Contact("TalentSeries_", requireSeries)));
+ m_SelectConditions[index].text = StringUtility.Contact(seriesDisplay, requireDisplay);
index++;
}
}
@@ -221,10 +230,10 @@
{
var learnSkillConfig = Config.Instance.Get<SkillConfig>(skillConfig.LearnSkillReq);
m_SelectConditions[index].gameObject.SetActive(true);
- m_SelectConditions[index].text = StringUtility.Contact(
- "鍓嶇疆澶╄祴锛� ", learnSkillConfig.SkillName, " ",
- learnTalent.level, "/", learnSkillConfig.LearnSkillLV
- );
+ var requireDisplay = StringUtility.Contact(learnSkillConfig.SkillName, " ", learnTalent.level, "/", skillConfig.LearnSkillLV);
+ requireDisplay = UIHelper.GetTextColorByItemColor(learnTalent.level >= skillConfig.LearnSkillLV ?
+ TextColType.Green : TextColType.Red, requireDisplay);
+ m_SelectConditions[index].text = StringUtility.Contact(Language.Get("TalentPreSkillCondition"), requireDisplay);
index++;
}
}
@@ -328,7 +337,8 @@
private void SelectTalentType()
{
- model.selectTalentType = model.selectTalentType == 1 ? 2 : 1;
+ model.selectTalentType = model.selectTalentType == model.GetTalentType(0) ?
+ model.GetTalentType(1) : model.GetTalentType(0);
}
private void DisplayLevelUp()
@@ -336,7 +346,7 @@
TalentSkill talent;
if (model.TryGetTalent(model.selectSkill, out talent))
{
- m_AddPointBtnText.text = talent.level >= talent.maxLevel ? "宸叉弧绾�" : "鍔犵偣";
+ m_AddPointBtnText.text = talent.level >= talent.maxLevel ? Language.Get("TalentHighestLevel") : Language.Get("TalentLevelUp");
}
}
@@ -363,26 +373,26 @@
private void ResetPoint()
{
var count = pack.GetItemCountByID(PackType.rptItem, model.talentResetBook);
+ var config = Config.Instance.Get<ItemConfig>(model.talentResetBook);
if (count > 0)
{
- ConfirmCancel.ShowItemConfirm(Language.Get(""), model.talentResetBook, 1, () =>
- {
-
- });
+ ConfirmCancel.ShowItemConfirm(Language.Get("TalentResetRequire", config.ItemName), model.talentResetBook, 1, () =>
+ {
+ CA550_tagCMResetMasterSkill pak = new CA550_tagCMResetMasterSkill();
+ GameNetSystem.Instance.SendInfo(pak);
+ });
}
else
{
- if (model.storeId != 0)
- {
- var storeConfig = Config.Instance.Get<StoreConfig>(model.storeId);
- ConfirmCancel.ShowPopConfirm(Language.Get(""), Language.Get("", storeConfig.MoneyNumber), (bool isOk) =>
- {
- if (isOk)
- {
- ModelCenter.Instance.GetModel<StoreModel>().SendBuyShopItem(storeConfig, 1);
- }
- });
- }
+ ConfirmCancel.ShowPopConfirm(Language.Get(Language.Get("Mail101")), Language.Get("LackTalentBook",
+ config.ItemName, model.talentResetBookCost), (bool isOk) =>
+ {
+ if (isOk)
+ {
+ CA550_tagCMResetMasterSkill pak = new CA550_tagCMResetMasterSkill();
+ GameNetSystem.Instance.SendInfo(pak);
+ }
+ });
}
}
--
Gitblit v1.8.0