From 0ced6b94425308d2a672fb93e9d245906d1d4879 Mon Sep 17 00:00:00 2001
From: client_linchunjie <461730578@qq.com>
Date: 星期三, 26 九月 2018 13:46:46 +0800
Subject: [PATCH] 3687 天赋功能
---
System/Skill/TalentModel.cs | 46 ++++++++++++++++++++++++++++++++++++++++------
1 files changed, 40 insertions(+), 6 deletions(-)
diff --git a/System/Skill/TalentModel.cs b/System/Skill/TalentModel.cs
index 98b552e..e2f68b3 100644
--- a/System/Skill/TalentModel.cs
+++ b/System/Skill/TalentModel.cs
@@ -62,7 +62,7 @@
public override void Init()
{
- //ParseConfig();
+ ParseConfig();
FuncOpen.Instance.OnFuncStateChangeEvent += OnFuncStateChangeEvent;
}
@@ -134,12 +134,22 @@
return talentSkills.TryGetValue(talentId, out talent);
}
- public int GetTalentTypeTotalPoint(int series, int talentType)
+ public int GetTalentTypePoint(int talentType)
+ {
+ var point = 0;
+ for (int i = 1; i <= 3; i++)
+ {
+ point += GetSeriesPoint(talentType, i);
+ }
+ return point;
+ }
+
+ public int GetSeriesPoint(int talentType,int talentSeries)
{
var job = (int)Math.Pow(PlayerDatas.Instance.baseData.Job, 2);
List<int> list;
var point = 0;
- if (TryGetTalents(job, series, talentType, out list))
+ if (TryGetTalents(job, talentType, talentSeries, out list))
{
for (int i = 0; i < list.Count; i++)
{
@@ -169,16 +179,16 @@
error = 2;
return false;
}
- var talentConfig = Config.Instance.Get<TalentConfig>(talent.skillId + talent.level);
+ var talentConfig = talent.GetTalentConfig(talent.level + 1);
if (talentConfig.requireSeriesPoint != 0)
{
- if (GetTalentTypeTotalPoint(talentConfig.requireSeries, talentConfig.type) < talentConfig.requireSeriesPoint)
+ if (GetSeriesPoint(talentConfig.type, talentConfig.requireSeries) < talentConfig.requireSeriesPoint)
{
error = 4;
return false;
}
}
- var skillConfig = Config.Instance.Get<SkillConfig>(talent.skillId + talent.level);
+ var skillConfig = talent.GetSkillConfig(talent.level + 1);
if (skillConfig.LearnSkillReq != 0)
{
TalentSkill learnTalent;
@@ -238,6 +248,30 @@
this.skillId = skillId;
this.maxLevel = maxLevel;
}
+
+ public SkillConfig GetSkillConfig(int level = 0)
+ {
+ if (level > 0)
+ {
+ return Config.Instance.Get<SkillConfig>(skillId + level - 1);
+ }
+ else
+ {
+ return Config.Instance.Get<SkillConfig>(skillId + level);
+ }
+ }
+
+ public TalentConfig GetTalentConfig(int level = 0)
+ {
+ if (level > 0)
+ {
+ return Config.Instance.Get<TalentConfig>(skillId + level - 1);
+ }
+ else
+ {
+ return Config.Instance.Get<TalentConfig>(skillId + level);
+ }
+ }
}
public class TalentSeries
--
Gitblit v1.8.0