Browse Source

Merge branch 'master' of http://10.108.64.190:3000/gfg/client

# Conflicts:
#	GameClient/Assets/ResIn/Config/excelConfig.sqlite.bytes
zhaoyang 2 years ago
parent
commit
0ef5bc6850
100 changed files with 1110 additions and 160 deletions
  1. 31 0
      FGUIProject/assets/Bag/GiftBoxSelectorUI.xml
  2. 13 0
      FGUIProject/assets/Bag/components/BtnAdd.xml
  3. 13 0
      FGUIProject/assets/Bag/components/BtnCancel.xml
  4. 13 0
      FGUIProject/assets/Bag/components/BtnReduce.xml
  5. 22 0
      FGUIProject/assets/Bag/components/BtnShowItemTips.xml
  6. 13 0
      FGUIProject/assets/Bag/components/BtnSub.xml
  7. 7 0
      FGUIProject/assets/Bag/components/ComItemNumBag.xml
  8. 12 0
      FGUIProject/assets/Bag/components/ListSelectorItem.xml
  9. BIN
      FGUIProject/assets/Bag/images/an_jia.png
  10. BIN
      FGUIProject/assets/Bag/images/an_jian.png
  11. BIN
      FGUIProject/assets/Bag/images/back.png
  12. BIN
      FGUIProject/assets/Bag/images/db_jiajian_1.png
  13. BIN
      FGUIProject/assets/Bag/images/lm_an__xuanzhong_1.png
  14. BIN
      FGUIProject/assets/Bag/images/lm_db_3.png
  15. BIN
      FGUIProject/assets/Bag/images/lm_dt_zsx1.png
  16. BIN
      FGUIProject/assets/Bag/images/lm_dt_zsx2.png
  17. BIN
      FGUIProject/assets/Bag/images/lm_zhuangshixian_duan.png
  18. BIN
      FGUIProject/assets/Bag/images/lm_zsx0.png
  19. BIN
      FGUIProject/assets/Bag/images/tanchuang_2.png
  20. BIN
      FGUIProject/assets/Bag/images/tc_wp_zz.png
  21. BIN
      FGUIProject/assets/Bag/images/wpk_db_1_da.png
  22. BIN
      FGUIProject/assets/Bag/images/wpk_sz_db_1.png
  23. BIN
      FGUIProject/assets/Bag/images/wplb_db.png
  24. 25 2
      FGUIProject/assets/Bag/package.xml
  25. BIN
      FGUIProject/assets/CommonGame/images/db_jiajian_1.png
  26. 2 0
      FGUIProject/assets/EnduringGiftBox/EnduringGiftBoxGold.xml
  27. 18 0
      FGUIProject/assets/EnduringGiftBox/EnduringGiftBoxPower.xml
  28. 11 0
      FGUIProject/assets/EnduringGiftBox/components/BtnCancel.xml
  29. 11 0
      FGUIProject/assets/EnduringGiftBox/components/BtnSub.xml
  30. BIN
      FGUIProject/assets/EnduringGiftBox/images/back.png
  31. BIN
      FGUIProject/assets/EnduringGiftBox/images/ch_db_gy.png
  32. BIN
      FGUIProject/assets/EnduringGiftBox/images/cz_an_blue.png
  33. BIN
      FGUIProject/assets/EnduringGiftBox/images/cz_an_grey.png
  34. BIN
      FGUIProject/assets/EnduringGiftBox/images/cz_an_pink.png
  35. BIN
      FGUIProject/assets/EnduringGiftBox/images/cz_an_yellow.png
  36. BIN
      FGUIProject/assets/EnduringGiftBox/images/cz_db.png
  37. BIN
      FGUIProject/assets/EnduringGiftBox/images/cz_gmjd_db.png
  38. BIN
      FGUIProject/assets/EnduringGiftBox/images/cz_jb_juese.png
  39. BIN
      FGUIProject/assets/EnduringGiftBox/images/cz_lb_db.png
  40. BIN
      FGUIProject/assets/EnduringGiftBox/images/cz_lbicon_db.png
  41. BIN
      FGUIProject/assets/EnduringGiftBox/images/cz_tl_juese.png
  42. BIN
      FGUIProject/assets/EnduringGiftBox/images/diban.png
  43. BIN
      FGUIProject/assets/EnduringGiftBox/images/fw.png
  44. BIN
      FGUIProject/assets/EnduringGiftBox/images/heart.png
  45. BIN
      FGUIProject/assets/EnduringGiftBox/images/kaikou.png
  46. BIN
      FGUIProject/assets/EnduringGiftBox/images/line.png
  47. BIN
      FGUIProject/assets/EnduringGiftBox/images/lm_dt_tsdb_2.png
  48. BIN
      FGUIProject/assets/EnduringGiftBox/images/mask.png
  49. BIN
      FGUIProject/assets/EnduringGiftBox/images/paper.png
  50. BIN
      FGUIProject/assets/EnduringGiftBox/images/small_paper.png
  51. BIN
      FGUIProject/assets/EnduringGiftBox/images/tape.png
  52. BIN
      FGUIProject/assets/EnduringGiftBox/images/tb_zk.png
  53. BIN
      FGUIProject/assets/EnduringGiftBox/images/text_kuang.png
  54. BIN
      FGUIProject/assets/EnduringGiftBox/images/zsx_flower1.png
  55. 35 0
      FGUIProject/assets/EnduringGiftBox/package.xml
  56. 4 14
      FGUIProject/assets/Task/BattlePassRewardUI.xml
  57. 2 2
      FGUIProject/assets/Task/BuyBattlePassLevelUI.xml
  58. 1 1
      FGUIProject/assets/Task/CombTaskUI.xml
  59. 3 3
      FGUIProject/assets/Task/components/BattlePassReward.xml
  60. 4 4
      FGUIProject/assets/Task/components/BattlePassRewardItem.xml
  61. 10 0
      FGUIProject/assets/Task/components/ButtonAdd.xml
  62. 10 0
      FGUIProject/assets/Task/components/ButtonReduce.xml
  63. 7 7
      FGUIProject/assets/Task/components/ExpProcess.xml
  64. 15 0
      FGUIProject/assets/Task/components/ExpProcess2.xml
  65. 4 1
      FGUIProject/assets/Task/package.xml
  66. 13 0
      GameClient/.idea/.idea.GameClient/.idea/.gitignore
  67. 4 0
      GameClient/.idea/.idea.GameClient/.idea/encodings.xml
  68. 8 0
      GameClient/.idea/.idea.GameClient/.idea/indexLayout.xml
  69. 6 0
      GameClient/.idea/.idea.GameClient/.idea/vcs.xml
  70. 47 44
      GameClient/Assets/Game/HotUpdate/Constant/ConstMessage.cs
  71. 21 6
      GameClient/Assets/Game/HotUpdate/Data/BattlePassTaskDataManager.cs
  72. 1 1
      GameClient/Assets/Game/HotUpdate/Data/DailyTaskDataManager.cs
  73. 9 0
      GameClient/Assets/Game/HotUpdate/Data/FriendDataManager.cs
  74. 4 0
      GameClient/Assets/Game/HotUpdate/Data/ItemDataManager.cs
  75. 1 1
      GameClient/Assets/Game/HotUpdate/Data/RedDotDataManager.cs
  76. 9 1
      GameClient/Assets/Game/HotUpdate/Data/RoleDataManager.cs
  77. 2 2
      GameClient/Assets/Game/HotUpdate/Data/TaskDataManager.cs
  78. 6 1
      GameClient/Assets/Game/HotUpdate/Data/VO/RoleLimitData.cs
  79. 71 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/Bag/UI_ComItemNumBag.cs
  80. 11 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/Bag/UI_ComItemNumBag.cs.meta
  81. 92 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/Bag/UI_GiftBoxSelectorUI.cs
  82. 11 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/Bag/UI_GiftBoxSelectorUI.cs.meta
  83. 84 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/Bag/UI_ListSelectorItem.cs
  84. 11 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/Bag/UI_ListSelectorItem.cs.meta
  85. 4 4
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/Task/UI_BuyBattlePassLevelUI.cs
  86. 1 4
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/Task/UI_ExpProcess.cs
  87. 13 6
      GameClient/Assets/Game/HotUpdate/ServerProxy/BattlePassTaskSProxy.cs
  88. 6 2
      GameClient/Assets/Game/HotUpdate/ServerProxy/CommonSProxy.cs
  89. 1 1
      GameClient/Assets/Game/HotUpdate/ServerProxy/FriendSProxy.cs
  90. 19 0
      GameClient/Assets/Game/HotUpdate/ServerProxy/ItemProxy.cs
  91. 44 1
      GameClient/Assets/Game/HotUpdate/Utils/ItemUtil.cs
  92. 1 1
      GameClient/Assets/Game/HotUpdate/Utils/ResPathUtil.cs
  93. 19 5
      GameClient/Assets/Game/HotUpdate/Views/Bag/BagView.cs
  94. 241 0
      GameClient/Assets/Game/HotUpdate/Views/Bag/GiftBoxSelectorView.cs
  95. 3 0
      GameClient/Assets/Game/HotUpdate/Views/Bag/GiftBoxSelectorView.cs.meta
  96. 1 1
      GameClient/Assets/Game/HotUpdate/Views/Common/Controller/ValueBarController.cs
  97. 1 1
      GameClient/Assets/Game/HotUpdate/Views/Friend/FriendView.cs
  98. 1 1
      GameClient/Assets/Game/HotUpdate/Views/Studio/StudioBaseView.cs
  99. 1 1
      GameClient/Assets/Game/HotUpdate/Views/Studio/StudioFilingView.cs
  100. 57 42
      GameClient/Assets/Game/HotUpdate/Views/Task/BattlePassTaskView.cs

+ 31 - 0
FGUIProject/assets/Bag/GiftBoxSelectorUI.xml

@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="utf-8"?>
+<component size="962,970">
+  <displayList>
+    <image id="n0_v5no" name="n0" src="v5notm5" fileName="images/tanchuang_2.png" xy="-61,-37" size="1023,1026"/>
+    <component id="n31_cu9w" name="btnCancel" src="cu9wtmj" fileName="components/BtnCancel.xml" xy="849,-29" group="n11_v5no"/>
+    <image id="n14_v5no" name="n14" src="v5notm0" fileName="images/lm_db_3.png" xy="331,135" size="575,274" group="n11_v5no"/>
+    <image id="n1_v5no" name="n1" src="v5notm1" fileName="images/lm_dt_zsx1.png" xy="243,72" group="n11_v5no"/>
+    <image id="n2_v5no" name="n2" src="v5notm2" fileName="images/lm_dt_zsx2.png" xy="587,71" group="n11_v5no"/>
+    <image id="n6_v5no" name="n6" src="v5notm9" fileName="images/wplb_db.png" xy="-9,76" group="n11_v5no"/>
+    <text id="n15_v5no" name="txtItemDes" xy="390,165" size="462,217" group="n11_v5no" fontSize="32" color="#b08d5c" leading="1" autoSize="ellipsis" text="摘星道具摘星道具摘星道具摘星道 具摘星道具摘星道具摘星道具"/>
+    <text id="n3_v5no" name="txtName" xy="376,53" size="210,54" group="n11_v5no" fontSize="40" color="#8d6f45" align="center" vAlign="middle" leading="1" autoSize="shrink" text="稀有升星材料(自选)"/>
+    <text id="n5_v5no" name="txtTotalNum" xy="725,86" size="206,41" group="n11_v5no" fontSize="28" color="#b08d5c" align="center" leading="1" autoSize="shrink" text="已拥有:1940"/>
+    <loader id="n7_v5no" name="loaIcon" xy="171,252" pivot="0.5,0.5" anchor="true" size="164,164" group="n11_v5no" aspect="true" autoSize="true"/>
+    <group id="n11_v5no" name="n11" xy="-9,-29" size="946,456"/>
+    <image id="n18_v5no" name="n18" src="v5notm4" fileName="images/lm_zsx0.png" xy="117,423" group="n21_v5no"/>
+    <text id="n19_v5no" name="n19" xy="378,422" size="206,44" group="n21_v5no" fontSize="32" color="#b69566" align="center" leading="1" autoSize="none" text="自选道具"/>
+    <list id="n20_v5no" name="list" xy="43,494" size="875,241" group="n21_v5no" layout="flow_vt" overflow="scroll" scroll="horizontal" colGap="20" defaultItem="ui://2bsz6nelv5notmb" align="center">
+      <item/>
+      <item/>
+      <item/>
+      <item/>
+      <item/>
+    </list>
+    <group id="n21_v5no" name="n21" xy="43,422" size="875,313"/>
+    <image id="n22_v5no" name="n22" src="v5notm3" fileName="images/lm_zhuangshixian_duan.png" xy="73,766" group="n27_v5no"/>
+    <text id="n24_v5no" name="txtSelRewardStr" xy="357,783" size="247,44" group="n27_v5no" fontSize="28" color="#915e15" align="center" leading="1" autoSize="none" text="已选奖励:0/8"/>
+    <component id="n30_cu9w" name="btnSub" src="cu9wtme" fileName="components/BtnSub.xml" xy="348,845" group="n27_v5no"/>
+    <group id="n27_v5no" name="n27" xy="73,766" size="816,161"/>
+  </displayList>
+  <transition name="t0"/>
+</component>

+ 13 - 0
FGUIProject/assets/Bag/components/BtnAdd.xml

@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8"?>
+<component size="51,50" extention="Button">
+  <controller name="button" pages="0,up,1,down,2,over,3,selectedOver" selected="0"/>
+  <displayList>
+    <image id="n0_cu9w" name="n0" src="v5notlw" fileName="images/an_jia.png" xy="0,0" size="51,50">
+      <relation target="" sidePair="width-width,height-height"/>
+    </image>
+    <text id="n1_cu9w" name="title" xy="0,0" size="51,50" fontSize="30" align="center" vAlign="middle" autoSize="none" singleLine="true" text="">
+      <relation target="" sidePair="width-width,height-height"/>
+    </text>
+  </displayList>
+  <Button/>
+</component>

+ 13 - 0
FGUIProject/assets/Bag/components/BtnCancel.xml

@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8"?>
+<component size="88,82" extention="Button">
+  <Button/>
+  <controller name="button" pages="0,up,1,down,2,over,3,selectedOver"/>
+  <displayList>
+    <image id="n0_cu9w" src="v5notly" name="n0" xy="0,0">
+      <relation target="" sidePair="width,height"/>
+    </image>
+    <text id="n1_cu9w" name="title" xy="0,0" size="88,82" fontSize="30" autoSize="none" align="center" vAlign="middle" singleLine="true">
+      <relation target="" sidePair="width,height"/>
+    </text>
+  </displayList>
+</component>

+ 13 - 0
FGUIProject/assets/Bag/components/BtnReduce.xml

@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8"?>
+<component size="51,50" extention="Button">
+  <controller name="button" pages="0,up,1,down,2,over,3,selectedOver" selected="0"/>
+  <displayList>
+    <image id="n0_cu9w" name="n0" src="v5notlx" fileName="images/an_jian.png" xy="0,0" size="51,50">
+      <relation target="" sidePair="width-width,height-height"/>
+    </image>
+    <text id="n1_cu9w" name="title" xy="0,0" size="51,50" fontSize="30" align="center" vAlign="middle" autoSize="none" singleLine="true" text="">
+      <relation target="" sidePair="width-width,height-height"/>
+    </text>
+  </displayList>
+  <Button/>
+</component>

+ 22 - 0
FGUIProject/assets/Bag/components/BtnShowItemTips.xml

@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<component size="172,172" extention="Button">
+  <Button/>
+  <controller name="button" pages="0,up,1,down,2,over,3,selectedOver"/>
+  <displayList>
+    <graph id="n0_cu9w" name="n0" xy="0,0" size="172,172" type="rect" lineSize="0" fillColor="#F0F0F0" touchable="false">
+      <gearDisplay controller="button" pages="0"/>
+      <relation target="" sidePair="width,height"/>
+    </graph>
+    <graph id="n1_cu9w" name="n1" xy="0,0" size="172,172" type="rect" lineSize="0" fillColor="#FAFAFA" touchable="false">
+      <gearDisplay controller="button" pages="2"/>
+      <relation target="" sidePair="width,height"/>
+    </graph>
+    <graph id="n2_cu9w" name="n2" xy="0,0" size="172,172" type="rect" lineSize="0" fillColor="#CCCCCC" touchable="false">
+      <gearDisplay controller="button" pages="1,3"/>
+      <relation target="" sidePair="width,height"/>
+    </graph>
+    <text id="n3_cu9w" name="title" xy="0,0" size="172,172" fontSize="30" autoSize="none" align="center" vAlign="middle" singleLine="true">
+      <relation target="" sidePair="width,height"/>
+    </text>
+  </displayList>
+</component>

+ 13 - 0
FGUIProject/assets/Bag/components/BtnSub.xml

@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8"?>
+<component size="265,82" extention="Button">
+  <controller name="button" pages="0,up,1,down,2,over,3,selectedOver" selected="0"/>
+  <displayList>
+    <image id="n0_cu9w" name="n0" src="v5notlz" fileName="images/lm_an__xuanzhong_1.png" xy="0,0">
+      <relation target="" sidePair="width-width,height-height"/>
+    </image>
+    <text id="n1_cu9w" name="title" xy="0,0" size="265,82" font="SourceHanSerifCN-Regular" fontSize="32" color="#683c28" align="center" vAlign="middle" autoSize="none" singleLine="true" text="使用">
+      <relation target="" sidePair="width-width,height-height"/>
+    </text>
+  </displayList>
+  <Button/>
+</component>

+ 7 - 0
FGUIProject/assets/Bag/components/ComItemNumBag.xml

@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<component size="166,45" overflow="hidden">
+  <displayList>
+    <image id="n1_v5no" name="n1" src="v5notm8" fileName="images/wpk_sz_db_1.png" xy="-21,0" size="208,45"/>
+    <text id="n2_v5no" name="txtNum" xy="29,3" size="107,42" fontSize="30" color="#ffffff" align="center" vAlign="middle" autoSize="none" text="120"/>
+  </displayList>
+</component>

+ 12 - 0
FGUIProject/assets/Bag/components/ListSelectorItem.xml

@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>
+<component size="172,241" overflow="hidden">
+  <displayList>
+    <image id="n0_v5no" name="n0" src="v5notm7" fileName="images/wpk_db_1_da.png" xy="0,1"/>
+    <image id="n2_v5no" name="n2" src="v5notmc" fileName="images/db_jiajian_1.png" xy="23,189"/>
+    <text id="n17_cu9w" name="txtSelNum" xy="56,184" size="60,53" fontSize="39" color="#915e15" align="center" autoSize="none" text="0"/>
+    <loader id="n11_v5no" name="loaIcon" xy="87,84" pivot="0.5,0.5" anchor="true" size="100,88" fill="scale"/>
+    <component id="n12_v5no" name="comItemNumBag" src="v5notmd" fileName="components/ComItemNumBag.xml" xy="8,120" size="155,45"/>
+    <component id="n15_cu9w" name="btnReduce" src="cu9wtmf" fileName="components/BtnReduce.xml" xy="-1,188"/>
+    <component id="n16_cu9w" name="btnAdd" src="cu9wtmg" fileName="components/BtnAdd.xml" xy="121,189"/>
+  </displayList>
+</component>

BIN
FGUIProject/assets/Bag/images/an_jia.png


BIN
FGUIProject/assets/Bag/images/an_jian.png


BIN
FGUIProject/assets/Bag/images/back.png


BIN
FGUIProject/assets/Bag/images/db_jiajian_1.png


BIN
FGUIProject/assets/Bag/images/lm_an__xuanzhong_1.png


BIN
FGUIProject/assets/Bag/images/lm_db_3.png


BIN
FGUIProject/assets/Bag/images/lm_dt_zsx1.png


BIN
FGUIProject/assets/Bag/images/lm_dt_zsx2.png


BIN
FGUIProject/assets/Bag/images/lm_zhuangshixian_duan.png


BIN
FGUIProject/assets/Bag/images/lm_zsx0.png


BIN
FGUIProject/assets/Bag/images/tanchuang_2.png


BIN
FGUIProject/assets/Bag/images/tc_wp_zz.png


BIN
FGUIProject/assets/Bag/images/wpk_db_1_da.png


BIN
FGUIProject/assets/Bag/images/wpk_sz_db_1.png


BIN
FGUIProject/assets/Bag/images/wplb_db.png


+ 25 - 2
FGUIProject/assets/Bag/package.xml

@@ -5,7 +5,30 @@
     <image id="si5zti3" name="wpbb_zi.png" path="/images/"/>
     <image id="si5zti4" name="wpbb_di.png" path="/images/"/>
     <image id="si5zti6" name="wpbb_xtxt.png" path="/images/"/>
-    <component id="si5zti7" name="ListItem.xml" path="/components/"/>
+    <component id="si5zti7" name="ListItem.xml" path="/components/" exported="true"/>
+    <component id="u85qtlv" name="GiftBoxSelectorUI.xml" path="/" exported="true"/>
+    <image id="v5notlw" name="an_jia.png" path="/images/"/>
+    <image id="v5notlx" name="an_jian.png" path="/images/"/>
+    <image id="v5notly" name="back.png" path="/images/"/>
+    <image id="v5notlz" name="lm_an__xuanzhong_1.png" path="/images/"/>
+    <image id="v5notm0" name="lm_db_3.png" path="/images/"/>
+    <image id="v5notm1" name="lm_dt_zsx1.png" path="/images/"/>
+    <image id="v5notm2" name="lm_dt_zsx2.png" path="/images/"/>
+    <image id="v5notm3" name="lm_zhuangshixian_duan.png" path="/images/"/>
+    <image id="v5notm4" name="lm_zsx0.png" path="/images/"/>
+    <image id="v5notm5" name="tanchuang_2.png" path="/images/"/>
+    <image id="v5notm6" name="tc_wp_zz.png" path="/images/"/>
+    <image id="v5notm7" name="wpk_db_1_da.png" path="/images/"/>
+    <image id="v5notm8" name="wpk_sz_db_1.png" path="/images/"/>
+    <image id="v5notm9" name="wplb_db.png" path="/images/"/>
+    <component id="v5notmb" name="ListSelectorItem.xml" path="/components/" exported="true"/>
+    <image id="v5notmc" name="db_jiajian_1.png" path="/images/"/>
+    <component id="v5notmd" name="ComItemNumBag.xml" path="/components/" exported="true"/>
+    <component id="cu9wtme" name="BtnSub.xml" path="/components/" exported="true"/>
+    <component id="cu9wtmf" name="BtnReduce.xml" path="/components/" exported="true"/>
+    <component id="cu9wtmg" name="BtnAdd.xml" path="/components/" exported="true"/>
+    <component id="cu9wtmj" name="BtnCancel.xml" path="/components/" exported="true"/>
+    <component id="cu9wtmk" name="BtnShowItemTips.xml" path="/components/"/>
   </resources>
-  <publish name="" path="../GameClient/Assets/ResIn/UI/Bag" packageCount="2" genCode="true" extractAlpha="true"/>
+  <publish name="" path="..\GameClient\Assets\ResIn\UI\Bag" packageCount="2" genCode="true" extractAlpha="true"/>
 </packageDescription>

BIN
FGUIProject/assets/CommonGame/images/db_jiajian_1.png


+ 2 - 0
FGUIProject/assets/EnduringGiftBox/EnduringGiftBoxGold.xml

@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="utf-8"?>
+<component size="962,970"/>

+ 18 - 0
FGUIProject/assets/EnduringGiftBox/EnduringGiftBoxPower.xml

@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="utf-8"?>
+<component size="1080,1118">
+  <displayList>
+    <image id="n0_qqhz" name="n0" src="qqhze" fileName="images/diban.png" xy="23,261" group="n7_qqhz"/>
+    <image id="n1_qqhz" name="n1" src="qqhza" fileName="images/kaikou.png" xy="37,62" group="n7_qqhz"/>
+    <image id="n3_qqhz" name="n3" src="qqhz4" fileName="images/tape.png" xy="-1,577" group="n7_qqhz"/>
+    <image id="n6_qqhz" name="n6" src="qqhzb" fileName="images/heart.png" xy="208,57" group="n7_qqhz" rotation="-0.5"/>
+    <image id="n5_qqhz" name="n5" src="qqhz5" fileName="images/small_paper.png" xy="261,405" group="n7_qqhz"/>
+    <image id="n2_qqhz" name="n2" src="qqhz6" fileName="images/paper.png" xy="30,366" group="n7_qqhz"/>
+    <image id="n8_qqhz" name="n8" src="qqhzp" fileName="images/cz_tl_juese.png" xy="23,-27" group="n7_qqhz"/>
+    <text id="n9_qqhz" name="n9" xy="481,164" size="444,154" group="n7_qqhz" fontSize="32" color="#915e15" align="center" autoSize="none" text="是否花费20粉钻购买60体力?&#xA;体力每5分钟恢复1点&#xA;(今日剩余购买次数:8/8)"/>
+    <component id="n12_qqhz" name="btnCancel" src="qqhzs" fileName="components/BtnCancel.xml" xy="362,327" group="n7_qqhz"/>
+    <component id="n14_qqhz" name="btnSub" src="qqhzu" fileName="components/BtnSub.xml" xy="648,327" group="n7_qqhz"/>
+    <text id="n15_qqhz" name="n15" xy="151,434" size="753,48" group="n7_qqhz" fontSize="28" color="#a67975" autoSize="none" text="除了上述购买体力的途径,我们还提供了更多的优惠礼包选择"/>
+    <image id="n16_qqhz" name="n16" src="qqhzg" fileName="images/cz_lb_db.png" xy="69,475" group="n7_qqhz"/>
+    <group id="n7_qqhz" name="n7" xy="-1,-27" size="1080,1105"/>
+  </displayList>
+</component>

+ 11 - 0
FGUIProject/assets/EnduringGiftBox/components/BtnCancel.xml

@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8"?>
+<component size="260,75" extention="Button">
+  <controller name="button" pages="0,up,1,down,2,over,3,selectedOver" selected="0"/>
+  <displayList>
+    <image id="n0_qqhz" name="n0" src="qqhzn" fileName="images/cz_an_blue.png" xy="0,0">
+      <relation target="" sidePair="width-width,height-height"/>
+    </image>
+    <text id="n1_qqhz" name="n1" xy="0,0" size="260,69" font="SourceHanSerifCN-SemiBold" fontSize="32" color="#fffdf4" align="center" vAlign="middle" autoSize="none" text="取消"/>
+  </displayList>
+  <Button/>
+</component>

+ 11 - 0
FGUIProject/assets/EnduringGiftBox/components/BtnSub.xml

@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8"?>
+<component size="260,75" extention="Button">
+  <controller name="button" pages="0,up,1,down,2,over,3,selectedOver" selected="0"/>
+  <displayList>
+    <image id="n0_qqhz" name="n0" src="qqhzl" fileName="images/cz_an_pink.png" xy="0,0">
+      <relation target="" sidePair="width-width,height-height"/>
+    </image>
+    <text id="n1_qqhz" name="n1" xy="0,0" size="260,69" font="SourceHanSerifCN-SemiBold" fontSize="32" color="#fffdf4" align="center" vAlign="middle" autoSize="none" text="确定"/>
+  </displayList>
+  <Button/>
+</component>

BIN
FGUIProject/assets/EnduringGiftBox/images/back.png


BIN
FGUIProject/assets/EnduringGiftBox/images/ch_db_gy.png


BIN
FGUIProject/assets/EnduringGiftBox/images/cz_an_blue.png


BIN
FGUIProject/assets/EnduringGiftBox/images/cz_an_grey.png


BIN
FGUIProject/assets/EnduringGiftBox/images/cz_an_pink.png


BIN
FGUIProject/assets/EnduringGiftBox/images/cz_an_yellow.png


BIN
FGUIProject/assets/EnduringGiftBox/images/cz_db.png


BIN
FGUIProject/assets/EnduringGiftBox/images/cz_gmjd_db.png


BIN
FGUIProject/assets/EnduringGiftBox/images/cz_jb_juese.png


BIN
FGUIProject/assets/EnduringGiftBox/images/cz_lb_db.png


BIN
FGUIProject/assets/EnduringGiftBox/images/cz_lbicon_db.png


BIN
FGUIProject/assets/EnduringGiftBox/images/cz_tl_juese.png


BIN
FGUIProject/assets/EnduringGiftBox/images/diban.png


BIN
FGUIProject/assets/EnduringGiftBox/images/fw.png


BIN
FGUIProject/assets/EnduringGiftBox/images/heart.png


BIN
FGUIProject/assets/EnduringGiftBox/images/kaikou.png


BIN
FGUIProject/assets/EnduringGiftBox/images/line.png


BIN
FGUIProject/assets/EnduringGiftBox/images/lm_dt_tsdb_2.png


BIN
FGUIProject/assets/EnduringGiftBox/images/mask.png


BIN
FGUIProject/assets/EnduringGiftBox/images/paper.png


BIN
FGUIProject/assets/EnduringGiftBox/images/small_paper.png


BIN
FGUIProject/assets/EnduringGiftBox/images/tape.png


BIN
FGUIProject/assets/EnduringGiftBox/images/tb_zk.png


BIN
FGUIProject/assets/EnduringGiftBox/images/text_kuang.png


BIN
FGUIProject/assets/EnduringGiftBox/images/zsx_flower1.png


+ 35 - 0
FGUIProject/assets/EnduringGiftBox/package.xml

@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="utf-8"?>
+<packageDescription id="bdi1qe15">
+  <resources>
+    <component id="qqhz0" name="EnduringGiftBoxGold.xml" path="/"/>
+    <component id="qqhz1" name="EnduringGiftBoxPower.xml" path="/"/>
+    <image id="qqhz2" name="back.png" path="/images/"/>
+    <image id="qqhz3" name="tb_zk.png" path="/images/"/>
+    <image id="qqhz4" name="tape.png" path="/images/"/>
+    <image id="qqhz5" name="small_paper.png" path="/images/"/>
+    <image id="qqhz6" name="paper.png" path="/images/"/>
+    <image id="qqhz7" name="mask.png" path="/images/"/>
+    <image id="qqhz8" name="lm_dt_tsdb_2.png" path="/images/"/>
+    <image id="qqhz9" name="line.png" path="/images/"/>
+    <image id="qqhza" name="kaikou.png" path="/images/"/>
+    <image id="qqhzb" name="heart.png" path="/images/"/>
+    <image id="qqhzc" name="fw.png" path="/images/"/>
+    <image id="qqhzd" name="text_kuang.png" path="/images/"/>
+    <image id="qqhze" name="diban.png" path="/images/"/>
+    <image id="qqhzf" name="cz_lbicon_db.png" path="/images/"/>
+    <image id="qqhzg" name="cz_lb_db.png" path="/images/"/>
+    <image id="qqhzh" name="cz_jb_juese.png" path="/images/"/>
+    <image id="qqhzi" name="cz_gmjd_db.png" path="/images/"/>
+    <image id="qqhzj" name="cz_db.png" path="/images/"/>
+    <image id="qqhzk" name="cz_an_yellow.png" path="/images/"/>
+    <image id="qqhzl" name="cz_an_pink.png" path="/images/"/>
+    <image id="qqhzm" name="cz_an_grey.png" path="/images/"/>
+    <image id="qqhzn" name="cz_an_blue.png" path="/images/"/>
+    <image id="qqhzo" name="ch_db_gy.png" path="/images/"/>
+    <image id="qqhzp" name="cz_tl_juese.png" path="/images/"/>
+    <image id="qqhzq" name="zsx_flower1.png" path="/images/"/>
+    <component id="qqhzs" name="BtnCancel.xml" path="/components/"/>
+    <component id="qqhzu" name="BtnSub.xml" path="/components/"/>
+  </resources>
+  <publish name=""/>
+</packageDescription>

+ 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>

+ 1 - 1
FGUIProject/assets/Task/CombTaskUI.xml

@@ -18,7 +18,7 @@
       <item/>
     </list>
     <image id="n21_ids4" name="n21" src="9jv66j" fileName="imagesNew/lm_zsx0.png" pkg="eg2y0ldp" xy="176,883"/>
-    <text id="n22_ids4" name="n22" xy="438,880" size="215,44" font="ui://eg2y0ldpa0cftks" fontSize="32" color="#915e15" align="center" vAlign="middle" letterSpacing="4" autoSize="none" text="每日5:00刷新"/>
+    <text id="n22_ids4" name="n22" xy="428,880" size="236,44" font="ui://eg2y0ldpa0cftks" fontSize="32" color="#915e15" align="center" vAlign="middle" letterSpacing="4" autoSize="none" text="每日5:00刷新"/>
     <image id="n17_ids4" name="n17" src="uxxstm8" fileName="images/yeqian_db.png" xy="302,804" size="491,72"/>
     <component id="n25_ids4" name="n25" src="ids44e" fileName="components/TabButton.xml" xy="294,805" group="n27_ids4">
       <Button checked="true" controller="c1" page="0"/>

+ 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>

+ 13 - 0
GameClient/.idea/.idea.GameClient/.idea/.gitignore

@@ -0,0 +1,13 @@
+# 默认忽略的文件
+/shelf/
+/workspace.xml
+# Rider 忽略的文件
+/modules.xml
+/contentModel.xml
+/.idea.GameClient.iml
+/projectSettingsUpdater.xml
+# 基于编辑器的 HTTP 客户端请求
+/httpRequests/
+# Datasource local storage ignored files
+/dataSources/
+/dataSources.local.xml

+ 4 - 0
GameClient/.idea/.idea.GameClient/.idea/encodings.xml

@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="Encoding" addBOMForNewFiles="with BOM under Windows, with no BOM otherwise" />
+</project>

+ 8 - 0
GameClient/.idea/.idea.GameClient/.idea/indexLayout.xml

@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="UserContentModel">
+    <attachedFolders />
+    <explicitIncludes />
+    <explicitExcludes />
+  </component>
+</project>

+ 6 - 0
GameClient/.idea/.idea.GameClient/.idea/vcs.xml

@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="VcsDirectoryMappings">
+    <mapping directory="$PROJECT_DIR$/.." vcs="Git" />
+  </component>
+</project>

+ 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()
         {

+ 9 - 0
GameClient/Assets/Game/HotUpdate/Data/FriendDataManager.cs

@@ -23,6 +23,15 @@ namespace GFGGame
             }
         }
 
+        //可领取体力的上限值
+        public int maxGetPowerCount
+        {
+            get
+            {
+                return GlobalCfgArray.globalCfg.maxGetPowerCount + GameGlobal.myNumericComponent.GetAsInt(ET.NumericType.MonthCardFriendPowerAdd);
+            }
+        }
+
         private Dictionary<long, FriendInfoData> _friendDic = new Dictionary<long, FriendInfoData>();//好友列表
         private List<FriendInfoData> _list = new List<FriendInfoData>();
         public List<FriendInfoData> FriendDatas

+ 4 - 0
GameClient/Assets/Game/HotUpdate/Data/ItemDataManager.cs

@@ -100,6 +100,10 @@ namespace GFGGame
                     {
                         BagDataManager.Instance.Remove(itemID);
                     }
+                    if (itemCfg.itemType == ConstItemType.GIFT_BAG)
+                    {
+                        BagDataManager.Instance.Remove(itemID);
+                    }
                     if (itemCfg.itemType == ConstItemType.HEAD)
                     {
                         RoleInfoManager.Instance.Remove(itemID);

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

@@ -116,7 +116,7 @@ namespace GFGGame
         /// <returns></returns>
         public bool GetFriendGiftRed()
         {
-            if (FriendDataManager.Instance.Count >= GlobalCfgArray.globalCfg.maxGetPowerCount) return false;
+            if (FriendDataManager.Instance.Count >= FriendDataManager.Instance.maxGetPowerCount) return false;
 
             List<FriendInfoData> friendInfos = FriendDataManager.Instance.FriendDatas;
             for (int i = 0; i < friendInfos.Count; i++)

+ 9 - 1
GameClient/Assets/Game/HotUpdate/Data/RoleDataManager.cs

@@ -44,6 +44,14 @@ namespace GFGGame
             }
         }
 
+        public static int powerLimit
+        {
+            get
+            {
+                return GameGlobal.myNumericComponent.GetAsInt(NumericType.PowerLimit) + GameGlobal.myNumericComponent.GetAsInt(NumericType.MonthCardPowerLimitAdd);
+            }
+        }
+
         public static long gold
         {
             get
@@ -186,7 +194,7 @@ namespace GFGGame
 
         public static bool CheckPowerFull()
         {
-            return RoleDataManager.power >= GameGlobal.myNumericComponent.GetAsInt(NumericType.PowerLimit);
+            return RoleDataManager.power >= powerLimit;
         }
 
         public static void InitServerData()

+ 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);
             }

+ 6 - 1
GameClient/Assets/Game/HotUpdate/Data/VO/RoleLimitData.cs

@@ -4,7 +4,6 @@ namespace GFGGame
 {
     public class RoleLimitData
     {
-
         /// <summary>
         /// 已购买次数
         /// </summary>
@@ -20,11 +19,17 @@ namespace GFGGame
         /// </summary>
         public int TotalPlayMax;
 
+        /// <summary>
+        /// 重置时相对于配置额外的挑战次数
+        /// </summary>
+        public int PlayTimesResetExtra;
+
         public void FromMessage(UnitLimitInfoProto proto)
         {
             BuyTimes = proto.BuyTimes;
             PlayTimes = proto.PlayTimes;
             TotalPlayMax = proto.PlayTimesMax;
+            PlayTimesResetExtra = proto.PlayTimesResetExtra;
         }
 
     }

+ 71 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/Bag/UI_ComItemNumBag.cs

@@ -0,0 +1,71 @@
+/** This is an automatically generated class by FairyGUI. Please do not modify it. **/
+
+using FairyGUI;
+
+namespace UI.Bag
+{
+    public partial class UI_ComItemNumBag
+    {
+        public GComponent target;
+        public GTextField m_txtNum;
+        public const string URL = "ui://2bsz6nelv5notmd";
+        public const string PACKAGE_NAME = "Bag";
+        public const string RES_NAME = "ComItemNumBag";
+        private static UI_ComItemNumBag _proxy;
+
+        public static UI_ComItemNumBag Create(GObject gObject = null)
+        {
+            var ui = new UI_ComItemNumBag();
+            if(gObject == null)
+            	ui.target =  (GComponent)UIPackage.CreateObject(PACKAGE_NAME, RES_NAME);
+            else
+            	ui.target =  (GComponent)gObject;
+            ui.Init(ui.target);
+            return ui;
+        }
+
+        public static UI_ComItemNumBag Proxy(GObject gObject = null)
+        {
+            if(_proxy == null)
+            {
+                _proxy = new UI_ComItemNumBag();
+            }
+            var ui = _proxy;
+            if(gObject == null)
+            	ui.target =  (GComponent)UIPackage.CreateObject(PACKAGE_NAME, RES_NAME);
+            else
+            	ui.target =  (GComponent)gObject;
+            ui.Init(ui.target);
+            return ui;
+        }
+
+        public static void ProxyEnd()
+        {
+            if (_proxy != null)
+            {
+                _proxy.Dispose();
+            }
+        }
+
+        public static void ClearProxy()
+        {
+            ProxyEnd();
+            _proxy = null;
+        }
+
+        private void Init(GComponent comp)
+        {
+            m_txtNum = (GTextField)comp.GetChild("txtNum");
+        }
+        public void Dispose(bool disposeTarget = false)
+        {
+            m_txtNum = null;
+            if(disposeTarget && target != null)
+            {
+                target.RemoveFromParent();
+                target.Dispose();
+            }
+            target = null;
+        }
+    }
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/Bag/UI_ComItemNumBag.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: a4b3b2ccc0ac44d49a8ef825c1dddeeb
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 92 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/Bag/UI_GiftBoxSelectorUI.cs

@@ -0,0 +1,92 @@
+/** This is an automatically generated class by FairyGUI. Please do not modify it. **/
+
+using FairyGUI;
+
+namespace UI.Bag
+{
+    public partial class UI_GiftBoxSelectorUI
+    {
+        public GComponent target;
+        public GButton m_btnCancel;
+        public GTextField m_txtItemDes;
+        public GTextField m_txtName;
+        public GTextField m_txtTotalNum;
+        public GLoader m_loaIcon;
+        public GList m_list;
+        public GTextField m_txtSelRewardStr;
+        public GButton m_btnSub;
+        public const string URL = "ui://2bsz6nelu85qtlv";
+        public const string PACKAGE_NAME = "Bag";
+        public const string RES_NAME = "GiftBoxSelectorUI";
+        private static UI_GiftBoxSelectorUI _proxy;
+
+        public static UI_GiftBoxSelectorUI Create(GObject gObject = null)
+        {
+            var ui = new UI_GiftBoxSelectorUI();
+            if(gObject == null)
+            	ui.target =  (GComponent)UIPackage.CreateObject(PACKAGE_NAME, RES_NAME);
+            else
+            	ui.target =  (GComponent)gObject;
+            ui.Init(ui.target);
+            return ui;
+        }
+
+        public static UI_GiftBoxSelectorUI Proxy(GObject gObject = null)
+        {
+            if(_proxy == null)
+            {
+                _proxy = new UI_GiftBoxSelectorUI();
+            }
+            var ui = _proxy;
+            if(gObject == null)
+            	ui.target =  (GComponent)UIPackage.CreateObject(PACKAGE_NAME, RES_NAME);
+            else
+            	ui.target =  (GComponent)gObject;
+            ui.Init(ui.target);
+            return ui;
+        }
+
+        public static void ProxyEnd()
+        {
+            if (_proxy != null)
+            {
+                _proxy.Dispose();
+            }
+        }
+
+        public static void ClearProxy()
+        {
+            ProxyEnd();
+            _proxy = null;
+        }
+
+        private void Init(GComponent comp)
+        {
+            m_btnCancel = (GButton)comp.GetChild("btnCancel");
+            m_txtItemDes = (GTextField)comp.GetChild("txtItemDes");
+            m_txtName = (GTextField)comp.GetChild("txtName");
+            m_txtTotalNum = (GTextField)comp.GetChild("txtTotalNum");
+            m_loaIcon = (GLoader)comp.GetChild("loaIcon");
+            m_list = (GList)comp.GetChild("list");
+            m_txtSelRewardStr = (GTextField)comp.GetChild("txtSelRewardStr");
+            m_btnSub = (GButton)comp.GetChild("btnSub");
+        }
+        public void Dispose(bool disposeTarget = false)
+        {
+            m_btnCancel = null;
+            m_txtItemDes = null;
+            m_txtName = null;
+            m_txtTotalNum = null;
+            m_loaIcon = null;
+            m_list = null;
+            m_txtSelRewardStr = null;
+            m_btnSub = null;
+            if(disposeTarget && target != null)
+            {
+                target.RemoveFromParent();
+                target.Dispose();
+            }
+            target = null;
+        }
+    }
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/Bag/UI_GiftBoxSelectorUI.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 052c3cec4642fc341a8d374c15451f1d
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 84 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/Bag/UI_ListSelectorItem.cs

@@ -0,0 +1,84 @@
+/** This is an automatically generated class by FairyGUI. Please do not modify it. **/
+
+using FairyGUI;
+
+namespace UI.Bag
+{
+    public partial class UI_ListSelectorItem
+    {
+        public GComponent target;
+        public GTextField m_txtSelNum;
+        public GLoader m_loaIcon;
+        public UI_ComItemNumBag m_comItemNumBag;
+        public GButton m_btnReduce;
+        public GButton m_btnAdd;
+        public const string URL = "ui://2bsz6nelv5notmb";
+        public const string PACKAGE_NAME = "Bag";
+        public const string RES_NAME = "ListSelectorItem";
+        private static UI_ListSelectorItem _proxy;
+
+        public static UI_ListSelectorItem Create(GObject gObject = null)
+        {
+            var ui = new UI_ListSelectorItem();
+            if(gObject == null)
+            	ui.target =  (GComponent)UIPackage.CreateObject(PACKAGE_NAME, RES_NAME);
+            else
+            	ui.target =  (GComponent)gObject;
+            ui.Init(ui.target);
+            return ui;
+        }
+
+        public static UI_ListSelectorItem Proxy(GObject gObject = null)
+        {
+            if(_proxy == null)
+            {
+                _proxy = new UI_ListSelectorItem();
+            }
+            var ui = _proxy;
+            if(gObject == null)
+            	ui.target =  (GComponent)UIPackage.CreateObject(PACKAGE_NAME, RES_NAME);
+            else
+            	ui.target =  (GComponent)gObject;
+            ui.Init(ui.target);
+            return ui;
+        }
+
+        public static void ProxyEnd()
+        {
+            if (_proxy != null)
+            {
+                _proxy.Dispose();
+            }
+        }
+
+        public static void ClearProxy()
+        {
+            ProxyEnd();
+            _proxy = null;
+        }
+
+        private void Init(GComponent comp)
+        {
+            m_txtSelNum = (GTextField)comp.GetChild("txtSelNum");
+            m_loaIcon = (GLoader)comp.GetChild("loaIcon");
+            m_comItemNumBag = (UI_ComItemNumBag)UI_ComItemNumBag.Create(comp.GetChild("comItemNumBag"));
+            m_btnReduce = (GButton)comp.GetChild("btnReduce");
+            m_btnAdd = (GButton)comp.GetChild("btnAdd");
+        }
+        public void Dispose(bool disposeTarget = false)
+        {
+            m_txtSelNum = null;
+            m_loaIcon = null;
+            m_comItemNumBag.Dispose();
+            m_comItemNumBag = null;
+            m_btnReduce = null;
+            m_btnAdd = null;
+            if(disposeTarget && target != null)
+            {
+                target.RemoveFromParent();
+                target.Dispose();
+            }
+            target = null;
+        }
+    }
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/Bag/UI_ListSelectorItem.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 06ccbfe075e911b4196fc4250b4d263d
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 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);

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

@@ -249,7 +249,7 @@ namespace GFGGame
                     {
                         FriendDataManager.Instance.ChangeGiveTakeGiftStates(response.FriendIds[i], response.GiveGiftStates[i], response.TakeGiftStates[i]);
                     }
-                    if (FriendDataManager.Instance.Count >= GlobalCfgArray.globalCfg.maxGetPowerCount)
+                    if (FriendDataManager.Instance.Count >= FriendDataManager.Instance.maxGetPowerCount)
                     {
                         PromptController.Instance.ShowFloatTextPrompt("今日体力已全部领取");
                     }

+ 19 - 0
GameClient/Assets/Game/HotUpdate/ServerProxy/ItemProxy.cs

@@ -90,5 +90,24 @@ namespace GFGGame
             }
             return false;
         }
+
+        //使用背包物品-自选礼包
+        public static async ETTask<bool> ReqUseGiftBoxSelItem(int itemID, List<GiftBoxSelChildItemProto> giftBoxSelChildItems)
+        {
+            M2C_GiftBoxSelConsumption response = null;
+            response = (M2C_GiftBoxSelConsumption)await MessageHelper.SendToServer(new C2M_GiftBoxSelConsumption()
+                { ItemId = itemID, GiftBoxSelChildItems = giftBoxSelChildItems });
+            if (response != null)
+            {
+                if (response.Error == ErrorCode.ERR_Success)
+                {
+                    List<ItemData> items = ItemUtil.CreateItemDataList(response.GotItemList);
+                    BonusController.TryShowBonusList(items);
+                    return true;
+                }
+            }
+
+            return false;
+        }
     }
 }

+ 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;
+        }
     }
 }

+ 1 - 1
GameClient/Assets/Game/HotUpdate/Utils/ResPathUtil.cs

@@ -37,7 +37,7 @@ namespace GFGGame
         {
             return "ui://CommonGame/" + res;
         }
-        //===================================¡ü¡ü¡üUI·¾¶¡ü¡ü¡ü================================
+        //===================================↑↑↑UI路径↑↑↑================================
         public static string GetIconPath(string res, string extName)
         {
             return $"{TEXTURE_DIR_PATH}/Icon/{res}.{extName}";

+ 19 - 5
GameClient/Assets/Game/HotUpdate/Views/Bag/BagView.cs

@@ -58,6 +58,7 @@ namespace GFGGame
             base.AddEventListener();
             EventAgent.AddEventListener(ConstMessage.ITEM_CHANGED, UpdateList);
         }
+        
         protected override void OnShown()
         {
             base.OnShown();
@@ -101,14 +102,27 @@ namespace GFGGame
         {
             GComponent comItem = (context.data as GComponent);
             ItemCfg itemCfg = comItem.data as ItemCfg;
-            if (itemCfg.subType == 0)
+
+            //区分一下道具跟礼包
+            if (itemCfg.itemType == ConstItemType.ITEM)
             {
-                object[] sourceDatas = new object[] { itemCfg.id, new object[] { typeof(BagView).FullName, this.viewData } };
-                GoodsItemTipsController.ShowItemTips(itemCfg.id, sourceDatas);
+                if (itemCfg.subType == 0)
+                {
+                    object[] sourceDatas = new object[]
+                        { itemCfg.id, new object[] { typeof(BagView).FullName, this.viewData } };
+                    GoodsItemTipsController.ShowItemTips(itemCfg.id, sourceDatas);
+                }
+                else if (itemCfg.subType == 1)
+                {
+                    ViewManager.Show<BagExchangeView>(itemCfg.id);
+                }
             }
-            else if (itemCfg.subType == 1)
+            else
             {
-                ViewManager.Show<BagExchangeView>(itemCfg.id);
+                //ConstItemType.GIFT_BAG 礼包
+                //随机礼包--还未有该需求,但是配置表有了,先不管,之后有随机礼包需求可以在这里加判断处理
+                //自选礼包
+                ViewManager.Show<GiftBoxSelectorView>(itemCfg.id);
             }
         }
 

+ 241 - 0
GameClient/Assets/Game/HotUpdate/Views/Bag/GiftBoxSelectorView.cs

@@ -0,0 +1,241 @@
+using System;
+using System.Collections.Generic;
+using ET;
+using FairyGUI;
+using UI.Bag;
+using UI.CommonGame;
+using UnityEngine;
+
+namespace GFGGame
+{
+    public class GiftBoxSelectorView : BaseWindow
+    {
+        private UI_GiftBoxSelectorUI _ui;
+        private int _itemId;
+        private int _count; //物品数量
+        private int _selCount; //选择的数量
+        private Dictionary<int, int> _selDic; //选择礼包内的物品<物品id,数量>
+
+        public override void Dispose()
+        {
+            base.Dispose();
+
+            if (_selDic != null)
+            {
+                _selDic.Clear();
+                _selDic = null;
+            }
+
+            if (_ui != null)
+            {
+                _ui.Dispose();
+                _ui = null;
+            }
+        }
+
+        protected override void OnInit()
+        {
+            base.OnInit();
+
+            packageName = UI_GiftBoxSelectorUI.PACKAGE_NAME;
+            _ui = UI_GiftBoxSelectorUI.Create();
+            this.viewCom = _ui.target;
+            this.viewCom.Center();
+            this.modal = true;
+
+            _selDic = new Dictionary<int, int>();
+
+            _ui.m_btnCancel.onClick.Add(OnBtnCancelClick);
+            _ui.m_list.itemRenderer = ListItemRender;
+            _ui.m_btnSub.onClick.Add(OnBtnSubClick);
+        }
+
+        protected override void AddEventListener()
+        {
+            base.AddEventListener();
+        }
+
+        protected override void OnShown()
+        {
+            base.OnShown();
+            _itemId = (int)this.viewData;
+            _count = (int)ItemDataManager.GetItemNum(_itemId);
+
+            _selDic.Clear();
+            _selCount = 0;
+
+            UpdateView();
+            UpdateList();
+            SetSelAllNum();
+        }
+
+        protected override void OnHide()
+        {
+            if (_ui.m_list.numItems > 0)
+            {
+                _ui.m_list.ScrollToView(0);
+            }
+
+            _ui.m_list.numItems = 0;
+            _selDic.Clear();
+            _selCount = 0;
+
+            base.OnHide();
+        }
+
+        protected override void RemoveEventListener()
+        {
+            base.RemoveEventListener();
+        }
+
+        private void UpdateView()
+        {
+            ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(_itemId);
+            _ui.m_loaIcon.url = ResPathUtil.GetIconPath(itemCfg);
+            _ui.m_txtName.text = itemCfg.name;
+            _ui.m_txtTotalNum.text = $"已拥有:{_count}";
+            _ui.m_txtItemDes.text = string.IsNullOrEmpty(itemCfg.desc) ? "暂无描述" : itemCfg.desc;
+        }
+
+        private void UpdateList()
+        {
+            ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(_itemId);
+            _ui.m_list.numItems = itemCfg.itemsArr.Length;
+            _ui.m_list.visible = true;
+        }
+
+        private void ListItemRender(int index, GObject obj)
+        {
+            ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(_itemId);
+            UI_ListSelectorItem uiItemChild = UI_ListSelectorItem.Proxy(obj);
+
+            int[] itemChildArr = itemCfg.itemsArr[index];
+            ItemCfg itemCfgChild = ItemCfgArray.Instance.GetCfg(itemChildArr[0]);
+            uiItemChild.m_loaIcon.url = ResPathUtil.GetIconPath(itemCfgChild);
+            uiItemChild.m_loaIcon.onClick.Add(OnListSelectorItemClick);
+            uiItemChild.m_comItemNumBag.m_txtNum.text = itemChildArr[1].ToString();
+            uiItemChild.m_txtSelNum.text = "0";
+            uiItemChild.m_btnAdd.onClick.Add(OnChildBtnAddClick);
+            uiItemChild.m_btnReduce.onClick.Add(OnChildBtnReduceClick);
+
+            uiItemChild.target.data = itemCfgChild;
+            UI_ListSelectorItem.ProxyEnd();
+        }
+
+        private void OnChildBtnAddClick(EventContext context)
+        {
+            GObject sender = context.sender as GObject;
+            GObject obj = sender.parent;
+            UI_ListSelectorItem listItem = UI_ListSelectorItem.Proxy(obj);
+
+            if (_selCount == _count)
+            {
+                return;
+            }
+
+            if (listItem.m_txtSelNum.text == _count.ToString())
+            {
+                return;
+            }
+
+            ItemCfg itemCfg = obj.data as ItemCfg;
+
+            if (_selDic.TryGetValue(itemCfg.id, out int num))
+            {
+                if (num == _count)
+                {
+                    return;
+                }
+
+                _selCount += 1;
+                _selDic[itemCfg.id] = num + 1;
+                listItem.m_txtSelNum.text = Convert.ToString(Convert.ToInt32(listItem.m_txtSelNum.text) + 1);
+            }
+            else
+            {
+                _selDic.Add(itemCfg.id, 1);
+                _selCount += 1;
+                listItem.m_txtSelNum.text = Convert.ToString(1);
+            }
+
+            SetSelAllNum();
+        }
+
+        private void SetSelAllNum()
+        {
+            _ui.m_txtSelRewardStr.text = $"已选奖励:{_selCount}/{_count}";
+        }
+
+        private void OnChildBtnReduceClick(EventContext context)
+        {
+            GObject sender = context.sender as GObject;
+            GObject obj = sender.parent;
+            UI_ListSelectorItem listItem = UI_ListSelectorItem.Proxy(obj);
+
+            if (_selCount == 0)
+            {
+                return;
+            }
+
+            if (listItem.m_txtSelNum.text == "0")
+            {
+                return;
+            }
+
+
+            ItemCfg itemCfg = obj.data as ItemCfg;
+
+            if (_selDic.TryGetValue(itemCfg.id, out int num))
+            {
+                if (num == 0)
+                {
+                    return;
+                }
+
+                _selCount -= 1;
+                _selDic[itemCfg.id] = num - 1;
+                listItem.m_txtSelNum.text = Convert.ToString(Convert.ToInt32(listItem.m_txtSelNum.text) - 1);
+            }
+            else
+            {
+                _selCount -= 1;
+                _selDic.Add(itemCfg.id, 0);
+                listItem.m_txtSelNum.text = Convert.ToString(0);
+            }
+
+            SetSelAllNum();
+        }
+
+        //弹出物品详细描述框
+        private void OnListSelectorItemClick(EventContext context)
+        {
+            GObject sender = context.sender as GObject;
+            GObject obj = sender.parent;
+            ItemCfg itemCfg = obj.data as ItemCfg;
+            GoodsItemTipsController.ShowItemTips(itemCfg.id);
+        }
+
+        private void OnBtnCancelClick()
+        {
+            this.Hide();
+        }
+
+        //确认按钮
+        private void OnBtnSubClick()
+        {
+            List<GiftBoxSelChildItemProto> reqItemList = new List<GiftBoxSelChildItemProto>();
+
+            foreach (var itemKv in _selDic)
+            {
+                reqItemList.Add(new GiftBoxSelChildItemProto
+                {
+                    ChildItemId = itemKv.Key,
+                    ChildItemCount = itemKv.Value
+                });
+            }
+
+            ItemProxy.ReqUseGiftBoxSelItem(_itemId, reqItemList).Coroutine();
+            this.Hide();
+        }
+    }
+}

+ 3 - 0
GameClient/Assets/Game/HotUpdate/Views/Bag/GiftBoxSelectorView.cs.meta

@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: 15bb239d0a5943518d3663bbfa6263be
+timeCreated: 1684752621

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

@@ -102,7 +102,7 @@ namespace GFGGame
         }
         private void UpdateNumeric()
         {
-            _valueBar.m_btnPower.target.text = string.Format("{0}/{1}", RoleDataManager.power, GameGlobal.myNumericComponent.GetAsInt(NumericType.PowerLimit));
+            _valueBar.m_btnPower.target.text = string.Format("{0}/{1}", RoleDataManager.power, RoleDataManager.powerLimit);
         }
 
         //ժ�ǣ��齱���һ�

+ 1 - 1
GameClient/Assets/Game/HotUpdate/Views/Friend/FriendView.cs

@@ -190,7 +190,7 @@ namespace GFGGame
 
         private void OnBtnSendAllClick()
         {
-            if (RedDotDataManager.Instance.GetFriendGiftRed() && FriendDataManager.Instance.Count < GlobalCfgArray.globalCfg.maxGetPowerCount)
+            if (RedDotDataManager.Instance.GetFriendGiftRed() && FriendDataManager.Instance.Count < FriendDataManager.Instance.maxGetPowerCount)
             {
                 FriendSProxy.ReqTakeGiftFromAllFriend().Coroutine();
             }

+ 1 - 1
GameClient/Assets/Game/HotUpdate/Views/Studio/StudioBaseView.cs

@@ -114,7 +114,7 @@ namespace GFGGame
         {
             var limitData = RoleLimitDataManager.GetLimitData(this._studioCfg.limit);
             var limitCfg = LimitCfgArray.Instance.GetCfg(this._studioCfg.limit);
-            _txtNum.text = string.Format("剩余次数:{0}/{1}", limitData.TotalPlayMax - limitData.PlayTimes, limitCfg.num);
+            _txtNum.text = string.Format("剩余次数:{0}/{1}", limitData.TotalPlayMax - limitData.PlayTimes, limitCfg.num + limitData.PlayTimesResetExtra);
         }
 
         private void UpdateView(int limitId)

+ 1 - 1
GameClient/Assets/Game/HotUpdate/Views/Studio/StudioFilingView.cs

@@ -105,7 +105,7 @@ namespace GFGGame
 
             _ui.m_loaBg.url = ResPathUtil.GetBgImgPath(_studioCfg.res);
             _ui.m_btnChange.title = _studioCfg.name;
-            _ui.m_txtNum.text = string.Format("剩余次数:{0}/{1}", limitData.TotalPlayMax - limitData.PlayTimes, limitCfg.num);
+            _ui.m_txtNum.text = string.Format("剩余次数:{0}/{1}", limitData.TotalPlayMax - limitData.PlayTimes, limitCfg.num + limitData.PlayTimesResetExtra);
 
             SuitCfg suitCfg = SuitCfgArray.Instance.GetCfg(_studioCfg.suitId);
             _ui.m_txtSuitName.text = suitCfg.name;

+ 57 - 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,27 +29,42 @@ 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;
         }
 
+        protected override void OnHide()
+        {
+            base.OnHide();
+            Timers.inst.Remove(UpdateTime);
+        }
+
 
         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);
+        }
+
+        protected override void RemoveEventListener()
+        {
+            base.RemoveEventListener();
+            EventAgent.RemoveEventListener(ConstMessage.BATTLEPASS_LEVEL_CHANGE, SetBattlePassLevel);
         }
 
 
@@ -70,24 +80,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 +116,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 +136,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 +147,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 +156,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 +176,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 +216,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)

Some files were not shown because too many files changed in this diff