From c57b90919684b4ef08dba008139698a377813ec0 Mon Sep 17 00:00:00 2001
From: client_linchunjie <461730578@qq.com>
Date: 星期六, 01 九月 2018 10:39:38 +0800
Subject: [PATCH] 3067 【前端】仙盟Boss次数更改为根据仙盟等级

---
 Core/GameEngine/Model/Config/FamilyConfig.cs.meta |    4 +-
 System/FairyAu/FairyBossModel.cs                  |   42 ++++++++++++++++++---
 Core/GameEngine/Model/Config/FamilyConfig.cs      |   39 ++++++++++---------
 System/FairyAu/FairyBoss.cs                       |   19 ++++++++-
 4 files changed, 76 insertions(+), 28 deletions(-)

diff --git a/Core/GameEngine/Model/Config/FamilyConfig.cs b/Core/GameEngine/Model/Config/FamilyConfig.cs
index 07dc5a7..4e5ee5e 100644
--- a/Core/GameEngine/Model/Config/FamilyConfig.cs
+++ b/Core/GameEngine/Model/Config/FamilyConfig.cs
@@ -1,6 +1,6 @@
 锘�//--------------------------------------------------------
 //    [Author]:			绗簩涓栫晫
-//    [  Date ]:		   Saturday, March 31, 2018
+//    [  Date ]:		   Saturday, September 01, 2018
 //--------------------------------------------------------
 
 using UnityEngine;
@@ -11,12 +11,13 @@
     
 	public partial class FamilyConfig : ConfigBase {
 
-		public int familyLV { get ; private set ; }
-		public int memberCnt { get ; private set ; }
-		public int deputyLeaderCnt { get ; private set ; }
-		public int eliteCnt { get ; private set ; }
-		public int needMoney { get ; private set ; }
-		public int weekMissionMoneyMax { get ; private set ; }
+		public int familyLV { get ; private set ; }
+		public int memberCnt { get ; private set ; }
+		public int deputyLeaderCnt { get ; private set ; }
+		public int eliteCnt { get ; private set ; }
+		public int needMoney { get ; private set ; }
+		public int weekMissionMoneyMax { get ; private set ; }
+		public int bossFBCnt { get ; private set ; }
 
 		public override string getKey()
         {
@@ -26,17 +27,19 @@
 		public override void Parse() {
 			try
             {
-                familyLV=IsNumeric(rawContents[0]) ? int.Parse(rawContents[0]):0; 
-			
-				memberCnt=IsNumeric(rawContents[1]) ? int.Parse(rawContents[1]):0; 
-			
-				deputyLeaderCnt=IsNumeric(rawContents[2]) ? int.Parse(rawContents[2]):0; 
-			
-				eliteCnt=IsNumeric(rawContents[3]) ? int.Parse(rawContents[3]):0; 
-			
-				needMoney=IsNumeric(rawContents[4]) ? int.Parse(rawContents[4]):0; 
-			
-				weekMissionMoneyMax=IsNumeric(rawContents[5]) ? int.Parse(rawContents[5]):0; 
+                familyLV=IsNumeric(rawContents[0]) ? int.Parse(rawContents[0]):0; 
+			
+				memberCnt=IsNumeric(rawContents[1]) ? int.Parse(rawContents[1]):0; 
+			
+				deputyLeaderCnt=IsNumeric(rawContents[2]) ? int.Parse(rawContents[2]):0; 
+			
+				eliteCnt=IsNumeric(rawContents[3]) ? int.Parse(rawContents[3]):0; 
+			
+				needMoney=IsNumeric(rawContents[4]) ? int.Parse(rawContents[4]):0; 
+			
+				weekMissionMoneyMax=IsNumeric(rawContents[5]) ? int.Parse(rawContents[5]):0; 
+			
+				bossFBCnt=IsNumeric(rawContents[6]) ? int.Parse(rawContents[6]):0; 
             }
             catch (Exception ex)
             {
diff --git a/Core/GameEngine/Model/Config/FamilyConfig.cs.meta b/Core/GameEngine/Model/Config/FamilyConfig.cs.meta
index b53c0ea..87cebae 100644
--- a/Core/GameEngine/Model/Config/FamilyConfig.cs.meta
+++ b/Core/GameEngine/Model/Config/FamilyConfig.cs.meta
@@ -1,7 +1,7 @@
 fileFormatVersion: 2
 guid: 66683d722517b624eb6268d2f4aa0a44
-timeCreated: 1522467725
-licenseType: Free
+timeCreated: 1535767421
+licenseType: Pro
 MonoImporter:
   serializedVersion: 2
   defaultReferences: []
diff --git a/System/FairyAu/FairyBoss.cs b/System/FairyAu/FairyBoss.cs
index 86445be..8405ac1 100644
--- a/System/FairyAu/FairyBoss.cs
+++ b/System/FairyAu/FairyBoss.cs
@@ -66,6 +66,11 @@
                     MessageWin.Inst.ShowFixedTip(Language.Get("L1020"));
                     return;
                 }
+                if (PlayerDatas.Instance.fairyData.weekBossOpenCnt >= fairyBossModel.GetFairyBossWeekCount())
+                {
+                    SysNotifyMgr.Instance.ShowTip("FairyBossOpenCntError");
+                    return;
+                }
                 if (PlayerDatas.Instance.fairyData.fairy.FamilyHornor < fairyBossModel.OpenFairyBossNeed)
                 {
                     MessageWin.Inst.ShowFixedTip(Language.Get("L1124"));
@@ -103,6 +108,14 @@
             UpdateCoolDown();
         }
 
+        private void OnRefreshFairyMine()
+        {
+            if (!PlayerDatas.Instance.fairyData.HasFairy)
+            {
+                CloseImmediately();
+            }
+        }
+
         private void UpdateInfo()
         {
             beginBtn.interactable = true;
@@ -125,7 +138,7 @@
                 }
             }
             textFairyFoodNum.text = UIHelper.ReplaceLargeNum(PlayerDatas.Instance.fairyData.fairy.FamilyHornor);
-            textAtkCnt.text = string.Format("{0}/{1}", Mathf.Max(0, fairyBossModel.FairyBossWeekCnt - PlayerDatas.Instance.fairyData.weekBossOpenCnt), fairyBossModel.FairyBossWeekCnt);
+            textAtkCnt.text = string.Format("{0}/{1}", Mathf.Max(0, fairyBossModel.GetFairyBossWeekCount() - PlayerDatas.Instance.fairyData.weekBossOpenCnt), fairyBossModel.GetFairyBossWeekCount());
         }
 
         void InitData()
@@ -205,7 +218,7 @@
             {
                 return;
             }
-            if (PlayerDatas.Instance.fairyData.weekBossOpenCnt >= fairyBossModel.FairyBossWeekCnt
+            if (PlayerDatas.Instance.fairyData.weekBossOpenCnt >= fairyBossModel.GetFairyBossWeekCount()
                 && _fairyData.IsBossOpen == 0)
             {
                 return;
@@ -278,6 +291,7 @@
         {
             PlayerDatas.Instance.fairyData.OnRefreshFairyBoss += OnRefreshFairyBoss;
             PlayerDatas.Instance.fairyData.OnRefreshFairyInfo += OnRefreshFairyBoss;
+            PlayerDatas.Instance.fairyData.OnRefreshFairyMine += OnRefreshFairyMine;
             TimeMgr.Instance.OnHourEvent += OnRefreshFairyBoss;
             packModel.RefreshItemCountAct += RefreshItemCountAct;
             InitData();
@@ -305,6 +319,7 @@
             PlayerDatas.Instance.fairyData.OnRefreshFairyBoss -= OnRefreshFairyBoss;
             TimeMgr.Instance.OnHourEvent -= OnRefreshFairyBoss;
             packModel.RefreshItemCountAct -= RefreshItemCountAct;
+            PlayerDatas.Instance.fairyData.OnRefreshFairyMine -= OnRefreshFairyMine;
         }
 
         float m_Time = 0;
diff --git a/System/FairyAu/FairyBossModel.cs b/System/FairyAu/FairyBossModel.cs
index 80daa2b..902443e 100644
--- a/System/FairyAu/FairyBossModel.cs
+++ b/System/FairyAu/FairyBossModel.cs
@@ -12,12 +12,16 @@
             ParseConfig();
             TimeMgr.Instance.OnHourEvent += UpdateRedPoint;
             StageManager.Instance.onStageLoadFinish+= OnStageLoadFinish;
-        }
-
+            PlayerDatas.Instance.fairyData.OnRefreshFairyInfo += OnRefreshFairyInfo;
+            PlayerDatas.Instance.fairyData.OnRefreshFairyMine += OnRefreshFairyInfo;
+        }
+
         public override void UnInit()
         {
             TimeMgr.Instance.OnHourEvent -= UpdateRedPoint;
-            StageManager.Instance.onStageLoadFinish -= OnStageLoadFinish;
+            StageManager.Instance.onStageLoadFinish -= OnStageLoadFinish;
+            PlayerDatas.Instance.fairyData.OnRefreshFairyInfo -= OnRefreshFairyInfo;
+            PlayerDatas.Instance.fairyData.OnRefreshFairyMine -= OnRefreshFairyInfo;
         }
 
         DungeonModel dungeonModel { get { return ModelCenter.Instance.GetModel<DungeonModel>(); } }
@@ -27,7 +31,6 @@
         public int OpenFairyBossNeed { get; private set; }
         public int FairyBossStartHour { get; private set; }
         public int FairyBossEndHour { get; private set; }
-        public int FairyBossWeekCnt { get; private set; }
         public string fairyBossInfo { get; private set; }
         public int fairyBossNpcId { get; private set; }
         public int fairyBossFood { get; private set; }
@@ -40,6 +43,7 @@
 
         public List<int> m_LeagueTableHides { get; private set; }
         public string leagueTableName { get; private set; }
+        Dictionary<int, int> fairyBossWeekCntDict = new Dictionary<int, int>();
 
         private void ParseConfig()
         {
@@ -48,7 +52,6 @@
             OpenFairyBossNeed = int.Parse(cfg.Numerical2);
             FairyBossStartHour = ConfigParse.GetMultipleStr<int>(cfg.Numerical3)[0];
             FairyBossEndHour = ConfigParse.GetMultipleStr<int>(cfg.Numerical3)[1];
-            FairyBossWeekCnt = int.Parse(cfg.Numerical4);
             cfg = Config.Instance.Get<FuncConfigConfig>("FamilyBossInfo");
             fairyBossInfo = cfg.Numerical1;
             fairyBossNpcId = int.Parse(cfg.Numerical2);
@@ -65,6 +68,12 @@
             m_LeagueTableHides = new List<int>();
             m_LeagueTableHides.AddRange(ConfigParse.GetMultipleStr<int>(cfg.Numerical1));
             leagueTableName = cfg.Numerical2;
+
+            var configs = Config.Instance.GetAllValues<FamilyConfig>();
+            for (int i = 0; i < configs.Count; i++)
+            {
+                fairyBossWeekCntDict.Add(configs[i].familyLV, configs[i].bossFBCnt);
+            }
 
             GetDungeonContinueTime();
         }
@@ -88,6 +97,27 @@
             }
         }
 
+        public int GetFairyBossWeekCount()
+        {
+            var lv = 1;
+            var fairyData = PlayerDatas.Instance.fairyData;
+            if (!fairyData.HasFairy)
+            {
+                return 0;
+            }
+            lv = fairyData.fairy.FamilyLV;
+            if (fairyBossWeekCntDict.ContainsKey(lv))
+            {
+                return fairyBossWeekCntDict[lv];
+            }
+            return 0;
+        }
+
+        private void OnRefreshFairyInfo()
+        {
+            UpdateRedPoint();
+        }
+
         public void UpdateRedPoint()
         {
             redpoint.state = RedPointState.None;
@@ -96,7 +126,7 @@
             {
                 return;
             }
-            if (fairyData.weekBossOpenCnt >= FairyBossWeekCnt)
+            if (fairyData.weekBossOpenCnt >= GetFairyBossWeekCount())
             {
                 return;
             }

--
Gitblit v1.8.0