From 23b7dfea0fed60fb6961ebeae779e0ea84a3f90e Mon Sep 17 00:00:00 2001
From: client_linchunjie <461730578@qq.com>
Date: 星期三, 12 九月 2018 17:40:20 +0800
Subject: [PATCH] 3496【前端】【1.0.15】【主干】成就类型91:X技能提升X级跳转优化
---
System/Achievement/AchievementGotoPart1.cs | 25 ++++++++++--
System/Treasure/TreasurePotentialBriefInfo.cs | 2
System/Treasure/TreasurePotentialPanel.cs | 40 ++++++++++++++++++++
System/Achievement/AchievementModel.cs | 42 +++++++++++++++++++++
4 files changed, 103 insertions(+), 6 deletions(-)
diff --git a/System/Achievement/AchievementGotoPart1.cs b/System/Achievement/AchievementGotoPart1.cs
index b5cd718..203c33c 100644
--- a/System/Achievement/AchievementGotoPart1.cs
+++ b/System/Achievement/AchievementGotoPart1.cs
@@ -314,7 +314,8 @@
public static void GotoSpSkillLevelUp(int _achievementId)
{
var config = Config.Instance.Get<SuccessConfig>(_achievementId);
- var skillId = config.Condition[0];
+ var index = PlayerDatas.Instance.baseData.Job - 1;
+ var skillId = index < config.Condition.Length ? config.Condition[index] : config.Condition[0];
var treasureId = 0;
var humanTreasures = treasureModel.GetTreasureCategory(TreasureCategory.Human);
@@ -330,13 +331,27 @@
}
}
+ var skillConfig = Config.Instance.Get<SkillConfig>(skillId);
+ var treasureConfig = Config.Instance.Get<TreasureConfig>(treasureId);
+
if (treasureId != 0)
{
- treasureModel.currentCategory = TreasureCategory.Human;
- treasureModel.selectedTreasure = treasureId;
- treasureModel.selectedPotential = skillId;
+ if (!FuncOpen.Instance.IsFuncOpen(82))
+ {
+ FuncOpen.Instance.ProcessorFuncErrorTip(82);
+ return;
+ }
- guideAchievementId = _achievementId;
+ Treasure treasure;
+ if (treasureModel.TryGetTreasure(treasureId, out treasure))
+ {
+ if (!treasure.IsHighestStage)
+ {
+ SysNotifyMgr.Instance.ShowTip("TreasureSkillUnGet", skillConfig.SkillName, treasureConfig.Name);
+ return;
+ }
+ guideAchievementId = _achievementId;
+ }
}
}
diff --git a/System/Achievement/AchievementModel.cs b/System/Achievement/AchievementModel.cs
index 0a00a3c..9119dee 100644
--- a/System/Achievement/AchievementModel.cs
+++ b/System/Achievement/AchievementModel.cs
@@ -428,6 +428,48 @@
case 116:
getItemPathModel.SetChinItemModel(config.Condition[0]);
break;
+ case 91:
+ var index = PlayerDatas.Instance.baseData.Job - 1;
+ var potentialId = index < config.Condition.Length ? config.Condition[index] : config.Condition[0];
+
+ var treasureModel = ModelCenter.Instance.GetModel<TreasureModel>();
+ var treasureId = 0;
+ var treasures = treasureModel.GetTreasureCategory(TreasureCategory.Human);
+
+ foreach (var id in treasures)
+ {
+ Treasure treasure;
+ treasureModel.TryGetTreasure(id, out treasure);
+ if (treasure.GetPotential(potentialId) != null)
+ {
+ treasureId = treasure.id;
+ break;
+ }
+ }
+ var skillConfig = Config.Instance.Get<SkillConfig>(potentialId);
+ var treasureConfig = Config.Instance.Get<TreasureConfig>(treasureId);
+ if (treasureId != 0)
+ {
+ if (!FuncOpen.Instance.IsFuncOpen(82))
+ {
+ return;
+ }
+ Treasure treasure;
+ if (treasureModel.TryGetTreasure(treasureId, out treasure))
+ {
+ if (!treasure.IsHighestStage)
+ {
+ return;
+ }
+ treasureModel.currentCategory = TreasureCategory.Human;
+ treasureModel.selectedTreasure = treasureId;
+ if (!WindowCenter.Instance.CheckOpen<TreasureLevelUpWin>())
+ {
+ WindowJumpMgr.Instance.WindowJumpTo(JumpUIType.TreasureCollectSoul);
+ }
+ }
+ }
+ break;
default:
WindowCenter.Instance.Close<TreasureLevelUpWin>();
diff --git a/System/Treasure/TreasurePotentialBriefInfo.cs b/System/Treasure/TreasurePotentialBriefInfo.cs
index 427695b..57414d2 100644
--- a/System/Treasure/TreasurePotentialBriefInfo.cs
+++ b/System/Treasure/TreasurePotentialBriefInfo.cs
@@ -112,7 +112,7 @@
if (config.LearnSkillReq > 0 && config.LearnSkillLV > 0)
{
var preskillConfig = Config.Instance.Get<SkillConfig>(config.LearnSkillReq);
- requirement = Language.Get("Hallows_NeedSkillLVStart", preskillConfig.SkillName, config.LearnSkillLV);
+ requirement = Language.Get("Hallows_NeedSkillLVStart", preskillConfig.SkillName, config.LearnSkillLV, config.SkillName);
m_PotentialName.text = requirement;
m_PotentialName.color = UIHelper.GetUIColor(TextColType.Red);
}
diff --git a/System/Treasure/TreasurePotentialPanel.cs b/System/Treasure/TreasurePotentialPanel.cs
index 7d82eb1..19a4b8e 100644
--- a/System/Treasure/TreasurePotentialPanel.cs
+++ b/System/Treasure/TreasurePotentialPanel.cs
@@ -299,6 +299,7 @@
{
selectedPotential = m_Treasure.potentials[_index].id;
m_TreasureAnimation.DisplayPotentialLine(_index);
+ HandleAchievement();
}
private void OnPotentialLineAnimComplete(int _index)
@@ -321,6 +322,10 @@
m_TreasureAnimation.UnlockTreasurePotential(0);
model.SetPotentialUnlockShow(model.selectedTreasure);
}
+ else
+ {
+ HandleAchievement();
+ }
DisplayLines();
break;
case TreasureAnimation.TreasureShowStep.FirstPotential:
@@ -331,10 +336,45 @@
m_TreasureAnimation.UnlockTreasurePotential(0);
model.SetPotentialUnlockShow(model.selectedTreasure);
}
+ else
+ {
+ HandleAchievement();
+ }
break;
}
}
+ void HandleAchievement()
+ {
+ if (AchievementGoto.guideAchievementId != 0 && m_Treasure != null)
+ {
+ var config = Config.Instance.Get<SuccessConfig>(AchievementGoto.guideAchievementId);
+ if (config != null && config.Type == 91)
+ {
+ var index = PlayerDatas.Instance.baseData.Job - 1;
+ var skillId = index < config.Condition.Length ? config.Condition[index] : config.Condition[0];
+ var potential = m_Treasure.GetPotential(skillId);
+ if (potential != null)
+ {
+ if (model.IsPotentialUnlock(m_Treasure.id, potential.id))
+ {
+ selectedPotential = potential.id;
+ }
+ else
+ {
+ var skillConfig = Config.Instance.Get<SkillConfig>(potential.id);
+ if (skillConfig.LearnSkillReq > 0 && skillConfig.LearnSkillLV > 0)
+ {
+ var preskillConfig = Config.Instance.Get<SkillConfig>(skillConfig.LearnSkillReq);
+ SysNotifyMgr.Instance.ShowTip("TreasurePotentialSelectError", preskillConfig.SkillName, skillConfig.LearnSkillLV, skillConfig.SkillName);
+ }
+ }
+ }
+ AchievementGoto.guideAchievementId = 0;
+ }
+ }
+ }
+
void DisplayLines()
{
if (m_Treasure == null)
--
Gitblit v1.8.0