From 9d14caecad66a91d53049bdba76f12e35d3ff7c8 Mon Sep 17 00:00:00 2001
From: hch <305670599@qq.com>
Date: 星期一, 21 九月 2020 22:42:15 +0800
Subject: [PATCH] 0312 个人boss 世界boss 封魔坛 剩余次数显示统一

---
 System/FindPrecious/WorldBossWin.cs      |    1 
 System/FindPrecious/DemonJarWin.cs       |    7 ++-
 System/FindPrecious/PersonalBossModel.cs |    3 +
 System/FindPrecious/PersonalBossWin.cs   |   58 +++++++++++++++++++++++++++--
 4 files changed, 62 insertions(+), 7 deletions(-)

diff --git a/System/FindPrecious/DemonJarWin.cs b/System/FindPrecious/DemonJarWin.cs
index 2b42eab..88e5d99 100644
--- a/System/FindPrecious/DemonJarWin.cs
+++ b/System/FindPrecious/DemonJarWin.cs
@@ -59,7 +59,7 @@
             totalTimes = dungeonModel.GetTotalTimes(DemonJarModel.DATA_MAPID);
             enterTimes = dungeonModel.GetEnterTimes(DemonJarModel.DATA_MAPID);
             m_Times.text = StringUtility.Contact(totalTimes - enterTimes, "/", DemonJarModel.TOTALTIME_LIMIT);
-
+            m_Times.color = totalTimes - enterTimes == 0 ? UIHelper.GetUIColor(TextColType.Red) : UIHelper.GetUIColor(TextColType.DarkGreen);
             OnRemaintimeUpdate(DemonJarModel.DATA_MAPID);
             //mapModel.RequestQueryMapLineState(DemonJarModel.DATA_MAPID);
         }
@@ -261,7 +261,7 @@
             enterTimes = dungeonModel.GetEnterTimes(DemonJarModel.DATA_MAPID);
 
             m_Times.text = StringUtility.Contact(totalTimes - enterTimes, "/", DemonJarModel.TOTALTIME_LIMIT);
-
+            m_Times.color = totalTimes - enterTimes == 0 ? UIHelper.GetUIColor(TextColType.Red) : UIHelper.GetUIColor(TextColType.DarkGreen);
             if ((totalTimes - enterTimes) < DemonJarModel.TOTALTIME_LIMIT)
             {
                 DateTime endTime;
@@ -280,7 +280,7 @@
             {
                 m_CountRemainTime.gameObject.SetActive(false);
             }
-            m_CountOver.gameObject.SetActive(dungeonModel.GetCoverCount(DemonJarModel.DATA_MAPID) == 0);
+            m_CountOver.gameObject.SetActive(false);//(dungeonModel.GetCoverCount(DemonJarModel.DATA_MAPID) == 0);
 
         }
 
@@ -290,6 +290,7 @@
             enterTimes = dungeonModel.GetEnterTimes(DemonJarModel.DATA_MAPID);
 
             m_Times.text = StringUtility.Contact(totalTimes - enterTimes, "/", DemonJarModel.TOTALTIME_LIMIT);
+            m_Times.color = totalTimes - enterTimes == 0 ? UIHelper.GetUIColor(TextColType.Red) : UIHelper.GetUIColor(TextColType.DarkGreen);
             if (totalTimes - enterTimes >= DemonJarModel.TOTALTIME_LIMIT)
             {
                 m_CountRemainTime.gameObject.SetActive(false);
diff --git a/System/FindPrecious/PersonalBossModel.cs b/System/FindPrecious/PersonalBossModel.cs
index aa1cd43..d1b1cc1 100644
--- a/System/FindPrecious/PersonalBossModel.cs
+++ b/System/FindPrecious/PersonalBossModel.cs
@@ -42,6 +42,7 @@
         PackModel playerPack { get { return ModelCenter.Instance.GetModel<PackModel>(); } }
         DungeonModel dungeonModel { get { return ModelCenter.Instance.GetModel<DungeonModel>(); } }
 
+        public int maxBossTimes = 0;
         public override void Init()
         {
             ParseConfig();
@@ -242,6 +243,8 @@
             //    var dungeonConfig = DungeonConfig.Get(dungeonId);
             //    dungeonTicket = dungeonConfig == null ? 0 : dungeonConfig.TicketID;
             //}
+
+            maxBossTimes = DungeonOpenTimeConfig.Get(PERSONALBOSS_MAPID).DayTimes;
         }
 
         public void RequestGotoDungeon(int _bossId)
diff --git a/System/FindPrecious/PersonalBossWin.cs b/System/FindPrecious/PersonalBossWin.cs
index 214b62c..8f6e21b 100644
--- a/System/FindPrecious/PersonalBossWin.cs
+++ b/System/FindPrecious/PersonalBossWin.cs
@@ -18,6 +18,8 @@
         [SerializeField] Text m_Times;
         [SerializeField] Button m_Goto;
         [SerializeField] RectTransform m_NoDamageTip;
+        [SerializeField] Text m_ButtonName;
+        [SerializeField] Button m_BuyTimes;
 
         PersonalBossModel model { get { return ModelCenter.Instance.GetModel<PersonalBossModel>(); } }
         FindPreciousModel findPreciousModel { get { return ModelCenter.Instance.GetModel<FindPreciousModel>(); } }
@@ -33,11 +35,25 @@
         protected override void AddListeners()
         {
             m_Goto.AddListener(GotoKillBoss);
+            m_BuyTimes.AddListener(BuyTimes);
         }
+        private void BuyTimes()
+        {
+            if ((totalTimes - enterTimes) >= model.maxBossTimes)
+            {
+                ServerTipDetails.DisplayNormalTip(Language.Get("DemonJar18"));
+            }
+            else
+            {
+                dungeonModel.currentDungeon = new Dungeon(PersonalBossModel.PERSONALBOSS_MAPID, 0);
+                WindowCenter.Instance.Open<DungeonBuyTimesWin>();
+            }
 
+        }
         protected override void OnPreOpen()
         {
             dungeonModel.updateDungeonBuyCnt += OnTimesOk;
+            DTC0320_tagFBEnd.UpdateFBEndEvent += UpdateFBEnd;
 
             OnTimesOk();
         }
@@ -46,20 +62,29 @@
         {
             totalTimes = dungeonModel.GetTotalTimes(PersonalBossModel.PERSONALBOSS_MAPID);
             enterTimes = dungeonModel.GetEnterTimes(PersonalBossModel.PERSONALBOSS_MAPID);
-            m_Times.text = Language.Get("WorldBoss_Endurance0", totalTimes - enterTimes);
-            m_Times.color = UIHelper.GetUIColor((totalTimes - enterTimes) > 0 ? TextColType.Green : TextColType.Red, true);
-
+            m_Times.text = StringUtility.Contact(totalTimes - enterTimes, "/", model.maxBossTimes);
+            m_Times.color = totalTimes - enterTimes <= 0 ? UIHelper.GetUIColor(TextColType.Red) : UIHelper.GetUIColor(TextColType.DarkGreen);
         }
 
         protected override void OnAfterOpen()
         {
             model.bossSelectedEvent += OnBossSelected;
+            if (model.CanFBWipeOut(model.selectedBoss))
+            {
+                m_ButtonName.text = Language.Get("RuneTower22");
+            }
+            else
+            {
+                m_ButtonName.text = Language.Get("RealmPractice108");
+            }
+            
         }
 
         protected override void OnPreClose()
         {
             model.bossSelectedEvent -= OnBossSelected;
             dungeonModel.updateDungeonBuyCnt -= OnTimesOk;
+            DTC0320_tagFBEnd.UpdateFBEndEvent -= UpdateFBEnd;
         }
 
         protected override void OnAfterClose()
@@ -72,6 +97,12 @@
             ShowBosses();
         }
         #endregion
+
+        private void UpdateFBEnd()
+        {
+            OnTimesOk();
+            model.UpdateRedpoint();
+        }
 
         private void ShowBosses()
         {
@@ -93,7 +124,15 @@
             var error = 0;
             if (TestEnterDungeon(out error))
             {
-                model.RequestGotoDungeon(model.selectedBoss);
+                if (model.CanFBWipeOut(model.selectedBoss))
+                {
+                    var config = PersonalBossConfig.Get(model.selectedBoss);
+                    dungeonModel.RequestSweep(new Dungeon(PersonalBossModel.PERSONALBOSS_MAPID, config.lineId));
+                }
+                else
+                {
+                    model.RequestGotoDungeon(model.selectedBoss);
+                }
             }
             else
             {
@@ -169,6 +208,17 @@
             m_BossIntroduce.Display(bossId, false);
             DisplayGotoKillButton(model.selectedBoss);
             DisplayTip(bossId);
+            
+            if (model.CanFBWipeOut(model.selectedBoss))
+            {
+                m_ButtonName.text = Language.Get("RuneTower22");
+            }
+            else
+            {
+                m_ButtonName.text = Language.Get("RealmPractice108");
+            }
+            model.UpdateRedpoint();
+
         }
 
         private void DisplayTip(int bossId)
diff --git a/System/FindPrecious/WorldBossWin.cs b/System/FindPrecious/WorldBossWin.cs
index b7330bb..1e295e0 100644
--- a/System/FindPrecious/WorldBossWin.cs
+++ b/System/FindPrecious/WorldBossWin.cs
@@ -178,6 +178,7 @@
             var remainCount = model.GetWorldBossRemainCount();
             var countInfo = string.Format("{0}/{1}", remainCount, GeneralDefine.bossWearyValues[0]);
             m_WearyValue.text = countInfo;
+            m_WearyValue.color = remainCount == 0 ? UIHelper.GetUIColor(TextColType.Red) : UIHelper.GetUIColor(TextColType.DarkGreen);
             //m_WearyValue.text = StringUtility.Contact(model.wearyValue, "/", GeneralDefine.bossWearyValues[0] + model.extraBossWearyValue);
         }
 

--
Gitblit v1.8.0