From 379663dd5e7c0da4025fc6867dfb13f11a3bc946 Mon Sep 17 00:00:00 2001
From: Client_PangDeRong <593317293@qq.com>
Date: 星期六, 01 九月 2018 11:35:42 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.0.87:10010/r/snxxz_scripts

---
 System/FairyAu/FairyModel.cs               |   47 +++++++++++++++++++++++
 System/WindowJump/WindowJumpMgr.cs         |    8 +++
 System/FairyAu/PlayerMethodData.cs         |    5 ++
 System/FairyAu/BasicFunction.cs            |   11 +++++
 System/Activity/ActivityNotifyBehaviour.cs |   14 ++++++
 System/DailyQuest/DailyQuestWin.cs         |    8 +++
 System/DailyQuest/DailyQuestModel.cs       |   13 ++++++
 7 files changed, 102 insertions(+), 4 deletions(-)

diff --git a/System/Activity/ActivityNotifyBehaviour.cs b/System/Activity/ActivityNotifyBehaviour.cs
index 93c1378..96b65be 100644
--- a/System/Activity/ActivityNotifyBehaviour.cs
+++ b/System/Activity/ActivityNotifyBehaviour.cs
@@ -84,7 +84,19 @@
                         WindowCenter.Instance.Open<NormalDungeonEntranceWin>();
                         break;
                     case DailyQuestType.GuardSky:
-                        if (ModelCenter.Instance.GetModel<FairyModel>().completeGuardSky)
+                        var fairyData = PlayerDatas.Instance.fairyData;
+                        if (!fairyData.HasFairy)
+                        {
+                            break;
+                        }
+                        var fairyModel = ModelCenter.Instance.GetModel<FairyModel>();
+                        if (fairyData.fairy == null
+                            || fairyData.fairy.FamilyLV < fairyModel.guardSkyOpenFairyLv)
+                        {
+                            SysNotifyMgr.Instance.ShowTip("GuardSkyOpenLvError", fairyModel.guardSkyOpenFairyLv);
+                            break;
+                        }
+                        if (fairyModel.completeGuardSky)
                         {
                             SysNotifyMgr.Instance.ShowTip("TheEmperor1");
                             break;
diff --git a/System/DailyQuest/DailyQuestModel.cs b/System/DailyQuest/DailyQuestModel.cs
index b4ef82f..749564a 100644
--- a/System/DailyQuest/DailyQuestModel.cs
+++ b/System/DailyQuest/DailyQuestModel.cs
@@ -122,6 +122,8 @@
             FuncOpen.Instance.OnFuncStateChangeEvent += OnFunctionStateChange;
             PlayerDatas.Instance.PlayerDataRefreshEvent += OnPlayerDataRefresh;
             fairyModel.guardSkyCompleteEvent += GuardSkyCompleteEvent;
+            PlayerDatas.Instance.fairyData.OnRefreshFairyInfo += OnRefreshFairyInfo;
+            PlayerDatas.Instance.fairyData.OnRefreshFairyMine += OnRefreshFairyInfo;
         }
 
         public override void UnInit()
@@ -131,6 +133,8 @@
             FuncOpen.Instance.OnFuncStateChangeEvent -= OnFunctionStateChange;
             PlayerDatas.Instance.PlayerDataRefreshEvent -= OnPlayerDataRefresh;
             fairyModel.guardSkyCompleteEvent -= GuardSkyCompleteEvent;
+            PlayerDatas.Instance.fairyData.OnRefreshFairyInfo -= OnRefreshFairyInfo;
+            PlayerDatas.Instance.fairyData.OnRefreshFairyMine -= OnRefreshFairyInfo;
         }
 
         public void OnPlayerLoginOk()
@@ -219,6 +223,10 @@
                         (_dailyConfig.UnLockFuncID == 0 || FuncOpen.Instance.IsFuncOpen(_dailyConfig.UnLockFuncID));
                 case DailyQuestType.RuneTowerSweep:
                     return ModelCenter.Instance.GetModel<RuneTowerModel>().yesterdayPassFloor > 0;
+                case DailyQuestType.GuardSky:
+                    var _dailyGuardSkyConfig = Config.Instance.Get<DailyQuestConfig>(_dailyQuestId);
+                    bool _isOpen = _dailyGuardSkyConfig.UnLockFuncID == 0 || FuncOpen.Instance.IsFuncOpen(_dailyGuardSkyConfig.UnLockFuncID);
+                    return fairyModel.SatisfyGuardSkyFairyLv() && _isOpen;
                 default:
                     var dailyConfig = Config.Instance.Get<DailyQuestConfig>(_dailyQuestId);
                     return dailyConfig.UnLockFuncID == 0 || FuncOpen.Instance.IsFuncOpen(dailyConfig.UnLockFuncID);
@@ -490,6 +498,11 @@
             UpdateDailyActionRedpoint((int)DailyQuestType.GuardSky);
         }
 
+        private void OnRefreshFairyInfo()
+        {
+            UpdateDailyActionRedpoint((int)DailyQuestType.GuardSky);
+        }
+
         private void OnPlayerDataRefresh(PlayerDataRefresh _refreshType, int _value)
         {
             switch (_refreshType)
diff --git a/System/DailyQuest/DailyQuestWin.cs b/System/DailyQuest/DailyQuestWin.cs
index d9f8db4..0ddb6b5 100644
--- a/System/DailyQuest/DailyQuestWin.cs
+++ b/System/DailyQuest/DailyQuestWin.cs
@@ -195,7 +195,13 @@
                     GotoNormalDungeon(_id);
                     break;
                 case DailyQuestType.GuardSky:
-                    if (ModelCenter.Instance.GetModel<FairyModel>().completeGuardSky)
+                    var _fairyModel = ModelCenter.Instance.GetModel<FairyModel>();
+                    if (!_fairyModel.SatisfyGuardSkyFairyLv())
+                    {
+                        SysNotifyMgr.Instance.ShowTip("GuardSkyOpenLvError", _fairyModel.guardSkyOpenFairyLv);
+                        break;
+                    }
+                    if (_fairyModel.completeGuardSky)
                     {
                         SysNotifyMgr.Instance.ShowTip("TheEmperor1");
                         break;
diff --git a/System/FairyAu/BasicFunction.cs b/System/FairyAu/BasicFunction.cs
index 7c0efa8..3a28b57 100644
--- a/System/FairyAu/BasicFunction.cs
+++ b/System/FairyAu/BasicFunction.cs
@@ -67,6 +67,7 @@
             m_FairyRankTxt.text = fairy.WarRank == 0 ? Language.Get("UnDetermind") : GetGrade((int)fairy.WarRank);
         }
         CheckFairyStoreOpen();
+        CheckFairyMethodToOpen();
     }
 
     void CheckFairyStoreOpen()
@@ -74,8 +75,18 @@
         _fairyStoreBtn.image.color = _fairyStoreBtn.image.color.SetA(model.fairyStoreOpen ? 1 : 0.5f);
     }
 
+    void CheckFairyMethodToOpen()
+    {
+        SkillBtn.image.color = SkillBtn.image.color.SetA(model.fairyMethodToOpen ? 1 : 0.5f);
+    }
+
     void SkillBtna()
     {
+        if (!model.fairyMethodToOpen)
+        {
+            model.ProcessMethodToErrorTip();
+            return;
+        }
         WindowCenter.Instance.Open<MethodToWin>();
     }
 
diff --git a/System/FairyAu/FairyModel.cs b/System/FairyAu/FairyModel.cs
index 92f9fd4..d1b46a3 100644
--- a/System/FairyAu/FairyModel.cs
+++ b/System/FairyAu/FairyModel.cs
@@ -184,6 +184,10 @@
             fairyStoreLimit = int.Parse(config.Numerical2);
             config = Config.Instance.Get<FuncConfigConfig>("FamilyPartyDeskNpcID");
             fairyFeastDeskNpc = int.Parse(config.Numerical1);
+            config = Config.Instance.Get<FuncConfigConfig>("SWRHFamilyLV");
+            guardSkyOpenFairyLv = int.Parse(config.Numerical1);
+            config = Config.Instance.Get<FuncConfigConfig>("TechFamilyLV");
+            fairyMethodToLimit = int.Parse(config.Numerical1);
         }
         #endregion
 
@@ -498,6 +502,18 @@
             get;private set;
         }
 
+        public int guardSkyOpenFairyLv { get; private set; }
+
+        public bool SatisfyGuardSkyFairyLv()
+        {
+            var fairyData = PlayerDatas.Instance.fairyData;
+            if (!fairyData.HasFairy || fairyData.fairy == null)
+            {
+                return false;
+            }
+            return fairyData.fairy.FamilyLV >= guardSkyOpenFairyLv;
+        }
+
         public event Action guardSkyCompleteEvent;
         public void UpdateGuardSky(bool _hasJoin)
         {
@@ -652,6 +668,37 @@
         }
         #endregion
 
+        #region 浠欑洘蹇冩硶寮�鍚�
+        public int fairyMethodToLimit { get; private set; }
+        public bool fairyMethodToOpen
+        {
+            get
+            {
+                if (PlayerDatas.Instance.fairyData.HasFairy)
+                {
+                    var fairy = PlayerDatas.Instance.fairyData.fairy;
+                    if (fairy != null && fairy.FamilyLV >= fairyMethodToLimit)
+                    {
+                        return true;
+                    }
+                }
+                return false;
+            }
+        }
+
+        public void ProcessMethodToErrorTip()
+        {
+            if (!PlayerDatas.Instance.fairyData.HasFairy)
+            {
+                SysNotifyMgr.Instance.ShowTip("DailyQuestwinUnionLimit");
+            }
+            else if (PlayerDatas.Instance.fairyData.fairy.FamilyLV < fairyMethodToLimit)
+            {
+                SysNotifyMgr.Instance.ShowTip("FairyMethodToLimit", fairyMethodToLimit);
+            }
+        }
+        #endregion
+
         public bool InFairyLeagueDungeon
         {
             get
diff --git a/System/FairyAu/PlayerMethodData.cs b/System/FairyAu/PlayerMethodData.cs
index 8ccbea3..e303133 100644
--- a/System/FairyAu/PlayerMethodData.cs
+++ b/System/FairyAu/PlayerMethodData.cs
@@ -26,6 +26,8 @@
 
     public int _ContributionNumber = 0;//浠欑洘璐$尞搴�
     public Dictionary<int, int> MethodDataNeedLVDic = new Dictionary<int, int>();//蹇冩硶涓嬭〃瀵瑰簲鐨勬墍闇�瀛︿範绛夌骇
+
+    FairyModel fairyModel { get { return ModelCenter.Instance.GetModel<FairyModel>(); } }
     public override void Init()
     {
         string str = Config.Instance.Get<FuncConfigConfig>("FamilyTechNeedLV").Numerical1;
@@ -59,6 +61,7 @@
     {
         FairyAuHallRedPoint();
         FairyAuMethodDic();
+        FairyAuMethodRedPoint();
     }
 
     private void OnRefreshFairyMine()//閫�鍑轰粰鐩�
@@ -97,7 +100,7 @@
     }
     private void  FairyAuMethodRedPoint()//浠欑洘蹇冩硶绾㈢偣
     {
-        if (!PlayerDatas.Instance.fairyData.HasFairy || MethodRedPointBtnDic.Count==0)
+        if (!fairyModel.fairyMethodToOpen || MethodRedPointBtnDic.Count == 0)
         {
             return;
         }
diff --git a/System/WindowJump/WindowJumpMgr.cs b/System/WindowJump/WindowJumpMgr.cs
index 88187c0..c5e8e44 100644
--- a/System/WindowJump/WindowJumpMgr.cs
+++ b/System/WindowJump/WindowJumpMgr.cs
@@ -102,7 +102,6 @@
             case JumpUIType.UnionFunc2:
             case JumpUIType.UnionWarehouse:
             case JumpUIType.UnionHall:
-            case JumpUIType.UnionMethod:
             case JumpUIType.UnionTask:
             case JumpUIType.UnionTask2:
             case JumpUIType.UnionActive1:
@@ -113,6 +112,13 @@
                     return;
                 }
                 break;
+            case JumpUIType.UnionMethod:
+                if (!fairyModel.fairyMethodToOpen)
+                {
+                    fairyModel.ProcessMethodToErrorTip();
+                    return;
+                }
+                break;
             case JumpUIType.UnionStore:
                 if(!fairyModel.fairyStoreOpen)
                 {

--
Gitblit v1.8.0