Эх сурвалжийг харах

Merge branch 'master' of http://git.gfggame.com:3000/gfg/client

guodong 3 жил өмнө
parent
commit
60fee86345
65 өөрчлөгдсөн 1845 нэмэгдсэн , 76 устгасан
  1. 1 1
      FGUIProject/assets/CommonGame/BuyCountUI.xml
  2. 1 1
      FGUIProject/assets/CommonGame/components/Button10.xml
  3. 5 4
      FGUIProject/assets/CommonGame/components/Button12.xml
  4. 17 11
      FGUIProject/assets/CommonGame/components/Button14.xml
  5. 11 9
      FGUIProject/assets/CommonGame/components/Button5.xml
  6. 4 6
      FGUIProject/assets/CommonGame/components/ComItem.xml
  7. BIN
      FGUIProject/assets/CommonGame/images/sc_czanniu_2.png
  8. BIN
      FGUIProject/assets/CommonGame/images/sc_tc_kuang_2.png
  9. BIN
      FGUIProject/assets/CommonGame/images/sc_xtxtxt.png
  10. 2 1
      FGUIProject/assets/CommonGame/package.xml
  11. 38 0
      FGUIProject/assets/RechargeStore/GiftBagBuyUI.xml
  12. 34 0
      FGUIProject/assets/RechargeStore/ItemExchangeUI.xml
  13. 36 5
      FGUIProject/assets/RechargeStore/RechargeStoreUI.xml
  14. 2 0
      FGUIProject/assets/RechargeStore/components/Button2.xml
  15. 7 4
      FGUIProject/assets/RechargeStore/components/Component1.xml
  16. 15 14
      FGUIProject/assets/RechargeStore/components/Component2.xml
  17. 45 0
      FGUIProject/assets/RechargeStore/components/ListGiftItem.xml
  18. 14 4
      FGUIProject/assets/RechargeStore/components/StoreListItem.xml
  19. BIN
      FGUIProject/assets/RechargeStore/images/hyhy_btbt_1.png
  20. BIN
      FGUIProject/assets/RechargeStore/images/sc_cwcw_1.png
  21. BIN
      FGUIProject/assets/RechargeStore/images/sc_cwcw_2.png
  22. BIN
      FGUIProject/assets/RechargeStore/images/sc_cwcw_3.png
  23. BIN
      FGUIProject/assets/RechargeStore/images/sc_kuangdikjia_1.png
  24. BIN
      FGUIProject/assets/RechargeStore/images/sc_kuangdikjia_3.png
  25. BIN
      FGUIProject/assets/RechargeStore/images/sc_xtxtxt(1).png
  26. BIN
      FGUIProject/assets/RechargeStore/images/sc_xtxtxt.png
  27. BIN
      FGUIProject/assets/RechargeStore/imagesExport/jinbi_1(1).png
  28. BIN
      FGUIProject/assets/RechargeStore/imagesExport/jinbi_1.png
  29. 15 3
      FGUIProject/assets/RechargeStore/package.xml
  30. 1 0
      GameClient/Assets/Game/HotUpdate/Constant/ConstBuyType.cs
  31. 4 0
      GameClient/Assets/Game/HotUpdate/Constant/ConstMessage.cs
  32. 4 0
      GameClient/Assets/Game/HotUpdate/Controller/GameController.cs
  33. 268 0
      GameClient/Assets/Game/HotUpdate/Data/RechargeDataManager.cs
  34. 11 0
      GameClient/Assets/Game/HotUpdate/Data/RechargeDataManager.cs.meta
  35. 89 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/CommonGame/UI_Button14.cs
  36. 11 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/CommonGame/UI_Button14.cs.meta
  37. 74 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/CommonGame/UI_Button5.cs
  38. 11 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/CommonGame/UI_Button5.cs.meta
  39. 3 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/CommonGame/UI_BuyCountUI.cs
  40. 71 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/RechargeStore/UI_Button2.cs
  41. 11 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/RechargeStore/UI_Button2.cs.meta
  42. 12 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/RechargeStore/UI_Component1.cs
  43. 77 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/RechargeStore/UI_Component2.cs
  44. 11 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/RechargeStore/UI_Component2.cs.meta
  45. 119 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/RechargeStore/UI_GiftBagBuyUI.cs
  46. 11 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/RechargeStore/UI_GiftBagBuyUI.cs.meta
  47. 113 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/RechargeStore/UI_ItemExchangeUI.cs
  48. 11 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/RechargeStore/UI_ItemExchangeUI.cs.meta
  49. 119 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/RechargeStore/UI_ListGiftItem.cs
  50. 11 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/RechargeStore/UI_ListGiftItem.cs.meta
  51. 9 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/RechargeStore/UI_RechargeStoreUI.cs
  52. 9 5
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/RechargeStore/UI_StoreListItem.cs
  53. 81 0
      GameClient/Assets/Game/HotUpdate/ServerProxy/RechargeSProxy.cs
  54. 130 0
      GameClient/Assets/Game/HotUpdate/Views/RechargeStore/GiftBagBuyView.cs
  55. 11 0
      GameClient/Assets/Game/HotUpdate/Views/RechargeStore/GiftBagBuyView.cs.meta
  56. 137 0
      GameClient/Assets/Game/HotUpdate/Views/RechargeStore/ItemExchangeView.cs
  57. 11 0
      GameClient/Assets/Game/HotUpdate/Views/RechargeStore/ItemExchangeView.cs.meta
  58. 168 8
      GameClient/Assets/Game/HotUpdate/Views/RechargeStore/RechargeStoreView.cs
  59. BIN
      GameClient/Assets/ResIn/Config/excelConfig.sqlite.bytes
  60. BIN
      GameClient/Assets/ResIn/UI/CommonGame/CommonGame_atlas0!a.png
  61. BIN
      GameClient/Assets/ResIn/UI/CommonGame/CommonGame_atlas0.png
  62. BIN
      GameClient/Assets/ResIn/UI/CommonGame/CommonGame_fui.bytes
  63. BIN
      GameClient/Assets/ResIn/UI/RechargeStore/RechargeStore_atlas0!a.png
  64. BIN
      GameClient/Assets/ResIn/UI/RechargeStore/RechargeStore_atlas0.png
  65. BIN
      GameClient/Assets/ResIn/UI/RechargeStore/RechargeStore_fui.bytes

+ 1 - 1
FGUIProject/assets/CommonGame/BuyCountUI.xml

@@ -2,7 +2,6 @@
 <component size="936,536">
   <displayList>
     <image id="n0_hinb" name="bg" src="lwri5u" fileName="imagesExport/hc_kuang_6.png" pkg="mk0fwx0x" xy="0,0" size="936,536"/>
-    <loader id="n26_eiwu" name="n26" xy="0,0" size="936,536" visible="false" url="ui://mk0fwx0xlwri5u" fill="scaleFree"/>
     <component id="n23_ai2z" name="btnAll" src="ai2z9f" fileName="components/Button12.xml" xy="731,131"/>
     <image id="n19_ai2z" name="n19" src="ai2z9e" fileName="imagesExport/hb_kuangdi_2.png" xy="69,237" group="n21_ai2z"/>
     <loader id="n4_hinb" name="icon" xy="101,66" size="200,200" group="n21_ai2z" aspect="true"/>
@@ -27,4 +26,5 @@
     </component>
     <text id="n24_ai2z" name="txtBuyTips" xy="314,471" pivot="0.5,0" size="308,36" fontSize="26" color="#a0845c" text="消耗1珍珠,可兑换10缴销"/>
   </displayList>
+  <relation target="n0_hinb" sidePair="height-height"/>
 </component>

+ 1 - 1
FGUIProject/assets/CommonGame/components/Button10.xml

@@ -2,7 +2,7 @@
 <component size="380,105" extention="Button">
   <controller name="button" pages="0,up,1,down,2,over,3,selectedOver" selected="0"/>
   <displayList>
-    <image id="n0_ih75" name="n0" src="ih7592" fileName="images/tctc_anniu_1.png" xy="0,0">
+    <image id="n0_ih75" name="n0" src="uo1t9n" fileName="images/tctc_anniu_1.png" xy="0,0">
       <relation target="" sidePair="width-width,height-height"/>
     </image>
     <text id="n1_ih75" name="title" xy="0,0" size="380,105" fontSize="46" color="#fff7e4" align="center" vAlign="middle" letterSpacing="2" autoSize="none" strokeColor="#ac904e" singleLine="true" text="确定">

+ 5 - 4
FGUIProject/assets/CommonGame/components/Button12.xml

@@ -1,10 +1,11 @@
 <?xml version="1.0" encoding="utf-8"?>
 <component size="144,75" extention="Button">
-  <Button/>
-  <controller name="button" pages="0,up,1,down,2,over,3,selectedOver"/>
+  <controller name="button" pages="0,up,1,down,2,over,3,selectedOver" selected="0"/>
   <displayList>
-    <image id="n0_ai2z" src="ai2z9c" name="n0" xy="0,0">
-      <relation target="" sidePair="width,height"/>
+    <image id="n0_ai2z" name="n0" src="ai2z9c" fileName="imagesExport/hb_anniu_3.png" xy="0,0" visible="false">
+      <relation target="" sidePair="width-width,height-height"/>
     </image>
+    <loader id="n1_10not" name="icon" xy="0,0" size="144,75" url="ui://eg2y0ldpai2z9c" autoSize="true"/>
   </displayList>
+  <Button/>
 </component>

+ 17 - 11
FGUIProject/assets/CommonGame/components/Button14.xml

@@ -1,20 +1,26 @@
 <?xml version="1.0" encoding="utf-8"?>
 <component size="240,80" extention="Button">
-  <controller name="button" pages="0,up,1,down,2,over,3,selectedOver" selected="0"/>
+  <controller name="button" pages="0,up,1,down" selected="0"/>
+  <controller name="c1" pages="0,,1," selected="0"/>
   <displayList>
     <image id="n0_10not" name="n0" src="10nota5" fileName="images/sc_czanniu_1.png" xy="0,0">
+      <gearDisplay controller="c1" pages="0"/>
       <relation target="" sidePair="width-width,height-height"/>
     </image>
-    <loader id="n1_10not" name="icon" xy="50,10" size="60,60" group="n3_10not" url="ui://eg2y0ldpg3nf9q"/>
-    <text id="n2_10not" name="txtIcon" xy="60,15" size="40,49" group="n3_10not" fontSize="36" color="#fdfaed" strokeColor="#ac904e" strokeSize="2" text="¥"/>
-    <group id="n3_10not" name="n3" xy="50,10" size="60,60" group="n8_10not"/>
-    <text id="n4_10not" name="txtOriginalPrice" xy="123,15" pivot="0.5,0" size="26,49" group="n6_10not" fontSize="36" color="#fdfaed" align="center" strokeColor="#ac904e" text="4"/>
-    <image id="n5_10not" name="n5" src="dmsi1h" fileName="images/sc_xtxtxt.png" xy="120,38" pivot="0.5,0" size="33,10" group="n6_10not">
-      <relation target="n4_10not" sidePair="width-width"/>
-    </image>
-    <group id="n6_10not" name="n6" xy="120,15" size="33,49" group="n8_10not"/>
-    <text id="n7_10not" name="txtPrice" xy="163,15" size="26,49" group="n8_10not" fontSize="36" color="#fdfaed" align="center" strokeColor="#ac904e" text="5"/>
-    <group id="n8_10not" name="n8" xy="50,10" size="139,60" advanced="true" layout="hz" colGap="10" excludeInvisibles="true">
+    <image id="n9_10not" name="n9" src="10nota4" fileName="images/sc_czanniu_2.png" xy="0,0" group="n11_oeuo"/>
+    <text id="n10_10not" name="n10" xy="67,12" size="112,49" group="n11_oeuo" fontSize="36" color="#fdfaed" align="center" strokeColor="#989180" text="已售罄"/>
+    <group id="n11_oeuo" name="n11" xy="0,0" size="240,80" advanced="true">
+      <gearDisplay controller="c1" pages="1"/>
+    </group>
+    <loader id="n1_10not" name="loaIcon" xy="21,10" size="60,60" group="n3_10not" visible="false" url="ui://eg2y0ldpg3nf9q" fill="scaleFree"/>
+    <text id="n2_10not" name="txtIcon" xy="24,15" pivot="0.5,0" size="40,49" group="n3_10not" fontSize="36" color="#fdfaed" strokeColor="#ac904e" strokeSize="2" text="¥"/>
+    <group id="n3_10not" name="grpIcon" xy="21,15" size="46,49" group="n8_10not" advanced="true" layout="hz" excludeInvisibles="true"/>
+    <text id="n4_10not" name="txtOriginalPrice" xy="93,15" pivot="0.5,0" size="49,49" group="n6_10not" fontSize="36" color="#fdfaed" align="center" strokeColor="#ac904e" text="10"/>
+    <image id="n5_10not" name="n5" src="dmsi1h" fileName="images/sc_xtxtxt.png" xy="77,38" pivot="0.5,0" group="n6_10not"/>
+    <group id="n6_10not" name="grpOriginalPrice" xy="77,15" size="82,49" group="n8_10not" advanced="true"/>
+    <text id="n7_10not" name="txtPrice" xy="169,15" pivot="0.5,0" size="49,49" group="n8_10not" fontSize="36" color="#fdfaed" align="right" strokeColor="#ac904e" text="10"/>
+    <group id="n8_10not" name="n8" xy="21,15" size="197,49" advanced="true" layout="hz" colGap="10" excludeInvisibles="true">
+      <gearDisplay controller="c1" pages="0"/>
       <relation target="" sidePair="center-center"/>
     </group>
   </displayList>

+ 11 - 9
FGUIProject/assets/CommonGame/components/Button5.xml

@@ -1,17 +1,19 @@
 <?xml version="1.0" encoding="utf-8"?>
 <component size="264,79" extention="Button">
-  <controller name="button" pages="0,up,1,down,2,over,3,selectedOver" selected="0"/>
+  <controller name="button" pages="0,up,1,down" selected="0"/>
+  <controller name="c1" pages="0,,1," selected="0"/>
   <displayList>
-    <image id="n0_d4iw" name="n0" src="d4iwj" fileName="imagesExport/sc_anniu_1.png" xy="0,3" visible="false">
-      <relation target="" sidePair="width-width,height-height"/>
-    </image>
-    <text id="n1_d4iw" name="title" xy="126,9" size="64,64" group="n3_dmsi" fontSize="48" color="#8b6540" align="center" vAlign="middle" vars="true" singleLine="true" text="60">
+    <loader id="n4_10not" name="loaIcon" xy="70,9" size="60,60" group="n5_10not" url="ui://eg2y0ldpq08x4" autoSize="true">
+      <gearDisplay controller="c1" pages="1"/>
+    </loader>
+    <text id="n2_dmsi" name="n2" xy="74,7" size="52,64" group="n5_10not" fontSize="48" color="#8b6540" text="¥">
+      <gearDisplay controller="c1" pages="0"/>
+    </text>
+    <group id="n5_10not" name="n5" xy="70,7" size="60,64" group="n6_10not" advanced="true"/>
+    <text id="n1_d4iw" name="title" xy="130,7" size="64,64" group="n6_10not" fontSize="48" color="#8b6540" align="center" vAlign="middle" vars="true" singleLine="true" text="60">
       <relation target="" sidePair="width-width,height-height"/>
     </text>
-    <text id="n2_dmsi" name="n2" xy="74,9" size="52,64" group="n3_dmsi" fontSize="48" color="#8b6540" text="¥"/>
-    <group id="n3_dmsi" name="n3" xy="74,9" size="116,64" advanced="true">
-      <relation target="" sidePair="center-center"/>
-    </group>
+    <group id="n6_10not" name="n6" xy="70,7" size="124,64" advanced="true" layout="hz" excludeInvisibles="true"/>
   </displayList>
   <Button/>
 </component>

+ 4 - 6
FGUIProject/assets/CommonGame/components/ComItem.xml

@@ -1,14 +1,12 @@
 <?xml version="1.0" encoding="utf-8"?>
 <component size="192,280" overflow="hidden">
   <displayList>
-    <image id="n11_ehs9" name="n11" src="j48o99" fileName="components/kp_sjsj_di_3.png" xy="0,0"/>
-    <loader id="n12_ehs9" name="loaIcon" xy="96,96" pivot="0.5,0.5" anchor="true" size="150,150" aspect="true" fill="scale">
-      <relation target="" sidePair="center-center,middle-middle"/>
-    </loader>
-    <image id="n13_ehs9" name="n13" src="j48o9a" fileName="components/kp_sjsj_di_4.png" xy="16,162"/>
+    <image id="n11_ehs9" name="n11" src="j48o99" fileName="images/kp_sjsj_di_3.png" xy="0,0"/>
+    <loader id="n12_ehs9" name="loaIcon" xy="96,96" pivot="0.5,0.5" anchor="true" size="150,150" aspect="true" url="ui://eg2y0ldpm9wm8v" fill="scale"/>
+    <image id="n13_ehs9" name="n13" src="j48o9a" fileName="images/kp_sjsj_di_4.png" xy="16,162"/>
     <text id="n14_ehs9" name="txtName" xy="95,194" pivot="0.5,0" anchor="true" size="105,46" fontSize="34" color="#9b7f61" text="赵钱孙"/>
     <text id="n15_ehs9" name="txtCount" xy="95,159" pivot="0.5,0" anchor="true" size="32,34" fontSize="24" color="#fff8ea" vars="true" text="x{count=0}"/>
-    <image id="n16_j8b3" name="imgGot" src="j48o9b" fileName="components/yx_yilq.png" xy="7,80"/>
+    <image id="n16_j8b3" name="imgGot" src="j48o9b" fileName="images/yx_yilq.png" xy="7,80"/>
     <text id="n17_j48o" name="txtHasCount" xy="96,243" pivot="0.5,0" anchor="true" size="105,36" fontSize="26" color="#a28d77" vars="true" text="已拥有:{count=0}"/>
     <loader id="n18_j48o" name="loaRarity" xy="148,0" size="44,94" url="ui://eg2y0ldpd4iw52" autoSize="true"/>
     <loader id="n19_tc53" name="loaShouTongReward" xy="16,81" size="160,40" url="ui://eg2y0ldptc539z" autoSize="true"/>

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


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


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


+ 2 - 1
FGUIProject/assets/CommonGame/package.xml

@@ -181,7 +181,8 @@
     <image id="10nota5" name="sc_czanniu_1.png" path="/images/"/>
     <component id="10nota6" name="Button14.xml" path="/components/" exported="true"/>
     <component id="10nota7" name="Button15.xml" path="/components/" exported="true"/>
-    <image id="dmsi1h" name="sc_xtxtxt.png" path="/images/" scale="9grid" scale9grid="19,2,38,4"/>
+    <image id="dmsi1h" name="sc_xtxtxt.png" path="/images/" scale="9grid" scale9grid="12,0,44,2"/>
+    <image id="iftfta9" name="sc_tc_kuang_2.png" path="/images/"/>
   </resources>
   <publish name="" path="..\GameClient\Assets\ResIn\UI\CommonGame" packageCount="2" genCode="true" extractAlpha="true"/>
 </packageDescription>

+ 38 - 0
FGUIProject/assets/RechargeStore/GiftBagBuyUI.xml

@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="utf-8"?>
+<component size="936,695">
+  <controller name="c1" pages="0,,1," selected="0"/>
+  <displayList>
+    <image id="n0_10not" name="bg" src="lwri5u" fileName="imagesExport/hc_kuang_6.png" pkg="mk0fwx0x" xy="0,0" size="936,695"/>
+    <image id="n18_iftf" name="n18" src="iftfta9" fileName="images/hyhy_btbt_1.png" xy="230,32"/>
+    <text id="n1_10not" name="txtName" xy="354,31" pivot="0.5,0" size="228,74" fontSize="56" color="#8f6e30" text="礼包礼包"/>
+    <loader id="n2_10not" name="loaIcon" xy="137,273" pivot="0.5,0.5" size="50,50" autoSize="true"/>
+    <text id="n3_10not" name="txtLimit" xy="45,420" pivot="0.5,0" size="251,46" fontSize="34" color="#a3926c" align="center" leading="-5" letterSpacing="-2" ubb="true" text="每日限购(0/1)"/>
+    <list id="n4_10not" name="list" xy="307,212" size="618,197" layout="row" overflow="hidden" colGap="10" defaultItem="ui://eg2y0ldpj48o98" align="center">
+      <item/>
+      <item/>
+      <item/>
+    </list>
+    <image id="n5_10not" name="n5" src="dmsi1l" fileName="images/sc_kuangsjsj.png" xy="729,107" group="n7_10not"/>
+    <text id="n6_10not" name="txtEndTime" xy="756,105" pivot="0.5,0" size="94,41" group="n7_10not" fontSize="30" color="#ffffff" align="center" leading="-5" letterSpacing="-2" strokeColor="#b98653" strokeSize="2" text="12小时"/>
+    <group id="n7_10not" name="grpEndTime" xy="729,105" size="155,42" advanced="true"/>
+    <loader id="n8_10not" name="loaPriceIcon" xy="379,507" size="60,60" group="n10_10not" visible="false" url="ui://vlgobc1510not1w" fill="scale"/>
+    <text id="n9_10not" name="txtIcon" xy="379,506" size="50,61" group="n10_10not" fontSize="46" color="#a17d5f" text="¥"/>
+    <group id="n10_10not" name="grpIcon" xy="379,506" size="50,61" group="n15_10not" advanced="true" layout="hz" excludeInvisibles="true"/>
+    <text id="n11_10not" name="txtOriginalPrice" xy="460,506" pivot="0.5,0" size="32,61" group="n13_10not" fontSize="46" color="#caa293" align="center" text="4"/>
+    <image id="n12_10not" name="n12" src="dmsi1m" fileName="images/sc_tc_xian_1.png" xy="459,539" pivot="0.5,0" size="35,2" group="n13_10not">
+      <relation target="n11_10not" sidePair="width-width"/>
+    </image>
+    <group id="n13_10not" name="grpOriginalPrice" xy="459,506" size="35,61" group="n15_10not" advanced="true"/>
+    <text id="n14_10not" name="txtPrice" xy="524,506" size="32,61" group="n15_10not" fontSize="46" color="#a17d5f" align="center" text="5"/>
+    <group id="n15_10not" name="grpPrice" xy="379,506" size="177,61" advanced="true" layout="hz" colGap="30" excludeInvisibles="true">
+      <gearDisplay controller="c1" pages="0"/>
+      <relation target="" sidePair="center-center"/>
+    </group>
+    <component id="n16_10not" name="btnBuy" src="ih7594" fileName="components/Button10.xml" pkg="mk0fwx0x" xy="278,566">
+      <gearDisplay controller="c1" pages="0"/>
+    </component>
+    <text id="n17_oeuo" name="txtLock" xy="316,540" pivot="0.5,0" size="304,64" fontSize="48" color="#aa946b" text="通关2-10解锁">
+      <gearDisplay controller="c1" pages="1"/>
+    </text>
+  </displayList>
+</component>

+ 34 - 0
FGUIProject/assets/RechargeStore/ItemExchangeUI.xml

@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="utf-8"?>
+<component size="936,695">
+  <displayList>
+    <image id="n0_hinb" name="bg" src="lwri5u" fileName="imagesExport/hc_kuang_6.png" pkg="mk0fwx0x" xy="0,0" size="936,695"/>
+    <text id="n5_hinb" name="txtName" xy="401,28" pivot="0.5,0" size="116,74" fontSize="56" color="#8f6e30" align="center" text="名字"/>
+    <image id="n19_ai2z" name="n19" src="dmsi1o" fileName="images/sc_tc_kuang_2.png" xy="48,148" group="n21_ai2z"/>
+    <loader id="n4_hinb" name="icon" xy="57,158" size="200,200" group="n21_ai2z" aspect="true"/>
+    <loader id="n17_ugdz" name="rarity" xy="215,158" size="44,94" group="n21_ai2z" url="ui://eg2y0ldpd4iw52" autoSize="true"/>
+    <text id="n28_10not" name="txtNum" xy="123,313" pivot="0.5,0" size="69,49" group="n21_ai2z" fontSize="36" color="#fff7e6" align="center" strokeColor="#816531" text="x10"/>
+    <text id="n29_10not" name="txtLastCount" xy="86,358" pivot="0.5,0" size="138,44" group="n21_ai2z" fontSize="32" color="#bc8068" text="剩余:100"/>
+    <group id="n21_ai2z" name="n21" xy="48,148" size="220,254"/>
+    <text id="n30_10not" name="txtHasCount" xy="692,121" size="138,46" fontSize="34" color="#a38e66" align="center" ubb="true" text="已拥有:"/>
+    <text id="n32_10not" name="n32" xy="40,422" size="180,59" group="n22_ai2z" fontSize="44" color="#a08249" align="center" text="兑换数量"/>
+    <image id="n8_hinb" name="n8" src="dmsi1p" fileName="images/sc_tc_kuang_3.png" xy="241,429" group="n22_ai2z"/>
+    <text id="n25_t1at" name="txtCount" xy="368,426" size="200,56" group="n22_ai2z" fontSize="42" color="#fdf3d7" align="center" vAlign="middle" autoSize="none" text="找钱"/>
+    <component id="n9_hinb" name="btnPlus" src="hinb5s" fileName="components/ButtonPlus2.xml" pkg="eg2y0ldp" xy="636,421" group="n22_ai2z"/>
+    <component id="n10_hinb" name="btnMinus" src="hinb5t" fileName="components/ButtonMinus1.xml" pkg="eg2y0ldp" xy="232,421" group="n22_ai2z"/>
+    <component id="n23_ai2z" name="btnAll" src="ai2z9f" fileName="components/Button12.xml" pkg="eg2y0ldp" xy="745,417" group="n22_ai2z">
+      <Button icon="ui://vlgobc15dmsi1n"/>
+    </component>
+    <group id="n22_ai2z" name="n22" xy="40,417" size="849,75"/>
+    <image id="n18_ai2z" name="n18" src="dmsi1f" fileName="images/sc_shulianga.png" xy="331,518" group="n16_ugdz"/>
+    <text id="n20_ai2z" name="n20" xy="358,510" size="76,49" group="n27_10not" fontSize="36" color="#a08249" text="花费"/>
+    <loader id="n14_ugdz" name="iconPrice" xy="443,519" size="32,32" group="n27_10not" aspect="true" url="ui://eg2y0ldpq08x3" fill="scale"/>
+    <text id="n15_ugdz" name="txtPrice" xy="484,510" size="93,49" group="n27_10not" fontSize="36" color="#fdf3d7" autoClearText="true" text="9999"/>
+    <group id="n27_10not" name="n27" xy="358,510" size="219,49" group="n16_ugdz"/>
+    <group id="n16_ugdz" name="n16" xy="331,510" size="274,49" advanced="true"/>
+    <component id="n6_hinb" name="btnExchange" src="q08x7" fileName="components/Button2.xml" pkg="mk0fwx0x" xy="278,566">
+      <Button title="兑换"/>
+    </component>
+    <text id="n31_10not" name="txtDiscribe" xy="315,176" size="550,49" fontSize="36" color="#a38b64" autoSize="none" text="描述描述描述描述描述描述描述描述"/>
+  </displayList>
+  <relation target="n0_hinb" sidePair="height-height"/>
+</component>

+ 36 - 5
FGUIProject/assets/RechargeStore/RechargeStoreUI.xml

@@ -1,18 +1,21 @@
 <?xml version="1.0" encoding="utf-8"?>
 <component size="1080,1920">
-  <controller name="c1" pages="0,,1,,2," selected="1"/>
+  <controller name="c1" pages="0,,1,,2," selected="2"/>
   <displayList>
     <image id="n2_d4iw" name="n2" src="10nota3" fileName="bgimg/scsc_bjbj.jpg" pkg="eg2y0ldp" xy="0,-240">
       <relation target="" sidePair="center-center,middle-middle"/>
     </image>
     <component id="n3_d4iw" name="btnBack" src="9xlo8" fileName="components/ButtonBack1.xml" pkg="eg2y0ldp" xy="35,80"/>
     <component id="n1_d4iw" name="valueBar" src="v3541v" fileName="components/ComponentValueBar.xml" pkg="eg2y0ldp" xy="159,90"/>
-    <image id="n15_10not" name="n15" src="dmsi1d" fileName="images/sc_kuangjia_1.png" xy="0,305" size="1080,1615">
+    <image id="n15_10not" name="n15" src="dmsi1d" fileName="images/sc_kuangjia_1.png" xy="0,414" size="1080,1506">
       <relation target="" sidePair="height-height,top-top"/>
     </image>
-    <image id="n16_10not" name="n16" src="10not1r" fileName="images/sc_kuangjia_3.png" xy="0,1613"/>
-    <component id="n17_10not" name="comTab" src="10not1s" fileName="components/Component1.xml" xy="96,290"/>
-    <list id="n10_d4iw" name="list" xy="0,368" size="1080,1208" layout="flow_hz" overflow="scroll" scrollBarFlags="64" colGap="22" defaultItem="ui://vlgobc15d4iwr" align="center" scrollItemToViewOnClick="false">
+    <component id="n17_10not" name="comTab" src="10not1s" fileName="components/Component1.xml" xy="95,401"/>
+    <text id="n25_t8xr" name="txtRefreshTime" xy="796,480" size="204,44" fontSize="32" color="#b38282" autoClearText="true" text="23小时后刷新">
+      <gearDisplay controller="c1" pages="2"/>
+    </text>
+    <list id="n10_d4iw" name="list" xy="0,472" size="1080,1232" layout="flow_hz" overflow="scroll" scrollBarFlags="64" colGap="22" defaultItem="ui://vlgobc15d4iwr" align="center" scrollItemToViewOnClick="false">
+      <gearDisplay controller="c1" pages="0"/>
       <relation target="" sidePair="bottomext-bottom"/>
       <item/>
       <item/>
@@ -22,5 +25,33 @@
       <item/>
       <item/>
     </list>
+    <list id="n23_10not" name="listGift" xy="0,472" size="1080,1232" layout="flow_hz" overflow="scroll" colGap="10" defaultItem="ui://vlgobc1510not1t" align="center">
+      <gearDisplay controller="c1" pages="1"/>
+      <relation target="" sidePair="bottomext-bottom"/>
+      <item/>
+      <item/>
+      <item/>
+      <item/>
+      <item/>
+      <item/>
+      <item/>
+      <item/>
+      <item/>
+      <item/>
+    </list>
+    <list id="n24_10not" name="listExchange" xy="0,526" pivot="1,0" size="1080,1178" layout="flow_hz" overflow="scroll" scrollBarFlags="64" colGap="22" defaultItem="ui://vlgobc15d4iwr" align="center" scrollItemToViewOnClick="false">
+      <gearDisplay controller="c1" pages="2"/>
+      <relation target="" sidePair="bottomext-bottom"/>
+      <item/>
+      <item/>
+      <item/>
+      <item/>
+      <item/>
+      <item/>
+      <item/>
+    </list>
+    <image id="n16_10not" name="n16" src="10not1r" fileName="images/sc_kuangjia_3.png" xy="0,1613">
+      <relation target="" sidePair="left-left,bottom-bottom"/>
+    </image>
   </displayList>
 </component>

+ 2 - 0
FGUIProject/assets/RechargeStore/components/Button2.xml

@@ -2,7 +2,9 @@
 <component size="258,70" extention="Button">
   <controller name="button" pages="0,up,1,down" selected="0"/>
   <displayList>
+    <loader id="n4_iftf" name="loaMascot" xy="3,-231" size="252,232" url="ui://vlgobc15iftftac"/>
     <loader id="n2_10not" name="icon" xy="0,0" size="258,70" url="ui://vlgobc15dmsi17" autoSize="true"/>
   </displayList>
   <Button mode="Radio"/>
+  <customProperty target="loaMascot" propertyId="1"/>
 </component>

+ 7 - 4
FGUIProject/assets/RechargeStore/components/Component1.xml

@@ -2,14 +2,17 @@
 <component size="890,70">
   <controller name="c1" pages="0,,1,,2," selected="0"/>
   <displayList>
-    <component id="n17_10not" name="n17" src="dmsi1q" fileName="components/Button2.xml" xy="0,0">
-      <Button icon="ui://vlgobc15dmsi17" selectedIcon="ui://vlgobc15dmsi16" controller="c1" page="0"/>
+    <component id="n17_10not" name="btn0" src="dmsi1q" fileName="components/Button2.xml" xy="0,0">
+      <Button checked="true" icon="ui://vlgobc15dmsi17" selectedIcon="ui://vlgobc15dmsi16" controller="c1" page="0"/>
+      <property target="loaMascot" propertyId="1" value="ui://vlgobc15iftftaa"/>
     </component>
-    <component id="n18_10not" name="n18" src="dmsi1q" fileName="components/Button2.xml" xy="314,0">
+    <component id="n18_10not" name="btn1" src="dmsi1q" fileName="components/Button2.xml" xy="314,0">
       <Button icon="ui://vlgobc15dmsi19" selectedIcon="ui://vlgobc15dmsi18" controller="c1" page="1"/>
+      <property target="loaMascot" propertyId="1" value="ui://vlgobc15iftftab"/>
     </component>
-    <component id="n19_10not" name="n19" src="dmsi1q" fileName="components/Button2.xml" xy="628,0">
+    <component id="n19_10not" name="btn2" src="dmsi1q" fileName="components/Button2.xml" xy="628,0">
       <Button icon="ui://vlgobc15dmsi1b" selectedIcon="ui://vlgobc15dmsi1a" controller="c1" page="2"/>
+      <property target="loaMascot" propertyId="1" value="ui://vlgobc15iftftac"/>
     </component>
   </displayList>
 </component>

+ 15 - 14
FGUIProject/assets/RechargeStore/components/Component2.xml

@@ -1,18 +1,19 @@
 <?xml version="1.0" encoding="utf-8"?>
-<component size="478,401">
+<component size="264,79">
+  <controller name="c1" pages="0,,1," selected="1"/>
   <displayList>
-    <image id="n22_10not" name="n22" src="dmsi1k" fileName="images/sc_kuangdikjia_2.png" xy="0,0"/>
-    <loader id="n23_10not" name="icon" xy="45,170" size="162,162" url="ui://vlgobc15d4iwl"/>
-    <image id="n24_10not" name="n24" src="dmsi1j" fileName="images/sc_kuangczcz.png" xy="2,97" group="n26_10not"/>
-    <text id="n25_10not" name="txtDiscount" xy="20,123" size="91,81" group="n26_10not" fontSize="34" color="#ffe5cf" align="center" leading="-5" letterSpacing="-2" vars="true" text="超值&#xA;{count=250}%"/>
-    <component id="n35_10not" name="n35" src="10nota6" fileName="components/Button14.xml" pkg="eg2y0ldp" xy="185,269" group="n26_10not"/>
-    <group id="n26_10not" name="grpDiscount" xy="2,97" size="423,252"/>
-    <text id="n27_10not" name="txtName" xy="346,135" pivot="0.5,0" anchor="true" size="85,56" fontSize="42" color="#906d4b" align="center" leading="-5" letterSpacing="-2" text="珍珠"/>
-    <image id="n28_10not" name="n28" src="dmsi1l" fileName="images/sc_kuangsjsj.png" xy="269,232" group="n30_10not"/>
-    <text id="n29_10not" name="txtRefreshTime" xy="296,230" size="94,42" group="n30_10not" fontSize="30" color="#ffffff" align="center" leading="-5" letterSpacing="-2" strokeColor="#b98653" strokeSize="2" text="12小时"/>
-    <group id="n30_10not" name="grpRefreshTime" xy="269,230" size="155,42" advanced="true"/>
-    <text id="n31_10not" name="txtLock" xy="347,300" pivot="0.5,0" anchor="true" size="215,49" fontSize="36" color="#aa9561" align="center" leading="-5" letterSpacing="-2" text="通关4-10解锁"/>
-    <text id="n32_10not" name="txtLimit" xy="40,329" size="40,49" fontSize="36" color="#aa9561" align="center" leading="-5" letterSpacing="-2" text=""/>
-    <image id="n34_10not" name="n34" src="10not1u" fileName="images/sc_kuangand.png" xy="2,96"/>
+    <loader id="n15_iftf" name="loaIcon" xy="82,19" size="60,60" group="n17_iftf" url="ui://eg2y0ldpq08x4" autoSize="true">
+      <gearDisplay controller="c1" pages="0"/>
+    </loader>
+    <text id="n16_iftf" name="n16" xy="82,17" size="52,64" group="n17_iftf" fontSize="48" color="#8b6540" text="¥">
+      <gearDisplay controller="c1" pages="1"/>
+    </text>
+    <group id="n17_iftf" name="n17" xy="82,17" size="52,64" group="n19_iftf" advanced="true" layout="hz" excludeInvisibles="true"/>
+    <text id="n18_iftf" name="txtTitle" xy="134,17" size="64,64" group="n19_iftf" fontSize="48" color="#8b6540" align="center" vAlign="middle" vars="true" singleLine="true" text="60">
+      <relation target="" sidePair="width-width,height-height"/>
+    </text>
+    <group id="n19_iftf" name="n19" xy="82,17" size="116,64" advanced="true" layout="hz" excludeInvisibles="true">
+      <relation target="" sidePair="center-center"/>
+    </group>
   </displayList>
 </component>

+ 45 - 0
FGUIProject/assets/RechargeStore/components/ListGiftItem.xml

@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="utf-8"?>
+<component size="478,401">
+  <controller name="c1" alias="礼包购买状态" pages="0,,1," selected="0"/>
+  <controller name="c2" alias="礼包解锁状态" pages="0,,1," selected="0"/>
+  <displayList>
+    <image id="n22_10not" name="n22" src="dmsi1k" fileName="images/sc_kuangdikjia_2.png" xy="0,0"/>
+    <loader id="n23_10not" name="icon" xy="45,170" size="162,162" url="ui://vlgobc15d4iwl"/>
+    <text id="n27_10not" name="txtName" xy="346,135" pivot="0.5,0" anchor="true" size="85,56" fontSize="42" color="#906d4b" align="center" leading="-5" letterSpacing="-2" text="珍珠"/>
+    <image id="n24_10not" name="n24" src="dmsi1j" fileName="images/sc_kuangczcz.png" xy="2,98" group="n26_10not"/>
+    <text id="n25_10not" name="txtDesc" xy="31,121" size="69,81" group="n26_10not" font="ui://eg2y0ldpk1kha2" fontSize="34" color="#ffe5cf" align="center" leading="-5" letterSpacing="-2" vars="true" text="超值&#xA;{count=250}%"/>
+    <group id="n26_10not" name="grpDiscount" xy="2,98" size="128,132" advanced="true"/>
+    <image id="n28_10not" name="n28" src="dmsi1l" fileName="images/sc_kuangsjsj.png" xy="269,232" group="n30_10not"/>
+    <text id="n29_10not" name="txtEndTime" xy="298,230" pivot="0.5,0" size="94,41" group="n30_10not" fontSize="30" color="#ffffff" align="center" leading="-5" letterSpacing="-2" strokeColor="#b98653" strokeSize="2" text="12小时"/>
+    <group id="n30_10not" name="grpEndTime" xy="269,230" size="155,42" advanced="true">
+      <gearDisplay controller="c1" pages="0"/>
+    </group>
+    <text id="n32_10not" name="txtLimit" xy="35,332" pivot="0.5,0" size="189,36" fontSize="26" color="#ab9a87" align="center" leading="-5" letterSpacing="-2" ubb="true" text="每日限购(0/1)">
+      <gearDisplay controller="c1" pages="0"/>
+    </text>
+    <text id="n31_10not" name="txtLock" xy="347,300" pivot="0.5,0" anchor="true" size="215,49" fontSize="36" color="#aa9561" align="center" leading="-5" letterSpacing="-2" text="通关4-10解锁">
+      <gearDisplay controller="c2" pages="1"/>
+    </text>
+    <loader id="n36_iftf" name="loaIcon" xy="246,294" size="60,60" group="n38_iftf" visible="false" url="ui://vlgobc15iftftad" fill="scaleFree"/>
+    <text id="n37_iftf" name="txtIcon" xy="246,299" pivot="0.5,0" size="44,54" group="n38_iftf" fontSize="40" color="#896e5f" text="¥"/>
+    <group id="n38_iftf" name="grpIcon" xy="246,299" size="44,54" group="n43_iftf" advanced="true" layout="hz" excludeInvisibles="true"/>
+    <text id="n39_iftf" name="txtOriginalPrice" xy="300,299" pivot="0.5,0" size="78,54" group="n41_iftf" fontSize="40" color="#bca89d" align="center" text="100"/>
+    <image id="n40_iftf" name="n40" src="iftftae" fileName="images/sc_xtxtxt(1).png" xy="306,326" pivot="0.5,0" size="72,2" group="n41_iftf">
+      <relation target="n39_iftf" sidePair="width-width"/>
+    </image>
+    <group id="n41_iftf" name="grpOriginalPrice" xy="300,299" size="78,54" group="n43_iftf" advanced="true"/>
+    <text id="n42_iftf" name="txtPrice" xy="388,299" pivot="0.5,0" size="54,54" group="n43_iftf" fontSize="40" color="#896e5f" align="right" text="10"/>
+    <group id="n43_iftf" name="grpPrice" xy="246,299" size="196,54" advanced="true" layout="hz" colGap="10" excludeInvisibles="true">
+      <gearDisplay controller="c1" pages="0"/>
+      <gearDisplay2 controller="c2" pages="0" condition="0"/>
+      <relation target="" sidePair="center-center"/>
+    </group>
+    <text id="n44_iftf" name="n44" xy="291,296" size="124,54" fontSize="40" color="#a59f8f" align="center" text="已售罄">
+      <gearDisplay controller="c1" pages="1"/>
+      <gearDisplay2 controller="c2" pages="0" condition="0"/>
+    </text>
+    <image id="n45_t8xr" name="n45" src="10not1u" fileName="images/sc_kuangand.png" xy="3,96">
+      <gearDisplay controller="c1" pages="1"/>
+    </image>
+  </displayList>
+</component>

+ 14 - 4
FGUIProject/assets/RechargeStore/components/StoreListItem.xml

@@ -1,13 +1,23 @@
 <?xml version="1.0" encoding="utf-8"?>
 <component size="302,517" pivot="0.5,0">
+  <controller name="c1" pages="0,,1," selected="0"/>
   <displayList>
-    <image id="n17_dmsi" name="n17" src="dmsi1c" fileName="images/sc_kuangdikjia_1.png" xy="0,0"/>
+    <image id="n17_dmsi" name="n17" src="dmsi1c" fileName="images/sc_kuangdikjia_1.png" xy="0,0">
+      <gearDisplay controller="c1" pages="0"/>
+    </image>
+    <image id="n20_t8xr" name="n20" src="t8xrtag" fileName="images/sc_kuangdikjia_3.png" xy="0,0">
+      <gearDisplay controller="c1" pages="1"/>
+    </image>
     <image id="n12_d4iw" name="imgDouble" src="dmsi1e" fileName="images/sc_kuangjia_2.png" xy="234,109"/>
-    <loader id="n15_d4iw" name="icon" xy="70,211" size="162,162" url="ui://vlgobc15d4iwl"/>
+    <loader id="n15_d4iw" name="icon" xy="70,211" size="162,162" url="ui://vlgobc15d4iwl" fill="scaleMatchHeight"/>
     <text id="n16_d4iw" name="txtName" xy="76,140" pivot="0.5,0" size="149,51" fontSize="38" color="#906d4b" align="center" text="钻石600">
+      <gearColor controller="c1" pages="1" values="#837d6f,#000000" default="#906d4b,#000000"/>
       <relation target="" sidePair="center-center,middle-middle"/>
     </text>
-    <component id="n14_d4iw" name="btnBuy" src="d4iw59" fileName="components/Button5.xml" pkg="eg2y0ldp" xy="19,433"/>
-    <text id="n18_dmsi" name="txtDouble" xy="8,380" pivot="0.5,0" size="286,49" fontSize="36" color="#bb674e" text="首充赠送+60钻石"/>
+    <component id="n14_d4iw" name="btnBuy" src="iftftaf" fileName="components/Component2.xml" xy="18,420" size="265,80">
+      <gearDisplay controller="c1" pages="0"/>
+      <relation target="" sidePair="center-center"/>
+    </component>
+    <text id="n18_dmsi" name="txtDesc" xy="6,380" pivot="0.5,0" size="290,49" font="ui://eg2y0ldpk1kha2" fontSize="36" color="#bb674e" letterSpacing="-2" text="首充赠送+6000钻石"/>
   </displayList>
 </component>

BIN
FGUIProject/assets/RechargeStore/images/hyhy_btbt_1.png


BIN
FGUIProject/assets/RechargeStore/images/sc_cwcw_1.png


BIN
FGUIProject/assets/RechargeStore/images/sc_cwcw_2.png


BIN
FGUIProject/assets/RechargeStore/images/sc_cwcw_3.png


BIN
FGUIProject/assets/RechargeStore/images/sc_kuangdikjia_1.png


BIN
FGUIProject/assets/RechargeStore/images/sc_kuangdikjia_3.png


BIN
FGUIProject/assets/RechargeStore/images/sc_xtxtxt(1).png


BIN
FGUIProject/assets/RechargeStore/images/sc_xtxtxt.png


BIN
FGUIProject/assets/RechargeStore/imagesExport/jinbi_1(1).png


BIN
FGUIProject/assets/RechargeStore/imagesExport/jinbi_1.png


+ 15 - 3
FGUIProject/assets/RechargeStore/package.xml

@@ -23,20 +23,32 @@
     <image id="dmsi1c" name="sc_kuangdikjia_1.png" path="/images/"/>
     <image id="dmsi1d" name="sc_kuangjia_1.png" path="/images/" scale="9grid" scale9grid="269,469,540,1064"/>
     <image id="dmsi1e" name="sc_kuangjia_2.png" path="/images/"/>
-    <image id="dmsi1f" name="sc_shulianga.png" path="/images/"/>
+    <image id="dmsi1f" name="sc_shulianga.png" path="/images/" scale="9grid" scale9grid="128,9,17,18"/>
     <image id="dmsi1g" name="scsc_anniuej_1.png" path="/images/"/>
     <image id="dmsi1j" name="sc_kuangczcz.png" path="/images/"/>
     <image id="dmsi1k" name="sc_kuangdikjia_2.png" path="/images/"/>
     <image id="dmsi1l" name="sc_kuangsjsj.png" path="/images/"/>
-    <image id="dmsi1m" name="sc_tc_xian_1.png" path="/images/"/>
+    <image id="dmsi1m" name="sc_tc_xian_1.png" path="/images/" scale="9grid" scale9grid="24,0,48,0"/>
     <image id="dmsi1n" name="sc_tc_anniu_1.png" path="/images/"/>
     <image id="dmsi1o" name="sc_tc_kuang_2.png" path="/images/"/>
     <image id="dmsi1p" name="sc_tc_kuang_3.png" path="/images/"/>
     <component id="dmsi1q" name="Button2.xml" path="/components/"/>
     <image id="10not1r" name="sc_kuangjia_3.png" path="/images/"/>
     <component id="10not1s" name="Component1.xml" path="/components/"/>
-    <component id="10not1t" name="Component2.xml" path="/components/"/>
+    <component id="10not1t" name="ListGiftItem.xml" path="/components/"/>
     <image id="10not1u" name="sc_kuangand.png" path="/images/"/>
+    <component id="10nota8" name="ItemExchangeUI.xml" path="/" exported="true"/>
+    <component id="10not1v" name="GiftBagBuyUI.xml" path="/" exported="true"/>
+    <image id="10not1w" name="jinbi_1.png" path="/imagesExport/"/>
+    <image id="10not1x" name="sc_xtxtxt.png" path="/images/" scale="9grid" scale9grid="19,2,38,4"/>
+    <image id="iftfta9" name="hyhy_btbt_1.png" path="/images/"/>
+    <image id="iftftaa" name="sc_cwcw_1.png" path="/images/"/>
+    <image id="iftftab" name="sc_cwcw_2.png" path="/images/"/>
+    <image id="iftftac" name="sc_cwcw_3.png" path="/images/"/>
+    <image id="iftftad" name="jinbi_1(1).png" path="/imagesExport/"/>
+    <image id="iftftae" name="sc_xtxtxt(1).png" path="/images/" scale="9grid" scale9grid="12,0,44,2"/>
+    <component id="iftftaf" name="Component2.xml" path="/components/"/>
+    <image id="t8xrtag" name="sc_kuangdikjia_3.png" path="/images/"/>
   </resources>
   <publish name="" path="..\GameClient\Assets\ResIn\UI\RechargeStore" packageCount="2" genCode="true" extractAlpha="true"/>
 </packageDescription>

+ 1 - 0
GameClient/Assets/Game/HotUpdate/Constant/ConstBuyType.cs

@@ -5,6 +5,7 @@ namespace GFGGame
         public const int TYPE_NORMAL = 0;//无类型兑换,无表格
         public const int TYPE_ITEM = 1;//物品兑换,对应兑换表
         public const int TYPE_SHOP = 2;//商店兑换,对应商店表
+        public const int TYPE_ITEM_Store = 2;//物品兑换,对应兑换商店表
 
     }
 }

+ 4 - 0
GameClient/Assets/Game/HotUpdate/Constant/ConstMessage.cs

@@ -42,5 +42,9 @@ 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";//商城兑换成功
+
     }
 }

+ 4 - 0
GameClient/Assets/Game/HotUpdate/Controller/GameController.cs

@@ -132,6 +132,7 @@ namespace GFGGame
             SuitFosterDataManager.Instance.Clear();
             StudioDataManager.Instance.Clear();
             StorageDataManager.Instance.Clear();
+            RechargeDataManager.Instance.Clear();
             if (logout)
             {
                 Logout();
@@ -187,6 +188,9 @@ namespace GFGGame
             SuitFosterProxy.SendGetSuitInfos().Coroutine();
             MainStorySProxy.GetStoryInfos().Coroutine();
             CardSProxy.GetCardInfos().Coroutine();
+            RechargeSProxy.ReqRechargeInfo().Coroutine();
+            RechargeSProxy.ReqRequestGiftBagInfo().Coroutine();
+            RechargeSProxy.ReqExchangeInfo().Coroutine();
 
             EquipDataCache.cacher.autoPlay = StorageDataManager.Instance.GetStorageValue(ConstStorageId.STORAGE_AUTO_PLAY) <= 0 ? false : true;
             EquipDataCache.cacher.fightSpeed = StorageDataManager.Instance.GetStorageValue(ConstStorageId.STORAGE_AUTO_PLAY_SPEED) <= 1 ? 1 : StorageDataManager.Instance.GetStorageValue(ConstStorageId.STORAGE_AUTO_PLAY_SPEED);

+ 268 - 0
GameClient/Assets/Game/HotUpdate/Data/RechargeDataManager.cs

@@ -0,0 +1,268 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using ET;
+
+namespace GFGGame
+{
+    public class RechargeStoreType
+    {
+        public static int RECHARGE = 0;
+        public static int GIFT = 1;
+        public static int EXCHANGE = 2;
+
+    }
+    public class LockType
+    {
+        public static int NONE = 0;
+        public static int STORY_LV = 1;
+        public static int ROLE_LV = 2;
+    }
+    // public class RefreshType
+    // {
+    //     public static int NONE = 0;
+    //     public static int DAY = 1;
+    //     public static int WEEK = 2;
+    //     public static int MONTH = 3;
+    // }
+    public class CostType
+    {
+        public static int FREE = 0;
+        public static int MONEY = 1;
+        public static int RMB = 2;
+        public static int ITEM = 3;
+    }
+
+    public class RechargeDataManager : SingletonBase<RechargeDataManager>
+    {
+        public string[] refreshType = { "永久限购", "每日限购", "每周限购", "每月限购" };
+
+        private Dictionary<int, int> _rechargeDic = new Dictionary<int, int>();
+        private Dictionary<int, int> _giftDic = new Dictionary<int, int>();
+        private Dictionary<int, int> _exchangeDic = new Dictionary<int, int>();
+        public void Clear()
+        {
+            _rechargeDic.Clear();
+            _giftDic.Clear();
+            _exchangeDic.Clear();
+        }
+        public void UpdateRechargeData(int rechargeId, int num)
+        {
+            if (!_rechargeDic.ContainsKey(rechargeId))
+            {
+                _rechargeDic.Add(rechargeId, num);
+            }
+            else
+            {
+                _rechargeDic[rechargeId] = num;
+            }
+        }
+        public void UpdateGiftData(int giftId, int num)
+        {
+            if (!_giftDic.ContainsKey(giftId))
+            {
+                _giftDic.Add(giftId, num);
+            }
+            else
+            {
+                _giftDic[giftId] = num;
+            }
+        }
+        public void UpdateExchangeData(int exchangeId, int num)
+        {
+            if (!_exchangeDic.ContainsKey(exchangeId))
+            {
+                _exchangeDic.Add(exchangeId, num);
+            }
+            else
+            {
+                _exchangeDic[exchangeId] = num;
+            }
+        }
+
+        /// <summary>
+        /// 根据充值id获取购买次数
+        /// </summary>
+        /// <param name="rechargeId"></param>
+        /// <returns></returns>
+        public int GetRechargeBuyNumById(int rechargeId)
+        {
+            return !_rechargeDic.ContainsKey(rechargeId) ? 0 : _rechargeDic[rechargeId];
+        }
+        /// <summary>
+        /// 根据礼包id获取购买次数
+        /// </summary>
+        /// <param name="giftId"></param>
+        /// <returns></returns>
+        public int GetGiftBuyNumById(int giftId)
+        {
+            return !_giftDic.ContainsKey(giftId) ? 0 : _giftDic[giftId];
+        }
+        /// <summary>
+        /// 根据充值id获取购买次数
+        /// </summary>
+        /// <param name="exchangeId"></param>
+        /// <returns></returns>
+        public int GetExchangeBuyNumById(int exchangeId)
+        {
+            return !_exchangeDic.ContainsKey(exchangeId) ? 0 : _exchangeDic[exchangeId];
+        }
+
+
+        public List<GiftBagCfg> GetGiftBagCfgs()
+        {
+            List<GiftBagCfg> giftBagCfgs = new List<GiftBagCfg>();
+
+            List<GiftBagCfg> noneGiftBagCfgs = GetNoneGiftCfg();
+            giftBagCfgs = giftBagCfgs.Concat(noneGiftBagCfgs).ToList<GiftBagCfg>();
+
+            GiftBagCfg StoryLvGiftCfg = GetStoryLvGiftCfg();
+            if (StoryLvGiftCfg != null) giftBagCfgs.Add(StoryLvGiftCfg);
+            GiftBagCfg RoleLvGiftCfg = GetRoleLvGiftCfg();
+            if (RoleLvGiftCfg != null) giftBagCfgs.Add(RoleLvGiftCfg);
+            SortGiftBagCfgs(giftBagCfgs);
+            return giftBagCfgs;
+        }
+
+        private List<GiftBagCfg> SortGiftBagCfgs(List<GiftBagCfg> giftBagCfgs)
+        {
+            giftBagCfgs.Sort((GiftBagCfg a, GiftBagCfg b) =>
+            {
+
+                //未售罄的>未解锁>已售罄的
+                int buyTypeA = (a.maxBuyNum == 0 || a.maxBuyNum - GetGiftBuyNumById(a.id) > 0) ? 1 : -1;
+                int buyTypeB = (b.maxBuyNum == 0 || b.maxBuyNum - GetGiftBuyNumById(b.id) > 0) ? 1 : -1;
+                if (buyTypeA > buyTypeB) return -1;
+                if (buyTypeA < buyTypeB) return 1;
+
+                //解锁状态
+                int lockA = GetGiftStateById(a.id) ? 1 : -1;
+                int lockB = GetGiftStateById(b.id) ? 1 : -1;
+                if (lockA > lockB) return -1;
+                if (lockA < lockB) return 1;
+
+                //免费>钻石>现金>道具
+                if (a.costType < b.costType) return -1;
+                if (a.costType > b.costType) return 1;
+
+                //有下架时间的 > 没有下架时间的
+                int endTimeA = a.endTime != "" ? 1 : -1;
+                int endTimeB = b.endTime != "" ? 1 : -1;
+                if (endTimeA > endTimeB) return -1;
+                if (endTimeA < endTimeB) return 1;
+
+
+
+                int descA = a.desc == "" ? 0 : int.Parse(a.desc);
+                int descB = b.desc == "" ? 0 : int.Parse(b.desc);
+                if (descA != descB) return descA - descB;
+
+                if (a.price != b.price) return a.price - b.price;
+
+
+                return 0;
+            });
+            return giftBagCfgs;
+        }
+        private List<GiftBagCfg> GetNoneGiftCfg()
+        {
+            List<GiftBagCfg> giftBagCfgs = new List<GiftBagCfg>(GiftBagCfgArray.Instance.GetCfgs(LockType.NONE));
+
+            for (int i = giftBagCfgs.Count - 1; i >= 0; i--)
+            {
+                if (giftBagCfgs[i].startTime != "" && !TimeUtil.IsBeforeCurTime(giftBagCfgs[i].startTime) || giftBagCfgs[i].endTime != "" && !TimeUtil.IsLaterCurTime(giftBagCfgs[i].endTime))
+                {
+                    giftBagCfgs.RemoveAt(i);
+                }
+            }
+            return giftBagCfgs;
+        }
+        private GiftBagCfg GetStoryLvGiftCfg()
+        {
+            List<GiftBagCfg> giftBagCfgs = GiftBagCfgArray.Instance.GetCfgs(LockType.STORY_LV);
+            if (giftBagCfgs.Count == 0) return null;
+            giftBagCfgs.Sort((GiftBagCfg a, GiftBagCfg b) =>
+            {
+                if (a.storyLevelId.CompareTo(b.storyLevelId) != 0)
+                {
+                    return a.storyLevelId.CompareTo(b.storyLevelId);
+                }
+                return -1;
+            });
+            for (int i = 0; i < giftBagCfgs.Count; i++)
+            {
+                if (GetGiftStateById(giftBagCfgs[i].id) && (GetGiftBuyNumById(giftBagCfgs[i].id) < giftBagCfgs[i].maxBuyNum)) return giftBagCfgs[i];
+            }
+            return giftBagCfgs[0];
+        }
+        private GiftBagCfg GetRoleLvGiftCfg()
+        {
+            List<GiftBagCfg> giftBagCfgs = GiftBagCfgArray.Instance.GetCfgs(LockType.ROLE_LV);
+            if (giftBagCfgs.Count == 0) return null;
+            giftBagCfgs.Sort((GiftBagCfg a, GiftBagCfg b) =>
+            {
+                if (a.lv.CompareTo(b.lv) != 0)
+                {
+                    return a.lv.CompareTo(b.lv);
+                }
+                return -1;
+            });
+            for (int i = 0; i < giftBagCfgs.Count; i++)
+            {
+                if (GetGiftStateById(giftBagCfgs[i].id) && (GetGiftBuyNumById(giftBagCfgs[i].id) < giftBagCfgs[i].maxBuyNum)) return giftBagCfgs[i];
+            }
+            return giftBagCfgs[0];
+        }
+
+        public List<ShopExchangeCfg> GetExchangeCfgs()
+        {
+            List<ShopExchangeCfg> shopExchangeCfgs = new List<ShopExchangeCfg>(ShopExchangeCfgArray.Instance.dataArray);
+            shopExchangeCfgs.Sort((ShopExchangeCfg a, ShopExchangeCfg b) =>
+            {
+                //未售罄的>已售罄的
+                int buyTypeA = (a.maxLimit == 0 || a.maxLimit - GetExchangeBuyNumById(a.id) > 0) ? 1 : -1;
+                int buyTypeB = (b.maxLimit == 0 || b.maxLimit - GetExchangeBuyNumById(b.id) > 0) ? 1 : -1;
+                if (buyTypeA > buyTypeB) return -1;
+                if (buyTypeA < buyTypeB) return 1;
+                return 0;
+            });
+            return shopExchangeCfgs;
+        }
+        /// <summary>
+        /// 根据礼包Id获取礼包解锁状态
+        /// /// </summary>
+        /// <param name="giftId"></param>
+        /// <returns></returns>
+        public bool GetGiftStateById(int giftId)
+        {
+            GiftBagCfg cfg = GiftBagCfgArray.Instance.GetCfg(giftId);
+
+            if (cfg.lockType == LockType.NONE)
+            {
+                return true;
+            }
+            else if (cfg.lockType == LockType.STORY_LV)
+            {
+                return InstanceZonesDataManager.CheckLevelPass(cfg.storyLevelId);
+            }
+            else
+            {
+                return GameGlobal.myNumericComponent.GetAsInt(NumericType.Lvl) >= cfg.lv;
+            }
+        }
+        /// <summary>
+        /// 根据礼包id获取下架时间
+        /// </summary>
+        /// <param name="giftId"></param>
+        /// <returns></returns>
+        public string GetEndTime(int giftId)
+        {
+            int endTime = 0;
+            GiftBagCfg cfg = GiftBagCfgArray.Instance.GetCfg(giftId);
+            if (cfg.endTime == "") return "";
+
+            endTime = TimeUtil.DateTimeToTimestamp(cfg.endTime);
+            return TimeUtil.FormattingTime(TimeHelper.ServerNowSecs, endTime);
+        }
+    }
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/Data/RechargeDataManager.cs.meta

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

+ 89 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/CommonGame/UI_Button14.cs

@@ -0,0 +1,89 @@
+/** This is an automatically generated class by FairyGUI. Please do not modify it. **/
+
+using FairyGUI;
+
+namespace UI.CommonGame
+{
+    public partial class UI_Button14
+    {
+        public GButton target;
+        public Controller m_c1;
+        public GLoader m_loaIcon;
+        public GTextField m_txtIcon;
+        public GGroup m_grpIcon;
+        public GTextField m_txtOriginalPrice;
+        public GGroup m_grpOriginalPrice;
+        public GTextField m_txtPrice;
+        public const string URL = "ui://eg2y0ldp10nota6";
+        public const string PACKAGE_NAME = "CommonGame";
+        public const string RES_NAME = "Button14";
+        private static UI_Button14 _proxy;
+
+        public static UI_Button14 Create(GObject gObject = null)
+        {
+            var ui = new UI_Button14();
+            if(gObject == null)
+            	ui.target =  (GButton)UIPackage.CreateObject(PACKAGE_NAME, RES_NAME);
+            else
+            	ui.target =  (GButton)gObject;
+            ui.Init(ui.target);
+            return ui;
+        }
+
+        public static UI_Button14 Proxy(GObject gObject = null)
+        {
+            if(_proxy == null)
+            {
+                _proxy = new UI_Button14();
+            }
+            var ui = _proxy;
+            if(gObject == null)
+            	ui.target =  (GButton)UIPackage.CreateObject(PACKAGE_NAME, RES_NAME);
+            else
+            	ui.target =  (GButton)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_c1 = comp.GetController("c1");
+            m_loaIcon = (GLoader)comp.GetChild("loaIcon");
+            m_txtIcon = (GTextField)comp.GetChild("txtIcon");
+            m_grpIcon = (GGroup)comp.GetChild("grpIcon");
+            m_txtOriginalPrice = (GTextField)comp.GetChild("txtOriginalPrice");
+            m_grpOriginalPrice = (GGroup)comp.GetChild("grpOriginalPrice");
+            m_txtPrice = (GTextField)comp.GetChild("txtPrice");
+        }
+        public void Dispose(bool disposeTarget = false)
+        {
+            m_c1 = null;
+            m_loaIcon = null;
+            m_txtIcon = null;
+            m_grpIcon = null;
+            m_txtOriginalPrice = null;
+            m_grpOriginalPrice = null;
+            m_txtPrice = null;
+            if(disposeTarget && target != null)
+            {
+                target.RemoveFromParent();
+                target.Dispose();
+            }
+            target = null;
+        }
+    }
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/CommonGame/UI_Button14.cs.meta

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

+ 74 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/CommonGame/UI_Button5.cs

@@ -0,0 +1,74 @@
+/** This is an automatically generated class by FairyGUI. Please do not modify it. **/
+
+using FairyGUI;
+
+namespace UI.CommonGame
+{
+    public partial class UI_Button5
+    {
+        public GButton target;
+        public Controller m_c1;
+        public GLoader m_loaIcon;
+        public const string URL = "ui://eg2y0ldpd4iw59";
+        public const string PACKAGE_NAME = "CommonGame";
+        public const string RES_NAME = "Button5";
+        private static UI_Button5 _proxy;
+
+        public static UI_Button5 Create(GObject gObject = null)
+        {
+            var ui = new UI_Button5();
+            if(gObject == null)
+            	ui.target =  (GButton)UIPackage.CreateObject(PACKAGE_NAME, RES_NAME);
+            else
+            	ui.target =  (GButton)gObject;
+            ui.Init(ui.target);
+            return ui;
+        }
+
+        public static UI_Button5 Proxy(GObject gObject = null)
+        {
+            if(_proxy == null)
+            {
+                _proxy = new UI_Button5();
+            }
+            var ui = _proxy;
+            if(gObject == null)
+            	ui.target =  (GButton)UIPackage.CreateObject(PACKAGE_NAME, RES_NAME);
+            else
+            	ui.target =  (GButton)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_c1 = comp.GetController("c1");
+            m_loaIcon = (GLoader)comp.GetChild("loaIcon");
+        }
+        public void Dispose(bool disposeTarget = false)
+        {
+            m_c1 = null;
+            m_loaIcon = null;
+            if(disposeTarget && target != null)
+            {
+                target.RemoveFromParent();
+                target.Dispose();
+            }
+            target = null;
+        }
+    }
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/CommonGame/UI_Button5.cs.meta

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

+ 3 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/CommonGame/UI_BuyCountUI.cs

@@ -7,6 +7,7 @@ namespace UI.CommonGame
     public partial class UI_BuyCountUI
     {
         public GComponent target;
+        public Controller m_c1;
         public GImage m_bg;
         public GButton m_btnAll;
         public GLoader m_icon;
@@ -67,6 +68,7 @@ namespace UI.CommonGame
 
         private void Init(GComponent comp)
         {
+            m_c1 = comp.GetController("c1");
             m_bg = (GImage)comp.GetChild("bg");
             m_btnAll = (GButton)comp.GetChild("btnAll");
             m_icon = (GLoader)comp.GetChild("icon");
@@ -83,6 +85,7 @@ namespace UI.CommonGame
         }
         public void Dispose(bool disposeTarget = false)
         {
+            m_c1 = null;
             m_bg = null;
             m_btnAll = null;
             m_icon = null;

+ 71 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/RechargeStore/UI_Button2.cs

@@ -0,0 +1,71 @@
+/** This is an automatically generated class by FairyGUI. Please do not modify it. **/
+
+using FairyGUI;
+
+namespace UI.RechargeStore
+{
+    public partial class UI_Button2
+    {
+        public GButton target;
+        public GLoader m_loaMascot;
+        public const string URL = "ui://vlgobc15dmsi1q";
+        public const string PACKAGE_NAME = "RechargeStore";
+        public const string RES_NAME = "Button2";
+        private static UI_Button2 _proxy;
+
+        public static UI_Button2 Create(GObject gObject = null)
+        {
+            var ui = new UI_Button2();
+            if(gObject == null)
+            	ui.target =  (GButton)UIPackage.CreateObject(PACKAGE_NAME, RES_NAME);
+            else
+            	ui.target =  (GButton)gObject;
+            ui.Init(ui.target);
+            return ui;
+        }
+
+        public static UI_Button2 Proxy(GObject gObject = null)
+        {
+            if(_proxy == null)
+            {
+                _proxy = new UI_Button2();
+            }
+            var ui = _proxy;
+            if(gObject == null)
+            	ui.target =  (GButton)UIPackage.CreateObject(PACKAGE_NAME, RES_NAME);
+            else
+            	ui.target =  (GButton)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_loaMascot = (GLoader)comp.GetChild("loaMascot");
+        }
+        public void Dispose(bool disposeTarget = false)
+        {
+            m_loaMascot = null;
+            if(disposeTarget && target != null)
+            {
+                target.RemoveFromParent();
+                target.Dispose();
+            }
+            target = null;
+        }
+    }
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/RechargeStore/UI_Button2.cs.meta

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

+ 12 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/RechargeStore/UI_Component1.cs

@@ -8,6 +8,9 @@ namespace UI.RechargeStore
     {
         public GComponent target;
         public Controller m_c1;
+        public UI_Button2 m_btn0;
+        public UI_Button2 m_btn1;
+        public UI_Button2 m_btn2;
         public const string URL = "ui://vlgobc1510not1s";
         public const string PACKAGE_NAME = "RechargeStore";
         public const string RES_NAME = "Component1";
@@ -56,10 +59,19 @@ namespace UI.RechargeStore
         private void Init(GComponent comp)
         {
             m_c1 = comp.GetController("c1");
+            m_btn0 = (UI_Button2)UI_Button2.Create(comp.GetChild("btn0"));
+            m_btn1 = (UI_Button2)UI_Button2.Create(comp.GetChild("btn1"));
+            m_btn2 = (UI_Button2)UI_Button2.Create(comp.GetChild("btn2"));
         }
         public void Dispose(bool disposeTarget = false)
         {
             m_c1 = null;
+            m_btn0.Dispose();
+            m_btn0 = null;
+            m_btn1.Dispose();
+            m_btn1 = null;
+            m_btn2.Dispose();
+            m_btn2 = null;
             if(disposeTarget && target != null)
             {
                 target.RemoveFromParent();

+ 77 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/RechargeStore/UI_Component2.cs

@@ -0,0 +1,77 @@
+/** This is an automatically generated class by FairyGUI. Please do not modify it. **/
+
+using FairyGUI;
+
+namespace UI.RechargeStore
+{
+    public partial class UI_Component2
+    {
+        public GComponent target;
+        public Controller m_c1;
+        public GLoader m_loaIcon;
+        public GTextField m_txtTitle;
+        public const string URL = "ui://vlgobc15iftftaf";
+        public const string PACKAGE_NAME = "RechargeStore";
+        public const string RES_NAME = "Component2";
+        private static UI_Component2 _proxy;
+
+        public static UI_Component2 Create(GObject gObject = null)
+        {
+            var ui = new UI_Component2();
+            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_Component2 Proxy(GObject gObject = null)
+        {
+            if(_proxy == null)
+            {
+                _proxy = new UI_Component2();
+            }
+            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_c1 = comp.GetController("c1");
+            m_loaIcon = (GLoader)comp.GetChild("loaIcon");
+            m_txtTitle = (GTextField)comp.GetChild("txtTitle");
+        }
+        public void Dispose(bool disposeTarget = false)
+        {
+            m_c1 = null;
+            m_loaIcon = null;
+            m_txtTitle = null;
+            if(disposeTarget && target != null)
+            {
+                target.RemoveFromParent();
+                target.Dispose();
+            }
+            target = null;
+        }
+    }
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/RechargeStore/UI_Component2.cs.meta

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

+ 119 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/RechargeStore/UI_GiftBagBuyUI.cs

@@ -0,0 +1,119 @@
+/** This is an automatically generated class by FairyGUI. Please do not modify it. **/
+
+using FairyGUI;
+
+namespace UI.RechargeStore
+{
+    public partial class UI_GiftBagBuyUI
+    {
+        public GComponent target;
+        public Controller m_c1;
+        public GImage m_bg;
+        public GTextField m_txtName;
+        public GLoader m_loaIcon;
+        public GTextField m_txtLimit;
+        public GList m_list;
+        public GTextField m_txtEndTime;
+        public GGroup m_grpEndTime;
+        public GLoader m_loaPriceIcon;
+        public GTextField m_txtIcon;
+        public GGroup m_grpIcon;
+        public GTextField m_txtOriginalPrice;
+        public GGroup m_grpOriginalPrice;
+        public GTextField m_txtPrice;
+        public GGroup m_grpPrice;
+        public GButton m_btnBuy;
+        public GTextField m_txtLock;
+        public const string URL = "ui://vlgobc1510not1v";
+        public const string PACKAGE_NAME = "RechargeStore";
+        public const string RES_NAME = "GiftBagBuyUI";
+        private static UI_GiftBagBuyUI _proxy;
+
+        public static UI_GiftBagBuyUI Create(GObject gObject = null)
+        {
+            var ui = new UI_GiftBagBuyUI();
+            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_GiftBagBuyUI Proxy(GObject gObject = null)
+        {
+            if(_proxy == null)
+            {
+                _proxy = new UI_GiftBagBuyUI();
+            }
+            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_c1 = comp.GetController("c1");
+            m_bg = (GImage)comp.GetChild("bg");
+            m_txtName = (GTextField)comp.GetChild("txtName");
+            m_loaIcon = (GLoader)comp.GetChild("loaIcon");
+            m_txtLimit = (GTextField)comp.GetChild("txtLimit");
+            m_list = (GList)comp.GetChild("list");
+            m_txtEndTime = (GTextField)comp.GetChild("txtEndTime");
+            m_grpEndTime = (GGroup)comp.GetChild("grpEndTime");
+            m_loaPriceIcon = (GLoader)comp.GetChild("loaPriceIcon");
+            m_txtIcon = (GTextField)comp.GetChild("txtIcon");
+            m_grpIcon = (GGroup)comp.GetChild("grpIcon");
+            m_txtOriginalPrice = (GTextField)comp.GetChild("txtOriginalPrice");
+            m_grpOriginalPrice = (GGroup)comp.GetChild("grpOriginalPrice");
+            m_txtPrice = (GTextField)comp.GetChild("txtPrice");
+            m_grpPrice = (GGroup)comp.GetChild("grpPrice");
+            m_btnBuy = (GButton)comp.GetChild("btnBuy");
+            m_txtLock = (GTextField)comp.GetChild("txtLock");
+        }
+        public void Dispose(bool disposeTarget = false)
+        {
+            m_c1 = null;
+            m_bg = null;
+            m_txtName = null;
+            m_loaIcon = null;
+            m_txtLimit = null;
+            m_list = null;
+            m_txtEndTime = null;
+            m_grpEndTime = null;
+            m_loaPriceIcon = null;
+            m_txtIcon = null;
+            m_grpIcon = null;
+            m_txtOriginalPrice = null;
+            m_grpOriginalPrice = null;
+            m_txtPrice = null;
+            m_grpPrice = null;
+            m_btnBuy = null;
+            m_txtLock = null;
+            if(disposeTarget && target != null)
+            {
+                target.RemoveFromParent();
+                target.Dispose();
+            }
+            target = null;
+        }
+    }
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/RechargeStore/UI_GiftBagBuyUI.cs.meta

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

+ 113 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/RechargeStore/UI_ItemExchangeUI.cs

@@ -0,0 +1,113 @@
+/** This is an automatically generated class by FairyGUI. Please do not modify it. **/
+
+using FairyGUI;
+
+namespace UI.RechargeStore
+{
+    public partial class UI_ItemExchangeUI
+    {
+        public GComponent target;
+        public GImage m_bg;
+        public GTextField m_txtName;
+        public GLoader m_icon;
+        public GLoader m_rarity;
+        public GTextField m_txtNum;
+        public GTextField m_txtLastCount;
+        public GTextField m_txtHasCount;
+        public GTextField m_txtCount;
+        public GButton m_btnPlus;
+        public GButton m_btnMinus;
+        public GButton m_btnAll;
+        public GLoader m_iconPrice;
+        public GTextField m_txtPrice;
+        public GButton m_btnExchange;
+        public GTextField m_txtDiscribe;
+        public const string URL = "ui://vlgobc1510nota8";
+        public const string PACKAGE_NAME = "RechargeStore";
+        public const string RES_NAME = "ItemExchangeUI";
+        private static UI_ItemExchangeUI _proxy;
+
+        public static UI_ItemExchangeUI Create(GObject gObject = null)
+        {
+            var ui = new UI_ItemExchangeUI();
+            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_ItemExchangeUI Proxy(GObject gObject = null)
+        {
+            if(_proxy == null)
+            {
+                _proxy = new UI_ItemExchangeUI();
+            }
+            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_bg = (GImage)comp.GetChild("bg");
+            m_txtName = (GTextField)comp.GetChild("txtName");
+            m_icon = (GLoader)comp.GetChild("icon");
+            m_rarity = (GLoader)comp.GetChild("rarity");
+            m_txtNum = (GTextField)comp.GetChild("txtNum");
+            m_txtLastCount = (GTextField)comp.GetChild("txtLastCount");
+            m_txtHasCount = (GTextField)comp.GetChild("txtHasCount");
+            m_txtCount = (GTextField)comp.GetChild("txtCount");
+            m_btnPlus = (GButton)comp.GetChild("btnPlus");
+            m_btnMinus = (GButton)comp.GetChild("btnMinus");
+            m_btnAll = (GButton)comp.GetChild("btnAll");
+            m_iconPrice = (GLoader)comp.GetChild("iconPrice");
+            m_txtPrice = (GTextField)comp.GetChild("txtPrice");
+            m_btnExchange = (GButton)comp.GetChild("btnExchange");
+            m_txtDiscribe = (GTextField)comp.GetChild("txtDiscribe");
+        }
+        public void Dispose(bool disposeTarget = false)
+        {
+            m_bg = null;
+            m_txtName = null;
+            m_icon = null;
+            m_rarity = null;
+            m_txtNum = null;
+            m_txtLastCount = null;
+            m_txtHasCount = null;
+            m_txtCount = null;
+            m_btnPlus = null;
+            m_btnMinus = null;
+            m_btnAll = null;
+            m_iconPrice = null;
+            m_txtPrice = null;
+            m_btnExchange = null;
+            m_txtDiscribe = null;
+            if(disposeTarget && target != null)
+            {
+                target.RemoveFromParent();
+                target.Dispose();
+            }
+            target = null;
+        }
+    }
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/RechargeStore/UI_ItemExchangeUI.cs.meta

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

+ 119 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/RechargeStore/UI_ListGiftItem.cs

@@ -0,0 +1,119 @@
+/** This is an automatically generated class by FairyGUI. Please do not modify it. **/
+
+using FairyGUI;
+
+namespace UI.RechargeStore
+{
+    public partial class UI_ListGiftItem
+    {
+        public GComponent target;
+        public Controller m_c1;
+        public Controller m_c2;
+        public GLoader m_icon;
+        public GTextField m_txtName;
+        public GTextField m_txtDesc;
+        public GGroup m_grpDiscount;
+        public GTextField m_txtEndTime;
+        public GGroup m_grpEndTime;
+        public GTextField m_txtLimit;
+        public GTextField m_txtLock;
+        public GLoader m_loaIcon;
+        public GTextField m_txtIcon;
+        public GGroup m_grpIcon;
+        public GTextField m_txtOriginalPrice;
+        public GGroup m_grpOriginalPrice;
+        public GTextField m_txtPrice;
+        public GGroup m_grpPrice;
+        public const string URL = "ui://vlgobc1510not1t";
+        public const string PACKAGE_NAME = "RechargeStore";
+        public const string RES_NAME = "ListGiftItem";
+        private static UI_ListGiftItem _proxy;
+
+        public static UI_ListGiftItem Create(GObject gObject = null)
+        {
+            var ui = new UI_ListGiftItem();
+            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_ListGiftItem Proxy(GObject gObject = null)
+        {
+            if(_proxy == null)
+            {
+                _proxy = new UI_ListGiftItem();
+            }
+            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_c1 = comp.GetController("c1");
+            m_c2 = comp.GetController("c2");
+            m_icon = (GLoader)comp.GetChild("icon");
+            m_txtName = (GTextField)comp.GetChild("txtName");
+            m_txtDesc = (GTextField)comp.GetChild("txtDesc");
+            m_grpDiscount = (GGroup)comp.GetChild("grpDiscount");
+            m_txtEndTime = (GTextField)comp.GetChild("txtEndTime");
+            m_grpEndTime = (GGroup)comp.GetChild("grpEndTime");
+            m_txtLimit = (GTextField)comp.GetChild("txtLimit");
+            m_txtLock = (GTextField)comp.GetChild("txtLock");
+            m_loaIcon = (GLoader)comp.GetChild("loaIcon");
+            m_txtIcon = (GTextField)comp.GetChild("txtIcon");
+            m_grpIcon = (GGroup)comp.GetChild("grpIcon");
+            m_txtOriginalPrice = (GTextField)comp.GetChild("txtOriginalPrice");
+            m_grpOriginalPrice = (GGroup)comp.GetChild("grpOriginalPrice");
+            m_txtPrice = (GTextField)comp.GetChild("txtPrice");
+            m_grpPrice = (GGroup)comp.GetChild("grpPrice");
+        }
+        public void Dispose(bool disposeTarget = false)
+        {
+            m_c1 = null;
+            m_c2 = null;
+            m_icon = null;
+            m_txtName = null;
+            m_txtDesc = null;
+            m_grpDiscount = null;
+            m_txtEndTime = null;
+            m_grpEndTime = null;
+            m_txtLimit = null;
+            m_txtLock = null;
+            m_loaIcon = null;
+            m_txtIcon = null;
+            m_grpIcon = null;
+            m_txtOriginalPrice = null;
+            m_grpOriginalPrice = null;
+            m_txtPrice = null;
+            m_grpPrice = null;
+            if(disposeTarget && target != null)
+            {
+                target.RemoveFromParent();
+                target.Dispose();
+            }
+            target = null;
+        }
+    }
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/RechargeStore/UI_ListGiftItem.cs.meta

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

+ 9 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/RechargeStore/UI_RechargeStoreUI.cs

@@ -11,7 +11,10 @@ namespace UI.RechargeStore
         public GButton m_btnBack;
         public GComponent m_valueBar;
         public UI_Component1 m_comTab;
+        public GTextField m_txtRefreshTime;
         public GList m_list;
+        public GList m_listGift;
+        public GList m_listExchange;
         public const string URL = "ui://vlgobc15d4iw0";
         public const string PACKAGE_NAME = "RechargeStore";
         public const string RES_NAME = "RechargeStoreUI";
@@ -63,7 +66,10 @@ namespace UI.RechargeStore
             m_btnBack = (GButton)comp.GetChild("btnBack");
             m_valueBar = (GComponent)comp.GetChild("valueBar");
             m_comTab = (UI_Component1)UI_Component1.Create(comp.GetChild("comTab"));
+            m_txtRefreshTime = (GTextField)comp.GetChild("txtRefreshTime");
             m_list = (GList)comp.GetChild("list");
+            m_listGift = (GList)comp.GetChild("listGift");
+            m_listExchange = (GList)comp.GetChild("listExchange");
         }
         public void Dispose(bool disposeTarget = false)
         {
@@ -72,7 +78,10 @@ namespace UI.RechargeStore
             m_valueBar = null;
             m_comTab.Dispose();
             m_comTab = null;
+            m_txtRefreshTime = null;
             m_list = null;
+            m_listGift = null;
+            m_listExchange = null;
             if(disposeTarget && target != null)
             {
                 target.RemoveFromParent();

+ 9 - 5
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/RechargeStore/UI_StoreListItem.cs

@@ -7,11 +7,12 @@ namespace UI.RechargeStore
     public partial class UI_StoreListItem
     {
         public GComponent target;
+        public Controller m_c1;
         public GImage m_imgDouble;
         public GLoader m_icon;
         public GTextField m_txtName;
-        public GButton m_btnBuy;
-        public GTextField m_txtDouble;
+        public UI_Component2 m_btnBuy;
+        public GTextField m_txtDesc;
         public const string URL = "ui://vlgobc15d4iwr";
         public const string PACKAGE_NAME = "RechargeStore";
         public const string RES_NAME = "StoreListItem";
@@ -59,19 +60,22 @@ namespace UI.RechargeStore
 
         private void Init(GComponent comp)
         {
+            m_c1 = comp.GetController("c1");
             m_imgDouble = (GImage)comp.GetChild("imgDouble");
             m_icon = (GLoader)comp.GetChild("icon");
             m_txtName = (GTextField)comp.GetChild("txtName");
-            m_btnBuy = (GButton)comp.GetChild("btnBuy");
-            m_txtDouble = (GTextField)comp.GetChild("txtDouble");
+            m_btnBuy = (UI_Component2)UI_Component2.Create(comp.GetChild("btnBuy"));
+            m_txtDesc = (GTextField)comp.GetChild("txtDesc");
         }
         public void Dispose(bool disposeTarget = false)
         {
+            m_c1 = null;
             m_imgDouble = null;
             m_icon = null;
             m_txtName = null;
+            m_btnBuy.Dispose();
             m_btnBuy = null;
-            m_txtDouble = null;
+            m_txtDesc = null;
             if(disposeTarget && target != null)
             {
                 target.RemoveFromParent();

+ 81 - 0
GameClient/Assets/Game/HotUpdate/ServerProxy/RechargeSProxy.cs

@@ -12,9 +12,90 @@ namespace GFGGame
             {
                 if (response.Error == ErrorCode.ERR_Success)
                 {
+                    RechargeDataManager.Instance.UpdateRechargeData(response.RechargeId, response.RechargedTimes);
                     PromptController.Instance.ShowFloatTextPrompt("虚拟充值成功", MessageType.SUCCESS);
+                    EventAgent.DispatchEvent(ConstMessage.BUY_RECHARGE_SUCCESS);
+
+                }
+            }
+        }
+        public static async ETTask ReqRechargeInfo()
+        {
+            M2C_GetRechargeInfo response = null;
+            response = (M2C_GetRechargeInfo)await MessageHelper.SendToServer(new C2M_GetRechargeInfo() { });
+            if (response != null)
+            {
+                if (response.Error == ErrorCode.ERR_Success)
+                {
+                    for (int i = 0; i < response.ks.Count; i++)
+                    {
+                        RechargeDataManager.Instance.UpdateRechargeData(response.ks[i], response.vs[i]);
+                    }
+                }
+            }
+        }
+        public static async ETTask ReqRequestGiftBagInfo()
+        {
+            M2C_RequestGiftBagInfo response = null;
+            response = (M2C_RequestGiftBagInfo)await MessageHelper.SendToServer(new C2M_RequestGiftBagInfo() { });
+            if (response != null)
+            {
+                if (response.Error == ErrorCode.ERR_Success)
+                {
+                    for (int i = 0; i < response.ks.Count; i++)
+                    {
+                        RechargeDataManager.Instance.UpdateGiftData(response.ks[i], response.vs[i]);
+                    }
+                }
+            }
+        }
+        public static async ETTask<bool> ReqBuyGiftBag(int giftId)
+        {
+            M2C_BuyGiftBag response = null;
+            response = (M2C_BuyGiftBag)await MessageHelper.SendToServer(new C2M_BuyGiftBag() { GiftBagId = giftId });
+            if (response != null)
+            {
+                if (response.Error == ErrorCode.ERR_Success)
+                {
+                    RechargeDataManager.Instance.UpdateGiftData(response.GiftBagId, response.BuyTimes);
+                    BonusController.TryShowBonusList(GiftBagCfgArray.Instance.GetCfg(response.GiftBagId).itemsArr);
+                    EventAgent.DispatchEvent(ConstMessage.BUY_GIFT_SUCCESS);
+                    return true;
+                }
+            }
+            return false;
+        }
+        public static async ETTask ReqExchangeInfo()
+        {
+            M2C_RequestShopExchangeInfo response = null;
+            response = (M2C_RequestShopExchangeInfo)await MessageHelper.SendToServer(new C2M_RequestShopExchangeInfo() { });
+            if (response != null)
+            {
+                if (response.Error == ErrorCode.ERR_Success)
+                {
+                    for (int i = 0; i < response.ks.Count; i++)
+                    {
+                        RechargeDataManager.Instance.UpdateExchangeData(response.ks[i], response.vs[i]);
+                    }
+                }
+            }
+        }
+        public static async ETTask<bool> ReqExchangeShopItem(int exchangeId, int buyNum)
+        {
+            M2C_ExchangeShopItem response = null;
+            response = (M2C_ExchangeShopItem)await MessageHelper.SendToServer(new C2M_ExchangeShopItem() { ExchangeId = exchangeId, Times = buyNum });
+            if (response != null)
+            {
+                if (response.Error == ErrorCode.ERR_Success)
+                {
+                    RechargeDataManager.Instance.UpdateExchangeData(response.ExchangeId, response.ExchangedTimes);
+                    EventAgent.DispatchEvent(ConstMessage.BUY_EXCHANGE_SUCCESS);
+                    ShopExchangeCfg cfg = ShopExchangeCfgArray.Instance.GetCfg(response.ExchangeId);
+                    BonusController.TryShowBonusList(ItemUtil.CreateItemDataList(cfg.itemId, cfg.num * response.Times));
+                    return true;
                 }
             }
+            return false;
         }
     }
 }

+ 130 - 0
GameClient/Assets/Game/HotUpdate/Views/RechargeStore/GiftBagBuyView.cs

@@ -0,0 +1,130 @@
+using System.Threading.Tasks;
+using FairyGUI;
+using UI.RechargeStore;
+
+namespace GFGGame
+{
+    public class GiftBagBuyView : BaseWindow
+    {
+        private UI_GiftBagBuyUI _ui;
+        private int _giftId;
+        public override void Dispose()
+        {
+
+            if (_ui != null)
+            {
+                _ui.Dispose();
+            }
+            _ui = null;
+            base.Dispose();
+        }
+        protected override void OnHide()
+        {
+            base.OnHide();
+
+        }
+        protected override void OnInit()
+        {
+            base.OnInit();
+            packageName = UI_GiftBagBuyUI.PACKAGE_NAME;
+            _ui = UI_GiftBagBuyUI.Create();
+            this.viewCom = _ui.target;
+            this.viewCom.Center();
+            this.modal = true;
+            viewAnimationType = EnumViewAnimationType.ZOOM_CENTER;
+
+            _ui.m_btnBuy.onClick.Add(OnBtnBuyClick);
+            _ui.m_list.itemRenderer = ListItemRender;
+        }
+
+        protected override void OnShown()
+        {
+            base.OnShown();
+            _giftId = (int)this.viewData;
+            GiftBagCfg cfg = GiftBagCfgArray.Instance.GetCfg(_giftId);
+            _ui.m_txtName.text = cfg.name;
+            _ui.m_loaIcon.url = string.Format("ui://RechargeStore/{0}", cfg.res);
+            _ui.m_list.numItems = cfg.itemsArr.Length;
+            _ui.m_c1.selectedIndex = RechargeDataManager.Instance.GetGiftStateById(_giftId) ? 0 : 1;
+            if (cfg.lockType == LockType.STORY_LV)
+            {
+                StoryLevelCfg storyLevelCfg = StoryLevelCfgArray.Instance.GetCfg(cfg.storyLevelId);
+                _ui.m_txtLock.text = string.Format("通关{0}-{1}解锁", StoryUtil.GetChapterOrder(storyLevelCfg.chapterId), storyLevelCfg.order);
+            }
+            else if (cfg.lockType == LockType.ROLE_LV)
+            {
+                _ui.m_txtLock.text = string.Format("角色达到{0}级解锁", cfg.lv);
+            }
+            int buyNum = RechargeDataManager.Instance.GetGiftBuyNumById(cfg.id);
+            _ui.m_txtLimit.text = string.Format("每{0}限购({1}/{2})", RechargeDataManager.Instance.refreshType[cfg.refreshType], StringUtil.GetColorText(buyNum.ToString(), "#DA8870"), cfg.maxBuyNum);
+            if (cfg.refreshType == RefreshType.NONE) _ui.m_txtLimit.text = "永久限购";
+            _ui.m_txtEndTime.text = RechargeDataManager.Instance.GetEndTime(cfg.id);
+            _ui.m_grpEndTime.visible = cfg.endTime != "";
+
+            _ui.m_txtOriginalPrice.text = cfg.originalPrice.ToString();
+            if (cfg.price > 0 && cfg.costType != CostType.FREE)
+            {
+                _ui.m_grpOriginalPrice.visible = cfg.originalPrice > 0;
+                _ui.m_grpIcon.visible = true;
+                _ui.m_txtPrice.text = cfg.price.ToString();
+
+                if (cfg.costType == CostType.RMB)
+                {
+                    _ui.m_loaPriceIcon.visible = false;
+                    _ui.m_txtIcon.visible = true;
+                    _ui.m_txtIcon.text = "¥";
+                }
+                else
+                {
+                    ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(cfg.costId);
+                    _ui.m_loaPriceIcon.url = ResPathUtil.GetIconPath(itemCfg);
+                    _ui.m_loaPriceIcon.visible = true;
+                    _ui.m_txtIcon.visible = false;
+                }
+            }
+            else
+            {
+                _ui.m_grpIcon.visible = false;
+                _ui.m_grpOriginalPrice.visible = false;
+                _ui.m_txtPrice.text = "免费";
+            }
+        }
+
+
+
+        private void ListItemRender(int index, GObject item)
+        {
+            GiftBagCfg cfg = GiftBagCfgArray.Instance.GetCfg(_giftId);
+            ItemData itemData = ItemUtil.createItemData(cfg.itemsArr[index]);
+            if (item.data == null)
+            {
+                item.data = new ItemView(item as GComponent);
+            }
+            (item.data as ItemView).SetData(itemData);
+        }
+        private async void OnBtnBuyClick()
+        {
+
+            GiftBagCfg cfg = GiftBagCfgArray.Instance.GetCfg(_giftId);
+            if (cfg.costType == CostType.MONEY || cfg.costType == CostType.ITEM)
+            {
+                int hasNum = ItemDataManager.GetItemNum(cfg.costId);
+                if (hasNum < cfg.price)
+                {
+                    PromptController.Instance.ShowFloatTextPrompt("道具不足");
+                    return;
+                }
+            }
+            bool result = await RechargeSProxy.ReqBuyGiftBag(_giftId);
+            if (result)
+            {
+                this.Hide();
+                if (cfg.costType == CostType.RMB)
+                {
+
+                    PromptController.Instance.ShowFloatTextPrompt("虚拟充值购买成功");
+                }
+            }
+        }
+    }
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/Views/RechargeStore/GiftBagBuyView.cs.meta

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

+ 137 - 0
GameClient/Assets/Game/HotUpdate/Views/RechargeStore/ItemExchangeView.cs

@@ -0,0 +1,137 @@
+using System;
+using FairyGUI;
+using UI.RechargeStore;
+
+namespace GFGGame
+{
+    public class ItemExchangeView : BaseWindow
+    {
+        private UI_ItemExchangeUI _ui;
+        private int _exchangeId;
+        private int _buyCount = 0;
+        private int _maxCanBuy = 0;
+        public override void Dispose()
+        {
+
+            if (_ui != null)
+            {
+                _ui.Dispose();
+            }
+            _ui = null;
+            base.Dispose();
+        }
+        protected override void OnHide()
+        {
+            base.OnHide();
+
+        }
+        protected override void OnInit()
+        {
+            base.OnInit();
+            packageName = UI_GiftBagBuyUI.PACKAGE_NAME;
+            _ui = UI_ItemExchangeUI.Create();
+            this.viewCom = _ui.target;
+            this.viewCom.Center();
+            this.modal = true;
+            viewAnimationType = EnumViewAnimationType.ZOOM_CENTER;
+
+            _ui.m_btnPlus.onClick.Add(OnBtnPlusClick);
+            _ui.m_btnMinus.onClick.Add(OnBtnMinusClick);
+            _ui.m_btnAll.onClick.Add(OnBtnAllClick);
+            _ui.m_btnExchange.onClick.Add(OnBtnExchangeClick);
+        }
+
+        protected override void OnShown()
+        {
+            base.OnShown();
+
+            _exchangeId = (int)this.viewData;
+            ShopExchangeCfg cfg = ShopExchangeCfgArray.Instance.GetCfg(_exchangeId);
+
+            _buyCount = 1;
+            if (cfg.maxLimit == 0)
+            {
+                _maxCanBuy = Math.Min(ItemDataManager.GetItemNum(cfg.costId) / cfg.costNum, GameConst.MAX_COUNT_TO_BUY_ITEMS);
+            }
+            else
+            {
+                _maxCanBuy = Math.Min(ItemDataManager.GetItemNum(cfg.costId) / cfg.costNum, cfg.maxLimit - RechargeDataManager.Instance.GetExchangeBuyNumById(cfg.id));
+            }
+
+            UpdateStaticView();
+            UpdateView();
+        }
+        private void UpdateStaticView()
+        {
+            ShopExchangeCfg cfg = ShopExchangeCfgArray.Instance.GetCfg(_exchangeId);
+            ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(cfg.itemId);
+            _ui.m_txtName.text = itemCfg.name;
+            _ui.m_txtDiscribe.text = itemCfg.desc;
+            _ui.m_txtHasCount.text = string.Format("已拥有:{0}", StringUtil.GetColorText(ItemDataManager.GetItemNum(cfg.itemId).ToString(), "#BC8068"));
+            _ui.m_icon.url = ResPathUtil.GetIconPath(itemCfg);
+            _ui.m_rarity.visible = false;
+            if (ItemUtilCS.IsDressUpItem(cfg.itemId))
+            {
+                _ui.m_rarity.visible = true;
+                RarityIconController.UpdateRarityIcon(_ui.m_rarity, cfg.itemId, false);
+            }
+            _ui.m_txtLastCount.text = string.Format("剩余:{0}", cfg.maxLimit - RechargeDataManager.Instance.GetExchangeBuyNumById(cfg.id));
+            if (cfg.maxLimit == 0) _ui.m_txtLastCount.text = "剩余:不限";
+
+            ItemCfg costItemCfg = ItemCfgArray.Instance.GetCfg(cfg.costId);
+            _ui.m_iconPrice.url = ResPathUtil.GetCommonGameResPath(costItemCfg.res);
+
+        }
+        private void UpdateView()
+        {
+
+            _ui.m_btnAll.enabled = _buyCount < _maxCanBuy;
+            _ui.m_btnPlus.enabled = _buyCount < _maxCanBuy;
+
+            ShopExchangeCfg cfg = ShopExchangeCfgArray.Instance.GetCfg(_exchangeId);
+            _ui.m_txtNum.text = string.Format("x{0}", cfg.num * _buyCount);
+            _ui.m_txtCount.text = _buyCount.ToString();
+            _ui.m_txtPrice.text = (_buyCount * cfg.costNum).ToString();
+        }
+
+
+        private void OnBtnPlusClick()
+        {
+            _buyCount++;
+            UpdateView();
+
+        }
+
+        private void OnBtnMinusClick()
+        {
+            if (_buyCount == 1)
+            {
+                PromptController.Instance.ShowFloatTextPrompt("已经是最小数量了");
+                return;
+            }
+
+            _buyCount--;
+            UpdateView();
+        }
+        private void OnBtnAllClick()
+        {
+            _buyCount = _maxCanBuy;
+            UpdateView();
+        }
+        private async void OnBtnExchangeClick()
+        {
+            ShopExchangeCfg cfg = ShopExchangeCfgArray.Instance.GetCfg(_exchangeId);
+            if (ItemDataManager.GetItemNum(cfg.costId) < cfg.costNum)
+            {
+                PromptController.Instance.ShowFloatTextPrompt("道具不足");
+                return;
+            }
+
+            bool result = await RechargeSProxy.ReqExchangeShopItem(_exchangeId, _buyCount);
+            if (result)
+            {
+                this.Hide();
+            }
+        }
+    }
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/Views/RechargeStore/ItemExchangeView.cs.meta

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

+ 168 - 8
GameClient/Assets/Game/HotUpdate/Views/RechargeStore/RechargeStoreView.cs

@@ -1,6 +1,8 @@
 using UI.RechargeStore;
 using UI.CommonGame;
 using FairyGUI;
+using System.Collections.Generic;
+using ET;
 
 namespace GFGGame
 {
@@ -9,6 +11,8 @@ namespace GFGGame
         private UI_RechargeStoreUI _ui;
         private ValueBarController _valueBarController;
 
+        private List<GiftBagCfg> _giftCfgs;
+        private List<ShopExchangeCfg> _exchangeCfgs;
         public override void Dispose()
         {
             _valueBarController.Dispose();
@@ -33,21 +37,39 @@ namespace GFGGame
             _ui.m_btnBack.onClick.Add(OnClickBtnBack);
 
             _ui.m_list.itemRenderer = ListItemRenderer;
+            _ui.m_listGift.itemRenderer = ListGiftItemRenderer;
+            _ui.m_listExchange.itemRenderer = ListExchangeItemRenderer;
+
             _ui.m_comTab.m_c1.onChanged.Add(OnComTabChange);
             _ui.m_c1.onChanged.Add(OnTabChange);
+
+            EventAgent.AddEventListener(ConstMessage.BUY_RECHARGE_SUCCESS, () =>
+            {
+                _ui.m_list.numItems = RechargeCfgArray.Instance.dataArray.Length;
+            });
+            EventAgent.AddEventListener(ConstMessage.BUY_EXCHANGE_SUCCESS, UpdateExchangeList);
+            EventAgent.AddEventListener(ConstMessage.BUY_GIFT_SUCCESS, UpdateGiftBagList);
         }
 
         protected override void OnShown()
         {
             base.OnShown();
             _valueBarController.OnShown();
+            _ui.m_c1.selectedIndex = 0;
+            _ui.m_comTab.m_c1.selectedIndex = 0;
             _ui.m_list.numItems = RechargeCfgArray.Instance.dataArray.Length;
+            UpdateExchangeList();
+            UpdateGiftBagList();
+            OnTabChange();
+            Timers.inst.Add(1, 0, UpdateExchangeTime);
         }
 
         protected override void OnHide()
         {
             base.OnHide();
             _valueBarController.OnHide();
+            Timers.inst.Remove(UpdateExchangeTime);
+
         }
 
         private void OnClickBtnBack()
@@ -57,32 +79,170 @@ namespace GFGGame
         private void OnComTabChange()
         {
             _ui.m_c1.selectedIndex = _ui.m_comTab.m_c1.selectedIndex;
+
         }
         private void OnTabChange()
         {
-
+            _ui.m_list.ScrollToView(0);
+            _ui.m_listGift.ScrollToView(0);
+            _ui.m_listExchange.ScrollToView(0);
+        }
+        private void UpdateGiftBagList()
+        {
+            _giftCfgs = RechargeDataManager.Instance.GetGiftBagCfgs();
+            _ui.m_listGift.numItems = _giftCfgs.Count;
+        }
+        private void UpdateExchangeList()
+        {
+            _exchangeCfgs = RechargeDataManager.Instance.GetExchangeCfgs();
+            _ui.m_listExchange.numItems = _exchangeCfgs.Count;
+        }
+        private void UpdateExchangeTime(object param)
+        {
+            int endTime = TimeUtil.GetTomorrowTime(GlobalCfgArray.globalCfg.refreshTime);
+            string time = TimeUtil.FormattingTime(TimeHelper.ServerNowSecs, endTime);
+            _ui.m_txtRefreshTime.text = time + "后刷新";
+            for (int i = 0; i < _ui.m_listGift.numItems; i++)
+            {
+                UI_ListGiftItem item = UI_ListGiftItem.Proxy(_ui.m_listGift.GetChildAt(i));
+                GiftBagCfg cfg = _giftCfgs[i];
+                item.m_txtEndTime.text = RechargeDataManager.Instance.GetEndTime(cfg.id);
+            }
         }
         private void ListItemRenderer(int index, GObject obj)
         {
             RechargeCfg itemData = RechargeCfgArray.Instance.dataArray[index];
             UI_StoreListItem item = UI_StoreListItem.Proxy(obj);
-            item.m_btnBuy.text = itemData.price.ToString();
-            if (item.m_btnBuy.data == null)
+            item.m_btnBuy.m_c1.selectedIndex = 1;
+            item.m_btnBuy.m_txtTitle.text = itemData.price.ToString();
+            if (item.target.data == null)
             {
-                item.m_btnBuy.onClick.Add(() =>
+                item.target.onClick.Add(() =>
                 {
                     RechargeSProxy.ReqRecharge(itemData.id).Coroutine();
                 });
             }
-            item.m_btnBuy.data = index;
+            item.target.data = index;
             item.m_txtName.text = string.Format("{0}{1}", itemData.itemNum, itemData.name);
-            item.m_txtDouble.text = string.Format("首冲赠送+{0}{1}", itemData.itemNum, itemData.name);
-            item.m_imgDouble.visible = false;
-            item.m_txtDouble.visible = false;
+            item.m_txtDesc.text = string.Format("首充赠送+{0}{1}", itemData.itemNum, itemData.name);
+            bool isDouble = RechargeDataManager.Instance.GetRechargeBuyNumById(itemData.id) < itemData.doubleTimes;
+            item.m_imgDouble.visible = isDouble;
+            item.m_txtDesc.visible = isDouble;
             item.m_icon.url = "ui://RechargeStore/sc_zizhuan_" + itemData.id;
 
             UI_StoreListItem.ProxyEnd();
         }
 
+        private void ListGiftItemRenderer(int index, GObject obj)
+        {
+            UI_ListGiftItem item = UI_ListGiftItem.Proxy(obj);
+            GiftBagCfg cfg = _giftCfgs[index];
+
+            item.m_txtName.text = cfg.name;
+            item.m_icon.url = string.Format("ui://RechargeStore/{0}", cfg.res);
+
+            item.m_txtDesc.SetVar("count", cfg.desc).FlushVars(); ;
+            item.m_grpDiscount.visible = cfg.desc != "";
+
+            item.m_txtEndTime.text = RechargeDataManager.Instance.GetEndTime(cfg.id);
+            item.m_grpEndTime.visible = cfg.endTime != "";
+
+            item.m_c2.selectedIndex = RechargeDataManager.Instance.GetGiftStateById(cfg.id) ? 0 : 1;
+            if (cfg.lockType == LockType.STORY_LV)
+            {
+                StoryLevelCfg storyLevelCfg = StoryLevelCfgArray.Instance.GetCfg(cfg.storyLevelId);
+                item.m_txtLock.text = string.Format("通关{0}-{1}解锁", StoryUtil.GetChapterOrder(storyLevelCfg.chapterId), storyLevelCfg.order);
+            }
+            else if (cfg.lockType == LockType.ROLE_LV)
+            {
+                item.m_txtLock.text = string.Format("角色达到{0}级解锁", cfg.lv);
+            }
+
+            int buyNum = RechargeDataManager.Instance.GetGiftBuyNumById(cfg.id);
+            item.m_txtLimit.text = string.Format("{0}({1}/{2})", RechargeDataManager.Instance.refreshType[cfg.refreshType], StringUtil.GetColorText(buyNum.ToString(), "#DA8870"), cfg.maxBuyNum);
+            item.m_txtLimit.visible = cfg.maxBuyNum > 0;
+            item.m_c1.selectedIndex = cfg.maxBuyNum == 0 || buyNum < cfg.maxBuyNum ? 0 : 1;
+            if (item.m_c1.selectedIndex == 0)
+            {
+                item.m_txtOriginalPrice.text = cfg.originalPrice.ToString();
+                if (cfg.price > 0 && cfg.costType != CostType.FREE)
+                {
+                    item.m_grpOriginalPrice.visible = cfg.originalPrice > 0;
+                    item.m_grpIcon.visible = true;
+                    item.m_txtPrice.text = cfg.price.ToString();
+
+                    if (cfg.costType == CostType.RMB)
+                    {
+                        item.m_loaIcon.visible = false;
+                        item.m_txtIcon.visible = true;
+                        item.m_txtIcon.text = "¥";
+                    }
+                    else
+                    {
+                        ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(cfg.costId);
+                        item.m_loaIcon.url = ResPathUtil.GetCommonGameResPath(itemCfg.res);
+                        item.m_loaIcon.visible = true;
+                        item.m_txtIcon.visible = false;
+                    }
+                }
+                else
+                {
+                    item.m_grpIcon.visible = false;
+                    item.m_grpOriginalPrice.visible = false;
+                    item.m_txtPrice.text = "免费";
+                }
+            }
+
+            if (item.target.data == null)
+            {
+                item.target.onClick.Add(OnBtnBuyClick);
+            }
+            item.target.data = cfg.id;
+            UI_ListGiftItem.ProxyEnd();
+        }
+        private void OnBtnBuyClick(EventContext context)
+        {
+            GObject btn = context.sender as GObject;
+            int giftId = (int)btn.data;
+            GiftBagCfg cfg = GiftBagCfgArray.Instance.GetCfg(giftId);
+            if (cfg.maxBuyNum != 0 && RechargeDataManager.Instance.GetGiftBuyNumById(giftId) == cfg.maxBuyNum)
+            {
+                PromptController.Instance.ShowFloatTextPrompt("已售罄");
+                return;
+            }
+            ViewManager.Show<GiftBagBuyView>(btn.data);
+        }
+
+        private void ListExchangeItemRenderer(int index, GObject obj)
+        {
+            ShopExchangeCfg cfg = _exchangeCfgs[index];
+            UI_StoreListItem item = UI_StoreListItem.Proxy(obj);
+            item.m_btnBuy.m_c1.selectedIndex = 0;
+            item.m_btnBuy.m_txtTitle.text = cfg.costNum.ToString();
+            bool isSellOut = cfg.maxLimit > 0 && cfg.maxLimit - RechargeDataManager.Instance.GetExchangeBuyNumById(cfg.id) <= 0;
+            item.m_c1.selectedIndex = isSellOut ? 1 : 0;
+            if (item.target.data == null)
+            {
+                item.target.onClick.Add(() =>
+                {
+                    if (isSellOut)
+                    {
+                        PromptController.Instance.ShowFloatTextPrompt("已售罄");
+                        return;
+                    }
+                    ViewManager.Show<ItemExchangeView>(cfg.id);
+                });
+            }
+            ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(cfg.itemId);
+            item.target.data = cfg.id;
+            item.m_btnBuy.m_loaIcon.url = ResPathUtil.GetCommonGameResPath(ItemCfgArray.Instance.GetCfg(cfg.costId).res);
+            item.m_txtName.text = itemCfg.name;
+            item.m_txtDesc.text = string.Format("剩余:{0}", cfg.maxLimit - RechargeDataManager.Instance.GetExchangeBuyNumById(cfg.id));
+            if (cfg.maxLimit == 0) item.m_txtDesc.text = "剩余:不限";
+            item.m_imgDouble.visible = false;
+            item.m_icon.url = ResPathUtil.GetIconPath(itemCfg);
+
+            UI_StoreListItem.ProxyEnd();
+        }
     }
 }

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


BIN
GameClient/Assets/ResIn/UI/CommonGame/CommonGame_atlas0!a.png


BIN
GameClient/Assets/ResIn/UI/CommonGame/CommonGame_atlas0.png


BIN
GameClient/Assets/ResIn/UI/CommonGame/CommonGame_fui.bytes


BIN
GameClient/Assets/ResIn/UI/RechargeStore/RechargeStore_atlas0!a.png


BIN
GameClient/Assets/ResIn/UI/RechargeStore/RechargeStore_atlas0.png


BIN
GameClient/Assets/ResIn/UI/RechargeStore/RechargeStore_fui.bytes