浏览代码

每日任务

zhaoyang 3 年之前
父节点
当前提交
c2839e826c

+ 1 - 1
FGUIProject/assets/DailyTask/DailyTaskRewardUI.xml

@@ -10,6 +10,6 @@
       <item/>
       <item/>
     </list>
-    <text id="n5_kzte" name="n5" xy="281,488" size="374,54" fontSize="40" color="#aa946b" text="满足20活跃度可领取"/>
+    <text id="n5_kzte" name="txtDesc" xy="281,488" size="374,54" fontSize="40" color="#aa946b" text="满足20活跃度可领取"/>
   </displayList>
 </component>

+ 4 - 4
FGUIProject/assets/DailyTask/components/ListItem.xml

@@ -5,9 +5,9 @@
     <remark page="1" value="可领取"/>
     <remark page="2" value="已领取"/>
   </controller>
-  <controller name="c2" alias="是否跳转" pages="0,,1," selected="1"/>
+  <controller name="c2" alias="是否跳转" pages="0,,1," selected="0"/>
   <displayList>
-    <text id="n1_lh8v" name="txtDesc" xy="29,2" size="305,52" fontSize="38" color="#f4e2a9" text="任务描述任务描述"/>
+    <text id="n1_lh8v" name="txtDesc" xy="29,2" size="305,51" fontSize="38" color="#f4e2a9" text="任务描述任务描述"/>
     <component id="n3_lh8v" name="btnGet" src="lh8v3" fileName="components/Button1.xml" xy="680,53">
       <gearDisplay controller="c1" pages="2"/>
       <Button title="领取" icon="ui://5mpsibzzwet22c"/>
@@ -21,8 +21,8 @@
       <gearDisplay controller="c1" pages="3"/>
       <Button icon="ui://5mpsibzzwet22e"/>
     </component>
-    <text id="n5_lh8v" name="txtCount" xy="760,0" pivot="0.5,0" size="58,42" fontSize="30" color="#f4e2a9" align="center" text="0/5"/>
-    <list id="n7_wet2" name="listTaskReward" xy="52,80" size="361,53" layout="row" colGap="50" defaultItem="ui://5mpsibzzwet22j">
+    <text id="n5_lh8v" name="txtCount" xy="760,0" pivot="0.5,0" size="58,41" fontSize="30" color="#f4e2a9" align="center" text="0/5"/>
+    <list id="n7_wet2" name="listTaskReward" xy="52,80" size="361,53" layout="row" colGap="50" defaultItem="ui://5mpsibzzwet22j" autoClearItems="true">
       <item/>
       <item/>
     </list>

+ 37 - 1
GameClient/Assets/Game/HotUpdate/Data/DailyTaskDataManager.cs

@@ -107,8 +107,44 @@ namespace GFGGame
         public string GetTaskDesc(int taskId)
         {
             DailyTaskCfg taskCfg = DailyTaskCfgArray.Instance.GetCfg(taskId);
-            DailyActiveRewardCfg activeRewardCfg = DailyActiveRewardCfgArray.Instance.GetCfg(taskCfg.type);
+            DailyTaskTypeCfg activeRewardCfg = DailyTaskTypeCfgArray.Instance.GetCfg(taskCfg.type);
+            switch ((ConstDailyTaskType)activeRewardCfg.id)
+            {
+                case ConstDailyTaskType.CompleteInstanceZones:
+                    string name = "";
+                    name = EctypeCfgArray.Instance.GetCfgs(taskCfg.paramsArr[0])[0].typeName;
+                    if (taskCfg.paramsArr.Length > 1)
+                    {
+                        name = EctypeCfgArray.Instance.GetCfg(taskCfg.paramsArr[0], taskCfg.paramsArr[1]).subName;
+                    }
+                    return string.Format(activeRewardCfg.desc, taskCfg.count, name);
+
+                case ConstDailyTaskType.UseItem:
+                    ItemCfg cfg = ItemCfgArray.Instance.GetCfg(taskCfg.paramsArr[0]);
+                    return string.Format(activeRewardCfg.desc, taskCfg.count, cfg.name);
+
+                case ConstDailyTaskType.UpgradeCardLvl:
+                case ConstDailyTaskType.PlayLuckBox:
+                    return string.Format(activeRewardCfg.desc, taskCfg.count);
+            }
             return "";
         }
+        /// <summary>
+        /// 获取下一个奖励宝箱的活跃度
+        /// </summary>
+        /// <returns></returns>
+        public int GetShowLivenessBoxNum()
+        {
+            DailyActiveRewardCfg[] cfgs = DailyActiveRewardCfgArray.Instance.dataArray;
+            for (int i = 0; i < cfgs.Length; i++)
+            {
+                if (!_livenessBoxInfos.ContainsKey(cfgs[i].id) || _livenessBoxInfos[cfgs[i].id] != ConstBonusStatus.GOT)
+                {
+                    return cfgs[i].count;
+                }
+            }
+            int index = cfgs.Length - 1;
+            return cfgs[index].count;
+        }
     }
 }

+ 3 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/DailyTask/UI_DailyTaskRewardUI.cs

@@ -10,6 +10,7 @@ namespace UI.DailyTask
         public GImage m_bg;
         public GTextField m_txtName;
         public GList m_list;
+        public GTextField m_txtDesc;
         public const string URL = "ui://5mpsibzzlh8v7";
         public const string PACKAGE_NAME = "DailyTask";
         public const string RES_NAME = "DailyTaskRewardUI";
@@ -60,12 +61,14 @@ namespace UI.DailyTask
             m_bg = (GImage)comp.GetChild("bg");
             m_txtName = (GTextField)comp.GetChild("txtName");
             m_list = (GList)comp.GetChild("list");
+            m_txtDesc = (GTextField)comp.GetChild("txtDesc");
         }
         public void Dispose(bool disposeTarget = false)
         {
             m_bg = null;
             m_txtName = null;
             m_list = null;
+            m_txtDesc = null;
             if(disposeTarget && target != null)
             {
                 target.RemoveFromParent();

+ 1 - 1
GameClient/Assets/Game/HotUpdate/ServerProxy/DailyTaskSProxy.cs

@@ -78,7 +78,7 @@ namespace GFGGame
             }
             return false;
         }
-        public static async ETTask<bool> ReqAllDailyTaskBonus(List<int> itemIds, List<int> itemNums)
+        public static async ETTask<bool> ReqAllDailyTaskBonus()
         {
             M2C_GetAllDailyTaskBonus response = null;
             response = (M2C_GetAllDailyTaskBonus)await MessageHelper.SendToServer(new C2M_GetAllDailyTaskBonus());

+ 7 - 11
GameClient/Assets/Game/HotUpdate/Views/DailyTask/DailyTaskRewardView.cs

@@ -1,6 +1,7 @@
 
 using System.Collections.Generic;
 using FairyGUI;
+using UI.CommonGame;
 using UI.DailyTask;
 using UnityEngine;
 
@@ -26,7 +27,7 @@ namespace GFGGame
             viewAnimationType = EnumViewAnimationType.ZOOM_CENTER;
 
             _ui.m_list.itemRenderer = ListItemRender;
-            _ui.m_list.onClickItem.Add(OnClickListReward);
+            // _ui.m_list.onClickItem.Add(OnClickListReward);
         }
 
         protected override void OnShown()
@@ -34,6 +35,7 @@ namespace GFGGame
             base.OnShown();
             _cfg = this.viewData as DailyActiveRewardCfg;
             _ui.m_list.numItems = _cfg.rewardsArr.Length;
+            _ui.m_txtDesc.text = string.Format("满足{0}活跃度可领取", _cfg.count);
         }
 
         protected override void OnHide()
@@ -42,22 +44,16 @@ namespace GFGGame
         }
         private void ListItemRender(int index, GObject obj)
         {
-            UI_ListItem item = UI_ListItem.Proxy(obj);
-            item.target.data = _cfg.rewardsArr[index];
-
-            ItemData reward = new ItemData();
+            UI_ComItem item = UI_ComItem.Proxy(obj);
+            ItemData reward = ItemUtil.createItemData(_cfg.rewardsArr[index]);
             if (obj.data == null)
             {
                 obj.data = new ItemView(obj as GComponent);
             }
             (obj.data as ItemView).SetData(reward);
 
-            UI_ListItem.ClearProxy();
-        }
-        private void OnClickListReward(EventContext context)
-        {
-            ItemData data = (context.data as GObject).data as ItemData;
-            GoodsItemTipsController.ShowItemTips(data.id);
+            UI_ComItem.ClearProxy();
         }
+
     }
 }

+ 44 - 15
GameClient/Assets/Game/HotUpdate/Views/DailyTask/DailyTaskView.cs

@@ -32,6 +32,8 @@ namespace GFGGame
 
             _valueBarController = new ValueBarController(_ui.m_comValueBar);
 
+            _ui.m_btnback.onClick.Add(OnBtnBackClick);
+            _ui.m_btnGetAll.onClick.Add(OnBtnGetAllClick);
             _ui.m_list.itemRenderer = ListItemRender;
             _ui.m_listReward.itemRenderer = ListBoxRewardItemRender;
             _ui.m_listReward.onClickItem.Add(OnBoxRewardItemClick);
@@ -42,27 +44,38 @@ namespace GFGGame
             base.OnShown();
             _valueBarController.OnShown();
 
-            UpdateList();
             _rewardCfgs = new List<DailyActiveRewardCfg>(DailyActiveRewardCfgArray.Instance.dataArray);
-            _ui.m_listReward.numItems = _rewardCfgs.Count;
+            UpdateList();
+            UpdateReward();
         }
 
         protected override void OnHide()
         {
             base.OnHide();
         }
+
         private void UpdateList()
         {
             _cfgs = DailyTaskDataManager.Instance.GetDailyTaskCfgs();
+            _cfgs = new List<DailyTaskCfg>(DailyTaskCfgArray.Instance.dataArray);
             _ui.m_list.numItems = _cfgs.Count;
 
         }
+        private void UpdateReward()
+        {
+            _ui.m_listReward.numItems = _rewardCfgs.Count;
+            _ui.m_txtDesc0.text = string.Format("今日活跃度{0}", RoleDataManager.Liveness);
+            _ui.m_txtDesc1.text = string.Format(",满{0}活跃度可领奖", DailyTaskDataManager.Instance.GetShowLivenessBoxNum());
+            ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(ConstItemID.LIVENESS);
+            _ui.m_loaIcon.url = ResPathUtil.GetCommonGameResPath(itemCfg.res);
+
+        }
         private void ListItemRender(int index, GObject obj)
         {
             UI_ListItem item = UI_ListItem.Proxy(obj);
             item.m_c1.selectedIndex = DailyTaskDataManager.Instance.GetTaskStateById(_cfgs[index].id);
             item.m_c2.selectedIndex = _cfgs[index].jumpId == "" ? 0 : 1;
-
+            item.m_txtDesc.text = DailyTaskDataManager.Instance.GetTaskDesc(_cfgs[index].id);
             if (item.m_btnGet.data == null)
             {
                 item.m_btnGet.onClick.Add(OnBtnGetClick);
@@ -74,18 +87,19 @@ namespace GFGGame
             }
             item.m_btnGo.data = _cfgs[index].jumpId;
 
-            if (item.target.data == null)
+            if (item.m_listTaskReward.data == null)
             {
                 item.m_listTaskReward.itemRenderer = ListTaskRewardItemRender;
+                item.m_listTaskReward.data = _cfgs[index].rewardsArr;
                 item.m_listTaskReward.numItems = _cfgs[index].rewardsArr.Length;
             }
-            item.target.data = _cfgs[index].rewardsArr;
             UI_ListItem.ClearProxy();
         }
         private void ListTaskRewardItemRender(int index, GObject obj)
         {
+
             UI_ListTaskRewardItem item = UI_ListTaskRewardItem.Proxy(obj);
-            int[][] rewards = (int[][])item.target.data;
+            int[][] rewards = (int[][])item.target.parent.data;
 
             ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(rewards[index][0]);
             item.m_loaIcon.url = ResPathUtil.GetCommonGameResPath(itemCfg.res);
@@ -94,13 +108,13 @@ namespace GFGGame
         private async void OnBtnGetClick(EventContext context)
         {
             GObject btnGet = context.sender as GObject;
-
             bool result = await DailyTaskSProxy.ReqDailyTaskBonus((int)btnGet.data);
             if (result)
             {
                 UpdateList();
-            }
+                UpdateReward();
 
+            }
         }
         private void OnBtnGoClick(EventContext context)
         {
@@ -108,31 +122,30 @@ namespace GFGGame
             GObject btnGo = context.sender as GObject;
             ViewManager.Show(string.Format("GFGGame.{0}", btnGo.data), null, new object[] { typeof(DailyTaskView).Name, this.viewData });
         }
+
         private void ListBoxRewardItemRender(int index, GObject obj)
         {
             UI_ListBoxRewardItem item = UI_ListBoxRewardItem.Proxy(obj);
             DailyActiveRewardCfg cfg = _rewardCfgs[index];
             item.m_c1.selectedIndex = DailyTaskDataManager.Instance.GetBoxStateById(cfg.id);
             item.m_txtNum.text = cfg.count.ToString();
-            // if (item.target.data == null)
-            // {
-            //     item.target.onClick.Add(OnBoxRewardItemClick);
-            // }
+
             item.target.data = _rewardCfgs[index];
             UI_ListBoxRewardItem.ClearProxy();
         }
 
         private async void OnBoxRewardItemClick(EventContext context)
         {
-            GObject item = context.sender as GObject;
+            GObject item = context.data as GObject;
             DailyActiveRewardCfg cfg = item.data as DailyActiveRewardCfg;
-            // UI_ListRewardItem item = UI_ListRewardItem.Proxy(context.data as GObject);
+
             if (DailyTaskDataManager.Instance.GetBoxStateById(cfg.id) == ConstBonusStatus.CAN_GET)
             {
                 bool result = await DailyTaskSProxy.ReqLivenessBox(cfg.id);
                 if (result)
                 {
-                    _ui.m_listReward.numItems = _rewardCfgs.Count;
+                    UpdateReward();
+
                 }
             }
             else
@@ -140,5 +153,21 @@ namespace GFGGame
                 ViewManager.Show<DailyTaskRewardView>(item.data);
             }
         }
+
+        private void OnBtnBackClick()
+        {
+            ViewManager.GoBackFrom(typeof(DailyTaskView).Name);
+        }
+        private async void OnBtnGetAllClick()
+        {
+            bool result = await DailyTaskSProxy.ReqAllDailyTaskBonus();
+            if (result)
+            {
+                UpdateList();
+                UpdateReward();
+
+            }
+
+        }
     }
 }

二进制
GameClient/Assets/ResIn/Config/excelConfig.sqlite.bytes


二进制
GameClient/Assets/ResIn/UI/DailyTask/DailyTask_fui.bytes