From 30e8238a8b6660a2524048a171495ad8ee7baf0b Mon Sep 17 00:00:00 2001
From: client_linchunjie <461730578@qq.com>
Date: 星期二, 25 九月 2018 16:56:49 +0800
Subject: [PATCH] Merge branch 'master' into 1871天赋功能

---
 System/Store/StoreModel.cs                      |   21 ++++
 System/Skill/SkillPassWin.cs                    |   32 +++---
 System/Realm/RealmUpWin.cs                      |    2 
 System/Strengthening/WingsRedDot.cs             |   98 +++++++++++++-----
 System/Store/PetAndMountPushWin.cs              |    3 
 System/Skill/SkillModel.cs                      |   54 +++++-----
 System/MainInterfacePanel/FeatureNoticeModel.cs |    3 
 System/MainInterfacePanel/TaskListTip.cs        |   24 +++-
 System/Store/StoreWin.cs                        |   24 ++++
 9 files changed, 180 insertions(+), 81 deletions(-)

diff --git a/System/MainInterfacePanel/FeatureNoticeModel.cs b/System/MainInterfacePanel/FeatureNoticeModel.cs
index e2b91db..1b28179 100644
--- a/System/MainInterfacePanel/FeatureNoticeModel.cs
+++ b/System/MainInterfacePanel/FeatureNoticeModel.cs
@@ -242,9 +242,10 @@
         var IsOpenMaininterface = WindowCenter.Instance.CheckOpen<MainInterfaceWin>();
         var IsOpenOffLineOnHook = WindowCenter.Instance.CheckOpen<OffLineOnHookWin>();
         var treasureModel = ModelCenter.Instance.GetModel<TreasureModel>();
+        var IsLoading = StageManager.Instance.isLoading;
         if (NewBieCenter.Instance.inGuiding || treasureModel.newGotShowing || inDungeon || !IsOpenMaininterface
             || treasureModel.treasureStageUpShow || WindowCenter.Instance.ExitAnyFullScreenOrMaskWin() ||
-            IsOpenOffLineOnHook)
+            IsOpenOffLineOnHook || IsLoading)
         {
             yield break;
         }
diff --git a/System/MainInterfacePanel/TaskListTip.cs b/System/MainInterfacePanel/TaskListTip.cs
index f36c97b..39d667e 100644
--- a/System/MainInterfacePanel/TaskListTip.cs
+++ b/System/MainInterfacePanel/TaskListTip.cs
@@ -155,19 +155,19 @@
             }
         }
 
-        private void CardLevelChangeEvent(int taskID)
+        private void CardLevelChangeEvent(int taskID)//鍗$骇鐘舵�佹敼鍙�
         {
             if (taskmodel.allMissionDict.ContainsKey(taskID) && taskmodel.allMissionDict[taskID].Type == 3)
             {
                 TaskScheduling();
-                TheTaskToGenerate();
+                ChangeSort();
                 TaskJump(taskID);
             }
         }
-        private void MainCardLevelChange(int _id)
+        private void MainCardLevelChange(int _id)//涓荤嚎浠诲姟鍗$骇鐘舵�佹敼鍙�
         {
-            TaskScheduling();    
-            TheTaskToGenerate();
+            TaskScheduling();
+            ChangeSort();
             TaskJump(_id);
         }
 
@@ -326,6 +326,20 @@
                 }
             }
         }
+        private void ChangeSort()//鍏充簬浠诲姟鍙樻洿鎺掑簭
+        {
+            for (int i = 0; i < Content.childCount; i++)
+            {
+                GameObject obj = Content.GetChild(i).gameObject;
+                TaskType taskType = obj.GetComponent<TaskType>();
+                if (taskType.TaskID != 0 && _list.Contains(taskType.TaskID))
+                {
+                    int Inedx = _list.IndexOf(taskType.TaskID);
+                    obj.transform.SetSiblingIndex(Inedx);
+                }
+            }
+        }
+
 
         void TaskInformation(int _Taskid, Dictionary<int, Dictionary<string, string>> _Dic)//浠诲姟瀛楀吀淇℃伅
         {
diff --git a/System/Realm/RealmUpWin.cs b/System/Realm/RealmUpWin.cs
index db6af7f..ef5507d 100644
--- a/System/Realm/RealmUpWin.cs
+++ b/System/Realm/RealmUpWin.cs
@@ -48,6 +48,7 @@
         [SerializeField] Button m_SingleDungeon;
         [SerializeField] Button m_FuncButton;
         [SerializeField] Text m_RealmStageTip;
+        [SerializeField] RedpointBehaviour m_SingleRedpoint;
 
         [SerializeField] RectTransform m_ContainerFightPower;
         [SerializeField] Text m_FightPower;
@@ -337,6 +338,7 @@
             m_Group.gameObject.SetActive(!realmModel.IsRealmHighest && config.IsBigRealm == 1 && satisfyChallenge);
             m_SingleDungeon.gameObject.SetActive(!realmModel.IsRealmHighest && satisfyChallenge);
             m_FuncButton.gameObject.SetActive(!realmModel.IsRealmHighest && !satisfyChallenge);
+            m_SingleRedpoint.gameObject.SetActive(!m_Group.gameObject.activeSelf);
         }
 
         private void OnFunctionClick()
diff --git a/System/Skill/SkillModel.cs b/System/Skill/SkillModel.cs
index 7f93764..29903ea 100644
--- a/System/Skill/SkillModel.cs
+++ b/System/Skill/SkillModel.cs
@@ -350,7 +350,7 @@
                     taskHoleCondition = result;
                 }
             }
-            UpdateTaskHoleRedpoint();
+            //UpdateTaskHoleRedpoint();
         }
 
         RolePromoteModel m_PromoteModel;
@@ -528,7 +528,7 @@
             }
             playerLoginOk = true;
             UpdateRedpoint();
-            UpdateTaskHoleRedpoint();
+            //UpdateTaskHoleRedpoint();
         }
 
         public void CheckEquipPassSkill(PlayerSkillData _skill)
@@ -648,29 +648,29 @@
             UpdateRedpoint();
         }
 
-        public Redpoint taskHoleRedpoint = new Redpoint(10302, 1030299);
-        void UpdateTaskHoleRedpoint()
-        {
-            taskHoleRedpoint.state = RedPointState.None;
-            if (DayRemind.Instance.GetDayRemind(DayRemind.TASK_SKILL_HOLE))
-            {
-                return;
-            }
-            foreach (var hole in taskHoleDict.Keys)
-            {
-                var taskId = taskHoleDict[hole];
-                if (IsImmediatelyUnlock(hole))
-                {
-                    var config = Config.Instance.Get<PyTaskConfig>(taskId);
-                    if (PlayerDatas.Instance.baseData.LV >= config.lv
-                        && !IsTaskHoleUnlock(hole))
-                    {
-                        taskHoleRedpoint.state = RedPointState.Simple;
-                    }
-                    return;
-                }
-            }
-        }
+        //public Redpoint taskHoleRedpoint = new Redpoint(10302, 1030299);
+        //void UpdateTaskHoleRedpoint()
+        //{
+        //    taskHoleRedpoint.state = RedPointState.None;
+        //    if (DayRemind.Instance.GetDayRemind(DayRemind.TASK_SKILL_HOLE))
+        //    {
+        //        return;
+        //    }
+        //    foreach (var hole in taskHoleDict.Keys)
+        //    {
+        //        var taskId = taskHoleDict[hole];
+        //        if (IsImmediatelyUnlock(hole))
+        //        {
+        //            var config = Config.Instance.Get<PyTaskConfig>(taskId);
+        //            if (PlayerDatas.Instance.baseData.LV >= config.lv
+        //                && !IsTaskHoleUnlock(hole))
+        //            {
+        //                taskHoleRedpoint.state = RedPointState.Simple;
+        //            }
+        //            return;
+        //        }
+        //    }
+        //}
 
         public bool IsImmediatelyUnlock(int hole)
         {
@@ -685,7 +685,7 @@
         public void SetTaskHoleRemind()
         {
             DayRemind.Instance.SetDayRemind(DayRemind.TASK_SKILL_HOLE, true);
-            UpdateTaskHoleRedpoint();
+            //UpdateTaskHoleRedpoint();
         }
         #endregion
 
@@ -694,7 +694,7 @@
             if (_id == 109)
             {
                 UpdateRedpoint();
-                UpdateTaskHoleRedpoint();
+                //UpdateTaskHoleRedpoint();
             }
         }
     }
diff --git a/System/Skill/SkillPassWin.cs b/System/Skill/SkillPassWin.cs
index 2185243..ee401b6 100644
--- a/System/Skill/SkillPassWin.cs
+++ b/System/Skill/SkillPassWin.cs
@@ -152,22 +152,22 @@
                     OnClickEquipHole(hole, false);
                 }
             }
-            else if (model.taskHoleRedpoint.state == RedPointState.Simple)
-            {
-                model.SetTaskHoleRemind();
-                for (int i = 0; i < equipPassSkills.Count; i++)
-                {
-                    PassSkillLimit limit;
-                    if (model.TryGetPassSkillLimit(i, out limit))
-                    {
-                        if (limit.OpenSkillSlots > 0 && model.IsImmediatelyUnlock(i))
-                        {
-                            OnClickEquipHole(i, false);
-                            return;
-                        }
-                    }
-                }
-            }
+            //else if (model.taskHoleRedpoint.state == RedPointState.Simple)
+            //{
+            //    model.SetTaskHoleRemind();
+            //    for (int i = 0; i < equipPassSkills.Count; i++)
+            //    {
+            //        PassSkillLimit limit;
+            //        if (model.TryGetPassSkillLimit(i, out limit))
+            //        {
+            //            if (limit.OpenSkillSlots > 0 && model.IsImmediatelyUnlock(i))
+            //            {
+            //                OnClickEquipHole(i, false);
+            //                return;
+            //            }
+            //        }
+            //    }
+            //}
         }
 
         protected override void OnAfterOpen()
diff --git a/System/Store/PetAndMountPushWin.cs b/System/Store/PetAndMountPushWin.cs
index 4ab0a23..4347bef 100644
--- a/System/Store/PetAndMountPushWin.cs
+++ b/System/Store/PetAndMountPushWin.cs
@@ -83,7 +83,8 @@
         private void ClickGoTo()
         {
             CloseImmediately();
-            WindowJumpMgr.Instance.WindowJumpTo(JumpUIType.StoreFunc3);
+            storeModel.SetJumpModel(StoreFunc.BindStore, storeModel.currentPushId);
+            WindowJumpMgr.Instance.WindowJumpTo(JumpUIType.StoreFunc4);
         }
         private void ClickCloseBtn()
         {
diff --git a/System/Store/StoreModel.cs b/System/Store/StoreModel.cs
index 8586001..400548f 100644
--- a/System/Store/StoreModel.cs
+++ b/System/Store/StoreModel.cs
@@ -58,6 +58,7 @@
     {
         IsMustBuyDay = false;
         isLogin = true;
+        ClearJumpModel();
         StageManager.Instance.onStageLoadFinish -= OnStageLoadFinish;
         FuncOpen.Instance.OnFuncStateChangeEvent -= FuncStateChange;
         WindowCenter.Instance.windowAfterCloseEvent -= windowAfterOpen;
@@ -1019,7 +1020,7 @@
         List<StoreConfig> storelist = StoreConfig.GetAllShoplist();
         for(int i = 0; i < storelist.Count; i++)
         {
-            if (storelist[i].ShopType != (int)StoreFunc.GrowStrongerStore) continue;
+            if (storelist[i].ShopType != (int)StoreFunc.BindStore) continue;
 
             ItemConfig itemConfig = Config.Instance.Get<ItemConfig>(storelist[i].ItemID);
             string key = StringUtility.Contact(PlayerDatas.Instance.baseData.PlayerID,"ShopId",storelist[i].ID);
@@ -1242,6 +1243,24 @@
     }
 
     #endregion
+
+    #region 澶勭悊璺宠浆鏁版嵁
+    public int funcOrder { get; private set; }
+    public int jumpShopId { get; private set; }
+    public void SetJumpModel(StoreFunc storeFunc,int shopId)
+    {
+        if (shopId == 0) return;
+
+        funcOrder = (int)storeFunc - 1;
+        jumpShopId = shopId;
+    }
+
+    public void ClearJumpModel()
+    {
+        funcOrder = -1;
+        jumpShopId = 0;
+    }
+    #endregion
 }
 
 public enum StoreFunc
diff --git a/System/Store/StoreWin.cs b/System/Store/StoreWin.cs
index 39b8b6f..7c4d282 100644
--- a/System/Store/StoreWin.cs
+++ b/System/Store/StoreWin.cs
@@ -130,6 +130,11 @@
                     functionOrder = _integralStoreTitle.order;
                 }
             }
+
+            if(!WindowJumpMgr.Instance.IsJumpState && m_storeModel.funcOrder != -1)
+            {
+                functionOrder = m_storeModel.funcOrder;
+            }
             _funcBtnGroup.TriggerByOrder(functionOrder);
             GlobalTimeEvent.Instance.secondEvent += RefreshResetTime;
         }
@@ -182,8 +187,25 @@
                     AchievementGoto.guideAchievementId = 0;
                 }
             }
+            else
+            {
+                if(m_storeModel.jumpShopId != 0)
+                {
+                    _tagStoreModellist = StoreConfig.GetTypeStoreModel((int)m_storeModel.storeFuncType);
+                    for (int i = 0; i < _tagStoreModellist.Count; i++)
+                    {
+                        if (_tagStoreModellist[i].ID == m_storeModel.jumpShopId)
+                        {
+                            int index = i / 2 ;
+                            _shopCtrl.JumpIndex(index > 2 ? index - 1 : index);
+                            _shopCtrl.m_Scorller.RefreshActiveCellViews();
+                            break;
+                        }
+                    }
+                    m_storeModel.ClearJumpModel();
+                }
+            }
         }
-
 
         private void RefreshResetTime()
         {
diff --git a/System/Strengthening/WingsRedDot.cs b/System/Strengthening/WingsRedDot.cs
index edec637..83f915d 100644
--- a/System/Strengthening/WingsRedDot.cs
+++ b/System/Strengthening/WingsRedDot.cs
@@ -29,13 +29,13 @@
 
         public override void Init()
         {
-          
+
         }
         public void OnPlayerLoginOk()
         {
-           
-            playerPack.ItemCntAddAct += ItemCntAddAct;
-            playerPack.RefreshItemCountAct += OnItemRefreshEvent;
+
+            playerPack.ItemCntAddAct += ItemCntAddAct;//鐗╁搧鏁伴噺澧炲姞
+            playerPack.ItemCntReduceAct += ItemCntReduceAct;//鐗╁搧鏁伴噺鍑忓皯
             FuncOpen.Instance.OnFuncStateChangeEvent += OnFuncStateChange;
             ItemModel itemModel = playerPack.GetItemModelByIndex(PackType.rptEquip, (int)RoleEquipType.retWing);
             if (IsOnePutOn)
@@ -46,29 +46,23 @@
             {
                 IsOnePutOn = false;
             }
-          
+
         }
         public void OnBeforePlayerDataInitialize()
         {
-            playerPack.ItemCntAddAct -= ItemCntAddAct;//鐗╁搧鏁伴噺鍒锋柊
-            playerPack.RefreshItemCountAct -= OnItemRefreshEvent;//鑳屽寘鍒锋柊
+            playerPack.ItemCntAddAct -= ItemCntAddAct;//鐗╁搧鏁伴噺澧炲姞
             FuncOpen.Instance.OnFuncStateChangeEvent -= OnFuncStateChange;
+            playerPack.ItemCntReduceAct -= ItemCntReduceAct;//鐗╁搧鏁伴噺鍑忓皯
         }
-        private void OnItemRefreshEvent(PackType type, int index, int id)
-        {
-            if (type == PackType.rptItem && ItemConfig.tag_Wings.ContainsKey(id)&& IsOnePutOn)
-            {
-                WingsDot();
-                IsOnePutOn = false;
-            }
-        }
+
+
 
         public override void UnInit()
         {
-          
+
         }
 
-       
+
 
         private void OnFuncStateChange(int obj)
         {
@@ -168,25 +162,71 @@
                 Marking = WingNumber;
             }
         }
-        private void ItemCntAddAct(PackType arg1, int WingsItemIndex, int ItemCount)
+        private void ItemCntAddAct(PackType arg1, int ItemIndex, int ItemID)//鐗╁搧鏁伴噺澧炲姞
         {
-            if (arg1 == PackType.rptItem)
+
+            if (arg1 == PackType.rptItem)//鐗╁搧鑳屽寘鐗╁搧澧炲姞
             {
-                if (IsBoolOpenWingeWin)
+                ItemBagAdd(ItemIndex, ItemID);
+            }
+            if (arg1 == PackType.rptEquip)//瑁呭鑳屽寘鐗╁搧澧炲姞
+            {
+                ItemModel itemModel = playerPack.GetItemModelByIndex(PackType.rptEquip, (int)RoleEquipType.retWing);
+                if (IsOnePutOn)
                 {
-                    return;
+                    WingsDot();
                 }
-                if (_dicWings.ContainsKey(WingsItemIndex))
+                if (itemModel != null)
                 {
-                    if (ItemCount > _dicWings[WingsItemIndex].WingsCount)
+                    IsOnePutOn = false;
+                }
+            }
+        }
+
+        private void ItemBagAdd(int ItemIndex, int ItemID)//鐗╁搧鑳屽寘鏁伴噺娣诲姞
+        {
+            ItemModel ItemModel = playerPack.GetItemModelByIndex(PackType.rptItem, ItemIndex);
+            int ItemCount = ItemModel.preItemCount;
+            var WingItem = Config.Instance.Get<WingRefineExpConfig>(ItemModel.itemId);
+            if (IsBoolOpenWingeWin || WingItem == null)
+            {
+                return;
+            }
+            if (_dicWings.ContainsKey(ItemIndex))
+            {
+                if (ItemCount > _dicWings[ItemIndex].WingsCount)
+                {
+                    _dicWings[ItemIndex].WingsCount = ItemCount;
+                    redPointStre.state = RedPointState.Simple;
+                }
+                else
+                {
+                    _dicWings[ItemIndex].WingsCount = ItemCount;
+                }
+            }
+        }
+        private void ItemCntReduceAct(PackType arg1, int Index, int ItemID)
+        {
+            if (arg1 == PackType.rptItem)//鐗╁搧鑳屽寘鐗╁搧鍑忓皯
+            {
+                var WingItem = Config.Instance.Get<WingRefineExpConfig>(ItemID);
+                if (WingItem != null && _dicWings.ContainsKey(Index))
+                {
+                    _dicWings.Remove(Index);
+                    if (_dicWings.Count <= 0 && redPointStre.state == RedPointState.Simple)
                     {
-                        _dicWings[WingsItemIndex].WingsCount = ItemCount;
-                        redPointStre.state = RedPointState.Simple;
+                        redPointStre.state = RedPointState.None;
+                        return;
                     }
-                    else
-                    {
-                        _dicWings[WingsItemIndex].WingsCount = ItemCount;
-                    }
+                }
+            }
+            if (arg1 == PackType.rptEquip)//瑁呭鑴变笅
+            {
+                ItemModel itemModel = playerPack.GetItemModelByIndex(PackType.rptEquip, (int)RoleEquipType.retWing);
+                if (itemModel == null && redPointStre.state == RedPointState.Simple)
+                {
+                    redPointStre.state = RedPointState.None;
+                    return;
                 }
             }
         }

--
Gitblit v1.8.0