Browse Source

Merge commit '3211e55393628d707eb894fec0385590f0d4ae93'

* commit '3211e55393628d707eb894fec0385590f0d4ae93':
  1
  提交合并代码
  公用机提交
  1
  先提交合并一次,主要提交自选礼包
  公用机提交
  自选礼包完成
  自选礼包
  自选礼包界面
Jae 2 years ago
parent
commit
0390d084af
76 changed files with 826 additions and 8 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. 13 0
      GameClient/.idea/.idea.GameClient/.idea/.gitignore
  57. 4 0
      GameClient/.idea/.idea.GameClient/.idea/encodings.xml
  58. 8 0
      GameClient/.idea/.idea.GameClient/.idea/indexLayout.xml
  59. 6 0
      GameClient/.idea/.idea.GameClient/.idea/vcs.xml
  60. 4 0
      GameClient/Assets/Game/HotUpdate/Data/ItemDataManager.cs
  61. 71 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/Bag/UI_ComItemNumBag.cs
  62. 11 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/Bag/UI_ComItemNumBag.cs.meta
  63. 92 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/Bag/UI_GiftBoxSelectorUI.cs
  64. 11 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/Bag/UI_GiftBoxSelectorUI.cs.meta
  65. 84 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/Bag/UI_ListSelectorItem.cs
  66. 11 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/Bag/UI_ListSelectorItem.cs.meta
  67. 19 0
      GameClient/Assets/Game/HotUpdate/ServerProxy/ItemProxy.cs
  68. 1 1
      GameClient/Assets/Game/HotUpdate/Utils/ResPathUtil.cs
  69. 19 5
      GameClient/Assets/Game/HotUpdate/Views/Bag/BagView.cs
  70. 241 0
      GameClient/Assets/Game/HotUpdate/Views/Bag/GiftBoxSelectorView.cs
  71. 3 0
      GameClient/Assets/Game/HotUpdate/Views/Bag/GiftBoxSelectorView.cs.meta
  72. BIN
      GameClient/Assets/ResIn/Config/excelConfig.sqlite.bytes
  73. BIN
      GameClient/Assets/ResIn/UI/Bag/Bag_atlas0!a.png
  74. BIN
      GameClient/Assets/ResIn/UI/Bag/Bag_atlas0.png
  75. BIN
      GameClient/Assets/ResIn/UI/Bag/Bag_fui.bytes
  76. 2 0
      GameClient/GameClient.sln.DotSettings.user

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

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

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

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

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

+ 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

BIN
GameClient/Assets/ResIn/Config/excelConfig.sqlite.bytes


BIN
GameClient/Assets/ResIn/UI/Bag/Bag_atlas0!a.png


BIN
GameClient/Assets/ResIn/UI/Bag/Bag_atlas0.png


BIN
GameClient/Assets/ResIn/UI/Bag/Bag_fui.bytes


+ 2 - 0
GameClient/GameClient.sln.DotSettings.user

@@ -0,0 +1,2 @@
+<wpf:ResourceDictionary xml:space="preserve" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:ss="urn:shemas-jetbrains-com:settings-storage-xaml" xmlns:wpf="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
+	<s:String x:Key="/Default/CodeInspection/Highlighting/AnalysisEnabled/@EntryValue">SOLUTION</s:String></wpf:ResourceDictionary>