From a0ede150686a218c92b901b1f20aef12a9913890 Mon Sep 17 00:00:00 2001
From: client_linchunjie <461730578@qq.com>
Date: 星期五, 14 九月 2018 09:36:59 +0800
Subject: [PATCH] 1930【1.0.15】【主干】功能预告跳转八卦炉激活,功能预告界面未关闭
---
System/Skill/SkillPassWin.cs | 147 ++++++++++++++++++++++++++++++++++++++++--------
1 files changed, 122 insertions(+), 25 deletions(-)
diff --git a/System/Skill/SkillPassWin.cs b/System/Skill/SkillPassWin.cs
index b107f90..f41ac36 100644
--- a/System/Skill/SkillPassWin.cs
+++ b/System/Skill/SkillPassWin.cs
@@ -32,6 +32,7 @@
[Header("GetWay")]
[SerializeField]
Button m_GetWayBtn;
+ [SerializeField] Button m_ImmediatelyUnlock;
[SerializeField] ScrollerController scrollerController;
[SerializeField] RectTransform m_ContainerGetWay;
[SerializeField] ClickScreenOtherSpace clickOtherSpace;
@@ -68,6 +69,9 @@
}
}
+ PlayerMainDate taskMain { get { return ModelCenter.Instance.GetModel<PlayerMainDate>(); } }
+ PlayerPackModel pack { get { return ModelCenter.Instance.GetModel<PlayerPackModel>(); } }
+
static readonly Color equipHoleLimitColor = new Color32(250, 3, 3, 255);
static readonly Color equipHoleUnLimitColor = new Color32(51, 8, 0, 255);
#region Built-in
@@ -100,6 +104,7 @@
}
scrollerController.OnRefreshCell += OnRefreshCell;
m_GetWayBtn.onClick.AddListener(OnGetWayBtn);
+ m_ImmediatelyUnlock.onClick.AddListener(ImmediatelyUnlock);
clickOtherSpace.AddListener(() =>
{
m_ContainerGetWay.gameObject.SetActive(false);
@@ -111,6 +116,7 @@
m_DragImg.gameObject.SetActive(false);
m_ContainerGetWay.gameObject.SetActive(false);
m_GetWayBtn.gameObject.SetActive(false);
+ m_ImmediatelyUnlock.gameObject.SetActive(false);
flipScroll.locked = false;
PlayerSkillDatas.OnRefreshSkill += OnRefreshSkill;
model.OnRefreshSltSkill += OnRefreshSltSkill;
@@ -136,6 +142,24 @@
{
base.OnActived();
UpdatePageBtn();
+
+ if (model.taskHoleRedpoint.state == RedPointState.Simple)
+ {
+ model.SetTaskHoleRemind();
+ for (int i = 0; i < equipPassSkills.Count; i++)
+ {
+ PassSkillLimit limit;
+ if (model.TryGetPassSkillLimit(i, out limit))
+ {
+ if (limit.OpenSkillSlots > 0
+ && model.taskHoleDict[limit.OpenSkillSlots] == model.immediatelyUnlockTask)
+ {
+ OnClickEquipHole(i, false);
+ return;
+ }
+ }
+ }
+ }
}
protected override void OnAfterOpen()
@@ -237,33 +261,44 @@
flipScroll.RefreshActive();
var _equipIndex = GetEquipHoleIndex(model.presentSltSkillID);
SetEquipHoleSelect(_equipIndex);
- m_GetWayBtn.gameObject.SetActive(CheckOpenGetWays(_equipIndex));
+ m_GetWayBtn.gameObject.SetActive(CheckOpenGetWays(_equipIndex) == 1);
+ m_ImmediatelyUnlock.gameObject.SetActive(CheckOpenGetWays(_equipIndex) == 2);
OnUpdateSltSkillInfo();
}
- private bool CheckOpenGetWays(int _index)
+ private int CheckOpenGetWays(int _index)
{
PassSkillLimit _limit;
if (model.TryGetPassSkillLimit(_index, out _limit))
{
if (_limit.level > 0 && PlayerDatas.Instance.baseData.LV < _limit.level)
{
- return true;
+ return 1;
}
else if (_limit.vipLv > 0 && PlayerDatas.Instance.baseData.VIPLv < _limit.vipLv)
{
- return true;
+ return 1;
}
else if (_limit.MountLv > 0 && promoteModel.GetMountTotallv() < _limit.MountLv)
{
- return true;
+ return 1;
}
else if (_limit.OpenSkillSlots > 0 && !model.IsTaskHoleUnlock(_limit.OpenSkillSlots))
{
- return false;
+ if (model.taskHoleDict.ContainsKey(_limit.OpenSkillSlots))
+ {
+ var taskId = model.taskHoleDict[_limit.OpenSkillSlots];
+ var config = Config.Instance.Get<PyTaskConfig>(taskId);
+ if (PlayerDatas.Instance.baseData.LV >= config.lv
+ && taskId == model.immediatelyUnlockTask)
+ {
+ return 2;
+ }
+ }
+ return 3;
}
}
- return false;
+ return 0;
}
private void OnRefreshPlayerInfo(PlayerDataRefresh type)
@@ -411,18 +446,29 @@
{
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 taskId = model.taskHoleDict[limit.OpenSkillSlots];
+ var config = Config.Instance.Get<PyTaskConfig>(taskId);
+ if (PlayerDatas.Instance.baseData.LV < config.lv)
{
- var taskInfoConfig = Config.Instance.Get<TASKINFOConfig>(taskConfig.name);
- taskName = taskInfoConfig == null ? string.Empty : taskInfoConfig.show_writing;
+ equipPassSkills[i].skillData.m_SkillNameTxt.text =
+ UIHelper.ReplaceNewLine(Language.Get("PassSkillHoleLimitTask_6", config.lv));
+ continue;
}
}
- equipPassSkills[i].skillData.m_SkillNameTxt.text = Language.Get("PassSkillHoleLimitTask", taskName);
+ equipPassSkills[i].skillData.m_SkillNameTxt.text =
+ UIHelper.ReplaceNewLine(Language.Get(StringUtility.Contact("PassSkillHoleLimitTask_", limit.OpenSkillSlots)));
continue;
+ }
+ else if (model.taskHoleDict[limit.OpenSkillSlots] == model.immediatelyUnlockTask
+ && model.IsTaskHoleUnlock(limit.OpenSkillSlots))
+ {
+ if (m_ImmediatelyUnlock.gameObject.activeSelf)
+ {
+ m_ImmediatelyUnlock.gameObject.SetActive(false);
+ }
}
}
}
@@ -444,7 +490,7 @@
var dis = Vector3.Distance(des.center, src.center);
if (dis < rect.rect.width / 2)
{
- if (CheckOpenGetWays(i))
+ if (CheckOpenGetWays(i) != 0)
{
//SoundPlayer.Instance.PlayUIAudio(2);
return;
@@ -476,7 +522,8 @@
UpdatePassEquipPageBtn();
var _equipIndex = GetEquipHoleIndex(model.presentSltSkillID);
SetEquipHoleSelect(_equipIndex);
- m_GetWayBtn.gameObject.SetActive(CheckOpenGetWays(_equipIndex));
+ m_GetWayBtn.gameObject.SetActive(CheckOpenGetWays(_equipIndex) == 1);
+ m_ImmediatelyUnlock.gameObject.SetActive(CheckOpenGetWays(_equipIndex) == 2);
}
private void UpdatePassEquipPageBtn()
@@ -487,10 +534,11 @@
}
}
- private void OnClickEquipHole(int index)
+ private void OnClickEquipHole(int index, bool requireRemind = true)
{
PassSkillLimit limit;
m_GetWayBtn.gameObject.SetActive(false);
+ m_ImmediatelyUnlock.gameObject.SetActive(false);
SetEquipHoleSelect(index);
if (model.TryGetPassSkillLimit(index, out limit))
{
@@ -498,7 +546,10 @@
{
if (PlayerDatas.Instance.baseData.LV < limit.level)
{
- SysNotifyMgr.Instance.ShowTip("PassEquipLimitLevel", limit.level);
+ if (requireRemind)
+ {
+ SysNotifyMgr.Instance.ShowTip("PassEquipLimitLevel", limit.level);
+ }
m_GetWayBtn.gameObject.SetActive(true);
}
}
@@ -506,7 +557,10 @@
{
if (PlayerDatas.Instance.baseData.VIPLv < limit.vipLv)
{
- SysNotifyMgr.Instance.ShowTip("PassEquipLimitVip", limit.vipLv);
+ if (requireRemind)
+ {
+ SysNotifyMgr.Instance.ShowTip("PassEquipLimitVip", limit.vipLv);
+ }
m_GetWayBtn.gameObject.SetActive(true);
return;
}
@@ -515,7 +569,10 @@
{
if (promoteModel.GetMountTotallv() < limit.MountLv)
{
- SysNotifyMgr.Instance.ShowTip("PassEquipLimitMountLevel", limit.MountLv);
+ if (requireRemind)
+ {
+ SysNotifyMgr.Instance.ShowTip("PassEquipLimitMountLevel", limit.MountLv);
+ }
m_GetWayBtn.gameObject.SetActive(true);
}
}
@@ -523,17 +580,24 @@
{
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 taskId = model.taskHoleDict[limit.OpenSkillSlots];
+ var config = Config.Instance.Get<PyTaskConfig>(taskId);
+ if (PlayerDatas.Instance.baseData.LV < config.lv)
{
- var taskInfoConfig = Config.Instance.Get<TASKINFOConfig>(taskConfig.name);
- taskName = taskInfoConfig == null ? string.Empty : taskInfoConfig.show_writing;
+ m_GetWayBtn.gameObject.SetActive(false);
+ return;
+ }
+ if (taskId == model.immediatelyUnlockTask)
+ {
+ m_ImmediatelyUnlock.gameObject.SetActive(true);
}
}
- SysNotifyMgr.Instance.ShowTip("PassEquipLimitTask", taskName);
+ if (requireRemind)
+ {
+ SysNotifyMgr.Instance.ShowTip(StringUtility.Contact("PassSkillHoleLimitTask_", limit.OpenSkillSlots));
+ }
m_GetWayBtn.gameObject.SetActive(false);
}
}
@@ -561,6 +625,39 @@
m_ContainerGetWay.gameObject.SetActive(true);
}
+ void ImmediatelyUnlock()
+ {
+ var count = pack.GetItemCountByID(PackType.rptItem, taskMain.ItemID);
+ if (count >= taskMain.ItemNumber)
+ {
+ task.CompletionOfTask(model.immediatelyUnlockTask);
+ }
+ else
+ {
+ var requireJade = (ulong)((taskMain.ItemNumber - count) * taskMain.UnitPrice);
+ ConfirmCancel.ShowPopConfirm(Language.Get("Mail101"), Language.Get("PassiveSkillTask3", requireJade),
+ (bool isOk) =>
+ {
+ if (isOk)
+ {
+ if (UIHelper.GetMoneyCnt(1) >= requireJade)
+ {
+ task.CompletionOfTask(model.immediatelyUnlockTask);
+ }
+ else
+ {
+ if (VersionConfig.Get().isBanShu)
+ {
+ SysNotifyMgr.Instance.ShowTip("GoldErr");
+ return;
+ }
+ WindowCenter.Instance.Open<RechargeTipWin>();
+ }
+ }
+ });
+ }
+ }
+
private void OnClickFunc(CellView cell)
{
WindowJumpMgr.Instance.WindowJumpTo((JumpUIType)cell.index);
--
Gitblit v1.8.0