From d8d333db7753a02dbbbdbf5d070bff129725d9cc Mon Sep 17 00:00:00 2001
From: client_Wu Xijin <364452445@qq.com>
Date: 星期四, 23 八月 2018 19:49:01 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.0.87:10010/r/snxxz_scripts
---
System/Skill/SkillPassWin.cs | 94 +++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 94 insertions(+), 0 deletions(-)
diff --git a/System/Skill/SkillPassWin.cs b/System/Skill/SkillPassWin.cs
index c112378..cdcf016 100644
--- a/System/Skill/SkillPassWin.cs
+++ b/System/Skill/SkillPassWin.cs
@@ -25,6 +25,7 @@
[SerializeField] Button m_LeftBtn;
[SerializeField] Button m_RightBtn;
[SerializeField] List<SkillCell> equipPassSkills = new List<SkillCell>();
+ [SerializeField] List<UIEffect> equipPassEffects = new List<UIEffect>();
[SerializeField] Image m_DragImg;
[SerializeField] Image m_DragSkillImg;
[SerializeField] List<Button> m_PageBtns = new List<Button>();
@@ -36,6 +37,7 @@
[SerializeField] ClickScreenOtherSpace clickOtherSpace;
private List<SkillConfig> skillListPass = new List<SkillConfig>();
private int presentSltEquipIndex = -1;
+ Coroutine cacheCoroutine = null;
SkillModel m_Model;
SkillModel model
{
@@ -44,6 +46,8 @@
return m_Model ?? (m_Model = ModelCenter.Instance.GetModel<SkillModel>());
}
}
+
+ PlayerTaskDatas task { get { return ModelCenter.Instance.GetModel<PlayerTaskDatas>(); } }
RolePromoteModel m_PromoteModel;
RolePromoteModel promoteModel
@@ -119,6 +123,13 @@
UpdateEquipPassSkill();
SetEquipHoleSelect(GetEquipHoleIndex(model.presentSltSkillID));
DayRemind.Instance.SetDayRemind(DayRemind.PASS_SKILL_REDPOINT, true);
+ model.taskUnlockUpdate += TaskUnlockUpdate;
+
+ if (cacheCoroutine != null)
+ {
+ StopCoroutine(cacheCoroutine);
+ cacheCoroutine = null;
+ }
}
protected override void OnActived()
@@ -129,6 +140,7 @@
protected override void OnAfterOpen()
{
+ DisplayEffect();
}
protected override void OnPreClose()
@@ -138,12 +150,52 @@
model.OnRefreshSltSkill -= OnRefreshSltSkill;
model.UpdatePassEquipSkillEvent -= UpdatePassEquipSkillEvent;
PlayerDatas.Instance.PlayerDataRefreshInfoEvent -= OnRefreshPlayerInfo;
+ model.taskUnlockUpdate -= TaskUnlockUpdate;
model.SetDayRemind();
+ model.UnlockPassHole = 0;
}
protected override void OnAfterClose()
{
model.SendEquipPage();
+ }
+
+ private void TaskUnlockUpdate()
+ {
+ DisplayEffect();
+ }
+
+ void DisplayEffect()
+ {
+ if (model.UnlockPassHole != 0)
+ {
+ var index = 0;
+ for (int i = 0; i < equipPassSkills.Count; i++)
+ {
+ PassSkillLimit limit;
+ if (model.TryGetPassSkillLimit(i, out limit))
+ {
+ if (limit.OpenSkillSlots != 0 && limit.OpenSkillSlots == model.UnlockPassHole)
+ {
+ index = i;
+ break;
+ }
+ }
+ }
+ model.UnlockPassHole = 0;
+ if (index >= 0 && index < equipPassEffects.Count)
+ {
+ equipPassEffects[index].Play();
+ cacheCoroutine = StartCoroutine(Co_UnlockEffectComplete());
+ }
+ }
+ }
+
+ IEnumerator Co_UnlockEffectComplete()
+ {
+ yield return WaitingForSecondConst.WaitMS800;
+ SysNotifyMgr.Instance.ShowTip("PassNewHole");
+ UpdateEquipPassSkill();
}
protected override void LateUpdate()
@@ -203,6 +255,10 @@
else if (_limit.MountLv > 0 && promoteModel.GetMountTotallv() < _limit.MountLv)
{
return true;
+ }
+ else if (_limit.OpenSkillSlots > 0 && !model.IsTaskHoleUnlock(_limit.OpenSkillSlots))
+ {
+ return false;
}
}
return false;
@@ -347,6 +403,26 @@
continue;
}
}
+ else if (limit.OpenSkillSlots > 0)
+ {
+ if (!model.IsTaskHoleUnlock(limit.OpenSkillSlots) || model.UnlockPassHole == limit.OpenSkillSlots)
+ {
+ SetEquipSkillDeActive(i);
+ equipPassSkills[i].skillData.m_SkillNameTxt.color = equipHoleLimitColor;
+ var taskName = string.Empty;
+ if (model.taskHoleDict.ContainsKey(limit.OpenSkillSlots))
+ {
+ var taskConfig = Config.Instance.Get<PyTaskConfig>(model.taskHoleDict[limit.OpenSkillSlots]);
+ if (taskConfig != null)
+ {
+ var taskInfoConfig = Config.Instance.Get<TASKINFOConfig>(taskConfig.name);
+ taskName = taskInfoConfig == null ? string.Empty : taskInfoConfig.show_writing;
+ }
+ }
+ equipPassSkills[i].skillData.m_SkillNameTxt.text = Language.Get("PassSkillHoleLimitTask", taskName);
+ continue;
+ }
+ }
}
int _skillId = 0;
equipPassSkills[i].skillData.m_SkillNameTxt.text = string.Empty;
@@ -441,6 +517,24 @@
m_GetWayBtn.gameObject.SetActive(true);
}
}
+ else if (limit.OpenSkillSlots > 0)
+ {
+ if (!model.IsTaskHoleUnlock(limit.OpenSkillSlots))
+ {
+ var taskName = string.Empty;
+ if (model.taskHoleDict.ContainsKey(limit.OpenSkillSlots))
+ {
+ var taskConfig = Config.Instance.Get<PyTaskConfig>(model.taskHoleDict[limit.OpenSkillSlots]);
+ if (taskConfig != null)
+ {
+ var taskInfoConfig = Config.Instance.Get<TASKINFOConfig>(taskConfig.name);
+ taskName = taskInfoConfig == null ? string.Empty : taskInfoConfig.show_writing;
+ }
+ }
+ SysNotifyMgr.Instance.ShowTip("PassEquipLimitTask", taskName);
+ m_GetWayBtn.gameObject.SetActive(false);
+ }
+ }
}
}
--
Gitblit v1.8.0