From 973cc1290e8121add5ccf9fc16e48e7dcb8e7488 Mon Sep 17 00:00:00 2001
From: client_linchunjie <461730578@qq.com>
Date: 星期二, 11 九月 2018 19:54:54 +0800
Subject: [PATCH] 3460【前端】【1.0.15】【主干】符印新增仙玉开启新符印孔位
---
System/Rune/RuneMosaicWin.cs | 86 +++++++++++++++++++++++++++++++++++++-----
1 files changed, 75 insertions(+), 11 deletions(-)
diff --git a/System/Rune/RuneMosaicWin.cs b/System/Rune/RuneMosaicWin.cs
index 668e9a6..66369ec 100644
--- a/System/Rune/RuneMosaicWin.cs
+++ b/System/Rune/RuneMosaicWin.cs
@@ -45,10 +45,17 @@
[SerializeField] RectTransform m_ContainerGetRune;
[SerializeField] Button m_GotoGetRuneBtn;
+ [SerializeField] RectTransform m_ContainerSpecial;
+ [SerializeField] Button m_UnlockSpecialHole;
+ [SerializeField] Text m_SpecialCostRemind;
+ [SerializeField] Text m_SpecialLevelRemind;
+
[SerializeField] Text m_RuneUnlockTip;
[SerializeField] UIEffect m_RuneLvUpEffect;
Color m_LevelUpCacheColor;
+
+ bool selectSpeicalHole = false;
RuneModel m_Model;
RuneModel model
@@ -72,6 +79,7 @@
m_RuneLevelUpBtn.onClick.AddListener(OnRuneUpBtn);
m_RunePreviewBtn.onClick.AddListener(OnRunePreviewBtn);
m_GotoGetRuneBtn.onClick.AddListener(OnGotoGetRune);
+ m_UnlockSpecialHole.onClick.AddListener(UnlockSpecialHole);
for (int i = 0; i < runeHoleBtns.Count; i++)
{
var _index = i;
@@ -86,10 +94,12 @@
{
model.OnRefreshRuneHole += OnRuneHoleRefresh;
model.OnRefreshRuneExp += OnUpdateRuneHoleInfo;
+ model.openNewHoleEvent += OpenNewHoleEvent;
m_RuneLevelUpBtn.gameObject.SetActive(false);
m_RuneReplaceBtn.gameObject.SetActive(false);
m_ContainerGetRune.gameObject.SetActive(false);
+ m_ContainerSpecial.gameObject.SetActive(false);
OpenOrCloseSelect(false);
model.sltRuneHole = -1;
foreach (var _hole in runeHoleDatas)
@@ -105,18 +115,33 @@
{
OnRuneHoleClick(CheckOpenSelect());
}
+ model.SetDayRemind();
}
protected override void OnPreClose()
{
model.OnRefreshRuneHole -= OnRuneHoleRefresh;
model.OnRefreshRuneExp -= OnUpdateRuneHoleInfo;
+ model.openNewHoleEvent -= OpenNewHoleEvent;
}
protected override void OnAfterClose()
{
}
#endregion
+
+ private void OpenNewHoleEvent(int hole)
+ {
+ if (model.IsSpeicalHole(hole))
+ {
+
+ }
+ }
+
+ private void UnlockSpecialHole()
+ {
+ model.UnlockSpecialHole(model.sltRuneHole);
+ }
private void OnGotoGetRune()
{
@@ -171,7 +196,17 @@
int CheckOpenSelect()
{
- for (int i = 0; i < 8; i++)
+ if (model.specialRuneRemindRedpoint.state == RedPointState.Simple && !NewBieCenter.Instance.inGuiding)
+ {
+ foreach (var hole in model.specialHoles.Keys)
+ {
+ if (!model.IsRuneHoleOpen(hole))
+ {
+ return hole;
+ }
+ }
+ }
+ for (int i = 0; i < RuneModel.RUNE_HOLE_COUNT; i++)
{
if (model.GetRedpoint(i).state == RedPointState.Simple)
{
@@ -181,15 +216,19 @@
return 0;
}
+ void DisSelectAll()
+ {
+ for (int i = 0; i < RuneModel.RUNE_HOLE_COUNT; i++)
+ {
+ runeHoleDatas[i].SetSelect(false);
+ runeHoleDatas[i].redpoint.gameObject.SetActive(true);
+ }
+ }
+
void OnRuneHoleClick(int _hole)
{
if (model.IsRuneHoleOpen(_hole))
{
- //if (model.sltRuneHole == _hole && model.GetHoleRune(_hole) == null)
- //{
- // WindowCenter.Instance.Open<RunePackWin>();
- // return;
- //}
for (int i = 0; i < runeHoleDatas.Count; i++)
{
if (i != _hole)
@@ -199,6 +238,8 @@
}
}
model.sltRuneHole = _hole;
+ m_RuneUnlockTip.gameObject.SetActive(true);
+ m_ContainerSpecial.gameObject.SetActive(false);
m_RuneLevelUpBtn.gameObject.SetActive(true);
m_RuneReplaceBtn.gameObject.SetActive(true);
OnUpdateRuneHoleInfo();
@@ -208,18 +249,41 @@
}
else
{
- int[] towerArray = model.runeUnlockArray;
- RuneTowerFloorConfig cfg = Config.Instance.Get<RuneTowerFloorConfig>(towerArray[_hole]);
- var tower = Config.Instance.Get<RuneTowerConfig>(cfg.TowerId);
- SysNotifyMgr.Instance.ShowTip("RuneUnlock", StringUtility.Contact(tower.TowerName, cfg.FloorName));
+ if (model.IsSpeicalHole(_hole))
+ {
+ DisplaySpecialHole(_hole);
+ }
+ else
+ {
+ int[] towerArray = model.runeUnlockArray;
+ RuneTowerFloorConfig cfg = Config.Instance.Get<RuneTowerFloorConfig>(towerArray[_hole]);
+ var tower = Config.Instance.Get<RuneTowerConfig>(cfg.TowerId);
+ SysNotifyMgr.Instance.ShowTip("RuneUnlock", StringUtility.Contact(tower.TowerName, cfg.FloorName));
+ }
}
+ }
+
+ private void DisplaySpecialHole(int _hole)
+ {
+ m_ContainerSpecial.gameObject.SetActive(true);
+ m_ContainerSelectRune.gameObject.SetActive(false);
+ m_ContainerGetRune.gameObject.SetActive(false);
+ m_RuneLevelUpBtn.gameObject.SetActive(false);
+ m_RuneReplaceBtn.gameObject.SetActive(false);
+ m_RuneUnlockTip.gameObject.SetActive(false);
+ DisSelectAll();
+ model.sltRuneHole = _hole;
+ runeHoleDatas[_hole].SetSelect(true);
+ var speical = model.specialHoles[_hole];
+ m_SpecialCostRemind.text = Language.Get("RuneSpecialHoleCost", speical.cost);
+ m_SpecialLevelRemind.text = Language.Get("RuneSpecialHoleLevel", speical.level);
}
private void OnUpdateRuneHoleInfo()
{
model.runeLevelUpRedpoint.state = RedPointState.None;
model.runeReplaceRedpoint.state = RedPointState.None;
- if (model.sltRuneHole == -1)
+ if (model.sltRuneHole == -1 || !model.IsRuneHoleOpen(model.sltRuneHole))
{
return;
}
--
Gitblit v1.8.0