Browse Source

限时累充奖励红点

zhaoyang 2 years ago
parent
commit
1f02004042

+ 1 - 1
FGUIProject/assets/DailyWelfare/components/ListChargeItem.xml

@@ -8,7 +8,7 @@
   <displayList>
     <image id="n2_mbf1" name="n2" src="uxxstmj" fileName="imagesNew/mrrw_db.png" pkg="eg2y0ldp" xy="0,0"/>
     <image id="n9_idkd" name="n9" src="uxxstmq" fileName="imagesNew/mrrw_bq_qb.png" pkg="eg2y0ldp" xy="37,5"/>
-    <list id="n3_mbf1" name="listRewards" xy="93,65" size="662,131" layout="row" overflow="scroll" scroll="horizontal" colGap="6" defaultItem="ui://eg2y0ldp9jv6tls">
+    <list id="n3_mbf1" name="listRewards" xy="90,65" size="670,131" layout="row" overflow="scroll" scroll="horizontal" colGap="6" defaultItem="ui://eg2y0ldp9jv6tls">
       <item/>
       <item/>
       <item/>

+ 19 - 0
GameClient/Assets/Game/HotUpdate/Data/RedDotDataManager.cs

@@ -354,5 +354,24 @@ namespace GFGGame
             LeagueHotelCfg hotelCfg = LeagueHotelCfgArray.Instance.GetCfg(LeagueDataManager.Instance.HotelLevel);
             return LeagueDataManager.Instance.ListApplyDatas.Count > 0 && LeagueDataManager.Instance.LeagueData.Num < hotelCfg.limit;
         }
+
+        /// <summary>
+        /// 限时累充可领奖励红点
+        /// </summary>
+        /// <returns></returns>
+        public bool GetLimiteChargeRewardRed()
+        {
+            if (ActivityDataManager.Instance.actLimitChargeId == 0) return false;
+            ActivityInfo _activityInfo = ActivityGlobalDataManager.Instance.GetActivityInfo(ActivityDataManager.Instance.actLimitChargeId);
+            List<ActivityRechargeCfg> _rechargeCfgs = ActivityRechargeCfgArray.Instance.GetCfgsByactivityId(ActivityDataManager.Instance.actLimitChargeId);
+            for (int i = 0; i < _rechargeCfgs.Count; i++)
+            {
+                if (_activityInfo.CountValue >= _rechargeCfgs[i].value && _activityInfo.GetRewards.IndexOf(_rechargeCfgs[i].id) < 0)
+                {
+                    return true;
+                }
+            }
+            return false;
+        }
     }
 }

+ 2 - 1
GameClient/Assets/Game/HotUpdate/ServerProxy/ActivityGlobalSProxy.cs

@@ -85,11 +85,12 @@ namespace GFGGame
         {
             var response =
                 (S2C_GetActivityBonus)await MessageHelper.SendToServer(new C2S_GetActivityBonus()
-                    { ActivityId = activityId, BonusId = bonusId });
+                { ActivityId = activityId, BonusId = bonusId });
             if (!(response is { Error: ErrorCode.ERR_Success })) return false;
             //奖励弹窗
             BonusController.TryShowBonusList(ItemUtil.CreateItemDataList(response.itemList));
             ActivityGlobalDataManager.Instance.AddActivityRewardInfo(activityId, bonusId);
+            EventAgent.DispatchEvent(ConstMessage.RED_CHANGE);
             return false;
         }
     }

+ 7 - 1
GameClient/Assets/Game/HotUpdate/Views/DailyWelfare/DailyWelfareView.cs

@@ -54,7 +54,7 @@ namespace GFGGame
         protected override void AddEventListener()
         {
             base.AddEventListener();
-            // EventAgent.AddEventListener(ConstMessage.NUMERIC_CHANGE, UpdateView);
+            EventAgent.AddEventListener(ConstMessage.RED_CHANGE, UpdateRedDot);
         }
 
         protected override void OnShown()
@@ -79,6 +79,7 @@ namespace GFGGame
             {
                 Timers.inst.Add(1, 0, UpdateTime);
             }
+            UpdateRedDot();
         }
 
         protected override void OnHide()
@@ -90,6 +91,7 @@ namespace GFGGame
         protected override void RemoveEventListener()
         {
             base.RemoveEventListener();
+            EventAgent.RemoveEventListener(ConstMessage.RED_CHANGE, UpdateRedDot);
         }
         private void UpdateTime(object param)
         {
@@ -124,5 +126,9 @@ namespace GFGGame
         {
             ViewManager.Show<DailySupplyView>();
         }
+        private void UpdateRedDot()
+        {
+            RedDotController.Instance.SetComRedDot(_ui.m_comList.m_btnLimitChargeAddUp.target, RedDotDataManager.Instance.GetLimiteChargeRewardRed(), "", -40);
+        }
     }
 }

+ 1 - 0
GameClient/Assets/Game/HotUpdate/Views/MainUI/MainUIView.cs

@@ -1013,6 +1013,7 @@ namespace GFGGame
             RedDotController.Instance.SetComRedDot(_ui.m_headBar.target, RedDotDataManager.Instance.GetHeadRed() || RedDotDataManager.Instance.GetHeadBorderRed(), "", 5, 7);
             RedDotController.Instance.SetComRedDot(_ui.m_btnTravel.target, RedDotDataManager.Instance.GetTravelRed(), "", -38);
             RedDotController.Instance.SetComRedDot(_btnLeague, RedDotDataManager.Instance.GetLeagueMemberJoinRed());
+            RedDotController.Instance.SetComRedDot(_ui.m_btnDailyWelfare.target, RedDotDataManager.Instance.GetLimiteChargeRewardRed(), "", -10, 5);
 
         }
 

BIN
GameClient/Assets/ResIn/UI/DailyWelfare/DailyWelfare_fui.bytes