zhaoyang 3 жил өмнө
parent
commit
cd3386dbc5
89 өөрчлөгдсөн 1603 нэмэгдсэн , 35 устгасан
  1. 2 2
      FGUIProject/assets/Card/CardSkillUI.xml
  2. 0 1
      FGUIProject/assets/Card/package.xml
  3. 14 0
      FGUIProject/assets/ClothingDecompose/ClothingDecomposeRuleUI.xml
  4. 38 0
      FGUIProject/assets/ClothingDecompose/ClothingDecomposeUI.xml
  5. 8 0
      FGUIProject/assets/ClothingDecompose/components/Button1.xml
  6. 8 0
      FGUIProject/assets/ClothingDecompose/components/Button2.xml
  7. 19 0
      FGUIProject/assets/ClothingDecompose/components/Button4.xml
  8. 16 0
      FGUIProject/assets/ClothingDecompose/components/Button5.xml
  9. 8 0
      FGUIProject/assets/ClothingDecompose/components/ButtonMinus.xml
  10. 18 0
      FGUIProject/assets/ClothingDecompose/components/ComBtnTab.xml
  11. 27 0
      FGUIProject/assets/ClothingDecompose/components/ListItem.xml
  12. 9 0
      FGUIProject/assets/ClothingDecompose/components/ListRewardItem.xml
  13. BIN
      FGUIProject/assets/ClothingDecompose/images/fzfj_anniu_1.png
  14. BIN
      FGUIProject/assets/ClothingDecompose/images/fzfj_anniu_2.png
  15. BIN
      FGUIProject/assets/ClothingDecompose/images/fzfj_anniudik.png
  16. BIN
      FGUIProject/assets/ClothingDecompose/images/fzfj_btbt.png
  17. BIN
      FGUIProject/assets/ClothingDecompose/images/fzfj_dituditu.png
  18. BIN
      FGUIProject/assets/ClothingDecompose/images/fzfj_erdituditu.png
  19. BIN
      FGUIProject/assets/ClothingDecompose/images/fzfj_fjkuang.png
  20. BIN
      FGUIProject/assets/ClothingDecompose/images/fzfj_gzgz.png
  21. BIN
      FGUIProject/assets/ClothingDecompose/images/fzfj_slkuang.png
  22. BIN
      FGUIProject/assets/ClothingDecompose/images/fzfj_wdyijanniu_1.png
  23. BIN
      FGUIProject/assets/ClothingDecompose/images/fzfj_wdyijanniu_2.png
  24. BIN
      FGUIProject/assets/ClothingDecompose/images/fzfj_wdyijanniu_3.png
  25. BIN
      FGUIProject/assets/ClothingDecompose/images/fzfj_wdyijanniu_4.png
  26. BIN
      FGUIProject/assets/ClothingDecompose/images/fzfj_xzxzfg.png
  27. BIN
      FGUIProject/assets/ClothingDecompose/images/fzfj_yijanniu_1.png
  28. BIN
      FGUIProject/assets/ClothingDecompose/images/fzfj_yijanniu_2.png
  29. BIN
      FGUIProject/assets/ClothingDecompose/images/fzfj_yijanniu_3.png
  30. BIN
      FGUIProject/assets/ClothingDecompose/images/fzfj_yijanniu_4.png
  31. BIN
      FGUIProject/assets/ClothingDecompose/images/kp_anniu_8.png
  32. 35 0
      FGUIProject/assets/ClothingDecompose/package.xml
  33. 5 4
      FGUIProject/assets/CommonGame/components/ComponentValueBar.xml
  34. BIN
      FGUIProject/assets/CommonGame/components/kp_sjsj_di_3.png
  35. 0 0
      FGUIProject/assets/CommonGame/images/kp_sjsj_di_3.png
  36. 0 0
      FGUIProject/assets/CommonGame/images/kp_sjsj_di_4.png
  37. 0 0
      FGUIProject/assets/CommonGame/images/yx_yilq.png
  38. BIN
      FGUIProject/assets/CommonGame/images/zx_jqgka_stjl.png
  39. 3 3
      FGUIProject/assets/CommonGame/package.xml
  40. 1 1
      FGUIProject/assets/Mail/components/ListRewardItem.xml
  41. BIN
      FGUIProject/assets/Mail/images/kp_sjsj_di_3.png
  42. 0 1
      FGUIProject/assets/Mail/package.xml
  43. 4 7
      FGUIProject/assets/XiuFang/XiuFangUI.xml
  44. 9 0
      FGUIProject/assets/XiuFang/components/Component.xml
  45. BIN
      FGUIProject/assets/XiuFang/images/tzhc_fzfj.png
  46. 3 1
      FGUIProject/assets/XiuFang/package.xml
  47. 2 1
      GameClient/Assets/Game/HotUpdate/Controller/GameController.cs
  48. 69 0
      GameClient/Assets/Game/HotUpdate/Data/DecomposeDataManager.cs
  49. 11 0
      GameClient/Assets/Game/HotUpdate/Data/DecomposeDataManager.cs.meta
  50. 12 0
      GameClient/Assets/Game/HotUpdate/Data/ItemDataManager.cs
  51. 8 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/ClothingDecompose.meta
  52. 80 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/ClothingDecompose/UI_ClothingDecomposeRuleUI.cs
  53. 11 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/ClothingDecompose/UI_ClothingDecomposeRuleUI.cs.meta
  54. 111 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/ClothingDecompose/UI_ClothingDecomposeUI.cs
  55. 11 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/ClothingDecompose/UI_ClothingDecomposeUI.cs.meta
  56. 83 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/ClothingDecompose/UI_ComBtnTab.cs
  57. 11 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/ClothingDecompose/UI_ComBtnTab.cs.meta
  58. 95 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/ClothingDecompose/UI_ListItem.cs
  59. 11 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/ClothingDecompose/UI_ListItem.cs.meta
  60. 77 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/ClothingDecompose/UI_ListRewardItem.cs
  61. 11 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/ClothingDecompose/UI_ListRewardItem.cs.meta
  62. 80 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/XiuFang/UI_Component.cs
  63. 11 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/XiuFang/UI_Component.cs.meta
  64. 4 9
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/XiuFang/UI_XiuFangUI.cs
  65. 1 0
      GameClient/Assets/Game/HotUpdate/GameGlobal.cs
  66. 8 0
      GameClient/Assets/Game/HotUpdate/Views/ClothingDecompose.meta
  67. 54 0
      GameClient/Assets/Game/HotUpdate/Views/ClothingDecompose/ClothingDecomposeRuleView.cs
  68. 11 0
      GameClient/Assets/Game/HotUpdate/Views/ClothingDecompose/ClothingDecomposeRuleView.cs.meta
  69. 276 0
      GameClient/Assets/Game/HotUpdate/Views/ClothingDecompose/ClothingDecomposeView.cs
  70. 11 0
      GameClient/Assets/Game/HotUpdate/Views/ClothingDecompose/ClothingDecomposeView.cs.meta
  71. 14 5
      GameClient/Assets/Game/HotUpdate/Views/XiuFang/XiuFangView.cs
  72. BIN
      GameClient/Assets/ResIn/Config/excelConfig.sqlite.bytes
  73. BIN
      GameClient/Assets/ResIn/UI/Card/Card_atlas0.png
  74. BIN
      GameClient/Assets/ResIn/UI/Card/Card_fui.bytes
  75. 8 0
      GameClient/Assets/ResIn/UI/ClothingDecompose.meta
  76. BIN
      GameClient/Assets/ResIn/UI/ClothingDecompose/ClothingDecompose_atlas0.png
  77. 96 0
      GameClient/Assets/ResIn/UI/ClothingDecompose/ClothingDecompose_atlas0.png.meta
  78. BIN
      GameClient/Assets/ResIn/UI/ClothingDecompose/ClothingDecompose_fui.bytes
  79. 7 0
      GameClient/Assets/ResIn/UI/ClothingDecompose/ClothingDecompose_fui.bytes.meta
  80. BIN
      GameClient/Assets/ResIn/UI/CommonGame/CommonGame_atlas0!a.png
  81. BIN
      GameClient/Assets/ResIn/UI/CommonGame/CommonGame_atlas0.png
  82. BIN
      GameClient/Assets/ResIn/UI/CommonGame/CommonGame_fui.bytes
  83. BIN
      GameClient/Assets/ResIn/UI/XiuFang/XiuFang_atlas0!a.png
  84. BIN
      GameClient/Assets/ResIn/UI/XiuFang/XiuFang_atlas0.png
  85. BIN
      GameClient/Assets/ResIn/UI/XiuFang/XiuFang_atlas0_1!a.png
  86. 96 0
      GameClient/Assets/ResIn/UI/XiuFang/XiuFang_atlas0_1!a.png.meta
  87. BIN
      GameClient/Assets/ResIn/UI/XiuFang/XiuFang_atlas0_1.png
  88. 96 0
      GameClient/Assets/ResIn/UI/XiuFang/XiuFang_atlas0_1.png.meta
  89. BIN
      GameClient/Assets/ResIn/UI/XiuFang/XiuFang_fui.bytes

+ 2 - 2
FGUIProject/assets/Card/CardSkillUI.xml

@@ -1,11 +1,11 @@
 <?xml version="1.0" encoding="utf-8"?>
 <component size="936,1032">
-  <controller name="c1" pages="0,,1," selected="1"/>
+  <controller name="c1" pages="0,,1," selected="0"/>
   <displayList>
     <image id="n0_rhha" name="n0" src="lwri5u" fileName="imagesExport/hc_kuang_6.png" pkg="mk0fwx0x" xy="0,-1" size="936,1032">
       <relation target="" sidePair="center-center,middle-middle"/>
     </image>
-    <image id="n4_rhha" name="n4" src="rhha9n" fileName="components/kp_sjsj_di_3.png" xy="372,38" group="n6_rhha"/>
+    <image id="n4_rhha" name="n4" src="j48o99" fileName="images/kp_sjsj_di_3.png" pkg="eg2y0ldp" xy="372,38" group="n6_rhha"/>
     <text id="n3_rhha" name="txtName" xy="467,225" pivot="0.5,0" anchor="true" size="112,49" group="n6_rhha" fontSize="36" color="#85756d" text="赵钱孙"/>
     <component id="n7_rhha" name="comSkill" src="rhha9l" fileName="components/ComSkill.xml" xy="379,45" size="177,177" group="n6_rhha" aspect="true"/>
     <group id="n6_rhha" name="n6" xy="372,38" size="192,236"/>

+ 0 - 1
FGUIProject/assets/Card/package.xml

@@ -94,7 +94,6 @@
     <component id="rhha9k" name="ListSkillItem.xml" path="/components/"/>
     <component id="rhha9l" name="ComSkill.xml" path="/components/"/>
     <component id="rhha9m" name="CardSkillUI.xml" path="/" exported="true"/>
-    <image id="rhha9n" name="kp_sjsj_di_3.png" path="/components/"/>
     <image id="rhha9o" name="kp_sjsj_di_2.png" path="/images/"/>
     <image id="rhha9p" name="kp_sjsj_di_1.png" path="/images/" scale="9grid" scale9grid="26,26,52,52"/>
     <component id="rhha9q" name="ComSkillDiscribe.xml" path="/"/>

+ 14 - 0
FGUIProject/assets/ClothingDecompose/ClothingDecomposeRuleUI.xml

@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="utf-8"?>
+<component size="936,621">
+  <displayList>
+    <loader id="n0_qyr6" name="loaBg" xy="1,1" size="936,621" url="ui://mk0fwx0xlwri5u" fill="scaleFree"/>
+    <image id="n3_qyr6" name="n3" src="ehs99" fileName="images/yx_xiant_1.png" pkg="eg2y0ldp" xy="44,120"/>
+    <text id="n1_qyr6" name="txtTitle" xy="322,44" size="292,64" fontSize="48" color="#9b7853" text="服装分解规则"/>
+    <text id="n2_qyr6" name="txtRule" xy="61,158" size="804,46" fontSize="34" color="#aa865f" autoSize="height" text="分解多余的衣服可获得金币和分解材料1.2."/>
+    <list id="n4_qyr6" name="listReward" xy="21,277" size="893,300" layout="row" colGap="40" defaultItem="ui://h9mv1l71wlc24" align="center">
+      <item/>
+      <item/>
+      <item/>
+    </list>
+  </displayList>
+</component>

+ 38 - 0
FGUIProject/assets/ClothingDecompose/ClothingDecomposeUI.xml

@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="utf-8"?>
+<component size="1080,1920">
+  <controller name="c1" pages="0,,1,,2,,3," selected="0"/>
+  <displayList>
+    <graph id="n24_qyr6" name="n24" xy="0,0" size="1080,1920" alpha="0.7" type="rect" lineSize="0" fillColor="#ff000000">
+      <relation target="" sidePair="width-width,height-height"/>
+    </graph>
+    <image id="n26_cb92" name="bg" src="qyr6o" fileName="images/fzfj_dituditu.png" xy="32,0">
+      <relation target="" sidePair="top-top"/>
+    </image>
+    <image id="n22_qyr6" name="n22" src="qyr6n" fileName="images/fzfj_erdituditu.png" xy="72,406"/>
+    <image id="n23_qyr6" name="n23" src="qyr6p" fileName="images/fzfj_btbt.png" xy="0,45"/>
+    <component id="n28_cb92" name="valueBar" src="v3541v" fileName="components/ComponentValueBar.xml" pkg="eg2y0ldp" xy="125,90"/>
+    <component id="n0_wlc2" name="btnBack" src="9xlo8" fileName="components/ButtonBack1.xml" pkg="eg2y0ldp" xy="35,80"/>
+    <component id="n1_wlc2" name="btnRule" src="wlc21" fileName="components/Button1.xml" xy="975,194"/>
+    <component id="n2_wlc2" name="comBtnTab" src="qyr6v" fileName="components/ComBtnTab.xml" xy="100,343" size="880,63"/>
+    <list id="n10_wlc2" name="list" xy="76,445" size="928,643" layout="flow_hz" selectionMode="multipleSingleClick" overflow="scroll" lineGap="45" colGap="25" defaultItem="ui://h9mv1l71hvn0a" align="center">
+      <item/>
+      <item/>
+      <item/>
+      <item/>
+      <item/>
+    </list>
+    <text id="n21_qyr6" name="txtNone" xy="380,736" size="256,49" fontSize="36" color="#cfbf9c" vars="true" text="暂无物品可分解"/>
+    <text id="n11_wlc2" name="txtShow" xy="301,1150" size="478,44" fontSize="32" color="#917960" align="center" ubb="true" autoSize="none" text="分解0件凡品可获得"/>
+    <list id="n12_wlc2" name="listReward" xy="36,1217" size="1008,263" layout="row" colGap="70" defaultItem="ui://h9mv1l71wlc24" align="center">
+      <item/>
+      <item/>
+      <item/>
+    </list>
+    <component id="n16_wlc2" name="btnDecompose" src="ih7594" fileName="components/Button10.xml" pkg="mk0fwx0x" xy="350,1553"/>
+    <text id="n17_wlc2" name="txtConsume" xy="440,1506" pivot="0.5,0" size="199,41" fontSize="30" color="#da826e" align="center" text="消耗金币X200">
+      <relation target="" sidePair="center-center"/>
+    </text>
+    <text id="n18_wlc2" name="txtTips" xy="254,1660" size="571,44" fontSize="26" color="#bbafa3" align="center" autoSize="none" text="服装会自动保留一件不显示在列表中"/>
+    <component id="n19_hvn0" name="btnSelect" src="hvn06" fileName="components/Button5.xml" xy="831,1642"/>
+  </displayList>
+</component>

+ 8 - 0
FGUIProject/assets/ClothingDecompose/components/Button1.xml

@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<component size="55,55" extention="Button">
+  <controller name="button" pages="0,up,1,down,2,over,3,selectedOver" selected="0"/>
+  <displayList>
+    <image id="n3_qyr6" name="n3" src="qyr6t" fileName="images/fzfj_gzgz.png" xy="0,0"/>
+  </displayList>
+  <Button/>
+</component>

+ 8 - 0
FGUIProject/assets/ClothingDecompose/components/Button2.xml

@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<component size="255,63" extention="Button">
+  <controller name="button" pages="0,up,1,down" selected="0"/>
+  <displayList>
+    <loader id="n5_qyr6" name="icon" xy="0,0" size="255,63" url="ui://h9mv1l71qyr6j" autoSize="true"/>
+  </displayList>
+  <Button mode="Radio"/>
+</component>

+ 19 - 0
FGUIProject/assets/ClothingDecompose/components/Button4.xml

@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<component size="180,60" extention="Button">
+  <controller name="button" pages="0,up,1,down,2,over,3,selectedOver" selected="0"/>
+  <displayList>
+    <graph id="n0_wlc2" name="n0" xy="0,0" size="180,60" touchable="false" type="rect" lineSize="0" fillColor="#fff0f0f0">
+      <gearDisplay controller="button" pages="0"/>
+      <relation target="" sidePair="width-width,height-height"/>
+    </graph>
+    <graph id="n1_wlc2" name="n1" xy="0,0" size="180,60" touchable="false" type="rect" lineSize="0" fillColor="#fffafafa">
+      <gearDisplay controller="button" pages="2"/>
+      <relation target="" sidePair="width-width,height-height"/>
+    </graph>
+    <graph id="n2_wlc2" name="n2" xy="0,0" size="180,60" touchable="false" type="rect" lineSize="0" fillColor="#ffcccccc">
+      <gearDisplay controller="button" pages="1,3"/>
+      <relation target="" sidePair="width-width,height-height"/>
+    </graph>
+  </displayList>
+  <Button/>
+</component>

+ 16 - 0
FGUIProject/assets/ClothingDecompose/components/Button5.xml

@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="utf-8"?>
+<component size="180,48" extention="Button">
+  <controller name="button" pages="0,up,1,down" selected="0"/>
+  <displayList>
+    <image id="n3_qyr6" name="n3" src="qyr6s" fileName="images/fzfj_anniu_1.png" xy="0,0">
+      <gearDisplay controller="button" pages="0"/>
+    </image>
+    <image id="n4_qyr6" name="n4" src="qyr6r" fileName="images/fzfj_anniu_2.png" xy="0,0">
+      <gearDisplay controller="button" pages="1"/>
+    </image>
+    <text id="n5_qyr6" name="n5" xy="52,0" size="132,44" fontSize="32" color="#9b7f61" text="全部选中">
+      <gearText controller="button" pages="0,1" values="全部选中|全部取消"/>
+    </text>
+  </displayList>
+  <Button mode="Check"/>
+</component>

+ 8 - 0
FGUIProject/assets/ClothingDecompose/components/ButtonMinus.xml

@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<component size="44,44" extention="Button">
+  <controller name="button" pages="0,up,1,down" selected="0"/>
+  <displayList>
+    <image id="n3_qyr6" name="n3" src="qyr6c" fileName="images/kp_anniu_8.png" xy="0,0"/>
+  </displayList>
+  <Button/>
+</component>

+ 18 - 0
FGUIProject/assets/ClothingDecompose/components/ComBtnTab.xml

@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="utf-8"?>
+<component size="1056,63" overflow="scroll" scroll="horizontal">
+  <controller name="c1" pages="0,,1,,2,,3," selected="0"/>
+  <displayList>
+    <component id="n2_wlc2" name="btnRarity0" src="wlc22" fileName="components/Button2.xml" xy="0,0" size="255,63">
+      <Button checked="true" icon="ui://h9mv1l71qyr6j" selectedIcon="ui://h9mv1l71qyr6e" controller="c1" page="0"/>
+    </component>
+    <component id="n6_wlc2" name="btnRarity1" src="wlc22" fileName="components/Button2.xml" xy="267,0" size="255,63">
+      <Button icon="ui://h9mv1l71qyr6i" selectedIcon="ui://h9mv1l71qyr6d" controller="c1" page="1"/>
+    </component>
+    <component id="n7_wlc2" name="btnRarity2" src="wlc22" fileName="components/Button2.xml" xy="534,0" size="255,63">
+      <Button icon="ui://h9mv1l71qyr6h" selectedIcon="ui://h9mv1l71qyr6k" controller="c1" page="2"/>
+    </component>
+    <component id="n8_wlc2" name="btnRarity3" src="wlc22" fileName="components/Button2.xml" xy="801,0" size="255,63">
+      <Button icon="ui://h9mv1l71qyr6g" selectedIcon="ui://h9mv1l71qyr6u" controller="c1" page="3"/>
+    </component>
+  </displayList>
+</component>

+ 27 - 0
FGUIProject/assets/ClothingDecompose/components/ListItem.xml

@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<component size="192,225">
+  <controller name="button" pages="0,up,1,down" selected="0"/>
+  <displayList>
+    <image id="n12_qyr6" name="n12" src="j48o99" fileName="images/kp_sjsj_di_3.png" pkg="eg2y0ldp" xy="0,0">
+      <gearDisplay controller="button" pages=""/>
+    </image>
+    <image id="n13_qyr6" name="imgSelect" src="qyr6f" fileName="images/fzfj_xzxzfg.png" xy="-11,-10"/>
+    <image id="n14_qyr6" name="n14" src="qyr6l" fileName="images/fzfj_slkuang.png" xy="29,160"/>
+    <loader id="n11_hvn0" name="loaItem" xy="0,0" size="192,225"/>
+    <loader id="n4_wlc2" name="loaIcon" xy="96,100" pivot="0.5,0.5" anchor="true" size="134,134" aspect="true" touchable="false" fill="scale"/>
+    <loader id="n3_wlc2" name="loaRarity" xy="142,0" size="50,50" touchable="false" autoSize="true">
+      <relation target="" sidePair="right-right,top-top"/>
+    </loader>
+    <text id="n5_wlc2" name="txtName" xy="96,188" pivot="0.5,0" anchor="true" size="200,39" fontSize="28" color="#9b7f61" text="名字名字七个字">
+      <relation target="" sidePair="center-center"/>
+    </text>
+    <text id="n6_wlc2" name="txtCount" xy="58,159" pivot="1,0" size="34,34" fontSize="24" color="#fff8ea" align="right" text="20">
+      <relation target="n10_hvn0" sidePair="right-left,top-top"/>
+    </text>
+    <text id="n9_hvn0" name="txtHasCount" xy="100,159" size="73,34" fontSize="24" color="#ffffff" text="999万">
+      <relation target="n10_hvn0" sidePair="left-right,top-top"/>
+    </text>
+    <text id="n10_hvn0" name="n10" xy="87,159" size="18,34" fontSize="24" color="#fff8ea" text="/"/>
+    <component id="n7_hvn0" name="btnMinus" src="hvn08" fileName="components/ButtonMinus.xml" xy="0,0"/>
+  </displayList>
+</component>

+ 9 - 0
FGUIProject/assets/ClothingDecompose/components/ListRewardItem.xml

@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<component size="254,254">
+  <displayList>
+    <image id="n16_qyr6" name="n16" src="qyr6m" fileName="images/fzfj_fjkuang.png" xy="0,0"/>
+    <text id="n13_wlc2" name="txtName" xy="0,0" size="10,44" fontSize="32" align="center" text=""/>
+    <loader id="n14_wlc2" name="loaIcon" xy="126,53" pivot="0.5,0.05" anchor="true" size="163,163" aspect="true" fill="scale"/>
+    <text id="n15_wlc2" name="txtCount" xy="82,168" size="100,44" fontSize="30" color="#fff8ea" align="right" vAlign="bottom" autoSize="none" strokeColor="#907240" strokeSize="2" autoClearText="true" text="666"/>
+  </displayList>
+</component>

BIN
FGUIProject/assets/ClothingDecompose/images/fzfj_anniu_1.png


BIN
FGUIProject/assets/ClothingDecompose/images/fzfj_anniu_2.png


BIN
FGUIProject/assets/ClothingDecompose/images/fzfj_anniudik.png


BIN
FGUIProject/assets/ClothingDecompose/images/fzfj_btbt.png


BIN
FGUIProject/assets/ClothingDecompose/images/fzfj_dituditu.png


BIN
FGUIProject/assets/ClothingDecompose/images/fzfj_erdituditu.png


BIN
FGUIProject/assets/ClothingDecompose/images/fzfj_fjkuang.png


BIN
FGUIProject/assets/ClothingDecompose/images/fzfj_gzgz.png


BIN
FGUIProject/assets/ClothingDecompose/images/fzfj_slkuang.png


BIN
FGUIProject/assets/ClothingDecompose/images/fzfj_wdyijanniu_1.png


BIN
FGUIProject/assets/ClothingDecompose/images/fzfj_wdyijanniu_2.png


BIN
FGUIProject/assets/ClothingDecompose/images/fzfj_wdyijanniu_3.png


BIN
FGUIProject/assets/ClothingDecompose/images/fzfj_wdyijanniu_4.png


BIN
FGUIProject/assets/ClothingDecompose/images/fzfj_xzxzfg.png


BIN
FGUIProject/assets/ClothingDecompose/images/fzfj_yijanniu_1.png


BIN
FGUIProject/assets/ClothingDecompose/images/fzfj_yijanniu_2.png


BIN
FGUIProject/assets/ClothingDecompose/images/fzfj_yijanniu_3.png


BIN
FGUIProject/assets/ClothingDecompose/images/fzfj_yijanniu_4.png


BIN
FGUIProject/assets/ClothingDecompose/images/kp_anniu_8.png


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

@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="utf-8"?>
+<packageDescription id="h9mv1l71">
+  <resources>
+    <component id="wlc20" name="ClothingDecomposeUI.xml" path="/" exported="true"/>
+    <component id="wlc21" name="Button1.xml" path="/components/"/>
+    <component id="wlc22" name="Button2.xml" path="/components/"/>
+    <component id="wlc24" name="ListRewardItem.xml" path="/components/"/>
+    <component id="wlc25" name="Button4.xml" path="/components/"/>
+    <component id="hvn06" name="Button5.xml" path="/components/"/>
+    <component id="hvn08" name="ButtonMinus.xml" path="/components/"/>
+    <component id="hvn0a" name="ListItem.xml" path="/components/"/>
+    <component id="qyr6b" name="ClothingDecomposeRuleUI.xml" path="/" exported="true"/>
+    <image id="qyr6c" name="kp_anniu_8.png" path="/images/"/>
+    <image id="qyr6d" name="fzfj_yijanniu_2.png" path="/images/"/>
+    <image id="qyr6e" name="fzfj_yijanniu_1.png" path="/images/"/>
+    <image id="qyr6f" name="fzfj_xzxzfg.png" path="/images/"/>
+    <image id="qyr6g" name="fzfj_wdyijanniu_4.png" path="/images/"/>
+    <image id="qyr6h" name="fzfj_wdyijanniu_3.png" path="/images/"/>
+    <image id="qyr6i" name="fzfj_wdyijanniu_2.png" path="/images/"/>
+    <image id="qyr6j" name="fzfj_wdyijanniu_1.png" path="/images/"/>
+    <image id="qyr6k" name="fzfj_yijanniu_3.png" path="/images/"/>
+    <image id="qyr6l" name="fzfj_slkuang.png" path="/images/"/>
+    <image id="qyr6m" name="fzfj_fjkuang.png" path="/images/"/>
+    <image id="qyr6n" name="fzfj_erdituditu.png" path="/images/"/>
+    <image id="qyr6o" name="fzfj_dituditu.png" path="/images/" scale="9grid" scale9grid="0,745,1016,674"/>
+    <image id="qyr6p" name="fzfj_btbt.png" path="/images/"/>
+    <image id="qyr6q" name="fzfj_anniudik.png" path="/images/"/>
+    <image id="qyr6r" name="fzfj_anniu_2.png" path="/images/"/>
+    <image id="qyr6s" name="fzfj_anniu_1.png" path="/images/"/>
+    <image id="qyr6t" name="fzfj_gzgz.png" path="/images/"/>
+    <image id="qyr6u" name="fzfj_yijanniu_4.png" path="/images/"/>
+    <component id="qyr6v" name="ComBtnTab.xml" path="/components/"/>
+  </resources>
+  <publish name="" path="..\GameClient\Assets\ResIn\UI\ClothingDecompose" packageCount="2" genCode="true"/>
+</packageDescription>

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

@@ -1,10 +1,11 @@
 <?xml version="1.0" encoding="utf-8"?>
 <component size="921,47">
-  <controller name="c1" exported="true" pages="0,,1,,3,,4,,5,,6," selected="5">
+  <controller name="c1" exported="true" pages="0,,1,,3,,4,,5,,6,,7," selected="6">
     <remark page="2" value="抽卡兑换"/>
     <remark page="3" value="抽卡活动兑换"/>
     <remark page="4" value="抽卡"/>
     <remark page="5" value="卡牌"/>
+    <remark page="6" value="分解"/>
   </controller>
   <displayList>
     <component id="n39_r9gf" name="btnDiamondRed" src="r9gf5z" fileName="components/ButtonInValueBar.xml" xy="460,5">
@@ -12,9 +13,9 @@
       <gearXY controller="c1" default="460,5"/>
       <Button title="100" icon="ui://eg2y0ldpq08x6"/>
     </component>
-    <component id="n40_r9gf" name="btnGold" src="r9gf5z" fileName="components/ButtonInValueBar.xml" xy="230,5">
-      <gearDisplay controller="c1" pages="0,1,6"/>
-      <gearXY controller="c1" pages="1" values="460,5" default="230,5"/>
+    <component id="n40_r9gf" name="btnGold" src="r9gf5z" fileName="components/ButtonInValueBar.xml" xy="688,5">
+      <gearDisplay controller="c1" pages="0,1,6,7"/>
+      <gearXY controller="c1" pages="1,7" values="460,5|688,5" default="230,5"/>
       <Button title="100" icon="ui://eg2y0ldpq08x3"/>
     </component>
     <component id="n41_r9gf" name="btnDiamondPurple" src="r9gf5z" fileName="components/ButtonInValueBar.xml" xy="688,5">

BIN
FGUIProject/assets/CommonGame/components/kp_sjsj_di_3.png


+ 0 - 0
FGUIProject/assets/Card/components/kp_sjsj_di_3.png → FGUIProject/assets/CommonGame/images/kp_sjsj_di_3.png


+ 0 - 0
FGUIProject/assets/CommonGame/components/kp_sjsj_di_4.png → FGUIProject/assets/CommonGame/images/kp_sjsj_di_4.png


+ 0 - 0
FGUIProject/assets/CommonGame/components/yx_yilq.png → FGUIProject/assets/CommonGame/images/yx_yilq.png


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


+ 3 - 3
FGUIProject/assets/CommonGame/package.xml

@@ -129,9 +129,9 @@
     <component id="ih7596" name="ComFilterType.xml" path="/components/" exported="true"/>
     <font id="j48o97" name="ZIHUN125.TTF" path="/" exported="true" renderMode="" samplePointSize="16"/>
     <component id="j48o98" name="ComItem.xml" path="/components/" exported="true"/>
-    <image id="j48o99" name="kp_sjsj_di_3.png" path="/components/"/>
-    <image id="j48o9a" name="kp_sjsj_di_4.png" path="/components/"/>
-    <image id="j48o9b" name="yx_yilq.png" path="/components/"/>
+    <image id="j48o99" name="kp_sjsj_di_3.png" path="/images/" exported="true"/>
+    <image id="j48o9a" name="kp_sjsj_di_4.png" path="/images/"/>
+    <image id="j48o9b" name="yx_yilq.png" path="/images/"/>
     <component id="ih7566" name="ListTagItem.xml" path="/components/" exported="true"/>
     <image id="ih7562" name="fzd_bqbq_1.png" path="/imagesExport/" exported="true"/>
     <image id="ih7563" name="fzd_bqbq_2.png" path="/imagesExport/" exported="true"/>

+ 1 - 1
FGUIProject/assets/Mail/components/ListRewardItem.xml

@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
 <component size="192,192">
   <displayList>
-    <image id="n11_ehs9" name="n11" src="ehs9a" fileName="images/kp_sjsj_di_3.png" xy="0,0"/>
+    <image id="n11_ehs9" name="n11" src="j48o99" fileName="images/kp_sjsj_di_3.png" pkg="eg2y0ldp" xy="0,0"/>
     <loader id="n12_ehs9" name="loaIcon" xy="-4,-4" size="200,200" autoSize="true">
       <relation target="" sidePair="center-center,middle-middle"/>
     </loader>

BIN
FGUIProject/assets/Mail/images/kp_sjsj_di_3.png


+ 0 - 1
FGUIProject/assets/Mail/package.xml

@@ -9,7 +9,6 @@
     <image id="ehs96" name="yx_icon_2.png" path="/images/"/>
     <image id="ehs97" name="yx_icon_3.png" path="/images/"/>
     <image id="ehs98" name="yx_btzi_2.png" path="/images/"/>
-    <image id="ehs9a" name="kp_sjsj_di_3.png" path="/images/"/>
     <image id="ehs9b" name="kp_sjsj_di_4.png" path="/images/"/>
     <component id="ehs9c" name="MailUI.xml" path="/" exported="true"/>
     <component id="ehs9d" name="ListItem.xml" path="/components/"/>

+ 4 - 7
FGUIProject/assets/XiuFang/XiuFangUI.xml

@@ -6,12 +6,9 @@
     </loader>
     <component id="n1_9xlo" name="btnBack" src="9xlo8" fileName="components/ButtonBack1.xml" pkg="eg2y0ldp" xy="35,80"/>
     <image id="n3_9xlo" name="n3" src="9xlo7" fileName="images/tzhc_ziti.png" xy="160,102"/>
-    <image id="n2_9xlo" name="n2" src="9xlo5" fileName="images/tzhc_jiazidi.png" xy="9,524" group="n7_j539"/>
-    <loader id="n4_9xlo" name="btnClothingShop" xy="59,269" size="320,1246" group="n7_j539" url="ui://kv0ad4wy9xlo3" autoSize="true"/>
-    <loader id="n5_9xlo" name="btnClothingUpgrade" xy="699,269" size="320,1246" group="n7_j539" url="ui://kv0ad4wy9xlo4" autoSize="true"/>
-    <loader id="n6_9xlo" name="btnSuitSynthetic" xy="379,269" size="320,1246" group="n7_j539" url="ui://kv0ad4wy9xlo6" autoSize="true"/>
-    <group id="n7_j539" name="n7" xy="9,269" size="1062,1282" advanced="true">
-      <relation target="" sidePair="middle-middle"/>
-    </group>
+    <component id="n4_9xlo" name="component" src="wlc28" fileName="components/Component.xml" xy="35,337" size="1010,1246"/>
+    <image id="n2_9xlo" name="n2" src="9xlo5" fileName="images/tzhc_jiazidi.png" xy="0,589" size="1080,1027">
+      <relation target="n4_9xlo" sidePair="bottom-bottom"/>
+    </image>
   </displayList>
 </component>

+ 9 - 0
FGUIProject/assets/XiuFang/components/Component.xml

@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<component size="1000,1246" overflow="scroll" scroll="horizontal">
+  <displayList>
+    <loader id="n4_9xlo" name="btnClothingShop" xy="0,0" size="320,1246" url="ui://kv0ad4wy9xlo3" autoSize="true"/>
+    <loader id="n5_9xlo" name="btnClothingUpgrade" xy="640,0" size="320,1246" url="ui://kv0ad4wy9xlo4" autoSize="true"/>
+    <loader id="n6_9xlo" name="btnSuitSynthetic" xy="320,0" size="320,1246" url="ui://kv0ad4wy9xlo6" autoSize="true"/>
+    <loader id="n8_wlc2" name="btnDecompose" xy="958,0" size="321,1246" url="ui://kv0ad4wyqyr69" autoSize="true"/>
+  </displayList>
+</component>

BIN
FGUIProject/assets/XiuFang/images/tzhc_fzfj.png


+ 3 - 1
FGUIProject/assets/XiuFang/package.xml

@@ -5,9 +5,11 @@
     <image id="9xlo1" name="tzhc_bj.jpg" path="/images/" atlas="alone_npot"/>
     <image id="9xlo3" name="tzhc_fzd.png" path="/images/"/>
     <image id="9xlo4" name="tzhc_fzsj.png" path="/images/"/>
-    <image id="9xlo5" name="tzhc_jiazidi.png" path="/images/"/>
+    <image id="9xlo5" name="tzhc_jiazidi.png" path="/images/" scale="9grid" scale9grid="66,254,91,512"/>
     <image id="9xlo6" name="tzhc_tzhc.png" path="/images/"/>
     <image id="9xlo7" name="tzhc_ziti.png" path="/images/"/>
+    <component id="wlc28" name="Component.xml" path="/components/"/>
+    <image id="qyr69" name="tzhc_fzfj.png" path="/images/"/>
   </resources>
   <publish name="" path="..\GameClient\Assets\ResIn\UI\XiuFang" packageCount="2" genCode="true" extractAlpha="true"/>
 </packageDescription>

+ 2 - 1
GameClient/Assets/Game/HotUpdate/Controller/GameController.cs

@@ -189,6 +189,7 @@ namespace GFGGame
             GameGlobal.skipGuide = false;
             RoleDataHandler.StopUpdate();
             CardDataManager.Clear();
+            DecomposeDataManager.Instance.Clear();
             PhotographDataManager.Instance.Clear();
             if (logout)
             {
@@ -226,7 +227,7 @@ namespace GFGGame
                 StoryDataManager.currentChapter = 1;
                 if (!StoryDataManager.CheckLevelPass(1, 1))
                 {
-                    ViewManager.Show(ViewName.STORY_CHAPTER_VIEW, StoryDataManager.currentChapter, new object[] { ViewName.STORY_CHAPTER_LIST_VIEW,  });
+                    ViewManager.Show(ViewName.STORY_CHAPTER_VIEW, StoryDataManager.currentChapter, new object[] { ViewName.STORY_CHAPTER_LIST_VIEW, });
                     StoryController.ShowLevelView(StoryDataManager.currentChapter, 1);
                 }
                 else

+ 69 - 0
GameClient/Assets/Game/HotUpdate/Data/DecomposeDataManager.cs

@@ -0,0 +1,69 @@
+using System.Collections.Generic;
+
+namespace GFGGame
+{
+    public class DecomposeDataManager : SingletonBase<DecomposeDataManager>
+    {
+        Dictionary<int, List<int>> _decomposeData = new Dictionary<int, List<int>>();//所有数量大于1的换装部件数据
+        List<int> _rewardList = new List<int>();
+
+        public const int MaxCount = 10;
+        public void Clear()
+        {
+            _decomposeData.Clear();
+        }
+        public void Add(int itemId)
+        {
+            int rarity = ItemCfgArray.Instance.GetCfg(itemId).rarity;
+            if (!_decomposeData.ContainsKey(rarity))
+            {
+                _decomposeData.Add(rarity, new List<int>());
+            }
+
+            int count = ItemCanDecomposeCount(itemId);
+            if (_decomposeData[rarity].IndexOf(itemId) < 0 && count > 0)
+            {
+                _decomposeData[rarity].Add(itemId);
+            }
+        }
+        public void Remove(int itemId)
+        {
+            int rarity = ItemCfgArray.Instance.GetCfg(itemId).rarity;
+            int count = ItemCanDecomposeCount(itemId);
+
+            if (_decomposeData.ContainsKey(rarity) && _decomposeData[rarity].IndexOf(itemId) >= 0 && count <= 0)
+            {
+                _decomposeData[rarity].Remove(itemId);
+            }
+        }
+
+        public List<int> GetDecomposeDataByRarity(int rarity)
+        {
+            return _decomposeData[rarity];
+        }
+
+        public List<int> GetRewardList()
+        {
+            if (_rewardList.Count == 0)
+            {
+                DecomposeCfg[] cfgs = DecomposeCfgArray.Instance.dataArray;
+                for (int i = 0; i < cfgs.Length; i++)
+                {
+                    for (int j = 0; j < cfgs[i].itemsArr.Length; j++)
+                    {
+                        if (_rewardList.IndexOf(cfgs[i].itemsArr[j][0]) < 0)
+                        {
+                            _rewardList.Add(cfgs[i].itemsArr[j][0]);
+                        }
+                    }
+                }
+            }
+            return _rewardList;
+        }
+        //物品可分解的数量
+        public int ItemCanDecomposeCount(int itemId)
+        {
+            return ItemDataManager.GetItemNum(itemId) - 1;
+        }
+    }
+}

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

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

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

@@ -63,6 +63,10 @@ namespace GFGGame
                 CardDataManager.Add(itemID);
             }
 
+            if (itemCfg.itemType == ConstItemType.DRESS_UP && !DressUpMenuItemDataManager.CheckIsSceneType(itemID))
+            {
+                DecomposeDataManager.Instance.Add(itemID);
+            }
             PhotographDataManager.Instance.Add(itemID);
             if (sendToServer)
             {
@@ -95,6 +99,7 @@ namespace GFGGame
             {
                 ItemData itemData = _dataDic[itemID];
                 itemData.num -= itemNum;
+
                 if (itemData.num <= 0)
                 {
                     itemData.num = 0;
@@ -104,8 +109,15 @@ namespace GFGGame
                     {
                         DressUpMenuItemDataManager.Remove(itemID);
                     }
+
                     PrepareUpdateToServer(itemData.id, itemData.num);
                 }
+
+                ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(itemID);
+                if (itemCfg.itemType == ConstItemType.DRESS_UP && !DressUpMenuItemDataManager.CheckIsSceneType(itemID))
+                {
+                    DecomposeDataManager.Instance.Remove(itemID);
+                }
                 EventAgent.DispatchEvent(ConstMessage.ITEM_CHANGED, itemID);
             }
         }

+ 8 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/ClothingDecompose.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 88d136b6f7e43c7448215b86cc13bd13
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 80 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/ClothingDecompose/UI_ClothingDecomposeRuleUI.cs

@@ -0,0 +1,80 @@
+/** This is an automatically generated class by FairyGUI. Please do not modify it. **/
+
+using FairyGUI;
+
+namespace UI.ClothingDecompose
+{
+    public partial class UI_ClothingDecomposeRuleUI
+    {
+        public GComponent target;
+        public GLoader m_loaBg;
+        public GTextField m_txtTitle;
+        public GTextField m_txtRule;
+        public GList m_listReward;
+        public const string URL = "ui://h9mv1l71qyr6b";
+        public const string PACKAGE_NAME = "ClothingDecompose";
+        public const string RES_NAME = "ClothingDecomposeRuleUI";
+        private static UI_ClothingDecomposeRuleUI _proxy;
+
+        public static UI_ClothingDecomposeRuleUI Create(GObject gObject = null)
+        {
+            var ui = new UI_ClothingDecomposeRuleUI();
+            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_ClothingDecomposeRuleUI Proxy(GObject gObject = null)
+        {
+            if(_proxy == null)
+            {
+                _proxy = new UI_ClothingDecomposeRuleUI();
+            }
+            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_loaBg = (GLoader)comp.GetChild("loaBg");
+            m_txtTitle = (GTextField)comp.GetChild("txtTitle");
+            m_txtRule = (GTextField)comp.GetChild("txtRule");
+            m_listReward = (GList)comp.GetChild("listReward");
+        }
+        public void Dispose(bool disposeTarget = false)
+        {
+            m_loaBg = null;
+            m_txtTitle = null;
+            m_txtRule = null;
+            m_listReward = null;
+            if(disposeTarget && target != null)
+            {
+                target.RemoveFromParent();
+                target.Dispose();
+            }
+            target = null;
+        }
+    }
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/ClothingDecompose/UI_ClothingDecomposeRuleUI.cs.meta

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

+ 111 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/ClothingDecompose/UI_ClothingDecomposeUI.cs

@@ -0,0 +1,111 @@
+/** This is an automatically generated class by FairyGUI. Please do not modify it. **/
+
+using FairyGUI;
+
+namespace UI.ClothingDecompose
+{
+    public partial class UI_ClothingDecomposeUI
+    {
+        public GComponent target;
+        public Controller m_c1;
+        public GImage m_bg;
+        public GComponent m_valueBar;
+        public GButton m_btnBack;
+        public GButton m_btnRule;
+        public UI_ComBtnTab m_comBtnTab;
+        public GList m_list;
+        public GTextField m_txtNone;
+        public GTextField m_txtShow;
+        public GList m_listReward;
+        public GButton m_btnDecompose;
+        public GTextField m_txtConsume;
+        public GTextField m_txtTips;
+        public GButton m_btnSelect;
+        public const string URL = "ui://h9mv1l71wlc20";
+        public const string PACKAGE_NAME = "ClothingDecompose";
+        public const string RES_NAME = "ClothingDecomposeUI";
+        private static UI_ClothingDecomposeUI _proxy;
+
+        public static UI_ClothingDecomposeUI Create(GObject gObject = null)
+        {
+            var ui = new UI_ClothingDecomposeUI();
+            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_ClothingDecomposeUI Proxy(GObject gObject = null)
+        {
+            if(_proxy == null)
+            {
+                _proxy = new UI_ClothingDecomposeUI();
+            }
+            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_valueBar = (GComponent)comp.GetChild("valueBar");
+            m_btnBack = (GButton)comp.GetChild("btnBack");
+            m_btnRule = (GButton)comp.GetChild("btnRule");
+            m_comBtnTab = (UI_ComBtnTab)UI_ComBtnTab.Create(comp.GetChild("comBtnTab"));
+            m_list = (GList)comp.GetChild("list");
+            m_txtNone = (GTextField)comp.GetChild("txtNone");
+            m_txtShow = (GTextField)comp.GetChild("txtShow");
+            m_listReward = (GList)comp.GetChild("listReward");
+            m_btnDecompose = (GButton)comp.GetChild("btnDecompose");
+            m_txtConsume = (GTextField)comp.GetChild("txtConsume");
+            m_txtTips = (GTextField)comp.GetChild("txtTips");
+            m_btnSelect = (GButton)comp.GetChild("btnSelect");
+        }
+        public void Dispose(bool disposeTarget = false)
+        {
+            m_c1 = null;
+            m_bg = null;
+            m_valueBar = null;
+            m_btnBack = null;
+            m_btnRule = null;
+            m_comBtnTab.Dispose();
+            m_comBtnTab = null;
+            m_list = null;
+            m_txtNone = null;
+            m_txtShow = null;
+            m_listReward = null;
+            m_btnDecompose = null;
+            m_txtConsume = null;
+            m_txtTips = null;
+            m_btnSelect = null;
+            if(disposeTarget && target != null)
+            {
+                target.RemoveFromParent();
+                target.Dispose();
+            }
+            target = null;
+        }
+    }
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/ClothingDecompose/UI_ClothingDecomposeUI.cs.meta

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

+ 83 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/ClothingDecompose/UI_ComBtnTab.cs

@@ -0,0 +1,83 @@
+/** This is an automatically generated class by FairyGUI. Please do not modify it. **/
+
+using FairyGUI;
+
+namespace UI.ClothingDecompose
+{
+    public partial class UI_ComBtnTab
+    {
+        public GComponent target;
+        public Controller m_c1;
+        public GButton m_btnRarity0;
+        public GButton m_btnRarity1;
+        public GButton m_btnRarity2;
+        public GButton m_btnRarity3;
+        public const string URL = "ui://h9mv1l71qyr6v";
+        public const string PACKAGE_NAME = "ClothingDecompose";
+        public const string RES_NAME = "ComBtnTab";
+        private static UI_ComBtnTab _proxy;
+
+        public static UI_ComBtnTab Create(GObject gObject = null)
+        {
+            var ui = new UI_ComBtnTab();
+            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_ComBtnTab Proxy(GObject gObject = null)
+        {
+            if(_proxy == null)
+            {
+                _proxy = new UI_ComBtnTab();
+            }
+            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_btnRarity0 = (GButton)comp.GetChild("btnRarity0");
+            m_btnRarity1 = (GButton)comp.GetChild("btnRarity1");
+            m_btnRarity2 = (GButton)comp.GetChild("btnRarity2");
+            m_btnRarity3 = (GButton)comp.GetChild("btnRarity3");
+        }
+        public void Dispose(bool disposeTarget = false)
+        {
+            m_c1 = null;
+            m_btnRarity0 = null;
+            m_btnRarity1 = null;
+            m_btnRarity2 = null;
+            m_btnRarity3 = null;
+            if(disposeTarget && target != null)
+            {
+                target.RemoveFromParent();
+                target.Dispose();
+            }
+            target = null;
+        }
+    }
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/ClothingDecompose/UI_ComBtnTab.cs.meta

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

+ 95 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/ClothingDecompose/UI_ListItem.cs

@@ -0,0 +1,95 @@
+/** This is an automatically generated class by FairyGUI. Please do not modify it. **/
+
+using FairyGUI;
+
+namespace UI.ClothingDecompose
+{
+    public partial class UI_ListItem
+    {
+        public GComponent target;
+        public Controller m_button;
+        public GImage m_imgSelect;
+        public GLoader m_loaItem;
+        public GLoader m_loaIcon;
+        public GLoader m_loaRarity;
+        public GTextField m_txtName;
+        public GTextField m_txtCount;
+        public GTextField m_txtHasCount;
+        public GButton m_btnMinus;
+        public const string URL = "ui://h9mv1l71hvn0a";
+        public const string PACKAGE_NAME = "ClothingDecompose";
+        public const string RES_NAME = "ListItem";
+        private static UI_ListItem _proxy;
+
+        public static UI_ListItem Create(GObject gObject = null)
+        {
+            var ui = new UI_ListItem();
+            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_ListItem Proxy(GObject gObject = null)
+        {
+            if(_proxy == null)
+            {
+                _proxy = new UI_ListItem();
+            }
+            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_button = comp.GetController("button");
+            m_imgSelect = (GImage)comp.GetChild("imgSelect");
+            m_loaItem = (GLoader)comp.GetChild("loaItem");
+            m_loaIcon = (GLoader)comp.GetChild("loaIcon");
+            m_loaRarity = (GLoader)comp.GetChild("loaRarity");
+            m_txtName = (GTextField)comp.GetChild("txtName");
+            m_txtCount = (GTextField)comp.GetChild("txtCount");
+            m_txtHasCount = (GTextField)comp.GetChild("txtHasCount");
+            m_btnMinus = (GButton)comp.GetChild("btnMinus");
+        }
+        public void Dispose(bool disposeTarget = false)
+        {
+            m_button = null;
+            m_imgSelect = null;
+            m_loaItem = null;
+            m_loaIcon = null;
+            m_loaRarity = null;
+            m_txtName = null;
+            m_txtCount = null;
+            m_txtHasCount = null;
+            m_btnMinus = null;
+            if(disposeTarget && target != null)
+            {
+                target.RemoveFromParent();
+                target.Dispose();
+            }
+            target = null;
+        }
+    }
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/ClothingDecompose/UI_ListItem.cs.meta

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

+ 77 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/ClothingDecompose/UI_ListRewardItem.cs

@@ -0,0 +1,77 @@
+/** This is an automatically generated class by FairyGUI. Please do not modify it. **/
+
+using FairyGUI;
+
+namespace UI.ClothingDecompose
+{
+    public partial class UI_ListRewardItem
+    {
+        public GComponent target;
+        public GTextField m_txtName;
+        public GLoader m_loaIcon;
+        public GTextField m_txtCount;
+        public const string URL = "ui://h9mv1l71wlc24";
+        public const string PACKAGE_NAME = "ClothingDecompose";
+        public const string RES_NAME = "ListRewardItem";
+        private static UI_ListRewardItem _proxy;
+
+        public static UI_ListRewardItem Create(GObject gObject = null)
+        {
+            var ui = new UI_ListRewardItem();
+            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_ListRewardItem Proxy(GObject gObject = null)
+        {
+            if(_proxy == null)
+            {
+                _proxy = new UI_ListRewardItem();
+            }
+            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_txtName = (GTextField)comp.GetChild("txtName");
+            m_loaIcon = (GLoader)comp.GetChild("loaIcon");
+            m_txtCount = (GTextField)comp.GetChild("txtCount");
+        }
+        public void Dispose(bool disposeTarget = false)
+        {
+            m_txtName = null;
+            m_loaIcon = null;
+            m_txtCount = null;
+            if(disposeTarget && target != null)
+            {
+                target.RemoveFromParent();
+                target.Dispose();
+            }
+            target = null;
+        }
+    }
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/ClothingDecompose/UI_ListRewardItem.cs.meta

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

+ 80 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/XiuFang/UI_Component.cs

@@ -0,0 +1,80 @@
+/** This is an automatically generated class by FairyGUI. Please do not modify it. **/
+
+using FairyGUI;
+
+namespace UI.XiuFang
+{
+    public partial class UI_Component
+    {
+        public GComponent target;
+        public GLoader m_btnClothingShop;
+        public GLoader m_btnClothingUpgrade;
+        public GLoader m_btnSuitSynthetic;
+        public GLoader m_btnDecompose;
+        public const string URL = "ui://kv0ad4wywlc28";
+        public const string PACKAGE_NAME = "XiuFang";
+        public const string RES_NAME = "Component";
+        private static UI_Component _proxy;
+
+        public static UI_Component Create(GObject gObject = null)
+        {
+            var ui = new UI_Component();
+            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_Component Proxy(GObject gObject = null)
+        {
+            if(_proxy == null)
+            {
+                _proxy = new UI_Component();
+            }
+            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_btnClothingShop = (GLoader)comp.GetChild("btnClothingShop");
+            m_btnClothingUpgrade = (GLoader)comp.GetChild("btnClothingUpgrade");
+            m_btnSuitSynthetic = (GLoader)comp.GetChild("btnSuitSynthetic");
+            m_btnDecompose = (GLoader)comp.GetChild("btnDecompose");
+        }
+        public void Dispose(bool disposeTarget = false)
+        {
+            m_btnClothingShop = null;
+            m_btnClothingUpgrade = null;
+            m_btnSuitSynthetic = null;
+            m_btnDecompose = null;
+            if(disposeTarget && target != null)
+            {
+                target.RemoveFromParent();
+                target.Dispose();
+            }
+            target = null;
+        }
+    }
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/XiuFang/UI_Component.cs.meta

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

+ 4 - 9
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/XiuFang/UI_XiuFangUI.cs

@@ -9,9 +9,7 @@ namespace UI.XiuFang
         public GComponent target;
         public GLoader m_bg;
         public GButton m_btnBack;
-        public GLoader m_btnClothingShop;
-        public GLoader m_btnClothingUpgrade;
-        public GLoader m_btnSuitSynthetic;
+        public UI_Component m_component;
         public const string URL = "ui://kv0ad4wy9xlo0";
         public const string PACKAGE_NAME = "XiuFang";
         public const string RES_NAME = "XiuFangUI";
@@ -61,17 +59,14 @@ namespace UI.XiuFang
         {
             m_bg = (GLoader)comp.GetChild("bg");
             m_btnBack = (GButton)comp.GetChild("btnBack");
-            m_btnClothingShop = (GLoader)comp.GetChild("btnClothingShop");
-            m_btnClothingUpgrade = (GLoader)comp.GetChild("btnClothingUpgrade");
-            m_btnSuitSynthetic = (GLoader)comp.GetChild("btnSuitSynthetic");
+            m_component = (UI_Component)UI_Component.Create(comp.GetChild("component"));
         }
         public void Dispose(bool disposeTarget = false)
         {
             m_bg = null;
             m_btnBack = null;
-            m_btnClothingShop = null;
-            m_btnClothingUpgrade = null;
-            m_btnSuitSynthetic = null;
+            m_component.Dispose();
+            m_component = null;
             if(disposeTarget && target != null)
             {
                 target.RemoveFromParent();

+ 1 - 0
GameClient/Assets/Game/HotUpdate/GameGlobal.cs

@@ -49,6 +49,7 @@ namespace GFGGame
             if (comHolder == null)
             {
                 comHolder = UI_ComHolder.Create();
+                comHolder.target.touchable = false;
                 ViewManager.AddChildToTopLayer(comHolder.target);
 
                 string resPath = ResPathUtil.GetViewEffectPath("ui_dj", "ui_dj");

+ 8 - 0
GameClient/Assets/Game/HotUpdate/Views/ClothingDecompose.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: a2e42bf6876863446a787433aa682d27
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 54 - 0
GameClient/Assets/Game/HotUpdate/Views/ClothingDecompose/ClothingDecomposeRuleView.cs

@@ -0,0 +1,54 @@
+using FairyGUI;
+using UI.ClothingDecompose;
+namespace GFGGame
+{
+    public class ClothingDecomposeRuleView : BaseWindow
+    {
+        private UI_ClothingDecomposeRuleUI _ui;
+        private string _strName;
+
+        public override void Dispose()
+        {
+
+            base.Dispose();
+        }
+
+
+        protected override void OnInit()
+        {
+            base.OnInit();
+            packageName = UI_ClothingDecomposeUI.PACKAGE_NAME;
+            _ui = UI_ClothingDecomposeRuleUI.Create();
+            this.viewCom = _ui.target;
+            this.viewCom.Center();
+            this.modal = true;
+            viewAnimationType = EnumViewAnimationType.ZOOM_CENTER;
+
+            _ui.m_listReward.itemRenderer = ListItemRender;
+        }
+
+        protected override void OnShown()
+        {
+            base.OnShown();
+            _ui.m_listReward.numItems = DecomposeDataManager.Instance.GetRewardList().Count;
+            _ui.m_txtRule.text = "分解多余的衣服可获得分解材料:" + _strName;
+        }
+        private void ListItemRender(int index, GObject obj)
+        {
+            UI_ListRewardItem item = UI_ListRewardItem.Proxy(obj);
+            int id = DecomposeDataManager.Instance.GetRewardList()[index];
+            ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(id);
+
+            string ext = ItemUtil.GetItemResExt(itemCfg.itemType, itemCfg.subType);
+            item.m_loaIcon.url = ResPathUtil.GetIconPath(itemCfg.res, ext);
+
+            _strName += (itemCfg.name + (index == DecomposeDataManager.Instance.GetRewardList().Count - 1 ? "。" : "、"));
+        }
+
+        protected override void OnHide()
+        {
+            base.OnHide();
+
+        }
+    }
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/Views/ClothingDecompose/ClothingDecomposeRuleView.cs.meta

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

+ 276 - 0
GameClient/Assets/Game/HotUpdate/Views/ClothingDecompose/ClothingDecomposeView.cs

@@ -0,0 +1,276 @@
+using System;
+using System.Collections.Generic;
+using FairyGUI;
+using UI.ClothingDecompose;
+
+namespace GFGGame
+{
+    public class ClothingDecomposeView : BaseWindow
+    {
+        private UI_ClothingDecomposeUI _ui;
+        private ValueBarController _valueBarController;
+
+        private List<int> _datas = new List<int>();
+        private Dictionary<int, int> _decomposeData = new Dictionary<int, int>();
+        private int _decomposeCount = 0;//要分解物品的数量
+        private int _curRarity = 0;
+        public override void Dispose()
+        {
+            _valueBarController.Dispose();
+            _valueBarController = null;
+            base.Dispose();
+        }
+
+
+        protected override void OnInit()
+        {
+            base.OnInit();
+            packageName = UI_ClothingDecomposeUI.PACKAGE_NAME;
+            _ui = UI_ClothingDecomposeUI.Create();
+            this.viewCom = _ui.target;
+            isfullScreen = true;
+            this.clickBlankToClose = false;
+            _valueBarController = new ValueBarController(_ui.m_valueBar);
+
+            _ui.m_btnBack.onClick.Add(OnClickBtnBack);
+            _ui.m_comBtnTab.m_btnRarity0.onClick.Add(() => OnClickBtnRarity(ConstDressRarity.Rarity_FANPIN));
+            _ui.m_comBtnTab.m_btnRarity1.onClick.Add(() => OnClickBtnRarity(ConstDressRarity.Rarity_ZHENXI));
+            _ui.m_comBtnTab.m_btnRarity2.onClick.Add(() => OnClickBtnRarity(ConstDressRarity.Rarity_DIANCANG));
+            _ui.m_comBtnTab.m_btnRarity3.onClick.Add(() => OnClickBtnRarity(ConstDressRarity.Rarity_TIANYI));
+
+            _ui.m_btnSelect.onClick.Add(OnClickBtnSelect);
+            _ui.m_btnRule.onClick.Add(OnClickBtnRule);
+            _ui.m_btnDecompose.onClick.Add(OnClickBtnDecompose);
+
+            _ui.m_list.itemRenderer = ListItemRander;
+            _ui.m_list.SetVirtual();
+
+            _ui.m_listReward.itemRenderer = ListRewardItemRander;
+            _ui.m_listReward.onClickItem.Add(OnClickListRewardItem);
+
+
+        }
+
+        protected override void OnShown()
+        {
+            base.OnShown();
+            _ui.m_c1.selectedIndex = 0;
+            _valueBarController.OnShown();
+            _valueBarController.Controller(6);
+            OnClickBtnRarity(ConstDressRarity.Rarity_FANPIN);
+
+        }
+
+        protected override void OnHide()
+        {
+            base.OnHide();
+            _valueBarController.OnHide();
+
+        }
+
+        private void OnClickBtnRarity(int rarity)
+        {
+            _curRarity = rarity;
+            _datas = DecomposeDataManager.Instance.GetDecomposeDataByRarity(rarity);
+            _ui.m_list.visible = _datas != null && _datas.Count > 0;
+            _ui.m_txtNone.visible = _datas == null || _datas.Count == 0;
+            if (_datas == null) return;
+            _ui.m_list.numItems = _datas.Count;
+            _ui.m_btnSelect.selected = false;
+            CancleAll();
+            UpdateConsume();
+        }
+
+        private void ListItemRander(int index, GObject obj)
+        {
+            UI_ListItem item = UI_ListItem.Proxy(obj);
+            ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(_datas[index]);
+            RarityIconController.UpdateRarityIcon(item.m_loaRarity, itemCfg.id, false);
+            string ext = ItemUtil.GetItemResExt(itemCfg.itemType, itemCfg.subType);
+            item.m_loaIcon.url = ResPathUtil.GetIconPath(itemCfg.res, ext);
+            item.m_txtName.text = itemCfg.name;
+            item.m_imgSelect.visible = false;
+            int itemHasCount = DecomposeDataManager.Instance.ItemCanDecomposeCount(itemCfg.id);
+            item.m_txtHasCount.text = itemHasCount.ToString();
+            int itemCount = _decomposeData.ContainsKey(_datas[index]) ? _decomposeData[_datas[index]] : 0;
+            item.m_txtCount.text = itemCount.ToString();
+            item.m_imgSelect.visible = itemCount > 0;
+            item.m_btnMinus.visible = itemCount > 0;
+            if (item.m_btnMinus.data == null)
+            {
+                item.m_btnMinus.onClick.Add(OnClickBtnMinus);
+            }
+            item.m_btnMinus.data = index;
+
+            if (item.m_loaItem.data == null)
+            {
+                item.m_loaItem.onClick.Add(OnListItemClick);
+
+            }
+            item.m_loaItem.data = index;
+            item.target.data = itemCfg;
+        }
+        private void OnListItemClick(EventContext context)
+        {
+            int index = (int)((context.sender as GLoader).data);
+            int childIndex = _ui.m_list.ItemIndexToChildIndex(index);
+
+            GComponent com = _ui.m_list.GetChildAt(childIndex).asCom;
+            int itemId = (com.data as ItemCfg).id;
+            if (!_decomposeData.ContainsKey(itemId)) _decomposeData[itemId] = 0;
+            if (_decomposeData[itemId] == DecomposeDataManager.Instance.ItemCanDecomposeCount(itemId)) return;
+            if (_decomposeCount == DecomposeDataManager.MaxCount)
+            {
+                PromptController.Instance.ShowFloatTextPrompt("已达到单次可分解上限,请分批操作");
+                return;
+            }
+
+            UI_ListItem item = UI_ListItem.Proxy(com);
+            item.m_btnMinus.visible = true;
+            item.m_imgSelect.visible = true;
+
+            _decomposeData[itemId] = _decomposeData[itemId] + 1;
+            _decomposeCount += 1;
+            item.m_txtCount.text = _decomposeData[itemId].ToString();
+            UpdateConsume();
+
+        }
+
+        private void OnClickBtnMinus(EventContext context)
+        {
+            int index = (int)((context.sender as GButton).data);
+            int childIndex = _ui.m_list.ItemIndexToChildIndex(index);
+            GComponent com = _ui.m_list.GetChildAt(childIndex).asCom;
+            UI_ListItem item = UI_ListItem.Proxy(com);
+
+
+            int itemId = (com.data as ItemCfg).id;
+
+            _decomposeData[itemId] = _decomposeData[itemId] - 1;
+            _decomposeCount -= 1;
+            item.m_txtCount.text = _decomposeData[itemId].ToString();
+            if (_decomposeData[itemId] == 0)
+            {
+                _decomposeData.Remove(itemId);
+                item.m_imgSelect.visible = false;
+                item.m_btnMinus.visible = false;
+            }
+            UpdateConsume();
+
+        }
+
+        private void OnClickBtnSelect()
+        {
+            if (_ui.m_btnSelect.selected)
+            {
+                SelectAll();
+            }
+            else
+            {
+                CancleAll();
+            }
+            UpdateConsume();
+        }
+        private void SelectAll()
+        {
+            int lastCount = DecomposeDataManager.MaxCount - _decomposeCount;
+
+            for (int i = 0; i < _datas.Count; i++)
+            {
+                int itemId = _datas[i];
+                int itemHasCount = DecomposeDataManager.Instance.ItemCanDecomposeCount(itemId);
+                int itemLastCount = _decomposeData.ContainsKey(itemId) ? itemHasCount - _decomposeData[itemId] : itemHasCount;
+
+                int count = Math.Min(lastCount, itemLastCount);
+                lastCount -= count;
+                if (!_decomposeData.ContainsKey(itemId)) _decomposeData[itemId] = 0;
+                _decomposeData[itemId] = _decomposeData[itemId] + count;
+                _decomposeCount += count;
+                if (lastCount == 0) break;
+            }
+            _ui.m_list.numItems = _datas.Count;
+        }
+        private void CancleAll()
+        {
+            _decomposeData.Clear();
+            _ui.m_list.numItems = _datas.Count;
+            _decomposeCount = 0;
+
+        }
+
+        private void UpdateConsume()
+        {
+
+            DecomposeCfg cfg = DecomposeCfgArray.Instance.GetCfg(_curRarity);
+            ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(cfg.consumeId);
+            _ui.m_listReward.numItems = _decomposeCount > 0 ? cfg.itemsArr.Length : 0;
+            _ui.m_txtConsume.text = string.Format("消耗{0}X{1}", itemCfg.name, (_decomposeCount * cfg.consumeCount));
+            _ui.m_txtShow.text = string.Format("*  分解{0}件{1}可获得  *", StringUtil.GetColorText(_decomposeCount.ToString(), "#DA826E"), ConstDressRarity.DressRarityList()[_curRarity]);
+        }
+        private void ListRewardItemRander(int index, GObject obj)
+        {
+            UI_ListRewardItem item = UI_ListRewardItem.Proxy(obj);
+            DecomposeCfg decomposeCfg = DecomposeCfgArray.Instance.GetCfg(_curRarity);
+            ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(decomposeCfg.itemsArr[index][0]);
+            item.m_txtCount.text = (decomposeCfg.itemsArr[index][1] * _decomposeCount).ToString();
+            string ext = ItemUtil.GetItemResExt(itemCfg.itemType, itemCfg.subType);
+            item.m_loaIcon.url = ResPathUtil.GetIconPath(itemCfg.res, ext);
+            item.target.data = itemCfg;
+        }
+        private void OnClickListRewardItem(EventContext context)
+        {
+            UI_ListRewardItem item = UI_ListRewardItem.Proxy((context.data as GObject));
+
+            GoodsItemTipsController.ShowItemTips((item.target.data as ItemCfg).id);
+        }
+        private void OnClickBtnDecompose()
+        {
+            if (_curRarity > ConstDressRarity.Rarity_ZHENXI)
+            {
+                Alert.Show(string.Format("当前选择的稀有度为{0},是否确定分解?", ConstDressRarity.DressRarityList()[_curRarity])).SetLeftButton(true).SetRightButton(true, "确定", (object data) => { DecomposeItem(); });
+            }
+            else
+            {
+                DecomposeItem();
+            }
+        }
+        private void DecomposeItem()
+        {
+            DecomposeCfg cfg = DecomposeCfgArray.Instance.GetCfg(_curRarity);
+            ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(cfg.consumeId);
+
+            int consumeCount = cfg.consumeCount * _decomposeCount;
+            if (consumeCount > ItemDataManager.GetItemNum(cfg.consumeId))
+            {
+                PromptController.Instance.ShowFloatTextPrompt(string.Format("{0}不足", itemCfg.name));
+                return;
+            }
+            ItemDataManager.Remove(cfg.consumeId, consumeCount);
+            foreach (int key in _decomposeData.Keys)
+            {
+                ItemDataManager.Remove(key, _decomposeData[key]);
+            }
+            List<ItemData> listReward = new List<ItemData>();
+            for (int i = 0; i < cfg.itemsArr.Length; i++)
+            {
+                ItemData itemData = new ItemData();
+                itemData.id = cfg.itemsArr[i][0];
+                itemData.num = cfg.itemsArr[i][1] * _decomposeCount;
+                listReward.Add(itemData);
+                ItemDataManager.Add(itemData.id, itemData.num);
+            }
+
+            ViewManager.Show<RewardView>(listReward);
+            OnClickBtnRarity(_curRarity);
+        }
+        private void OnClickBtnRule()
+        {
+            ViewManager.Show<ClothingDecomposeRuleView>();
+        }
+
+        private void OnClickBtnBack()
+        {
+            ViewManager.GoBackFrom(typeof(ClothingDecomposeView).FullName);
+        }
+    }
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/Views/ClothingDecompose/ClothingDecomposeView.cs.meta

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

+ 14 - 5
GameClient/Assets/Game/HotUpdate/Views/XiuFang/XiuFangView.cs

@@ -24,15 +24,19 @@ namespace GFGGame
             isfullScreen = true;
 
             _ui.m_btnBack.onClick.Add(OnClickBtnBack);
-            _ui.m_btnClothingShop.onClick.Add(OnClickBtnClothingShop);
-            _ui.m_btnSuitSynthetic.onClick.Add(OnClickBtnSuitSynthetic);
-            _ui.m_btnClothingUpgrade.onClick.Add(OnClickBtnClothingUpgrade);
+            _ui.m_component.m_btnClothingShop.onClick.Add(OnClickBtnClothingShop);
+            _ui.m_component.m_btnSuitSynthetic.onClick.Add(OnClickBtnSuitSynthetic);
+            _ui.m_component.m_btnClothingUpgrade.onClick.Add(OnClickBtnClothingUpgrade);
+            _ui.m_component.m_btnDecompose.onClick.Add(OnClickBtnDecompose);
         }
 
         protected override void OnShown()
         {
             base.OnShown();
-            GuideController.TryGuideSuitSyntheticView(_ui.m_btnSuitSynthetic);
+
+            _ui.m_component.target.scrollPane.SetPosX(0, false);
+
+            GuideController.TryGuideSuitSyntheticView(_ui.m_component.m_btnSuitSynthetic);
             Timers.inst.AddUpdate(UpdateToCheckGuide);
         }
 
@@ -64,12 +68,17 @@ namespace GFGGame
         {
             PromptController.Instance.ShowFloatTextPrompt("暂未开放", MessageType.WARNING);
         }
+        private void OnClickBtnDecompose()
+        {
+            ViewManager.Show<ClothingDecomposeView>(null, new object[] { ViewName.XIU_FANG_VIEW, this.viewData });
+
+        }
 
         private void UpdateToCheckGuide(object param)
         {
             if (!ViewManager.CheckIsTopView(this.viewCom)) return;
 
-            GuideController.TryGuide(_ui.m_btnSuitSynthetic, ConstGuideId.CLOTHING_SYNTHETIC, 6, "这里可以查看已获得的服饰图谱");
+            GuideController.TryGuide(_ui.m_component.m_btnSuitSynthetic, ConstGuideId.CLOTHING_SYNTHETIC, 6, "这里可以查看已获得的服饰图谱");
 
         }
 

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


BIN
GameClient/Assets/ResIn/UI/Card/Card_atlas0.png


BIN
GameClient/Assets/ResIn/UI/Card/Card_fui.bytes


+ 8 - 0
GameClient/Assets/ResIn/UI/ClothingDecompose.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 3f67f62ba5a6701429c7504615fc492b
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
GameClient/Assets/ResIn/UI/ClothingDecompose/ClothingDecompose_atlas0.png


+ 96 - 0
GameClient/Assets/ResIn/UI/ClothingDecompose/ClothingDecompose_atlas0.png.meta

@@ -0,0 +1,96 @@
+fileFormatVersion: 2
+guid: 6f16deaab75ff084dbd7748413c64b30
+TextureImporter:
+  internalIDToNameTable: []
+  externalObjects: {}
+  serializedVersion: 11
+  mipmaps:
+    mipMapMode: 0
+    enableMipMap: 0
+    sRGBTexture: 1
+    linearTexture: 0
+    fadeOut: 0
+    borderMipMap: 0
+    mipMapsPreserveCoverage: 0
+    alphaTestReferenceValue: 0.5
+    mipMapFadeDistanceStart: 1
+    mipMapFadeDistanceEnd: 3
+  bumpmap:
+    convertToNormalMap: 0
+    externalNormalMap: 0
+    heightScale: 0.25
+    normalMapFilter: 0
+  isReadable: 0
+  streamingMipmaps: 0
+  streamingMipmapsPriority: 0
+  vTOnly: 0
+  grayScaleToAlpha: 0
+  generateCubemap: 6
+  cubemapConvolution: 0
+  seamlessCubemap: 0
+  textureFormat: 1
+  maxTextureSize: 2048
+  textureSettings:
+    serializedVersion: 2
+    filterMode: 1
+    aniso: 1
+    mipBias: 0
+    wrapU: 1
+    wrapV: 1
+    wrapW: 1
+  nPOTScale: 0
+  lightmap: 0
+  compressionQuality: 50
+  spriteMode: 1
+  spriteExtrude: 1
+  spriteMeshType: 1
+  alignment: 0
+  spritePivot: {x: 0.5, y: 0.5}
+  spritePixelsToUnits: 100
+  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+  spriteGenerateFallbackPhysicsShape: 1
+  alphaUsage: 1
+  alphaIsTransparency: 1
+  spriteTessellationDetail: -1
+  textureType: 8
+  textureShape: 1
+  singleChannelComponent: 0
+  flipbookRows: 1
+  flipbookColumns: 1
+  maxTextureSizeSet: 0
+  compressionQualitySet: 0
+  textureFormatSet: 0
+  ignorePngGamma: 0
+  applyGammaDecoding: 0
+  platformSettings:
+  - serializedVersion: 3
+    buildTarget: DefaultTexturePlatform
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  spriteSheet:
+    serializedVersion: 2
+    sprites: []
+    outline: []
+    physicsShape: []
+    bones: []
+    spriteID: 5e97eb03825dee720800000000000000
+    internalID: 0
+    vertices: []
+    indices: 
+    edges: []
+    weights: []
+    secondaryTextures: []
+  spritePackingTag: 
+  pSDRemoveMatte: 0
+  pSDShowRemoveMatteOption: 0
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
GameClient/Assets/ResIn/UI/ClothingDecompose/ClothingDecompose_fui.bytes


+ 7 - 0
GameClient/Assets/ResIn/UI/ClothingDecompose/ClothingDecompose_fui.bytes.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 454c62ee54b416e4a9d5a89c6c3bea25
+TextScriptImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

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/XiuFang/XiuFang_atlas0!a.png


BIN
GameClient/Assets/ResIn/UI/XiuFang/XiuFang_atlas0.png


BIN
GameClient/Assets/ResIn/UI/XiuFang/XiuFang_atlas0_1!a.png


+ 96 - 0
GameClient/Assets/ResIn/UI/XiuFang/XiuFang_atlas0_1!a.png.meta

@@ -0,0 +1,96 @@
+fileFormatVersion: 2
+guid: c087da3d4da9e22458b84caa8d384a9a
+TextureImporter:
+  internalIDToNameTable: []
+  externalObjects: {}
+  serializedVersion: 11
+  mipmaps:
+    mipMapMode: 0
+    enableMipMap: 0
+    sRGBTexture: 1
+    linearTexture: 0
+    fadeOut: 0
+    borderMipMap: 0
+    mipMapsPreserveCoverage: 0
+    alphaTestReferenceValue: 0.5
+    mipMapFadeDistanceStart: 1
+    mipMapFadeDistanceEnd: 3
+  bumpmap:
+    convertToNormalMap: 0
+    externalNormalMap: 0
+    heightScale: 0.25
+    normalMapFilter: 0
+  isReadable: 0
+  streamingMipmaps: 0
+  streamingMipmapsPriority: 0
+  vTOnly: 0
+  grayScaleToAlpha: 0
+  generateCubemap: 6
+  cubemapConvolution: 0
+  seamlessCubemap: 0
+  textureFormat: 1
+  maxTextureSize: 2048
+  textureSettings:
+    serializedVersion: 2
+    filterMode: 1
+    aniso: 1
+    mipBias: 0
+    wrapU: 1
+    wrapV: 1
+    wrapW: 1
+  nPOTScale: 0
+  lightmap: 0
+  compressionQuality: 50
+  spriteMode: 1
+  spriteExtrude: 1
+  spriteMeshType: 1
+  alignment: 0
+  spritePivot: {x: 0.5, y: 0.5}
+  spritePixelsToUnits: 100
+  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+  spriteGenerateFallbackPhysicsShape: 1
+  alphaUsage: 1
+  alphaIsTransparency: 1
+  spriteTessellationDetail: -1
+  textureType: 8
+  textureShape: 1
+  singleChannelComponent: 0
+  flipbookRows: 1
+  flipbookColumns: 1
+  maxTextureSizeSet: 0
+  compressionQualitySet: 0
+  textureFormatSet: 0
+  ignorePngGamma: 0
+  applyGammaDecoding: 0
+  platformSettings:
+  - serializedVersion: 3
+    buildTarget: DefaultTexturePlatform
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  spriteSheet:
+    serializedVersion: 2
+    sprites: []
+    outline: []
+    physicsShape: []
+    bones: []
+    spriteID: 5e97eb03825dee720800000000000000
+    internalID: 0
+    vertices: []
+    indices: 
+    edges: []
+    weights: []
+    secondaryTextures: []
+  spritePackingTag: 
+  pSDRemoveMatte: 0
+  pSDShowRemoveMatteOption: 0
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
GameClient/Assets/ResIn/UI/XiuFang/XiuFang_atlas0_1.png


+ 96 - 0
GameClient/Assets/ResIn/UI/XiuFang/XiuFang_atlas0_1.png.meta

@@ -0,0 +1,96 @@
+fileFormatVersion: 2
+guid: 8b04937bc543b9a47b50114445425501
+TextureImporter:
+  internalIDToNameTable: []
+  externalObjects: {}
+  serializedVersion: 11
+  mipmaps:
+    mipMapMode: 0
+    enableMipMap: 0
+    sRGBTexture: 1
+    linearTexture: 0
+    fadeOut: 0
+    borderMipMap: 0
+    mipMapsPreserveCoverage: 0
+    alphaTestReferenceValue: 0.5
+    mipMapFadeDistanceStart: 1
+    mipMapFadeDistanceEnd: 3
+  bumpmap:
+    convertToNormalMap: 0
+    externalNormalMap: 0
+    heightScale: 0.25
+    normalMapFilter: 0
+  isReadable: 0
+  streamingMipmaps: 0
+  streamingMipmapsPriority: 0
+  vTOnly: 0
+  grayScaleToAlpha: 0
+  generateCubemap: 6
+  cubemapConvolution: 0
+  seamlessCubemap: 0
+  textureFormat: 1
+  maxTextureSize: 2048
+  textureSettings:
+    serializedVersion: 2
+    filterMode: 1
+    aniso: 1
+    mipBias: 0
+    wrapU: 1
+    wrapV: 1
+    wrapW: 1
+  nPOTScale: 0
+  lightmap: 0
+  compressionQuality: 50
+  spriteMode: 1
+  spriteExtrude: 1
+  spriteMeshType: 1
+  alignment: 0
+  spritePivot: {x: 0.5, y: 0.5}
+  spritePixelsToUnits: 100
+  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+  spriteGenerateFallbackPhysicsShape: 1
+  alphaUsage: 1
+  alphaIsTransparency: 1
+  spriteTessellationDetail: -1
+  textureType: 8
+  textureShape: 1
+  singleChannelComponent: 0
+  flipbookRows: 1
+  flipbookColumns: 1
+  maxTextureSizeSet: 0
+  compressionQualitySet: 0
+  textureFormatSet: 0
+  ignorePngGamma: 0
+  applyGammaDecoding: 0
+  platformSettings:
+  - serializedVersion: 3
+    buildTarget: DefaultTexturePlatform
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  spriteSheet:
+    serializedVersion: 2
+    sprites: []
+    outline: []
+    physicsShape: []
+    bones: []
+    spriteID: 5e97eb03825dee720800000000000000
+    internalID: 0
+    vertices: []
+    indices: 
+    edges: []
+    weights: []
+    secondaryTextures: []
+  spritePackingTag: 
+  pSDRemoveMatte: 0
+  pSDShowRemoveMatteOption: 0
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
GameClient/Assets/ResIn/UI/XiuFang/XiuFang_fui.bytes