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