From b0a2949af127986559cf510d7193e1bb06ff37d4 Mon Sep 17 00:00:00 2001
From: client_Zxw <826696702@qq.com>
Date: 星期三, 31 十月 2018 16:42:55 +0800
Subject: [PATCH] 4435 子 【开发】【1.2.0】功能预告界面修改,新增可领取奖励 / 【前端】【1.2.0】功能预告界面修改,新增可领取奖励

---
 System/MainInterfacePanel/FeatureNoticeModel.cs |  358 +++++++++++++++++++++++++++++++++--------------------------
 1 files changed, 202 insertions(+), 156 deletions(-)

diff --git a/System/MainInterfacePanel/FeatureNoticeModel.cs b/System/MainInterfacePanel/FeatureNoticeModel.cs
index 0737c98..39db298 100644
--- a/System/MainInterfacePanel/FeatureNoticeModel.cs
+++ b/System/MainInterfacePanel/FeatureNoticeModel.cs
@@ -15,7 +15,8 @@
 {
     public List<FunctionForecastConfig> FunctionList = new List<FunctionForecastConfig>();
     public Dictionary<int, ImpactRankModel.RankAwardItem> DicAwardItem = new Dictionary<int, ImpactRankModel.RankAwardItem>();//濂栧姳鐗╁搧
-    public  Dictionary<int, OpenFuncState> DicOpenFuncState = new Dictionary<int, OpenFuncState>();
+    public Dictionary<int, OpenFuncState> DicOpenFuncState = new Dictionary<int, OpenFuncState>();
+    public Dictionary<int, Redpoint> DicRedPoint = new Dictionary<int, Redpoint>();//绾㈢偣
     public event Action UpdateAwarfItem;
     private const int Redpoint_key1 = 38;
     public Redpoint redPointStre1 = new Redpoint(Redpoint_key1);
@@ -27,28 +28,30 @@
     {
         AddList();
         AddAwardItem();
+        AddRedPoint();
     }
 
     public void OnBeforePlayerDataInitialize()
     {
-        PlayerDatas.Instance.PlayerDataRefreshInfoEvent -= OnPlayersUpLV;
-        FuncOpen.Instance.OnFuncStateChangeEvent -= OnFuncStateChangeEvent;
-        treasureModel.treasureStateChangeEvent -= treasureStateChangeEvent;
-        treasureModel.treasureStageUpEvent -= treasureStageUpEvent;
+        //PlayerDatas.Instance.PlayerDataRefreshInfoEvent -= OnPlayersUpLV;
+        //FuncOpen.Instance.OnFuncStateChangeEvent -= OnFuncStateChangeEvent;
+        //treasureModel.treasureStateChangeEvent -= treasureStateChangeEvent;
+        //treasureModel.treasureStageUpEvent -= treasureStageUpEvent;
     }
 
     public void OnPlayerLoginOk()
-    {                    
-        FuncOpen.Instance.OnFuncStateChangeEvent += OnFuncStateChangeEvent;
-        PlayerDatas.Instance.PlayerDataRefreshInfoEvent += OnPlayersUpLV;
-        treasureModel.treasureStateChangeEvent += treasureStateChangeEvent;
-        treasureModel.treasureStageUpEvent += treasureStageUpEvent;
+    {
+        //FuncOpen.Instance.OnFuncStateChangeEvent += OnFuncStateChangeEvent;
+        //PlayerDatas.Instance.PlayerDataRefreshInfoEvent += OnPlayersUpLV;
+        //treasureModel.treasureStateChangeEvent += treasureStateChangeEvent;
+        //treasureModel.treasureStageUpEvent += treasureStageUpEvent;
         StageManager.Instance.onStageLoadFinish -= OnStageLoadFinish;
         StageManager.Instance.onStageLoadFinish += OnStageLoadFinish;
-        RedDotStatus();
+        RedPoint_State();
+        // RedDotStatus();
     }
 
-   
+
 
     public override void UnInit()
     {
@@ -62,29 +65,29 @@
             RedPointChange = false;
             IsRedPoint = false;
         }
-    }     
-    private void treasureStageUpEvent(int obj)
-    {
-        RedDotStatus();
     }
+    //private void treasureStageUpEvent(int obj)
+    //{
+    //    RedDotStatus();
+    //}
 
-    private void treasureStateChangeEvent(int obj)
-    {
-        RedDotStatus();
-    }
+    //private void treasureStateChangeEvent(int obj)
+    //{
+    //    RedDotStatus();
+    //}
 
-    private void OnFuncStateChangeEvent(int obj)
-    {
-        RedDotStatus();
-    }
+    //private void OnFuncStateChangeEvent(int obj)
+    //{
+    //    RedDotStatus();
+    //}
 
-    private void OnPlayersUpLV(PlayerDataRefresh obj)
-    {
-        if (obj == PlayerDataRefresh.LV)
-        {
-            RedDotStatus();
-        }
-    }
+    //private void OnPlayersUpLV(PlayerDataRefresh obj)
+    //{
+    //    if (obj == PlayerDataRefresh.LV)
+    //    {
+    //        RedDotStatus();
+    //    }
+    //}
     private void AddList()//娣诲姞鍒楄〃淇℃伅
     {
         if (FunctionList.Count <= 0)
@@ -109,7 +112,7 @@
             foreach (var key in configs)
             {
                 var functionForecastConfig = Config.Instance.Get<FunctionForecastConfig>(key);
-                if (!DicAwardItem.ContainsKey(functionForecastConfig.FuncId) && functionForecastConfig.Display==1)
+                if (!DicAwardItem.ContainsKey(functionForecastConfig.FuncId) && functionForecastConfig.Display == 1)
                 {
                     ImpactRankModel.RankAwardItem _award = new ImpactRankModel.RankAwardItem();
                     if (functionForecastConfig.Award == string.Empty)
@@ -133,148 +136,182 @@
                     DicAwardItem.Add(functionForecastConfig.FuncId, _award);
                 }
             }
-          //  DebugEx.LogError(DicAwardItem);
+            //  DebugEx.LogError(DicAwardItem);
         }
 
     }
 
-    private void RedDotStatus()
+    private void AddRedPoint()
     {
-        for (int i = 0; i < FunctionList.Count; i++)
+        if (DicRedPoint.Count <= 0)
         {
-            if (!FuncOpen.Instance.IsFuncOpen(FunctionList[i].FuncId))
+            var configs = Config.Instance.GetAllKeys<FunctionForecastConfig>();
+            foreach (var key in configs)
             {
-                redPointStre1.state = RedPointState.None;
-                if (OpenFuncId != FunctionList[i].FuncId)
+                var functionForecastConfig = Config.Instance.Get<FunctionForecastConfig>(key);
+                if (!DicRedPoint.ContainsKey(functionForecastConfig.FuncId) && functionForecastConfig.Display == 1)
                 {
-                    RedPointChange = false;
+                    int RedPointkey = Redpoint_key1 * 10000 + functionForecastConfig.FuncId;
+                    Redpoint redPointMountStare = new Redpoint(Redpoint_key1, RedPointkey);
+                    DicRedPoint.Add(functionForecastConfig.FuncId, redPointMountStare);
                 }
-                if (OpenFuncId != FunctionList[i].FuncId || !RedPointChange)
-                {
-                    OpenFuncId = FunctionList[i].FuncId;
-                    IsRedPoint = false;
-                    TrailerClassification(FunctionList[i].FuncId);
-                }
-                return;
             }
         }
     }
 
-    private void TrailerClassification(int funcID)
+    private void RedPoint_State()
     {
-        FuncOpenLVConfig funcoPenConfig = Config.Instance.Get<FuncOpenLVConfig>(funcID);
-        var functionForecastConfig = Config.Instance.Get<FunctionForecastConfig>(funcID);
-        if (funcoPenConfig.LimitMagicWeapon != 0 || funcoPenConfig.LimitMissionID != 0)
+        var configs = Config.Instance.GetAllKeys<FunctionForecastConfig>();
+        foreach (var key in DicRedPoint.Keys)
         {
-            if (funcoPenConfig.LimitMagicWeapon != 0)//娉曞疂
-            {
-                int faBaoID = funcoPenConfig.LimitMagicWeapon / 100;
-                MagicWeapon(faBaoID, funcID);
-                return;
-            }
-            else if (funcoPenConfig.LimitMissionID != 0)//浠诲姟
-            {
-                if (functionForecastConfig.RedPointLV <= 0)
-                {
-                    return;
-                }
-                if (PlayerDatas.Instance.baseData.LV >= functionForecastConfig.RedPointLV)
-                {
-                    RedPointChange = true;
-                    IsRedPoint = true;
-                }
-                if (IsRedPoint)
-                {
-                    redPointStre1.state = RedPointState.Simple;
-                }
-                else
-                {
-                    redPointStre1.state = RedPointState.None;
-                }
-                return;
-            }
+            DicRedPoint[key].state=RedPointState.None;
         }
-        else//绛夌骇
+        foreach (var _key in DicOpenFuncState.Keys)
         {
-            if (functionForecastConfig.RedPointLV <= 0)
+            if (DicRedPoint.ContainsKey(_key) && DicOpenFuncState[_key].State==1 
+                && DicOpenFuncState[_key].AwardState==0)
             {
-                return;
+                DicRedPoint[_key].state = RedPointState.Simple;
             }
-            if (PlayerDatas.Instance.baseData.LV >= functionForecastConfig.RedPointLV)
-            {
-                RedPointChange = true;
-                IsRedPoint = true;
-            }
-            if (IsRedPoint)
-            {
-                redPointStre1.state = RedPointState.Simple;
-            }
-            else
-            {
-                redPointStre1.state = RedPointState.None;
-            }
-            return;
         }
     }
+    //private void RedDotStatus()//绾㈢偣1
+    //{
+    //    for (int i = 0; i < FunctionList.Count; i++)
+    //    {
+    //        if (!FuncOpen.Instance.IsFuncOpen(FunctionList[i].FuncId))
+    //        {
+    //            redPointStre1.state = RedPointState.None;
+    //            if (OpenFuncId != FunctionList[i].FuncId)
+    //            {
+    //                RedPointChange = false;
+    //            }
+    //            if (OpenFuncId != FunctionList[i].FuncId || !RedPointChange)
+    //            {
+    //                OpenFuncId = FunctionList[i].FuncId;
+    //                IsRedPoint = false;
+    //                TrailerClassification(FunctionList[i].FuncId);
+    //            }
+    //            return;
+    //        }
+    //    }
+    //}
+
+    //private void TrailerClassification(int funcID)//绾㈢偣1
+    //{
+    //    FuncOpenLVConfig funcoPenConfig = Config.Instance.Get<FuncOpenLVConfig>(funcID);
+    //    var functionForecastConfig = Config.Instance.Get<FunctionForecastConfig>(funcID);
+    //    if (funcoPenConfig.LimitMagicWeapon != 0 || funcoPenConfig.LimitMissionID != 0)
+    //    {
+    //        if (funcoPenConfig.LimitMagicWeapon != 0)//娉曞疂
+    //        {
+    //            int faBaoID = funcoPenConfig.LimitMagicWeapon / 100;
+    //            MagicWeapon(faBaoID, funcID);
+    //            return;
+    //        }
+    //        else if (funcoPenConfig.LimitMissionID != 0)//浠诲姟
+    //        {
+    //            if (functionForecastConfig.RedPointLV <= 0)
+    //            {
+    //                return;
+    //            }
+    //            if (PlayerDatas.Instance.baseData.LV >= functionForecastConfig.RedPointLV)
+    //            {
+    //                RedPointChange = true;
+    //                IsRedPoint = true;
+    //            }
+    //            if (IsRedPoint)
+    //            {
+    //                redPointStre1.state = RedPointState.Simple;
+    //            }
+    //            else
+    //            {
+    //                redPointStre1.state = RedPointState.None;
+    //            }
+    //            return;
+    //        }
+    //    }
+    //    else//绛夌骇
+    //    {
+    //        if (functionForecastConfig.RedPointLV <= 0)
+    //        {
+    //            return;
+    //        }
+    //        if (PlayerDatas.Instance.baseData.LV >= functionForecastConfig.RedPointLV)
+    //        {
+    //            RedPointChange = true;
+    //            IsRedPoint = true;
+    //        }
+    //        if (IsRedPoint)
+    //        {
+    //            redPointStre1.state = RedPointState.Simple;
+    //        }
+    //        else
+    //        {
+    //            redPointStre1.state = RedPointState.None;
+    //        }
+    //        return;
+    //    }
+    //}
     TreasureModel treasureModel { get { return ModelCenter.Instance.GetModel<TreasureModel>(); } }
-    private void MagicWeapon(int fabaoID, int funcID)
-    {
-        var functionForecastConfig = Config.Instance.Get<FunctionForecastConfig>(funcID);
-        if (functionForecastConfig.RedPointLV > 0)//鏍规嵁濉殑绛夌骇鏉�
-        {
-            if (PlayerDatas.Instance.baseData.LV >= functionForecastConfig.RedPointLV)
-            {
-                RedPointChange = true;
-                IsRedPoint = true;
-            }
-            if (IsRedPoint)
-            {
-                redPointStre1.state = RedPointState.Simple;
-            }
-            else
-            {
-                redPointStre1.state = RedPointState.None;
-            }
-            return;
-        }
-        Treasure treasure;//鏍规嵁瑙i攣娉曞疂鐨勭櫨鍒嗘瘮
+    //private void MagicWeapon(int fabaoID, int funcID)//绾㈢偣1
+    //{
+    //    var functionForecastConfig = Config.Instance.Get<FunctionForecastConfig>(funcID);
+    //    if (functionForecastConfig.RedPointLV > 0)//鏍规嵁濉殑绛夌骇鏉�
+    //    {
+    //        if (PlayerDatas.Instance.baseData.LV >= functionForecastConfig.RedPointLV)
+    //        {
+    //            RedPointChange = true;
+    //            IsRedPoint = true;
+    //        }
+    //        if (IsRedPoint)
+    //        {
+    //            redPointStre1.state = RedPointState.Simple;
+    //        }
+    //        else
+    //        {
+    //            redPointStre1.state = RedPointState.None;
+    //        }
+    //        return;
+    //    }
+    //    Treasure treasure;//鏍规嵁瑙i攣娉曞疂鐨勭櫨鍒嗘瘮
 
-        if (treasureModel.TryGetTreasure(fabaoID, out treasure)
-              && treasure.state == TreasureState.Collected)
-        {
-            var list = treasure.treasureStages;
-            var funcStage = 0;
-            for (int i = 0; i < list.Count; i++)
-            {
-                if (list[i].unlockType == TreasureStageUnlock.Func &&
-                    list[i].func == funcID)
-                {
-                    funcStage = i;
-                    break;
-                }
-            }
-            if (treasure.stage == funcStage - 1 || funcStage == 0)
-            {
-                float exp = ((float)treasure.exp / treasure.treasureStages[funcStage].exp) * 100;
-                if (functionForecastConfig.RedPointPercentage > -1)
-                {
-                    if (exp >= functionForecastConfig.RedPointPercentage)
-                    {
-                        RedPointChange = true;
-                        IsRedPoint = true;
-                    }
-                    if (IsRedPoint)
-                    {
-                        redPointStre1.state = RedPointState.Simple;
-                    }
-                }
-                else
-                {
-                    redPointStre1.state = RedPointState.None;
-                }
-            }
-        }
-    }
+    //    if (treasureModel.TryGetTreasure(fabaoID, out treasure)
+    //          && treasure.state == TreasureState.Collected)
+    //    {
+    //        var list = treasure.treasureStages;
+    //        var funcStage = 0;
+    //        for (int i = 0; i < list.Count; i++)
+    //        {
+    //            if (list[i].unlockType == TreasureStageUnlock.Func &&
+    //                list[i].func == funcID)
+    //            {
+    //                funcStage = i;
+    //                break;
+    //            }
+    //        }
+    //        if (treasure.stage == funcStage - 1 || funcStage == 0)
+    //        {
+    //            float exp = ((float)treasure.exp / treasure.treasureStages[funcStage].exp) * 100;
+    //            if (functionForecastConfig.RedPointPercentage > -1)
+    //            {
+    //                if (exp >= functionForecastConfig.RedPointPercentage)
+    //                {
+    //                    RedPointChange = true;
+    //                    IsRedPoint = true;
+    //                }
+    //                if (IsRedPoint)
+    //                {
+    //                    redPointStre1.state = RedPointState.Simple;
+    //                }
+    //            }
+    //            else
+    //            {
+    //                redPointStre1.state = RedPointState.None;
+    //            }
+    //        }
+    //    }
+    //}
 
     public IEnumerator WhetherToPlayTheBox()
     {
@@ -305,11 +342,11 @@
                 if (PlayerDatas.Instance.baseData.LV >= functionForecastConfig.FrameLevel && type == 0)
                 {
                     LocalSave.SetInt(strKey, functionForecastConfig.FrameLevel);
-                   var IsOpenFeatureNotice = WindowCenter.Instance.IsOpen<FeatureNoticeWin>();
+                   var IsOpenFeatureNotice = WindowCenter.Instance.IsOpen<FeatureNotice2Win>();
                     if (!IsOpenFeatureNotice)
                     {
                         WindowCenter.Instance.Close<MainInterfaceWin>();
-                        WindowCenter.Instance.Open<FeatureNoticeWin>();
+                        WindowCenter.Instance.Open<FeatureNotice2Win>();
                     }              
                 }
             }
@@ -352,21 +389,30 @@
             {
                 OpenFuncState openFuncState = new OpenFuncState();
                 openFuncState.State = info.FuncStateList[i].State;
-                openFuncState.AwardState = info.FuncStateList[i].State;
+                openFuncState.AwardState = info.FuncStateList[i].AwardState;
                 DicOpenFuncState.Add(FuncID, openFuncState);
             }
             else
             {
                 DicOpenFuncState[FuncID].State= info.FuncStateList[i].State;
-                DicOpenFuncState[FuncID].AwardState = info.FuncStateList[i].State;
+                DicOpenFuncState[FuncID].AwardState = info.FuncStateList[i].AwardState;
             }
         }
         if (UpdateAwarfItem != null)
         {
             UpdateAwarfItem();
         }
+        RedPoint_State();
     }
-
+    public void SendGetAward(int OpenFuncId)
+    {
+        CA504_tagCMPlayerGetReward getReward = new CA504_tagCMPlayerGetReward();
+        getReward.RewardType = (byte)GotServerRewardType.Def_RewardType_OpenFunc;
+        getReward.DataEx = (uint)OpenFuncId;
+        getReward.DataExStrLen = 0;
+        getReward.DataExStr = string.Empty;
+        GameNetSystem.Instance.SendInfo(getReward);
+    }
 }
 
 

--
Gitblit v1.8.0