浏览代码

Merge remote-tracking branch 'remotes/origin/zhaoyang' into guodong

# Conflicts:
#	GameClient/Assets/ResIn/Config/excelConfig.sqlite.bytes
guodong 3 年之前
父节点
当前提交
0fd92b7f69
共有 95 个文件被更改,包括 1509 次插入640 次删除
  1. 3 3
      FGUIProject/assets/ClothingShop/ClothingShopUI.xml
  2. 13 0
      FGUIProject/assets/Common/components/Button12.xml
  3. 二进制
      FGUIProject/assets/Common/imagesExport/grxx_anniu_1.png
  4. 二进制
      FGUIProject/assets/Common/imagesExport/grxx_anniu_2.png
  5. 3 0
      FGUIProject/assets/Common/package.xml
  6. 5 2
      FGUIProject/assets/CommonGame/RewardUI.xml
  7. 二进制
      FGUIProject/assets/CommonGame/imagesExport/kp_sx_da_1.png
  8. 二进制
      FGUIProject/assets/CommonGame/imagesExport/kp_sx_da_2.png
  9. 二进制
      FGUIProject/assets/CommonGame/imagesExport/kp_sx_da_3.png
  10. 二进制
      FGUIProject/assets/CommonGame/imagesExport/kp_sx_da_4.png
  11. 二进制
      FGUIProject/assets/CommonGame/imagesExport/kp_sxing_x_1.png
  12. 二进制
      FGUIProject/assets/CommonGame/imagesExport/kp_sxing_x_2.png
  13. 二进制
      FGUIProject/assets/CommonGame/imagesExport/kp_sxing_x_3.png
  14. 二进制
      FGUIProject/assets/CommonGame/imagesExport/kp_sxing_x_4.png
  15. 3 0
      FGUIProject/assets/DressUp/DressUpFightUI.xml
  16. 3 0
      FGUIProject/assets/DressUp/DressUpUI.xml
  17. 1 1
      FGUIProject/assets/Guide/GuideUI.xml
  18. 8 0
      FGUIProject/assets/Guide/components/ComHolder.xml
  19. 1 0
      FGUIProject/assets/Guide/package.xml
  20. 13 13
      FGUIProject/assets/Main/RoleInfoUI.xml
  21. 3 3
      FGUIProject/assets/Main/components/ProgressBarExp2.xml
  22. 二进制
      FGUIProject/assets/Main/images/grxx_dikuang.png
  23. 二进制
      FGUIProject/assets/Main/images/grxx_jyt_1.png
  24. 二进制
      FGUIProject/assets/Main/images/grxx_jyt_2.png
  25. 12 12
      GameClient/Assets/Editor/Excel/CodeBuilder.cs
  26. 50 0
      GameClient/Assets/Editor/Excel/Scanner/CardScanner.cs
  27. 11 0
      GameClient/Assets/Editor/Excel/Scanner/CardScanner.cs.meta
  28. 239 0
      GameClient/Assets/Editor/Excel/Scanner/ShopScanner.cs
  29. 11 0
      GameClient/Assets/Editor/Excel/Scanner/ShopScanner.cs.meta
  30. 8 4
      GameClient/Assets/Editor/ToolsMenu.cs
  31. 12 0
      GameClient/Assets/Game/HotUpdate/Constant/ConstStorageId.cs
  32. 11 0
      GameClient/Assets/Game/HotUpdate/Constant/ConstStorageId.cs.meta
  33. 37 12
      GameClient/Assets/Game/HotUpdate/Controller/GameController.cs
  34. 26 33
      GameClient/Assets/Game/HotUpdate/Controller/GuideController.cs
  35. 5 5
      GameClient/Assets/Game/HotUpdate/Controller/LoginController.cs
  36. 66 122
      GameClient/Assets/Game/HotUpdate/Data/CardDataManager.cs
  37. 31 62
      GameClient/Assets/Game/HotUpdate/Data/GuideDataManager.cs
  38. 0 6
      GameClient/Assets/Game/HotUpdate/Data/ItemDataManager.cs
  39. 1 1
      GameClient/Assets/Game/HotUpdate/Data/MainStoryDataManager.cs
  40. 35 27
      GameClient/Assets/Game/HotUpdate/Data/ScoreSystemData.cs
  41. 45 59
      GameClient/Assets/Game/HotUpdate/Data/SkillDataManager.cs
  42. 33 0
      GameClient/Assets/Game/HotUpdate/Data/StorageDataManager.cs
  43. 11 0
      GameClient/Assets/Game/HotUpdate/Data/StorageDataManager.cs.meta
  44. 4 0
      GameClient/Assets/Game/HotUpdate/DressUp/DressUpObjDataCache.cs
  45. 11 10
      GameClient/Assets/Game/HotUpdate/ExcelConfig/Manager/CardCfgManager.cs
  46. 4 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/DressUp/UI_DressUpFightUI.cs
  47. 4 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/DressUp/UI_DressUpUI.cs
  48. 71 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/Guide/UI_ComHolder.cs
  49. 11 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/Guide/UI_ComHolder.cs.meta
  50. 4 3
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/Guide/UI_GuideUI.cs
  51. 89 0
      GameClient/Assets/Game/HotUpdate/ServerProxy/CardSProxy.cs
  52. 11 0
      GameClient/Assets/Game/HotUpdate/ServerProxy/CardSProxy.cs.meta
  53. 1 1
      GameClient/Assets/Game/HotUpdate/ServerProxy/ItemExchangeSProxy.cs
  54. 1 2
      GameClient/Assets/Game/HotUpdate/ServerProxy/ShopSProxy.cs
  55. 44 0
      GameClient/Assets/Game/HotUpdate/ServerProxy/StorageSProxy.cs
  56. 11 0
      GameClient/Assets/Game/HotUpdate/ServerProxy/StorageSProxy.cs.meta
  57. 1 1
      GameClient/Assets/Game/HotUpdate/ServerProxy/StudioSProxy.cs
  58. 20 20
      GameClient/Assets/Game/HotUpdate/Views/Card/CardDetailView.cs
  59. 75 79
      GameClient/Assets/Game/HotUpdate/Views/Card/CardFosterView.cs
  60. 37 33
      GameClient/Assets/Game/HotUpdate/Views/Card/CardSkillView.cs
  61. 13 4
      GameClient/Assets/Game/HotUpdate/Views/ClothingShop/ClothingShopView.cs
  62. 1 1
      GameClient/Assets/Game/HotUpdate/Views/ClothingSynthetic/ClothingSyntheticView.cs
  63. 1 1
      GameClient/Assets/Game/HotUpdate/Views/ClothingSynthetic/SuitSyntheticView.cs
  64. 5 0
      GameClient/Assets/Game/HotUpdate/Views/Common/Alert/AlertWindow.cs
  65. 3 3
      GameClient/Assets/Game/HotUpdate/Views/CommonGame/ApproachOfItemView.cs
  66. 1 1
      GameClient/Assets/Game/HotUpdate/Views/CommonGame/GetBonusView.cs
  67. 2 2
      GameClient/Assets/Game/HotUpdate/Views/CommonGame/GetSuitItemVIew.cs
  68. 128 9
      GameClient/Assets/Game/HotUpdate/Views/DressUp/DressUpFightView.cs
  69. 2 1
      GameClient/Assets/Game/HotUpdate/Views/DressUp/DressUpListType.cs
  70. 150 5
      GameClient/Assets/Game/HotUpdate/Views/DressUp/DressUpView.cs
  71. 1 1
      GameClient/Assets/Game/HotUpdate/Views/DressUp/PhotographView.cs
  72. 49 59
      GameClient/Assets/Game/HotUpdate/Views/Guide/GuideView.cs
  73. 5 5
      GameClient/Assets/Game/HotUpdate/Views/LuckyBox/LuckyBoxStarView.cs
  74. 3 3
      GameClient/Assets/Game/HotUpdate/Views/MainStory/StoryCardChoose.cs
  75. 1 1
      GameClient/Assets/Game/HotUpdate/Views/MainStory/StoryChapterView.cs
  76. 9 2
      GameClient/Assets/Game/HotUpdate/Views/MainStory/StoryFightSingleScoreView.cs
  77. 19 11
      GameClient/Assets/Game/HotUpdate/Views/MainStory/StoryFightTargetScoreView.cs
  78. 2 2
      GameClient/Assets/Game/HotUpdate/Views/MainStory/StoryLevelInfoView.cs
  79. 1 1
      GameClient/Assets/Game/HotUpdate/Views/MainStory/StorySkillView.cs
  80. 9 9
      GameClient/Assets/Game/HotUpdate/Views/MainStory/StroyFightResultView.cs
  81. 5 5
      GameClient/Assets/Game/HotUpdate/Views/MainUI/MainUIView.cs
  82. 二进制
      GameClient/Assets/ResIn/Config/excelConfig.sqlite.bytes
  83. 二进制
      GameClient/Assets/ResIn/UI/ClothingShop/ClothingShop_fui.bytes
  84. 二进制
      GameClient/Assets/ResIn/UI/Common/Common_atlas0.png
  85. 二进制
      GameClient/Assets/ResIn/UI/Common/Common_fui.bytes
  86. 二进制
      GameClient/Assets/ResIn/UI/CommonGame/CommonGame_atlas0!a.png
  87. 二进制
      GameClient/Assets/ResIn/UI/CommonGame/CommonGame_atlas0.png
  88. 二进制
      GameClient/Assets/ResIn/UI/CommonGame/CommonGame_fui.bytes
  89. 二进制
      GameClient/Assets/ResIn/UI/DressUp/DressUp_fui.bytes
  90. 二进制
      GameClient/Assets/ResIn/UI/Guide/Guide_fui.bytes
  91. 二进制
      GameClient/Assets/ResIn/UI/Main/Main_atlas0_1!a.png
  92. 二进制
      GameClient/Assets/ResIn/UI/Main/Main_atlas0_1.png
  93. 二进制
      GameClient/Assets/ResIn/UI/Main/Main_atlas0_2!a.png
  94. 二进制
      GameClient/Assets/ResIn/UI/Main/Main_atlas0_2.png
  95. 二进制
      GameClient/Assets/ResIn/UI/Main/Main_fui.bytes

+ 3 - 3
FGUIProject/assets/ClothingShop/ClothingShopUI.xml

@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <component size="1080,1920">
-  <controller name="c1" pages="2,,3,,4,,5," selected="3">
+  <controller name="c1" pages="2,,3,,4,,5," selected="2">
     <remark page="1" value="服装店"/>
     <remark page="2" value="落星商店"/>
     <remark page="3" value="活动商店"/>
@@ -81,14 +81,14 @@
     </component>
     <component id="n47_ugdz" name="btnBack" src="9xlo8" fileName="components/ButtonBack1.xml" pkg="eg2y0ldp" xy="35,80"/>
     <image id="n49_f5bl" name="n49" src="lwri5x" fileName="images/hc_btkuang_1.png" pkg="eg2y0ldp" xy="282,103" group="n51_f5bl"/>
-    <text id="n50_f5bl" name="txtTitle" xy="540,98" pivot="0.5,0" anchor="true" size="154,51" group="n51_f5bl" fontSize="38" color="#fdf4e3" text="活动商店">
+    <text id="n50_f5bl" name="txtTitle" xy="540,98" pivot="0.5,0" anchor="true" size="154,51" group="n51_f5bl" fontSize="38" color="#fdf4e3" text="落星商店">
       <gearText controller="c1" pages="4" values="落星商店" default="活动商店"/>
     </text>
     <group id="n51_f5bl" name="grpTop" xy="282,98" size="516,60" advanced="true">
       <gearDisplay controller="c1" pages="4,5"/>
     </group>
     <image id="n52_iakb" name="n52" src="iakb5z" fileName="images/fzd_lxsdt.png" xy="431,1140" group="n53_iakb"/>
-    <text id="n54_iakb" name="txtTips" xy="476,1162" size="325,39" group="n59_iakb" fontSize="28" color="#fffbf0" text="100星屑自动合成1落星石"/>
+    <text id="n54_iakb" name="txtTips" xy="476,1162" size="308,39" group="n59_iakb" fontSize="28" color="#fffbf0" text="50星屑自动合成1落星石"/>
     <loader id="n55_iakb" name="loaIcon0" xy="821,1162" size="42,42" group="n60_iakb" url="ui://eg2y0ldply9g8m" autoSize="true"/>
     <text id="n56_iakb" name="txtCount0" xy="865,1162" size="56,39" group="n60_iakb" fontSize="28" color="#fffbf0" text="100"/>
     <group id="n60_iakb" name="n60" xy="821,1162" size="100,42" group="n59_iakb"/>

+ 13 - 0
FGUIProject/assets/Common/components/Button12.xml

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

二进制
FGUIProject/assets/Common/imagesExport/grxx_anniu_1.png


二进制
FGUIProject/assets/Common/imagesExport/grxx_anniu_2.png


+ 3 - 0
FGUIProject/assets/Common/package.xml

@@ -35,6 +35,9 @@
     <image id="ih7592" name="tctc_anniu_1.png" path="/imagesExport/"/>
     <image id="ih7591" name="tctc_anniu_2.png" path="/imagesExport/"/>
     <component id="pf2696" name="ComHolder.xml" path="/components/" exported="true"/>
+    <component id="axdi97" name="Button12.xml" path="/components/" exported="true"/>
+    <image id="axdi98" name="grxx_anniu_2.png" path="/imagesExport/"/>
+    <image id="axdi99" name="grxx_anniu_1.png" path="/imagesExport/"/>
   </resources>
   <publish name="" path="..\GameClient\Assets\ResIn\UI\Common" packageCount="2" genCode="true" extractAlpha="true"/>
 </packageDescription>

+ 5 - 2
FGUIProject/assets/CommonGame/RewardUI.xml

@@ -6,14 +6,17 @@
     <image id="n1_m9wm" name="imgTitle" src="m9wm8r" fileName="images/gxhd_btbt.png" xy="0,300" group="n8_m9wm">
       <relation target="" sidePair="center-center"/>
     </image>
-    <list id="n6_m9wm" name="listReward" xy="91,730" size="898,248" group="n8_m9wm" layout="row" overflow="scroll" scroll="horizontal" colGap="91" defaultItem="ui://eg2y0ldpm9wm8u" align="center">
+    <list id="n6_m9wm" name="listReward" xy="95,730" size="889,580" group="n8_m9wm" layout="flow_hz" overflow="scroll" lineGap="60" colGap="91" defaultItem="ui://eg2y0ldpm9wm8u" align="center">
       <relation target="" sidePair="center-center"/>
       <item/>
       <item/>
       <item/>
       <item/>
+      <item/>
+      <item/>
+      <item/>
     </list>
-    <group id="n8_m9wm" name="grp" xy="0,300" size="1080,816" advanced="true"/>
+    <group id="n8_m9wm" name="grp" xy="0,300" size="1080,1010" advanced="true"/>
     <text id="n7_m9wm" name="n7" xy="430,1822" size="220,49" fontSize="36" color="#958163" text="点击屏幕继续">
       <relation target="" sidePair="bottom-bottom"/>
     </text>

二进制
FGUIProject/assets/CommonGame/imagesExport/kp_sx_da_1.png


二进制
FGUIProject/assets/CommonGame/imagesExport/kp_sx_da_2.png


二进制
FGUIProject/assets/CommonGame/imagesExport/kp_sx_da_3.png


二进制
FGUIProject/assets/CommonGame/imagesExport/kp_sx_da_4.png


二进制
FGUIProject/assets/CommonGame/imagesExport/kp_sxing_x_1.png


二进制
FGUIProject/assets/CommonGame/imagesExport/kp_sxing_x_2.png


二进制
FGUIProject/assets/CommonGame/imagesExport/kp_sxing_x_3.png


二进制
FGUIProject/assets/CommonGame/imagesExport/kp_sxing_x_4.png


+ 3 - 0
FGUIProject/assets/DressUp/DressUpFightUI.xml

@@ -34,6 +34,9 @@
     <component id="n10_qsvd" name="partsList" src="k6he1v" fileName="components/PartsList.xml" xy="1081,80" size="222,1828" group="n38_8lqj">
       <relation target="" sidePair="right-right,top-top,bottomext-bottom"/>
     </component>
+    <component id="n40_afs6" name="partsList2" src="k6he1v" fileName="components/PartsList.xml" xy="1080,80" size="222,1828" group="n38_8lqj">
+      <relation target="" sidePair="right-right,top-top,bottomext-bottom"/>
+    </component>
     <component id="n15_vxw5" name="btnHint" src="f4xv3o" fileName="components/Button6.xml" xy="27,895" size="116,106" group="n38_8lqj">
       <relation target="" sidePair="left-left,bottom-bottom"/>
       <Button title="任务提示" titleColor="#ffffff" titleFontSize="42" icon="ui://mbo439wb8xpg2q"/>

+ 3 - 0
FGUIProject/assets/DressUp/DressUpUI.xml

@@ -32,6 +32,9 @@
     <component id="n17_k6he" name="partsList" src="k6he1v" fileName="components/PartsList.xml" xy="1081,80" size="222,1828" group="n30_8lqj">
       <relation target="" sidePair="right-right,top-top,bottomext-bottom"/>
     </component>
+    <component id="n32_afs6" name="partsList2" src="k6he1v" fileName="components/PartsList.xml" xy="1081,80" size="222,1828" group="n30_8lqj">
+      <relation target="" sidePair="right-right,top-top,bottomext-bottom"/>
+    </component>
     <component id="n27_j48o" name="btnAction" src="f4xv3o" fileName="components/Button6.xml" xy="27,735" size="116,106" group="n30_8lqj">
       <Button icon="ui://mbo439wbj48o3x"/>
     </component>

+ 1 - 1
FGUIProject/assets/Guide/GuideUI.xml

@@ -7,6 +7,6 @@
     <component id="n15_tu96" name="rectFrame" src="tu96f" fileName="components/Component3.xml" xy="404,798" visible="false" touchable="false"/>
     <component id="n17_tu96" name="compTxt" src="tu96d" fileName="components/Component1.xml" xy="261,1099" touchable="false"/>
     <image id="n18_a5x3" name="rectFrameTemp" src="tu96c" fileName="images/yd_tykuang_2.png" xy="272,822" visible="false"/>
-    <graph id="n19_bd1c" name="holder" xy="400,1285" size="100,100" touchable="false"/>
+    <component id="n19_bd1c" name="comHolder" src="axdii" fileName="components/ComHolder.xml" xy="400,1285" touchable="false"/>
   </displayList>
 </component>

+ 8 - 0
FGUIProject/assets/Guide/components/ComHolder.xml

@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<component size="100,100">
+  <displayList>
+    <graph id="n19_bd1c" name="holder" xy="0,0" pivot="0.5,0.5" size="100,100" touchable="false">
+      <relation target="" sidePair="center-center,middle-middle"/>
+    </graph>
+  </displayList>
+</component>

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

@@ -11,6 +11,7 @@
     <component id="tu96e" name="Component2.xml" path="/components/"/>
     <component id="tu96f" name="Component3.xml" path="/components/"/>
     <image id="o139g" name="yd_tykuang_3.png" path="/images/"/>
+    <component id="axdii" name="ComHolder.xml" path="/components/"/>
   </resources>
   <publish name="Guide" path="..\GameClient\Assets\ResIn\UI\Guide" packageCount="2" genCode="true" extractAlpha="true">
     <atlas name="默认" index="0"/>

+ 13 - 13
FGUIProject/assets/Main/RoleInfoUI.xml

@@ -1,26 +1,26 @@
 <?xml version="1.0" encoding="utf-8"?>
 <component size="878,1044">
   <displayList>
-    <loader id="n0_d4iw" name="bg" xy="0,0" size="878,1044" url="ui://mfvz4q8kmhyhd5" fill="scaleFree" autoSize="true"/>
+    <loader id="n0_d4iw" name="bg" xy="0,0" size="877,1103" url="ui://mfvz4q8kmhyhd5" fill="scaleFree" autoSize="true"/>
     <image id="n23_mhyh" name="n23" src="mhyhd7" fileName="images/grxx_mzk_1.png" xy="287,313"/>
     <text id="n2_d4iw" name="txtTitle" xy="93,22" size="726,56" visible="false" fontSize="42" color="#ffffff" align="center" autoSize="none" text="个人信息"/>
     <component id="n4_d4iw" name="n4" src="kubi7h" fileName="components/CompHeadWithBg.xml" xy="377,86"/>
-    <text id="n5_d4iw" name="txtRoleName" xy="346,313" pivot="0.5,0" size="186,62" fontSize="46" color="#a37349" align="center" text="角色名五"/>
-    <text id="n6_d4iw" name="n6" xy="153,466" size="71,46" fontSize="34" color="#aa794d" text="等级"/>
-    <text id="n7_d4iw" name="n7" xy="153,526" size="71,46" fontSize="34" color="#aa794d" text="经验"/>
-    <text id="n8_d4iw" name="txtLvl" xy="257,466" size="25,46" fontSize="34" color="#c47a6c" text="1"/>
-    <component id="n9_d4iw" name="proBarExp" src="d4iw6m" fileName="components/ProgressBarExp2.xml" xy="248,534">
+    <text id="n5_d4iw" name="txtRoleName" xy="346,313" pivot="0.5,0" size="186,61" fontSize="46" color="#a37349" align="center" text="角色名五"/>
+    <text id="n6_d4iw" name="n6" xy="130,440" size="71,46" fontSize="34" color="#aa794d" text="等级"/>
+    <text id="n7_d4iw" name="n7" xy="130,500" size="71,46" fontSize="34" color="#aa794d" text="经验"/>
+    <text id="n10_d4iw" name="n10" xy="130,560" size="71,46" fontSize="34" color="#aa794d" text="音效"/>
+    <text id="n12_d4iw" name="n12" xy="520,560" size="71,46" fontSize="34" color="#aa794d" text="音乐"/>
+    <text id="n8_d4iw" name="txtLvl" xy="235,440" size="25,46" fontSize="34" color="#c47a6c" text="1"/>
+    <component id="n9_d4iw" name="proBarExp" src="d4iw6m" fileName="components/ProgressBarExp2.xml" xy="229,508">
       <ProgressBar value="100" max="100"/>
     </component>
-    <text id="n10_d4iw" name="n10" xy="153,586" size="71,46" fontSize="34" color="#aa794d" text="音效"/>
-    <component id="n11_d4iw" name="btnSound" src="d4iw6o" fileName="components/ButtonToggle.xml" xy="244,587"/>
-    <text id="n12_d4iw" name="n12" xy="505,586" size="71,46" fontSize="34" color="#aa794d" text="音乐"/>
-    <component id="n13_d4iw" name="btnMusic" src="d4iw6o" fileName="components/ButtonToggle.xml" xy="587,591"/>
-    <component id="n19_ga16" name="btnLogout" src="ih7594" fileName="components/Button10.xml" pkg="mk0fwx0x" xy="120,720" size="300,82" aspect="true">
+    <component id="n11_d4iw" name="btnSound" src="d4iw6o" fileName="components/ButtonToggle.xml" xy="229,561"/>
+    <component id="n13_d4iw" name="btnMusic" src="d4iw6o" fileName="components/ButtonToggle.xml" xy="609,565"/>
+    <component id="n19_ga16" name="btnLogout" src="axdi97" fileName="components/Button12.xml" pkg="mk0fwx0x" xy="277,786" aspect="true">
       <Button title="注销账户"/>
     </component>
-    <component id="n14_d4iw" name="btnExit" src="ih7594" fileName="components/Button10.xml" pkg="mk0fwx0x" xy="430,720" size="300,82" aspect="true">
-      <Button title="返回登录"/>
+    <component id="n14_d4iw" name="btnExit" src="axdi97" fileName="components/Button12.xml" pkg="mk0fwx0x" xy="277,668" aspect="true">
+      <Button title="返回登录" icon="ui://mk0fwx0xaxdi98"/>
     </component>
     <component id="n18_d4iw" name="btnHelp" src="d4iw6p" fileName="components/ButtonHelp.xml" xy="704,884">
       <Button title="?"/>

+ 3 - 3
FGUIProject/assets/Main/components/ProgressBarExp2.xml

@@ -1,11 +1,11 @@
 <?xml version="1.0" encoding="utf-8"?>
-<component size="443,22" extention="ProgressBar">
+<component size="486,22" extention="ProgressBar">
   <displayList>
     <image id="n0_d4iw" name="n0" src="d4iw6g" fileName="images/grxx_jyt_1.png" xy="-2,-2">
       <relation target="" sidePair="width-width,height-height"/>
     </image>
-    <image id="n1_d4iw" name="bar" src="d4iw6h" fileName="images/grxx_jyt_2.png" xy="0,0" size="443,22" fillMethod="hz"/>
-    <text id="n2_d4iw" name="title" xy="0,-6" size="443,35" fontSize="24" color="#fff6ee" align="center" vAlign="middle" autoSize="none" text="100/850">
+    <image id="n1_d4iw" name="bar" src="d4iw6h" fileName="images/grxx_jyt_2.png" xy="0,0" fillMethod="hz"/>
+    <text id="n2_d4iw" name="title" xy="0,-6" size="486,35" fontSize="24" color="#fff6ee" align="center" vAlign="middle" autoSize="none" text="100/850">
       <relation target="" sidePair="width-width,height-height"/>
     </text>
   </displayList>

二进制
FGUIProject/assets/Main/images/grxx_dikuang.png


二进制
FGUIProject/assets/Main/images/grxx_jyt_1.png


二进制
FGUIProject/assets/Main/images/grxx_jyt_2.png


+ 12 - 12
GameClient/Assets/Editor/Excel/CodeBuilder.cs

@@ -64,19 +64,18 @@ namespace GFGEditor
                     groupNames.Add(name);
                     groupTypes.Add(type);
                 }
-                //if(nameWhole.Contains("#a"))
-                //{
-                //暂时全部开放读取
-                needAll = true;
-                //}
+                if (nameWhole.Contains("#a"))
+                {
+                    needAll = true;
+                }
                 ParseDataColumn(annotation, type, name, i);
             }
-            if(keyNames.Count == groupNames.Count)
+            if (keyNames.Count == groupNames.Count)
             {
                 bool isSame = true;
-                for(var i = 0; i < keyNames.Count; i++)
+                for (var i = 0; i < keyNames.Count; i++)
                 {
-                    if(keyNames[i] != groupNames[i])
+                    if (keyNames[i] != groupNames[i])
                     {
                         isSame = false;
                     }
@@ -101,7 +100,7 @@ namespace GFGEditor
                 FunctionSingleStr = FunctionSingleStr.Replace("{colNames}", colNames);
                 FunctionSingleStr = FunctionSingleStr.Replace("{colValues}", colValues);
                 configArrayStr = configArrayStr.Replace("{singleFunction}", FunctionSingleStr);
-                if(groupNames.Count > 0)
+                if (groupNames.Count > 0)
                 {
 
                     _declarationBuilder.AppendFormat("\t\t//{0}", "组合key");
@@ -120,7 +119,7 @@ namespace GFGEditor
             //处理查询多条数据函数
             if (groupNames.Count > 0)
             {
-                string FunctionGroupStr = groupOnly? CodeTemplateFactory.FunctionGroupOnlyTemplate : CodeTemplateFactory.FunctionGroupTemplate;
+                string FunctionGroupStr = groupOnly ? CodeTemplateFactory.FunctionGroupOnlyTemplate : CodeTemplateFactory.FunctionGroupTemplate;
                 CreateParamsString(groupNames, groupTypes, out paramsStr, out colNames, out colValues);
                 FunctionGroupStr = FunctionGroupStr.Replace("{params}", paramsStr);
                 FunctionGroupStr = FunctionGroupStr.Replace("{colNames}", colNames);
@@ -133,7 +132,7 @@ namespace GFGEditor
                 configArrayStr = configArrayStr.Replace("{groupFunction}", "");
             }
             //处理全部数据函数
-            if(needAll)
+            if (needAll)
             {
                 configArrayStr = configArrayStr.Replace("{editorConditionStart}", "");
                 configArrayStr = configArrayStr.Replace("{editorConditionEnd}", "");
@@ -269,6 +268,7 @@ namespace GFGEditor
                 {
                     HandleItemCfgField(keyValue, fieldName, ref value);
                 }
+
                 //value = Regex.Replace(value, ":", "/:");
                 values.Add(value);
             }
@@ -340,6 +340,6 @@ namespace GFGEditor
                 }
             }
         }
-        
+
     }
 }

+ 50 - 0
GameClient/Assets/Editor/Excel/Scanner/CardScanner.cs

@@ -0,0 +1,50 @@
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using GFGGame;
+using UnityEngine;
+
+namespace GFGEditor
+{
+    public class CardScanner
+    {
+        private static Dictionary<int, int> levelCountDIc = new Dictionary<int, int>();
+
+        public static void StartScan()
+        {
+
+            var dataArray = CardLvlCfgArray.Instance.dataArray;
+            SQLiteHelper.Instance.OpenConnection();
+            try
+            {
+                foreach (var cfg in dataArray)
+                {
+                    levelCountDIc.TryGetValue(cfg.cardRarity, out var count);
+                    count++;
+                    levelCountDIc[cfg.cardRarity] = count;
+                    var names = new string[] { "maxCardLvl" };
+                    var values = new string[] { "" + count };
+                    SQLiteHelper.Instance.UpdateValues(nameof(CardRarityCfgArray), names, values, nameof(cfg.cardRarity), cfg.cardRarity.ToString());
+                }
+            }
+            catch (Exception e)
+            {
+                ET.Log.Error(e.ToString());
+            }
+            finally
+            {
+                SQLiteHelper.Instance.CloseConnection();
+            }
+
+
+        }
+
+        public static void WriteCardRarity()
+        {
+
+        }
+
+    }
+}

+ 11 - 0
GameClient/Assets/Editor/Excel/Scanner/CardScanner.cs.meta

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

+ 239 - 0
GameClient/Assets/Editor/Excel/Scanner/ShopScanner.cs

@@ -0,0 +1,239 @@
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using GFGGame;
+using UnityEngine;
+
+namespace GFGEditor
+{
+    public class ShopScanner
+    {
+        //计算每个副本的关卡数
+        private static Dictionary<int, int> levelCountDIc = new Dictionary<int, int>();
+        // private static string[] _shopItemType = new string[] { "推荐", "发型", "连衣裙", "内搭", "上衣", "下装", "外套", "袜子", "鞋子", "饰品" };
+        private static string[] _shopItemType = new string[] { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9" };
+
+        public static void StartScan()
+        {
+
+            WriteClothingShop();
+            WriteCJShop();
+            WriteCJAShop();
+
+        }
+
+        public static void WriteClothingShop()
+        {
+            Dictionary<int, string> _typeIndexDic = new Dictionary<int, string>();
+            SQLiteHelper.Instance.OpenConnection();
+            try
+            {
+                string typeIndex = "";
+                int itemId;
+                int id;
+                var reader = SQLiteHelper.Instance.ReadFullTable("ShopCfgClothingArray");
+                while (reader.Read())
+                {
+                    typeIndex = reader["_typeIndex"].ToString();
+                    itemId = int.Parse(reader["_itemId"].ToString());
+                    id = int.Parse(reader["_id"].ToString());
+
+                    int count;
+                    if (Array.IndexOf(_shopItemType, typeIndex) >= 0)
+                    {
+                        count = Array.IndexOf(_shopItemType, typeIndex);
+                    }
+                    else
+                    {
+                        ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(itemId);
+                        string itemType = ItemTypeCfgArray.Instance.GetCfg(itemCfg.subType).type.ToString();
+
+                        if (Array.IndexOf(_shopItemType, itemType) >= 0)
+                        {
+                            count = Array.IndexOf(_shopItemType, itemType);
+                        }
+                        else
+                        {
+                            count = _shopItemType.Length - 1;
+                        }
+                    }
+                    _typeIndexDic.Add(id, count.ToString());
+                }
+            }
+            catch (System.Exception e)
+            {
+                ET.Log.Error(e);
+            }
+            finally
+            {
+                SQLiteHelper.Instance.CloseConnection();
+            }
+
+
+            SQLiteHelper.Instance.OpenConnection();
+            try
+            {
+                ICollection keys = _typeIndexDic.Keys;
+                foreach (int key in keys)
+                {
+                    var names = new string[] { "typeIndex" };
+                    var values = new string[] { "" + _typeIndexDic[key] };
+                    SQLiteHelper.Instance.UpdateValues(nameof(ShopCfgClothingArray), names, values, "id", key.ToString());
+                }
+            }
+            catch (Exception e)
+            {
+                ET.Log.Error(e.ToString());
+            }
+            finally
+            {
+                SQLiteHelper.Instance.CloseConnection();
+            }
+
+        }
+
+        public static void WriteCJShop()
+        {
+            Dictionary<int, string> _typeIndexDic = new Dictionary<int, string>();
+            SQLiteHelper.Instance.OpenConnection();
+            try
+            {
+                string typeIndex = "";
+                int itemId;
+                int id;
+                var reader = SQLiteHelper.Instance.ReadFullTable("ShopCfgCJArray");
+                while (reader.Read())
+                {
+                    typeIndex = reader["_typeIndex"].ToString();
+                    itemId = int.Parse(reader["_itemId"].ToString());
+                    id = int.Parse(reader["_id"].ToString());
+
+                    int count;
+                    if (Array.IndexOf(_shopItemType, typeIndex) >= 0)
+                    {
+                        count = Array.IndexOf(_shopItemType, typeIndex);
+                    }
+                    else
+                    {
+                        ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(itemId);
+                        string itemType = ItemTypeCfgArray.Instance.GetCfg(itemCfg.subType).type.ToString();
+
+                        if (Array.IndexOf(_shopItemType, itemType) >= 0)
+                        {
+                            count = Array.IndexOf(_shopItemType, itemType);
+                        }
+                        else
+                        {
+                            count = _shopItemType.Length - 1;
+                        }
+                    }
+                    _typeIndexDic.Add(id, count.ToString());
+                }
+            }
+            catch (System.Exception e)
+            {
+                ET.Log.Error(e);
+            }
+            finally
+            {
+                SQLiteHelper.Instance.CloseConnection();
+            }
+
+
+            SQLiteHelper.Instance.OpenConnection();
+            try
+            {
+                ICollection keys = _typeIndexDic.Keys;
+                foreach (int key in keys)
+                {
+
+                    var names = new string[] { "typeIndex" };
+                    var values = new string[] { "" + _typeIndexDic[key] };
+                    SQLiteHelper.Instance.UpdateValues(nameof(ShopCfgCJArray), names, values, "id", key.ToString());
+                }
+            }
+            catch (Exception e)
+            {
+                ET.Log.Error(e.ToString());
+            }
+            finally
+            {
+                SQLiteHelper.Instance.CloseConnection();
+            }
+
+        }
+
+        public static void WriteCJAShop()
+        {
+            Dictionary<int, string> _typeIndexDic = new Dictionary<int, string>();
+
+            SQLiteHelper.Instance.OpenConnection();
+            try
+            {
+                string typeIndex = "";
+                int itemId;
+                int id;
+                var reader = SQLiteHelper.Instance.ReadFullTable("ShopCfgCJAArray");
+                while (reader.Read())
+                {
+                    typeIndex = reader["_typeIndex"].ToString();
+                    itemId = int.Parse(reader["_itemId"].ToString());
+                    id = int.Parse(reader["_id"].ToString());
+
+                    int count;
+                    if (Array.IndexOf(_shopItemType, typeIndex) >= 0)
+                    {
+                        count = Array.IndexOf(_shopItemType, typeIndex);
+                    }
+                    else
+                    {
+                        ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(itemId);
+                        string itemType = ItemTypeCfgArray.Instance.GetCfg(itemCfg.subType).type.ToString();
+
+                        if (Array.IndexOf(_shopItemType, itemType) >= 0)
+                        {
+                            count = Array.IndexOf(_shopItemType, itemType);
+                        }
+                        else
+                        {
+                            count = _shopItemType.Length - 1;
+                        }
+                    }
+                    _typeIndexDic.Add(id, count.ToString());
+                }
+            }
+            catch (System.Exception e)
+            {
+                ET.Log.Error(e);
+            }
+            finally
+            {
+                SQLiteHelper.Instance.CloseConnection();
+            }
+
+
+            SQLiteHelper.Instance.OpenConnection();
+            try
+            {
+                ICollection keys = _typeIndexDic.Keys;
+                foreach (int key in keys)
+                {
+
+                    var names = new string[] { "typeIndex" };
+                    var values = new string[] { "" + _typeIndexDic[key] };
+                    SQLiteHelper.Instance.UpdateValues(nameof(ShopCfgCJAArray), names, values, "id", key.ToString());
+                }
+            }
+            catch (Exception e)
+            {
+                ET.Log.Error(e.ToString());
+            }
+            finally
+            {
+                SQLiteHelper.Instance.CloseConnection();
+            }
+        }
+    }
+}

+ 11 - 0
GameClient/Assets/Editor/Excel/Scanner/ShopScanner.cs.meta

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

+ 8 - 4
GameClient/Assets/Editor/ToolsMenu.cs

@@ -127,10 +127,14 @@ namespace GFGEditor
             {
                 SQLiteHelper.Instance.CloseConnection();
             }
-            //扫描物品表获取途径并更新数据库
-            ItemApproachScanner.startScan();
-            //扫描副本
-            InstanceZonesScanner.StartScan();
+            // //写入商店物品类型Index
+            // ShopScanner.StartScan();
+            // //扫描物品表获取途径并更新数据库
+            // ItemApproachScanner.startScan();
+            // //扫描副本
+            // InstanceZonesScanner.StartScan();
+            //写入卡牌最大等级
+            CardScanner.StartScan();
             AssetDatabase.Refresh();
             EditorUtility.ClearProgressBar();
         }

+ 12 - 0
GameClient/Assets/Game/HotUpdate/Constant/ConstStorageId.cs

@@ -0,0 +1,12 @@
+namespace GFGGame
+{
+    public class ConstStorageId
+    {
+        public const int STORAGE_GUIDE = 10000;//引导起始Id,引导存储id:10000+引导编号id
+
+        public const int STORAGE_SKIP_GUIDE = 20000;//跳过引导,0不跳过,1跳过
+        public const int STORAGE_AUTO_PLAY = 20001;//自动战斗,0不自动战斗,1自动战斗
+        public const int STORAGE_AUTO_PLAY_SPEED = 20002;//战斗速度
+
+    }
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/Constant/ConstStorageId.cs.meta

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

+ 37 - 12
GameClient/Assets/Game/HotUpdate/Controller/GameController.cs

@@ -1,6 +1,7 @@
 using FairyGUI;
 using UnityEngine;
 using ET;
+using System.Threading.Tasks;
 
 namespace GFGGame
 {
@@ -60,7 +61,7 @@ namespace GFGGame
             ViewManager.Show(ViewName.CREATE_ROLE_VIEW);
         }
 
-        public static void PreEnterGame()
+        public static async Task PreEnterGameAsync()
         {
             //RoleInfo roleInfo = null;
             GetSuitItemController.enable = false;
@@ -85,16 +86,34 @@ namespace GFGGame
             GFGUIPackage.AddPackage(ResPathUtil.GetUIPackagePath("CommonGame"));
             GFGUIPackage.AddPackage(ResPathUtil.GetUIPackagePath("Main"));
 
-            Alert.Show("是否跳过引导?如果您是第一次体验,建议不要跳过引导!")
-                    .SetLeftButton(true, "不用", (obj) =>
-                    {
-                        EnterGame();
-                    })
-                    .SetRightButton(true, "跳过", (obj) =>
-                    {
-                        GameGlobal.skipGuide = true;
-                        EnterGame();
-                    });
+
+            InstanceZonesSProxy.GetInstanceZonesInfos().Coroutine();
+            await StorageSProxy.ReqGetClientValues();
+
+            int skipGuide = StorageDataManager.Instance.GetStorageValue(ConstStorageId.STORAGE_SKIP_GUIDE);
+
+            if (skipGuide < 0)
+            {
+                Alert.Show("是否跳过引导?如果您是第一次体验,建议不要跳过引导!")
+                           .SetLeftButton(true, "不用", (obj) =>
+                           {
+                               EnterGame();
+                               StorageSProxy.ReqSetClientValue(ConstStorageId.STORAGE_SKIP_GUIDE, 0).Coroutine();
+                           })
+                           .SetRightButton(true, "跳过", (obj) =>
+                           {
+                               GameGlobal.skipGuide = true;
+                               EnterGame();
+                               StorageSProxy.ReqSetClientValue(ConstStorageId.STORAGE_SKIP_GUIDE, 1).Coroutine();
+                           });
+            }
+            else
+            {
+                if (skipGuide == 1) GameGlobal.skipGuide = true;
+                EnterGame();
+
+            }
+
         }
 
         public static void QuitToLoginView(bool logout)
@@ -111,6 +130,8 @@ namespace GFGGame
             PhotographDataManager.Instance.Clear();
             SkillDataManager.Instance.Clear();
             SuitFosterDataManager.Instance.Clear();
+            StudioDataManager.Instance.Clear();
+            StorageDataManager.Instance.Clear();
             if (logout)
             {
                 Logout();
@@ -165,8 +186,12 @@ namespace GFGGame
 
             ItemHelper.GetItemAttributeInfos().Coroutine();
             SuitFosterProxy.SendGetSuitInfos().Coroutine();
-            InstanceZonesSProxy.GetInstanceZonesInfos().Coroutine();
             MainStorySProxy.GetStoryInfos().Coroutine();
+            CardSProxy.GetCardInfos().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);
+
         }
 
         public static void PrepareUpdateTreasure()

+ 26 - 33
GameClient/Assets/Game/HotUpdate/Controller/GuideController.cs

@@ -4,6 +4,7 @@ using UI.Main;
 using System.Collections.Generic;
 using UnityEngine;
 using UI.ClothingSynthetic;
+using ET;
 
 namespace GFGGame
 {
@@ -16,7 +17,7 @@ namespace GFGGame
             bool isAllGuideFinish = false;
             for (int i = 0; i < GuideCfgArray.Instance.dataArray.Length; i++)
             {
-                if (GuideDataManager.GetGuideCountCopy(GuideCfgArray.Instance.dataArray[i].key) <= 0)
+                if (GuideDataManager.IsGuideFinish(GuideCfgArray.Instance.dataArray[i].key) <= 0)
                 {
                     isAllGuideFinish = false;
                     break;
@@ -26,30 +27,27 @@ namespace GFGGame
             bool isGuide = GameGlobal.skipGuide == false && !isAllGuideFinish;
             return isGuide;
         }
-        public static bool useNewGuide = true;
-        public static bool TryGuide(GObject target, string guideKey, int index, string guideStr = null, bool isList = false, int listIndex = 0, bool checkIndex = true, bool needUpdate = false, int yTxt = 0, float devWidth = 0, float devHeight = 0)
+
+        public static bool TryGuide(GObject target, string guideKey, int index, string guideStr = null, int listIndex = -1, bool checkPriorIndex = true, int yTxt = 0, float devWidth = 0, float devHeight = 0)
         {
-            if (!useNewGuide) return false;
 
             GuideCfg cfg = GuideCfgArray.Instance.GetCfg(guideKey);
 
-            if ((GuideDataManager.GetGuideCountCopy(guideKey) <= 0
-            && (cfg.priorId <= 0 || cfg.priorId > 0 && (GuideDataManager.GetGuideCountCopy(cfg.priorId) > 0))
-            && (!checkIndex || checkIndex && GuideDataManager.IsGuideIndexFinish(cfg.id, index - 1) == true && GuideDataManager.IsGuideIndexFinish(cfg.id, index) == false)
-            && (GuideDataManager.currentGuideId == 0 || GuideDataManager.currentGuideId == cfg.id && GuideDataManager.currentGuideIdIndex != index)
-            && (MainStoryDataManager.CurrentChapterOrder == 0 || MainStoryDataManager.CheckCurrentLevelPass() == false)
-            && InstanceZonesDataManager.CheckLevelPass(cfg.storyLevelId - 1)
-            && !InstanceZonesDataManager.CheckLevelPass(cfg.storyLevelId))
-            ||
-            (cfg.storyLevelId == 0
-            && GuideDataManager.GetGuideCountCopy(guideKey) <= 0
-            ))
+            bool isStoryLevelGuide = cfg.storyLevelId > 0;
+            bool isFinishCurId = StorageDataManager.Instance.GetStorageValue(ConstStorageId.STORAGE_GUIDE + cfg.id) > 0;//当前引导未完成
+            bool isFinishPriorId = cfg.priorId <= 0 || StorageDataManager.Instance.GetStorageValue(ConstStorageId.STORAGE_GUIDE + cfg.priorId) > 0;//前置引导已完成
+            bool isFinishCurIndex = GuideDataManager.IsGuideIndexFinish(cfg.id, index) == true;//当前index未完成
+            bool isFinishPriorIndex = !checkPriorIndex || checkPriorIndex && GuideDataManager.IsGuideIndexFinish(cfg.id, index - 1) == true;//前置index已完成
+            bool isCfgChapterOpen = MainStoryDataManager.CheckLevelUnlock(cfg.storyLevelId);//引导配置关卡已开启
+            bool isCfgChapter = MainStoryDataManager.currentLevelCfgId == 0 || MainStoryDataManager.currentLevelCfgId == cfg.storyLevelId;//无选择(进入游戏时无选择)或当前所选择为配置关卡
+
+            if (isStoryLevelGuide && !isFinishCurId && isFinishPriorId && !isFinishCurIndex && isFinishPriorIndex && isCfgChapterOpen && isCfgChapter || !isStoryLevelGuide && !isFinishCurId)
             {
                 GuideDataManager.currentGuideId = cfg.id;
                 GuideDataManager.currentGuideIdIndex = index;
 
                 GuideDataManager.SetGuideIndex(cfg.id, index);
-                if (isList)
+                if (listIndex >= 0)
                 {
 
                     if (target.asList.numItems > 0)
@@ -66,8 +64,8 @@ namespace GFGGame
                         return false;
                     }
                 }
-                ShowGuideByIndex(target, needUpdate, guideStr, yTxt, cfg.optionalGuide == 1, devWidth, devHeight, GuideDataManager.currentGuideId, GuideDataManager.currentGuideIdIndex);
-                if (!checkIndex)
+                ShowGuideByIndex(target, guideStr, yTxt, cfg.optionalGuide == 1, devWidth, devHeight, GuideDataManager.currentGuideId, GuideDataManager.currentGuideIdIndex);
+                if (!checkPriorIndex)
                 {
                     for (int i = 1; i < index; i++)
                     {
@@ -78,47 +76,42 @@ namespace GFGGame
             }
             return false;
         }
-        private static void ShowGuideByIndex(GObject target, bool needUpdate = false, string guideStr = null, int yTxt = 0, bool isOptionalGuide = false, float devWidth = 0, float devHeight = 0, int guideId = 0, int index = 0)
+        private static void ShowGuideByIndex(GObject target, string guideStr = null, int yTxt = 0, bool isOptionalGuide = false, float devWidth = 0, float devHeight = 0, int guideId = 0, int index = 0)
         {
-            HideGuideIndex();
+            HideGuide();
             if (GameGlobal.skipGuide)
             {
                 return;
             }
 
-            ViewManager.Show(ViewName.GUIDE_VIEW, new List<object> { target, needUpdate, guideStr, yTxt, isOptionalGuide, devWidth, devHeight, guideId, index });
+            ViewManager.Show(ViewName.GUIDE_VIEW, new List<object> { target, guideStr, yTxt, isOptionalGuide, devWidth, devHeight, guideId, index });
         }
         public static bool TryCompleteGuideIndex(int guideId, int index)
         {
-            if (!useNewGuide) return false;
 
-            HideGuideIndex();
-            // bool result = GuideDataManager.TryCompleteGuideIndex(guideId, index);
+            HideGuide();
             if (GuideDataManager.TryCompleteGuideIndex(guideId, index))
             {
                 return true;
             }
             return false;
         }
-        public static bool TryCompleteGuide(string guideKey, int count)
+        public static async void TryCompleteGuide(string guideKey, int count)
         {
-            if (!useNewGuide) return false;
 
             GuideCfg cfg = GuideCfgArray.Instance.GetCfg(guideKey);
+            bool result = false;
+            if (!GuideDataManager.CheckAllIndexFinish(cfg.id, count)) return;
 
-            if (!GuideDataManager.CheckAllIndexFinish(cfg.id, count)) return false;
-            bool result = GuideDataManager.TryCompleteGuide(cfg.id);
+            result = await GuideDataManager.TryCompleteGuide(cfg.id);
             if (result)
             {
                 GuideDataManager.currentGuideId = 0;
-                HideGuideIndex();
+                HideGuide();
             }
-            return result;
         }
-        public static void HideGuideIndex()
+        public static void HideGuide()
         {
-            if (!useNewGuide) return;
-
             ViewManager.Hide(ViewName.GUIDE_VIEW);
         }
     }

+ 5 - 5
GameClient/Assets/Game/HotUpdate/Controller/LoginController.cs

@@ -55,7 +55,7 @@ namespace GFGGame
             }
             else
             {
-                if(ErrorCodeController.Handler(errorCode))
+                if (ErrorCodeController.Handler(errorCode))
                 {
                     ViewManager.Show<LoginInputView>();
                 }
@@ -80,7 +80,7 @@ namespace GFGGame
         public static async ETTask GetServerInfos()
         {
             int errorCode = await LoginHelper.GetServerInfos(GameGlobal.zoneScene);
-            if(errorCode != ErrorCode.ERR_Success)
+            if (errorCode != ErrorCode.ERR_Success)
             {
                 ErrorCodeController.Handler(errorCode);
                 await ETTask.Create();
@@ -104,7 +104,7 @@ namespace GFGGame
         public static async ETTask GetRoles()
         {
             int errorCode = await LoginHelper.GetRoles(GameGlobal.zoneScene);
-            if(errorCode != ErrorCode.ERR_Success)
+            if (errorCode != ErrorCode.ERR_Success)
             {
                 ErrorCodeController.Handler(errorCode);
                 await ETTask.Create();
@@ -145,7 +145,7 @@ namespace GFGGame
         public static async ETTask ReqEnterGame()
         {
             int errorCode = await LoginHelper.GetRealmKey(GameGlobal.zoneScene);
-            if(errorCode != ErrorCode.ERR_Success)
+            if (errorCode != ErrorCode.ERR_Success)
             {
                 ErrorCodeController.Handler(errorCode);
                 return;
@@ -156,7 +156,7 @@ namespace GFGGame
                 ErrorCodeController.Handler(errorCode);
                 return;
             }
-            GameController.PreEnterGame();
+            await GameController.PreEnterGameAsync();
         }
     }
 }

+ 66 - 122
GameClient/Assets/Game/HotUpdate/Data/CardDataManager.cs

@@ -3,6 +3,7 @@ using System;
 using System.Collections;
 using System.Collections.Generic;
 using System.Linq;
+using ET;
 using UnityEngine;
 
 namespace GFGGame
@@ -19,89 +20,48 @@ namespace GFGGame
             _cardDicByType.Clear();
         }
 
-        public static void InitServerData(List<RoleCard> roleCards)
-        {
-            if (roleCards.Count != 0)
-            {
-                for (int i = 0; i < roleCards.Count; i++)
-                {
-                    CardData cardData = _cardDicByType[0][roleCards[i].cardId];
-                    cardData.lv = roleCards[i].lv;
-                    cardData.exp = roleCards[i].exp;
-                    cardData.star = roleCards[i].star;
-                    cardData.res = roleCards[i].res;
-                    cardData.scores[ConstDressUpScoreType.SCORE_FENG] = roleCards[i].score1;
-                    cardData.scores[ConstDressUpScoreType.SCORE_HUA] = roleCards[i].score2;
-                    cardData.scores[ConstDressUpScoreType.SCORE_XUE] = roleCards[i].score3;
-                    cardData.scores[ConstDressUpScoreType.SCORE_YUE] = roleCards[i].score4;
-
-
-                    CardData cardDataByScore = _cardDicByType[cardData.itemCfg.rarity][roleCards[i].cardId];
-
-                    cardDataByScore.lv = roleCards[i].lv;
-                    cardDataByScore.exp = roleCards[i].exp;
-                    cardDataByScore.star = roleCards[i].star;
-                    cardDataByScore.res = roleCards[i].res;
-                    cardDataByScore.scores[ConstDressUpScoreType.SCORE_FENG] = roleCards[i].score1;
-                    cardDataByScore.scores[ConstDressUpScoreType.SCORE_HUA] = roleCards[i].score2;
-                    cardDataByScore.scores[ConstDressUpScoreType.SCORE_XUE] = roleCards[i].score3;
-                    cardDataByScore.scores[ConstDressUpScoreType.SCORE_YUE] = roleCards[i].score4;
 
-                }
-            }
-        }
 
-        public static void Add(int itemId)
+        public static void Add(CardInfoProto cardInfoProto)
         {
-            CardData card = new CardData();
-            ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(itemId);
-            card.id = itemId;
-            card.lv = 1;
-
-            card.exp = 0;
-            card.star = 1;
-            card.itemCfg = itemCfg;
-            card.res = itemCfg.res;
-            card.scores = new Dictionary<int, int>();
-            card.scores.Add(ConstDressUpScoreType.SCORE_FENG, itemCfg.score1);
-            card.scores.Add(ConstDressUpScoreType.SCORE_HUA, itemCfg.score2);
-            card.scores.Add(ConstDressUpScoreType.SCORE_XUE, itemCfg.score3);
-            card.scores.Add(ConstDressUpScoreType.SCORE_YUE, itemCfg.score4);
-            card.mainScore = CardDataManager.GetMainScore(card.scores);
-            card.resources = CardDataManager.GetCardResources(itemCfg);
+            CardData cardData = new CardData();
+            ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(cardInfoProto.CardId);
+            cardData.id = cardInfoProto.CardId;
+            cardData.lv = cardInfoProto.Lvl;
+            cardData.exp = cardInfoProto.Exp;
+            cardData.star = cardInfoProto.Star;
+            cardData.itemCfg = itemCfg;
+            cardData.res = cardInfoProto.ResIndex == 0 ? itemCfg.res : itemCfg.cardRes;
+            cardData.scores = new Dictionary<int, int>();
+
+            for (int j = 0; j < cardInfoProto.KsAttribute.Count; j++)
+            {
+                cardData.scores.Add(cardInfoProto.KsAttribute[j], cardInfoProto.VsAttribute[j]);
+            }
+            cardData.mainScore = itemCfg.mainScore;
+            cardData.resources = CardDataManager.GetCardResources(itemCfg);
 
             if (_cardDicByType.ContainsKey(0) == false)
             {
                 _cardDicByType[0] = new Dictionary<int, CardData>();
             }
-            if (_cardDicByType.ContainsKey(card.itemCfg.rarity) == false)
+            if (_cardDicByType.ContainsKey(cardData.itemCfg.rarity) == false)
             {
-                _cardDicByType[card.itemCfg.rarity] = new Dictionary<int, CardData>();
+                _cardDicByType[cardData.itemCfg.rarity] = new Dictionary<int, CardData>();
             }
-            _cardDicByType[0].Add(card.id, card);
-            _cardDicByType[card.itemCfg.rarity].Add(card.id, card);
+            _cardDicByType[0].Add(cardData.id, cardData);
+            _cardDicByType[cardData.itemCfg.rarity].Add(cardData.id, cardData);
 
         }
-        private static int GetMainScore(Dictionary<int, int> scores)
-        {
-            //五个属性中最大的为主属性
-            int mainScore = 1;
-            int mainScoreValue = 0;
-            ICollection keys = scores.Keys;
-            foreach (int key in keys)
-            {
-                if (scores[key] > mainScoreValue)
-                {
-                    mainScore = key;
-                }
-            }
-            return mainScore;
-        }
-        private static List<string> GetCardResources(ItemCfg itemCfg)
+
+        public static List<string> GetCardResources(ItemCfg itemCfg)
         {
             List<string> resources = new List<string>();
             resources.Add(itemCfg.res);
-            resources.Add(itemCfg.cardRes);
+            if (itemCfg.cardRes! != "")
+            {
+                resources.Add(itemCfg.cardRes);
+            }
             return resources;
         }
         private static void Refresh(CardData cardData)
@@ -113,29 +73,28 @@ namespace GFGGame
 
         private static void RefreshCardLvProperty(CardData lastCardData, int lv)
         {
-            List<CardLvlCfg> cardLvCfgs = CardCfgManager.GetCardLvCfgsByRarity(lastCardData.itemCfg.rarity);
-
-            for (int i = lastCardData.lv; i < lv; i++)
-            {
-                lastCardData.scores[ConstDressUpScoreType.SCORE_FENG] += cardLvCfgs[i - 1].score1;
-                lastCardData.scores[ConstDressUpScoreType.SCORE_HUA] += cardLvCfgs[i - 1].score1;
-                lastCardData.scores[ConstDressUpScoreType.SCORE_XUE] += cardLvCfgs[i - 1].score1;
-                lastCardData.scores[ConstDressUpScoreType.SCORE_YUE] += cardLvCfgs[i - 1].score1;
-            }
+            // List<CardLvlCfg> cardLvCfgs = CardCfgManager.GetCardLvCfgsByRarity(lastCardData.itemCfg.rarity);
+
+            // for (int i = lastCardData.lv; i < lv; i++)
+            // {
+            //     lastCardData.scores[ConstDressUpScoreType.SCORE_FENG] += cardLvCfgs[i - 1].score1;
+            //     lastCardData.scores[ConstDressUpScoreType.SCORE_HUA] += cardLvCfgs[i - 1].score1;
+            //     lastCardData.scores[ConstDressUpScoreType.SCORE_XUE] += cardLvCfgs[i - 1].score1;
+            //     lastCardData.scores[ConstDressUpScoreType.SCORE_YUE] += cardLvCfgs[i - 1].score1;
+            // }
         }
         private static void RefreshCardStarProperty(CardData lastCardData, int star)
         {
-            List<CardLvlCfg> cardLvCfgs = CardCfgManager.GetCardLvCfgsByRarity(lastCardData.itemCfg.rarity);
+            // List<CardLvlCfg> cardLvCfgs = CardCfgManager.GetCardLvCfgsByRarity(lastCardData.itemCfg.rarity);
+
+            // for (int i = lastCardData.star; i < star; i++)
+            // {
+            //     lastCardData.scores[ConstDressUpScoreType.SCORE_FENG] += cardLvCfgs[i - 1].score1;
+            //     lastCardData.scores[ConstDressUpScoreType.SCORE_HUA] += cardLvCfgs[i - 1].score1;
+            //     lastCardData.scores[ConstDressUpScoreType.SCORE_XUE] += cardLvCfgs[i - 1].score1;
+            //     lastCardData.scores[ConstDressUpScoreType.SCORE_YUE] += cardLvCfgs[i - 1].score1;
+            // }
 
-            for (int i = lastCardData.star; i < star; i++)
-            {
-                lastCardData.scores[ConstDressUpScoreType.SCORE_FENG] += cardLvCfgs[i - 1].score1;
-                lastCardData.scores[ConstDressUpScoreType.SCORE_HUA] += cardLvCfgs[i - 1].score1;
-                lastCardData.scores[ConstDressUpScoreType.SCORE_XUE] += cardLvCfgs[i - 1].score1;
-                lastCardData.scores[ConstDressUpScoreType.SCORE_YUE] += cardLvCfgs[i - 1].score1;
-            }
-            // lastCardData.star = star + 1;
-            // CardDataManager.Refresh(lastCardData);
         }
         private static List<CardData> SortItemList(List<CardData> arrayList)
         {
@@ -200,36 +159,37 @@ namespace GFGGame
             CardDataManager.Refresh(_cardDicByType[0][cardId]);
         }
 
-
         /// <summary>
-        /// 根据男主类型获取卡牌字典
+        /// 根据卡牌Id获取卡牌升级升星数据,无数据返回null
         /// </summary>
-        public static Dictionary<int, CardData> GetCardDicByRarity(int rarity)
+        /// <param name="cardId"></param>
+        /// <returns></returns>
+        public static CardData GetCardDataById(int cardId)
         {
-            if (rarity == 0)
-            {
-                return _cardDicByType.ContainsKey(0) ? _cardDicByType[0] : null;
-            }
-            else
-            {
-                return _cardDicByType.ContainsKey(rarity) ? _cardDicByType[rarity] : null;
-            }
+            return _cardDicByType[0].ContainsKey(cardId) ? _cardDicByType[0][cardId] : null;
         }
-        public static List<CardData> CardDicToList(Dictionary<int, CardData> cardDic)
+        /// <summary>
+        /// 根据男主类型获取卡牌列表
+        /// </summary>
+        public static List<CardData> GetCardListByRarity(int rarity)
         {
-            CardData[] cardArray = new CardData[cardDic.Count];
-            cardDic.Values.CopyTo(cardArray, 0);
-
-            List<CardData> cardList = new List<CardData>(cardArray);
-            cardList = CardDataManager.SortItemList(cardList);
+            if (_cardDicByType.ContainsKey(rarity))
+            {
+                Dictionary<int, CardData> cardDic = _cardDicByType[rarity];
+                CardData[] cardArray = new CardData[cardDic.Count];
+                cardDic.Values.CopyTo(cardArray, 0);
 
-            return cardList;
+                List<CardData> cardList = new List<CardData>(cardArray);
+                cardList = CardDataManager.SortItemList(cardList);
+                return cardList;
+            }
+            return new List<CardData>();
         }
 
         public static bool isFullLv(int cardId, int lv, bool showTips = true)
         {
             CardData cardData = _cardDicByType[0][cardId];
-            if (lv > CardCfgManager.GetCardLvCfgsByRarity(cardData.itemCfg.rarity).Count)
+            if (lv > CardRarityCfgArray.Instance.GetCfg(cardData.itemCfg.rarity).maxCardLvl)
             {
                 if (showTips == true)
                 {
@@ -259,20 +219,6 @@ namespace GFGGame
             }
         }
 
-
-        /// <summary>
-        ///  根据物品id获取卡牌数据
-        /// </summary>
-        /// <param name="itemId"></param>
-        /// <returns></returns>
-        public static CardData GetCardDataById(int itemId)
-        {
-            return _cardDicByType[0][itemId];
-
-        }
-
-
-
         public static void GetPreViewLvAndExp(int rarity, int curLv, int curExp, int hasExp, out int showLv, out int showExp)
         {
             List<CardLvlCfg> listCardLvCfgs = CardCfgManager.GetCardLvCfgsByRarity(rarity);
@@ -304,10 +250,8 @@ namespace GFGGame
 
                     if (selectList[(int)EnumCardFilterType.SubType].ContainsKey(cardList[i].itemCfg.subType) == false)
                     {
-
                         //稀有度
                         cardList.RemoveAt(i);
-
                         continue;
                     }
                 }

+ 31 - 62
GameClient/Assets/Game/HotUpdate/Data/GuideDataManager.cs

@@ -1,15 +1,16 @@
 using System.Collections.Generic;
 using System.Linq;
+using ET;
 
 namespace GFGGame
 {
 
     public class GuideDataManager
     {
-        //public static int currentGuideId;
-        private static Dictionary<int, GuideData> _dataDic = new Dictionary<int, GuideData>();
-        //本次登录引导的id缓存
-        private static Dictionary<int, bool> _guideDicAtThisLogin = new Dictionary<int, bool>();
+        // //public static int currentGuideId;
+        // private static Dictionary<int, GuideData> _dataDic = new Dictionary<int, GuideData>();
+        // //本次登录引导的id缓存
+        // private static Dictionary<int, bool> _guideDicAtThisLogin = new Dictionary<int, bool>();
 
         private static Dictionary<int, Dictionary<int, int>> _guideDicIndex = new Dictionary<int, Dictionary<int, int>>();
         public static int _currentGuideId;
@@ -29,21 +30,21 @@ namespace GFGGame
 
 
 
-        public static void InitServerData(List<GuideData> list)
-        {
-            currentGuideId = 0;
-            _dataDic.Clear();
-            _guideDicAtThisLogin.Clear();
-            if (list != null)
-            {
-                foreach (GuideData data in list)
-                {
-                    _dataDic.Add(data.guideId, data);
-                }
-            }
-        }
+        // public static void InitServerData(List<GuideData> list)
+        // {
+        //     currentGuideId = 0;
+        //     _dataDic.Clear();
+        //     _guideDicAtThisLogin.Clear();
+        //     if (list != null)
+        //     {
+        //         foreach (GuideData data in list)
+        //         {
+        //             _dataDic.Add(data.guideId, data);
+        //         }
+        //     }
+        // }
 
-        public static bool TryCompleteGuide(int guideId)
+        public static async ETTask<bool> TryCompleteGuide(int guideId)
         {
             if (GameGlobal.skipGuide)
             {
@@ -51,36 +52,20 @@ namespace GFGGame
             }
             if (currentGuideId == guideId)
             {
-                GuideData guideData = null;
-                if (_dataDic.ContainsKey(guideId))
-                {
-                    guideData = _dataDic[guideId];
-                }
-                else
-                {
-                    guideData = new GuideData();
-                    guideData.guideId = guideId;
-                    guideData.count = 0;
-                    _dataDic.Add(guideId, guideData);
-                }
-                guideData.count++;
-                currentGuideId = 0;
-                GameProxy.ReqUpdateRoleGuide(guideData);
-                _guideDicAtThisLogin[guideId] = true;
-                return true;
+                return await StorageSProxy.ReqSetClientValue(ConstStorageId.STORAGE_GUIDE + guideId, 1);
             }
             return false;
         }
 
 
-        public static bool CheckGuideIsCompletedAtThisLogin(int guideId)
-        {
-            if (_guideDicAtThisLogin.ContainsKey(guideId))
-            {
-                return _guideDicAtThisLogin[guideId];
-            }
-            return false;
-        }
+        // public static bool CheckGuideIsCompletedAtThisLogin(int guideId)
+        // {
+        //     if (_guideDicAtThisLogin.ContainsKey(guideId))
+        //     {
+        //         return _guideDicAtThisLogin[guideId];
+        //     }
+        //     return false;
+        // }
 
         public static int _currentGuideIdIndex;
 
@@ -108,31 +93,15 @@ namespace GFGGame
             _guideDicIndex[guideId][index] = 0;
         }
 
-        public static int GetGuideCountCopy(string guideKey)
+        public static int IsGuideFinish(string guideKey)
         {
-            if (!GuideController.useNewGuide) return 1;
             if (GameGlobal.skipGuide) return 1;
 
             GuideCfg cfg = GuideCfgArray.Instance.GetCfg(guideKey);
-            if (_dataDic.ContainsKey(cfg.id))
-            {
-                GuideData guideData = _dataDic[cfg.id];
-                return guideData.count;
-            }
-            return 0;
-        }
-        public static int GetGuideCountCopy(int guideId)
-        {
-            if (!GuideController.useNewGuide) return 1;
-            if (GameGlobal.skipGuide) return 1;
+            return StorageDataManager.Instance.GetStorageValue(ConstStorageId.STORAGE_GUIDE + cfg.id);
 
-            if (_dataDic.ContainsKey(guideId))
-            {
-                GuideData guideData = _dataDic[guideId];
-                return guideData.count;
-            }
-            return 0;
         }
+
         public static bool TryCompleteGuideIndex(int guideId, int index, bool checkInde = true)
         {
 

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

@@ -42,12 +42,6 @@ namespace GFGGame
             {
                 DressUpMenuItemDataManager.Add(itemID);
             }
-            //Debug.Log("itemid:"+ itemID);
-            //Debug.Log("itemCfg:" + itemCfg);
-            if (itemCfg.itemType == ConstItemType.CARD)
-            {
-                CardDataManager.Add(itemID);
-            }
 
             if (itemCfg.itemType == ConstItemType.DRESS_UP && !DressUpMenuItemDataManager.CheckIsSceneType(itemID))
             {

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

@@ -89,7 +89,7 @@ namespace GFGGame
 
         public static bool CheckOpenMainUI()
         {
-            return InstanceZonesDataManager.CheckLevelPass(10004) && GuideDataManager.GetGuideCountCopy(ConstGuideId.SINGLE_FIGHT) > 0;
+            return InstanceZonesDataManager.CheckLevelPass(100001004) && GuideDataManager.IsGuideFinish(ConstGuideId.SINGLE_FIGHT) > 0;
         }
 
         //检查指定章节对应的普通章节是否通关

+ 35 - 27
GameClient/Assets/Game/HotUpdate/Data/ScoreSystemData.cs

@@ -153,28 +153,30 @@ namespace GFGGame
         {
             skillScore = 0;
             showCard = false;
-            if (!SkillDataManager.Instance.dicPassivitySkill.TryGetValue(InstanceZonesDataManager.currentCardId, out Dictionary<int, List<PassivitySkillCfg>> cfgs))
-            {
-                return;
-            }
-
-            foreach (int key in cfgs.Keys)
+            // if (!SkillDataManager.Instance.dicPassivitySkill.TryGetValue(InstanceZonesDataManager.currentCardId, out Dictionary<int, List<PassivitySkillCfg>> cfgs))
+            // {
+            //     return;
+            // }
+            PassivitySkillCfg[] skillCfgs = PassivitySkillCfgArray.Instance.GetCfgs(InstanceZonesDataManager.currentCardId);
+            if (skillCfgs.Length == 0) return;
+
+            for (int i = 0; i < skillCfgs.Length; i++)
             {
+                PassivitySkillCfg skillCfg = skillCfgs[i];
+                int skillLv = SkillDataManager.Instance.GetSkillLv(InstanceZonesDataManager.currentCardId, skillCfg.skillId);
+                PassivitySkillLvlCfg skillLvCfg = PassivitySkillLvlCfgArray.Instance.GetCfg(skillLv, skillCfg.skillId);
+                // int skillLv = SkillDataManager.Instance.GetSkillLv(InstanceZonesDataManager.currentCardId, cfg.skillId);
 
-                if (cfgs.Count == 0) break;
-                SkillData skillData = SkillDataManager.Instance.GetSkillData(InstanceZonesDataManager.currentCardId, key);
-
-                PassivitySkillCfg cfg = cfgs[key][skillData.lv - 1];
-                if (partId == cfg.subTypes || cfg.subTypes == 0)
+                if (partId == skillCfg.subTypes || skillCfg.subTypes == 0)
                 {
-                    int isProbability = Random.Range(0, 100) < cfg.probability ? 1 : 0;
-                    if (showCard != true && cfg.mainSkill == 1 && isProbability == 1)
+                    int isProbability = Random.Range(0, 100) < skillLvCfg.probability ? 1 : 0;
+                    if (showCard != true && skillCfg.mainSkill == 1 && isProbability == 1)
                     {
                         //卡牌中包含主技能且此技能被触发,在评分阶段才展示卡牌效果,一张卡牌只要有一个技能需要显示,那就直接显示
                         showCard = true;
                     }
                     // Debug.Log(" i:" + i + "   cardScore:" + skillScore);
-                    skillScore += mainScore * cfg.count / 100 * isProbability;
+                    skillScore += mainScore * skillLvCfg.count / 100 * isProbability;
                 }
             }
         }
@@ -191,24 +193,25 @@ namespace GFGGame
 
 
         /// <summary>
-        /// 根据卡牌Id获取选卡界面显示配置
+        /// 根据卡牌Id获取 战斗选卡 界面显示配置
         /// </summary>
         /// <param name="cardId"></param>
         /// <returns></returns>
         public PassivitySkillCfg GetShowSkillCfg(int cardId)
         {
-            if (!SkillDataManager.Instance.dicPassivitySkill.ContainsKey(cardId))
+            PassivitySkillCfg[] skillCfgs = PassivitySkillCfgArray.Instance.GetCfgs(cardId);
+            if (skillCfgs.Length <= 0)
             {
                 Debug.LogWarning(cardId + " 这张卡片没有配置技能");
                 return null;
             }
-            Dictionary<int, List<PassivitySkillCfg>> cfgs = SkillDataManager.Instance.dicPassivitySkill[cardId];
-            foreach (int key in cfgs.Keys)
+
+            for (int i = 0; i < skillCfgs.Length; i++)
             {
-                if (cfgs[key][0].showSkill == 1)
+                if (skillCfgs[i].showSkill == 1)
                 {
-                    SkillData skillData = SkillDataManager.Instance.GetSkillData(cardId, cfgs[key][0].skillId);
-                    return cfgs[key][skillData.lv - 1];
+                    // int skillLv = SkillDataManager.Instance.GetSkillLv(cardId, skillCfgs[i].skillId);
+                    return skillCfgs[i];
                 }
             }
             return null;
@@ -222,19 +225,24 @@ namespace GFGGame
         /// <returns></returns>
         public PassivitySkillCfg GetMainSkillCfg(int cardId)
         {
-            Dictionary<int, List<PassivitySkillCfg>> cfgs = SkillDataManager.Instance.dicPassivitySkill[cardId];
+            // Dictionary<int, List<PassivitySkillCfg>> cfgs = SkillDataManager.Instance.dicPassivitySkill[cardId];
+            PassivitySkillCfg[] skillCfgs = PassivitySkillCfgArray.Instance.GetCfgs(cardId);
 
-            if (cfgs.Count == 0)
+            if (skillCfgs.Length <= 0)
             {
                 Debug.LogWarning(cardId + " 这张卡片没有配置技能");
                 return null;
             }
-            foreach (int key in cfgs.Keys)
+            // foreach (int key in cfgs.Keys)
+            // {
+            for (int i = 0; i < skillCfgs.Length; i++)
             {
-                if (cfgs[key][0].mainSkill == 1)
+                if (skillCfgs[i].mainSkill == 1)
                 {
-                    SkillData skillData = SkillDataManager.Instance.GetSkillData(cardId, key);
-                    return cfgs[key][skillData.lv - 1];
+                    // int skillLV = SkillDataManager.Instance.GetSkillLv(cardId, skillCfgs[i].skillId);
+                    // PassivitySkillLvlCfgArray skillLvCfg = PassivitySkillLvlCfgArray.Instance.GetCfg(skillLV, skillCfgs[i].skillId);
+                    // return cfgs[key][skillLV - 1];
+                    return skillCfgs[i];
                 }
             }
             return null;

+ 45 - 59
GameClient/Assets/Game/HotUpdate/Data/SkillDataManager.cs

@@ -12,66 +12,36 @@ namespace GFGGame
         public const string SKILL_BREAK = "break";
         public const string SKILL_SHIELD = "shield";
 
-        public Dictionary<int, Dictionary<int, SkillData>> skillData = new Dictionary<int, Dictionary<int, SkillData>>();
-        public Dictionary<int, Dictionary<int, List<PassivitySkillCfg>>> dicPassivitySkill = new Dictionary<int, Dictionary<int, List<PassivitySkillCfg>>>();
+        public Dictionary<int, Dictionary<int, int>> skillData = new Dictionary<int, Dictionary<int, int>>();
+        // public Dictionary<int, Dictionary<int, List<PassivitySkillCfg>>> dicPassivitySkill = new Dictionary<int, Dictionary<int, List<PassivitySkillCfg>>>();
 
         public void Clear()
         {
             skillData.Clear();
         }
-        public void InitServerData(List<SkillData> skillDatas)
+        public void InitServerData(int cardId, List<int> skillIds, List<int> skillLvs)
         {
-            skillData.Clear();
-            if (skillDatas != null && skillDatas.Count > 0)
-            {
-                foreach (SkillData skillData in skillDatas)
-                {
-                    if (!this.skillData.ContainsKey(skillData.cardId))
-                    {
-                        this.skillData[skillData.cardId] = new Dictionary<int, SkillData>();
-                    }
 
-                    this.skillData[skillData.cardId][skillData.skillId] = skillData;
-                }
-            }
-        }
-        public void SetDicPassivitySkillCfg()
-        {
-            if (dicPassivitySkill.Count > 0) return;
-            PassivitySkillCfg[] dataArray = PassivitySkillCfgArray.Instance.dataArray;
-            for (int i = 0; i < dataArray.Length; i++)
-            {
-                if (!dicPassivitySkill.ContainsKey(dataArray[i].cardId))
-                {
-                    dicPassivitySkill[dataArray[i].cardId] = new Dictionary<int, List<PassivitySkillCfg>>();
-                }
-                PassivitySkillCfg passivitySkillCfgs = dataArray[i];
 
-                if (!dicPassivitySkill[passivitySkillCfgs.cardId].ContainsKey(passivitySkillCfgs.skillId))
-                {
-                    dicPassivitySkill[passivitySkillCfgs.cardId][passivitySkillCfgs.skillId] = new List<PassivitySkillCfg>();
-                }
-                dicPassivitySkill[passivitySkillCfgs.cardId][passivitySkillCfgs.skillId].Add(passivitySkillCfgs);
-            }
-        }
-        public void UpSkill(int cardId, int skillId)
-        {
             if (!this.skillData.ContainsKey(cardId))
             {
-                this.skillData[cardId] = new Dictionary<int, SkillData>();
+                this.skillData[cardId] = new Dictionary<int, int>();
             }
-            if (!this.skillData[cardId].ContainsKey(skillId))
+            for (int i = 0; i < skillIds.Count; i++)
             {
-                SkillData skillData = new SkillData();
-                skillData.cardId = cardId;
-                skillData.skillId = skillId;
-                skillData.lv = 1;
-                this.skillData[cardId][skillId] = skillData;
+                UpdateSkill(cardId, skillIds[i], skillLvs[i]);
             }
-            skillData[cardId][skillId].lv += 1;
-            EventAgent.DispatchEvent(ConstMessage.CARD_UP_SKILL);
+        }
+        public void UpdateSkill(int cardId, int skillId, int skillLv)
+        {
+            this.skillData[cardId][skillId] = skillLv;
         }
 
+        // public void UpSkill(int cardId, int skillId)
+        // {
+        //     CardSProxy.UpgradeCardSkill(cardId, skillId).Coroutine();
+        // }
+
         //获取npc释放技能顺序
         public Dictionary<int, RoleSkillCfg> GetNpcSkill()
         {
@@ -87,26 +57,42 @@ namespace GFGGame
             return npcSkillDic;
         }
 
-        public SkillData GetSkillData(int cardId, int skillId)
+        public int GetSkillLv(int cardId, int skillId)
         {
-            SkillData skillData;
-            if (SkillDataManager.Instance.skillData.ContainsKey(cardId) && SkillDataManager.Instance.skillData[cardId].ContainsKey(skillId))
-            {
-                skillData = SkillDataManager.Instance.skillData[cardId][skillId];
-            }
-            else
+            // SkillData skillData;
+            // if (SkillDataManager.Instance.skillData.ContainsKey(cardId) && SkillDataManager.Instance.skillData[cardId].ContainsKey(skillId))
+            // {
+            //     skillData = SkillDataManager.Instance.skillData[cardId][skillId];
+            // }
+            // else
+            // {
+            //     skillData = new SkillData();
+            //     skillData.cardId = cardId;
+            //     skillData.skillId = skillId;
+            //     skillData.lv = 1;
+            // }
+            // return skillData;
+
+            int lv = 1;
+            if (this.skillData.ContainsKey(cardId) && this.skillData[cardId].ContainsKey(skillId))
             {
-                skillData = new SkillData();
-                skillData.cardId = cardId;
-                skillData.skillId = skillId;
-                skillData.lv = 1;
+                lv = this.skillData[cardId][skillId];
             }
-            return skillData;
+            return lv;
         }
 
-        public PassivitySkillCfg GetPassivitySkillCfg(int cardId, int skillId, int lv)
+        public PassivitySkillCfg GetPassivitySkillCfg(int cardId, int skillId)
         {
-            return dicPassivitySkill[cardId][skillId][lv - 1];
+            PassivitySkillCfg[] cfgs = PassivitySkillCfgArray.Instance.GetCfgs(cardId);
+            for (int i = 0; i < cfgs.Length; i++)
+            {
+                if (cfgs[i].skillId == skillId) return cfgs[i];
+            }
+            return null;
         }
+        // public PassivitySkillLvlCfg GetPassivitySkillLvlCfg(int skillId, int lv)
+        // {
+        //     return PassivitySkillLvlCfgArray.Instance.GetCfg(lv, skillId);
+        // }
     }
 }

+ 33 - 0
GameClient/Assets/Game/HotUpdate/Data/StorageDataManager.cs

@@ -0,0 +1,33 @@
+using System.Collections.Generic;
+
+namespace GFGGame
+{
+    public class StorageDataManager : SingletonBase<StorageDataManager>
+    {
+        private Dictionary<int, int> _storangeInfoById = new Dictionary<int, int>();
+
+        public void Clear()
+        {
+            _storangeInfoById.Clear();
+        }
+
+
+        public void InitStorageInfo(int key, int value)
+        {
+            if (!_storangeInfoById.ContainsKey(key))
+            {
+                _storangeInfoById.Add(key, value);
+            }
+            _storangeInfoById[key] = value;
+        }
+        public int GetStorageValue(int key)
+        {
+            if (!_storangeInfoById.ContainsKey(key))
+            {
+                return -1;
+            }
+
+            return _storangeInfoById[key];
+        }
+    }
+}

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

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

+ 4 - 0
GameClient/Assets/Game/HotUpdate/DressUp/DressUpObjDataCache.cs

@@ -101,6 +101,8 @@ namespace GFGGame
             set
             {
                 _autoPlay = value;
+                if (!_autoPlay) fightSpeed = 1;
+                StorageSProxy.ReqSetClientValue(ConstStorageId.STORAGE_AUTO_PLAY, _autoPlay == true ? 1 : 0).Coroutine();
             }
         }
         public int maxFightSpeed = 8;
@@ -115,6 +117,8 @@ namespace GFGGame
             {
 
                 _fightSpeed = value;
+                StorageSProxy.ReqSetClientValue(ConstStorageId.STORAGE_AUTO_PLAY_SPEED, _fightSpeed).Coroutine();
+
             }
         }
         public void Dispose()

+ 11 - 10
GameClient/Assets/Game/HotUpdate/ExcelConfig/Manager/CardCfgManager.cs

@@ -4,7 +4,7 @@ using UnityEngine;
 
 namespace GFGGame
 {
-    public class CardCfgManager 
+    public class CardCfgManager
     {
         private static Dictionary<string, List<CardLvlCfg>> _cardLvCfgDic = new Dictionary<string, List<CardLvlCfg>>();
         private static Dictionary<string, Dictionary<string, List<CardStarCfg>>> _cardStarCfgDic = new Dictionary<string, Dictionary<string, List<CardStarCfg>>>();
@@ -36,7 +36,7 @@ namespace GFGGame
         {
             if (_cardLvCfgDic.Count == 0)
             {
-              
+
                 int _rarity = 1;
                 int _lv = 1;
                 CardLvlCfg lvCfg = CardLvlCfgArray.Instance.GetCfg(_lv, _rarity);
@@ -61,6 +61,7 @@ namespace GFGGame
             }
             return _cardLvCfgDic[rarity.ToString()];
         }
+
         /// <summary>
         /// 根据男主类型和稀有度获取升星配置数组
         /// </summary>
@@ -70,7 +71,7 @@ namespace GFGGame
         public static List<CardStarCfg> GetCardStarCfgsByTypeAndRarity(int type, int rarity)
         {
             if (_cardStarCfgDic.Count == 0)
-            {            
+            {
 
                 int _type = 1;
                 int _rarity = 1;
@@ -100,14 +101,14 @@ namespace GFGGame
                     _star++;
                     starCfg = CardStarCfgArray.Instance.GetCfg(_type, _rarity, _star);
                     if (starCfg != null) continue;
-                   
+
                     _star = 1;
                     _rarity++;
                     starCfg = CardStarCfgArray.Instance.GetCfg(_type, _rarity, _star);
 
                     if (starCfg != null) continue;
                     _star = 1;
-                    _rarity=1;
+                    _rarity = 1;
                     _type++;
                     starCfg = CardStarCfgArray.Instance.GetCfg(_type, _rarity, _star);
                     if (starCfg == null) break;
@@ -120,7 +121,7 @@ namespace GFGGame
 
             int count = 0;
             List<int> resourceStar = _cardResCfgDic[type.ToString()][rarity.ToString()];
-            for(int i = 0; i < resourceStar.Count; i++)
+            for (int i = 0; i < resourceStar.Count; i++)
             {
                 if (CardDataManager.GetCardDataById(cardId).star >= resourceStar[i])
                 {
@@ -130,23 +131,23 @@ namespace GFGGame
             return count;
         }
 
-        public static List<CardStoryCfg>  GetStoryCfgsById(int cardId)
+        public static List<CardStoryCfg> GetStoryCfgsById(int cardId)
         {
             if (_cardStoryCfgDic.Keys.Count == 0)
             {
                 CardStoryCfg[] cardStoryCfgs = CardStoryCfgArray.Instance.dataArray;
 
-                for (int i=0;i< cardStoryCfgs.Length; i++)
+                for (int i = 0; i < cardStoryCfgs.Length; i++)
                 {
                     int _cardId = cardStoryCfgs[i].cardId;
-                    if (_cardStoryCfgDic.ContainsKey(_cardId)==false)
+                    if (_cardStoryCfgDic.ContainsKey(_cardId) == false)
                     {
                         _cardStoryCfgDic.Add(_cardId, new List<CardStoryCfg>());
                     }
                     _cardStoryCfgDic[_cardId].Add(cardStoryCfgs[i]);
                 }
             }
-            return _cardStoryCfgDic.ContainsKey(cardId)? _cardStoryCfgDic[cardId]: new List<CardStoryCfg>();
+            return _cardStoryCfgDic.ContainsKey(cardId) ? _cardStoryCfgDic[cardId] : new List<CardStoryCfg>();
         }
     }
 }

+ 4 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/DressUp/UI_DressUpFightUI.cs

@@ -18,6 +18,7 @@ namespace UI.DressUp
         public UI_comListType m_comListType1;
         public UI_comListType m_comListType2;
         public UI_PartsList m_partsList;
+        public UI_PartsList m_partsList2;
         public GButton m_btnHint;
         public GGraph m_btnClose;
         public GTextField m_txtHint;
@@ -90,6 +91,7 @@ namespace UI.DressUp
             m_comListType1 = (UI_comListType)UI_comListType.Create(comp.GetChild("comListType1"));
             m_comListType2 = (UI_comListType)UI_comListType.Create(comp.GetChild("comListType2"));
             m_partsList = (UI_PartsList)UI_PartsList.Create(comp.GetChild("partsList"));
+            m_partsList2 = (UI_PartsList)UI_PartsList.Create(comp.GetChild("partsList2"));
             m_btnHint = (GButton)comp.GetChild("btnHint");
             m_btnClose = (GGraph)comp.GetChild("btnClose");
             m_txtHint = (GTextField)comp.GetChild("txtHint");
@@ -122,6 +124,8 @@ namespace UI.DressUp
             m_comListType2 = null;
             m_partsList.Dispose();
             m_partsList = null;
+            m_partsList2.Dispose();
+            m_partsList2 = null;
             m_btnHint = null;
             m_btnClose = null;
             m_txtHint = null;

+ 4 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/DressUp/UI_DressUpUI.cs

@@ -18,6 +18,7 @@ namespace UI.DressUp
         public UI_comListType m_comListType1;
         public UI_comListType m_comListType2;
         public UI_PartsList m_partsList;
+        public UI_PartsList m_partsList2;
         public GButton m_btnAction;
         public GButton m_btnPhoto;
         public GButton m_btnLastStep;
@@ -84,6 +85,7 @@ namespace UI.DressUp
             m_comListType1 = (UI_comListType)UI_comListType.Create(comp.GetChild("comListType1"));
             m_comListType2 = (UI_comListType)UI_comListType.Create(comp.GetChild("comListType2"));
             m_partsList = (UI_PartsList)UI_PartsList.Create(comp.GetChild("partsList"));
+            m_partsList2 = (UI_PartsList)UI_PartsList.Create(comp.GetChild("partsList2"));
             m_btnAction = (GButton)comp.GetChild("btnAction");
             m_btnPhoto = (GButton)comp.GetChild("btnPhoto");
             m_btnLastStep = (GButton)comp.GetChild("btnLastStep");
@@ -109,6 +111,8 @@ namespace UI.DressUp
             m_comListType2 = null;
             m_partsList.Dispose();
             m_partsList = null;
+            m_partsList2.Dispose();
+            m_partsList2 = null;
             m_btnAction = null;
             m_btnPhoto = null;
             m_btnLastStep = null;

+ 71 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/Guide/UI_ComHolder.cs

@@ -0,0 +1,71 @@
+/** This is an automatically generated class by FairyGUI. Please do not modify it. **/
+
+using FairyGUI;
+
+namespace UI.Guide
+{
+    public partial class UI_ComHolder
+    {
+        public GComponent target;
+        public GGraph m_holder;
+        public const string URL = "ui://vxxz0ya7axdii";
+        public const string PACKAGE_NAME = "Guide";
+        public const string RES_NAME = "ComHolder";
+        private static UI_ComHolder _proxy;
+
+        public static UI_ComHolder Create(GObject gObject = null)
+        {
+            var ui = new UI_ComHolder();
+            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_ComHolder Proxy(GObject gObject = null)
+        {
+            if(_proxy == null)
+            {
+                _proxy = new UI_ComHolder();
+            }
+            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_holder = (GGraph)comp.GetChild("holder");
+        }
+        public void Dispose(bool disposeTarget = false)
+        {
+            m_holder = null;
+            if(disposeTarget && target != null)
+            {
+                target.RemoveFromParent();
+                target.Dispose();
+            }
+            target = null;
+        }
+    }
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/Guide/UI_ComHolder.cs.meta

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

+ 4 - 3
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/Guide/UI_GuideUI.cs

@@ -11,7 +11,7 @@ namespace UI.Guide
         public UI_Component3 m_rectFrame;
         public UI_Component1 m_compTxt;
         public GImage m_rectFrameTemp;
-        public GGraph m_holder;
+        public UI_ComHolder m_comHolder;
         public const string URL = "ui://vxxz0ya7rpol4";
         public const string PACKAGE_NAME = "Guide";
         public const string RES_NAME = "GuideUI";
@@ -63,7 +63,7 @@ namespace UI.Guide
             m_rectFrame = (UI_Component3)UI_Component3.Create(comp.GetChild("rectFrame"));
             m_compTxt = (UI_Component1)UI_Component1.Create(comp.GetChild("compTxt"));
             m_rectFrameTemp = (GImage)comp.GetChild("rectFrameTemp");
-            m_holder = (GGraph)comp.GetChild("holder");
+            m_comHolder = (UI_ComHolder)UI_ComHolder.Create(comp.GetChild("comHolder"));
         }
         public void Dispose(bool disposeTarget = false)
         {
@@ -74,7 +74,8 @@ namespace UI.Guide
             m_compTxt.Dispose();
             m_compTxt = null;
             m_rectFrameTemp = null;
-            m_holder = null;
+            m_comHolder.Dispose();
+            m_comHolder = null;
             if(disposeTarget && target != null)
             {
                 target.RemoveFromParent();

+ 89 - 0
GameClient/Assets/Game/HotUpdate/ServerProxy/CardSProxy.cs

@@ -0,0 +1,89 @@
+using System.Collections.Generic;
+using ET;
+using GFGGame;
+
+namespace ET
+{
+    public class NoticeGetNewCard : AMHandler<M2C_GetNewCard>
+    {
+        protected override async ETTask Run(Session session, M2C_GetNewCard message)
+        {
+            CardDataManager.Add(message.CardInfo);
+            SkillDataManager.Instance.InitServerData(message.CardInfo.CardId, message.CardInfo.KsSkill, message.CardInfo.VsSkill);
+            await ETTask.CompletedTask;
+        }
+    }
+}
+namespace GFGGame
+{
+    public static class CardSProxy
+    {
+        public static async ETTask GetCardInfos()
+        {
+            M2C_GetCardInfos response = null;
+            response = (M2C_GetCardInfos)await MessageHelper.SendToServer(new C2M_GetCardInfos() { });
+            if (response != null)
+            {
+                if (response.Error == ErrorCode.ERR_Success)
+                {
+                    for (int i = 0; i < response.CardInfos.Count; i++)
+                    {
+                        CardDataManager.Add(response.CardInfos[i]);
+                        SkillDataManager.Instance.InitServerData(response.CardInfos[i].CardId, response.CardInfos[i].KsSkill, response.CardInfos[i].VsSkill);
+                    }
+                }
+            }
+        }
+
+        public static async ETTask UpgradeCardLvl(int cardId, List<int> itemNums)
+        {
+            M2C_UpgradeCardLvl response = null;
+            response = (M2C_UpgradeCardLvl)await MessageHelper.SendToServer(new C2M_UpgradeCardLvl() { CardId = cardId, ItemNums = itemNums });
+            if (response != null)
+            {
+                if (response.Error == ErrorCode.ERR_Success)
+                {
+
+                }
+            }
+        }
+        public static async ETTask UpgradeCardStar(int cardId)
+        {
+            M2C_UpgradeCardStar response = null;
+            response = (M2C_UpgradeCardStar)await MessageHelper.SendToServer(new C2M_UpgradeCardStar() { CardId = cardId });
+            if (response != null)
+            {
+                if (response.Error == ErrorCode.ERR_Success)
+                {
+
+                }
+            }
+        }
+        //resIndex:0默认,1特殊
+        public static async ETTask ChangeCardLvl(int cardId, int resIndex)
+        {
+            M2C_ChangeCardLvl response = null;
+            response = (M2C_ChangeCardLvl)await MessageHelper.SendToServer(new C2M_ChangeCardLvl() { CardId = cardId, ResIndex = resIndex });
+            if (response != null)
+            {
+                if (response.Error == ErrorCode.ERR_Success)
+                {
+
+                }
+            }
+        }
+        public static async ETTask UpgradeCardSkill(int cardId, int skillId)
+        {
+            M2C_UpgradeCardSkill response = null;
+            response = (M2C_UpgradeCardSkill)await MessageHelper.SendToServer(new C2M_UpgradeCardSkill() { CardId = cardId, SkillId = skillId });
+            if (response != null)
+            {
+                if (response.Error == ErrorCode.ERR_Success)
+                {
+                    SkillDataManager.Instance.UpdateSkill(response.CardId, response.SkillId, response.SkillLvl);
+                    EventAgent.DispatchEvent(ConstMessage.CARD_UP_SKILL);
+                }
+            }
+        }
+    }
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/ServerProxy/CardSProxy.cs.meta

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

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

@@ -13,7 +13,7 @@ namespace GFGGame
                 if (response.Error == ErrorCode.ERR_Success)
                 {
                     ItemDataManager.InitItemExchange(response.ItemId, response.ExchangedTimes);
-                    EventAgent.DispatchEvent(ConstMessage.SHOP_BUY);
+                    // EventAgent.DispatchEvent(ConstMessage.SHOP_BUY);
                     return true;
                 }
             }

+ 1 - 2
GameClient/Assets/Game/HotUpdate/ServerProxy/ShopSProxy.cs

@@ -12,8 +12,7 @@ namespace GFGGame
             {
                 if (response.Error == ErrorCode.ERR_Success)
                 {
-
-                    EventAgent.DispatchEvent(ConstMessage.SHOP_BUY);
+                    // EventAgent.DispatchEvent(ConstMessage.SHOP_BUY);
                     return true;
                 }
             }

+ 44 - 0
GameClient/Assets/Game/HotUpdate/ServerProxy/StorageSProxy.cs

@@ -0,0 +1,44 @@
+using System.Collections.Generic;
+using ET;
+using GFGGame;
+
+
+namespace GFGGame
+{
+    public class StorageSProxy
+    {
+
+        //存储
+        public static async ETTask<bool> ReqSetClientValue(int key, int value)
+        {
+            M2C_SetClientValue response = null;
+            response = (M2C_SetClientValue)await MessageHelper.SendToServer(new C2M_SetClientValue() { Key = key, Value = value });
+            if (response != null)
+            {
+                if (response.Error == ErrorCode.ERR_Success)
+                {
+                    StorageDataManager.Instance.InitStorageInfo(response.Key, response.Value);
+                    return true;
+                }
+            }
+            return false;
+        }
+
+        //获取
+        public static async ETTask ReqGetClientValues()
+        {
+            M2C_GetClientValues response = null;
+            response = (M2C_GetClientValues)await MessageHelper.SendToServer(new C2M_GetClientValues() { });
+            if (response != null)
+            {
+                if (response.Error == ErrorCode.ERR_Success)
+                {
+                    for (int i = 0; i < response.Ks.Count; i++)
+                    {
+                        StorageDataManager.Instance.InitStorageInfo(response.Ks[i], response.Vs[i]);
+                    }
+                }
+            }
+        }
+    }
+}

+ 11 - 0
GameClient/Assets/Game/HotUpdate/ServerProxy/StorageSProxy.cs.meta

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

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

@@ -34,7 +34,7 @@ namespace GFGGame
                         StudioData studioData = new StudioData { ChapterId = response.infos[i].ChapterId, BuyTimes = response.infos[i].BuyTimes, PlayTimes = response.infos[i].PlayTimes, TotalPlayTimes = response.infos[i].TotalPlayTimes };
                         StudioDataManager.Instance.RspStudioInfos(studioData);
                     }
-                    EventAgent.DispatchEvent(ConstMessage.GET_STUDIO_INFO);
+                    // EventAgent.DispatchEvent(ConstMessage.GET_STUDIO_INFO);
                 }
             }
         }

+ 20 - 20
GameClient/Assets/Game/HotUpdate/Views/Card/CardDetailView.cs

@@ -58,27 +58,27 @@ namespace GFGGame
         }
         private void UpdateCardList(int rarity = 0)
         {
-            _ui.m_listCard.numItems = 0;
-
-            Dictionary<int, CardData> cardDic = CardDataManager.GetCardDicByRarity(rarity);
-
-            if (cardDic == null)
+            // _ui.m_listCard.numItems = 0;
+
+            // Dictionary<int, CardData> cardDic = CardDataManager.GetCardDicByRarity(rarity);
+
+            // if (cardDic == null)
+            // {
+            //     _ui.m_listCard.numItems = 0;
+            //     return;
+            // }
+            // else
+            // {
+            List<CardData> cardList = CardDataManager.GetCardListByRarity(rarity);// CardDataManager.CardDicToList(cardDic);
+            if (CardDataManager._selectList.Keys.Count > 0)
             {
-                _ui.m_listCard.numItems = 0;
-                return;
+                //筛选
+                cardList = CardDataManager.FilterCardList(cardList, CardDataManager._selectList as Dictionary<int, Dictionary<int, int>>);
             }
-            else
-            {
-                List<CardData> cardList = CardDataManager.CardDicToList(cardDic);
-                if (CardDataManager._selectList.Keys.Count > 0)
-                {
-                    //筛选
-                    cardList = CardDataManager.FilterCardList(cardList, CardDataManager._selectList as Dictionary<int, Dictionary<int, int>>);
-                }
-                _ui.m_listCard.data = cardList;
-                _ui.m_listCard.numItems = cardList.Count;
+            _ui.m_listCard.data = cardList;
+            _ui.m_listCard.numItems = cardList.Count;
 
-            }
+            // }
 
             _ui.m_txtTips.visible = _ui.m_listCard.numItems == 0 ? true : false;
         }
@@ -88,7 +88,7 @@ namespace GFGGame
             CardData data = (_ui.m_listCard.data as List<CardData>)[index];//CardDataManager.GetCardList(_ui.m_listRole.selectedIndex)[index];
             listItem.target.data = data;
             listItem.m_loaCard.m_loaCard.url = ResPathUtil.GetCardSmallPath(data.res);
-            listItem.m_loaRarity.url = ResPathUtil.GetCommonGameResPath("kp_sxing_x_" + (5 - data.itemCfg.rarity));//(5-res):res1-4为黄玄地天,但是资源1天,2地,3玄,4黄,所以(5-res)是为了使其资源对应
+            listItem.m_loaRarity.url = ResPathUtil.GetCommonGameResPath("kp_sxing_x_" + data.itemCfg.rarity);
             listItem.m_txtLv.text = "Lv.\n" + data.lv;
             listItem.m_txtName.text = data.itemCfg.name;
 
@@ -152,7 +152,7 @@ namespace GFGGame
         {
             if (!ViewManager.CheckIsTopView(this.viewCom)) return;
 
-            GuideController.TryGuide(_ui.m_listCard, ConstGuideId.UP_CARD_STAR, 3, "选择可升星的词牌", true, 0);
+            GuideController.TryGuide(_ui.m_listCard, ConstGuideId.UP_CARD_STAR, 3, "选择可升星的词牌", 1);
         }
     }
 }

+ 75 - 79
GameClient/Assets/Game/HotUpdate/Views/Card/CardFosterView.cs

@@ -15,7 +15,7 @@ namespace GFGGame
         private UI_CardFosterUI _ui;
         private UI_ComFosterBottom _comFosterBottom;
         private ValueBarController _valueBarController;
-        private CardData _viewData = new CardData();
+        private CardData _cardData = new CardData();
         private int _selectTab = 0;
 
         private GameObject _cardObj;
@@ -98,6 +98,8 @@ namespace GFGGame
         protected override void OnShown()
         {
             base.OnShown();
+            _cardData = CardDataManager.GetCardDataById((this.viewData as CardData).id);
+
             _cardScale = _ui.target.height * 0.8f / _ui.target.initHeight;
             Input.multiTouchEnabled = false;
 
@@ -110,53 +112,41 @@ namespace GFGGame
 
         private void UpdateNormal()
         {
-            _comFosterBottom.m_txtName.text = _viewData.itemCfg.name;
-            _comFosterBottom.m_btnStory.visible = CardCfgManager.GetStoryCfgsById(_viewData.id).Count > 0 ? true : false;
+            _comFosterBottom.m_txtName.text = _cardData.itemCfg.name;
+            _comFosterBottom.m_btnStory.visible = CardCfgManager.GetStoryCfgsById(_cardData.id).Count > 0 ? true : false;
             _comFosterBottom.m_btnUpLv.grayed = true;
-            _comFosterBottom.m_loaRarity.url = ResPathUtil.GetCommonGameResPath("kp_sx_da_" + (5 - _viewData.itemCfg.rarity));
+            _comFosterBottom.m_loaRarity.url = ResPathUtil.GetCommonGameResPath("kp_sx_da_" + _cardData.itemCfg.rarity);
             _valueBarController = new ValueBarController(_ui.m_ComFosterTop.m_comValueBar, 5);
             _valueBarController.OnShown();
 
         }
         private void UpdateCommon()
         {
-            _viewData = CardDataManager.GetCardDataById((this.viewData as CardData).id);
-            _comFosterBottom.m_listProperty.numItems = _viewData.scores.Count;
+            _comFosterBottom.m_listProperty.numItems = _cardData.scores.Count;
             _comFosterBottom.m_ComLvConsumeGold.m_txtCount.text = "0";
 
         }
         private void UpdateCardRes()
         {
-            List<CardStarCfg> cardStarCfgs = CardCfgManager.GetCardStarCfgsByTypeAndRarity(_viewData.itemCfg.subType, _viewData.itemCfg.rarity);
 
-            if (_viewData.res == _viewData.itemCfg.res || _viewData.star < cardStarCfgs.Count)
+            if (_cardObj != null)
             {
-                _ui.m_comCard.target.visible = false;
-                _ui.m_loaCard.visible = true;
-                _ui.m_loaListener.visible = false;
-                _ui.m_loaCard.url = ResPathUtil.GetCardPath(_viewData.res);
-                _ui.m_loaCard.width = _ui.m_loaCard.image.width;
-
-
+                GameObject.Destroy(_cardObj);
+                _cardObj = null;
             }
-            else
+            string resPath = ResPathUtil.GetCardAnimationPath(_cardData.res);
+            _cardObj = DressUpUtil.AddAnimationObj(resPath);
+
+            if (_cardObj != null)
             {
                 _ui.m_loaListener.visible = true;
                 _ui.m_comCard.target.visible = true;
                 _ui.m_loaCard.visible = false;
 
                 int scale = 100;
-                if (_cardObj != null)
-                {
-                    GameObject.Destroy(_cardObj);
-                    _cardObj = null;
-                }
-                string resPath = ResPathUtil.GetCardAnimationPath(_viewData.res);
-                _cardObj = DressUpUtil.AddAnimationObj(resPath);
                 _cardObj.transform.localScale = new Vector3(scale, scale, scale);
                 if (_wrapper == null)
                 {
-
                     _wrapper = new GoWrapper(_cardObj);
                     _ui.m_comCard.m_comCardHolder.m_holder.SetNativeObject(_wrapper);
                 }
@@ -166,14 +156,22 @@ namespace GFGGame
                 }
                 _ui.m_comCard.target.scrollPane.SetPercX(0.5f, false);
                 _ui.m_comCard.target.SetScale(_cardScale, _cardScale);
-
             }
+            else
+            {
+                _ui.m_comCard.target.visible = false;
+                _ui.m_loaCard.visible = true;
+                _ui.m_loaListener.visible = false;
+                _ui.m_loaCard.url = ResPathUtil.GetCardPath(_cardData.res);
+                _ui.m_loaCard.width = _ui.m_loaCard.image.width;
+            }
+
         }
         private void RenderListPropertyItem(int index, GObject obj)
         {
             UI_ListPropertyItem listItem = UI_ListPropertyItem.Proxy(obj);
 
-            listItem.m_txtProperty.text = _viewData.scores[index + 1].ToString();
+            listItem.m_txtProperty.text = _cardData.scores[index + 1].ToString();
             listItem.m_loaIcon.url = ResPathUtil.GetCommonGameResPath("kp_sx_" + (index + 1));
             UI_ListPropertyItem.ProxyEnd();
         }
@@ -181,35 +179,35 @@ namespace GFGGame
         /***********************************************************升级***************************************************/
         private void UpdateUpLvView(bool isPreview = false, int lv = 0, int exp = 0)
         {
-            _showLv = isPreview == true ? lv : _viewData.lv;
-            _showExp = isPreview == true ? exp : _viewData.exp;
-            CardLvlCfg cardLvCfg = CardCfgManager.GetCardLvCfgByRarityAndLv(_viewData.itemCfg.rarity, _showLv);
+            _showLv = isPreview == true ? lv : _cardData.lv;
+            _showExp = isPreview == true ? exp : _cardData.exp;
+            CardLvlCfg cardLvCfg = CardLvlCfgArray.Instance.GetCfg(_showLv, _cardData.itemCfg.rarity);
 
             _comFosterBottom.m_barLv.max = cardLvCfg.needExp;
             _comFosterBottom.m_barLv.value = _showExp;
-
-            _comFosterBottom.m_txtMaxLv.text = (CardCfgManager.GetCardLvCfgsByRarity(_viewData.itemCfg.rarity).Count - 1).ToString();
-            _comFosterBottom.m_txtCurLv.text = StringUtil.GetColorText(_showLv.ToString(), _showLv < int.Parse(_comFosterBottom.m_txtMaxLv.text) ? "#D27869" : "#7D6956");
+            int maxLv = CardRarityCfgArray.Instance.GetCfg(_cardData.itemCfg.rarity).maxCardLvl;
+            _comFosterBottom.m_txtMaxLv.text = maxLv.ToString();
+            _comFosterBottom.m_txtCurLv.text = StringUtil.GetColorText(_showLv.ToString(), _showLv < maxLv ? "#D27869" : "#7D6956");
             _comFosterBottom.m_txtMaxExp.text = cardLvCfg.needExp.ToString();
             _comFosterBottom.m_txtCurExp.text = _showExp.ToString();
 
             _comFosterBottom.m_btnUpLv.grayed = _comFosterBottom.m_ComLvConsumeGold.m_txtCount.text == "0" ? true : false;
 
-            _comFosterBottom.m_ctrlFullLv.selectedIndex = CardDataManager.isFullLv(_viewData.id, _viewData.lv, false) ? 1 : 0;
+            _comFosterBottom.m_ctrlFullLv.selectedIndex = CardDataManager.isFullLv(_cardData.id, _cardData.lv, false) ? 1 : 0;
 
             if (isPreview == true)
             {
                 return;
             }
-            _comFosterBottom.m_listLvConsume.numItems = GlobalCfgArray.globalCfg.materiarsArr.Length;
+            _comFosterBottom.m_listLvConsume.numItems = GlobalCfgArray.globalCfg.upgradeCardItemsArr.Length;
 
         }
 
         private void RenderListLvConsumeItem(int index, GObject obj)
         {
             UI_ComConsume listItem = UI_ComConsume.Proxy(obj);
-            CardLvlCfg cardLvCfg = CardCfgManager.GetCardLvCfgByRarityAndLv(_viewData.itemCfg.rarity, _viewData.lv);
-            ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(GlobalCfgArray.globalCfg.materiarsArr[index]);
+            CardLvlCfg cardLvCfg = CardCfgManager.GetCardLvCfgByRarityAndLv(_cardData.itemCfg.rarity, _cardData.lv);
+            ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(GlobalCfgArray.globalCfg.upgradeCardItemsArr[index]);
             listItem.m_loaItem.url = ResPathUtil.GetIconPath(itemCfg);
             listItem.m_txtNum.text = ItemDataManager.GetItemNum(itemCfg.id).ToString();
             listItem.m_txtUseCount.text = "0";
@@ -239,7 +237,7 @@ namespace GFGGame
             {
                 if (ItemDataManager.GetItemNum((listItem.target.data as ItemCfg).id) == 0)
                 {
-                    ViewManager.Show(ViewName.APPROACH_OF_ITEM_VIEW, new object[] { (listItem.target.data as ItemCfg).id, new object[] { ViewName.CARD_FOSTER_VIEW, this.viewData } });
+                    ViewManager.Show(ViewName.APPROACH_OF_ITEM_VIEW, new object[] { (listItem.target.data as ItemCfg).id, new object[] { ViewName.CARD_FOSTER_VIEW, _cardData } });
                 }
             }
             //_timer.Start();
@@ -300,7 +298,7 @@ namespace GFGGame
 
                 return false;
             }
-            if (_showLv == (CardCfgManager.GetCardLvCfgsByRarity(_viewData.itemCfg.rarity).Count - 1) && _comFosterBottom.m_barLv.max == _comFosterBottom.m_barLv.value)
+            if (_showLv == (CardCfgManager.GetCardLvCfgsByRarity(_cardData.itemCfg.rarity).Count - 1) && _comFosterBottom.m_barLv.max == _comFosterBottom.m_barLv.value)
             {
                 Timers.inst.Remove(OnTimedEvent);
 
@@ -351,7 +349,7 @@ namespace GFGGame
 
             int previewLv = 0;
             int previewExp = 0;
-            CardDataManager.GetPreViewLvAndExp(_viewData.itemCfg.rarity, _viewData.lv, _viewData.exp, hasExp, out previewLv, out previewExp);
+            CardDataManager.GetPreViewLvAndExp(_cardData.itemCfg.rarity, _cardData.lv, _cardData.exp, hasExp, out previewLv, out previewExp);
             this.UpdateUpLvView(true, previewLv, previewExp);
         }
         private void OnClcikBtnAll()
@@ -409,17 +407,17 @@ namespace GFGGame
             }
 
 
-            if (CardDataManager.isFullLv(_viewData.id, _viewData.lv) == false)
+            if (CardDataManager.isFullLv(_cardData.id, _cardData.lv) == false)
             {
-                int lv = _viewData.lv;
-                CardDataManager.UpCardLv(_viewData.id, _showLv, _showExp);
+                int lv = _cardData.lv;
+                CardDataManager.UpCardLv(_cardData.id, _showLv, _showExp);
                 this.UpdateCommon();
                 this.UpdateUpLvView();
 
                 if (_showLv - lv >= 1)
                 {
                     this._selectTab = _comFosterBottom.m_ctrlTab.selectedIndex;
-                    ViewManager.Show(ViewName.CARD_UP_VIEW, new object[] { _viewData.scores, "lv", lv, _showLv }, new object[] { ViewName.CARD_FOSTER_VIEW, this.viewData });
+                    ViewManager.Show(ViewName.CARD_UP_VIEW, new object[] { _cardData.scores, "lv", lv, _showLv }, new object[] { ViewName.CARD_FOSTER_VIEW, _cardData });
                 }
             }
         }
@@ -429,17 +427,17 @@ namespace GFGGame
 
         private void UpdateUpStarView()
         {
-            List<CardStarCfg> cardStarCfgs = CardCfgManager.GetCardStarCfgsByTypeAndRarity(_viewData.itemCfg.subType, _viewData.itemCfg.rarity);
-            CardStarCfg cardStarCfg = CardCfgManager.GetCardStarCfgByTypeAndRarityAndStar(_viewData.itemCfg.subType, _viewData.itemCfg.rarity, _viewData.star);
+            List<CardStarCfg> cardStarCfgs = CardCfgManager.GetCardStarCfgsByTypeAndRarity(_cardData.itemCfg.subType, _cardData.itemCfg.rarity);
+            CardStarCfg cardStarCfg = CardCfgManager.GetCardStarCfgByTypeAndRarityAndStar(_cardData.itemCfg.subType, _cardData.itemCfg.rarity, _cardData.star);
 
-            _comFosterBottom.m_comStar.m_c1.selectedIndex = _viewData.star;
+            _comFosterBottom.m_comStar.m_c1.selectedIndex = _cardData.star;
             _comFosterBottom.m_comStar.m_c2.selectedIndex = cardStarCfgs.Count;
-            if (CardDataManager.isFullStar(_viewData.id, _viewData.star, false))
+            if (CardDataManager.isFullStar(_cardData.id, _cardData.star, false))
             {
                 _comFosterBottom.m_ctrlFullStar.selectedIndex = 1;
                 //List<string> resse = CardCfgManager.GetCardShowResByIdAndTypeAndRarity(_viewData.id, _viewData.itemCfg.type, _viewData.itemCfg.rarity);
-                _comFosterBottom.m_listShowCard.data = _viewData.resources;
-                _comFosterBottom.m_listShowCard.numItems = CardCfgManager.GetCardShowCountByIdAndTypeAndRarity(_viewData.id, _viewData.itemCfg.subType, _viewData.itemCfg.rarity);
+                _comFosterBottom.m_listShowCard.data = _cardData.resources;
+                _comFosterBottom.m_listShowCard.numItems = CardCfgManager.GetCardShowCountByIdAndTypeAndRarity(_cardData.id, _cardData.itemCfg.subType, _cardData.itemCfg.rarity);
                 return;
             }
             else
@@ -455,7 +453,7 @@ namespace GFGGame
                 _comFosterBottom.m_listStarConsume.data = cardStarCfg;
                 _comFosterBottom.m_listStarConsume.numItems = cardStarCfg.materiarsArr.Length;
 
-                _comFosterBottom.m_comTips.visible = _viewData.lv < cardStarCfg.needLv ? true : false;
+                _comFosterBottom.m_comTips.visible = _cardData.lv < cardStarCfg.needLv ? true : false;
                 UI_ComTips comTips = UI_ComTips.Proxy(_comFosterBottom.m_comTips);
                 comTips.m_txtTips.text = _comFosterBottom.m_comTips.visible == true ? string.Format("需等级达到{0}级", cardStarCfg.needLv) : "";
 
@@ -499,14 +497,14 @@ namespace GFGGame
             GButton listItem = obj as GButton;
             GLoader loaStarCard = UI_ComStarCard.Proxy(listItem.GetChild("ComStarCard")).m_loaStarCard;
             string res = (listItem.parent.data as List<string>)[index];
-            if (res == _viewData.res) { _comFosterBottom.m_listShowCard.selectedIndex = index; }
+            if (res == _cardData.res) { _comFosterBottom.m_listShowCard.selectedIndex = index; }
             loaStarCard.url = ResPathUtil.GetCardSmallPath(res);
             listItem.data = res;
         }
 
         private void OnClickShowCardListItem(EventContext context)
         {
-            CardDataManager.SetShowCard(_viewData.id, (string)((context.data as GButton).data));
+            CardDataManager.SetShowCard(_cardData.id, (string)((context.data as GButton).data));
             this.UpdateCommon();
             this.UpdateCardRes();
         }
@@ -514,20 +512,20 @@ namespace GFGGame
         {
             int itemId = int.Parse(UI_ComStarConsume.Proxy(_comFosterBottom.m_listStarConsume.GetChildAt(index)).target.data.ToString());
 
-            ViewManager.Show(ViewName.APPROACH_OF_ITEM_VIEW, new object[] { itemId, new object[] { ViewName.CARD_FOSTER_VIEW, this.viewData } });
+            ViewManager.Show(ViewName.APPROACH_OF_ITEM_VIEW, new object[] { itemId, new object[] { ViewName.CARD_FOSTER_VIEW, _cardData } });
 
         }
         private void OnClickBtnUpStar()
         {
 
-            CardStarCfg cardStarCfg = CardCfgManager.GetCardStarCfgByTypeAndRarityAndStar(_viewData.itemCfg.subType, _viewData.itemCfg.rarity, _viewData.star);
+            CardStarCfg cardStarCfg = CardCfgManager.GetCardStarCfgByTypeAndRarityAndStar(_cardData.itemCfg.subType, _cardData.itemCfg.rarity, _cardData.star);
 
-            if (_viewData.lv < cardStarCfg.needLv)
+            if (_cardData.lv < cardStarCfg.needLv)
             {
                 PromptController.Instance.ShowFloatTextPrompt("等级不足");
                 return;
             }
-            if (CardDataManager.isFullStar(_viewData.id, _viewData.star) == true)
+            if (CardDataManager.isFullStar(_cardData.id, _cardData.star) == true)
             {
                 return;
             }
@@ -553,7 +551,7 @@ namespace GFGGame
         }
         private void UpStar()
         {
-            CardStarCfg cardStarCfg = CardCfgManager.GetCardStarCfgByTypeAndRarityAndStar(_viewData.itemCfg.subType, _viewData.itemCfg.rarity, _viewData.star);
+            CardStarCfg cardStarCfg = CardCfgManager.GetCardStarCfgByTypeAndRarityAndStar(_cardData.itemCfg.subType, _cardData.itemCfg.rarity, _cardData.star);
 
             int costNeed = cardStarCfg.costNum;
             ItemDataManager.Remove(cardStarCfg.costID, costNeed);
@@ -565,41 +563,39 @@ namespace GFGGame
                 int itemNum = cardStarCfg.materiarsArr[i][1];// int.Parse(listItem.m_txtNeedCount.text);
                 ItemDataManager.Remove(itemId, itemNum);
             }
-            CardDataManager.UpCardStar(_viewData.id);
+            CardDataManager.UpCardStar(_cardData.id);
             this.UpdateCommon();
             this.UpdateUpStarView();
 
             this._selectTab = _comFosterBottom.m_ctrlTab.selectedIndex;
-            ViewManager.Show(ViewName.CARD_UP_VIEW, new object[] { _viewData.scores, "star", _viewData.star - 1, _viewData.star }, new object[] { ViewName.CARD_FOSTER_VIEW, this.viewData });
+            ViewManager.Show(ViewName.CARD_UP_VIEW, new object[] { _cardData.scores, "star", _cardData.star - 1, _cardData.star }, new object[] { ViewName.CARD_FOSTER_VIEW, _cardData });
 
         }
         /***********************************************************升技能***************************************************/
 
         private void UpdateUpSkillView()
         {
-            if (_comFosterBottom.m_listSkill.data == null)
-            {
-                _comFosterBottom.m_listSkill.data = new List<int>(SkillDataManager.Instance.dicPassivitySkill[_viewData.id].Keys);
-            }
-            _comFosterBottom.m_listSkill.numItems = SkillDataManager.Instance.dicPassivitySkill[_viewData.id].Keys.Count;
+            _comFosterBottom.m_listSkill.numItems = PassivitySkillCfgArray.Instance.GetCfgs(_cardData.id).Length;
         }
 
         private void RenderListSkilItem(int index, GObject obj)
         {
             UI_ListSkillItem item = UI_ListSkillItem.Proxy(obj);
 
-            int skillId = (_comFosterBottom.m_listSkill.data as List<int>)[index];
-            SkillData skillData = SkillDataManager.Instance.GetSkillData(_viewData.id, skillId);
-            List<PassivitySkillCfg> skillScoreCfgs = SkillDataManager.Instance.dicPassivitySkill[_viewData.id][skillId];
-            item.m_comSkill.m_loaSkill.url = ResPathUtil.GetCardSmallPath(skillScoreCfgs[0].res);
-            item.m_txtName.text = skillScoreCfgs[0].name;
-            item.m_txtLv.text = string.Format("{0}级", skillData.lv);
-            item.m_btnUp.visible = skillData.lv == skillScoreCfgs.Count ? false : true;
+            PassivitySkillCfg skillCfg = PassivitySkillCfgArray.Instance.GetCfgs(_cardData.id)[index];
+
+            int skillLv = SkillDataManager.Instance.GetSkillLv(_cardData.id, skillCfg.skillId);
+            item.m_comSkill.m_loaSkill.url = ResPathUtil.GetCardSmallPath(skillCfg.res);
+            item.m_txtName.text = skillCfg.name;
+            item.m_txtLv.text = string.Format("{0}级", skillLv);
+
+            item.m_btnUp.visible = PassivitySkillLvlCfgArray.Instance.GetCfg(skillLv + 1, skillCfg.skillId) != null;//?  skillLv == skillScoreCfgs.Count ? false : true;
+
             if (item.m_btnUp.data == null)
             {
                 item.m_btnUp.onClick.Add(() =>
                 {
-                    ViewManager.Show<CardSkillView>(new object[] { _viewData.id, skillId });
+                    ViewManager.Show<CardSkillView>(new object[] { _cardData.id, skillCfg.skillId });
                 });
             }
         }
@@ -613,7 +609,7 @@ namespace GFGGame
 
             _ui.m_t0.Play(() =>
             {
-                ViewManager.Show(ViewName.CARD_SHOW_VIEW, _viewData, new object[] { ViewName.CARD_FOSTER_VIEW, this.viewData });
+                ViewManager.Show(ViewName.CARD_SHOW_VIEW, _cardData, new object[] { ViewName.CARD_FOSTER_VIEW, _cardData });
 
             });
         }
@@ -646,7 +642,7 @@ namespace GFGGame
         }
         private void OnClickBtnStroy()
         {
-            ViewManager.Show(ViewName.CARD_STORY_VIEW, _viewData);
+            ViewManager.Show(ViewName.CARD_STORY_VIEW, _cardData);
         }
 
         private void OnChangeCtrlTab()
@@ -667,14 +663,14 @@ namespace GFGGame
         }
         private void OnItemChangeListener()
         {
-            if (!CardDataManager.isFullLv(_viewData.id, _viewData.lv, false))
+            if (!CardDataManager.isFullLv(_cardData.id, _cardData.lv, false))
             {
-                CardLvlCfg cardLvCfg = CardCfgManager.GetCardLvCfgByRarityAndLv(_viewData.itemCfg.rarity, _showLv);
-                _comFosterBottom.m_listLvConsume.numItems = GlobalCfgArray.globalCfg.materiarsArr.Length;
+                CardLvlCfg cardLvCfg = CardCfgManager.GetCardLvCfgByRarityAndLv(_cardData.itemCfg.rarity, _showLv);
+                _comFosterBottom.m_listLvConsume.numItems = GlobalCfgArray.globalCfg.upgradeCardItemsArr.Length;
             }
-            if (!CardDataManager.isFullStar(_viewData.id, _viewData.star, false))
+            if (!CardDataManager.isFullStar(_cardData.id, _cardData.star, false))
             {
-                CardStarCfg cardStarCfg = CardCfgManager.GetCardStarCfgByTypeAndRarityAndStar(_viewData.itemCfg.subType, _viewData.itemCfg.rarity, _viewData.star);
+                CardStarCfg cardStarCfg = CardCfgManager.GetCardStarCfgByTypeAndRarityAndStar(_cardData.itemCfg.subType, _cardData.itemCfg.rarity, _cardData.star);
                 _comFosterBottom.m_listStarConsume.numItems = cardStarCfg.materiarsArr.Length;
 
             }

+ 37 - 33
GameClient/Assets/Game/HotUpdate/Views/Card/CardSkillView.cs

@@ -8,8 +8,10 @@ namespace GFGGame
         // private PassivitySkillCfg _viewData;
         private int _cardId;
         private int _skillId;
+        private int _skillLv;
 
-        private PassivitySkillCfg passivitySkillCfg;
+        private PassivitySkillCfg skillCfg;
+        private PassivitySkillLvlCfg skillLvCfg;
         public override void Dispose()
         {
             base.Dispose();
@@ -36,12 +38,14 @@ namespace GFGGame
 
             _cardId = (int)(viewData as object[])[0];
             _skillId = (int)(viewData as object[])[1];
+            _skillLv = SkillDataManager.Instance.GetSkillLv(_cardId, _skillId);
 
-            SkillData skillData = SkillDataManager.Instance.GetSkillData(_cardId, _skillId);
-            passivitySkillCfg = SkillDataManager.Instance.GetPassivitySkillCfg(_cardId, _skillId, skillData.lv);
+            // SkillData skillData = SkillDataManager.Instance.GetSkillLv(_cardId, _skillId);
+            skillCfg = PassivitySkillCfgArray.Instance.GetCfg(_skillId);// SkillDataManager.Instance.GetPassivitySkillCfg(_cardId, _skillId);
+            skillLvCfg = PassivitySkillLvlCfgArray.Instance.GetCfg(_skillLv, _skillId);
 
-            _ui.m_txtName.text = passivitySkillCfg.name;
-            _ui.m_comSkill.m_loaSkill.url = ResPathUtil.GetCardSmallPath(passivitySkillCfg.res);
+            _ui.m_txtName.text = skillCfg.name;
+            _ui.m_comSkill.m_loaSkill.url = ResPathUtil.GetCardSmallPath(skillCfg.res);
 
             UpdateView();
         }
@@ -49,39 +53,38 @@ namespace GFGGame
         {
             _ui.m_c1.selectedIndex = 0;
 
-            SkillData skillData = SkillDataManager.Instance.GetSkillData(_cardId, _skillId);
-            int lv = skillData == null ? 1 : skillData.lv;
-            UpdateComLv(_ui.m_comCurLV, lv, lv + "级");
-            if (skillData != null && skillData.lv == SkillDataManager.Instance.dicPassivitySkill[_cardId][_skillId].Count) //已满级
+            int skillLv = SkillDataManager.Instance.GetSkillLv(_cardId, _skillId);
+            UpdateComLv(_ui.m_comCurLV, skillLv, skillLv + "级");
+
+            if (PassivitySkillLvlCfgArray.Instance.GetCfg(skillLv, _skillId) == null) //已满级
             {
                 _ui.m_c1.selectedIndex = 1;
                 return;
             }
-            _ui.m_comConsume.m_txtCount.text = passivitySkillCfg.costNum.ToString();
-            UpdateComLv(_ui.m_comNextLv, lv + 1, "下一级");
-            _ui.m_listConsume.numItems = passivitySkillCfg.materiarsArr.Length;
+
+            _ui.m_comConsume.m_txtCount.text = skillLvCfg.costNum.ToString();
+            UpdateComLv(_ui.m_comNextLv, skillLv + 1, "下一级");
+            _ui.m_listConsume.numItems = skillLvCfg.materiarsArr.Length;
 
         }
         private void UpdateComLv(UI_ComSkillDiscribe com, int lv, string title)
         {
             com.m_txtLv.text = title;
-            com.m_txtDiscribe.text = SkillDataManager.Instance.GetPassivitySkillCfg(_cardId, _skillId, lv).describe;
-
-
+            com.m_txtDiscribe.text = string.Format(skillCfg.describe, skillLvCfg.probability, skillLvCfg.count);
         }
         private void RenderListStarConsumeItem(int index, GObject obj)
         {
 
             UI_ComStarConsume listItem = UI_ComStarConsume.Proxy(obj);
-            SkillData skillData = SkillDataManager.Instance.GetSkillData(_cardId, _skillId);
-            passivitySkillCfg = SkillDataManager.Instance.GetPassivitySkillCfg(_cardId, _skillId, skillData.lv);
-            ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(passivitySkillCfg.materiarsArr[index][0]);
+            // int skillLv = SkillDataManager.Instance.GetSkillLv(_cardId, _skillId);
+            // skillCfg = SkillDataManager.Instance.GetPassivitySkillCfg(_cardId, _skillId, skillLv);
+            ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(skillLvCfg.materiarsArr[index][0]);
 
-            listItem.target.data = passivitySkillCfg.materiarsArr[index][0];
+            listItem.target.data = skillLvCfg.materiarsArr[index][0];
             listItem.m_loaItem.url = ResPathUtil.GetIconPath(itemCfg);
 
-            int needCount = passivitySkillCfg.materiarsArr[index][1];
-            int hasCount = ItemDataManager.GetItemNum(passivitySkillCfg.materiarsArr[index][0]);
+            int needCount = skillLvCfg.materiarsArr[index][1];
+            int hasCount = ItemDataManager.GetItemNum(skillLvCfg.materiarsArr[index][0]);
             listItem.m_txtNeedCount.text = StringUtil.GetColorText(needCount.ToString(), hasCount < needCount ? "#FCBCBA" : "#FFF8EA"); ;
             listItem.m_txtHasCount.text = hasCount.ToString();
             listItem.m_btnPlus.visible = false;
@@ -89,7 +92,7 @@ namespace GFGGame
             {
                 listItem.m_btnPlus.onClick.Add(() => OnClickBtnPlusStarConsum(index));
             }
-            listItem.m_btnPlus.data = passivitySkillCfg.materiarsArr[index][0];
+            listItem.m_btnPlus.data = skillLvCfg.materiarsArr[index][0];
 
             if (hasCount < needCount)
             {
@@ -104,17 +107,17 @@ namespace GFGGame
         }
         private void OnClickBtnUp()
         {
-            if (ItemDataManager.GetItemNum(passivitySkillCfg.costID) < passivitySkillCfg.costNum)
+            if (ItemDataManager.GetItemNum(skillLvCfg.costID) < skillLvCfg.costNum)
             {
-                ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(passivitySkillCfg.costID);
+                ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(skillLvCfg.costID);
                 PromptController.Instance.ShowFloatTextPrompt(itemCfg.name + "不足");
                 return;
             }
             bool isEnough = true;
-            for (int i = 0; i < passivitySkillCfg.materiarsArr.Length; i++)
+            for (int i = 0; i < skillLvCfg.materiarsArr.Length; i++)
             {
-                int needCount = passivitySkillCfg.materiarsArr[i][1];
-                int hasCount = ItemDataManager.GetItemNum(passivitySkillCfg.materiarsArr[i][0]);
+                int needCount = skillLvCfg.materiarsArr[i][1];
+                int hasCount = ItemDataManager.GetItemNum(skillLvCfg.materiarsArr[i][0]);
                 if (hasCount < needCount)
                 {
                     isEnough = false;
@@ -123,12 +126,13 @@ namespace GFGGame
                 }
             }
             if (!isEnough) return;
-            ItemDataManager.Remove(passivitySkillCfg.costID, passivitySkillCfg.costNum);
-            for (int i = 0; i < passivitySkillCfg.materiarsArr.Length; i++)
-            {
-                ItemDataManager.Remove(passivitySkillCfg.materiarsArr[i][0], passivitySkillCfg.materiarsArr[i][1]);
-            }
-            SkillDataManager.Instance.UpSkill(_cardId, _skillId);
+            // ItemDataManager.Remove(skillCfg.costID, skillCfg.costNum);
+            // for (int i = 0; i < skillCfg.materiarsArr.Length; i++)
+            // {
+            //     ItemDataManager.Remove(skillCfg.materiarsArr[i][0], skillCfg.materiarsArr[i][1]);
+            // }
+            // SkillDataManager.Instance.UpSkill(_cardId, _skillId);
+            CardSProxy.UpgradeCardSkill(_cardId, _skillId).Coroutine();
 
         }
         protected override void OnHide()

+ 13 - 4
GameClient/Assets/Game/HotUpdate/Views/ClothingShop/ClothingShopView.cs

@@ -106,7 +106,7 @@ namespace GFGGame
                 //this.viewData[0]=storeId(商店Id)
                 //this.viewData[1]=_scoreType(服装属性:风花雪月)
                 //this.viewData[2]=_selectedItemId
-                //this.viewData[2]=_selectedItemCount
+                //this.viewData[3]=_selectedItemCount
                 object[] objs = this.viewData as object[];
                 if (objs.Length > 0 && objs[0] != null)
                 {
@@ -127,6 +127,8 @@ namespace GFGGame
                         {
                             _selectedType = dataArray[i].typeIndex;
                             _selectedItemClothingId = dataArray[i].id;
+                            ShopCfg clothingShopCfg = ShopCfgClothingArray.Instance.GetCfg(_selectedItemClothingId);
+                            _ui.m_listType.selectedIndex = clothingShopCfg.typeIndex;
                             break;
                         }
                     }
@@ -161,7 +163,6 @@ namespace GFGGame
             }
             if (_selectedItemId > 0)
             {
-
                 ShopDataManager.Instance.BuyItem(_cfgSelected.id, _selectedItemCount, _storeId, _cfgSelected);
             }
 
@@ -274,7 +275,15 @@ namespace GFGGame
                 int itemIndex = 0;
                 if (_selectedItemId > 0 && clothingShopCfg != null)
                 {
-                    itemIndex = _dataList.IndexOf(clothingShopCfg);
+                    // itemIndex = _dataList.IndexOf(clothingShopCfg);
+                    for (int i = 0; i < _dataList.Count; i++)
+                    {
+                        if (_dataList[i].id == _selectedItemClothingId)
+                        {
+                            itemIndex = i;
+                            break;
+                        }
+                    }
                     _ui.m_listShop.ScrollToView(itemIndex < 0 ? 0 : itemIndex);
                     // _selectedItemId = 0;
                 }
@@ -354,7 +363,7 @@ namespace GFGGame
         {
             if (!ViewManager.CheckIsTopView(this.viewCom)) return;
 
-            GuideController.TryGuide(_ui.m_btnBack, ConstGuideId.BUY_CLOTHING, 4, "点击返回,回到换装");
+            GuideController.TryGuide(_ui.m_btnBack, ConstGuideId.BUY_CLOTHING, 4, "点击返回,回到换装", -1, true, 140);
         }
     }
 }

+ 1 - 1
GameClient/Assets/Game/HotUpdate/Views/ClothingSynthetic/ClothingSyntheticView.cs

@@ -374,7 +374,7 @@ namespace GFGGame
         {
             if (!ViewManager.CheckIsTopView(this.viewCom)) return;
 
-            GuideController.TryGuide(_ui.m_listClothing, ConstGuideId.CLOTHING_SYNTHETIC, 8, "找到需要合成的物品", true, 0);
+            GuideController.TryGuide(_ui.m_listClothing, ConstGuideId.CLOTHING_SYNTHETIC, 8, "找到需要合成的物品", 0);
             if (_ui.m_listMaterias.numChildren > 0)
             {
                 listTypeItem_CloSynthetic = UI_MateriasListItem.Proxy(_ui.m_listMaterias.GetChildAt(0));

+ 1 - 1
GameClient/Assets/Game/HotUpdate/Views/ClothingSynthetic/SuitSyntheticView.cs

@@ -183,7 +183,7 @@ namespace GFGGame
         {
             if (!ViewManager.CheckIsTopView(this.viewCom)) return;
 
-            GuideController.TryGuide(_ui.m_listSuit, ConstGuideId.CLOTHING_SYNTHETIC, 7, "查看已解锁的图谱", true, 0);
+            GuideController.TryGuide(_ui.m_listSuit, ConstGuideId.CLOTHING_SYNTHETIC, 7, "查看已解锁的图谱", 0);
         }
     }
 }

+ 5 - 0
GameClient/Assets/Game/HotUpdate/Views/Common/Alert/AlertWindow.cs

@@ -191,6 +191,11 @@ namespace GFGGame
             this.clickBlankToClose = value;
             return this;
         }
+        protected override void UpdateToCheckGuide(object param)
+        {
+            if (!ViewManager.CheckIsTopView(this.viewCom)) return;
+            GuideController.TryGuide(_ui.m_btnRight, ConstGuideId.LUCKY_BOX, 4, "点击确定");
+        }
 
     }
 }

+ 3 - 3
GameClient/Assets/Game/HotUpdate/Views/CommonGame/ApproachOfItemView.cs

@@ -79,14 +79,14 @@ namespace GFGGame
                 string value = infos[1];
                 var levelCfgId = int.Parse(value);
                 var levelCfg = StoryLevelCfgArray.Instance.GetCfg(levelCfgId);
-                if(levelCfg.type == ConstInstanceZonesType.Story)
+                if (levelCfg.type == ConstInstanceZonesType.Story)
                 {
                     var chapterCfg = StoryChapterCfgArray.Instance.GetCfg(levelCfg.chapterId);
                     string chapter = NumberUtil.GetChiniseNumberText(chapterCfg.order);
                     string level = NumberUtil.GetChiniseNumberText(levelCfg.order);
                     listItem.target.text = string.Format(gameFunctionCfg.name, chapter, level);
                 }
-                else if(levelCfg.type == ConstInstanceZonesType.Studio)
+                else if (levelCfg.type == ConstInstanceZonesType.Studio)
                 {
                     var studioCfg = StudioCfgArray.Instance.GetCfg(levelCfg.chapterId);
                     listItem.target.text = studioCfg.name;
@@ -165,7 +165,7 @@ namespace GFGGame
         {
             if (!ViewManager.CheckIsTopView(this.viewCom)) return;
 
-            GuideController.TryGuide(_ui.m_listApproach, ConstGuideId.BUY_CLOTHING, 2, "该物品可以在服装店购买,点开服装店看看", true, 0);
+            GuideController.TryGuide(_ui.m_listApproach, ConstGuideId.BUY_CLOTHING, 2, "该物品可以在服装店购买,点开服装店看看");
         }
     }
 }

+ 1 - 1
GameClient/Assets/Game/HotUpdate/Views/CommonGame/GetBonusView.cs

@@ -74,7 +74,7 @@ namespace GFGGame
         protected override void UpdateToCheckGuide(object param)
         {
             if (!ViewManager.CheckIsTopView(this.viewCom)) return;
-            GuideController.TryGuide(null, ConstGuideId.GET_BONUS_FIRST, 1, "恭喜你,获得了第一份奖励,点击图标可以查看物品信息,点击半透明区域继续", false, 0, true, false, (int)(this.viewCom.y + _ui.target.y + _ui.target.height));
+            GuideController.TryGuide(null, ConstGuideId.GET_BONUS_FIRST, 1, "恭喜你,获得了第一份奖励,点击图标可以查看物品信息,点击半透明区域继续", -1, true, (int)(this.viewCom.y + _ui.target.y + _ui.target.height));
         }
         protected override void TryCompleteGuide()
         {

+ 2 - 2
GameClient/Assets/Game/HotUpdate/Views/CommonGame/GetSuitItemVIew.cs

@@ -150,8 +150,8 @@ namespace GFGGame
         protected override void UpdateToCheckGuide(object param)
         {
             if (!ViewManager.CheckIsTopView(this.viewCom)) return;
-            if (guideId == 1) GuideController.TryGuide(null, ConstGuideId.GET_SUIT_ITEM_FULL, 1, "恭喜你,集齐了第一套套装,快去换装界面穿上试试吧!点击空白区域继续", false, 0, true, false, (int)(this.viewCom.height - 150));
-            if (guideId == 2) GuideController.TryGuide(null, ConstGuideId.GET_SUIT_ITEM_FIRST, 1, "恭喜你,获得了一件套装配件,集齐套装有惊喜哦!点击空白区域继续", false, 0, true, false, (int)(this.viewCom.height - 150));
+            if (guideId == 1) GuideController.TryGuide(null, ConstGuideId.GET_SUIT_ITEM_FULL, 1, "恭喜你,集齐了第一套套装,快去换装界面穿上试试吧!点击空白区域继续", -1, true, (int)(this.viewCom.height - 150));
+            if (guideId == 2) GuideController.TryGuide(null, ConstGuideId.GET_SUIT_ITEM_FIRST, 1, "恭喜你,获得了一件套装配件,集齐套装有惊喜哦!点击空白区域继续", -1, true, (int)(this.viewCom.height - 150));
         }
         protected override void TryCompleteGuide()
         {

+ 128 - 9
GameClient/Assets/Game/HotUpdate/Views/DressUp/DressUpFightView.cs

@@ -17,7 +17,9 @@ namespace GFGGame
         private GameObject _scenePrefab;
         private GameObject _sceneObject;
         private List<int> _currentList3;
+        private List<int> _currentList4;
         private int _currentMenuType;
+        private int _currentSuitId;
         private StoryLevelCfg _levelCfg;
         private StoryFightCfg _fightCfg;
 
@@ -76,6 +78,7 @@ namespace GFGGame
             _ui.m_comListType1.m_listType.onClickItem.Add(OnClickListType1Item);
             _ui.m_comListType2.m_listType.onClickItem.Add(OnClickListType2Item);
             _ui.m_partsList.m_list.onClickItem.Add(OnClickPartsListItem);
+            _ui.m_partsList2.m_list.onClickItem.Add(OnClickSuitPartsListItem);
             _ui.m_touchPad.onClick.Add(OnTouchPad);
             _ui.m_btnHint.onClick.Add(OnClickBtnHint);
             _ui.m_btnClose.onClick.Add(OnClickBtnClose);
@@ -97,6 +100,7 @@ namespace GFGGame
             EventAgent.AddEventListener(ConstMessage.DRESS_SEARCH, UpdatePartsListSort);
             // EventAgent.AddEventListener(ConstMessage.ITEM_CHANGED, UpdatePartsListSort);
             EventAgent.AddEventListener(ConstMessage.CARD_CHOOSE, StartCalculateScore);
+            _ui.m_partsList2.m_comboBoxRarity.visible = false;
         }
 
         protected override void OnShown()
@@ -107,7 +111,9 @@ namespace GFGGame
             _ui.m_txtRecommendCount.SetVar("v1", "" + GameGlobal.myNumericComponent.GetAsInt(ET.NumericType.RecommendCount)).FlushVars();
             _ui.m_btnRecommend.enabled = GameGlobal.myNumericComponent.GetAsInt(ET.NumericType.RecommendCount) > 0;
             _scoreIndex = _ui.m_partsList.m_comboBoxRarity.selectedIndex;
+            _ui.m_btnAutoPlay.selected = EquipDataCache.cacher.autoPlay;
             // _ui.m_btnAutoPlay.visible = FunctionOpenDataManager.Instance.CheckIsFunOpenById(ConstFunctionId.FUNCTION_AUTOPLAY_FIGHT, false);
+
             _levelID = (int)viewData;
             _levelCfg = StoryLevelCfgArray.Instance.GetCfg(_levelID);
             _fightCfg = StoryFightCfgArray.Instance.GetCfg(_levelCfg.fightID);
@@ -240,6 +246,8 @@ namespace GFGGame
             int id = (int)listItem.data;
             if (_currentMenuType == (int)ConstDressUpItemType.TAO_ZHUANG)
             {
+                this.showListParts2(id);
+                this.hideListParts();
                 EquipDataCache.cacher.PutOnSuitCfg(id, false, true);
             }
             else
@@ -249,12 +257,26 @@ namespace GFGGame
 
             }
             UpdateListPartsSelected();
-
+            UpdateListSuitPartsSelected();
         }
+        private void OnClickSuitPartsListItem(EventContext context)
+        {
+            GObject listItem = (GObject)context.data as GObject;
+            int id = (int)listItem.data;
+
+            EquipDataCache.cacher.TryCancelSuit(id);
+            EquipDataCache.cacher.AddOrRemove(id, true);
 
+            UpdateListSuitPartsSelected();
+        }
         private void OnTouchPad()
         {
-            if (this.currentListType == DressUpListType.List3)
+            if (this.currentListType == DressUpListType.List4)
+            {
+                this.hideListParts2();
+                this.showListParts(ConstDressUpItemType.TAO_ZHUANG);
+            }
+            else if (this.currentListType == DressUpListType.List3)
             {
                 if (_currentList2 != null)
                 {
@@ -299,7 +321,7 @@ namespace GFGGame
                     .SetRightButton(true, "好的");
                 return;
             }
-            if (CardDataManager.GetCardDicByRarity(0) != null)
+            if (CardDataManager.GetCardListByRarity(0).Count > 0)
             {
 
                 ViewManager.Show<StoryCardChoose>(_fightCfg.scoreType);
@@ -334,6 +356,7 @@ namespace GFGGame
         {
             _ui.m_comListType2.m_listType.itemRenderer = ListType2Item;
             _ui.m_partsList.m_list.itemRenderer = ListPartsItem;
+            _ui.m_partsList2.m_list.itemRenderer = ListParts2Item;
             listType1X = _ui.m_comListType1.target.x;
             partsListX = _ui.m_partsList.target.x - _ui.m_partsList.target.width;
             //一级菜单
@@ -414,6 +437,7 @@ namespace GFGGame
                 {
                     _ui.m_partsList.target.x = t.value.x;
                 });
+            UpdateListPartsSelected();
         }
         private void OnComboBoxRarityChanged()
         {
@@ -492,7 +516,25 @@ namespace GFGGame
             _ui.m_partsList.m_list.numItems = _currentList3.Count;
 
         }
+        private void UpdateSuitPartsListSort()
+        {
+            if (_currentMenuType == 0) return;
 
+            _currentList4 = new List<int>(SuitCfgManager.Instance.GetSuitItems(_currentSuitId, true));
+
+            if (DressUpMenuItemDataManager.dressFilterType == DressFilterType.Search)
+            {
+                _currentList4 = DressUpMenuItemDataManager.DressSearch(_currentList4, false);
+            }
+            else if (DressUpMenuItemDataManager.dressFilterType == DressFilterType.Filter)
+            {
+                _currentList4 = DressUpMenuItemDataManager.DressFilter(_currentList4, false);
+            }
+
+            _ui.m_partsList2.m_list.RemoveChildrenToPool();
+            _ui.m_partsList2.m_list.numItems = _currentList4.Count;
+
+        }
 
         private void hideListParts()
         {
@@ -503,7 +545,40 @@ namespace GFGGame
                     _ui.m_partsList.target.x = t.value.x;
                 });
         }
+        private void showListParts2(int suitId)
+        {
+            _currentSuitId = suitId;
+
+            _ui.m_partsList2.m_comboBoxRarity.items = new string[] { "高稀有度", "低稀有度", "最近获得" };
+
+            this.UpdateSuitPartsListSort();
+            _ui.m_partsList2.m_list.ResizeToFit(_ui.m_partsList2.m_list.numItems);
+            float maxHeight = _ui.m_partsList2.target.height - _ui.m_partsList2.m_list.y;// - DressUpView.BOTTOM_BLANK;
+            if (_ui.m_partsList2.m_list.height > maxHeight)
+            {
+                _ui.m_partsList2.m_list.height = maxHeight;
+            }
+            currentListType = DressUpListType.List4;
+            GTween.To(_ui.target.width, partsListX, 0.5f)
+                .SetTarget(_ui.m_partsList2)
+                .OnUpdate((GTweener t) =>
+                {
+                    _ui.m_partsList2.target.x = t.value.x;
+                });
 
+        }
+
+        private void hideListParts2()
+        {
+            _currentMenuType = ConstDressUpItemType.TAO_ZHUANG;
+
+            GTween.To(partsListX, _ui.target.width, 0.5f)
+                .SetTarget(_ui.m_partsList2)
+                .OnUpdate((GTweener t) =>
+                {
+                    _ui.m_partsList2.target.x = t.value.x;
+                });
+        }
         private void ListType1Item(int index, GObject item)
         {
             UI_TypeItem typeItem = UI_TypeItem.Proxy(item);
@@ -557,7 +632,37 @@ namespace GFGGame
             listItem.target.data = id;
             listItem.m_imgNeed.visible = _fightCfg.needItemId == id || _fightCfg.needSuitId == id;
         }
+        private void ListParts2Item(int index, GObject item)
+        {
+            UI_PartsListItem listItem = UI_PartsListItem.Proxy(item);
+            int id = (int)_currentList4[index];
+            string iconRes = "";
+            string partName = "";
+            string ext = "png";
+
+            ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(id);
+            iconRes = itemCfg.res;
+            partName = itemCfg.name;
+            listItem.m_iconSelected.visible = EquipDataCache.cacher.CheckDressUpItemIsOn(id);
+            RarityIconController.UpdateRarityIcon(listItem.m_rarity, id, false);
+            ext = ItemUtil.GetItemResExt(itemCfg.itemType, itemCfg.subType);
 
+            listItem.m_ScoreType.visible = true;
+            int mainScore;
+            int mainValuel;
+            ItemDataManager.GetMainScore(id, out mainScore, out mainValuel);
+            listItem.m_ScoreType.url = ResPathUtil.GetCommonGameResPath("kp_sx_" + mainScore);
+
+
+            listItem.m_icon.url = ResPathUtil.GetIconPath(iconRes, ext);
+            listItem.m_txtTitle.text = partName;
+            listItem.target.data = id;
+            listItem.m_txtScore.visible = false;
+            //listItem.m_ScoreType.visible = true;
+            listItem.m_imgNeed.visible = false;
+
+
+        }
         private void UpdateListPartsSelected()
         {
             int count = _ui.m_partsList.m_list.numChildren;
@@ -578,7 +683,21 @@ namespace GFGGame
                 }
             }
         }
+        private void UpdateListSuitPartsSelected()
+        {
+            int count = _ui.m_partsList2.m_list.numChildren;
+            for (int i = 0; i < count; i++)
+            {
+                UI_PartsListItem listItem = UI_PartsListItem.Proxy(_ui.m_partsList2.m_list.GetChildAt(i));
+                int id = (int)listItem.target.data;
 
+                bool isPutOn = EquipDataCache.cacher.CheckDressUpItemIsOn(id);//非套装金判断是否穿戴
+                bool isSuit = !DressUpMenuItemDataManager.CheckIsSceneType(id) && EquipDataCache.cacher.suitId > 0 && SuitCfgManager.Instance.GetItemSuitId(id) == EquipDataCache.cacher.suitId;//非场景类, 若当前穿戴套装要判断item是否属于套装(更换场景类不会改变套装穿戴状态)
+                bool isSceneSuit = DressUpMenuItemDataManager.CheckIsSceneType(id) && EquipDataCache.cacher.suitId > 0 && isPutOn;//场景类, 若当前穿戴套装要判断item是否属已穿戴
+                listItem.m_iconSelected.visible = isPutOn || isSuit || isSceneSuit;
+
+            }
+        }
         private void ShowTaskHint()
         {
             _ui.m_groupTaskHint.visible = true;
@@ -668,7 +787,7 @@ namespace GFGGame
         {
 
             if (!ViewManager.CheckIsTopView(this.viewCom)) return;
-            if (listTypeItem_SingleFight == null && GuideDataManager.GetGuideCountCopy(ConstGuideId.SINGLE_FIGHT) <= 0 || listTypeItem_BuyClothing == null && GuideDataManager.GetGuideCountCopy(ConstGuideId.BUY_CLOTHING) <= 0)
+            if (listTypeItem_SingleFight == null && GuideDataManager.IsGuideFinish(ConstGuideId.SINGLE_FIGHT) <= 0 || listTypeItem_BuyClothing == null && GuideDataManager.IsGuideFinish(ConstGuideId.BUY_CLOTHING) <= 0)
             {
                 int len = _ui.m_comListType1.m_listType.numChildren;
                 for (int i = 0; i < len; i++)
@@ -678,7 +797,7 @@ namespace GFGGame
                     {
                         int menuID = (int)item.target.data;
                         DressUpMenuItemCfg1 dressUpMenuItemCfg1 = DressUpMenuItemCfg1Array.Instance.GetCfg(menuID);
-                        if (GuideDataManager.GetGuideCountCopy(ConstGuideId.SINGLE_FIGHT) <= 0)
+                        if (GuideDataManager.IsGuideFinish(ConstGuideId.SINGLE_FIGHT) <= 0)
                         {
 
                             if (dressUpMenuItemCfg1.type == ConstDressUpItemType.LIAN_YI_QUN)
@@ -688,7 +807,7 @@ namespace GFGGame
                                 break;
                             }
                         }
-                        else if (GuideDataManager.GetGuideCountCopy(ConstGuideId.BUY_CLOTHING) <= 0)
+                        else if (GuideDataManager.IsGuideFinish(ConstGuideId.BUY_CLOTHING) <= 0)
                         {
                             int type = 0;
                             if (_fightCfg.needItemId > 0) type = ItemUtilCS.GetItemSubType(_fightCfg.needItemId);
@@ -711,9 +830,9 @@ namespace GFGGame
             GuideController.TryGuide(_ui.m_partsList.m_list, ConstGuideId.SINGLE_FIGHT, 4, "找到这条裙子了,换上看看吧");
             GuideController.TryGuide(_ui.m_btnNext, ConstGuideId.SINGLE_FIGHT, 5, "接下来验证一下,换上的服饰是否符合需求");
 
-            GuideController.TryGuide(_ui.m_compNeed.target, ConstGuideId.BUY_CLOTHING, 1, "当提示有“必需品”时,需要穿上对应物品才能通关");
-            if (listTypeItem_BuyClothing != null) GuideController.TryGuide(listTypeItem_BuyClothing.target, ConstGuideId.BUY_CLOTHING, 5, "在相应分类里就可以找到必需品啦");
-            GuideController.TryGuide(_ui.m_partsList.m_list, ConstGuideId.BUY_CLOTHING, 6, "点击换上吧", true, 0);
+            GuideController.TryGuide(_ui.m_compNeed.target, ConstGuideId.BUY_CLOTHING, 1, "当提示有“必需品”时,需要穿上对应物品才能通关", -1, true, 170);
+            if (listTypeItem_BuyClothing != null) GuideController.TryGuide(listTypeItem_BuyClothing.target, ConstGuideId.BUY_CLOTHING, 5, "在相应分类里就可以找到必需品啦", -1, true, 170);
+            GuideController.TryGuide(_ui.m_partsList.m_list, ConstGuideId.BUY_CLOTHING, 6, "点击换上吧", 0, true, 170);
             GuideController.TryCompleteGuide(ConstGuideId.BUY_CLOTHING, 6);
 
             GuideController.TryGuide(_ui.m_btnHint, ConstGuideId.TARGET_FIGHT, 1, "这次换装需要获得别人的认可呢");

+ 2 - 1
GameClient/Assets/Game/HotUpdate/Views/DressUp/DressUpListType.cs

@@ -4,6 +4,7 @@ namespace GFGGame
     {
         List1,
         List2,
-        List3
+        List3,
+        List4
     }
 }

+ 150 - 5
GameClient/Assets/Game/HotUpdate/Views/DressUp/DressUpView.cs

@@ -16,11 +16,16 @@ namespace GFGGame
         private float listType1X = 0;
         private float partsListX = 0;
         private DressUpListType currentListType;
+        /// <summary>
+        /// 子菜单列表
+        /// </summary>
         private int[] _currentList2;
         private GameObject _scenePrefab;
         private GameObject _sceneObject;
         private List<int> _currentList3;
+        private List<int> _currentList4;
         private int _currentMenuType;
+        private int _currentSuitId;
         private int _rarityIndex = SORT_BY_HIGH_RARITY;
 
         private UI_TypeItem listTypeItem_FreedomDress;
@@ -63,6 +68,7 @@ namespace GFGGame
             _ui.m_comListType1.m_listType.onClickItem.Add(OnClickListType1Item);
             _ui.m_comListType2.m_listType.onClickItem.Add(OnClickListType2Item);
             _ui.m_partsList.m_list.onClickItem.Add(OnClickPartsListItem);
+            _ui.m_partsList2.m_list.onClickItem.Add(OnClickSuitPartsListItem);
             _ui.m_touchPad.onClick.Add(OnTouchPad);
             _ui.m_btnDelete.onClick.Add(OnClickBtnDelete);
             _ui.m_btnSave.onClick.Add(OnClickBtnSave);
@@ -78,7 +84,7 @@ namespace GFGGame
             EventAgent.AddEventListener(ConstMessage.DRESS_FILTER, UpdatePartsListSort);
             EventAgent.AddEventListener(ConstMessage.DRESS_SEARCH, UpdatePartsListSort);
             EventAgent.AddEventListener(ConstMessage.CLOSE_PHOTOGRAPHVIEW, UpdateScene);
-
+            _ui.m_partsList2.m_comboBoxRarity.visible = false;
         }
 
         protected override void OnShown()
@@ -172,6 +178,8 @@ namespace GFGGame
             int id = (int)listItem.data;
             if (_currentMenuType == (int)ConstDressUpItemType.TAO_ZHUANG)
             {
+                this.showListParts2(id);
+                this.hideListParts();
                 EquipDataCache.cacher.PutOnSuitCfg(id, true, false);
                 UpdateBtnAction();
             }
@@ -181,11 +189,28 @@ namespace GFGGame
                 EquipDataCache.cacher.AddOrRemove(id, true);
             }
             UpdateListPartsSelected();
+            UpdateListSuitPartsSelected();
+
         }
+        private void OnClickSuitPartsListItem(EventContext context)
+        {
+            GObject listItem = (GObject)context.data as GObject;
+            int id = (int)listItem.data;
 
+            EquipDataCache.cacher.TryCancelSuit(id);
+            EquipDataCache.cacher.AddOrRemove(id, true);
+
+            UpdateListSuitPartsSelected();
+            UpdateBtnAction();
+        }
         private void OnTouchPad()
         {
-            if (this.currentListType == DressUpListType.List3)
+            if (this.currentListType == DressUpListType.List4)
+            {
+                this.hideListParts2();
+                this.showListParts(ConstDressUpItemType.TAO_ZHUANG);
+            }
+            else if (this.currentListType == DressUpListType.List3)
             {
                 if (_currentList2 != null)
                 {
@@ -239,6 +264,7 @@ namespace GFGGame
         {
             _ui.m_comListType2.m_listType.itemRenderer = ListType2Item;
             _ui.m_partsList.m_list.itemRenderer = ListPartsItem;
+            _ui.m_partsList2.m_list.itemRenderer = ListParts2Item;
             listType1X = _ui.m_comListType1.target.x;
             partsListX = _ui.m_partsList.target.x - _ui.m_partsList.target.width - DressUpView.RIGHT_BLANK;
             //一级菜单
@@ -339,6 +365,8 @@ namespace GFGGame
                     _ui.m_partsList.target.x = t.value.x;
                 });
             UpdateBtnAction();
+            UpdateListPartsSelected();
+
         }
 
         private void hideListParts()
@@ -353,6 +381,46 @@ namespace GFGGame
                 });
         }
 
+
+
+        private void showListParts2(int suitId)
+        {
+            _currentSuitId = suitId;
+
+            _ui.m_partsList2.m_comboBoxRarity.items = new string[] { "高稀有度", "低稀有度", "最近获得" };
+            if (_rarityIndex >= SORT_BY_GET_TIME)
+            {
+                _rarityIndex = SORT_BY_HIGH_RARITY;
+            }
+            this.UpdateSuitPartsListSort();
+            _ui.m_partsList2.m_list.ResizeToFit(_ui.m_partsList2.m_list.numItems);
+            float maxHeight = _ui.m_partsList2.target.height - _ui.m_partsList2.m_list.y;// - DressUpView.BOTTOM_BLANK;
+            if (_ui.m_partsList2.m_list.height > maxHeight)
+            {
+                _ui.m_partsList2.m_list.height = maxHeight;
+            }
+            currentListType = DressUpListType.List4;
+            GTween.To(_ui.target.width, partsListX, 0.5f)
+                .SetTarget(_ui.m_partsList2)
+                .OnUpdate((GTweener t) =>
+                {
+                    _ui.m_partsList2.target.x = t.value.x;
+                });
+            UpdateBtnAction();
+        }
+
+        private void hideListParts2()
+        {
+            _currentMenuType = ConstDressUpItemType.TAO_ZHUANG;
+            UpdateBtnAction();
+            GTween.To(partsListX, _ui.target.width, 0.5f)
+                .SetTarget(_ui.m_partsList2)
+                .OnUpdate((GTweener t) =>
+                {
+                    _ui.m_partsList2.target.x = t.value.x;
+                });
+        }
+        /********************************************************************************************************************************************/
         private void ListType1Item(int index, GObject item)
         {
             UI_TypeItem typeItem = UI_TypeItem.Proxy(item);
@@ -416,6 +484,37 @@ namespace GFGGame
 
         }
 
+        private void ListParts2Item(int index, GObject item)
+        {
+            UI_PartsListItem listItem = UI_PartsListItem.Proxy(item);
+            int id = (int)_currentList4[index];
+            string iconRes = "";
+            string partName = "";
+            string ext = "png";
+
+            ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(id);
+            iconRes = itemCfg.res;
+            partName = itemCfg.name;
+            listItem.m_iconSelected.visible = EquipDataCache.cacher.CheckDressUpItemIsOn(id);
+            RarityIconController.UpdateRarityIcon(listItem.m_rarity, id, false);
+            ext = ItemUtil.GetItemResExt(itemCfg.itemType, itemCfg.subType);
+
+            listItem.m_ScoreType.visible = true;
+            int mainScore;
+            int mainValuel;
+            ItemDataManager.GetMainScore(id, out mainScore, out mainValuel);
+            listItem.m_ScoreType.url = ResPathUtil.GetCommonGameResPath("kp_sx_" + mainScore);
+
+
+            listItem.m_icon.url = ResPathUtil.GetIconPath(iconRes, ext);
+            listItem.m_txtTitle.text = partName;
+            listItem.target.data = id;
+            listItem.m_txtScore.visible = false;
+            //listItem.m_ScoreType.visible = true;
+            listItem.m_imgNeed.visible = false;
+
+
+        }
         private void UpdateListPartsSelected()
         {
             int count = _ui.m_partsList.m_list.numChildren;
@@ -436,6 +535,21 @@ namespace GFGGame
                 }
             }
         }
+        private void UpdateListSuitPartsSelected()
+        {
+            int count = _ui.m_partsList2.m_list.numChildren;
+            for (int i = 0; i < count; i++)
+            {
+                UI_PartsListItem listItem = UI_PartsListItem.Proxy(_ui.m_partsList2.m_list.GetChildAt(i));
+                int id = (int)listItem.target.data;
+
+                bool isPutOn = EquipDataCache.cacher.CheckDressUpItemIsOn(id);//非套装金判断是否穿戴
+                bool isSuit = !DressUpMenuItemDataManager.CheckIsSceneType(id) && EquipDataCache.cacher.suitId > 0 && SuitCfgManager.Instance.GetItemSuitId(id) == EquipDataCache.cacher.suitId;//非场景类, 若当前穿戴套装要判断item是否属于套装(更换场景类不会改变套装穿戴状态)
+                bool isSceneSuit = DressUpMenuItemDataManager.CheckIsSceneType(id) && EquipDataCache.cacher.suitId > 0 && isPutOn;//场景类, 若当前穿戴套装要判断item是否属已穿戴
+                listItem.m_iconSelected.visible = isPutOn || isSuit || isSceneSuit;
+
+            }
+        }
 
         private void UpdatePartsListSort()
         {
@@ -488,10 +602,41 @@ namespace GFGGame
 
         }
 
+        private void UpdateSuitPartsListSort()
+        {
+            if (_currentMenuType == 0) return;
+
+            _currentList4 = new List<int>(SuitCfgManager.Instance.GetSuitItems(_currentSuitId));
+            if (_rarityIndex == SORT_BY_HIGH_RARITY)
+            {
+                _currentList4 = DressUpMenuItemDataManager.SortItemListByHighRarity(_currentList4);
+            }
+            else if (_rarityIndex == SORT_BY_LOW_RARITY)
+            {
+                _currentList4 = DressUpMenuItemDataManager.SortItemListByLowRarity(_currentList4);
+            }
+            else
+            {
+                _currentList4.Reverse();
+            }
+
+            if (DressUpMenuItemDataManager.dressFilterType == DressFilterType.Search)
+            {
+                _currentList4 = DressUpMenuItemDataManager.DressSearch(_currentList4, false);
+            }
+            else if (DressUpMenuItemDataManager.dressFilterType == DressFilterType.Filter)
+            {
+                _currentList4 = DressUpMenuItemDataManager.DressFilter(_currentList4, false);
+            }
+
+            _ui.m_partsList2.m_list.RemoveChildrenToPool();
+            _ui.m_partsList2.m_list.numItems = _currentList4.Count;
+
+        }
 
         private void UpdateBtnAction()
         {
-            _ui.m_btnAction.visible = (_currentMenuType == ConstDressUpItemType.TAO_ZHUANG);
+            _ui.m_btnAction.visible = (_currentMenuType == ConstDressUpItemType.TAO_ZHUANG) || this.currentListType == DressUpListType.List4;
             if (_ui.m_btnAction.visible)
             {
                 _ui.m_btnAction.grayed = !EquipDataCache.cacher.HasSuitPicRes;
@@ -549,7 +694,7 @@ namespace GFGGame
         protected override void UpdateToCheckGuide(object param)
         {
             if (!ViewManager.CheckIsTopView(this.viewCom)) return;
-            if (listTypeItem_FreedomDress == null && GuideDataManager.GetGuideCountCopy(ConstGuideId.FREEDOM_DRESS) <= 0)
+            if (listTypeItem_FreedomDress == null && GuideDataManager.IsGuideFinish(ConstGuideId.FREEDOM_DRESS) <= 0)
             {
                 int len = _ui.m_comListType1.m_listType.numChildren;
                 for (int i = 0; i < len; i++)
@@ -570,7 +715,7 @@ namespace GFGGame
                 }
             }
             if (listTypeItem_FreedomDress != null) GuideController.TryGuide(listTypeItem_FreedomDress.target, ConstGuideId.FREEDOM_DRESS, 3, "套装分类里,可以查看集齐成套的服饰");
-            GuideController.TryGuide(_ui.m_partsList.m_list, ConstGuideId.FREEDOM_DRESS, 4, "点击一键换上", true, 0);
+            GuideController.TryGuide(_ui.m_partsList.m_list, ConstGuideId.FREEDOM_DRESS, 4, "点击一键换上", 0);
             GuideController.TryGuide(_ui.m_btnSave, ConstGuideId.FREEDOM_DRESS, 5, "搭配好的服饰,可以保存随时查看");
             GuideController.TryGuide(_ui.m_btnHome, ConstGuideId.FREEDOM_DRESS, 6, "保存成功,回主界面看看吧");
             GuideController.TryCompleteGuide(ConstGuideId.FREEDOM_DRESS, 6);

+ 1 - 1
GameClient/Assets/Game/HotUpdate/Views/DressUp/PhotographView.cs

@@ -128,7 +128,7 @@ namespace GFGGame
             // }
             PhotographDataManager.Instance.SetLayer(null, "refresh");
 
-            if (GuideDataManager.GetGuideCountCopy(ConstGuideId.PHOTOGRAPH) > 0)
+            if (GuideDataManager.IsGuideFinish(ConstGuideId.PHOTOGRAPH) > 0)
             {
                 _ui.m_loaGuide.enabled = false;
                 _ui.m_loaGuide1.enabled = false;

+ 49 - 59
GameClient/Assets/Game/HotUpdate/Views/Guide/GuideView.cs

@@ -1,3 +1,4 @@
+
 using UI.Guide;
 using FairyGUI;
 using UnityEngine;
@@ -13,6 +14,7 @@ namespace GFGGame
         private GObject guideTarget = null;
         private float devWidth;
         private float devHeight;
+        private int yTxt;
 
         private int guideId;
         private int guideIndex;
@@ -22,9 +24,7 @@ namespace GFGGame
         private GoWrapper _wrapper;
         public override void Dispose()
         {
-            SceneController.DestroyObjectFromView(_gameObject);
             base.Dispose();
-
         }
 
         protected override void OnInit()
@@ -37,6 +37,8 @@ namespace GFGGame
             this.clickBlankToClose = false;
             // this.layer = ConstViewLayer.TOP;
             isfullScreen = true;
+            _ui.m_rectFrameTemp.visible = false;
+            _ui.m_rectFrame.target.visible = false;
             _ui.m_rectFrame.target.AddRelation(_ui.m_mask.m_guideArea, RelationType.Width);
             _ui.m_rectFrame.target.AddRelation(_ui.m_mask.m_guideArea, RelationType.Height);
             _ui.m_rectFrame.target.AddRelation(_ui.m_mask.m_guideArea, RelationType.Left_Left);
@@ -46,7 +48,7 @@ namespace GFGGame
                 if (isOptionalGuide) this.Hide();
             });
             string resPath0 = ResPathUtil.GetViewEffectPath("ui_yd/ui_yd_y", "ui_yd_y");
-            SceneController.AddObjectToView(_gameObject, _wrapper, _ui.m_holder, resPath0, out _gameObject, out _wrapper);
+            SceneController.AddObjectToView(_gameObject, _wrapper, _ui.m_comHolder.m_holder, resPath0, out _gameObject, out _wrapper);
         }
 
         protected override void OnShown()
@@ -54,20 +56,15 @@ namespace GFGGame
             base.OnShown();
             List<object> dataList = viewData as List<object>;
             guideTarget = dataList[0] as GObject;
-            _needUpdate = (bool)dataList[1];
-            string txtContent = (string)dataList[2];
-            int yTxt = (int)dataList[3];
-            isOptionalGuide = (bool)dataList[4];
-            devWidth = (float)dataList[5];
-            devHeight = (float)dataList[6];
+            string txtContent = (string)dataList[1];
+            yTxt = (int)dataList[2];
+            isOptionalGuide = (bool)dataList[3];
+            devWidth = (float)dataList[4];
+            devHeight = (float)dataList[5];
 
+            guideId = (int)dataList[6];
+            guideIndex = (int)dataList[7];
 
-
-            if (GuideController.useNewGuide)
-            {
-                guideId = (int)dataList[7];
-                guideIndex = (int)dataList[8];
-            }
             if (txtContent != null && txtContent.Length > 0)
             {
                 _ui.m_compTxt.m_txt.text = txtContent;
@@ -86,43 +83,38 @@ namespace GFGGame
                 _ui.m_compTxt.target.visible = false;
             }
 
-            // _ui.m_rectFrameTemp.width = _ui.m_mask.target.width;
-            // _ui.m_rectFrameTemp.height = _ui.m_mask.target.height;
-            // _ui.m_rectFrameTemp.x = 0;
-            // _ui.m_rectFrameTemp.y = 0;
+            _ui.m_rectFrameTemp.width = _ui.m_mask.target.width;
+            _ui.m_rectFrameTemp.height = _ui.m_mask.target.height;
+            _ui.m_rectFrameTemp.x = 0;
+            _ui.m_rectFrameTemp.y = 0;
             if (guideTarget != null)
             {
                 UpdateGuideRect();
-                // _needUpdate = true;
-                // if (_needUpdate)
-                // {
-                //     Timers.inst.AddUpdate(UpdateGuideRect);
-                // }
+                Timers.inst.AddUpdate(UpdateGuideRect);
                 _ui.m_mask.target.visible = true;
+                _ui.m_comHolder.target.visible = true;
+
+                guideTarget.onClick.Add(OnClickTarget);
+                if (guideTarget == null) OnClickTarget();
 
-                if (GuideController.useNewGuide)
-                {
-                    guideTarget.onClick.Add(OnClickTarget);
-                    if (guideTarget == null) OnClickTarget();
-                }
             }
             else
             {
-
+                _ui.m_comHolder.target.visible = false;
                 _ui.m_mask.target.visible = false;
-                _ui.m_compTxt.target.y = Math.Min(yTxt, GRoot.inst.height - _ui.m_compTxt.target.height - 3);
             }
-            // _ui.m_rectFrame.target.visible = _ui.m_mask.target.visible;
-            _ui.m_rectFrame.target.visible = false;
-            // _ui.m_rectFrameTemp.visible = _ui.m_mask.target.visible;
+            _ui.m_compTxt.target.y = Math.Min(yTxt, GRoot.inst.height - _ui.m_compTxt.target.height - 3);
+            // _ui.m_rectFrame.target.visible = true;
         }
 
         protected override void OnHide()
         {
-            // Timers.inst.Remove(UpdateGuideRect);
+            Timers.inst.Remove(UpdateGuideRect);
             base.OnHide();
-            _ui.m_holder.visible = false;
-            OnClickTarget();
+            if (guideTarget == null)
+            {
+                OnClickTarget();
+            }
             guideTarget = null;
 
         }
@@ -132,41 +124,39 @@ namespace GFGGame
         {
             if (guideTarget != null)
             {
+
                 Rect rect = guideTarget.TransformRect(new Rect(0 + devWidth, devHeight, guideTarget.width, guideTarget.height), _ui.target);
+
                 _ui.m_mask.m_guideArea.size = new Vector2((int)rect.size.x, (int)rect.size.y);
                 _ui.m_mask.m_guideArea.position = new Vector2((int)rect.position.x, (int)rect.position.y);
-                float x = _ui.m_mask.m_guideArea.position.x + _ui.m_mask.m_guideArea.size.x * 0.5f;
-                float y = _ui.m_mask.m_guideArea.position.y + _ui.m_mask.m_guideArea.size.y * 0.5f;
-                _ui.m_holder.position = new Vector2(x, y);
-                int padding = 30;
+
+
+                _ui.m_comHolder.target.position = _ui.m_mask.m_guideArea.position;
+                _ui.m_comHolder.target.size = _ui.m_mask.m_guideArea.size;
+                int padding = 90;
                 bool atBottom = _ui.m_mask.m_guideArea.y + _ui.m_mask.m_guideArea.height + padding + _ui.m_compTxt.target.height + padding > GRoot.inst.height;
-                if (atBottom)
+                if (yTxt == 0)
                 {
-                    _ui.m_compTxt.target.y = _ui.m_mask.m_guideArea.y - _ui.m_compTxt.target.height - padding;
+                    if (atBottom)
+                    {
+                        _ui.m_compTxt.target.y = _ui.m_mask.m_guideArea.y - _ui.m_compTxt.target.height - padding;
+                    }
+                    else
+                    {
+                        _ui.m_compTxt.target.y = _ui.m_mask.m_guideArea.y + _ui.m_mask.m_guideArea.height + padding;
+                    }
                 }
-                else
+                int targetWidth = 20;
+                if (Mathf.Abs(_ui.m_rectFrameTemp.width - _ui.m_rectFrame.target.width) <= targetWidth && Mathf.Abs(_ui.m_rectFrameTemp.height - _ui.m_rectFrame.target.height) <= targetWidth)
                 {
-                    _ui.m_compTxt.target.y = _ui.m_mask.m_guideArea.y + _ui.m_mask.m_guideArea.height + padding;
+                    Timers.inst.Remove(UpdateGuideRect);
                 }
-                // int targetWidth = 20;
-                // if (Mathf.Abs(_ui.m_rectFrameTemp.width - _ui.m_rectFrame.target.width) > targetWidth && Mathf.Abs(_ui.m_rectFrameTemp.height - _ui.m_rectFrame.target.height) > targetWidth)
-                // {
-                //     _ui.m_rectFrameTemp.visible = true;
-                //     float duration = 0.5f;
-                //     _ui.m_rectFrameTemp.TweenResize(new Vector2(_ui.m_rectFrame.target.width, _ui.m_rectFrame.target.height), duration);
-                //     _ui.m_rectFrameTemp.TweenMove(new Vector2(_ui.m_rectFrame.target.x, _ui.m_rectFrame.target.y), duration);
-                // }
-                // else
-                // {
-                _ui.m_rectFrameTemp.visible = false;
-                // _ui.m_rectFrame.target.visible = _ui.m_mask.target.visible;
-                _ui.m_holder.visible = _ui.m_mask.target.visible;
-                // }
             }
         }
         private void OnClickTarget()
         {
             // if (guideTarget == null) return;
+            // if (!ViewManager.CheckIsTopView(this.viewCom)) return;
             if (guideTarget != null) guideTarget.onClick.Remove(OnClickTarget);
             GuideController.TryCompleteGuideIndex(guideId, guideIndex);
         }

+ 5 - 5
GameClient/Assets/Game/HotUpdate/Views/LuckyBox/LuckyBoxStarView.cs

@@ -59,7 +59,7 @@ namespace GFGGame
             this.viewCom = _ui.target;
             isfullScreen = true;
 
-            _ui.m_btnBack.visible = true;
+            _ui.m_btnBack.visible = false;
             _ui.m_btnBack.onClick.Add(OnClickBtnBack);
 
 
@@ -80,7 +80,7 @@ namespace GFGGame
 
         private void ResetStartView()
         {
-            showGuide = GuideDataManager.GetGuideCountCopy(ConstGuideId.LUCKY_BOX) <= 0;
+            showGuide = GuideDataManager.IsGuideFinish(ConstGuideId.LUCKY_BOX) <= 0;
 
             curComStar = null;
             comStars.Clear();
@@ -251,7 +251,7 @@ namespace GFGGame
         {
 
             if (!ViewManager.CheckIsTopView(this.viewCom)) return;
-            GuideController.TryGuide(null, ConstGuideId.LUCKY_BOX, 4, "点击将星星链接在一起", false, 0, true, false, (int)(this.viewCom.height - 150));
+            GuideController.TryGuide(null, ConstGuideId.LUCKY_BOX, 5, "点击将星星链接在一起", -1, true, (int)(this.viewCom.height - 150));
             TryCompleteGuide();
         }
         protected override void TryCompleteGuide()
@@ -260,8 +260,8 @@ namespace GFGGame
             {
                 GuideCfg cfg = GuideCfgArray.Instance.GetCfg(ConstGuideId.LUCKY_BOX);
 
-                GuideController.TryCompleteGuideIndex(cfg.id, 4);
-                GuideController.TryCompleteGuide(ConstGuideId.LUCKY_BOX, 4);
+                GuideController.TryCompleteGuideIndex(cfg.id, 5);
+                GuideController.TryCompleteGuide(ConstGuideId.LUCKY_BOX, 5);
             }
             else
             {

+ 3 - 3
GameClient/Assets/Game/HotUpdate/Views/MainStory/StoryCardChoose.cs

@@ -39,7 +39,7 @@ namespace GFGGame
         {
             base.OnShown();
             _scoreType = (int)viewData;
-            cardList = CardDataManager.CardDicToList(CardDataManager.GetCardDicByRarity(0));
+            cardList = CardDataManager.GetCardListByRarity(0);//.CardDicToList(CardDataManager.GetCardDicByRarity(0));
             cardList = SortCardList(cardList);
             _ui.m_listCard.numItems = cardList.Count;
             _ui.m_listCard.selectedIndex = 0;
@@ -60,7 +60,7 @@ namespace GFGGame
             item.GetChild("txtName").asTextField.text = cardList[index].itemCfg.name;
             item.GetChild("comCardMask").asCom.GetChild("loaCard").asLoader.url = ResPathUtil.GetCardSmallPath(cardList[index].res);
             item.GetChild("txtLv").asTextField.text = string.Format("Lv.\n{0}", cardList[index].lv);
-            item.GetChild("loaRarity").asLoader.url = ResPathUtil.GetCommonGameResPath("kp_sxing_x_" + (5 - cardList[index].itemCfg.rarity));
+            item.GetChild("loaRarity").asLoader.url = ResPathUtil.GetCommonGameResPath("kp_sxing_x_" +cardList[index].itemCfg.rarity);
             UI_ComStar comStar = UI_ComStar.Proxy(item.GetChild("comStar").asCom);
             comStar.m_c1.selectedIndex = cardList[index].star;
 
@@ -114,7 +114,7 @@ namespace GFGGame
         {
             if (!ViewManager.CheckIsTopView(this.viewCom)) return;
 
-            GuideController.TryGuide(_ui.m_listCard, ConstGuideId.SKILL_CARD_FIGHT, 1, "选择一张合适的词牌,增加过关战斗力", true, 0);
+            GuideController.TryGuide(_ui.m_listCard, ConstGuideId.SKILL_CARD_FIGHT, 1, "选择一张合适的词牌,增加过关战斗力", 0);
             GuideController.TryCompleteGuide(ConstGuideId.SKILL_CARD_FIGHT, 1);
         }
     }

+ 1 - 1
GameClient/Assets/Game/HotUpdate/Views/MainStory/StoryChapterView.cs

@@ -247,7 +247,7 @@ namespace GFGGame
             if (!ViewManager.CheckIsTopView(this.viewCom)) return;
             GuideController.TryGuide(_unPasslevelItem, ConstGuideId.START_STORY, 1, "点击关卡,开启新历程");
 
-            GuideController.TryGuide(_unPasslevelItem, ConstGuideId.SINGLE_FIGHT, 1, "遇到意外事件了,暂时解释不清,先按请求换上服饰吧");
+            GuideController.TryGuide(_unPasslevelItem, ConstGuideId.SINGLE_FIGHT, 1, "遇到意外事件了,暂时解释不清,先按请求换上服饰吧", -1, true, -110);
             GuideController.TryGuide(_ui.m_btnHome, ConstGuideId.LUCKY_BOX, 1, "点击返回主界面");
 
             GuideController.TryGuide(_unPasslevelItem, ConstGuideId.CLOTHING_SYNTHETIC, 1, "点击下一关");

+ 9 - 2
GameClient/Assets/Game/HotUpdate/Views/MainStory/StoryFightSingleScoreView.cs

@@ -20,6 +20,8 @@ namespace GFGGame
         private const int _range = 100;//圆圈随机范围
         private float _time = 0;// 登峰造极按住的时间
 
+        private float _playTime = 1.25f;
+
         protected override void OnInit()
         {
             base.OnInit();
@@ -63,6 +65,11 @@ namespace GFGGame
             _prefectCount = 0;
             _mainScore = ScoreSystemData.Instance.GetMainScore();
 
+            if (_index == 0 && GuideDataManager.IsGuideFinish(ConstGuideId.SINGLE_FIGHT) <= 0)//引导中禁止自动战斗
+            {
+                EquipDataCache.cacher.fightSpeed = 1;
+                EquipDataCache.cacher.autoPlay = false;
+            }
             Timers.inst.Add(0.5f, 1, (param) =>
             {
                 SkillScoreStart(null);
@@ -98,10 +105,10 @@ namespace GFGGame
             _ui.m_comClickCircle.target.visible = true;
 
 
-            if (_index == 0 && GuideDataManager.GetGuideCountCopy(ConstGuideId.SINGLE_FIGHT) <= 0)
+            if (_index == 0 && GuideDataManager.IsGuideFinish(ConstGuideId.SINGLE_FIGHT) <= 0)
             {
                 _ui.m_comClickCircle.m_loaCircle.touchable = false;
-                _ui.m_comClickCircle.m_t0.Play(1, 0, 0, 0.5f, () =>
+                _ui.m_comClickCircle.m_t0.Play(1, 0, 0, _playTime / 2, () =>
                 {
                     _ui.m_comClickCircle.m_loaCircle.touchable = true;
                 });

+ 19 - 11
GameClient/Assets/Game/HotUpdate/Views/MainStory/StoryFightTargetScoreView.cs

@@ -83,16 +83,19 @@ namespace GFGGame
             });
             _ui.m_comMineCircle.target.onClick.Add(() =>
             {
-                if (_index == 0 && GuideDataManager.GetGuideCountCopy(ConstGuideId.TARGET_FIGHT) <= 0 && playStop)
+                _ui.m_btnSkill0.target.touchable = true;
+            });
+
+            _ui.m_btnSkill0.target.onClick.Add(() =>
+            {
+                if (_index == 0 && GuideDataManager.IsGuideFinish(ConstGuideId.TARGET_FIGHT) <= 0 && playStop)
                 {
                     playStop = false;
-                    _ui.m_comTargetCircle.target.visible = false;
-                    _ui.m_comMineCircle.target.visible = false;
+                    // _ui.m_comTargetCircle.target.visible = false;
+                    // _ui.m_comMineCircle.target.visible = false;
 
                     _ui.m_comMineCircle.m_t0.Play(CircleScoreEnd);
                     _ui.m_comTargetCircle.m_t0.Play();
-                    _ui.m_btnSkill0.target.touchable = true;
-
                 }
             });
             _ui.m_btnSpeedUp.onClick.Add(OnBtnSpeedUp);
@@ -112,13 +115,14 @@ namespace GFGGame
             StoryLevelCfg levelCfg = StoryLevelCfgArray.Instance.GetCfg(InstanceZonesDataManager.currentLevelCfgId);
             StoryFightCfg fightCfg = StoryFightCfgArray.Instance.GetCfg(levelCfg.fightID);
             SceneController.UpdateFightTarget(fightCfg.targetRes, _sceneObject);
+
+            UpdateNormal();
+            AddEffect();
             _ui.m_selfName.m_txtName.text = RoleDataManager.roleName;
             _ui.m_targetName.m_txtName.text = fightCfg.targetName;
             _ui.m_btnSpeedUp.visible = EquipDataCache.cacher.autoPlay;
             _ui.m_btnSpeedUp.title = "x" + EquipDataCache.cacher.fightSpeed;
 
-            UpdateNormal();
-            AddEffect();
 
             ScoreSystemData.Instance.SetEquipDicWithType();
             _npcSkillDic = SkillDataManager.Instance.GetNpcSkill();
@@ -128,7 +132,7 @@ namespace GFGGame
             _mainScore = ScoreSystemData.Instance.GetMainScore();
             _targetMainScore = fightCfg.targetMainScore;
 
-            if (_index == 0 && GuideDataManager.GetGuideCountCopy(ConstGuideId.TARGET_FIGHT) <= 0)
+            if (_index == 0 && GuideDataManager.IsGuideFinish(ConstGuideId.TARGET_FIGHT) <= 0)
             {
                 _ui.m_btnSkill0.target.touchable = false;
             }
@@ -139,7 +143,11 @@ namespace GFGGame
         {
             Reset();
 
-
+            if (_index == 0 && GuideDataManager.IsGuideFinish(ConstGuideId.TARGET_FIGHT) <= 0)//引导中禁止自动战斗
+            {
+                EquipDataCache.cacher.fightSpeed = 1;
+                EquipDataCache.cacher.autoPlay = false;
+            }
             RoleSkillCfg[] roleSkillCfgs = RoleSkillCfgArray.Instance.dataArray;
             for (int i = 0; i < roleSkillCfgs.Length; i++)
             {
@@ -232,7 +240,7 @@ namespace GFGGame
 
             _ui.m_comTargetCircle.target.visible = true;
             _ui.m_comTargetCircle.m_txtPart.text = FightScoreCfgArray.Instance.GetCfg(_index + 1).name;
-            if (_index == 0 && GuideDataManager.GetGuideCountCopy(ConstGuideId.TARGET_FIGHT) <= 0)
+            if (_index == 0 && GuideDataManager.IsGuideFinish(ConstGuideId.TARGET_FIGHT) <= 0)
             {
                 _ui.m_comMineCircle.m_t0.Play(1, 0, 0, 0.75f, () =>
                 {
@@ -516,7 +524,7 @@ namespace GFGGame
 
             if (playStop)
             {
-                GuideController.TryGuide(_ui.m_comMineCircle.target, ConstGuideId.TARGET_FIGHT, 2, "这里可以观察双方的分数计算", false, 0, true, false, 0, -128f, -128f);
+                GuideController.TryGuide(_ui.m_comMineCircle.target, ConstGuideId.TARGET_FIGHT, 2, "这里可以观察双方的分数计算", -1, true, 0, -128f, -128f);
             }
             GuideController.TryGuide(_ui.m_btnSkill0.target, ConstGuideId.TARGET_FIGHT, 3, "使用技能,可以增加胜出的几率哦,点击看看");
             GuideController.TryCompleteGuide(ConstGuideId.TARGET_FIGHT, 3);

+ 2 - 2
GameClient/Assets/Game/HotUpdate/Views/MainStory/StoryLevelInfoView.cs

@@ -252,8 +252,8 @@ namespace GFGGame
             {
                 _ui.m_btnStart.touchable = false;
             }
-            GuideController.TryGuide(null, ConstGuideId.CLOTHING_SYNTHETIC, 3, "点击空白处关闭", false, 0, true, false, (int)(this.viewCom.y + _ui.m_groupPass.y));
-            GuideController.TryGuide(_ui.m_listTag, ConstGuideId.OPEN_TAGS, 1, "选择相应的关卡标签,可提高分数", false, 0, true, false, 0);
+            GuideController.TryGuide(null, ConstGuideId.CLOTHING_SYNTHETIC, 3, "点击空白处关闭", -1, true, (int)(this.viewCom.y + _ui.m_groupPass.y));
+            GuideController.TryGuide(_ui.m_listTag, ConstGuideId.OPEN_TAGS, 1, "选择相应的关卡标签,可提高分数", -1, true, 0);
             GuideController.TryCompleteGuide(ConstGuideId.OPEN_TAGS, 1);
 
 

+ 1 - 1
GameClient/Assets/Game/HotUpdate/Views/MainStory/StorySkillView.cs

@@ -20,7 +20,7 @@ namespace GFGGame
         protected override void OnShown()
         {
             base.OnShown();
-            CardData data = CardDataManager.GetCardDicByRarity(0)[InstanceZonesDataManager.currentCardId];
+            CardData data = CardDataManager.GetCardDataById(InstanceZonesDataManager.currentCardId);//(0)[InstanceZonesDataManager.currentCardId];
             _ui.m_comSkillCard.m_loaCard.url = ResPathUtil.GetCardSmallPath(data.res);
             PassivitySkillCfg cfg = ScoreSystemData.Instance.GetMainSkillCfg(data.id);
             _ui.m_ComSkillName.target.GetChild("txtName").asTextField.text = cfg.name;

+ 9 - 9
GameClient/Assets/Game/HotUpdate/Views/MainStory/StroyFightResultView.cs

@@ -59,7 +59,7 @@ namespace GFGGame
         protected override void OnShown()
         {
             base.OnShown();
-            var resultData = (StoryFightResultData)this.viewData;
+            _resultData = (StoryFightResultData)this.viewData;
             // Timers.inst.AddUpdate(UpdateToCheckGuide);
 
             if (_sceneObject == null)
@@ -68,17 +68,17 @@ namespace GFGGame
             }
 
             SceneController.UpdateRole(EquipDataCache.cacher.equipDatas, _sceneObject);
-            _ui.m_selfScore.m_txtScore.text = "" + resultData.Score;
+            _ui.m_selfScore.m_txtScore.text = "" + _resultData.Score;
             _ui.m_expBar.m_txtLvl.text = "" + GameGlobal.myNumericComponent.GetAsInt(NumericType.Lvl);
             RoleLevelCfg roleLevelCfg = RoleLevelCfgArray.Instance.GetCfg(GameGlobal.myNumericComponent.GetAsInt(NumericType.Lvl));
             _ui.m_expBar.m_pbExp.max = roleLevelCfg.exp;
             _ui.m_expBar.m_pbExp.value = GameGlobal.myNumericComponent.GetAsInt(NumericType.Exp);
 
-            StoryUtil.UpdateStar(resultData.Star, _ui.m_selfScore.m_flower.target);
-            _ui.m_selfScore.m_bg.url = "ui://Main/zd_jsjm_jszi_" + resultData.Star;
+            StoryUtil.UpdateStar(_resultData.Star, _ui.m_selfScore.m_flower.target);
+            _ui.m_selfScore.m_bg.url = "ui://Main/zd_jsjm_jszi_" + _resultData.Star;
             TextFormat tf = _ui.m_selfScore.m_txtScore.textFormat;
             UpdateToCheckGuide(null);
-            if (!_resultData.Result)
+            if (!this._resultData.Result)
             {
                 tf.font = "ui://Main/Font3";
                 _ui.m_expBar.m_txtLvlAdded.text = "0";
@@ -94,7 +94,7 @@ namespace GFGGame
                 StoryLevelCfg levelCfg = StoryLevelCfgArray.Instance.GetCfg(InstanceZonesDataManager.currentLevelCfgId);
                 StoryFightCfg fightCfg = StoryFightCfgArray.Instance.GetCfg(levelCfg.fightID);
                 _ui.m_expBar.m_txtLvlAdded.text = "" + fightCfg.exp;
-                Timers.inst.Add(0.5f, 1, AddExp);
+                Timers.inst.Add(0.5f, 1, this.AddExp);
             }
             _ui.m_selfScore.m_txtScore.textFormat = tf;
 
@@ -135,9 +135,9 @@ namespace GFGGame
         protected override void UpdateToCheckGuide(object param)
         {
             if (!ViewManager.CheckIsTopView(this.viewCom)) return;
-            if (!_resultData.Result) GuideController.TryGuide(null, ConstGuideId.FIRST_FIGHT_FAILED, 1, "不要气馁呀,可以通过再次挑战已通关的关卡、摘星、绣坊等途径获取更多的物资来提升自己的战斗力哦!", false, 0, true, false, (int)(this.viewCom.height - 150));
-            if (_resultData.Result) GuideController.TryGuide(null, ConstGuideId.FIRST_FIGHT_SINGLE_WIN, 1, "这条连衣裙可真好看!点击空白区域继续", false, 0, true, false, (int)(this.viewCom.height - 150));
-            if (_resultData.Result) GuideController.TryGuide(null, ConstGuideId.FIRST_FIGHT_TARGET_WIN, 1, "你太厉害了,初次对战就获得了这么好的战绩,继续加油吧", false, 0, true, false, (int)(this.viewCom.height - 350));
+            if (!_resultData.Result) GuideController.TryGuide(null, ConstGuideId.FIRST_FIGHT_FAILED, 1, "不要气馁呀,可以通过再次挑战已通关的关卡、摘星、绣坊等途径获取更多的物资来提升自己的战斗力哦!", -1, true, (int)(this.viewCom.height - 150));
+            if (_resultData.Result) GuideController.TryGuide(null, ConstGuideId.FIRST_FIGHT_SINGLE_WIN, 1, "这条连衣裙可真好看!点击空白区域继续", -1, true, (int)(this.viewCom.height - 150));
+            if (_resultData.Result) GuideController.TryGuide(null, ConstGuideId.FIRST_FIGHT_TARGET_WIN, 1, "你太厉害了,初次对战就获得了这么好的战绩,继续加油吧", -1, true, (int)(this.viewCom.height - 350));
         }
 
         protected override void TryCompleteGuide()

+ 5 - 5
GameClient/Assets/Game/HotUpdate/Views/MainUI/MainUIView.cs

@@ -305,16 +305,16 @@ namespace GFGGame
         protected override void UpdateToCheckGuide(object param)
         {
             if (!ViewManager.CheckIsTopView(this.viewCom)) return;
-            GuideController.TryGuide(_ui.m_btnZhaiXing.target, ConstGuideId.LUCKY_BOX, 2, "“摘星”里可以通过星辰的力量获得服饰", false, 0, false);
+            GuideController.TryGuide(_ui.m_btnZhaiXing.target, ConstGuideId.LUCKY_BOX, 2, "“摘星”里可以通过星辰的力量获得服饰", -1, false);
 
             GuideController.TryCompleteGuide(ConstGuideId.FREEDOM_DRESS, 6);
-            GuideController.TryGuide(_ui.m_btnHuanZhuang.target, ConstGuideId.FREEDOM_DRESS, 2, "在这里,可以自由搭配服饰和分享哦~", false, 0, false);
+            GuideController.TryGuide(_ui.m_btnHuanZhuang.target, ConstGuideId.FREEDOM_DRESS, 2, "在这里,可以自由搭配服饰和分享哦~", -1, false);
 
-            GuideController.TryGuide(_ui.m_btnXiuFang.target, ConstGuideId.CLOTHING_SYNTHETIC, 5, "绣坊里增添了新功能", false, 0, false);
+            GuideController.TryGuide(_ui.m_btnXiuFang.target, ConstGuideId.CLOTHING_SYNTHETIC, 5, "绣坊里增添了新功能", -1, false);
             GuideController.TryCompleteGuide(ConstGuideId.CLOTHING_SYNTHETIC, 11);
 
-            GuideController.TryGuide(_ui.m_btnCiPai.target, ConstGuideId.UP_CARD_STAR, 2, "已经收集了足够的材料,可以给词牌升星了");
-            GuideController.TryGuide(_ui.m_btnHuanZhuang.target, ConstGuideId.PHOTOGRAPH, 2, "点这里看看吧", false, 0, false);
+            GuideController.TryGuide(_ui.m_btnCiPai.target, ConstGuideId.UP_CARD_STAR, 2, "已经收集了足够的材料,可以给词牌升星了", -1, false);
+            GuideController.TryGuide(_ui.m_btnHuanZhuang.target, ConstGuideId.PHOTOGRAPH, 2, "点这里看看吧", -1, false);
 
         }
     }

二进制
GameClient/Assets/ResIn/Config/excelConfig.sqlite.bytes


二进制
GameClient/Assets/ResIn/UI/ClothingShop/ClothingShop_fui.bytes


二进制
GameClient/Assets/ResIn/UI/Common/Common_atlas0.png


二进制
GameClient/Assets/ResIn/UI/Common/Common_fui.bytes


二进制
GameClient/Assets/ResIn/UI/CommonGame/CommonGame_atlas0!a.png


二进制
GameClient/Assets/ResIn/UI/CommonGame/CommonGame_atlas0.png


二进制
GameClient/Assets/ResIn/UI/CommonGame/CommonGame_fui.bytes


二进制
GameClient/Assets/ResIn/UI/DressUp/DressUp_fui.bytes


二进制
GameClient/Assets/ResIn/UI/Guide/Guide_fui.bytes


二进制
GameClient/Assets/ResIn/UI/Main/Main_atlas0_1!a.png


二进制
GameClient/Assets/ResIn/UI/Main/Main_atlas0_1.png


二进制
GameClient/Assets/ResIn/UI/Main/Main_atlas0_2!a.png


二进制
GameClient/Assets/ResIn/UI/Main/Main_atlas0_2.png


二进制
GameClient/Assets/ResIn/UI/Main/Main_fui.bytes