Răsfoiți Sursa

feat 任务提交

Jae 2 ani în urmă
părinte
comite
223b7718e4
24 a modificat fișierele cu 269 adăugiri și 156 ștergeri
  1. 4 14
      FGUIProject/assets/Task/BattlePassRewardUI.xml
  2. 2 2
      FGUIProject/assets/Task/BuyBattlePassLevelUI.xml
  3. 3 3
      FGUIProject/assets/Task/components/BattlePassReward.xml
  4. 4 4
      FGUIProject/assets/Task/components/BattlePassRewardItem.xml
  5. 10 0
      FGUIProject/assets/Task/components/ButtonAdd.xml
  6. 10 0
      FGUIProject/assets/Task/components/ButtonReduce.xml
  7. 7 7
      FGUIProject/assets/Task/components/ExpProcess.xml
  8. 15 0
      FGUIProject/assets/Task/components/ExpProcess2.xml
  9. 4 1
      FGUIProject/assets/Task/package.xml
  10. 47 44
      GameClient/Assets/Game/HotUpdate/Constant/ConstMessage.cs
  11. 21 6
      GameClient/Assets/Game/HotUpdate/Data/BattlePassTaskDataManager.cs
  12. 1 1
      GameClient/Assets/Game/HotUpdate/Data/DailyTaskDataManager.cs
  13. 2 2
      GameClient/Assets/Game/HotUpdate/Data/TaskDataManager.cs
  14. 4 4
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/Task/UI_BuyBattlePassLevelUI.cs
  15. 1 4
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/Task/UI_ExpProcess.cs
  16. 13 6
      GameClient/Assets/Game/HotUpdate/ServerProxy/BattlePassTaskSProxy.cs
  17. 6 2
      GameClient/Assets/Game/HotUpdate/ServerProxy/CommonSProxy.cs
  18. 44 1
      GameClient/Assets/Game/HotUpdate/Utils/ItemUtil.cs
  19. 45 42
      GameClient/Assets/Game/HotUpdate/Views/Task/BattlePassTaskView.cs
  20. 23 11
      GameClient/Assets/Game/HotUpdate/Views/Task/BuyBattlePassLevelView.cs
  21. 3 2
      GameClient/Assets/Game/HotUpdate/Views/Task/OpenBattlePassView.cs
  22. BIN
      GameClient/Assets/ResIn/UI/Task/Task_atlas0!a.png
  23. BIN
      GameClient/Assets/ResIn/UI/Task/Task_atlas0.png
  24. BIN
      GameClient/Assets/ResIn/UI/Task/Task_fui.bytes

+ 4 - 14
FGUIProject/assets/Task/BattlePassRewardUI.xml

@@ -1,13 +1,13 @@
 <?xml version="1.0" encoding="utf-8"?>
 <component size="1080,1920" opaque="false">
-  <controller name="c1" pages="0,打开购买通行证,1,关闭购买通行证" selected="0"/>
+  <controller name="c1" pages="0,打开购买通行证,1,关闭购买通行证" selected="1"/>
   <displayList>
     <image id="n15_nd17" name="n15" src="uxxstmf" fileName="images/sj_dk.png" xy="0,240">
       <relation target="" sidePair="left-right"/>
     </image>
-    <text id="n19_nd17" name="LeftTime" xy="59,241" size="172,44" font="ui://eg2y0ldpa0cftks" fontSize="32" color="#fffaec" autoSize="none" text="9天1时5分"/>
+    <text id="n19_nd17" name="LeftTime" xy="59,240" size="172,44" font="ui://eg2y0ldpa0cftks" fontSize="32" color="#fffaec" autoSize="none" text="9天1时5分"/>
     <image id="n16_nd17" name="n16" src="o9gh4b" fileName="imagesNew/lm_tb_tishi.png" pkg="eg2y0ldp" xy="246,233" size="61,61"/>
-    <component id="n18_nd17" name="LevelProcess" src="nd173t" fileName="components/ExpProcess.xml" xy="107,601">
+    <component id="n18_nd17" name="LevelProcess" src="e3m1tnl" fileName="components/ExpProcess.xml" xy="107,601">
       <relation target="" sidePair="left-left"/>
       <ProgressBar value="50" max="100"/>
     </component>
@@ -33,17 +33,7 @@
     <text id="n30_nd17" name="n30" xy="667,701" size="132,44" font="ui://eg2y0ldpa0cftks" fontSize="32" color="#ae7034" align="center" autoSize="none" text="锦罗织造"/>
     <image id="n29_nd17" name="n29" src="9jv65m" fileName="imagesNew/lm_dt_zsx1.png" pkg="eg2y0ldp" xy="517,714"/>
     <image id="n28_nd17" name="n28" src="9jv65m" fileName="imagesNew/lm_dt_zsx1.png" pkg="eg2y0ldp" xy="822,714" flip="hz"/>
-    <list id="n48_nd17" name="RewardList" xy="2,748" size="1080,790" overflow="scroll" lineGap="10" defaultItem="ui://5mpsibzznd173u" autoClearItems="true">
-      <item/>
-      <item/>
-      <item/>
-      <item/>
-      <item/>
-      <item/>
-      <item/>
-      <item/>
-      <item/>
-    </list>
+    <list id="n48_nd17" name="RewardList" xy="2,747" size="1080,790" overflow="scroll" lineGap="10" defaultItem="ui://5mpsibzznd173u"/>
     <image id="n36_nd17" name="n36" src="uxxstmu" fileName="images/zsx_flower.png" xy="755,736" size="14,869"/>
     <image id="n26_nd17" name="n26" src="uxxstmc" fileName="images/txz_jlzz_db_jlzz.png" xy="1,1538" size="1080,217"/>
     <component id="n51_nd17" name="btnGetAll" src="rv091o" fileName="components/Button11.xml" pkg="eg2y0ldp" xy="408,1781" size="266,70">

+ 2 - 2
FGUIProject/assets/Task/BuyBattlePassLevelUI.xml

@@ -23,8 +23,8 @@
       <item/>
     </list>
     <text id="n9_or80" name="Tip" xy="447,558" size="171,39" fontSize="28" color="#b79f7d" vars="true" text="{startLeve=0}级提升至{endLevel=1}级"/>
-    <image id="n17_itts" name="Add" src="uxxstm6" fileName="images/an_jia.png" xy="674,490" group="n21_itts"/>
-    <image id="n18_itts" name="Reduce" src="uxxstmz" fileName="images/an_jian.png" xy="329,492" group="n21_itts"/>
+    <component id="n17_itts" name="Add" src="e3m1tnm" fileName="components/ButtonAdd.xml" xy="674,490" group="n21_itts"/>
+    <component id="n18_itts" name="Reduce" src="e3m1tnn" fileName="components/ButtonReduce.xml" xy="329,492" group="n21_itts"/>
     <component id="n22_itts" name="AddLevelBtn" src="ittstnk" fileName="components/BuyBattlePassLevelBt.xml" xy="402,490" group="n21_itts"/>
     <group id="n21_itts" name="n21" xy="329,490" size="406,62"/>
   </displayList>

+ 3 - 3
FGUIProject/assets/Task/components/BattlePassReward.xml

@@ -11,9 +11,9 @@
     <image id="n6_nd17" name="n6" src="uxxstm7" fileName="images/txz_lvl_db.png" xy="9,10"/>
     <component id="n7_nd17" name="NormalReward" src="nd1742" fileName="components/RewardIconBlue.xml" xy="203,11"/>
     <text id="n15_nd17" name="Level" xy="30,42" size="82,62" font="ui://eg2y0ldpa0cftks" fontSize="40" color="#c48624" align="center" autoSize="none" text="1"/>
-    <list id="n18_vixc" name="RewardList" xy="450,10" size="270,123" layout="row" overflow="hidden" scroll="horizontal" colGap="28" align="center" vAlign="middle">
-      <item url="ui://5mpsibzznd1743"/>
-      <item url="ui://5mpsibzznd1743"/>
+    <list id="n18_vixc" name="RewardList" xy="450,10" size="270,123" layout="row" overflow="hidden" scroll="horizontal" colGap="28" defaultItem="ui://5mpsibzznd1743" align="center" vAlign="middle">
+      <item/>
+      <item/>
     </list>
   </displayList>
 </component>

+ 4 - 4
FGUIProject/assets/Task/components/BattlePassRewardItem.xml

@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <component size="1080,153">
-  <controller name="c1" pages="0,未完成,1,可领取,2,已领取,3,继续领取" selected="1">
+  <controller name="c1" pages="0,未完成,1,可领取,2,已领取,3,继续领取" selected="0">
     <remark page="0" value="未完成"/>
     <remark page="1" value="可领取"/>
     <remark page="2" value="已领取"/>
@@ -28,9 +28,9 @@
       <Button title="继续领取" icon="ui://eg2y0ldpo9gh4k"/>
     </component>
     <text id="n15_nd17" name="Level" xy="30,42" size="82,62" font="ui://eg2y0ldpa0cftks" fontSize="40" color="#c48624" align="center" autoSize="none" text="1"/>
-    <list id="n18_vixc" name="RewardList" xy="450,10" size="270,123" layout="row" overflow="hidden" scroll="horizontal" colGap="28" align="center" vAlign="middle">
-      <item url="ui://5mpsibzznd1743"/>
-      <item url="ui://5mpsibzznd1743"/>
+    <list id="n18_vixc" name="RewardList" xy="450,10" size="270,123" layout="row" overflow="hidden" scroll="horizontal" colGap="28" defaultItem="ui://5mpsibzznd1743" align="center" vAlign="middle">
+      <item/>
+      <item/>
     </list>
   </displayList>
 </component>

+ 10 - 0
FGUIProject/assets/Task/components/ButtonAdd.xml

@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="utf-8"?>
+<component size="61,61" extention="Button">
+  <Button/>
+  <controller name="button" pages="0,up,1,down,2,over,3,selectedOver"/>
+  <displayList>
+    <image id="n0_e3m1" src="uxxstm6" name="n0" xy="0,0">
+      <relation target="" sidePair="width,height"/>
+    </image>
+  </displayList>
+</component>

+ 10 - 0
FGUIProject/assets/Task/components/ButtonReduce.xml

@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="utf-8"?>
+<component size="59,58" extention="Button">
+  <Button/>
+  <controller name="button" pages="0,up,1,down,2,over,3,selectedOver"/>
+  <displayList>
+    <image id="n0_e3m1" src="uxxstmz" name="n0" xy="0,0">
+      <relation target="" sidePair="width,height"/>
+    </image>
+  </displayList>
+</component>

+ 7 - 7
FGUIProject/assets/Task/components/ExpProcess.xml

@@ -1,15 +1,15 @@
 <?xml version="1.0" encoding="utf-8"?>
 <component size="346,22" extention="ProgressBar">
   <displayList>
-    <image id="n0_nd17" name="n0" src="uxxstmw" fileName="images/jyt_dk_2.png" xy="0,0" size="346,22">
+    <image id="n0_e3m1" name="n0" src="uxxstn2" fileName="images/jyt_dk.png" xy="0,0" size="346,22">
       <relation target="" sidePair="width-width,height-height"/>
     </image>
-    <image id="n1_nd17" name="ExpBar" src="uxxstmi" fileName="images/jyt_yellow.png" xy="0,1" size="346,19"/>
-    <image id="n2_nd17" name="n2" src="uxxstm7" fileName="images/txz_lvl_db.png" xy="-99,-50"/>
-    <text id="n3_nd17" name="n3" xy="-51,-23" size="40,31" font="ui://eg2y0ldpa0cftks" fontSize="20" color="#c48624" autoSize="none" text="LV."/>
-    <text id="n4_nd17" name="Level" xy="-50,-11" size="20,62" font="ui://eg2y0ldpa0cftks" fontSize="46" color="#c48624" align="center" autoSize="none" text="2"/>
-    <text id="n5_nd17" name="NumProcess" xy="49,-43" size="76,44" font="ui://eg2y0ldpa0cftks" fontSize="32" color="#7a4e22" align="center" letterSpacing="-1" vars="true" text="{value=0}/{maxValue=100}"/>
-    <image id="n6_nd17" name="n6" src="a0cf2h" fileName="imagesNew/lm_tb.png" pkg="eg2y0ldp" xy="6,-36"/>
+    <image id="n1_e3m1" name="bar" src="uxxstmi" fileName="images/jyt_yellow.png" xy="0,0" size="346,19"/>
+    <image id="n3_e3m1" name="n3" src="uxxstm7" fileName="images/txz_lvl_db.png" xy="-103,-54"/>
+    <text id="n4_e3m1" name="n4" xy="-55,-27" size="40,31" font="ui://eg2y0ldpa0cftks" fontSize="20" color="#c48624" autoSize="none" text="LV."/>
+    <text id="n5_e3m1" name="Level" xy="-54,-15" size="20,62" font="ui://eg2y0ldpa0cftks" fontSize="46" color="#c48624" align="center" autoSize="none" text="2"/>
+    <text id="n6_e3m1" name="NumProcess" xy="45,-47" size="76,44" font="ui://eg2y0ldpa0cftks" fontSize="32" color="#7a4e22" align="center" letterSpacing="-1" vars="true" text="{value=0}/{maxValue=100}"/>
+    <image id="n7_e3m1" name="n7" src="a0cf2h" fileName="imagesNew/lm_tb.png" pkg="eg2y0ldp" xy="2,-40"/>
   </displayList>
   <ProgressBar titleType="valueAndmax"/>
 </component>

+ 15 - 0
FGUIProject/assets/Task/components/ExpProcess2.xml

@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="utf-8"?>
+<component size="346,22" extention="ProgressBar">
+  <displayList>
+    <image id="n0_nd17" name="n0" src="uxxstn2" fileName="images/jyt_dk.png" xy="0,0" size="346,22">
+      <relation target="" sidePair="width-width,height-height"/>
+    </image>
+    <image id="n1_nd17" name="ExpBar" src="uxxstmi" fileName="images/jyt_yellow.png" xy="0,1" size="346,19"/>
+    <image id="n2_nd17" name="n2" src="uxxstm7" fileName="images/txz_lvl_db.png" xy="-99,-50"/>
+    <text id="n3_nd17" name="n3" xy="-51,-23" size="40,31" font="ui://eg2y0ldpa0cftks" fontSize="20" color="#c48624" autoSize="none" text="LV."/>
+    <text id="n4_nd17" name="Level" xy="-50,-11" size="20,62" font="ui://eg2y0ldpa0cftks" fontSize="46" color="#c48624" align="center" autoSize="none" text="2"/>
+    <text id="n5_nd17" name="NumProcess" xy="49,-43" size="76,44" font="ui://eg2y0ldpa0cftks" fontSize="32" color="#7a4e22" align="center" letterSpacing="-1" vars="true" text="{value=0}/{maxValue=100}"/>
+    <image id="n6_nd17" name="n6" src="a0cf2h" fileName="imagesNew/lm_tb.png" pkg="eg2y0ldp" xy="6,-36"/>
+  </displayList>
+  <ProgressBar/>
+</component>

+ 4 - 1
FGUIProject/assets/Task/package.xml

@@ -5,7 +5,7 @@
     <component id="fqor2n" name="TaskUI.xml" path="/" exported="true"/>
     <component id="fqor2p" name="CombTaskUI.xml" path="/" exported="true"/>
     <component id="nd173r" name="BattlePassRewardUI.xml" path="/" exported="true"/>
-    <component id="nd173t" name="ExpProcess.xml" path="/components/"/>
+    <component id="nd173t" name="ExpProcess2.xml" path="/components/"/>
     <component id="nd173u" name="BattlePassRewardItem.xml" path="/components/"/>
     <component id="nd1742" name="RewardIconBlue.xml" path="/components/"/>
     <component id="nd1743" name="RewardIconYellow.xml" path="/components/"/>
@@ -70,6 +70,9 @@
     <image id="ittstni" name="wz_gmzzdj.png" path="/images/"/>
     <component id="ittstnj" name="ButtonBuyBattlePassLevel.xml" path="/components/"/>
     <component id="ittstnk" name="BuyBattlePassLevelBt.xml" path="/components/"/>
+    <component id="e3m1tnl" name="ExpProcess.xml" path="/components/"/>
+    <component id="e3m1tnm" name="ButtonAdd.xml" path="/components/"/>
+    <component id="e3m1tnn" name="ButtonReduce.xml" path="/components/"/>
   </resources>
   <publish name="" path="../GameClient/Assets/ResIn/UI/Task" packageCount="2" genCode="true" extractAlpha="true"/>
 </packageDescription>

+ 47 - 44
GameClient/Assets/Game/HotUpdate/Constant/ConstMessage.cs

@@ -10,7 +10,7 @@ namespace GFGGame
         public const string ITEM_CHANGED = "ITEM_CHANGED";
         public const string ITEM_ATTRIBUTE_CHANGED = "ITEM_ATTRIBUTE_CHANGED";
 
-        public const string STORY_LEVEL_CHANGE = "STORY_LEVEL_CHANGE";//ͨ���¾�����¹ؿ�
+        public const string STORY_LEVEL_CHANGE = "STORY_LEVEL_CHANGE"; //ͨ���¾�����¹ؿ�
 
         public const string SUIT_BOX_STATUS_CHANGED = "SUIT_BOX_STATUS_CHANGED";
         public const string CJ_FINISH = "CJ_FINISH";
@@ -39,6 +39,7 @@ namespace GFGGame
         public const string CARD_UP_SKILL = "CARD_UP_SKILL";
         public const string NUMERIC_CHANGE = "NUMERIC_CHANGE";
         public const string LIVENESS_CHANGE = "LIVENESS_CHANGE";
+        public const string BATTLEPASS_LEVEL_CHANGE = "BATTLEPASS_LEVEL_CHANGE";
 
 
         public const string GET_SUIT_INFOS = "GET_SUIT_INFOS";
@@ -49,10 +50,10 @@ namespace GFGGame
         //����ս��������ɣ�չʾ����
         public const string STORY_FIGHT_QUICKLY_SUCCESS = "STORY_FIGHT_QUICKLY_SUCCESS";
 
-        public const string NOTICE_LIMIT_CHANGED = "NOTICE_LIMIT_CHANGED";//���ƴ����仯֪ͨ
+        public const string NOTICE_LIMIT_CHANGED = "NOTICE_LIMIT_CHANGED"; //���ƴ����仯֪ͨ
 
-        public const string FILING_SCORE_CHANGE = "FILING_SCORE_CHANGE";//���Ľ������������仯
-        public const string FILLING_CHANGE_CHAPTER = "FILLING_CHANGE_CHAPTER";//���Ľ����л�npc
+        public const string FILING_SCORE_CHANGE = "FILING_SCORE_CHANGE"; //���Ľ������������仯
+        public const string FILLING_CHANGE_CHAPTER = "FILLING_CHANGE_CHAPTER"; //���Ľ����л�npc
 
 
         public const string NOTICE_MAINSTORY_BOXBONUS_STATE = "NOTICE_MAINSTORY_BOXBONUS_STATE";
@@ -61,61 +62,63 @@ namespace GFGGame
 
         public const string LUCKY_BOX = "LUCKY_BOX";
 
-        public const string BUY_RECHARGE_SUCCESS = "BUY_RECHARGE_SUCCESS";//��ֵ�ɹ�
-        public const string BUY_GIFT_SUCCESS = "BUY_GIFT_SUCCESS";//��������ɹ�
-        public const string BUY_EXCHANGE_SUCCESS = "BUY_EXCHANGE_SUCCESS";//�̳Ƕһ��ɹ�
+        public const string BUY_RECHARGE_SUCCESS = "BUY_RECHARGE_SUCCESS"; //��ֵ�ɹ�
+        public const string BUY_GIFT_SUCCESS = "BUY_GIFT_SUCCESS"; //��������ɹ�
+        public const string BUY_EXCHANGE_SUCCESS = "BUY_EXCHANGE_SUCCESS"; //�̳Ƕһ��ɹ�
 
-        public const string LOGIN_SUCCESS = "LOGIN_SUCCESS";//��¼�ɹ�
-        public const string LOGIN_FAIL = "LOGIN_FAIL";//��¼ʧ��
-        public const string SERVER_CHANGE = "SERVER_CHANGE";//��������
+        public const string LOGIN_SUCCESS = "LOGIN_SUCCESS"; //��¼�ɹ�
+        public const string LOGIN_FAIL = "LOGIN_FAIL"; //��¼ʧ��
+        public const string SERVER_CHANGE = "SERVER_CHANGE"; //��������
 
-        public const string FIELD_RESULT = "FIELD_RESULT";//��Ұ����
-        public const string FIELD_TASK = "FIELD_TASK";//��Ұ����
+        public const string FIELD_RESULT = "FIELD_RESULT"; //��Ұ����
+        public const string FIELD_TASK = "FIELD_TASK"; //��Ұ����
 
-        public const string NOTICE_SYSTOM_ADD = "NOTICE_SYSTOM_ADD";//��������
-        public const string NOTICE_SYSTOM_REMOVE = "NOTICE_SYSTOM_REMOVE";//ɾ������
+        public const string NOTICE_SYSTOM_ADD = "NOTICE_SYSTOM_ADD"; //��������
+        public const string NOTICE_SYSTOM_REMOVE = "NOTICE_SYSTOM_REMOVE"; //ɾ������
 
-        public const string SUIT_GUIDE_BOX_BONUS = "SUIT_GUIDE_BOX_BONUS";//��ȡ��װ�ռ�����
-        public const string JUMP_TO_SOURCE = "JUMP_TO_SOURCE";//��ת����Դ
+        public const string SUIT_GUIDE_BOX_BONUS = "SUIT_GUIDE_BOX_BONUS"; //��ȡ��װ�ռ�����
+        public const string JUMP_TO_SOURCE = "JUMP_TO_SOURCE"; //��ת����Դ
 
-        public const string FINSH_GUIDE_INDEX = "FINSH_GUIDE_INDEX";//���һ������
-        public const string RED_CHANGE = "RED_CHANGE";//���仯��������ɾ��
+        public const string FINSH_GUIDE_INDEX = "FINSH_GUIDE_INDEX"; //���һ������
+        public const string RED_CHANGE = "RED_CHANGE"; //���仯��������ɾ��
 
-        public const string FRIEND_REFRESH = "FRIEND_REFRESH";//ˢ�º����б�
-        public const string FRIEND_ADD = "FRIEND_ADD";//��������
-        public const string FRIEND_REMOVE = "FRIEND_REMOVE";//ɾ������
-        public const string FRIEND_APPLY_CHANGE = "FRIEND_APPLY_CHANGE";//���������б��仯
+        public const string FRIEND_REFRESH = "FRIEND_REFRESH"; //ˢ�º����б�
+        public const string FRIEND_ADD = "FRIEND_ADD"; //��������
+        public const string FRIEND_REMOVE = "FRIEND_REMOVE"; //ɾ������
+        public const string FRIEND_APPLY_CHANGE = "FRIEND_APPLY_CHANGE"; //���������б��仯
 
-        public const string ITEM_READ = "ITEM_READ";//��Ʒ�Ѷ��ظ�
+        public const string ITEM_READ = "ITEM_READ"; //��Ʒ�Ѷ��ظ�
 
-        public const string POEM_PHOTO_INFOS_CHANGE = "POEM_PHOTO_INFOS_CHANGE";//������ݱ仯
+        public const string POEM_PHOTO_INFOS_CHANGE = "POEM_PHOTO_INFOS_CHANGE"; //������ݱ仯
 
-        public const string CHANGE_ROLE_NAME = "CHANGE_ROLE_NAME";//�޸��������
-        public const string CHANGE_ROLE_HEAD = "CHANGE_ROLE_HEAD";//�޸����ͷ��ͷ���
+        public const string CHANGE_ROLE_NAME = "CHANGE_ROLE_NAME"; //�޸��������
+        public const string CHANGE_ROLE_HEAD = "CHANGE_ROLE_HEAD"; //�޸����ͷ��ͷ���
 
-        public const string TRAVEL_STATE_CHANGE = "TRAVEL_STATE_CHANGE";//����״̬�仯
+        public const string TRAVEL_STATE_CHANGE = "TRAVEL_STATE_CHANGE"; //����״̬�仯
 
-        public const string GALLERY_DATA_CHANGE = "GALLERY_DATA_CHANGE";//�������ݱ仯
-        public const string GALLERY_RANK_DATA_CHANGE = "GALLERY_RANK_DATA_CHANGE";//�������а����ݱ仯
+        public const string GALLERY_DATA_CHANGE = "GALLERY_DATA_CHANGE"; //�������ݱ仯
+        public const string GALLERY_RANK_DATA_CHANGE = "GALLERY_RANK_DATA_CHANGE"; //�������а����ݱ仯
 
-        public const string DOWNLOAD_FINISH = "DOWNLOAD_FINISH";//�������
-        public const string DOWNLOAD_FINISH_ONE = "DOWNLOAD_FINISH_ONE";//�������һ��
+        public const string DOWNLOAD_FINISH = "DOWNLOAD_FINISH"; //�������
+        public const string DOWNLOAD_FINISH_ONE = "DOWNLOAD_FINISH_ONE"; //�������һ��
 
-        public const string ARENA_FIGHT_RESULT = "ARENA_FIGHT_RESULT";//������ս������
+        public const string ARENA_FIGHT_RESULT = "ARENA_FIGHT_RESULT"; //������ս������
+
+        public const string LEAGUE_MEMBER_CHANGE = "LEAGUE_MEMBER_CHANGE"; //���˳�Ա�仯
 
-        public const string LEAGUE_MEMBER_CHANGE = "LEAGUE_MEMBER_CHANGE";//���˳�Ա�仯
         // public const string LEAGUE_MEMBER_POS_CHANGE = "LEAGUE_MEMBER_POS_CHANGE";//���˳�Աְλ�仯
-        public const string LEAGUE_LOG_CHANGE = "LEAGUE_LOG_CHANGE";//������־�仯
-        public const string LEAGUE_INFO_CHANGE = "LEAGUE_INFO_CHANGE";//������Ϣ�仯
-        public const string LEAGUE_NUMBERIC_CHANGE = "LEAGUE_NUMBERIC_CHANGE";//������ֵ�仯
-        public const string LEAGUE_ANSWER_MEMBER_CHANGE = "LEAGUE_ANSWER_MEMBER_CHANGE";//���˼����˳������Ŀ
-        public const string LEAGUE_ANSWER_RESULT_CHANGE = "LEAGUE_ANSWER_RESULT_CHANGE";//�������˴����Ŀ
-        public const string LEAGUE_ANSWER_START = "LEAGUE_ANSWER_START";//������һ�ִ��⿪ʼ
-        public const string LEAGUE_ANSWER_END = "LEAGUE_ANSWER_END";//���˱��ִ������
-        // public const string LEAGUE_ANSWER_STATE_CHANGE = "LEAGUE_ANSWER_STATE_CHANGE";//���˴���״̬����
-        public const string OTHER_ROLE_INFO_CHANGE = "OTHER_ROLE_INFO_CHANGE";//���������Ϣ�仯
-        public const string NOTICE_CHAT_MESSAGE = "NOTICE_CHAT_MESSAGE";//֪ͨ������Ϣ
-        public const string ACTIVE_SKILL = "ACTIVE_SKILL";//���ܼ���
+        public const string LEAGUE_LOG_CHANGE = "LEAGUE_LOG_CHANGE"; //������־�仯
+        public const string LEAGUE_INFO_CHANGE = "LEAGUE_INFO_CHANGE"; //������Ϣ�仯
+        public const string LEAGUE_NUMBERIC_CHANGE = "LEAGUE_NUMBERIC_CHANGE"; //������ֵ�仯
+        public const string LEAGUE_ANSWER_MEMBER_CHANGE = "LEAGUE_ANSWER_MEMBER_CHANGE"; //���˼����˳������Ŀ
+        public const string LEAGUE_ANSWER_RESULT_CHANGE = "LEAGUE_ANSWER_RESULT_CHANGE"; //�������˴����Ŀ
+        public const string LEAGUE_ANSWER_START = "LEAGUE_ANSWER_START"; //������һ�ִ��⿪ʼ
 
+        public const string LEAGUE_ANSWER_END = "LEAGUE_ANSWER_END"; //���˱��ִ������
+
+        // public const string LEAGUE_ANSWER_STATE_CHANGE = "LEAGUE_ANSWER_STATE_CHANGE";//���˴���״̬����
+        public const string OTHER_ROLE_INFO_CHANGE = "OTHER_ROLE_INFO_CHANGE"; //���������Ϣ�仯
+        public const string NOTICE_CHAT_MESSAGE = "NOTICE_CHAT_MESSAGE"; //֪ͨ������Ϣ
+        public const string ACTIVE_SKILL = "ACTIVE_SKILL"; //���ܼ���
     }
 }

+ 21 - 6
GameClient/Assets/Game/HotUpdate/Data/BattlePassTaskDataManager.cs

@@ -7,23 +7,22 @@ namespace GFGGame
     public class BattlePassTaskDataManager : Singleton<BattlePassTaskDataManager>
     {
         //通行证赛季Id
-        private int SeasonId = 0;
+        private int SeasonId;
 
         //是否购买通行证
-        private bool IsBuy = false;
+        private bool IsBuy;
 
-
-        private long SeasonEndTime = 0;
+        private long SeasonEndTime;
 
         private SelectionCache<int, int> selectionCache;
 
-
         //已经领奖levelId
         private HashSet<int> NormalRewards = new HashSet<int>();
 
         //已经高级领奖levelId
         private HashSet<int> SuperRewards = new HashSet<int>();
 
+        //所有特别奖励
         private List<KeyValuePair<int, long>> tempItems = new List<KeyValuePair<int, long>>();
 
         public int GetSeasonId()
@@ -140,11 +139,27 @@ namespace GFGGame
                 items.TryGetValue(itemsInfo[0], out var num);
                 items[itemsInfo[0]] = num + itemsInfo[1];
             }
-            // items 装成 KeyValuePair<int,long> 
             foreach (var item in items)
             {
                 tempItems.Add(item);
             }
         }
+
+        //获取升级奖励
+        public int[][] GetUpLevelReward(int upLevel)
+        {
+            var battlePassLevel = GetBattlePassLevel();
+            var seasonId = GetSeasonId();
+            int[][] rs = null;
+            for (var i = upLevel; i > 0; i--)
+            {
+                var passLevel = battlePassLevel + i;
+                var cfg = BattlePassCfgArray.Instance.GetCfgByidAndlevel(seasonId, passLevel);
+                if (cfg == null) continue;
+                var mergeBonus = ItemUtil.MergeBonus(cfg.bonusNormalArr, cfg.bonusSpecialArr);
+                rs = ItemUtil.MergeBonus(rs, mergeBonus);
+            }
+            return rs;
+        }
     }
 }

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

@@ -6,7 +6,7 @@ namespace GFGGame
     public class DailyTaskDataManager : SingletonBase<DailyTaskDataManager>
     {
         private Dictionary<int, int> _livenessBoxInfos = new Dictionary<int, int>();
-        public Dictionary<int, int> LivenessBoxInfos => _livenessBoxInfos;
+        // public Dictionary<int, int> LivenessBoxInfos => _livenessBoxInfos;
 
         public void Clear()
         {

+ 2 - 2
GameClient/Assets/Game/HotUpdate/Data/TaskDataManager.cs

@@ -40,11 +40,11 @@ namespace GFGGame
             if (taskInfo == null)
             {
                 TaskInfosDic.Add(taskId, info);
-                TaskType2TaskIdListDic.TryGetValue(cfg.type, out var taskIds);
+                TaskType2TaskIdListDic.TryGetValue(cfg.taskType, out var taskIds);
                 if (taskIds == null)
                 {
                     taskIds = new List<int>();
-                    TaskType2TaskIdListDic.Add(cfg.type, taskIds);
+                    TaskType2TaskIdListDic.Add(cfg.taskType, taskIds);
                 }
                 taskIds.Add(taskId);
             }

+ 4 - 4
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/Task/UI_BuyBattlePassLevelUI.cs

@@ -10,8 +10,8 @@ namespace UI.Task
         public GButton m_CloseBtn;
         public GList m_Rewards;
         public GTextField m_Tip;
-        public GImage m_Add;
-        public GImage m_Reduce;
+        public GButton m_Add;
+        public GButton m_Reduce;
         public GButton m_AddLevelBtn;
         public const string URL = "ui://5mpsibzzor80tm1";
         public const string PACKAGE_NAME = "Task";
@@ -63,8 +63,8 @@ namespace UI.Task
             m_CloseBtn = (GButton)comp.GetChild("CloseBtn");
             m_Rewards = (GList)comp.GetChild("Rewards");
             m_Tip = (GTextField)comp.GetChild("Tip");
-            m_Add = (GImage)comp.GetChild("Add");
-            m_Reduce = (GImage)comp.GetChild("Reduce");
+            m_Add = (GButton)comp.GetChild("Add");
+            m_Reduce = (GButton)comp.GetChild("Reduce");
             m_AddLevelBtn = (GButton)comp.GetChild("AddLevelBtn");
         }
         public void Dispose(bool disposeTarget = false)

+ 1 - 4
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/Task/UI_ExpProcess.cs

@@ -7,10 +7,9 @@ namespace UI.Task
     public partial class UI_ExpProcess
     {
         public GProgressBar target;
-        public GImage m_ExpBar;
         public GTextField m_Level;
         public GTextField m_NumProcess;
-        public const string URL = "ui://5mpsibzznd173t";
+        public const string URL = "ui://5mpsibzze3m1tnl";
         public const string PACKAGE_NAME = "Task";
         public const string RES_NAME = "ExpProcess";
         private static UI_ExpProcess _proxy;
@@ -57,13 +56,11 @@ namespace UI.Task
 
         private void Init(GComponent comp)
         {
-            m_ExpBar = (GImage)comp.GetChild("ExpBar");
             m_Level = (GTextField)comp.GetChild("Level");
             m_NumProcess = (GTextField)comp.GetChild("NumProcess");
         }
         public void Dispose(bool disposeTarget = false)
         {
-            m_ExpBar = null;
             m_Level = null;
             m_NumProcess = null;
             if(disposeTarget && target != null)

+ 13 - 6
GameClient/Assets/Game/HotUpdate/ServerProxy/BattlePassTaskSProxy.cs

@@ -74,58 +74,65 @@ namespace GFGGame
         }
 
         //C2S_GetBattlePassReward
-        public static async ETTask GetBattlePassReward(int level)
+        public static async ETTask<bool> GetBattlePassReward(int level)
         {
             var response =
                 (S2C_GetBattlePassReward)await MessageHelper.SendToServer(new C2S_GetBattlePassReward { Id = level });
-            if (!(response is { Error: ErrorCode.ERR_Success })) return;
+            if (!(response is { Error: ErrorCode.ERR_Success })) return false;
             var responseGetType = response.Type;
             //获取通行证奖励配置
             var passCfg =
                 BattlePassCfgArray.Instance.GetCfgByidAndlevel(BattlePassTaskDataManager.Instance.GetSeasonId(), level);
-            if (passCfg == null) return;
+            if (passCfg == null) return false;
             var passCfgBonusNormalArr = passCfg.bonusNormalArr;
             var passCfgBonusSuperArr = passCfg.bonusSpecialArr;
             var bonusList = new List<ItemData>();
             if (MathHelper.isBitSet(responseGetType, 1))
             {
                 bonusList.AddRange(ItemUtil.CreateItemDataList(passCfgBonusNormalArr));
+                BattlePassTaskDataManager.Instance.AddNormalReward(level);
             }
             if (MathHelper.isBitSet(responseGetType, 2))
             {
                 bonusList.AddRange(ItemUtil.CreateItemDataList(passCfgBonusSuperArr));
+                BattlePassTaskDataManager.Instance.AddSuperReward(level);
             }
             BonusController.TryShowBonusList(bonusList);
+            return true;
         }
 
         //C2S_GetAllBattlePassReward
-        public static async ETTask GetAllBattlePassReward()
+        public static async ETTask<bool> GetAllBattlePassReward()
         {
             var response =
                 (S2C_GetAllBattlePassReward)await MessageHelper.SendToServer(new C2S_GetAllBattlePassReward());
-            if (!(response is { Error: ErrorCode.ERR_Success })) return;
+            if (!(response is { Error: ErrorCode.ERR_Success })) return false;
             var normalLevels = response.Levels;
             var superLevels = response.SuperLevels;
             var levels = new HashSet<int>();
             levels.UnionWith(normalLevels);
             levels.UnionWith(superLevels);
             var bonusList = new List<ItemData>();
+            var dataManager = BattlePassTaskDataManager.Instance;
             foreach (var level in levels)
             {
                 //获取通行证奖励配置
                 var passCfg =
-                    BattlePassCfgArray.Instance.GetCfgByidAndlevel(BattlePassTaskDataManager.Instance.GetSeasonId(),
+                    BattlePassCfgArray.Instance.GetCfgByidAndlevel(dataManager.GetSeasonId(),
                         level);
                 if (normalLevels.Contains(level))
                 {
                     bonusList.AddRange(ItemUtil.CreateItemDataList(passCfg.bonusNormalArr));
+                    dataManager.AddNormalReward(level);
                 }
                 if (superLevels.Contains(level))
                 {
                     bonusList.AddRange(ItemUtil.CreateItemDataList(passCfg.bonusSpecialArr));
+                    dataManager.AddSuperReward(level);
                 }
             }
             BonusController.TryShowBonusList(bonusList);
+            return true;
         }
 
         //购买等级 C2S_BuyBattlePassLevel

+ 6 - 2
GameClient/Assets/Game/HotUpdate/ServerProxy/CommonSProxy.cs

@@ -7,13 +7,14 @@ namespace ET
     {
         protected override async ETTask Run(Session session, M2C_NoticeUnitNumeric message)
         {
-            int oldValue = GameGlobal.myNumericComponent.GetAsInt(message.NumericType);
+            var oldValue = GameGlobal.myNumericComponent.GetAsInt(message.NumericType);
             GameGlobal.myNumericComponent.Set(message.NumericType, message.NewValue);
 
             switch (message.NumericType)
             {
                 case NumericType.Lvl:
-                    FunctionOpenDataManager.Instance.CheckHasLvFunOpen((int)message.NewValue, oldValue);//等级变化要加测是否有功能开启
+                    FunctionOpenDataManager.Instance.CheckHasLvFunOpen((int)message.NewValue,
+                        oldValue); //等级变化要加测是否有功能开启
                     RoleDataManager.RoleLvUp(oldValue);
                     break;
                 case NumericType.Power:
@@ -22,6 +23,9 @@ namespace ET
                 case NumericType.Liveness:
                     EventAgent.DispatchEvent(ConstMessage.LIVENESS_CHANGE);
                     break;
+                case NumericType.PassLevel:
+                    EventAgent.DispatchEvent(ConstMessage.BATTLEPASS_LEVEL_CHANGE);
+                    break;
             }
             EventAgent.DispatchEvent(ConstMessage.NUMERIC_CHANGE, message.NumericType);
             EventAgent.DispatchEvent(ConstMessage.RED_CHANGE, message.NumericType);

+ 44 - 1
GameClient/Assets/Game/HotUpdate/Utils/ItemUtil.cs

@@ -166,7 +166,7 @@ namespace GFGGame
             return hasNum >= num;
         }
 
-        public static Boolean CheckItemEnough(int[][] items, int count=1)
+        public static Boolean CheckItemEnough(int[][] items, int count = 1)
         {
             return items.All(item => CheckItemEnough(item[0], item[1] * count));
         }
@@ -277,5 +277,48 @@ namespace GFGGame
             item.m_loaTag.url = ResPathUtil.GetCommonGameResPath("fzd_bqbq_" + tagType);
             UI_ComTag.ProxyEnd();
         }
+
+        /// <summary>
+        /// 合并奖励配置,会将同一物品id的奖励合并
+        /// </summary>
+        public static int[][] MergeBonus(int[][] item1, int[][] item2)
+        {
+            Dictionary<int, int> dictionary = new Dictionary<int, int>();
+            if (item1 != null)
+            {
+                foreach (int[] item in item1)
+                {
+                    if (dictionary.ContainsKey(item[0]))
+                    {
+                        dictionary[item[0]] += item[1];
+                    }
+                    else
+                    {
+                        dictionary.Add(item[0], item[1]);
+                    }
+                }
+            }
+            if (item2 != null)
+            {
+                foreach (int[] item in item2)
+                {
+                    if (dictionary.ContainsKey(item[0]))
+                    {
+                        dictionary[item[0]] += item[1];
+                    }
+                    else
+                    {
+                        dictionary.Add(item[0], item[1]);
+                    }
+                }
+            }
+            int[][] result = new int[dictionary.Count][];
+            int i = 0;
+            foreach (KeyValuePair<int, int> item in dictionary)
+            {
+                result[i++] = new[] { item.Key, item.Value };
+            }
+            return result;
+        }
     }
 }

+ 45 - 42
GameClient/Assets/Game/HotUpdate/Views/Task/BattlePassTaskView.cs

@@ -2,7 +2,6 @@ using System.Collections.Generic;
 using ET;
 using FairyGUI;
 using UI.Task;
-using UnityEngine;
 
 namespace GFGGame
 {
@@ -12,17 +11,13 @@ namespace GFGGame
 
         private List<BattlePassCfg> _rewardCfgs;
 
-        private int maxShowIndex;
-
         public override void Dispose()
         {
-            maxShowIndex = 0;
             if (_ui != null)
             {
                 _ui.Dispose();
                 _ui = null;
             }
-
             base.Dispose();
         }
 
@@ -34,11 +29,11 @@ namespace GFGGame
             viewCom = _ui.target;
             isfullScreen = true;
             clickBlankToClose = false;
-
             _ui.m_btnOpen.onClick.Add(OnBtnOpenClick);
             _ui.m_btnBuyLevel.onClick.Add(OnBtnBuyLevel);
             _ui.m_btnGetAll.onClick.Add(OnBtnGetAllClick);
             _ui.m_RewardList.itemRenderer = ListBoxRewardItemRender;
+            _ui.m_RewardList.SetVirtual();
             _ui.m_SpecialReward.m_RewardList.itemRenderer = SpecialRewardRender;
         }
 
@@ -46,15 +41,18 @@ namespace GFGGame
         protected override void OnShown()
         {
             base.OnShown();
-            //获取通行证奖励配置
-            var seasonId = BattlePassTaskDataManager.Instance.GetSeasonId();
-            _rewardCfgs = new List<BattlePassCfg>(BattlePassCfgArray.Instance.GetCfgsByid(seasonId));
-            //去掉第一个为0的配置
-            _ui.m_RewardList.numItems = _rewardCfgs.Count - 1;
+            oldLevel = 0;
             SetSeasonLeftTime();
             SetBattlePassLevel();
             SetOpenBattlePassBtnStatus();
-            FreshSpecialReward();
+            FreshSpecialReward(oldLevel);
+        }
+
+        protected override void AddEventListener()
+        {
+            base.AddEventListener();
+            //监听通行证等级变化
+            EventAgent.AddEventListener(ConstMessage.BATTLEPASS_LEVEL_CHANGE, SetBattlePassLevel);
         }
 
 
@@ -70,24 +68,31 @@ namespace GFGGame
         }
 
         //领取奖励
-        private void OnBtnGetClick(EventContext context)
+        private async void OnBtnGetClick(EventContext context)
         {
-            //TODO
-            Log.Debug("领取奖励");
+            if (!(context.sender is GObject obj)) return;
+            var id = (int)obj.data;
+            var get = await BattlePassTaskSProxy.GetBattlePassReward(id);
+            if (!get) return;
+            SetBattlePassLevel();
         }
 
         //继续领取
-        private void OnBtnContinueClick(EventContext context)
+        private async void OnBtnContinueClick(EventContext context)
         {
-            //TODO
-            Log.Debug("继续领取");
+            if (!(context.sender is GObject obj)) return;
+            var id = (int)obj.data;
+            var get = await BattlePassTaskSProxy.GetBattlePassReward(id);
+            if (!get) return;
+            SetBattlePassLevel();
         }
 
         //领取全部奖励
-        private void OnBtnGetAllClick(EventContext context)
+        private async void OnBtnGetAllClick(EventContext context)
         {
-            //TODO
-            Log.Debug("领取全部奖励");
+            var get = await BattlePassTaskSProxy.GetAllBattlePassReward();
+            if (!get) return;
+            SetBattlePassLevel();
         }
 
         //前往
@@ -99,6 +104,7 @@ namespace GFGGame
             ViewManager.Show($"GFGGame.{btnGo.data}", null, new[] { typeof(TaskView).FullName, viewData }, true);
         }
 
+
         private void ListBoxRewardItemRender(int index, GObject obj)
         {
             var item = UI_BattlePassRewardItem.Proxy(obj);
@@ -118,12 +124,10 @@ namespace GFGGame
                     item.m_NormalReward.m_num.text = bonusNormalArr[0][1].ToString();
                 }
             }
-
             if (item.m_RewardList.data == null)
             {
                 item.m_RewardList.itemRenderer = SpecialRewardRender;
             }
-
             item.m_RewardList.data = battlePassCfg.bonusSpecialArr;
             item.m_RewardList.numItems = battlePassCfg.bonusSpecialArr.Length;
             //获取玩家当前的通行证等级
@@ -131,8 +135,8 @@ namespace GFGGame
             //设置按钮状态
             SetBtnState(item, battlePassCfg.id, state);
             item.target.data = battlePassCfg;
-            maxShowIndex = Mathf.Max(maxShowIndex, level);
             UI_BattlePassRewardItem.ProxyEnd();
+            FreshSpecialReward(level);
         }
 
         //SpecialRewardRender
@@ -140,11 +144,6 @@ namespace GFGGame
         {
             var item = UI_RewardIconYellow.Proxy(obj);
             var parentData = (int[][])obj.parent.data;
-            // if (!(obj.parent.data is int[][] parentData))
-            // {
-            //     UI_RewardIconYellow.ClearProxy();
-            //     return;
-            // }
             var itemInfo = parentData[index];
             var itemId = itemInfo[0];
             var num = itemInfo[1];
@@ -165,24 +164,19 @@ namespace GFGGame
             {
                 item.m_GetRewardBt.onClick.Add(OnBtnGetClick);
             }
-
             item.m_GetRewardBt.data = id;
-
             //继续领取
             if (item.m_ContinueBt.data == null)
             {
                 item.m_ContinueBt.onClick.Add(OnBtnContinueClick);
             }
-
+            item.m_ContinueBt.data = id;
             //前往
             if (item.m_ComeBt.data == null)
             {
                 item.m_ComeBt.onClick.Add(OnBtnGoClick);
             }
-
-            item.m_GetRewardBt.data = id;
-
-            item.m_GetRewardBt.data = id;
+            item.m_ComeBt.data = id;
         }
 
         //设置赛季剩余时间
@@ -210,37 +204,46 @@ namespace GFGGame
             //获取玩家当前的通行证等级
             var dataManager = BattlePassTaskDataManager.Instance;
             var battlePassLevel = dataManager.GetBattlePassLevel();
+            var seasonId = dataManager.GetSeasonId();
             var uiExpProcess = _ui.m_LevelProcess;
             uiExpProcess.m_Level.text = battlePassLevel.ToString();
             //获取当前等级的经验
             var battlePassCfg =
-                BattlePassCfgArray.Instance.GetCfgByidAndlevel(dataManager.GetSeasonId(),
-                    dataManager.GetBattlePassLevel());
+                BattlePassCfgArray.Instance.GetCfgByidAndlevel(seasonId, dataManager.GetBattlePassLevel());
             uiExpProcess.target.max = battlePassCfg.value;
             uiExpProcess.target.value = dataManager.GetBattlePassExp();
             uiExpProcess.m_NumProcess.SetVar("value", dataManager.GetBattlePassExp().ToString())
                 .SetVar("maxValue", battlePassCfg.value.ToString()).FlushVars();
+            //刷新奖励列表
+            _rewardCfgs = new List<BattlePassCfg>(BattlePassCfgArray.Instance.GetCfgsByid(seasonId));
+            //去掉第一个为0的配置
+            _ui.m_RewardList.numItems = _rewardCfgs.Count - 1;
         }
 
         private void SetOpenBattlePassBtnStatus()
         {
             //通行证是否购买
             var isBuy = BattlePassTaskDataManager.Instance.GetIsBuy();
-            _ui.m_c1.selectedIndex = isBuy ? 0 : 1;
+            _ui.m_c1.selectedIndex = isBuy ? 1 : 0;
         }
 
+        private int oldLevel;
+
         //刷新特别大奖展示
-        private void FreshSpecialReward()
+        private void FreshSpecialReward(int level)
         {
-            var battlePassCfg = BattlePassTaskDataManager.Instance.GetSpecialCfg(maxShowIndex);
+            var battlePassCfg = BattlePassTaskDataManager.Instance.GetSpecialCfg(level);
             var uiBattlePassReward = _ui.m_SpecialReward;
             if (battlePassCfg == null)
             {
                 uiBattlePassReward.target.visible = false;
                 return;
             }
+            var newLeve = battlePassCfg.level;
+            if (newLeve == oldLevel) return;
+            oldLevel = newLeve;
             uiBattlePassReward.target.visible = true;
-            uiBattlePassReward.m_Level.text = battlePassCfg.level.ToString();
+            uiBattlePassReward.m_Level.text = newLeve.ToString();
             //设置奖励
             var bonusNormalArr = battlePassCfg.bonusNormalArr;
             if (bonusNormalArr != null && bonusNormalArr.Length > 0)

+ 23 - 11
GameClient/Assets/Game/HotUpdate/Views/Task/BuyBattlePassLevelView.cs

@@ -1,4 +1,3 @@
-using System.Collections.Generic;
 using FairyGUI;
 using UI.Task;
 
@@ -37,22 +36,22 @@ namespace GFGGame
 
         protected override void OnShown()
         {
-            setLevel();
+            SetLevel();
             base.OnShown();
         }
 
         private static void SpecialRewardRender(int index, GObject obj)
         {
             var item = UI_RewardIconYellow.Proxy(obj);
-            var itemInfos = (List<KeyValuePair<int, long>>)obj.parent.data;
+            var itemInfos = (int[][])obj.parent.data;
             // if (!(obj.parent.data is int[][] parentData))
             // {
             //     UI_RewardIconYellow.ClearProxy();
             //     return;
             // }
             var itemInfo = itemInfos[index];
-            var itemId = itemInfo.Key;
-            var num = itemInfo.Value;
+            var itemId = itemInfo[0];
+            var num = itemInfo[1];
             var itemCfg = ItemCfgArray.Instance.GetCfg(itemId);
             if (itemCfg != null)
             {
@@ -62,14 +61,19 @@ namespace GFGGame
             UI_RewardIconYellow.ProxyEnd();
         }
 
-        private void setLevel()
+        private void SetLevel()
         {
-            var battlePassLevel = BattlePassTaskDataManager.Instance.GetBattlePassLevel();
-            _ui.m_Tip.SetVar("StartLevel", battlePassLevel.ToString())
-                .SetVar("EndLevel", (battlePassLevel + addLevel).ToString()).FlushVars();
+            var dataManager = BattlePassTaskDataManager.Instance;
+            var battlePassLevel = dataManager.GetBattlePassLevel();
+            _ui.m_Tip.SetVar("startLeve", battlePassLevel.ToString())
+                .SetVar("endLevel", (battlePassLevel + addLevel).ToString()).FlushVars();
             var globalCfgBattlePassLevelConsumeArr = GlobalCfgArray.globalCfg.BattlePassLevelConsumeArr;
             var count = globalCfgBattlePassLevelConsumeArr[0][1];
             _ui.m_AddLevelBtn.text = (addLevel * count).ToString();
+
+            var upLevelReward = dataManager.GetUpLevelReward(addLevel);
+            _ui.m_Rewards.data = upLevelReward;
+            _ui.m_Rewards.numItems = upLevelReward?.Length ?? 0;
         }
 
         private void OnReduceLevel(EventContext context)
@@ -79,12 +83,20 @@ namespace GFGGame
                 return;
             }
             addLevel -= 1;
-            setLevel();
+            SetLevel();
         }
 
         private void OnAddLevel(EventContext context)
         {
-               
+            var newLevel = addLevel + 1;
+            var dataManager = BattlePassTaskDataManager.Instance;
+            var cfg = BattlePassCfgArray.Instance.GetCfgByidAndlevel(dataManager.GetSeasonId(), newLevel);
+            if (cfg == null)
+            {
+                return;
+            }
+            addLevel = newLevel;
+            SetLevel();
         }
 
         private async void OnRequestAddLevel(EventContext context)

+ 3 - 2
GameClient/Assets/Game/HotUpdate/Views/Task/OpenBattlePassView.cs

@@ -49,12 +49,13 @@ namespace GFGGame
         private static void SpecialRewardRender(int index, GObject obj)
         {
             var item = UI_RewardIconYellow.Proxy(obj);
-            var itemInfo = (KeyValuePair<int, long>)obj.parent.data;
+            var itemInfos = (List<KeyValuePair<int, long>>)obj.parent.data;
             // if (!(obj.parent.data is int[][] parentData))
             // {
             //     UI_RewardIconYellow.ClearProxy();
             //     return;
             // }
+            var itemInfo = itemInfos[index];
             var itemId = itemInfo.Key;
             var num = itemInfo.Value;
             var itemCfg = ItemCfgArray.Instance.GetCfg(itemId);
@@ -70,8 +71,8 @@ namespace GFGGame
             //获取所有特别奖励数据
             var dataManager = BattlePassTaskDataManager.Instance;
             var allSpecialCfg = dataManager.GetAllSpecialCfg();
-            _ui.m_Rewards.numItems = allSpecialCfg.Count;
             _ui.m_Rewards.data = allSpecialCfg;
+            _ui.m_Rewards.numItems = allSpecialCfg.Count;
         }
     }
 }

BIN
GameClient/Assets/ResIn/UI/Task/Task_atlas0!a.png


BIN
GameClient/Assets/ResIn/UI/Task/Task_atlas0.png


BIN
GameClient/Assets/ResIn/UI/Task/Task_fui.bytes