Browse Source

添加元宵活动道具栏,新增元宵活动结束自动关闭

leiyasi 1 year ago
parent
commit
92d13ae4fb

+ 2 - 3
GameClient/Assets/Game/HotUpdate/Views/ActivityGetYuanXiao/ActivityGetYuanXiaoDataManager.cs

@@ -10,9 +10,8 @@ namespace GFGGame
     {
     {
         public bool CheckOpen()
         public bool CheckOpen()
         {
         {
-            var activityInfo = ActivityGlobalDataManager.Instance.GetActivityInfoOneByType(ActivityType.YuanXiao);
-            return activityInfo != null && activityInfo.StartTime <= TimeHelper.ServerNow() &&
-                   activityInfo.EndTime > TimeHelper.ServerNow();
+            var activityID = ActivityDataManager.Instance.GetCurOpenActiveByType(ActivityType.YuanXiao);
+            return activityID > 0;
         }
         }
 
 
         public bool HaveNewLevelCanPlay()
         public bool HaveNewLevelCanPlay()

+ 2 - 1
GameClient/Assets/Game/HotUpdate/Views/ActivityGetYuanXiao/ActivityGetYuanXiaoEntryView.cs

@@ -62,7 +62,7 @@ namespace GFGGame
         {
         {
             base.OnShown();
             base.OnShown();
             _valueBarController.OnShown();
             _valueBarController.OnShown();
-            _valueBarController.UpdateList(new List<int>() { PickUpGameArray.Instance.dataArray[0].comsumePassArr[0][0] });
+            _valueBarController.UpdateList(new List<int>() { ConstItemID .YUANXIAO_REWARD, ConstItemID.YUANXIAO_GAME_CONSUME});
 
 
             _ui.m_list.visible = false;
             _ui.m_list.visible = false;
             var result = await ActivityGetYuanXiaoProxy.ReqGetActivityGameInfos();
             var result = await ActivityGetYuanXiaoProxy.ReqGetActivityGameInfos();
@@ -223,6 +223,7 @@ namespace GFGGame
             int activityID = ActivityDataManager.Instance.GetCurOpenActiveByType(ActivityType.YuanXiao);
             int activityID = ActivityDataManager.Instance.GetCurOpenActiveByType(ActivityType.YuanXiao);
             if (activityID == 0)
             if (activityID == 0)
             {
             {
+                Hide();
                 return;
                 return;
             }
             }
 
 

+ 17 - 0
GameClient/Assets/Game/HotUpdate/Views/ActivityGetYuanXiao/ActivityGetYuanXiaoTaskView.cs

@@ -70,6 +70,7 @@ namespace GFGGame
         private void UpdateTask()
         private void UpdateTask()
         {
         {
             _cfgs = TaskDataManager.Instance.GetTaskCfgs(_funcType);
             _cfgs = TaskDataManager.Instance.GetTaskCfgs(_funcType);
+            SortList();
             _ui.m_itemList.numItems = _cfgs.Count;
             _ui.m_itemList.numItems = _cfgs.Count;
         }
         }
 
 
@@ -158,5 +159,21 @@ namespace GFGGame
             }
             }
             ViewManager.JumpToView(taskCfg.jumpId, param, false, false);
             ViewManager.JumpToView(taskCfg.jumpId, param, false, false);
         }
         }
+
+        public void SortList()
+        {
+            _cfgs.Sort((TaskCfg a, TaskCfg b) =>
+            {
+                // 如果都是未达到状态,则按照ID排序
+                if ((TaskDataManager.Instance.TaskInfosDic[a.id].State == TaskDataManager.Instance.TaskInfosDic[b.id].State)
+                && TaskDataManager.Instance.TaskInfosDic[a.id].State == 0)
+                    return a.id.CompareTo(b.id);
+
+                var stateA = TaskDataManager.Instance.TaskInfosDic[a.id].State == 1 ? 1 : -1;
+                var stateB = TaskDataManager.Instance.TaskInfosDic[b.id].State == 1 ? 1 : -1;
+                if (stateA > stateB) return -1;
+                return stateB > stateA ? 1 : TaskDataManager.Instance.TaskInfosDic[a.id].State.CompareTo(TaskDataManager.Instance.TaskInfosDic[b.id].State);
+            });
+        }
     }
     }
 }
 }

+ 11 - 0
GameClient/Assets/Game/HotUpdate/Views/ActivityGetYuanXiao/ActivityGetYuanXiaoView.cs

@@ -246,6 +246,7 @@ namespace GFGGame
             UpdateTime(null);
             UpdateTime(null);
             Timers.inst.Add(1, 0, UpdateTime);
             Timers.inst.Add(1, 0, UpdateTime);
             Timers.inst.AddUpdate(UpdateGame);
             Timers.inst.AddUpdate(UpdateGame);
+            Timers.inst.Add(1, 0, CheckActivityEnd);
         }
         }
 
 
         private async void PlayStartAnim()
         private async void PlayStartAnim()
@@ -427,6 +428,7 @@ namespace GFGGame
         {
         {
             Timers.inst.Remove(UpdateTime);
             Timers.inst.Remove(UpdateTime);
             Timers.inst.Remove(UpdateGame);
             Timers.inst.Remove(UpdateGame);
+            Timers.inst.Remove(CheckActivityEnd);
             ClearYuanXiaoList();
             ClearYuanXiaoList();
         }
         }
 
 
@@ -498,5 +500,14 @@ namespace GFGGame
             _effectUIDic.Add("YXJ_text_start", EffectUIPool.CreateEffectUI(_ui.m_startEffect, "ui_Activity", "YXJ_text_start"));
             _effectUIDic.Add("YXJ_text_start", EffectUIPool.CreateEffectUI(_ui.m_startEffect, "ui_Activity", "YXJ_text_start"));
             _effectUIDic.Add("YXJ_gameing_bg_tx", EffectUIPool.CreateEffectUI(_ui.m_bgEffect, "ui_Activity", "YXJ_gameing_bg_tx"));
             _effectUIDic.Add("YXJ_gameing_bg_tx", EffectUIPool.CreateEffectUI(_ui.m_bgEffect, "ui_Activity", "YXJ_gameing_bg_tx"));
         }
         }
+
+        private void CheckActivityEnd(object param)
+        {
+            if (!ActivityGetYuanXiaoDataManager.Instance.CheckOpen())
+            {
+                _ui.m_catcher.target.visible = false;
+                Hide();
+            }
+        }
     }
     }
 }
 }

+ 2 - 0
GameClient/Assets/Game/HotUpdate/Views/Common/Controller/ValueBarController.cs

@@ -225,6 +225,8 @@ namespace GFGGame
                 case ConstItemID.LUCKYBOX_ACTIVITY_STORE_COST_2:
                 case ConstItemID.LUCKYBOX_ACTIVITY_STORE_COST_2:
                 case ConstItemID.OPEN_SERVER_COST_1:
                 case ConstItemID.OPEN_SERVER_COST_1:
                 case ConstItemID.GET_TICKETS:
                 case ConstItemID.GET_TICKETS:
+                case ConstItemID.YUANXIAO_GAME_CONSUME:
+                case ConstItemID.YUANXIAO_REWARD:
                     button.m_imgAdd.visible = true;
                     button.m_imgAdd.visible = true;
                     break;
                     break;
                 default:
                 default:

BIN
GameClient/Assets/ResIn/UI/ActivityGetYuanXiao/ActivityGetYuanXiao_fui.bytes