Browse Source

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

guodong 3 years ago
parent
commit
f8c205f36c
80 changed files with 1367 additions and 267 deletions
  1. 0 1
      .gitignore
  2. 3 0
      .gitmodules
  3. 3 3
      FGUIProject/assets/ClothingShop/components/ShopListItemRender.xml
  4. 1 1
      FGUIProject/assets/ClothingSynthetic/ClothingSyntheticUI.xml
  5. 6 0
      FGUIProject/assets/Common/components/ComHolder.xml
  6. 1 0
      FGUIProject/assets/Common/package.xml
  7. 1 0
      FGUIProject/assets/CommonGame/components/ComItem.xml
  8. 1 0
      FGUIProject/assets/CommonGame/package.xml
  9. 6 2
      FGUIProject/assets/DressUp/PhotographUI.xml
  10. 1 1
      FGUIProject/assets/Launcher/LauncherUI.xml
  11. 1 1
      FGUIProject/assets/Login/LoginUI.xml
  12. 2 1
      FGUIProject/assets/Main/StoryFightSingleScoreUI.xml
  13. 6 6
      FGUIProject/assets/Main/StoryLevelInfoUI.xml
  14. 14 8
      GameClient/Assets/Editor/ArtsRes/ImportArtResTool.cs
  15. 1 2
      GameClient/Assets/Editor/Bat/updateGame.bat
  16. 5 9
      GameClient/Assets/Editor/FileUtil.cs
  17. 13 12
      GameClient/Assets/Editor/ToolsMenu.cs
  18. 1 1
      GameClient/Assets/Editor/Xasset/Builds/BuildTask.cs
  19. 1 0
      GameClient/Assets/Game/CSShare
  20. 20 1
      GameClient/Assets/Game/HotUpdate/Constant/ConstGuideId.cs
  21. 5 0
      GameClient/Assets/Game/HotUpdate/Constant/ConstItemID.cs
  22. 130 13
      GameClient/Assets/Game/HotUpdate/Controller/GuideController.cs
  23. 24 20
      GameClient/Assets/Game/HotUpdate/Data/Cache/StoryBonusDataCache.cs
  24. 51 18
      GameClient/Assets/Game/HotUpdate/Data/DressUpMenuSuitDataManager.cs
  25. 7 4
      GameClient/Assets/Game/HotUpdate/Data/FunctionOpenDataManager.cs
  26. 95 1
      GameClient/Assets/Game/HotUpdate/Data/GuideDataManager.cs
  27. 2 0
      GameClient/Assets/Game/HotUpdate/DressUp/DressUpObjDataCache.cs
  28. 38 3
      GameClient/Assets/Game/HotUpdate/DressUp/SceneController.cs
  29. 71 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/Common/UI_ComHolder.cs
  30. 11 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/Common/UI_ComHolder.cs.meta
  31. 3 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/CommonGame/UI_ComItem.cs
  32. 3 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/Login/UI_LoginUI.cs
  33. 3 0
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/Main/UI_StoryFightSingleScoreUI.cs
  34. 2 5
      GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/Main/UI_StoryLevelInfoUI.cs
  35. 29 0
      GameClient/Assets/Game/HotUpdate/GameGlobal.cs
  36. 1 1
      GameClient/Assets/Game/HotUpdate/HotUpdateEntry.cs
  37. 8 1
      GameClient/Assets/Game/HotUpdate/Views/Card/CardDetailView.cs
  38. 9 1
      GameClient/Assets/Game/HotUpdate/Views/Card/CardFosterView.cs
  39. 27 6
      GameClient/Assets/Game/HotUpdate/Views/ClothingShop/ClothingShopView.cs
  40. 22 2
      GameClient/Assets/Game/HotUpdate/Views/ClothingSynthetic/ClothingSyntheticView.cs
  41. 8 1
      GameClient/Assets/Game/HotUpdate/Views/ClothingSynthetic/SuitSyntheticView.cs
  42. 13 1
      GameClient/Assets/Game/HotUpdate/Views/CommonGame/ApproachOfItemView.cs
  43. 9 0
      GameClient/Assets/Game/HotUpdate/Views/CommonGame/BuyCountView.cs
  44. 20 4
      GameClient/Assets/Game/HotUpdate/Views/CommonGame/GetBonusView.cs
  45. 28 4
      GameClient/Assets/Game/HotUpdate/Views/CommonGame/GetSuitItemVIew.cs
  46. 15 0
      GameClient/Assets/Game/HotUpdate/Views/CommonGame/ItemView.cs
  47. 67 1
      GameClient/Assets/Game/HotUpdate/Views/DressUp/DressUpFightView.cs
  48. 45 3
      GameClient/Assets/Game/HotUpdate/Views/DressUp/DressUpView.cs
  49. 129 8
      GameClient/Assets/Game/HotUpdate/Views/DressUp/PhotographView.cs
  50. 25 0
      GameClient/Assets/Game/HotUpdate/Views/Guide/GuideView.cs
  51. 4 2
      GameClient/Assets/Game/HotUpdate/Views/Login/LoginView.cs
  52. 7 2
      GameClient/Assets/Game/HotUpdate/Views/LuckyBox/LuckyBoxCardView.cs
  53. 38 6
      GameClient/Assets/Game/HotUpdate/Views/LuckyBox/LuckyBoxStarView.cs
  54. 32 21
      GameClient/Assets/Game/HotUpdate/Views/LuckyBox/LuckyBoxView.cs
  55. 9 0
      GameClient/Assets/Game/HotUpdate/Views/MainStory/StoryCardChoose.cs
  56. 53 35
      GameClient/Assets/Game/HotUpdate/Views/MainStory/StoryChapterView.cs
  57. 47 2
      GameClient/Assets/Game/HotUpdate/Views/MainStory/StoryFightSingleScoreView.cs
  58. 5 4
      GameClient/Assets/Game/HotUpdate/Views/MainStory/StoryFightSingleView.cs
  59. 41 10
      GameClient/Assets/Game/HotUpdate/Views/MainStory/StoryFightTargetScoreView.cs
  60. 30 13
      GameClient/Assets/Game/HotUpdate/Views/MainStory/StoryLevelInfoView.cs
  61. 33 1
      GameClient/Assets/Game/HotUpdate/Views/MainStory/StroyFightResultView.cs
  62. 25 5
      GameClient/Assets/Game/HotUpdate/Views/MainUI/MainUIView.cs
  63. 28 13
      GameClient/Assets/Game/HotUpdate/Views/ViewManager.cs
  64. 10 0
      GameClient/Assets/Game/HotUpdate/Views/XiuFang/XiuFangView.cs
  65. 3 0
      GameClient/Assets/Game/Launcher/FairyGUI/GenCode/Launcher/UI_LauncherUI.cs
  66. 2 1
      GameClient/Assets/Game/Launcher/GameLauncher.cs
  67. 11 5
      GameClient/Assets/Game/Launcher/LauncherConfig.cs
  68. 1 0
      GameClient/Assets/Game/Launcher/Views/LauncherView.cs
  69. BIN
      GameClient/Assets/ResIn/Config/excelConfig.sqlite.bytes
  70. BIN
      GameClient/Assets/ResIn/UI/ClothingShop/ClothingShop_fui.bytes
  71. BIN
      GameClient/Assets/ResIn/UI/ClothingSynthetic/ClothingSynthetic_fui.bytes
  72. BIN
      GameClient/Assets/ResIn/UI/Common/Common_fui.bytes
  73. BIN
      GameClient/Assets/ResIn/UI/CommonGame/CommonGame_atlas0!a.png
  74. BIN
      GameClient/Assets/ResIn/UI/CommonGame/CommonGame_atlas0.png
  75. BIN
      GameClient/Assets/ResIn/UI/CommonGame/CommonGame_fui.bytes
  76. BIN
      GameClient/Assets/ResIn/UI/DressUp/DressUp_fui.bytes
  77. BIN
      GameClient/Assets/ResIn/UI/Login/Login_fui.bytes
  78. BIN
      GameClient/Assets/ResIn/UI/Main/Main_fui.bytes
  79. BIN
      GameClient/Assets/Resources/UI/Launcher/Launcher_fui.bytes
  80. 1 1
      GameClient/ProjectSettings/ProjectSettings.asset

+ 0 - 1
.gitignore

@@ -9,7 +9,6 @@
 /GameClient/*.sln
 /GameClient/Assets/Res/Code.meta
 /GameClient/Assets/Res/Code
-/GameClient/Assets/Game/CSShare
 /GameClient/.vs
 /GameClient/.vscode
 /GameClient/Temp

+ 3 - 0
.gitmodules

@@ -0,0 +1,3 @@
+[submodule "GameClient/Assets/Game/CSShare"]
+	path = GameClient/Assets/Game/CSShare
+	url = https://e.coding.net/shenyou-gfg/gfgclient/CSShare.git

+ 3 - 3
FGUIProject/assets/ClothingShop/components/ShopListItemRender.xml

@@ -6,9 +6,9 @@
     <text id="n26_hinb" name="txtName" xy="18,266" size="200,37" fontSize="26" color="#aa8e71" align="center" autoSize="none" text="名字"/>
     <loader id="n27_hinb" name="icon" xy="38,32" size="160,160" aspect="true" url="ui://e5hnfx8ahinb1a" fill="scale"/>
     <image id="n28_hinb" name="imgOwned" src="hinb1b" fileName="images/fzd_yyy.png" xy="44,166"/>
-    <loader id="n31_ugdz" name="iconPrice" xy="43,228" size="32,32" group="n33_ugdz" aspect="true" url="ui://eg2y0ldpq08x3" fill="scale"/>
-    <text id="n32_ugdz" name="txtPrice" xy="86,226" size="115,36" group="n33_ugdz" fontSize="26" color="#f2989b" autoClearText="true" text="9999999"/>
-    <group id="n33_ugdz" name="n33" xy="43,226" size="150,37" advanced="true">
+    <loader id="n31_ugdz" name="iconPrice" xy="36,228" size="32,32" group="n33_ugdz" aspect="true" url="ui://eg2y0ldpq08x3" fill="scale"/>
+    <text id="n32_ugdz" name="txtPrice" xy="79,226" size="121,36" group="n33_ugdz" fontSize="26" color="#f2989b" ubb="true" bold="true" autoClearText="true" text="9999999"/>
+    <group id="n33_ugdz" name="n33" xy="36,226" size="164,36" advanced="true">
       <relation target="" sidePair="center-center"/>
     </group>
   </displayList>

+ 1 - 1
FGUIProject/assets/ClothingSynthetic/ClothingSyntheticUI.xml

@@ -35,7 +35,7 @@
       <item/>
       <item/>
     </list>
-    <text id="n38_ja9w" name="n38" xy="244,1278" size="562,41" fontSize="30" color="#917960" text="* 所有材料衣服制作 后都会保留最后一件 *"/>
+    <text id="n38_ja9w" name="n38" xy="194,1278" size="691,42" fontSize="30" color="#917960" text="* 系统默认保留一件衣服,余下的才能作为合成材料*"/>
     <image id="n39_ja9w" name="n39" src="j53911" fileName="images/hc_xiant_1.png" xy="91,1487"/>
     <image id="n41_ja9w" name="n41" src="j539t" fileName="images/hc_kuang_3.png" pkg="eg2y0ldp" xy="623,1333"/>
     <text id="n42_ja9w" name="txtCost" xy="630,1336" size="160,34" fontSize="24" color="#a27b56" vars="true" text="花费{v1=1000}{v2=金币}">

+ 6 - 0
FGUIProject/assets/Common/components/ComHolder.xml

@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<component size="10,10">
+  <displayList>
+    <graph id="n0_pf26" name="holder" xy="0,0" size="10,10"/>
+  </displayList>
+</component>

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

@@ -34,6 +34,7 @@
     <component id="ih7595" name="Button11.xml" path="/components/" exported="true"/>
     <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"/>
   </resources>
   <publish name="" path="..\GameClient\Assets\ResIn\UI\Common" packageCount="2" genCode="true" extractAlpha="true"/>
 </packageDescription>

+ 1 - 0
FGUIProject/assets/CommonGame/components/ComItem.xml

@@ -11,5 +11,6 @@
     <image id="n16_j8b3" name="imgGot" src="j48o9b" fileName="components/yx_yilq.png" xy="7,80"/>
     <text id="n17_j48o" name="txtHasCount" xy="96,243" pivot="0.5,0" anchor="true" size="105,36" fontSize="26" color="#a28d77" vars="true" text="已拥有:{count=0}"/>
     <loader id="n18_j48o" name="loaRarity" xy="148,0" size="44,94" url="ui://eg2y0ldpd4iw52" autoSize="true"/>
+    <loader id="n19_tc53" name="loaShouTongReward" xy="16,81" size="160,40" url="ui://eg2y0ldptc539z" autoSize="true"/>
   </displayList>
 </component>

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

@@ -166,6 +166,7 @@
     <image id="tt1q9w" name="xjs_ditu_1.png" path="/images/"/>
     <image id="tt1q9x" name="xjs_ditu_2.png" path="/images/"/>
     <image id="tt1q9y" name="xjs_ditu_3.png" path="/images/"/>
+    <image id="tc539z" name="zx_jqgka_stjl.png" path="/images/"/>
   </resources>
   <publish name="" path="..\GameClient\Assets\ResIn\UI\CommonGame" packageCount="2" genCode="true" extractAlpha="true"/>
 </packageDescription>

+ 6 - 2
FGUIProject/assets/DressUp/PhotographUI.xml

@@ -4,8 +4,12 @@
     <loader id="n8_g3xa" name="btnBg" xy="0,0" size="1080,1136">
       <relation target="" sidePair="height-height"/>
     </loader>
-    <loader id="n11_o139" name="loaGuide" xy="128,114" size="783,972"/>
-    <loader id="n12_o139" name="loaGuide1" xy="135,185" size="783,1397"/>
+    <loader id="n11_o139" name="loaGuide" xy="148,153" size="783,972">
+      <relation target="" sidePair="bottom-bottom"/>
+    </loader>
+    <loader id="n12_o139" name="loaGuide1" xy="148,185" size="783,1397">
+      <relation target="" sidePair="bottom-bottom"/>
+    </loader>
     <component id="n9_g3xa" name="comSelectBox" src="g3xa4l" fileName="ComChecked.xml" xy="420,728" pivot="0.5,0.5" anchor="true"/>
     <component id="n1_yd72" name="btnBack" src="9xlo8" fileName="components/ButtonBack1.xml" pkg="eg2y0ldp" xy="35,80"/>
     <component id="n10_i3ix" name="btnPhotograph" src="g3xa4h" fileName="components/Button8.xml" xy="919,650">

+ 1 - 1
FGUIProject/assets/Launcher/LauncherUI.xml

@@ -15,7 +15,7 @@
     <text id="n5_l55o" name="txtVersion" xy="870,32" size="200,42" fontSize="30" color="#ffffff" align="right" autoSize="none" strokeColor="#333333" text="v 1.0.0">
       <relation target="" sidePair="left-left,top-top"/>
     </text>
-    <image id="n6_lqt1" name="n6" src="lqt1a" fileName="imagesExport/LOGO.png" xy="39,80"/>
+    <image id="n6_lqt1" name="imgLogo" src="lqt1a" fileName="imagesExport/LOGO.png" xy="39,80"/>
     <text id="n8_lqt1" name="txtBottom" xy="40,1629" size="1000,71" fontSize="26" color="#eaeaea" align="center" autoSize="none" text="抵制不良游戏,拒绝盗版游戏。注意自我保护,谨防受骗上当。&#xA;适度游戏益脑,沉迷游戏伤身。合理安排时间,享受健康生活。">
       <relation target="" sidePair="bottom-bottom"/>
     </text>

+ 1 - 1
FGUIProject/assets/Login/LoginUI.xml

@@ -9,7 +9,7 @@
     </text>
     <component id="n3_ul4p" name="btnNotice" src="ul4p7" fileName="components/ButtonGG.xml" xy="959,420"/>
     <component id="n4_ul4p" name="btnLogout" src="ul4p8" fileName="components/ButtonZX.xml" xy="962,583"/>
-    <image id="n5_m1tb" name="n5" src="lqt1a" fileName="imagesExport/LOGO.png" pkg="mgs5yrnj" xy="39,80"/>
+    <image id="n5_m1tb" name="imgLogo" src="lqt1a" fileName="imagesExport/LOGO.png" pkg="mgs5yrnj" xy="39,80"/>
     <text id="n6_bx8o" name="txtVersion" xy="870,32" size="200,42" fontSize="30" color="#ffffff" align="right" autoSize="none" strokeColor="#333333" text="v 1.0.0">
       <relation target="" sidePair="top-top"/>
     </text>

+ 2 - 1
FGUIProject/assets/Main/StoryFightSingleScoreUI.xml

@@ -1,6 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
 <component size="1080,1920" designImage="ui://mfvz4q8kuo1t9j" designImageOffsetY="-120">
   <displayList>
+    <component id="n34_tc53" name="btnBack" src="9xlo8" fileName="components/ButtonBack1.xml" pkg="eg2y0ldp" xy="52,142"/>
     <component id="n0_8xpg" name="selfScore" src="8xpg4e" fileName="components/CompFightScore.xml" xy="419,843" visible="false">
       <relation target="" sidePair="center-center,middle-middle"/>
     </component>
@@ -14,7 +15,7 @@
     <graph id="n27_uo1t" name="grh_5" xy="238,1579" pivot="0.5,0.5" size="25,25" aspect="true"/>
     <graph id="n28_uo1t" name="grh_6" xy="200,865" pivot="0.5,0.5" size="25,25" aspect="true"/>
     <graph id="n29_uo1t" name="grh_7" xy="782,389" pivot="0.5,0.5" size="25,25" aspect="true"/>
-    <component id="n33_vuz5" name="proScore" src="vuz5bh" fileName="components/ProgressBarSingleScore.xml" xy="79,1796">
+    <component id="n33_vuz5" name="proScore" src="vuz5bh" fileName="components/ProgressBar1.xml" xy="79,1796">
       <relation target="" sidePair="bottom-bottom"/>
       <ProgressBar max="100"/>
     </component>

+ 6 - 6
FGUIProject/assets/Main/StoryLevelInfoUI.xml

@@ -2,7 +2,6 @@
 <component size="1080,1160" designImageOffsetX="-750">
   <controller name="ctrlNeed" pages="0,,1,,2," selected="1"/>
   <displayList>
-    <image id="n2_vxw5" name="n2" src="j48o94" fileName="images/zx_jq_dituditu.png" xy="0,-153"/>
     <loader id="n44_yoe2" name="btnBg" xy="0,-153" size="1080,1414" url="ui://mfvz4q8kj48o94" autoSize="true"/>
     <component id="n0_vxw5" name="btnStart" src="t8o13i" fileName="componentsLevel/ButtonStart.xml" xy="766,864">
       <Button title="开始旅程"/>
@@ -15,10 +14,10 @@
       <gearText controller="ctrlNeed" pages="2" values="通关加分:" default="通关条件:"/>
     </text>
     <text id="n7_t8o1" name="txtHighestScore" xy="580,205" size="226,57" fontSize="32" color="#a28d77" ubb="true" autoSize="none" autoClearText="true" text="9999"/>
-    <text id="n41_j48o" name="txtNeed" xy="580,352" size="132,44" fontSize="32" color="#a28d77" leading="10" ubb="true" autoClearText="true" text="赵钱孙李">
+    <richtext id="n45_rfkv" name="txtNeed" xy="580,352" size="132,44" fontSize="32" color="#a28d77" text="赵钱孙李">
       <gearDisplay controller="ctrlNeed" pages="1"/>
-    </text>
-    <list id="n42_j48o" name="listTag" xy="581,357" size="315,41" layout="row" colGap="10" defaultItem="ui://eg2y0ldpih7566" autoClearItems="true">
+    </richtext>
+    <list id="n42_j48o" name="listTag" xy="581,357" size="206,41" layout="row" colGap="10" defaultItem="ui://eg2y0ldpih7566" autoClearItems="true">
       <gearDisplay controller="ctrlNeed" pages="2"/>
       <item/>
       <item/>
@@ -44,12 +43,13 @@
     <component id="n8_t8o1" name="flower" src="s2cc5k" fileName="components/CompFlower1.xml" xy="697,201">
       <relation target="n7_t8o1" sidePair="left-left,top-top"/>
     </component>
-    <list id="n33_t8o1" name="listBonus" xy="0,592" size="1079,281" layout="row" scroll="horizontal" colGap="58" defaultItem="ui://eg2y0ldpj48o98" align="center" autoClearItems="true">
+    <list id="n33_t8o1" name="listBonus" xy="-33,592" pivot="0.5,0" size="1146,281" scale="0.95,0.95" layout="row" overflow="hidden" scroll="horizontal" colGap="30" defaultItem="ui://eg2y0ldpj48o98" align="center" autoClearItems="true">
+      <item/>
+      <item/>
       <item/>
       <item/>
       <item/>
     </list>
     <loader id="n37_d4iw" name="scoreType" xy="581,272" size="50,50" url="ui://eg2y0ldp842s6h" fill="scale"/>
-    <loader id="n43_yoe2" name="btnClose" xy="3,1305" size="1073,176"/>
   </displayList>
 </component>

+ 14 - 8
GameClient/Assets/Editor/ArtsRes/ImportArtResTool.cs

@@ -15,7 +15,7 @@ namespace GFGEditor
         public static string ResRootPathDressUp { get { return $"../../../gfg/{ResRootDirNameDressUp}/"; } }
 
         public static string ragule = @"^[0-9a-zA-Z_]{1,}$";
-        public static string Md5FilePath = "Assets/MD5";
+        public static string Md5FilePath = "Assets/Res/MD5";
 
         private static string[] FieldGuideIconSrcPaths { get { return new string[] { ResRootPath + "图鉴/" }; } }
         public static string FieldGuideIconTargetPath = $"{ResPathUtil.TEXTURE_DIR_PATH}/FieldGuide/Icon/";
@@ -73,13 +73,14 @@ namespace GFGEditor
         public static string[] EffectSrcPaths { get { return new string[] { ResRootPath + $"ArtProject/{ResPathUtil.EFFECT_DIR_PATH}/" }; } }
         public static string EffectTargetPath = $"{ResPathUtil.EFFECT_DIR_PATH}/";
 
-        public static string[] MaterialSrcPaths { get { return new string[] { ResRootPath + $"ArtProject/{ResPathUtil.Material_DIR_PATH}/" }; } }
-        public static string MaterialTargetPath = $"{ResPathUtil.Material_DIR_PATH}/";
-
-        public static string[] TextureSrcPaths { get { return new string[] { ResRootPath + $"ArtProject/{ResPathUtil.Texture_DIR_PATH}/" }; } }
-        public static string TextureTargetPath = $"{ResPathUtil.Texture_DIR_PATH}/";
+        public static string[] MaterialSrcPaths { get { return new string[] { ResRootPath + $"ArtProject/{ResPathUtil.Material_DIR_PATH}/Effect/" }; } }
+        public static string MaterialTargetPath = $"{ResPathUtil.Material_DIR_PATH}/Effect/";
+        public static string EffectMaterialMd5FileSaveName = "EffectMaterialMd5";
 
 
+        public static string[] TextureSrcPaths { get { return new string[] { ResRootPath + $"ArtProject/{ResPathUtil.Texture_DIR_PATH}/Effect/" }; } }
+        public static string TextureTargetPath = $"{ResPathUtil.Texture_DIR_PATH}/Effect/";
+        public static string EffectTextureMd5FileSaveName = "EffectTextureMd5";
 
         public static void Import()
         {
@@ -110,6 +111,10 @@ namespace GFGEditor
             EditorUtility.DisplayProgressBar("进度", "正在导入卡牌图标", 1);
             ImportRes(CardIconSrcPaths, CardIconTargetPath, CardMd5FileSaveName);
 
+            //清除冗余动画
+            FileUtil.DeleteUnnecessaryAnimation(ImportArtResTool.DressUpAnimationTargetPath, ImportArtResTool.DressUpAnimationSrcPaths[0]);
+            FileUtil.DeleteUnnecessaryAnimation(ImportArtResTool.EffectTargetPath, ImportArtResTool.EffectSrcPaths[0]);
+
             //动画
             EditorUtility.DisplayProgressBar("进度", "正在导入动作动画", 1);
             ImportFileAndDir(DressUpAnimationSrcPaths, DressUpAnimationTargetPath, new string[] { ".moc3" });
@@ -118,10 +123,11 @@ namespace GFGEditor
             ImportFileAndDir(EffectSrcPaths, EffectTargetPath);
             //材质
             EditorUtility.DisplayProgressBar("进度", "正在导入特效材质", 1);
-            ImportFileAndDir(MaterialSrcPaths, MaterialTargetPath);
+            ImportRes(MaterialSrcPaths, MaterialTargetPath, EffectMaterialMd5FileSaveName);
+
             //图片
             EditorUtility.DisplayProgressBar("进度", "正在导入特效图片", 1);
-            ImportFileAndDir(TextureSrcPaths, TextureTargetPath);
+            ImportRes(TextureSrcPaths, TextureTargetPath, EffectTextureMd5FileSaveName);
 
             //NPC对话立绘
             EditorUtility.DisplayProgressBar("进度", "正在导入NPC对话立绘", 1);

+ 1 - 2
GameClient/Assets/Editor/Bat/updateGame.bat

@@ -3,7 +3,6 @@ svn up --force --accept tc
 
 cd ../../../
 git pull
-cd GameClient/Assets/Game/CSShare
-git pull
+git submodule update
 
 pause

+ 5 - 9
GameClient/Assets/Editor/FileUtil.cs

@@ -247,13 +247,9 @@ namespace GFGEditor
             if (targetPath == ImportArtResTool.DressUpTargetPath)
             {
                 DeleteUnnecessaryImagePos(ImportArtResTool.DressUpTargetPath);
-                DeleteUnnecessaryImageMD5(ImportArtResTool.DressUpMd5FileSaveName);
+                // DeleteUnnecessaryImageMD5(ImportArtResTool.DressUpMd5FileSaveName);
             }
-            // if (targetPath == ImportArtsRes.DressUpAnimationTargetPath || targetPath == ImportArtsRes.EffectTargetPath)
-            // {
-            //     DeleteUnnecessaryAnimation(ImportArtsRes.DressUpAnimationTargetPath, ImportArtsRes.DressUpAnimationSrcPaths[0]);
-            //     Debug.Log("动画清除完成");
-            // }
+            Debug.Log(targetPath + "清除完成");
         }
 
         //清除无资源的Md5数据
@@ -351,17 +347,17 @@ namespace GFGEditor
                 foreach (var lfile in localFiles)
                 {
                     var lfileName = Path.GetFileName(lfile);
-                    bool needDelete = false;
+                    bool existFile = false;
                     foreach (var sfile in souFiles)
                     {
                         var sfileName = Path.GetFileName(sfile);
                         if (lfileName == sfileName)
                         {
-                            needDelete = true;
+                            existFile = true;
                             break;
                         }
                     }
-                    if (!needDelete)
+                    if (!existFile)
                     {
                         File.Delete(lfile);
                     }

+ 13 - 12
GameClient/Assets/Editor/ToolsMenu.cs

@@ -53,7 +53,7 @@ namespace GFGEditor
             EditorUtility.DisplayProgressBar("进度", "正在更新至内网", 1);
             VEngine.Editor.Builds.BuildScript.BuildCustomBundles(new string[] { "Res", "ResIn" });
             EditorUtility.ClearProgressBar();
-            if(CommitWhenRelease)
+            if (CommitWhenRelease)
             {
                 CommitProject();
             }
@@ -79,7 +79,7 @@ namespace GFGEditor
             EditorUtility.DisplayProgressBar("进度", "正在更新美术资源", 1);
             ProcessUtil.ExcuteBat("Assets/Editor/Bat/", "updateArtRes.bat", ImportArtResTool.ResRootDirName);
             //如果换装目录跟其他资源目录不一致,那么要再次更新换装目录
-            if(ImportArtResTool.ResRootDirNameDressUp != ImportArtResTool.ResRootDirName)
+            if (ImportArtResTool.ResRootDirNameDressUp != ImportArtResTool.ResRootDirName)
             {
                 ProcessUtil.ExcuteBat("Assets/Editor/Bat/", "updateArtRes.bat", ImportArtResTool.ResRootDirNameDressUp);
             }
@@ -179,7 +179,7 @@ namespace GFGEditor
 
             FileUtil.DeleteUnnecessaryImage(ImportArtResTool.MusicTargetPath, ImportArtResTool.MusicMd5FileSaveName);
 
-            FileUtil.DeleteUnnecessaryImage(ImportArtResTool.ItemIconTargetPath, ImportArtResTool.IconMd5FileSaveName);
+            // FileUtil.DeleteUnnecessaryImage(ImportArtResTool.ItemIconTargetPath, ImportArtResTool.IconMd5FileSaveName);
 
             FileUtil.DeleteUnnecessaryImage(ImportArtResTool.NpcHeadTargetPath, ImportArtResTool.HeadMd5FileSaveName);
 
@@ -189,21 +189,22 @@ namespace GFGEditor
 
             FileUtil.DeleteUnnecessaryImage(ImportArtResTool.CardIconTargetPath, ImportArtResTool.CardMd5FileSaveName);
 
-            // FileUtil.DeleteUnnecessaryImage(ImportArtsRes.DressUpAnimationTargetPath);
-            // FileUtil.DeleteUnnecessaryImage(ImportArtsRes.EffectTargetPath);
-            FileUtil.DeleteUnnecessaryAnimation(ImportArtResTool.DressUpAnimationTargetPath, ImportArtResTool.DressUpAnimationSrcPaths[0]);
-            FileUtil.DeleteUnnecessaryAnimation(ImportArtResTool.EffectTargetPath, ImportArtResTool.EffectSrcPaths[0]);
-            FileUtil.DeleteUnnecessaryAnimation(ImportArtResTool.MaterialTargetPath, ImportArtResTool.MaterialSrcPaths[0]);
-            FileUtil.DeleteUnnecessaryAnimation(ImportArtResTool.TextureTargetPath, ImportArtResTool.TextureSrcPaths[0]);
+            FileUtil.DeleteUnnecessaryImage(ImportArtResTool.MaterialTargetPath, ImportArtResTool.EffectMaterialMd5FileSaveName);
+
+            FileUtil.DeleteUnnecessaryImage(ImportArtResTool.TextureTargetPath, ImportArtResTool.EffectTextureMd5FileSaveName);
+
+            DeleteUnnecessaryAni();
         }
 
-        //[MenuItem("策划/其它/清除冗余动画")]
+        // [MenuItem("策划/其它/清除冗余动画")]
         public static void DeleteUnnecessaryAni()
         {
+            EditorUtility.DisplayProgressBar("进度", "正在清除冗余动画", 1);
             FileUtil.DeleteUnnecessaryAnimation(ImportArtResTool.DressUpAnimationTargetPath, ImportArtResTool.DressUpAnimationSrcPaths[0]);
             FileUtil.DeleteUnnecessaryAnimation(ImportArtResTool.EffectTargetPath, ImportArtResTool.EffectSrcPaths[0]);
-            FileUtil.DeleteUnnecessaryAnimation(ImportArtResTool.MaterialTargetPath, ImportArtResTool.MaterialSrcPaths[0]);
-            FileUtil.DeleteUnnecessaryAnimation(ImportArtResTool.TextureTargetPath, ImportArtResTool.TextureSrcPaths[0]);
+            EditorUtility.ClearProgressBar();
+
+            // FileUtil.DeleteUnnecessaryAnimation(ImportArtResTool.TextureTargetPath, ImportArtResTool.TextureSrcPaths[0]);
         }
         [MenuItem("Tools/List Player Assemblies in Console")]
         public static void PrintAssemblyNames()

+ 1 - 1
GameClient/Assets/Editor/Xasset/Builds/BuildTask.cs

@@ -9,7 +9,7 @@ namespace VEngine.Editor.Builds
     public class BuildTask
     {
         private readonly string[] EXCLUDE_EXTS = new string[] { ".meta" };
-        private readonly string[] EXCLUDE_DIRS = new string[] { "Assets/Res/.svn" };
+        private readonly string[] EXCLUDE_DIRS = new string[] { "Assets/Res/.svn", "Assets/Res/MD5" };
         private readonly BuildAssetBundleOptions buildAssetBundleOptions;
         private readonly List<Asset> bundledAssets = new List<Asset>();
         private readonly string bundleExtension;

+ 1 - 0
GameClient/Assets/Game/CSShare

@@ -0,0 +1 @@
+Subproject commit 636691841fe8e087929e669d3867a3cf0c6de531

+ 20 - 1
GameClient/Assets/Game/HotUpdate/Constant/ConstGuideId.cs

@@ -17,11 +17,30 @@ namespace GFGGame
         public const int FIGHT_RESULT_TIPS_GUIDE = 19;//战斗结束提示语
 
 
-        public const int MAIN_UI_BTN_STORY = 5;
         public const int CHAPTER_RESULT_VIEW = 6;
         public const int GET_SUIT_ITEM_VIEW_FULL = 7;
         public const int GET_BONUS_VIEW = 8;
         public const int GET_SUIT_ITEM_VIEW_FIRST = 9;
+
+
         public const int DRESS_UP_VIEW_BTN_BACK = 10;
+
+        public const string START_STORY = "START_STORY";
+        public const string SINGLE_FIGHT = "SINGLE_FIGHT";
+        public const string BUY_CLOTHING = "BUY_CLOTHING";
+        public const string TARGET_FIGHT = "TARGET_FIGHT";
+        public const string LUCKY_BOX = "LUCKY_BOX";
+        public const string FREEDOM_DRESS = "FREEDOM_DRESS";
+        public const string CLOTHING_SYNTHETIC = "CLOTHING_SYNTHETIC";
+        public const string SKILL_CARD_FIGHT = "SKILL_CARD_FIGHT";
+        public const string OPEN_TAGS = "OPEN_TAGS";
+        public const string UP_CARD_STAR = "UP_CARD_STAR";
+        public const string PHOTOGRAPH = "PHOTOGRAPH";
+        public const string FIRST_FIGHT_FAILED = "FIRST_FIGHT_FAILED";
+        public const string FIRST_FIGHT_SINGLE_WIN = "FIRST_FIGHT_SINGLE_WIN";
+        public const string FIRST_FIGHT_TARGET_WIN = "FIRST_FIGHT_TARGET_WIN";
+        public const string GET_SUIT_ITEM_FIRST = "GET_SUIT_ITEM_FIRST";
+        public const string GET_SUIT_ITEM_FULL = "GET_SUIT_ITEM_FULL";
+        public const string GET_BONUS_FIRST = "GET_BONUS_FIRST";
     }
 }

+ 5 - 0
GameClient/Assets/Game/HotUpdate/Constant/ConstItemID.cs

@@ -7,5 +7,10 @@ namespace GFGGame
         public const int GOLD = 1000003;
         public const int DIAMOND_PURPLE = 1000004;
         public const int DIAMOND_RED = 1000005;
+
+        public const int DEFULT_FA_XING = 10000;
+        public const int DEFULT_LIAN_YI_QUN = 20000;
+        public const int DEFULT_NEI_DA = 30000;
+        public const int DEFULT_XIA_ZHUANG = 50000;
     }
 }

+ 130 - 13
GameClient/Assets/Game/HotUpdate/Controller/GuideController.cs

@@ -48,6 +48,7 @@ namespace GFGGame
 
         public static void TryGuideChapterInfoViewBtnStart(GObject target, string guideStr = null)
         {
+
             if (GuideDataManager.GetGuideCount(ConstGuideId.SINGLE_FIGHT_GUIDE) <= 0)
             {
                 if (guideStr == null)
@@ -60,6 +61,7 @@ namespace GFGGame
 
         public static bool TryGuideDressUpFightViewMenuType0(GList list)
         {
+
             if (StoryDataManager.currentChapter == 1 && StoryDataManager.currentLevel <= 2
                 && !StoryDataManager.CheckLevelPass(StoryDataManager.currentChapter, StoryDataManager.currentLevel))
             {
@@ -83,6 +85,7 @@ namespace GFGGame
         }
         public static void TryGuideDressUpFightViewMenuPart0(GList list, string guideStr)
         {
+
             if (StoryDataManager.currentChapter == 1 && StoryDataManager.currentLevel <= 2
             && !StoryDataManager.CheckLevelPass(StoryDataManager.currentChapter, StoryDataManager.currentLevel))
             {
@@ -99,6 +102,7 @@ namespace GFGGame
         }
         public static void TryGuideDressUpFightViewBtnNext0(GObject target)
         {
+
             if (GuideDataManager.GetGuideCount(ConstGuideId.SINGLE_FIGHT_GUIDE) <= 0)
             {
                 ShowGuide(target, false, "接下来验证一下,换上的服饰是否符合需求");
@@ -115,6 +119,7 @@ namespace GFGGame
 
         public static void TryGuideDressUpFightViewBtnRecommend(GObject target, GList list)
         {
+
             _list = list;
             if (GuideDataManager.GetGuideCount(ConstGuideId.CLOTHING_SHOP_VIEW_BTN_BUY) <= 0
                 && StoryDataManager.currentLevel == 4
@@ -128,6 +133,7 @@ namespace GFGGame
 
         public static void TryGuideApproachOfItemViewList(GList list)
         {
+
             if (GuideDataManager.GetGuideCount(ConstGuideId.CLOTHING_SHOP_VIEW_BTN_BUY) <= 0
                 && StoryDataManager.currentLevel == 4
                 && !StoryDataManager.CheckLevelPass(StoryDataManager.currentChapter, StoryDataManager.currentLevel)
@@ -141,28 +147,21 @@ namespace GFGGame
 
             }
         }
-        public static void TryGuideClothingShopViewBtnBug(GObject target)
-        {
-            if (GuideDataManager.GetGuideCount(ConstGuideId.CLOTHING_SHOP_VIEW_BTN_BUY) <= 0
-                 && StoryDataManager.currentLevel == 4
-                 && !StoryDataManager.CheckLevelPass(StoryDataManager.currentChapter, StoryDataManager.currentLevel)
-                 && DressUpMenuItemDataManager.GetRecommendCount() >= 2)
-            {
-                ShowGuide(target, false, "找到需要的物品了,点击购买吧");
-            }
-        }
+
         public static void TryGuideBuyCountViewBtnSure(GObject target)
         {
+
             if (GuideDataManager.GetGuideCount(ConstGuideId.CLOTHING_SHOP_VIEW_BTN_BUY) <= 0
                 && StoryDataManager.currentLevel == 4
                 && !StoryDataManager.CheckLevelPass(StoryDataManager.currentChapter, StoryDataManager.currentLevel))
             {
-                ShowGuide(target, false, "点击购买");
+                ShowGuide(target, false, "找到需要的物品了,点击购买吧");
             }
         }
 
         public static void TryGuideClothingShopViewBtnBack(GObject target)
         {
+
             if (GuideDataManager.GetGuideCount(ConstGuideId.CLOTHING_SHOP_VIEW_BTN_BUY) <= 0
                 && StoryDataManager.currentLevel == 4
                 && !StoryDataManager.CheckLevelPass(StoryDataManager.currentChapter, StoryDataManager.currentLevel))
@@ -173,6 +172,7 @@ namespace GFGGame
         private static GList _list;
         public static bool TryGuideDressUpFightViewMenuType1()
         {
+
             if (GuideDataManager.GetGuideCount(ConstGuideId.CLOTHING_SHOP_VIEW_BTN_BUY) <= 0
                && StoryDataManager.currentLevel == 4
                && !StoryDataManager.CheckLevelPass(StoryDataManager.currentChapter, StoryDataManager.currentLevel))
@@ -196,8 +196,10 @@ namespace GFGGame
             }
             return false;
         }
+
         public static void TryGuideDressUpFightViewMenuPart1(GList list, string guideStr)
         {
+
             if (StoryDataManager.currentChapter == 1 && StoryDataManager.currentLevel == 4
             && !StoryDataManager.CheckLevelPass(StoryDataManager.currentChapter, StoryDataManager.currentLevel))
             {
@@ -216,6 +218,7 @@ namespace GFGGame
         /***************************************************点击查看关卡提示***************************************************/
         public static void TryGuideDressUpFightViewBtnHint(GObject target)
         {
+
             if (GuideDataManager.GetGuideCount(ConstGuideId.SEE_DRESS_TIPS) <= 0
                 && StoryDataManager.currentLevel == 6
                 && !StoryDataManager.CheckLevelPass(StoryDataManager.currentChapter, StoryDataManager.currentLevel))
@@ -230,6 +233,7 @@ namespace GFGGame
 
         public static void TryGuideStoryFightTargetScoreComCircle(GObject target, float devWidth, float devHeight)
         {
+
             if (GuideDataManager.GetGuideCount(ConstGuideId.TARGET_FIGHT_GUIDE) <= 0
                 && StoryDataManager.currentLevel == 6
                 && !StoryDataManager.CheckLevelPass(StoryDataManager.currentChapter, StoryDataManager.currentLevel))
@@ -240,6 +244,7 @@ namespace GFGGame
         }
         public static void TryGuideStoryFightTargetScorebtnSkill0(GObject target)
         {
+
             if (GuideDataManager.GetGuideCount(ConstGuideId.TARGET_FIGHT_GUIDE) <= 0
                 && StoryDataManager.currentLevel == 6
                 && !StoryDataManager.CheckLevelPass(StoryDataManager.currentChapter, StoryDataManager.currentLevel))
@@ -250,7 +255,7 @@ namespace GFGGame
         /*******************************************************引导抽奖***********************************************/
         public static bool TryGuideGoBackStoryChapter(GObject target)
         {
-            Debug.Log(StoryDataManager.CheckLevelPass(1, 10));
+
 
             if (GuideDataManager.GetGuideCount(ConstGuideId.MAIN_UI_BTN_ZHAI_XING) <= 0
                 && StoryDataManager.CheckLevelPass(1, 10)
@@ -264,6 +269,7 @@ namespace GFGGame
         }
         public static bool TryGuideLuckyBox(GObject target)
         {
+
             if (GuideDataManager.GetGuideCount(ConstGuideId.MAIN_UI_BTN_ZHAI_XING) <= 0
                 && StoryDataManager.CheckLevelPass(1, 10)
                 && !StoryDataManager.CheckLevelPass(1, 11))
@@ -276,6 +282,7 @@ namespace GFGGame
         }
         public static bool TryGuideLuckyBoxStar()
         {
+
             if (GuideDataManager.GetGuideCount(ConstGuideId.MAIN_UI_BTN_ZHAI_XING) <= 0
                 && StoryDataManager.CheckLevelPass(1, 10)
                 && !StoryDataManager.CheckLevelPass(1, 11))
@@ -290,6 +297,7 @@ namespace GFGGame
 
         public static bool TryGuideDressUpViewMenuType1(GList list)
         {
+
             if (GuideDataManager.currentGuideId == ConstGuideId.MAIN_UI_BTN_HUAN_ZHUANG)
             {
                 int len = list.numChildren;
@@ -314,6 +322,7 @@ namespace GFGGame
 
         public static void TryGuideDressUpViewMenuPart(GList list)
         {
+
             if (GuideDataManager.currentGuideId == ConstGuideId.MAIN_UI_BTN_HUAN_ZHUANG)
             {
                 if (list.numChildren > 0)
@@ -395,6 +404,7 @@ namespace GFGGame
         }
         public static void TryGuideSuitSyntheticView(GObject target)
         {
+
             if (GuideDataManager.GetGuideCount(ConstGuideId.SUIT_SYNTHETIC_GUIDE) <= 0
                 && StoryDataManager.CheckLevelPass(2, 1)
                 && !StoryDataManager.CheckLevelPass(2, 2))
@@ -587,6 +597,7 @@ namespace GFGGame
         // PHOTOGRAPH_GUIDE
         public static bool TryGuideGoBackStoryChapter1(GObject target)
         {
+
             if (GuideDataManager.GetGuideCount(ConstGuideId.PHOTOGRAPH_GUIDE) <= 0
                 && StoryDataManager.CheckLevelPass(2, 4)
                 && !StoryDataManager.CheckLevelPass(2, 5))
@@ -599,6 +610,7 @@ namespace GFGGame
         }
         public static bool TryGuideOpenDressUpView(GObject target)
         {
+
             if (GuideDataManager.GetGuideCount(ConstGuideId.PHOTOGRAPH_GUIDE) <= 0
                 && StoryDataManager.CheckLevelPass(2, 4)
                 && !StoryDataManager.CheckLevelPass(2, 5))
@@ -611,6 +623,7 @@ namespace GFGGame
         }
         public static bool TryGuideDressUpViewMenuType2(GObject target)
         {
+
             if (GuideDataManager.GetGuideCount(ConstGuideId.PHOTOGRAPH_GUIDE) <= 0
                && StoryDataManager.CheckLevelPass(2, 4)
                && !StoryDataManager.CheckLevelPass(2, 5))
@@ -634,6 +647,7 @@ namespace GFGGame
         }
         public static bool TryGuideBtnPhotograph(GObject target)
         {
+
             if (GuideDataManager.GetGuideCount(ConstGuideId.PHOTOGRAPH_GUIDE) <= 0
                 && StoryDataManager.CheckLevelPass(2, 4)
                 && !StoryDataManager.CheckLevelPass(2, 5))
@@ -646,6 +660,7 @@ namespace GFGGame
         }
         public static bool TryGuideOpenPhotographView(GObject target)
         {
+
             if (GuideDataManager.GetGuideCount(ConstGuideId.PHOTOGRAPH_GUIDE) <= 0
                 && StoryDataManager.CheckLevelPass(2, 4)
                 && !StoryDataManager.CheckLevelPass(2, 5))
@@ -670,9 +685,107 @@ namespace GFGGame
             }
             return false;
         }
-        /*******************************************************************************************************************/
+        /*********************************************************************************************************************************/
+        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)
+        {
+            if (!useNewGuide) return false;
+
+            GuideCfg cfg = GuideCfgArray.Instance.GetCfg(guideKey);
+
+            if ((GuideDataManager.GetGuideCountCopy(guideKey) <= 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)
+            && (StoryDataManager.currentChapter == 0 || StoryDataManager.CheckCurrentLevelPass() == false)
+            && StoryDataManager.CheckLevelPass(cfg.chapterId, cfg.level - 1)
+            && !StoryDataManager.CheckLevelPass(cfg.chapterId, cfg.level))
+            ||
+            (cfg.chapterId == 0
+            && GuideDataManager.GetGuideCountCopy(guideKey) <= 0
+            ))
+            {
+                GuideDataManager.currentGuideId = cfg.id;
+                GuideDataManager.currentGuideIdIndex = index;
+
+                GuideDataManager.SetGuideIndex(cfg.id, index);
+                if (isList)
+                {
+
+                    if (target.asList.numItems > 0)
+                    {
+                        GObject item = (target.asList).GetChildAt(listIndex);
+                        if (item != null)
+                        {
+                            target = item;
+                            // target.asList.ScrollToView(listIndex);
+                        }
+                    }
+                    else
+                    {
+                        return false;
+                    }
+                }
+                ShowGuideIndex(target, needUpdate, guideStr, yTxt, cfg.optionalGuide == 1, devWidth, devHeight, GuideDataManager.currentGuideId, GuideDataManager.currentGuideIdIndex);
+                if (!checkIndex)
+                {
+                    for (int i = 1; i < index; i++)
+                    {
+                        GuideDataManager.TryCompleteGuideIndex(cfg.id, i, false);
+                    }
+                }
+                return true;
+            }
+            return false;
+        }
+        private static void ShowGuideIndex(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)
+        {
+            HideGuideIndex();
+            if (GameGlobal.skipGuide)
+            {
+                return;
+            }
+
+            ViewManager.Show(ViewName.GUIDE_VIEW, new List<object> { target, needUpdate, 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);
+            if (GuideDataManager.TryCompleteGuideIndex(guideId, index))
+            {
+                return true;
+            }
+            return false;
+        }
+        public static bool TryCompleteGuide(string guideKey, int count)
+        {
+            if (!useNewGuide) return false;
+
+            GuideCfg cfg = GuideCfgArray.Instance.GetCfg(guideKey);
+
+            if (!GuideDataManager.CheckAllIndexFinish(cfg.id, count)) return false;
+            bool result = GuideDataManager.TryCompleteGuide(cfg.id);
+            if (result)
+            {
+                GuideDataManager.currentGuideId = 0;
+                HideGuideIndex();
+            }
+            return result;
+        }
+        public static void HideGuideIndex()
+        {
+            if (!useNewGuide) return;
+
+            ViewManager.Hide(ViewName.GUIDE_VIEW);
+        }
+        /************************************************************************************************************/
+
         public static bool TryGuideByGuideId(GObject target, int guideId, int maxCount = 1, bool needUpdate = false, string guideStr = null, int yTxt = 0, int preGuideIdAtThisLogin = 0)
         {
+            if (GuideController.useNewGuide) return false;
+
             if (preGuideIdAtThisLogin > 0 && !GuideDataManager.CheckGuideIsCompletedAtThisLogin(preGuideIdAtThisLogin))
             {
                 return false;
@@ -688,6 +801,7 @@ namespace GFGGame
 
         public static bool TryCompleteGuide(int guideId)
         {
+            if (useNewGuide) return false;
             bool result = GuideDataManager.TryCompleteGuide(guideId);
             if (result)
             {
@@ -698,11 +812,14 @@ namespace GFGGame
 
         public static void HideGuide()
         {
+            if (useNewGuide) return;
             ViewManager.Hide(ViewName.GUIDE_VIEW);
         }
 
         private static void ShowGuide(GObject target, bool needUpdate = false, string guideStr = null, int yTxt = 0, bool isOptionalGuide = false, float devWidth = 0, float devHeight = 0)
         {
+            if (useNewGuide) return;
+
             HideGuide();
             if (GameGlobal.skipGuide)
             {

+ 24 - 20
GameClient/Assets/Game/HotUpdate/Data/Cache/StoryBonusDataCache.cs

@@ -12,28 +12,32 @@ namespace GFGGame
         {
             StoryBonusData bonusData = GetBonusData(levelID);
             List<ItemData> bonusList = new List<ItemData>();
-            if(hasOnce)
+            if (hasOnce)
             {
                 bonusList.AddRange(bonusData.bonusOnce);
             }
-            if(bonusData.bonusBase != null)
-            {
-                bonusList.AddRange(bonusData.bonusBase);
-            }
-            if(bonusData.bonusRandom != null && bonusData.bonusRandom.Count > 0)
+            else
             {
-                if(doRandom)
-                {
-                    StoryLevelCfg levelCfg = StoryLevelCfgArray.Instance.GetCfg(levelID);
-                    StoryFightCfg fightCfg = StoryFightCfgArray.Instance.GetCfg(levelCfg.fightID);
-                    List<ItemData> randomList = DropOutDataCache.GetDropItemDatas(fightCfg.bonusRandomArr, true);
-                    bonusList.AddRange(randomList);
-                }
-                else
+                if (bonusData.bonusRandom != null && bonusData.bonusRandom.Count > 0)
                 {
-                    bonusList.AddRange(bonusData.bonusRandom);
+                    if (doRandom)
+                    {
+                        StoryLevelCfg levelCfg = StoryLevelCfgArray.Instance.GetCfg(levelID);
+                        StoryFightCfg fightCfg = StoryFightCfgArray.Instance.GetCfg(levelCfg.fightID);
+                        List<ItemData> randomList = DropOutDataCache.GetDropItemDatas(fightCfg.bonusRandomArr, true);
+                        bonusList.AddRange(randomList);
+                    }
+                    else
+                    {
+                        bonusList.AddRange(bonusData.bonusRandom);
+                    }
                 }
             }
+            if (bonusData.bonusBase != null)
+            {
+                bonusList.AddRange(bonusData.bonusBase);
+            }
+            
             return bonusList;
         }
 
@@ -41,27 +45,27 @@ namespace GFGGame
         {
             StoryChapterCfg chapterCfg = StoryChapterCfgArray.Instance.GetCfg(chapterID);
             int[][] bonus = chapterCfg.bonus1Arr;
-            if(index == 1)
+            if (index == 1)
             {
                 bonus = chapterCfg.bonus2Arr;
             }
-            else if(index == 2)
+            else if (index == 2)
             {
                 bonus = chapterCfg.bonus3Arr;
             }
             return ItemUtil.CreateItemDataList(bonus);
         }
 
-        private static StoryBonusData GetBonusData(string levelID)
+        public static StoryBonusData GetBonusData(string levelID)
         {
             StoryBonusData bonusData = null;
-            if(!_bonusDic.ContainsKey(levelID))
+            if (!_bonusDic.ContainsKey(levelID))
             {
                 bonusData = new StoryBonusData();
                 _bonusDic.Add(levelID, bonusData);
                 StoryLevelCfg levelCfg = StoryLevelCfgArray.Instance.GetCfg(levelID);
                 bonusData.bonusOnce = ItemUtil.CreateItemDataList(levelCfg.bonusOnceArr, true);
-                if(levelCfg.fightID != null && levelCfg.fightID.Length > 0)
+                if (levelCfg.fightID != null && levelCfg.fightID.Length > 0)
                 {
                     StoryFightCfg fightCfg = StoryFightCfgArray.Instance.GetCfg(levelCfg.fightID);
                     bonusData.bonusBase = ItemUtil.CreateItemDataList(fightCfg.bonusBaseArr);

+ 51 - 18
GameClient/Assets/Game/HotUpdate/Data/DressUpMenuSuitDataManager.cs

@@ -1,3 +1,4 @@
+using System;
 using System.Collections;
 using System.Collections.Generic;
 namespace GFGGame
@@ -27,7 +28,7 @@ namespace GFGGame
             _suitSyntheticBoxBonusStatus.Clear();
             if (systemSuitList != null)
             {
-                foreach(SystemSuit systemSuit in systemSuitList)
+                foreach (SystemSuit systemSuit in systemSuitList)
                 {
                     _suitGuideBoxBonusStatus.Add(systemSuit.suitId, systemSuit.boxStatus);
                     _suitSyntheticBoxBonusStatus.Add(systemSuit.suitId, systemSuit.boxStatusSyn);
@@ -37,7 +38,7 @@ namespace GFGGame
 
         public static void Add(int value)
         {
-            if(!_suitIDList.Contains(value))
+            if (!_suitIDList.Contains(value))
             {
                 _suitIDList.Add(value);
             }
@@ -45,7 +46,7 @@ namespace GFGGame
 
         public static void Remove(int value)
         {
-            if(_suitIDList.Contains(value))
+            if (_suitIDList.Contains(value))
             {
                 _suitIDList.Remove(value);
             }
@@ -55,7 +56,7 @@ namespace GFGGame
         {
             totalCount = SuitCfgManager.Instance.totalItemCount;
             count = 0;
-            foreach(KeyValuePair<int , int> item in _progressBySuitIdDic)
+            foreach (KeyValuePair<int, int> item in _progressBySuitIdDic)
             {
                 count += item.Value;
             }
@@ -64,9 +65,9 @@ namespace GFGGame
         public static void GetSuitProgressByItemId(int itemID, out int suitId, out int count)
         {
             suitId = SuitCfgManager.Instance.GetItemSuitId(itemID);
-            if(suitId > 0)
+            if (suitId > 0)
             {
-                if(_progressByItemIdDic.ContainsKey(itemID))
+                if (_progressByItemIdDic.ContainsKey(itemID))
                 {
                     count = _progressByItemIdDic[itemID];
                 }
@@ -83,9 +84,9 @@ namespace GFGGame
 
         public static void GetSuitProgressBySuitId(int suitId, out int count, out int totalCount)
         {
-            if(suitId > 0)
+            if (suitId > 0)
             {
-                if(_progressBySuitIdDic.ContainsKey(suitId))
+                if (_progressBySuitIdDic.ContainsKey(suitId))
                 {
                     count = _progressBySuitIdDic[suitId];
                 }
@@ -107,7 +108,7 @@ namespace GFGGame
             int count = 0;
             int totalCount = 1;
             GetSuitProgressBySuitId(suitId, out count, out totalCount);
-            return (float)count/totalCount;
+            return (float)count / totalCount;
         }
 
         public static bool CheckHaveSuit(int suitId)
@@ -118,19 +119,19 @@ namespace GFGGame
         public static void CheckItemInSuit(int itemId)
         {
             int suitId = SuitCfgManager.Instance.GetItemSuitId(itemId);
-            if(suitId > 0)
+            if (suitId > 0)
             {
                 SuitCfg suitCfg = SuitCfgArray.Instance.GetCfg(suitId);
                 int[] itemIds = SuitCfgManager.Instance.GetSuitItems(suitId);
                 int totalCount = itemIds.Length;
                 bool hasAll = true;
                 int count = 0;
-                
-                for(int i = 0; i < totalCount; i++)
+
+                for (int i = 0; i < totalCount; i++)
                 {
                     int tempItemId = itemIds[i];
                     bool hasItem = DressUpMenuItemDataManager.CheckHasItem(tempItemId);
-                    if(!hasItem)
+                    if (!hasItem)
                     {
                         hasAll = false;
                     }
@@ -141,27 +142,59 @@ namespace GFGGame
                 }
                 _progressBySuitIdDic[suitId] = count;
                 _progressByItemIdDic[itemId] = count;
-                if(hasAll)
+                if (hasAll)
                 {
                     Add(suitId);
                 }
                 GetSuitItemController.AddItemId(itemId);
             }
         }
+        //检测当前穿戴是否是一件完整套装,且只穿了一件套装,返回套装id
+        public static int CheckCurDressIsSuit()
+        {
+            if (EquipDataCache.cacher.suitId > 0) return EquipDataCache.cacher.suitId;
+
+            int[] equipDatas = EquipDataCache.cacher.equipDatas;
+            int dressSuitId = 0;
+            List<int> _equipDatas = new List<int>();
+            for (int i = 0; i < equipDatas.Length; i++)
+            {
+                if (DressUpMenuItemDataManager.CheckIsSceneType(equipDatas[i])) continue;
+                if (equipDatas[i] != ConstItemID.DEFULT_FA_XING && equipDatas[i] != ConstItemID.DEFULT_LIAN_YI_QUN && equipDatas[i] != ConstItemID.DEFULT_NEI_DA && equipDatas[i] != ConstItemID.DEFULT_XIA_ZHUANG)
+                {
+                    int suitId = SuitCfgManager.Instance.GetItemSuitId(equipDatas[i]);
+                    if (suitId <= 0) return 0;//有任何不属于套装的部件且不是原始服装,则当前穿戴不属于套装
+
+                    if (dressSuitId != 0 && dressSuitId != suitId) return 0;//当前穿戴不同套装的部件,则当前穿戴不属于套装
+                    dressSuitId = suitId;
+
+                    _equipDatas.Add(equipDatas[i]);
+                }
+            }
+            if (dressSuitId == 0) return dressSuitId;
+            int[] itemIds = SuitCfgManager.Instance.GetSuitItems(dressSuitId);
+            for (int i = 0; i < itemIds.Length; i++)
+            {
+                if (DressUpMenuItemDataManager.CheckIsSceneType(itemIds[i])) continue;
+                if (_equipDatas.IndexOf(itemIds[i]) < 0) return 0;//套装部件穿戴不完整
+            }
+
+            return dressSuitId;
+        }
 
         public static List<int> GetSuitIDList()
         {
             return (List<int>)_suitIDList.GetRange(0, _suitIDList.Count);
         }
-        
+
         public static int GetSuitGuideBonusStatus(int suitId)
         {
             int status = ConstBonusStatus.CAN_NOT_GET;
-            if(_suitGuideBoxBonusStatus.ContainsKey(suitId))
+            if (_suitGuideBoxBonusStatus.ContainsKey(suitId))
             {
                 status = _suitGuideBoxBonusStatus[suitId];
             }
-            if(status == ConstBonusStatus.CAN_NOT_GET)
+            if (status == ConstBonusStatus.CAN_NOT_GET)
             {
                 if (CheckHaveSuit(suitId))
                 {
@@ -177,7 +210,7 @@ namespace GFGGame
             _suitGuideBoxBonusStatus[suitId] = status;
             SuitCfg suitCfg = SuitCfgArray.Instance.GetCfg(suitId);
             List<ItemData> itemDatas = ItemUtil.CreateItemDataList(suitCfg.boxBonusArr);
-            foreach(ItemData itemData in itemDatas)
+            foreach (ItemData itemData in itemDatas)
             {
                 ItemDataManager.Add(itemData.id, itemData.num);
             }

+ 7 - 4
GameClient/Assets/Game/HotUpdate/Data/FunctionOpenDataManager.cs

@@ -10,7 +10,7 @@ namespace GFGGame
         /// </summary>
         /// <param name="viewName"></param>
         /// <returns></returns>
-        public bool CheckIsFunOpenBgViewName(string viewName)
+        public bool CheckIsFunOpenBgViewName(string viewName, bool showTips = true)
         {
             FunctionOpenCfg cfg = FunctionOpenCfgArray.Instance.GetCfg(viewName);
             if (cfg == null)
@@ -21,10 +21,13 @@ namespace GFGGame
             if (cfg.parentId != null && cfg.parentId != "")
             {
                 //先检查父功能是否开启
-                CheckIsFunOpenBgViewName(cfg.parentId);
+                if (!CheckIsFunOpenBgViewName(cfg.parentId))
+                {
+                    return false;
+                }
             }
-            if (!CheckIsChapterFunOpen(cfg)) return false;
-            if (!CheckIsLvFunOpen(cfg)) return false;
+            if (!CheckIsChapterFunOpen(cfg, showTips)) return false;
+            if (!CheckIsLvFunOpen(cfg, showTips)) return false;
 
             return true;
         }

+ 95 - 1
GameClient/Assets/Game/HotUpdate/Data/GuideDataManager.cs

@@ -1,15 +1,34 @@
 using System.Collections.Generic;
+using System.Linq;
 
 namespace GFGGame
 {
 
     public class GuideDataManager
     {
-        public static int currentGuideId;
+        //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;
+
+        public static int currentGuideId
+        {
+            get
+            {
+                return _currentGuideId;
+            }
+            set
+            {
+                _currentGuideId = value;
+
+            }
+        }
+
+
+
         public static void InitServerData(List<GuideData> list)
         {
             currentGuideId = 0;
@@ -55,6 +74,7 @@ namespace GFGGame
 
         public static int GetGuideCount(int guideId)
         {
+            if (GuideController.useNewGuide) return 1;
             if (_dataDic.ContainsKey(guideId))
             {
                 GuideData guideData = _dataDic[guideId];
@@ -63,6 +83,8 @@ namespace GFGGame
             return 0;
         }
 
+
+
         public static bool CheckGuideIsCompletedAtThisLogin(int guideId)
         {
             if (_guideDicAtThisLogin.ContainsKey(guideId))
@@ -71,5 +93,77 @@ namespace GFGGame
             }
             return false;
         }
+
+        public static int _currentGuideIdIndex;
+
+        public static int currentGuideIdIndex
+        {
+            get
+            {
+                return _currentGuideIdIndex;
+            }
+            set
+            {
+                _currentGuideIdIndex = value;
+
+            }
+        }
+        public static bool IsGuideIndexFinish(int guideId, int index)
+        {
+            if (index == 0) return true;
+            if (_guideDicIndex.ContainsKey(guideId) && _guideDicIndex[guideId].ContainsKey(index) && _guideDicIndex[guideId][index] == 1)
+            {
+                return true;
+            }
+            return false;
+        }
+
+        public static void SetGuideIndex(int guideId, int index)
+        {
+            if (!_guideDicIndex.ContainsKey(guideId))
+            {
+                _guideDicIndex.Add(guideId, new Dictionary<int, int>());
+            }
+            if (_guideDicIndex[guideId].ContainsKey(index)) return;
+            _guideDicIndex[guideId][index] = 0;
+        }
+        public static bool TryCompleteGuideIndex(int guideId, int index, bool checkInde = true)
+        {
+
+            if (GameGlobal.skipGuide)
+            {
+                return false;
+            }
+            if (currentGuideId > 0)
+            {
+
+            }
+            if (!checkInde && guideId == currentGuideId || checkInde && guideId == currentGuideId && index == currentGuideIdIndex && !IsGuideIndexFinish(guideId, index))
+            {
+                _guideDicIndex[guideId][index] = 1;
+                return true;
+            }
+            return false;
+        }
+        public static int GetGuideCountCopy(string guideKey)
+        {
+            if (!GuideController.useNewGuide) 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 bool CheckAllIndexFinish(int guideId, int count)
+        {
+            for (int i = 1; i <= count; i++)
+            {
+                if (!IsGuideIndexFinish(guideId, i)) return false;
+            }
+            return true;
+        }
     }
 }

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

@@ -104,6 +104,8 @@ namespace GFGGame
                 DressUpUtil.AddItem(value, _sceneObj, _needSetMask);
                 score += DressUpMenuItemDataManager.GetItemScore(value);
             }
+            int dressSuitId = DressUpMenuSuitDataManager.CheckCurDressIsSuit();
+            if (dressSuitId > 0) _suitId = dressSuitId;
         }
 
         private void Remove(int value)

+ 38 - 3
GameClient/Assets/Game/HotUpdate/DressUp/SceneController.cs

@@ -94,7 +94,7 @@ namespace GFGGame
             {
                 void UpdateDialogPicAlpha(object param)
                 {
-                    if(spr != null)
+                    if (spr != null)
                     {
                         Color c = spr.color;
                         if (spr.enabled && c.a < 1f)
@@ -111,7 +111,7 @@ namespace GFGGame
                     {
                         FairyGUI.Timers.inst.Remove(UpdateDialogPicAlpha);
                     }
-                    
+
                 }
                 var resPath = ResPathUtil.GetNpcPicSPath(value);
                 Sprite sp = GFGAsset.Load<Sprite>(resPath);
@@ -232,11 +232,46 @@ namespace GFGGame
                 BoxCollider2D boxCollider2D = childGameObj.GetComponent<BoxCollider2D>();
                 if (boxCollider2D != null)
                 {
-                    return boxCollider2D.size * childGameObj.transform.localScale * parentObj.transform.localScale * 100;
+                    size = GetGameObjectSize1(parentObj);
+                    if (parentObj.name == "Role") boxCollider2D.size = size;
+                    boxCollider2D.offset = -childGameObj.transform.localPosition;
+
+                    size = size * childGameObj.transform.localScale * parentObj.transform.localScale * 100;
+                    return size;
                 }
             }
             return Vector2.zero;
         }
+        private static Vector2 GetGameObjectSize1(GameObject parentObj)
+        {
+            float right = int.MinValue;
+            float left = int.MaxValue;
+            float top = int.MinValue;
+            float bottom = int.MaxValue;
+            for (int i = 0; i < parentObj.transform.childCount; i++)
+            {
+                Transform transform = parentObj.transform.GetChild(i);
+                SpriteRenderer sr = transform.GetComponent<SpriteRenderer>();
+
+                if (sr != null)
+                {
+                    Vector2 pos = transform.localPosition;
+                    Vector2 size = sr.bounds.size / parentObj.transform.localScale.x;
+                    Debug.Log("size:" + size + "     pos:" + pos);
+
+                    right = Math.Max(size.x / 2 + pos.x, right);
+                    left = Math.Min(pos.x - size.x / 2, left);
+                    top = Math.Max(size.y / 2 + pos.y, top);
+                    bottom = Math.Min(pos.y - size.y / 2, bottom);
+                }
+            }
+            Vector2 bounds = new Vector2(right - left, top - bottom);
+            Debug.Log("size:" + bounds);
+
+            return bounds;
+        }
+
+
         //设置物体中心点
         public static void SetGameObjectCenter(GameObject parentObj)
         {

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

@@ -0,0 +1,71 @@
+/** This is an automatically generated class by FairyGUI. Please do not modify it. **/
+
+using FairyGUI;
+
+namespace UI.Common
+{
+    public partial class UI_ComHolder
+    {
+        public GComponent target;
+        public GGraph m_holder;
+        public const string URL = "ui://mk0fwx0xpf2696";
+        public const string PACKAGE_NAME = "Common";
+        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/Common/UI_ComHolder.cs.meta

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

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

@@ -13,6 +13,7 @@ namespace UI.CommonGame
         public GImage m_imgGot;
         public GTextField m_txtHasCount;
         public GLoader m_loaRarity;
+        public GLoader m_loaShouTongReward;
         public const string URL = "ui://eg2y0ldpj48o98";
         public const string PACKAGE_NAME = "CommonGame";
         public const string RES_NAME = "ComItem";
@@ -66,6 +67,7 @@ namespace UI.CommonGame
             m_imgGot = (GImage)comp.GetChild("imgGot");
             m_txtHasCount = (GTextField)comp.GetChild("txtHasCount");
             m_loaRarity = (GLoader)comp.GetChild("loaRarity");
+            m_loaShouTongReward = (GLoader)comp.GetChild("loaShouTongReward");
         }
         public void Dispose(bool disposeTarget = false)
         {
@@ -75,6 +77,7 @@ namespace UI.CommonGame
             m_imgGot = null;
             m_txtHasCount = null;
             m_loaRarity = null;
+            m_loaShouTongReward = null;
             if(disposeTarget && target != null)
             {
                 target.RemoveFromParent();

+ 3 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/Login/UI_LoginUI.cs

@@ -11,6 +11,7 @@ namespace UI.Login
         public GTextField m_txtBottom;
         public GButton m_btnNotice;
         public GButton m_btnLogout;
+        public GImage m_imgLogo;
         public GTextField m_txtVersion;
         public const string URL = "ui://myoktu7pl55o0";
         public const string PACKAGE_NAME = "Login";
@@ -63,6 +64,7 @@ namespace UI.Login
             m_txtBottom = (GTextField)comp.GetChild("txtBottom");
             m_btnNotice = (GButton)comp.GetChild("btnNotice");
             m_btnLogout = (GButton)comp.GetChild("btnLogout");
+            m_imgLogo = (GImage)comp.GetChild("imgLogo");
             m_txtVersion = (GTextField)comp.GetChild("txtVersion");
         }
         public void Dispose(bool disposeTarget = false)
@@ -71,6 +73,7 @@ namespace UI.Login
             m_txtBottom = null;
             m_btnNotice = null;
             m_btnLogout = null;
+            m_imgLogo = null;
             m_txtVersion = null;
             if(disposeTarget && target != null)
             {

+ 3 - 0
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/Main/UI_StoryFightSingleScoreUI.cs

@@ -7,6 +7,7 @@ namespace UI.Main
     public partial class UI_StoryFightSingleScoreUI
     {
         public GComponent target;
+        public GButton m_btnBack;
         public UI_CompFightScore m_selfScore;
         public UI_comClickCircle m_comClickCircle;
         public UI_ComAllCircle m_comAllCircle;
@@ -66,6 +67,7 @@ namespace UI.Main
 
         private void Init(GComponent comp)
         {
+            m_btnBack = (GButton)comp.GetChild("btnBack");
             m_selfScore = (UI_CompFightScore)UI_CompFightScore.Create(comp.GetChild("selfScore"));
             m_comClickCircle = (UI_comClickCircle)UI_comClickCircle.Create(comp.GetChild("comClickCircle"));
             m_comAllCircle = (UI_ComAllCircle)UI_ComAllCircle.Create(comp.GetChild("comAllCircle"));
@@ -81,6 +83,7 @@ namespace UI.Main
         }
         public void Dispose(bool disposeTarget = false)
         {
+            m_btnBack = null;
             m_selfScore.Dispose();
             m_selfScore = null;
             m_comClickCircle.Dispose();

+ 2 - 5
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/Main/UI_StoryLevelInfoUI.cs

@@ -12,7 +12,7 @@ namespace UI.Main
         public GButton m_btnStart;
         public GTextField m_txtTitle;
         public GTextField m_txtHighestScore;
-        public GTextField m_txtNeed;
+        public GRichTextField m_txtNeed;
         public GList m_listTag;
         public GTextField m_txtLevelDesc;
         public GLoader m_loaderHead;
@@ -26,7 +26,6 @@ namespace UI.Main
         public UI_CompFlower1 m_flower;
         public GList m_listBonus;
         public GLoader m_scoreType;
-        public GLoader m_btnClose;
         public const string URL = "ui://mfvz4q8kvxw538";
         public const string PACKAGE_NAME = "Main";
         public const string RES_NAME = "StoryLevelInfoUI";
@@ -79,7 +78,7 @@ namespace UI.Main
             m_btnStart = (GButton)comp.GetChild("btnStart");
             m_txtTitle = (GTextField)comp.GetChild("txtTitle");
             m_txtHighestScore = (GTextField)comp.GetChild("txtHighestScore");
-            m_txtNeed = (GTextField)comp.GetChild("txtNeed");
+            m_txtNeed = (GRichTextField)comp.GetChild("txtNeed");
             m_listTag = (GList)comp.GetChild("listTag");
             m_txtLevelDesc = (GTextField)comp.GetChild("txtLevelDesc");
             m_loaderHead = (GLoader)comp.GetChild("loaderHead");
@@ -93,7 +92,6 @@ namespace UI.Main
             m_flower = (UI_CompFlower1)UI_CompFlower1.Create(comp.GetChild("flower"));
             m_listBonus = (GList)comp.GetChild("listBonus");
             m_scoreType = (GLoader)comp.GetChild("scoreType");
-            m_btnClose = (GLoader)comp.GetChild("btnClose");
         }
         public void Dispose(bool disposeTarget = false)
         {
@@ -117,7 +115,6 @@ namespace UI.Main
             m_flower = null;
             m_listBonus = null;
             m_scoreType = null;
-            m_btnClose = null;
             if(disposeTarget && target != null)
             {
                 target.RemoveFromParent();

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

@@ -1,5 +1,8 @@
+using FairyGUI;
 using UnityEngine;
 using VEngine;
+using UI.Common;
+
 
 namespace GFGGame
 {
@@ -22,11 +25,16 @@ namespace GFGGame
         public static ET.Scene zoneScene;
         public const string LoginAddress = "127.0.0.1:10002";
 
+        private static UI_ComHolder comHolder;
+        private static GameObject _gameObj;
+        private static GoWrapper _wrapper;
+
         public static void Init()
         {
             loginApiUrl = LauncherConfig.loginApiUrl;
             gameApiUrl = loginApiUrl;//外网
             gameApiUrlTest = "http://localhost:8081/api/";
+            CreatClickEffect();
         }
 
         public static string version
@@ -36,5 +44,26 @@ namespace GFGGame
                 return Application.version + "." + Versions.ManifestsVersion;
             }
         }
+        private static void CreatClickEffect()
+        {
+            if (comHolder == null)
+            {
+                comHolder = UI_ComHolder.Create();
+                ViewManager.AddChildToTopLayer(comHolder.target);
+
+                string resPath = ResPathUtil.GetViewEffectPath("ui_dj", "ui_dj");
+                SceneController.AddObjectToView(_gameObj, _wrapper, comHolder.m_holder, resPath, out _gameObj, out _wrapper);
+                GRoot.inst.onTouchBegin.Add(SetClickPos);
+            }
+        }
+        private static void SetClickPos()
+        {
+            // Vector2 pos = Stage.inst.touchPosition;
+            Vector2 pos = GRoot.inst.GlobalToLocal(Stage.inst.touchPosition);
+            Debug.Log("pos:" + pos);
+            comHolder.m_holder.visible = false;
+            comHolder.m_holder.visible = true;
+            comHolder.target.SetPosition(pos.x, pos.y, 0);
+        }
     }
 }

+ 1 - 1
GameClient/Assets/Game/HotUpdate/HotUpdateEntry.cs

@@ -8,7 +8,7 @@ namespace GFGGame.HotUpdate
     public class HotUpdateEntry
     {
 
-        public static async void Start()
+        public static void Start()
         {
             VEngine.Logger.Loggable = false;
             Debug.Log("HotUpdateEntry Start");

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

@@ -55,7 +55,7 @@ namespace GFGGame
             _ui.m_listRole.numItems = listRoleCount;
             this.UpdateCardList(_ui.m_listRole.selectedIndex);
             GuideController.TryGuideCardDetailViewList(_ui.m_listCard);
-
+            Timers.inst.AddUpdate(UpdateToCheckGuide);
         }
         private void UpdateCardList(int rarity = 0)
         {
@@ -149,6 +149,13 @@ namespace GFGGame
         protected override void OnHide()
         {
             base.OnHide();
+            Timers.inst.Remove(UpdateToCheckGuide);
+        }
+        private void UpdateToCheckGuide(object param)
+        {
+            if (!ViewManager.CheckIsTopView(this.viewCom)) return;
+
+            GuideController.TryGuide(_ui.m_listCard, ConstGuideId.UP_CARD_STAR, 3, "选择可升星的词牌", true, 0);
         }
     }
 }

+ 9 - 1
GameClient/Assets/Game/HotUpdate/Views/Card/CardFosterView.cs

@@ -105,7 +105,7 @@ namespace GFGGame
             _comFosterBottom.m_ctrlTab.selectedIndex = this._selectTab;
             EventAgent.AddEventListener(ConstMessage.MONEY_CHANGE, UpdateUpStarView);
             GuideController.TryGuideCardFosterViewBtnStar(_ui.m_ComFosterBottom.m_btnStar);
-
+            Timers.inst.AddUpdate(UpdateToCheckGuide);
         }
 
         private void UpdateNormal()
@@ -679,6 +679,14 @@ namespace GFGGame
 
             //_timer.Stop();
             _comFosterBottom.m_listLvConsume.numItems = 0;
+            Timers.inst.Remove(UpdateToCheckGuide);
+        }
+        private void UpdateToCheckGuide(object param)
+        {
+            if (!ViewManager.CheckIsTopView(this.viewCom)) return;
+            GuideController.TryGuide(_ui.m_ComFosterBottom.m_btnStar, ConstGuideId.UP_CARD_STAR, 4, "选择升星");
+            GuideController.TryGuide(_ui.m_ComFosterBottom.m_btnUpStar, ConstGuideId.UP_CARD_STAR, 5, "升满5星后,可解锁词牌的隐藏卡面哦");
+            GuideController.TryCompleteGuide(ConstGuideId.UP_CARD_STAR, 5);
         }
     }
 }

+ 27 - 6
GameClient/Assets/Game/HotUpdate/Views/ClothingShop/ClothingShopView.cs

@@ -33,6 +33,7 @@ namespace GFGGame
 
         private int _selectedItemId;//打开界面时选中的物品id
         private int _selectedType = 0;//打开界面时选中的物品类型
+        private int _selectedItemCount;
         private int _selectedItemClothingId;
 
         public override void Dispose()
@@ -86,6 +87,8 @@ namespace GFGGame
             _ui.m_compItemInfo.m_listTag.itemRenderer = RenderListTagItem;
 
             EventAgent.AddEventListener(ConstMessage.ITEM_CHANGED, UpdateItemChange);
+            EventAgent.AddEventListener(ConstMessage.MONEY_CHANGE, UpdateItemChange);
+            // EventAgent.DispatchEvent(ConstMessage.MONEY_CHANGE, RoleDataManager.gold);
 
         }
 
@@ -96,13 +99,14 @@ namespace GFGGame
 
             _storeId = ConstStoreId.CLOTHING_STORE_ID;
             _scoreType = 0;
-            _selectedItemId = -1;
+            _selectedItemId = 0;
             _selectedType = 0;
             if (this.viewData != null)
             {
                 //this.viewData[0]=storeId(商店Id)
                 //this.viewData[1]=_scoreType(服装属性:风花雪月)
                 //this.viewData[2]=_selectedItemId
+                //this.viewData[2]=_selectedItemCount
                 object[] objs = this.viewData as object[];
                 if (objs.Length > 0 && objs[0] != null)
                 {
@@ -115,6 +119,7 @@ namespace GFGGame
                 if (objs.Length > 2 && objs[2] != null)
                 {
                     _selectedItemId = (int)objs[2];//从物品来源面板跳转到商店,需要物品id方便打开界面时做选中处理
+                    _selectedItemCount = (int)objs[3];
                     ClothingShopCfg[] dataArray = ClothingShopCfgArray.Instance.dataArray;
                     for (int i = 0; i < dataArray.Length; i++)
                     {
@@ -154,8 +159,12 @@ namespace GFGGame
             {
                 _valueBarController.Controller(3);
             }
-
-            GuideController.TryGuideClothingShopViewBtnBug(_ui.m_compItemInfo.m_btnBuy);
+            if (_selectedItemId > 0)
+            {
+                BuyItemConteoller.Show(_cfgSelected.itemID, _cfgSelected.costID, INIT_COUNT, _cfgSelected.costNum, _selectedItemCount, null, true, false, MAX_COUNT);
+            }
+            // GuideController.TryGuideClothingShopViewBtnBug(_ui.m_compItemInfo.m_btnBuy);
+            Timers.inst.AddUpdate(UpdateToCheckGuide);
         }
 
         protected override void OnHide()
@@ -171,7 +180,9 @@ namespace GFGGame
             {
                 _wrapper.wrapTarget = null;
             }
+            _selectedItemId = 0;
             EventAgent.RemoveEventListener(ConstMessage.ITEM_CHANGED, UpdateSelectedItemInfo);
+            Timers.inst.Remove(UpdateToCheckGuide);
         }
 
         private void OnClickBtnBack()
@@ -186,7 +197,8 @@ namespace GFGGame
         private void OnclickBtnBuy()
         {
             GuideController.HideGuide();
-            BuyItemConteoller.Show(_cfgSelected.itemID, _cfgSelected.costID, INIT_COUNT, _cfgSelected.costNum, INIT_COUNT, null, true, false, MAX_COUNT);
+            int count = _selectedItemId > 0 && _cfgSelected.itemID == _selectedItemId ? _selectedItemCount : INIT_COUNT;
+            BuyItemConteoller.Show(_cfgSelected.itemID, _cfgSelected.costID, INIT_COUNT, _cfgSelected.costNum, count, null, true, false, MAX_COUNT);
 
         }
         private void UpdateItemChange()
@@ -194,6 +206,8 @@ namespace GFGGame
             GuideController.TryGuideClothingShopViewBtnBack(_ui.m_btnBack);
 
             UpdateCJGoodsCount();
+            UpdateList(false);
+
         }
         private void UpdateCJGoodsCount()
         {
@@ -268,7 +282,7 @@ namespace GFGGame
                 {
                     itemIndex = _dataList.IndexOf(clothingShopCfg);
                     _ui.m_listShop.ScrollToView(itemIndex < 0 ? 0 : itemIndex);
-                    _selectedItemId = 0;
+                    // _selectedItemId = 0;
                 }
                 UpdateSelectedItemInfo(_ui.m_listShop.GetChildAt(itemIndex) as GComponent, tween);
             }
@@ -283,6 +297,7 @@ namespace GFGGame
 
         private void OnClickListShopItem(EventContext context)
         {
+            _selectedItemId = 0;
             UpdateSelectedItemInfo(context.data as GComponent, true);
         }
 
@@ -298,8 +313,8 @@ namespace GFGGame
             RarityIconController.UpdateRarityIcon(listItem.m_rarity, cfg.itemID, false);
             ItemCfg costItemCfg = ItemCfgArray.Instance.GetCfg(cfg.costID);
             listItem.m_iconPrice.url = "ui://CommonGame/" + costItemCfg.res;
-            listItem.m_txtPrice.text = "" + cfg.costNum;
             listItem.m_imgOwned.visible = ItemDataManager.GetItemNum(cfg.itemID) > 0;
+            listItem.m_txtPrice.text = ItemDataManager.GetItemNum(cfg.costID) >= cfg.costNum ? StringUtil.GetColorText(cfg.costNum.ToString(), "#DD994A") : StringUtil.GetColorText(cfg.costNum.ToString(), "#F2989B");
         }
 
         private void UpdateSelectedItemInfo(GComponent listItem, bool tween)
@@ -341,5 +356,11 @@ namespace GFGGame
             item.m_loaTag.url = ResPathUtil.GetCommonGameResPath("fzd_bqbq_" + tag[0]);
             item.m_txtTag.text = tag[1];
         }
+        private void UpdateToCheckGuide(object param)
+        {
+            if (!ViewManager.CheckIsTopView(this.viewCom)) return;
+
+            GuideController.TryGuide(_ui.m_btnBack, ConstGuideId.BUY_CLOTHING, 4, "点击返回,回到换装");
+        }
     }
 }

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

@@ -45,6 +45,9 @@ namespace GFGGame
         private GComponent _selectedListItem;
         private List<ItemData> _materiarsOfSelectedItem;
 
+        private UI_MateriasListItem listTypeItem_CloSynthetic;
+
+
         public override void Dispose()
         {
             if (_valueBarController != null)
@@ -109,12 +112,13 @@ namespace GFGGame
             EventAgent.AddEventListener(ConstMessage.ITEM_CHANGED, OnItemNumChanged);
 
             GuideController.TryGuideClothingSyntheticViewSuitList(_ui.m_listClothing);
-
+            Timers.inst.AddUpdate(UpdateToCheckGuide);
         }
 
         protected override void OnHide()
         {
             base.OnHide();
+            Timers.inst.Remove(UpdateToCheckGuide);
             _valueBarController.OnHide();
             if (_sceneObject != null)
             {
@@ -350,7 +354,9 @@ namespace GFGGame
             UI_Component3 groupCount = UI_Component3.Proxy(context.sender as GObject);
             UI_MateriasListItem listItem = UI_MateriasListItem.Proxy(groupCount.target.parent);
             ItemData itemData = listItem.target.data as ItemData;
-            ViewManager.Show(ViewName.APPROACH_OF_ITEM_VIEW, new object[] { itemData.id, new object[] { ViewName.CLOTHING_SYNTHETIC_VIEW, this.viewData } });
+            int num = ItemDataManager.GetItemNum(itemData.id);
+
+            ViewManager.Show(ViewName.APPROACH_OF_ITEM_VIEW, new object[] { itemData.id, new object[] { ViewName.CLOTHING_SYNTHETIC_VIEW, this.viewData }, itemData.num + 1 - num });
         }
 
         private void OnItemNumChanged()
@@ -385,5 +391,19 @@ namespace GFGGame
                 GuideController.TryGuideClothingSyntheticViewBtnHome(_ui.m_btnHome);
             }
         }
+        private void UpdateToCheckGuide(object param)
+        {
+            if (!ViewManager.CheckIsTopView(this.viewCom)) return;
+
+            GuideController.TryGuide(_ui.m_listClothing, ConstGuideId.CLOTHING_SYNTHETIC, 8, "找到需要合成的物品", true, 0);
+            if (_ui.m_listMaterias.numChildren > 0)
+            {
+                listTypeItem_CloSynthetic = UI_MateriasListItem.Proxy(_ui.m_listMaterias.GetChildAt(0));
+
+            }
+            if (listTypeItem_CloSynthetic != null) GuideController.TryGuide(listTypeItem_CloSynthetic.m_loaderIcon, ConstGuideId.CLOTHING_SYNTHETIC, 9, "这里可以查看合成需要的材料,和材料的获取途径");
+            GuideController.TryGuide(_ui.m_btnProduction, ConstGuideId.CLOTHING_SYNTHETIC, 10, "点击合成物品");
+            GuideController.TryGuide(_ui.m_btnHome, ConstGuideId.CLOTHING_SYNTHETIC, 11, "获得必需品啦,继续通关主线剧情吧");
+        }
     }
 }

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

@@ -40,12 +40,13 @@ namespace GFGGame
 
             EventAgent.AddEventListener(ConstMessage.SUIT_BOX_STATUS_CHANGED, UpdateSuitBoxStatus);
             GuideController.TryGuideSuitSyntheticViewList(_ui.m_listSuit);
-
+            Timers.inst.AddUpdate(UpdateToCheckGuide);
         }
 
         protected override void OnHide()
         {
             base.OnHide();
+            Timers.inst.Remove(UpdateToCheckGuide);
             EventAgent.RemoveEventListener(ConstMessage.SUIT_BOX_STATUS_CHANGED, UpdateSuitBoxStatus);
         }
 
@@ -179,5 +180,11 @@ namespace GFGGame
                 }
             }
         }
+        private void UpdateToCheckGuide(object param)
+        {
+            if (!ViewManager.CheckIsTopView(this.viewCom)) return;
+
+            GuideController.TryGuide(_ui.m_listSuit, ConstGuideId.CLOTHING_SYNTHETIC, 7, "查看已解锁的图谱", true, 0);
+        }
     }
 }

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

@@ -61,12 +61,16 @@ namespace GFGGame
             }
 
             GuideController.TryGuideApproachOfItemViewList(_ui.m_listApproach);
+            Timers.inst.AddUpdate(UpdateToCheckGuide);
+
         }
 
         protected override void OnHide()
         {
             base.OnHide();
             _fromeViewDatas = null;
+            Timers.inst.Remove(UpdateToCheckGuide);
+
         }
 
         private void ListApproachItemRenderer(int index, GObject item)
@@ -102,7 +106,9 @@ namespace GFGGame
             {
                 case ConstFunctionId.FU_ZHUANG_DIAN:
                     this.Hide();
-                    ViewManager.Show(ViewName.CLOTHING_SHOP_VIEW, new object[] { null, null, _itemId }, _fromeViewDatas, true, true);
+                    object[] temp = viewData as object[];
+                    int count = temp.Length > 2 ? (int)temp[2] : 1;
+                    ViewManager.Show(ViewName.CLOTHING_SHOP_VIEW, new object[] { null, null, _itemId, count }, _fromeViewDatas, true, true);
                     break;
                 case ConstFunctionId.JU_QING_GUAN_QIA:
                     string value = infos[1];
@@ -146,5 +152,11 @@ namespace GFGGame
                     break;
             }
         }
+        private void UpdateToCheckGuide(object param)
+        {
+            if (!ViewManager.CheckIsTopView(this.viewCom)) return;
+
+            GuideController.TryGuide(_ui.m_listApproach, ConstGuideId.BUY_CLOTHING, 2, "该物品可以在服装店购买,点开服装店看看", true, 0);
+        }
     }
 }

+ 9 - 0
GameClient/Assets/Game/HotUpdate/Views/CommonGame/BuyCountView.cs

@@ -78,6 +78,8 @@ namespace GFGGame
             _ui.m_txtCount.text = "" + _count;
             UpdateView();
             GuideController.TryGuideBuyCountViewBtnSure(_ui.m_btnSure);
+            Timers.inst.AddUpdate(UpdateToCheckGuide);
+
         }
         private void UpdateView()
         {
@@ -286,8 +288,15 @@ namespace GFGGame
             base.OnHide();
             // _cfg = null;
             Reset();
+            Timers.inst.Remove(UpdateToCheckGuide);
+
         }
+        private void UpdateToCheckGuide(object param)
+        {
+            if (!ViewManager.CheckIsTopView(this.viewCom)) return;
 
+            GuideController.TryGuide(_ui.m_btnSure, ConstGuideId.BUY_CLOTHING, 3, "找到需要的物品了,点击购买吧");
+        }
 
 
         /// <summary>

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

@@ -17,7 +17,7 @@ namespace GFGGame
             this.modal = true;
 
             _ui.m_listBonus.itemRenderer = UpdateBonusItem;
-            
+
             _ui.m_listBonus.onClickItem.Add(OnClickListBonusItem);
         }
 
@@ -25,7 +25,7 @@ namespace GFGGame
         {
             base.OnShown();
             _bonusList = this.viewData as List<ItemData>;
-            if(_bonusList != null)
+            if (_bonusList != null)
             {
                 _ui.m_listBonus.numItems = _bonusList.Count;
             }
@@ -33,7 +33,7 @@ namespace GFGGame
             {
                 _ui.m_listBonus.numItems = 0;
             }
-            if(_ui.m_listBonus.numItems > 4)
+            if (_ui.m_listBonus.numItems > 4)
             {
                 _ui.m_listBonus.columnGap = 40;
             }
@@ -43,6 +43,7 @@ namespace GFGGame
             }
             int targetY = (int)(this.viewCom.y + _ui.target.y + _ui.target.height);
             GuideController.TryGuideByGuideId(null, ConstGuideId.GET_BONUS_VIEW, 1, false, "恭喜你,获得了第一份奖励,点击图标可以查看物品信息,点击半透明区域继续", targetY);
+            Timers.inst.AddUpdate(UpdateToCheckGuide);
         }
 
         protected override void OnHide()
@@ -50,7 +51,9 @@ namespace GFGGame
             base.OnHide();
             GuideController.HideGuide();
             GuideController.TryCompleteGuide(ConstGuideId.GET_BONUS_VIEW);
+            TryCompleteGuide();
             GetSuitItemController.TryShow(0);
+            Timers.inst.Remove(UpdateToCheckGuide);
         }
 
         private void OnClickListBonusItem(EventContext context)
@@ -60,7 +63,7 @@ namespace GFGGame
             GoodsItemTipsController.ShowItemTips(itemId);
         }
 
-    private void UpdateBonusItem(int index, GObject item)
+        private void UpdateBonusItem(int index, GObject item)
         {
             ItemData itemData = _bonusList[index] as ItemData;
             ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(itemData.id);
@@ -73,5 +76,18 @@ namespace GFGGame
             RarityIconController.UpdateRarityIcon(listItem.m_goodsItem.m_iconItem.m_rarity, itemData.id, true);
             listItem.target.data = itemData.id;
         }
+
+        private 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));
+        }
+        private void TryCompleteGuide()
+        {
+            GuideCfg cfg = GuideCfgArray.Instance.GetCfg(ConstGuideId.GET_BONUS_FIRST);
+            GuideController.TryCompleteGuideIndex(cfg.id, 1);
+            GuideController.TryCompleteGuide(ConstGuideId.GET_BONUS_FIRST, 1);
+
+        }
     }
 }

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

@@ -13,6 +13,7 @@ namespace GFGGame
         private GameObject _sceneObject;
         private GoWrapper _wrapper;
 
+        private int guideId = 0;//0:没有引导 1:首次获得套装2:首次获得套装部件
         public override void Dispose()
         {
             if (_scenePrefab != null)
@@ -38,7 +39,9 @@ namespace GFGGame
         {
             base.OnShown();
             int itemId = (int)viewData;
+            guideId = 0;
             UpdateView(itemId);
+            Timers.inst.AddUpdate(UpdateToCheckGuide);
         }
 
         protected override void OnHide()
@@ -53,17 +56,19 @@ namespace GFGGame
             {
                 _wrapper.wrapTarget = null;
             }
-            if(this.viewCom != null && this.viewCom.root == null)
+            if (this.viewCom == null || this.viewCom.root == null)
             {
 
                 Timers.inst.CallLater((object param) =>
                 {
                     GetSuitItemController.TryShow(0);
                 });
-                GuideController.HideGuide();
-                GuideController.TryCompleteGuide(ConstGuideId.GET_SUIT_ITEM_VIEW_FIRST);
-                GuideController.TryCompleteGuide(ConstGuideId.GET_SUIT_ITEM_VIEW_FULL);
             }
+            GuideController.HideGuide();
+            GuideController.TryCompleteGuide(ConstGuideId.GET_SUIT_ITEM_VIEW_FIRST);
+            GuideController.TryCompleteGuide(ConstGuideId.GET_SUIT_ITEM_VIEW_FULL);
+            Timers.inst.Remove(UpdateToCheckGuide);
+            TryCompleteGuide();
         }
 
         private void OnClickBg()
@@ -118,10 +123,12 @@ namespace GFGGame
                 int targetY = (int)(_ui.m_item.target.y + _ui.m_item.target.height + 50);
                 if (count == totalCount)
                 {
+                    guideId = 1;
                     GuideController.TryGuideByGuideId(null, ConstGuideId.GET_SUIT_ITEM_VIEW_FULL, 1, false, "恭喜你,集齐了第一套套装,快去换装界面穿上试试吧!点击空白区域继续", targetY);
                 }
                 else
                 {
+                    guideId = 2;
                     GuideController.TryGuideByGuideId(null, ConstGuideId.GET_SUIT_ITEM_VIEW_FIRST, 1, false, "恭喜你,获得了一件套装配件,集齐套装有惊喜哦!点击空白区域继续", targetY);
                 }
             }
@@ -148,5 +155,22 @@ namespace GFGGame
             }
         }
 
+        private 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));
+        }
+        private void TryCompleteGuide()
+        {
+            GuideCfg cfg;
+            cfg = GuideCfgArray.Instance.GetCfg(ConstGuideId.GET_SUIT_ITEM_FULL);
+            GuideController.TryCompleteGuideIndex(cfg.id, 1);
+            GuideController.TryCompleteGuide(ConstGuideId.GET_SUIT_ITEM_FULL, 1);
+            cfg = GuideCfgArray.Instance.GetCfg(ConstGuideId.GET_SUIT_ITEM_FIRST);
+            GuideController.TryCompleteGuideIndex(cfg.id, 1);
+            GuideController.TryCompleteGuide(ConstGuideId.GET_SUIT_ITEM_FIRST, 1);
+
+        }
     }
 }

+ 15 - 0
GameClient/Assets/Game/HotUpdate/Views/CommonGame/ItemView.cs

@@ -10,6 +10,7 @@ namespace GFGGame
         private GTextField _txtCount;
         private GTextField _txtHasCount;
         private GImage _imgGot;
+        private GLoader _loaShouTongRewardVisble;
 
         private ItemData _itemData;
 
@@ -22,6 +23,7 @@ namespace GFGGame
             _txtCount = obj.GetChild("txtCount") as GTextField;
             _txtHasCount = obj.GetChild("txtHasCount") as GTextField;
             _imgGot = obj.GetChild("imgGot") as GImage;
+            _loaShouTongRewardVisble = obj.GetChild("loaShouTongReward") as GLoader;
             AddClickListener();
         }
 
@@ -41,6 +43,7 @@ namespace GFGGame
             _loaIcon.url = ResPathUtil.GetIconPath(itemCfg);
             RarityIconController.UpdateRarityIcon(_loaRarity, _itemData.id, false);
             _imgGot.visible = false;
+            _loaShouTongRewardVisble.visible = false;
 
             _txtName.text = itemCfg.name;
             _txtCount.SetVar("count", _itemData.num.ToString()).FlushVars();
@@ -78,5 +81,17 @@ namespace GFGGame
                 _txtHasCount.visible = value;
             }
         }
+
+        public bool LoaShouTongRewardVisble
+        {
+            get
+            {
+                return _loaShouTongRewardVisble.visible;
+            }
+            set
+            {
+                _loaShouTongRewardVisble.visible = value;
+            }
+        }
     }
 }

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

@@ -28,6 +28,9 @@ namespace GFGGame
 
         private bool _guideMenu;
 
+        private UI_TypeItem listTypeItem_SingleFight;
+        private UI_TypeItem listTypeItem_BuyClothing;
+
 
         public override void Dispose()
         {
@@ -108,7 +111,7 @@ namespace GFGGame
             _levelID = (string)viewData;
             _levelCfg = StoryLevelCfgArray.Instance.GetCfg(_levelID);
             _fightCfg = StoryFightCfgArray.Instance.GetCfg(_levelCfg.fightID);
-            if(!string.IsNullOrEmpty(_fightCfg.music))
+            if (!string.IsNullOrEmpty(_fightCfg.music))
             {
                 MusicManager.Instance.Play(ResPathUtil.GetMusicPath(_fightCfg.music, "mp3"));
             }
@@ -169,11 +172,15 @@ namespace GFGGame
             {
                 GuideController.TryGuideDressUpFightViewBtnHint(_ui.m_btnHint);
             }
+            Timers.inst.AddUpdate(UpdateToCheckGuide);
+
         }
 
         protected override void OnHide()
         {
             base.OnHide();
+            Timers.inst.Remove(UpdateToCheckGuide);
+
             GuideController.HideGuide();
             if (_sceneObject != null)
             {
@@ -183,6 +190,8 @@ namespace GFGGame
             EventAgent.RemoveEventListener(ConstMessage.DRESS_UP_SCORE_CHANGED, UpdateScore);
             _fightCfg = null;
             _levelCfg = null;
+            listTypeItem_SingleFight = null;
+            listTypeItem_BuyClothing = null;
         }
 
         private void OnClickBtnBack()
@@ -666,5 +675,62 @@ namespace GFGGame
             item.m_loaTag.url = ResPathUtil.GetCommonGameResPath("fzd_bqbq_" + tag[0]);
             item.m_txtTag.text = tag[1];
         }
+
+        private void UpdateToCheckGuide(object param)
+        {
+
+            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)
+            {
+                int len = _ui.m_comListType1.m_listType.numChildren;
+                for (int i = 0; i < len; i++)
+                {
+                    UI_TypeItem item = UI_TypeItem.Proxy(_ui.m_comListType1.m_listType.GetChildAt(i));
+                    if (item != null)
+                    {
+                        int menuID = (int)item.target.data;
+                        DressUpMenuItemCfg1 dressUpMenuItemCfg1 = DressUpMenuItemCfg1Array.Instance.GetCfg(menuID);
+                        if (GuideDataManager.GetGuideCountCopy(ConstGuideId.SINGLE_FIGHT) <= 0)
+                        {
+
+                            if (dressUpMenuItemCfg1.type == ConstDressUpItemType.LIAN_YI_QUN)
+                            {
+                                listTypeItem_SingleFight = item;
+                                _ui.m_comListType1.m_listType.ScrollToView(i);
+                                break;
+                            }
+                        }
+                        else if (GuideDataManager.GetGuideCountCopy(ConstGuideId.BUY_CLOTHING) <= 0)
+                        {
+                            int type = 0;
+                            if (_fightCfg.needItemId > 0) type = ItemUtil.GetItemSubType(_fightCfg.needItemId);
+
+                            if (_fightCfg.needSuitId > 0) type = ConstDressUpItemType.TAO_ZHUANG;
+
+
+                            if (dressUpMenuItemCfg1.type == type)
+                            {
+                                listTypeItem_BuyClothing = item;
+                                _ui.m_comListType1.m_listType.ScrollToView(i);
+                                break;
+                            }
+                        }
+                    }
+                }
+            }
+
+            if (listTypeItem_SingleFight != null) GuideController.TryGuide(listTypeItem_SingleFight.target, ConstGuideId.SINGLE_FIGHT, 3, "点击相应的分类,可以快速找到服饰");
+            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.TryCompleteGuide(ConstGuideId.BUY_CLOTHING, 6);
+
+            GuideController.TryGuide(_ui.m_btnHint, ConstGuideId.TARGET_FIGHT, 1, "这次换装需要获得别人的认可呢");
+
+
+        }
     }
 }

+ 45 - 3
GameClient/Assets/Game/HotUpdate/Views/DressUp/DressUpView.cs

@@ -23,6 +23,7 @@ namespace GFGGame
         private int _currentMenuType;
         private int _rarityIndex = SORT_BY_HIGH_RARITY;
 
+        private UI_TypeItem listTypeItem_FreedomDress;
 
         public override void Dispose()
         {
@@ -98,11 +99,14 @@ namespace GFGGame
             EquipDataCache.cacher.PutOnCurrentSuitSaved();
             GuideController.TryGuideDressUpViewMenuType1(_ui.m_comListType1.m_listType);
             GuideController.TryGuideDressUpViewMenuType2(_ui.m_btnPhoto);
+            Timers.inst.AddUpdate(UpdateToCheckGuide);
         }
 
         protected override void OnHide()
         {
             base.OnHide();
+            listTypeItem_FreedomDress = null;
+            Timers.inst.Remove(UpdateToCheckGuide);
             GuideController.HideGuide();
             MusicManager.Instance.Play(ResPathUtil.GetMusicPath(ConstMusicName.DEFAULT));
             if (_sceneObject != null)
@@ -154,6 +158,8 @@ namespace GFGGame
                 GuideController.TryGuideDressUpViewMenuPart(_ui.m_partsList.m_list);
             }
             this.hideListType1();
+            UpdateListPartsSelected();
+
         }
 
         private void OnClickListType2Item(EventContext context)
@@ -164,6 +170,7 @@ namespace GFGGame
 
             this.showListParts(item2.type);
             this.hideListType2();
+
         }
 
         private void OnClickPartsListItem(EventContext context)
@@ -180,8 +187,8 @@ namespace GFGGame
             {
                 EquipDataCache.cacher.TryCancelSuit(id);
                 EquipDataCache.cacher.AddOrRemove(id, true);
-                UpdateListPartsSelected();
             }
+            UpdateListPartsSelected();
         }
 
         private void OnTouchPad()
@@ -426,11 +433,14 @@ namespace GFGGame
                 int id = (int)listItem.target.data;
                 if (_currentMenuType == ConstDressUpItemType.TAO_ZHUANG)
                 {
-                    listItem.m_iconSelected.visible = false;
+                    listItem.m_iconSelected.visible = EquipDataCache.cacher.suitId > 0 && id == EquipDataCache.cacher.suitId;
                 }
                 else
                 {
-                    listItem.m_iconSelected.visible = EquipDataCache.cacher.CheckDressUpItemIsOn(id);
+                    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;
                 }
             }
         }
@@ -543,5 +553,37 @@ namespace GFGGame
             _ui.m_btnShow.enabled = false;
             GTween.To(1, 0, 0.3f).SetTarget(_ui.m_btnShow, TweenPropType.Alpha);
         }
+
+        private void UpdateToCheckGuide(object param)
+        {
+            if (!ViewManager.CheckIsTopView(this.viewCom)) return;
+            if (listTypeItem_FreedomDress == null && GuideDataManager.GetGuideCountCopy(ConstGuideId.FREEDOM_DRESS) <= 0)
+            {
+                int len = _ui.m_comListType1.m_listType.numChildren;
+                for (int i = 0; i < len; i++)
+                {
+                    UI_TypeItem item = UI_TypeItem.Proxy(_ui.m_comListType1.m_listType.GetChildAt(i));
+                    if (item != null)
+                    {
+                        int menuID = (int)item.target.data;
+                        DressUpMenuItemCfg1 dressUpMenuItemCfg1 = DressUpMenuItemCfg1Array.Instance.GetCfg(menuID);
+
+                        if (dressUpMenuItemCfg1.type == ConstDressUpItemType.TAO_ZHUANG)
+                        {
+                            listTypeItem_FreedomDress = item;
+                            _ui.m_comListType1.m_listType.ScrollToView(i);
+                            break;
+                        }
+                    }
+                }
+            }
+            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_btnSave, ConstGuideId.FREEDOM_DRESS, 5, "搭配好的服饰,可以保存随时查看");
+            GuideController.TryGuide(_ui.m_btnHome, ConstGuideId.FREEDOM_DRESS, 6, "保存成功,回主界面看看吧");
+            GuideController.TryCompleteGuide(ConstGuideId.FREEDOM_DRESS, 6);
+            GuideController.TryGuide(_ui.m_btnPhoto, ConstGuideId.PHOTOGRAPH, 3, "点击拍照");
+
+        }
     }
 }

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

@@ -2,7 +2,9 @@ using FairyGUI;
 using System;
 using System.Collections;
 using System.Collections.Generic;
+using System.Drawing;
 using UI.DressUp;
+using UnityEditor;
 using UnityEngine;
 using UnityEngine.EventSystems;
 
@@ -45,6 +47,7 @@ namespace GFGGame
 
         private Vector3 distance = Vector3.zero;//点击位置和点击物体原点的距离,用于
         private Vector2 lastPos = Vector2.zero;//上一次移动后从物体中心到鼠标位置的方向
+        private float lastDistance = 0;//上一次移动后从物体中心到鼠标位置的方向
 
         // private float _startDistance;//从物体中心到缩放按钮的距离
 
@@ -122,7 +125,7 @@ namespace GFGGame
             UpdateScene();
             GuideController.TryGuideDressUpViewMenuPart1(_ui.m_ComSelectRes.m_comBtnTab.m_btn2);
             // GuideController.TryGuideBtnPhotograph(_ui.m_btnPhotograph);
-            if (GuideDataManager.GetGuideCount(ConstGuideId.PHOTOGRAPH_GUIDE) > 0)
+            if (GuideDataManager.GetGuideCount(ConstGuideId.PHOTOGRAPH_GUIDE) > 0 && GuideDataManager.GetGuideCountCopy(ConstGuideId.PHOTOGRAPH) > 0)
             {
                 _ui.m_loaGuide.enabled = false;
                 _ui.m_loaGuide1.enabled = false;
@@ -132,6 +135,8 @@ namespace GFGGame
                 _ui.m_loaGuide.enabled = true;
                 _ui.m_loaGuide1.enabled = false;
             }
+            // CreatTex();
+            Timers.inst.AddUpdate(UpdateToCheckGuide);
         }
         /************************************************************UI界面*********************************************************/
         private void OnContorllerChanged(EventContext context)
@@ -299,13 +304,16 @@ namespace GFGGame
         private void OnTouchBtnSizeBegin(EventContext context)
         {
             InputEvent inputEvent = (InputEvent)context.data;
+            Vector2 pt0 = this.viewCom.GlobalToLocal(new Vector2(inputEvent.x, inputEvent.y));
+
             Vector2 screenPos = this.viewCom.GlobalToLocal(_ui.m_comSelectBox.m_btnSize.LocalToGlobal(Vector2.zero));
-            Vector2 pt = new Vector2(screenPos.x, screenPos.y);
+            Vector2 pt1 = new Vector2(screenPos.x, screenPos.y);
             Vector2 pt2 = new Vector2(_ui.m_comSelectBox.target.x, _ui.m_comSelectBox.target.y);
-
+            lastDistance = Vector2.Distance(pt0, pt2);
             if (!_equipDistance.ContainsKey(memoryHitGameObj))
             {
-                float distance = Vector2.Distance(pt, pt2) / memoryHitGameObj.transform.localScale.x;
+                float distance = Vector2.Distance(pt1, pt2) / memoryHitGameObj.transform.localScale.x;
+                Debug.Log("distance:" + distance + "    pt1:" + pt1 + "   pt2:" + pt2);
                 _equipDistance.Add(memoryHitGameObj, distance);
             }
         }
@@ -313,6 +321,7 @@ namespace GFGGame
         {
             if (memoryHitGameObj == null) return;
             InputEvent inputEvent = (InputEvent)context.data;
+
             Vector2 pt1 = this.viewCom.GlobalToLocal(new Vector2(inputEvent.x, inputEvent.y));
             Vector2 pt2 = new Vector2(_ui.m_comSelectBox.target.x, _ui.m_comSelectBox.target.y);
             Vector2 curPos = pt1 - pt2;
@@ -323,12 +332,21 @@ namespace GFGGame
             lastPos = curPos;
             ControllerRotate(angle, memoryHitGameObj);
 
-
             float dist = Vector2.Distance(pt1, pt2);
-            float ss = dist / _equipDistance[memoryHitGameObj];
-            float newValue = Mathf.Clamp(ss, 0.1f, 2);
+
+            float ss = dist / lastDistance;
+            Debug.Log("dist:" + dist + "   lastDistance:" + lastDistance + "  ss:" + ss);
+            float newValue = Mathf.Clamp(ss * memoryHitGameObj.transform.localScale.x, 0.1f, 2);
             ControllerScale(newValue, memoryHitGameObj);
 
+            if (newValue <= 0.1f) return;
+            Debug.Log("ss:" + ss + "    newValue:" + newValue);
+            lastDistance = dist;
+            Debug.Log("newValue:" + newValue);
+
+
+
+
         }
         private void OnTouchBtnSizeEnd(EventContext context)
         {
@@ -372,7 +390,8 @@ namespace GFGGame
             if (value > MaxScale || value < MinScale) return;
             gameObject.transform.localScale = new Vector3(value, value, 1);
             Vector2 size = SceneController.GetGameObjectSize(gameObject);
-            _ui.m_comSelectBox.target.SetSize(size.x, size.y);
+            _ui.m_comSelectBox.target.size = size;
+            // _ui.m_comSelectBox.target.SetSize(size.x, size.y);
         }
         private void ControllerRotate(float value, GameObject gameObject)
         {
@@ -600,6 +619,8 @@ namespace GFGGame
             rotationGesture.onAction.Remove(OnRotate);
             pinchGesture = null;
             rotationGesture = null;
+
+            Timers.inst.Remove(UpdateToCheckGuide);
         }
         public override void Dispose()
         {
@@ -610,6 +631,106 @@ namespace GFGGame
             }
             base.Dispose();
         }
+        private void UpdateToCheckGuide(object param)
+        {
+            if (!ViewManager.CheckIsTopView(this.viewCom)) return;
+            GuideController.TryGuide(_ui.m_ComSelectRes.m_comBtnTab.m_btn2, ConstGuideId.PHOTOGRAPH, 4, "可以自由添加已有道具");
+            GuideController.TryGuide(_ui.m_loaGuide, ConstGuideId.PHOTOGRAPH, 5, "点击空白处查看整体效果");
+            GuideController.TryGuide(_ui.m_loaGuide1, ConstGuideId.PHOTOGRAPH, 6, "双指可控制放大缩小,或点击边框上的按键控制");
+            GuideController.TryGuide(_ui.m_btnPhotograph, ConstGuideId.PHOTOGRAPH, 7, "点击拍照,可以记录和分享美照啦");
+            GuideController.TryCompleteGuide(ConstGuideId.PHOTOGRAPH, 7);
+        }
+
+
+
+        private void CreatTex()
+        {
+            Rect rect = new Rect(-(UnityEngine.Screen.width / 2), -(UnityEngine.Screen.height / 2), UnityEngine.Screen.width, UnityEngine.Screen.height);
+            Texture2D tex = new Texture2D((int)rect.width, (int)rect.height, TextureFormat.ARGB32, false);//新建一个Texture2D对象
+            Transform transform = _sceneObject.transform.Find("Scene/Role");
+            Dictionary<SpriteRenderer, int> data = new Dictionary<SpriteRenderer, int>();
+
+            float width = 0;
+            float height = 0;
+            for (int i = 0; i < transform.childCount; i++)
+            {
+                SpriteRenderer sr = transform.GetChild(i).GetComponent<SpriteRenderer>();
+                if (sr != null)
+                {
+                    width = Math.Max(sr.bounds.size.x + sr.transform.position.x, width);
+                    height = Math.Max(sr.bounds.size.x + sr.transform.position.x, width);
+
+                    data.Add(sr, sr.sortingOrder);
+                }
+            }
+            List<KeyValuePair<SpriteRenderer, int>> lst = new List<KeyValuePair<SpriteRenderer, int>>(data);
+            lst.Sort(delegate (KeyValuePair<SpriteRenderer, int> s1, KeyValuePair<SpriteRenderer, int> s2) { return s2.Value.CompareTo(s1.Value); });
+            data.Clear();
+
+            for (int i = lst.Count - 1; i >= 0; i--)
+            {
+                SpriteRenderer sr = lst[i].Key;
+                if (sr != null)
+                {
+                    // Sprite sprite1 = sr.GetComponent<Sprite>();
+                    Texture2D texture2D = sr.sprite.texture;
+                    for (int j = 0; j < texture2D.width; j++)
+                    {
+                        for (int k = 0; k < texture2D.height; k++)
+                        {
+                            var color = texture2D.GetPixel(j, k);
+                            tex.SetPixel(j, k, color);
+                            tex.Apply();
+                            Debug.Log("color:" + color + "     " + j + "   " + k);
+                        }
+                    }
+                    // var color = texture2D.GetPixel(0, 0);
+
+                    // tex.SetPixel(0, 0, color);
+                    // tex.Apply();//保存像素信息
+                }
+            }
+            Sprite sprite = Sprite.Create(tex, rect, new Vector2(-(UnityEngine.Screen.width / 2), -(UnityEngine.Screen.height / 2)));
+            GameObject gameObject = _sceneObject.transform.Find("Scene/Role/BodyRes").gameObject;
+            gameObject.AddComponent<SpriteRenderer>();
+            gameObject.GetComponent<SpriteRenderer>().sprite = sprite;
+
+            // // Dictionary<string, int> data = new Dictionary<string, int>();
+            // // for (int i = 0; i < _equipRoleData.Count; i++)
+            // // {
+            // //     ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(_equipRoleData[i]);
+            // //     ItemTypeCfg typeCfg = ItemTypeCfgArray.Instance.GetCfg(itemCfg.subType);
+
+            // //     if (itemCfg.resLayer1 > 0)
+            // //     {
+            // //         data.Add(itemCfg.res, typeCfg.defaultLayer);
+            // //     }
+            // //     if (itemCfg.resLayer2 > 0)
+            // //     {
+            // //         data.Add(string.Format("{0}_t", itemCfg.res), typeCfg.defaultLayer);
+            // //     }
+            // // }
+            // // List<KeyValuePair<string, int>> lst = new List<KeyValuePair<string, int>>(data);
+            // // lst.Sort(delegate (KeyValuePair<string, int> s1, KeyValuePair<string, int> s2) { return s2.Value.CompareTo(s1.Value); });
+            // // data.Clear();
+            // // for (int i = lst.Count - 1; i >= 0; i--)
+            // // {
+            // //     string res = lst[i].Key;
+            // //     int sortingOrder = lst[i].Value;
+
+            // //     float tx, ty;
+            // //     DressUpUtil.LoadSpritePos(res, out tx, out ty);
+            // //     string resPath = ResPathUtil.GetDressUpPath(res);
+            // //     Bitmap bmp = new Bitmap(resPath);
+
+            // //     tex.SetPixel(0, 0, );//读取像素,屏幕左下角为0点
+            // //     tex.Apply();//保存像素信息
+            // // }
+            // tex.SetPixel(0, 0, );//读取像素,屏幕左下角为0点
+
+            // tex.Apply();//保存像素信息
+            // return tex;
+        }
 
     }
 }

+ 25 - 0
GameClient/Assets/Game/HotUpdate/Views/Guide/GuideView.cs

@@ -13,7 +13,13 @@ namespace GFGGame
         private GObject guideTarget = null;
         private float devWidth;
         private float devHeight;
+
+        private int guideId;
+        private int guideIndex;
         private bool isOptionalGuide = false;//弱引导,点击任意地方都可关闭
+
+        private GameObject _gameObject;
+        private GoWrapper _wrapper;
         public override void Dispose()
         {
             base.Dispose();
@@ -50,6 +56,11 @@ namespace GFGGame
             isOptionalGuide = (bool)dataList[4];
             devWidth = (float)dataList[5];
             devHeight = (float)dataList[6];
+            if (GuideController.useNewGuide)
+            {
+                guideId = (int)dataList[7];
+                guideIndex = (int)dataList[8];
+            }
             if (txtContent != null && txtContent.Length > 0)
             {
                 _ui.m_compTxt.m_txt.text = txtContent;
@@ -81,6 +92,12 @@ namespace GFGGame
                     Timers.inst.AddUpdate(UpdateGuideRect);
                 }
                 _ui.m_mask.target.visible = true;
+
+                if (GuideController.useNewGuide)
+                {
+                    guideTarget.onClick.Add(OnClickTarget);
+                    if (guideTarget == null) OnClickTarget();
+                }
             }
             else
             {
@@ -96,7 +113,9 @@ namespace GFGGame
         {
             Timers.inst.Remove(UpdateGuideRect);
             base.OnHide();
+            OnClickTarget();
             guideTarget = null;
+
         }
 
 
@@ -132,5 +151,11 @@ namespace GFGGame
                 }
             }
         }
+        private void OnClickTarget()
+        {
+            // if (guideTarget == null) return;
+            if (guideTarget != null) guideTarget.onClick.Remove(OnClickTarget);
+            GuideController.TryCompleteGuideIndex(guideId, guideIndex);
+        }
     }
 }

+ 4 - 2
GameClient/Assets/Game/HotUpdate/Views/Login/LoginView.cs

@@ -13,7 +13,7 @@ namespace GFGGame
         public override void Dispose()
         {
             _ui = null;
-            if(_scenePrefab != null)
+            if (_scenePrefab != null)
             {
                 GameObject.Destroy(_scenePrefab);
                 _scenePrefab = null;
@@ -38,6 +38,8 @@ namespace GFGGame
             _ui.m_btnNotice.onClick.Add(OnClickBtnNotice);
             _ui.m_btnStart.onClick.Add(OnClickBtnStart);
             _ui.m_btnLogout.onClick.Add(OnClickBtnLogout);
+
+            _ui.m_imgLogo.visible = LauncherConfig.netType != LauncherConfig.EnumNetType.TEMP;
         }
 
         protected override void OnShown()
@@ -56,7 +58,7 @@ namespace GFGGame
             else
             {
                 _ui.m_btnLogout.visible = GameController.CheckLoginCache(false);
-                if(!_ui.m_btnLogout.visible)
+                if (!_ui.m_btnLogout.visible)
                 {
                     ViewManager.Show<LoginInputView>();
                 }

+ 7 - 2
GameClient/Assets/Game/HotUpdate/Views/LuckyBox/LuckyBoxCardView.cs

@@ -90,11 +90,16 @@ namespace GFGGame
         }
         private void OnClickBtnPass()
         {
-            _ui.m_t_close.Stop(true, false);
-            _ui.m_t_open.Stop(true, false);
+
 
             ViewManager.Show(ViewName.LUCKY_BOX_BONUS_VIEW, new object[] { (this.viewData as object[])[0], _rewardList });
             this.Hide();
         }
+        protected override void OnHide()
+        {
+            _ui.m_t_close.Stop(true, false);
+            _ui.m_t_open.Stop(true, false);
+            base.OnHide();
+        }
     }
 }

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

@@ -36,12 +36,21 @@ namespace GFGGame
         private bool isFirst = true;
         public override void Dispose()
         {
-            for (int i = 0; i < _gameObjects.Count; i++)
+            // for (int i = 0; i < _gameObjects.Count; i++)
+            // {
+            //     SceneController.DestroyObjectFromView(_gameObjects[i]);
+            //     SceneController.DestroyObjectFromView(_gameObjects1[i]);
+            // }
+            ICollection keys0 = dicGameobj.Keys;
+            foreach (int key in keys0)
             {
-                SceneController.DestroyObjectFromView(_gameObjects[i]);
-                SceneController.DestroyObjectFromView(_gameObjects1[i]);
-            }
+                for (int i = 0; i < dicGameobj[key].Count; i++)
+                {
+                    SceneController.DestroyObjectFromView(dicGameobj[key][i]);
+                    SceneController.DestroyObjectFromView(dicGameobj1[key][i]);
+                }
 
+            }
             base.Dispose();
         }
 
@@ -68,11 +77,11 @@ namespace GFGGame
             _ui.m_ctrlRewardsType.selectedIndex = Array.IndexOf(LuckyBoxCfgArray.Instance.dataArray, LuckyBoxCfgArray.Instance.GetCfg((int)viewData)); ;
             isFirst = true;
             ResetStartView();
-
+            Timers.inst.AddUpdate(UpdateToCheckGuide);
         }
         private void ResetStartView()
         {
-            isGuide = GuideController.TryGuideLuckyBoxStar();
+            isGuide = GuideController.TryGuideLuckyBoxStar() || GuideDataManager.GetGuideCountCopy(ConstGuideId.LUCKY_BOX) <= 0;
 
             curComStar = null;
             comStars.Clear();
@@ -192,6 +201,7 @@ namespace GFGGame
             }
             else
             {
+                TryCompleteGuide();
                 Timers.inst.Add(0.3f, 1, ClickUIEnd);
                 GuideController.HideGuide();
                 GuideController.TryCompleteGuide(ConstGuideId.MAIN_UI_BTN_ZHAI_XING);
@@ -240,6 +250,28 @@ namespace GFGGame
             //     SceneController.DestroyObjectFromView(_gameObjects[i]);
             //     SceneController.DestroyObjectFromView(_gameObjects1[i]);
             // }
+            Timers.inst.Remove(UpdateToCheckGuide);
+        }
+        private void UpdateToCheckGuide(object param)
+        {
+
+            if (!ViewManager.CheckIsTopView(this.viewCom)) return;
+            GuideController.TryGuide(null, ConstGuideId.LUCKY_BOX, 4, "点击将星星链接在一起", false, 0, true, false, (int)(this.viewCom.height - 150));
+            TryCompleteGuide();
+        }
+        private void TryCompleteGuide()
+        {
+            if (comStars.Count == 0)
+            {
+                GuideCfg cfg = GuideCfgArray.Instance.GetCfg(ConstGuideId.LUCKY_BOX);
+
+                GuideController.TryCompleteGuideIndex(cfg.id, 4);
+                GuideController.TryCompleteGuide(ConstGuideId.LUCKY_BOX, 4);
+            }
+            else
+            {
+                GuideDataManager.currentGuideIdIndex = 3;
+            }
         }
     }
 }

+ 32 - 21
GameClient/Assets/Game/HotUpdate/Views/LuckyBox/LuckyBoxView.cs

@@ -200,9 +200,17 @@ namespace GFGGame
         {
             // bool result = GuideController.TryCompleteGuide(ConstGuideId.MAIN_UI_BTN_ZHAI_XING);
             LuckyBoxCfg luckyBoxCfg = LuckyBoxCfgArray.Instance.GetCfg(LuckyBoxBonusDataCache.currentBoxId);
-            if (GuideDataManager.GetGuideCount(ConstGuideId.MAIN_UI_BTN_ZHAI_XING) <= 0)
+            if (GuideDataManager.GetGuideCount(ConstGuideId.MAIN_UI_BTN_ZHAI_XING) <= 0 || GuideDataManager.GetGuideCountCopy(ConstGuideId.LUCKY_BOX) <= 0)
             {
+
                 Timers.inst.AddUpdate(UpdateToCheckGuide);
+                int count = ItemDataManager.GetItemNum(luckyBoxCfg.costID);
+                if (count < luckyBoxCfg.costNumTen)
+                {
+                    ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(luckyBoxCfg.costID);
+                    PromptController.Instance.ShowFloatTextPrompt(itemCfg.name + "不足");
+                    return;
+                }
                 ItemDataManager.Remove(luckyBoxCfg.costID, luckyBoxCfg.costNumTen);
                 LuckyBoxDataManager.Instance.RewardList = LuckyBoxBonusDataCache.GetBonusList(10, true);
                 ViewManager.Show(ViewName.LUCKY_BOX_STAR_VIEW, LuckyBoxBonusDataCache.currentBoxId, new object[] { ViewName.LUCKY_BOX_VIEW, LuckyBoxBonusDataCache.currentBoxId });
@@ -219,27 +227,7 @@ namespace GFGGame
                  });
             }
         }
-        private void UpdateToCheckGuide(object param)
-        {
-            if (this.viewCom.parent != null)
-            {
-                if (GRoot.inst.GetTopWindow() == this.viewCom)
-                {
-                    if (GuideController.TryGuideByGuideId(_ui.m_btnBuyTen.target, ConstGuideId.MAIN_UI_BTN_ZHAI_XING, 1, true, "点击摘取十次"))
-                    {
-                        Timers.inst.Remove(UpdateToCheckGuide);
-                    }
-                    else
-                    {
-                        if (GuideController.TryGuideByGuideId(_ui.m_btnBack, ConstGuideId.LUCKY_BOX_VIEW_BTN_BACK, 1, true, "获得一套完整的服装啦,马上去试穿一下", 0, ConstGuideId.MAIN_UI_BTN_ZHAI_XING))
-                        {
-                            Timers.inst.Remove(UpdateToCheckGuide);
-                        }
-                    }
-                }
-            }
 
-        }
 
         protected override void OnHide()
         {
@@ -270,6 +258,29 @@ namespace GFGGame
         {
             LuckyBoxBonusDataCache.currentBoxId = LuckyBoxDataManager.BOX_ID_1;
         }
+        private void UpdateToCheckGuide(object param)
+        {
+            if (this.viewCom.parent != null)
+            {
+                if (GRoot.inst.GetTopWindow() == this.viewCom)
+                {
+                    if (GuideController.TryGuideByGuideId(_ui.m_btnBuyTen.target, ConstGuideId.MAIN_UI_BTN_ZHAI_XING, 1, true, "点击摘取十次"))
+                    {
+                        Timers.inst.Remove(UpdateToCheckGuide);
+                    }
+                    else
+                    {
+                        if (GuideController.TryGuideByGuideId(_ui.m_btnBack, ConstGuideId.LUCKY_BOX_VIEW_BTN_BACK, 1, true, "获得一套完整的服装啦,马上去试穿一下", 0, ConstGuideId.MAIN_UI_BTN_ZHAI_XING))
+                        {
+                            Timers.inst.Remove(UpdateToCheckGuide);
+                        }
+                    }
+                }
+            }
+            if (!ViewManager.CheckIsTopView(this.viewCom)) return;
+            GuideController.TryGuide(_ui.m_btnBuyTen.target, ConstGuideId.LUCKY_BOX, 3, "点击摘取十次");
+            GuideController.TryGuide(_ui.m_btnBack, ConstGuideId.FREEDOM_DRESS, 1, "获得一套完整的服装啦,马上去试穿一下");
 
+        }
     }
 }

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

@@ -46,6 +46,7 @@ namespace GFGGame
             UpdateView(0);
 
             GuideController.TryGuideStoryCardChoose(_ui.m_listCard);
+            Timers.inst.AddUpdate(UpdateToCheckGuide);
         }
 
         private void UpdateView(int index)
@@ -115,6 +116,14 @@ namespace GFGGame
         protected override void OnHide()
         {
             base.OnHide();
+            Timers.inst.Remove(UpdateToCheckGuide);
+        }
+        private void UpdateToCheckGuide(object param)
+        {
+            if (!ViewManager.CheckIsTopView(this.viewCom)) return;
+
+            GuideController.TryGuide(_ui.m_listCard, ConstGuideId.SKILL_CARD_FIGHT, 1, "选择一张合适的词牌,增加过关战斗力", true, 0);
+            GuideController.TryCompleteGuide(ConstGuideId.SKILL_CARD_FIGHT, 1);
         }
     }
 }

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

@@ -75,6 +75,7 @@ namespace GFGGame
             {
                 Timers.inst.AddUpdate(UpdateToCheckGuide);
             }
+            Timers.inst.AddUpdate(UpdateToCheckGuide);
         }
 
         protected override void OnHide()
@@ -160,6 +161,9 @@ namespace GFGGame
                             // }
                             if (levelItem.m_holder.visible)
                             {
+                                // StoryDataManager.currentChapter = _chapterID;
+                                StoryDataManager.currentLevel = int.Parse(levelItem.target.name.Replace("g", ""));
+
                                 _unPasslevelItem = levelItem.target;
                                 _gameObject = null;
                                 _wrapper = null;
@@ -246,49 +250,63 @@ namespace GFGGame
 
         private void UpdateToCheckGuide(object param)
         {
-            if (this.viewCom.parent != null)
+            // if (this.viewCom.parent != null)
+            // {
+            //     int index = this.viewCom.parent.GetChildIndex(this.viewCom);
+            //     if (index == this.viewCom.parent.numChildren - 1 && GRoot.inst.GetTopWindow() == null)
+            //     {
+
+            if (!ViewManager.CheckIsTopView(this.viewCom)) return;
+
+            if (_unPasslevelItem != null && GuideDataManager.GetGuideCount(ConstGuideId.SINGLE_FIGHT_GUIDE) <= 0)
             {
-                int index = this.viewCom.parent.GetChildIndex(this.viewCom);
-                if (index == this.viewCom.parent.numChildren - 1 && GRoot.inst.GetTopWindow() == null)
-                {
-                    if (_unPasslevelItem != null && GuideDataManager.GetGuideCount(ConstGuideId.SINGLE_FIGHT_GUIDE) <= 0)
-                    {
-                        GuideController.TryGuideChapterViewLevelItem(_unPasslevelItem);
-                        // Timers.inst.Remove(UpdateToCheckGuide);
+                GuideController.TryGuideChapterViewLevelItem(_unPasslevelItem);
+                // Timers.inst.Remove(UpdateToCheckGuide);
 
-                    }
-                    else if (GuideDataManager.GetGuideCount(ConstGuideId.MAIN_UI_BTN_ZHAI_XING) <= 0)
-                    {
-                        GuideController.TryGuideGoBackStoryChapter(_ui.m_btnHome);
-                        // Timers.inst.Remove(UpdateToCheckGuide);
+            }
+            else if (GuideDataManager.GetGuideCount(ConstGuideId.MAIN_UI_BTN_ZHAI_XING) <= 0)
+            {
+                GuideController.TryGuideGoBackStoryChapter(_ui.m_btnHome);
+                // Timers.inst.Remove(UpdateToCheckGuide);
 
-                    }
-                    else if (GuideDataManager.GetGuideCount(ConstGuideId.SUIT_SYNTHETIC_GUIDE) <= 0 && GuideDataManager.GetGuideCount(ConstGuideId.MAIN_UI_BTN_HUAN_ZHUANG) > 0 && GuideDataManager.currentGuideId != ConstGuideId.SUIT_SYNTHETIC_GUIDE)
-                    {
-                        GuideController.TryGuideStoryChapterView(_unPasslevelItem);
-                        // Timers.inst.Remove(UpdateToCheckGuide);
+            }
+            else if (GuideDataManager.GetGuideCount(ConstGuideId.SUIT_SYNTHETIC_GUIDE) <= 0 && GuideDataManager.GetGuideCount(ConstGuideId.MAIN_UI_BTN_HUAN_ZHUANG) > 0 && GuideDataManager.currentGuideId != ConstGuideId.SUIT_SYNTHETIC_GUIDE)
+            {
+                GuideController.TryGuideStoryChapterView(_unPasslevelItem);
+                // Timers.inst.Remove(UpdateToCheckGuide);
 
-                    }
-                    else if (GuideDataManager.GetGuideCount(ConstGuideId.SUIT_SYNTHETIC_GUIDE) <= 0 && GuideDataManager.currentGuideId == ConstGuideId.SUIT_SYNTHETIC_GUIDE)
-                    {
-                        GuideController.TryGuideStoryChapterViewBtnHome(_ui.m_btnHome);
-                        // Timers.inst.Remove(UpdateToCheckGuide);
+            }
+            else if (GuideDataManager.GetGuideCount(ConstGuideId.SUIT_SYNTHETIC_GUIDE) <= 0 && GuideDataManager.currentGuideId == ConstGuideId.SUIT_SYNTHETIC_GUIDE)
+            {
+                GuideController.TryGuideStoryChapterViewBtnHome(_ui.m_btnHome);
+                // Timers.inst.Remove(UpdateToCheckGuide);
 
-                    }
-                    else if (GuideDataManager.GetGuideCount(ConstGuideId.PHOTOGRAPH_GUIDE) <= 0)
-                    {
-                        GuideController.TryGuideGoBackStoryChapter1(_ui.m_btnHome);
-                    }
+            }
+            else if (GuideDataManager.GetGuideCount(ConstGuideId.PHOTOGRAPH_GUIDE) <= 0)
+            {
+                GuideController.TryGuideGoBackStoryChapter1(_ui.m_btnHome);
+            }
 
-                    else if (GuideDataManager.GetGuideCount(ConstGuideId.CARD_UP_STAR) <= 0)
-                    {
-                        GuideController.TryGuideStoryLevelInfoBtnHome(_ui.m_btnHome);
-                        // Timers.inst.Remove(UpdateToCheckGuide);
+            else if (GuideDataManager.GetGuideCount(ConstGuideId.CARD_UP_STAR) <= 0)
+            {
+                GuideController.TryGuideStoryLevelInfoBtnHome(_ui.m_btnHome);
+                // Timers.inst.Remove(UpdateToCheckGuide);
 
-                    }
-                }
             }
 
+
+            GuideController.TryGuide(_unPasslevelItem, ConstGuideId.SINGLE_FIGHT, 1, "遇到意外事件了,暂时解释不清,先按请求换上服饰吧");
+            GuideController.TryGuide(_ui.m_btnHome, ConstGuideId.LUCKY_BOX, 1, "点击返回主界面");
+
+            GuideController.TryGuide(_unPasslevelItem, ConstGuideId.CLOTHING_SYNTHETIC, 1, "点击下一关");
+            GuideController.TryGuide(_ui.m_btnHome, ConstGuideId.CLOTHING_SYNTHETIC, 4, "先回到主界面");
+
+            GuideController.TryGuide(_ui.m_btnHome, ConstGuideId.UP_CARD_STAR, 1, "点击返回主界面");
+
+            GuideController.TryGuide(_ui.m_btnHome, ConstGuideId.PHOTOGRAPH, 1, "拍照功能已开启,解锁更多搭配和玩法哦");
+
         }
     }
-}
+
+}
+

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

@@ -29,6 +29,8 @@ namespace GFGGame
             isfullScreen = true;
 
             _scenePrefab = GFGAsset.Load<GameObject>(ResPathUtil.GetPrefabPath("SceneFightSingleScore"));
+            _ui.m_btnBack.onClick.Add(OnBtnBackClick);
+
         }
 
         protected override void OnShown()
@@ -60,6 +62,7 @@ namespace GFGGame
             {
                 SkillScoreStart(null);
             });//评分结束
+            Timers.inst.AddUpdate(UpdateToCheckGuide);
 
         }
 
@@ -94,9 +97,20 @@ namespace GFGGame
 
             if (_index == 0 && GuideDataManager.GetGuideCount(ConstGuideId.SINGLE_FIGHT_GUIDE) <= 0)
             {
+                _ui.m_comClickCircle.m_loaCircle.touchable = false;
+                _ui.m_comClickCircle.m_t0.Play(1, 0, 0, 0.5f, () =>
+                {
+                    GuideController.TryGuideSingleScoreViewComClickCircle(_ui.m_comClickCircle.m_loaCircle);
+                    _ui.m_comClickCircle.m_loaCircle.touchable = true;
+                });
+            }
+            else if (_index == 0 && GuideDataManager.GetGuideCountCopy(ConstGuideId.SINGLE_FIGHT) <= 0)
+            {
+                _ui.m_comClickCircle.m_loaCircle.touchable = false;
                 _ui.m_comClickCircle.m_t0.Play(1, 0, 0, 0.5f, () =>
                 {
                     GuideController.TryGuideSingleScoreViewComClickCircle(_ui.m_comClickCircle.m_loaCircle);
+                    _ui.m_comClickCircle.m_loaCircle.touchable = true;
                 });
             }
             else
@@ -219,7 +233,7 @@ namespace GFGGame
         private void SetScoreUI()
         {
             EquipDataCache.cacher.totalScore = (int)Math.Round(_score);
-            _ui.m_proScore.m_txtCount.text = Math.Round(_score).ToString();
+            _ui.m_proScore.m_txtCount.text = "总分:" + Math.Round(_score).ToString();
             _ui.m_proScore.target.TweenValue(_score, 0.2f);
 
         }
@@ -229,10 +243,24 @@ namespace GFGGame
             EventAgent.RemoveEventListener(ConstMessage.CARD_SKILL, CircleScoreStart);
             Timers.inst.Remove(SkillScoreStart);
             Timers.inst.Remove(Skip);
+            _ui.m_proScore.target.value = 0;
+            _ui.m_proScore.m_txtCount.text = "总分:0";
             this.Hide();
             ViewManager.Show(ViewName.STORY_FIGHT_RESULT_VIEW);
         }
+        private void OnBtnBackClick()
+        {
+            EventAgent.RemoveEventListener(ConstMessage.CARD_SKILL, CircleScoreStart);
+            Timers.inst.Remove(SkillScoreStart);
+            Timers.inst.Remove(Skip);
+            _ui.m_comAllCircle.target.visible = false;
+            _ui.m_proScore.target.value = 0;
+            _ui.m_proScore.m_txtCount.text = "总分:0";
+
+            this.Hide();
+            ViewManager.Show(ViewName.STORY_CHAPTER_VIEW, StoryDataManager.currentChapter, ViewManager.GetGoBackDatas(ViewName.STORY_CHAPTER_VIEW));
 
+        }
         protected override void OnHide()
         {
             base.OnHide();
@@ -241,6 +269,7 @@ namespace GFGGame
                 GameObject.Destroy(_sceneObject);
                 _sceneObject = null;
             }
+            Timers.inst.Remove(UpdateToCheckGuide);
 
         }
 
@@ -277,5 +306,21 @@ namespace GFGGame
             return clickState;
         }
 
+        private void UpdateToCheckGuide(object param)
+        {
+            // if (this.viewCom.parent != null)
+            // {
+            //     int index = this.viewCom.parent.GetChildIndex(this.viewCom);
+            //     if (index == this.viewCom.parent.numChildren - 1 && GRoot.inst.GetTopWindow() == null)
+            //     {
+            if (!ViewManager.CheckIsTopView(this.viewCom)) return;
+
+            float scaleX = _ui.m_comClickCircle.m_imgCircle.scaleX;
+            if (scaleX == 0.5)
+            {
+                GuideController.TryGuide(_ui.m_comClickCircle.m_loaCircle, ConstGuideId.SINGLE_FIGHT, 6, "服饰比较繁琐,适当的整理会更加分,点击为各部位修整吧");
+            }
+            GuideController.TryCompleteGuide(ConstGuideId.SINGLE_FIGHT, 6);
+        }
     }
-}
+}

+ 5 - 4
GameClient/Assets/Game/HotUpdate/Views/MainStory/StoryFightSingleView.cs

@@ -11,7 +11,7 @@ namespace GFGGame
 
         public override void Dispose()
         {
-            if(_scenePrefab != null)
+            if (_scenePrefab != null)
             {
                 GameObject.Destroy(_scenePrefab);
                 _scenePrefab = null;
@@ -37,13 +37,14 @@ namespace GFGGame
         protected override void OnShown()
         {
             base.OnShown();
-            if(_sceneObject == null)
+            if (_sceneObject == null)
             {
                 _sceneObject = GameObject.Instantiate(_scenePrefab);
             }
             SceneController.UpdateRole(EquipDataCache.cacher.equipDatas, _sceneObject);
             _ui.m_roleName.m_txtName.text = RoleDataManager.roleName;
-            Timers.inst.Add(0.9f, 1, (object param) => {
+            Timers.inst.Add(0.9f, 1, (object param) =>
+            {
                 this.Hide();
                 ViewManager.Show(ViewName.STORY_FIGHT_SINGLE_SCORE_VIEW);
             });
@@ -52,7 +53,7 @@ namespace GFGGame
         protected override void OnHide()
         {
             base.OnHide();
-            if(_sceneObject != null)
+            if (_sceneObject != null)
             {
                 GameObject.Destroy(_sceneObject);
                 _sceneObject = null;

+ 41 - 10
GameClient/Assets/Game/HotUpdate/Views/MainStory/StoryFightTargetScoreView.cs

@@ -82,15 +82,19 @@ namespace GFGGame
             });
             _ui.m_comMineCircle.target.onClick.Add(() =>
             {
-                if (_index == 0 && GuideDataManager.GetGuideCount(ConstGuideId.TARGET_FIGHT_GUIDE) <= 0 && playStop)
+                if (_index == 0 && GuideDataManager.GetGuideCount(ConstGuideId.TARGET_FIGHT_GUIDE) <= 0 && playStop || _index == 0 && GuideDataManager.GetGuideCountCopy(ConstGuideId.TARGET_FIGHT) <= 0 && playStop)
                 {
                     playStop = false;
                     _ui.m_comTargetCircle.target.visible = false;
                     _ui.m_comMineCircle.target.visible = false;
-                    _ui.m_comMineCircle.m_t0.Stop(true, false);
-                    _ui.m_comTargetCircle.m_t0.Stop(true, false);
+                    // _ui.m_comMineCircle.m_t0.Stop(true, false);
+                    // _ui.m_comTargetCircle.m_t0.Stop(true, false);
+                    _ui.m_comMineCircle.m_t0.Play(CircleScoreEnd);
+                    _ui.m_comTargetCircle.m_t0.Play();
                     _ui.m_btnSkill0.target.touchable = true;
                     GuideController.TryGuideStoryFightTargetScorebtnSkill0(_ui.m_btnSkill0.target);
+                    // CircleScoreEnd();
+
                 }
             });
         }
@@ -126,7 +130,12 @@ namespace GFGGame
             {
                 _ui.m_btnSkill0.target.touchable = false;
             }
+            else if (_index == 0 && GuideDataManager.GetGuideCountCopy(ConstGuideId.TARGET_FIGHT) <= 0)
+            {
+                _ui.m_btnSkill0.target.touchable = false;
+            }
             Timers.inst.Add(0.5f, 1, CircleScoreStart);//评分开始
+            Timers.inst.AddUpdate(UpdateToCheckGuide);
         }
         private void UpdateNormal()
         {
@@ -228,6 +237,15 @@ namespace GFGGame
                 _ui.m_comTargetCircle.m_t0.Play(1, 0, 0, 0.75f, null);
                 return;
             }
+            else if (_index == 0 && GuideDataManager.GetGuideCountCopy(ConstGuideId.TARGET_FIGHT) <= 0)
+            {
+                _ui.m_comMineCircle.m_t0.Play(1, 0, 0, 0.75f, () =>
+                {
+                    playStop = true;
+                });
+                _ui.m_comTargetCircle.m_t0.Play(1, 0, 0, 0.75f, null);
+                return;
+            }
             _ui.m_comMineCircle.m_t0.Play(CircleScoreEnd);
             _ui.m_comTargetCircle.m_t0.Play();
 
@@ -270,13 +288,13 @@ namespace GFGGame
             bar.value = 100;
             bar.TweenValue(0, time).OnComplete((GTweener tweener) =>
             {
-                GProgressBar bar = (GProgressBar)tweener.target;
-                UI_ComBtnSkill item = UI_ComBtnSkill.Proxy(bar.parent);
-                int count = (int)item.m_icon.data;
-                RoleSkillCfg cfg = item.target.data as RoleSkillCfg;
-                item.m_c1.selectedIndex = count >= cfg.limiteCount ? 2 : 0;
+                GProgressBar bar1 = (GProgressBar)tweener.target;
+                UI_ComBtnSkill item1 = UI_ComBtnSkill.Proxy(bar1.parent);
+                int count = (int)item1.m_icon.data;
+                RoleSkillCfg cfg = item1.target.data as RoleSkillCfg;
+                item1.m_c1.selectedIndex = count >= cfg.limiteCount ? 2 : 0;
 
-                item.m_proCD.visible = false;
+                item1.m_proCD.visible = false;
             });
         }
 
@@ -433,7 +451,7 @@ namespace GFGGame
             }
             _npcSkillDic.Clear();
 
-
+            Timers.inst.Remove(UpdateToCheckGuide);
         }
 
         private void Skip(object param = null)
@@ -483,5 +501,18 @@ namespace GFGGame
             Timers.inst.Remove(CircleScoreStart);
             Timers.inst.Remove(Skip);
         }
+
+        private void UpdateToCheckGuide(object param)
+        {
+            if (!ViewManager.CheckIsTopView(this.viewCom)) return;
+
+            if (playStop)
+            {
+                GuideController.TryGuide(_ui.m_comMineCircle.target, ConstGuideId.TARGET_FIGHT, 2, "这里可以观察双方的分数计算", false, 0, true, false, 0, -128f, -128f);
+            }
+            GuideController.TryGuide(_ui.m_btnSkill0.target, ConstGuideId.TARGET_FIGHT, 3, "使用技能,可以增加胜出的几率哦,点击看看");
+            GuideController.TryCompleteGuide(ConstGuideId.TARGET_FIGHT, 3);
+
+        }
     }
 }

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

@@ -33,10 +33,10 @@ namespace GFGGame
             _ui.m_btnFightOnce.onClick.Add(OnClickBtnFightOnce);
             _ui.m_btnFightTimes.onClick.Add(OnClickBtnFightTimes);
 
-            _ui.m_btnClose.onClick.Add(() =>
-            {
-                this.Hide();
-            });
+            // _ui.m_btnClose.onClick.Add(() =>
+            // {
+            //     this.Hide();
+            // });
 
             _ui.m_listTag.itemRenderer = RenderListTagItem;
         }
@@ -46,7 +46,9 @@ namespace GFGGame
             base.OnShown();
             _levelID = (string)viewData;
             _storyType = int.Parse(_levelID.Split('_')[0]) / 10000;
+            _ui.m_btnStart.touchable = true;
             UpdateView();
+
             GuideController.TryGuideChapterInfoViewBtnStart(_ui.m_btnStart, "点击开启换装");
             GuideController.TryGuideStoryLevelInfoViewTxtNeed(_ui.m_txtNeed);
             GuideController.TryGuideStoryLevelInfoListTag(_ui.m_listTag);
@@ -58,7 +60,9 @@ namespace GFGGame
         protected override void OnHide()
         {
             base.OnHide();
+
             EventAgent.RemoveEventListener(ConstMessage.ROLE_POWER_CHANGED, UpdateBtnFightTimes);
+            TryCompleteGuide();
             Timers.inst.Remove(UpdateToCheckGuide);
 
             if (GuideDataManager.currentGuideId == ConstGuideId.SUIT_SYNTHETIC_GUIDE)
@@ -125,6 +129,8 @@ namespace GFGGame
                 item.data = new ItemView(item as GComponent);
             }
             (item.data as ItemView).SetData(itemData);
+            List<ItemData> bonusOnceData = StoryBonusDataCache.GetBonusData(_levelID).bonusOnce;
+            (item.data as ItemView).LoaShouTongRewardVisble = !StoryDataManager.CheckCurrentLevelPass() && index < bonusOnceData.Count;
 
         }
 
@@ -248,17 +254,28 @@ namespace GFGGame
 
         private void UpdateToCheckGuide(object param)
         {
-            if (GRoot.inst.GetTopWindow() == this.viewCom)
-            {
-                GuideController.TryGuideStoryLevelInfoView(null);
-                Timers.inst.Remove(UpdateToCheckGuide);
+            // if (GRoot.inst.GetTopWindow() == this.viewCom)
+            // {
+            if (!ViewManager.CheckIsTopView(this.viewCom)) return;
+
+            GuideController.TryGuideStoryLevelInfoView(null);
+            GuideController.TryGuide(_ui.m_btnStart, ConstGuideId.SINGLE_FIGHT, 2, "点击开启换装");
 
+            if (GuideController.TryGuide(_ui.m_txtNeed, ConstGuideId.CLOTHING_SYNTHETIC, 2, "这次必需品,要通过合成获得"))
+            {
+                _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.TryCompleteGuide(ConstGuideId.OPEN_TAGS, 1);
+
+
+        }
+
+        private void TryCompleteGuide()
+        {
+            GuideCfg cfg = GuideCfgArray.Instance.GetCfg(ConstGuideId.CLOTHING_SYNTHETIC);
+            GuideController.TryCompleteGuideIndex(cfg.id, 3);
         }
-        // protected override void OnHide()
-        // {
-        //     base.OnHide();
-        //     GuideController.HideGuide();
-        // }
     }
 }

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

@@ -14,6 +14,7 @@ namespace GFGGame
         private bool _fistPassLastLvl;
         private bool _curLvfirstPass = false;
 
+        private bool resule = false;
         public override void Dispose()
         {
             if (_scenePrefab != null)
@@ -49,6 +50,8 @@ namespace GFGGame
         protected override void OnShown()
         {
             base.OnShown();
+            // Timers.inst.AddUpdate(UpdateToCheckGuide);
+
             if (_sceneObject == null)
             {
                 _sceneObject = GameObject.Instantiate(_scenePrefab);
@@ -65,11 +68,12 @@ namespace GFGGame
             _ui.m_expBar.m_pbExp.max = roleLevelCfg.exp;
             _ui.m_expBar.m_pbExp.value = RoleDataManager.exp;
 
-            bool resule = GetFightResult();
+            resule = GetFightResult();
             int starCount = !resule ? 0 : StoryDataManager.GetResultStarCount(score);
             StoryUtil.UpdateStar(starCount, _ui.m_selfScore.m_flower.target);
             _ui.m_selfScore.m_bg.url = "ui://Main/zd_jsjm_jszi_" + starCount;
             TextFormat tf = _ui.m_selfScore.m_txtScore.textFormat;
+            UpdateToCheckGuide(null);
             if (!resule)
             {
                 tf.font = "ui://Main/Font3";
@@ -95,6 +99,7 @@ namespace GFGGame
             }
             Timers.inst.Add(0.5f, 1, AddExp);
             _ui.m_selfScore.m_txtScore.textFormat = tf;
+
         }
 
         private bool GetFightResult()
@@ -126,6 +131,8 @@ namespace GFGGame
         protected override void OnHide()
         {
             base.OnHide();
+            // Timers.inst.Remove(UpdateToCheckGuide);
+            TryCompleteGuide();
             GuideController.TryCompleteGuide(ConstGuideId.CHAPTER_RESULT_VIEW);
             GuideController.TryCompleteGuide(ConstGuideId.FIGHT_RESULT_TIPS_GUIDE);
             Timers.inst.Remove(AddExp);
@@ -178,6 +185,31 @@ namespace GFGGame
             }
             GuideController.TryGuideByGuideId(null, ConstGuideId.FIGHT_RESULT_TIPS_GUIDE, 2, false, txt, targetY);
         }
+        private void UpdateToCheckGuide(object param)
+        {
+            if (!ViewManager.CheckIsTopView(this.viewCom)) return;
+            if (!resule) GuideController.TryGuide(null, ConstGuideId.FIRST_FIGHT_FAILED, 1, "不要气馁呀,可以通过再次挑战已通关的关卡、摘星、绣坊等途径获取更多的物资来提升自己的战斗力哦!", false, 0, true, false, (int)(this.viewCom.height - 150));
+            if (resule) GuideController.TryGuide(null, ConstGuideId.FIRST_FIGHT_SINGLE_WIN, 1, "这条连衣裙可真好看!点击空白区域继续", false, 0, true, false, (int)(this.viewCom.height - 150));
+            if (resule) GuideController.TryGuide(null, ConstGuideId.FIRST_FIGHT_TARGET_WIN, 1, "你太厉害了,初次对战就获得了这么好的战绩,继续加油吧", false, 0, true, false, (int)(this.viewCom.height - 350));
+        }
+
+        private void TryCompleteGuide()
+        {
+            GuideCfg cfg;
+            cfg = GuideCfgArray.Instance.GetCfg(ConstGuideId.FIRST_FIGHT_FAILED);
+            GuideController.TryCompleteGuideIndex(cfg.id, 1);
+            GuideController.TryCompleteGuide(ConstGuideId.FIRST_FIGHT_FAILED, 1);
+
+            cfg = GuideCfgArray.Instance.GetCfg(ConstGuideId.FIRST_FIGHT_SINGLE_WIN);
+            GuideController.TryCompleteGuideIndex(cfg.id, 1);
+            GuideController.TryCompleteGuide(ConstGuideId.FIRST_FIGHT_SINGLE_WIN, 1);
+
+            cfg = GuideCfgArray.Instance.GetCfg(ConstGuideId.FIRST_FIGHT_TARGET_WIN);
+            GuideController.TryCompleteGuideIndex(cfg.id, 1);
+            GuideController.TryCompleteGuide(ConstGuideId.FIRST_FIGHT_TARGET_WIN, 1);
+
+        }
+
 
     }
 }

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

@@ -129,8 +129,9 @@ namespace GFGGame
             _valueBarController.OnShown();
             AddEffect();
 
-            TryGuide();
+            UpdateToCheckGuide();
             Timers.inst.AddUpdate(Update);
+            Timers.inst.AddUpdate(UpdateToCheckNewGuide);
         }
 
         protected override void OnHide()
@@ -144,7 +145,7 @@ namespace GFGGame
             }
             _valueBarController.OnHide();
             Timers.inst.Remove(Update);
-            Timers.inst.Remove(UpdateToCheckGuide);
+            Timers.inst.Remove(UpdateToCheckNewGuide);
         }
         private void AddEffect()
         {
@@ -299,14 +300,15 @@ namespace GFGGame
                 int index = this.viewCom.parent.GetChildIndex(this.viewCom);
                 if (index == this.viewCom.parent.numChildren - 1 && GRoot.inst.GetTopWindow() == null)
                 {
-                    TryGuide();
+                    UpdateToCheckGuide();
                     Timers.inst.Remove(UpdateToCheckGuide);
                 }
             }
-
+            if (!ViewManager.CheckIsTopView(this.viewCom)) return;
+            // GuideController.TryGuide(_ui.m_btnZhaiXing.target, ConstGuideId.LUCKY_BOX, 2, "“摘星”里可以通过星辰的力量获得服饰");
         }
 
-        private void TryGuide()
+        private void UpdateToCheckGuide()
         {
             // TryGuideByGuideId(_ui.m_btnZhaiXing.target, ConstGuideId.MAIN_UI_BTN_ZHAI_XING, 1, false, "点击摘星按钮,进入抽奖界面")
             if (!GuideController.TryGuideLuckyBox(_ui.m_btnZhaiXing.target))
@@ -329,6 +331,24 @@ namespace GFGGame
                 }
 
             }
+
+
+
+        }
+        private void UpdateToCheckNewGuide(object param)
+        {
+            if (!ViewManager.CheckIsTopView(this.viewCom)) return;
+            GuideController.TryGuide(_ui.m_btnZhaiXing.target, ConstGuideId.LUCKY_BOX, 2, "“摘星”里可以通过星辰的力量获得服饰", false, 0, false);
+
+            GuideController.TryCompleteGuide(ConstGuideId.FREEDOM_DRESS, 6);
+            GuideController.TryGuide(_ui.m_btnHuanZhuang.target, ConstGuideId.FREEDOM_DRESS, 2, "在这里,可以自由搭配服饰和分享哦~", false, 0, false);
+
+            GuideController.TryGuide(_ui.m_btnXiuFang.target, ConstGuideId.CLOTHING_SYNTHETIC, 5, "绣坊里增添了新功能", false, 0, 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);
+
         }
     }
 }

+ 28 - 13
GameClient/Assets/Game/HotUpdate/Views/ViewManager.cs

@@ -6,8 +6,8 @@ using FairyGUI;
 namespace GFGGame
 {
     /// <summary>
-    /// 视图管理类
-    /// 管理视图的显示、隐藏
+    /// 锟斤拷图锟斤拷锟斤拷锟斤拷
+    /// 锟斤拷锟斤拷锟斤拷图锟斤拷锟斤拷示锟斤拷锟斤拷锟斤拷
     /// </summary>
     public class ViewManager
     {
@@ -26,7 +26,7 @@ namespace GFGGame
             Font afont1 = GFGAsset.Load<Font>(ResPathUtil.GetFontPath("ZIHUN125"));
             FontManager.RegisterFont(new DynamicFont("ZIHUN125", afont1));
             _viewDic = new Dictionary<string, UIView>();
-            //初始化视图层容器
+            //锟斤拷始锟斤拷锟斤拷图锟斤拷锟斤拷锟斤拷
             _bottomLayer = CreateLayer("BottomLayer");
             _topLayer = CreateLayer("TopLayer");
             _topLayer.sortingOrder = ConstSortingOrder.TOP;
@@ -43,12 +43,12 @@ namespace GFGGame
         }
 
         /// <summary>
-        /// 显示一个视
+        /// 锟斤拷示一锟斤拷锟斤拷
         /// </summary>
-        /// <param name="viewName">要显示的视图名称</param>
-        /// <param name="viewData">要传递给视图的参数</param>
-        /// <param name="goBackParams">从该视图返回的视图信息</param>
-        /// <param name="hideOthers">是否关闭其他视图</param>
+        /// <param name="viewName">要锟斤拷示锟斤拷锟斤拷图锟斤拷锟斤拷</param>
+        /// <param name="viewData">要锟斤拷锟捷革拷锟斤拷图锟侥诧拷锟斤拷</param>
+        /// <param name="goBackParams">锟接革拷锟斤拷图锟斤拷锟截碉拷锟斤拷图锟斤拷息</param>
+        /// <param name="hideOthers">锟角凤拷乇锟斤拷锟斤拷锟斤拷锟酵�</param>
         public static void Show(string viewName, object viewData = null, object[] goBackParams = null, bool hideOthers = false, bool resetGobackParams = false)
         {
             if (!FunctionOpenDataManager.Instance.CheckIsFunOpenBgViewName(viewName))
@@ -77,7 +77,7 @@ namespace GFGGame
                 if (!view.isShowing)
                 {
                     view.Show();
-                    Debug.Log("当前打开:" + viewName);
+                    Debug.Log("锟斤拷前锟津开o拷" + viewName);
                 }
                 else
                 {
@@ -141,7 +141,7 @@ namespace GFGGame
                 if (!view.isShowing)
                 {
                     view.Show();
-                    Debug.Log("当前打开:" + viewName);
+                    Debug.Log("锟斤拷前锟津开o拷" + viewName);
                 }
                 else
                 {
@@ -209,7 +209,7 @@ namespace GFGGame
             }
             else
             {
-                 ViewManager.Show(ViewName.MAINUI_VIEW);
+                ViewManager.Show(ViewName.MAINUI_VIEW, null, null, true);
             }
         }
 
@@ -250,6 +250,21 @@ namespace GFGGame
             layer.AddRelation(GRoot.inst, RelationType.Size);
             return layer;
         }
-
+        public static bool CheckIsTopView(GComponent viewCom)
+        {
+            if (viewCom.parent != null)
+            {
+                int index = viewCom.parent.GetChildIndex(viewCom);
+                if (index == viewCom.parent.numChildren - 1 && GRoot.inst.GetTopWindow() == null)
+                {
+                    return true;
+                }
+            }
+            if (GRoot.inst.GetTopWindow() == viewCom)
+            {
+                return true;
+            }
+            return false;
+        }
     }
-}
+}

+ 10 - 0
GameClient/Assets/Game/HotUpdate/Views/XiuFang/XiuFangView.cs

@@ -33,11 +33,13 @@ namespace GFGGame
         {
             base.OnShown();
             GuideController.TryGuideSuitSyntheticView(_ui.m_btnSuitSynthetic);
+            Timers.inst.AddUpdate(UpdateToCheckGuide);
         }
 
         protected override void OnHide()
         {
             base.OnHide();
+            Timers.inst.Remove(UpdateToCheckGuide);
         }
 
         private void OnClickBtnBack()
@@ -63,5 +65,13 @@ namespace GFGGame
             PromptController.Instance.ShowFloatTextPrompt("暂未开放", MessageType.WARNING);
         }
 
+        private void UpdateToCheckGuide(object param)
+        {
+            if (!ViewManager.CheckIsTopView(this.viewCom)) return;
+
+            GuideController.TryGuide(_ui.m_btnSuitSynthetic, ConstGuideId.CLOTHING_SYNTHETIC, 6, "这里可以查看已获得的服饰图谱");
+
+        }
+
     }
 }

+ 3 - 0
GameClient/Assets/Game/Launcher/FairyGUI/GenCode/Launcher/UI_LauncherUI.cs

@@ -11,6 +11,7 @@ namespace UI.Launcher
         public GProgressBar m_progressBar;
         public GTextField m_txtDescLeft;
         public GTextField m_txtVersion;
+        public GImage m_imgLogo;
         public GTextField m_txtBottom;
         public GTextField m_txtDescRight;
         public const string URL = "ui://mgs5yrnjl55o1";
@@ -64,6 +65,7 @@ namespace UI.Launcher
             m_progressBar = (GProgressBar)comp.GetChild("progressBar");
             m_txtDescLeft = (GTextField)comp.GetChild("txtDescLeft");
             m_txtVersion = (GTextField)comp.GetChild("txtVersion");
+            m_imgLogo = (GImage)comp.GetChild("imgLogo");
             m_txtBottom = (GTextField)comp.GetChild("txtBottom");
             m_txtDescRight = (GTextField)comp.GetChild("txtDescRight");
         }
@@ -73,6 +75,7 @@ namespace UI.Launcher
             m_progressBar = null;
             m_txtDescLeft = null;
             m_txtVersion = null;
+            m_imgLogo = null;
             m_txtBottom = null;
             m_txtDescRight = null;
             if(disposeTarget && target != null)

+ 2 - 1
GameClient/Assets/Game/Launcher/GameLauncher.cs

@@ -29,11 +29,12 @@ public class GameLauncher : MonoBehaviour
     // Start is called before the first frame update
     void Start()
     {
+        LauncherConfig.Init();
         Debug.LogFormat("Application.version {0}", Application.version);
         FGUILauncher.Init();
         LauncherView.Instance.Open();
         LauncherView.Instance.SetDesc("正在初始化...");
-        LauncherConfig.Init();
+        LauncherConfig.GetPlatformCfg();
     }
 
 

+ 11 - 5
GameClient/Assets/Game/Launcher/LauncherConfig.cs

@@ -8,6 +8,7 @@ namespace GFGGame
     {
         public enum EnumNetType { DEV, LOCAL, TEMP }
         public static EnumNetType netType = EnumNetType.LOCAL;
+        public static string cfgName;
         public const int HTTP_GET_TIME_OUT = 3;
         public const int HTTP_POST_TIME_OUT = 15;
         public static string SOUND_KEY = "sound";
@@ -27,24 +28,29 @@ namespace GFGGame
 #if PT_DEV
             //ÍâÍødev°æ±¾
             netType = EnumNetType.DEV;
-            string cfgName = "cfg_dev";
+            cfgName = "cfg_dev";
 #elif PT_TEMP
             netType = EnumNetType.TEMP;
-            string cfgName = "cfg_temp";
+            cfgName = "cfg_temp";
             VEngine.Utility.buildPath = "Bundles_temp";
 #else
             netType = EnumNetType.LOCAL;
-            string cfgName = "cfg_local";
+            cfgName = "cfg_local";
 #endif
 
+            //Debug.Log($"loginApiUrl {loginApiUrl} netType {netType}");
+        }
+
+        public static void GetPlatformCfg()
+        {
             string url = $"http://39.99.144.134/res/platform/{cfgName}.json";
-            
+
             HttpTool.Instance.Get(url, "", (string data) => {
                 ResultHandler(data);
             });
-            Debug.Log($"loginApiUrl {loginApiUrl} netType {netType}");
         }
 
+
         private static void ResultHandler(string data)
         {
             var result = JsonMapper.ToObject<Result>(data);

+ 1 - 0
GameClient/Assets/Game/Launcher/Views/LauncherView.cs

@@ -136,6 +136,7 @@ namespace GFGGame
             _ui.m_txtDescRight.text = "";
             GRoot.inst.AddChild(_ui.target);
             isOpen = true;
+            _ui.m_imgLogo.visible = LauncherConfig.netType != LauncherConfig.EnumNetType.TEMP;
         }
 
         /// <summary>

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


BIN
GameClient/Assets/ResIn/UI/ClothingShop/ClothingShop_fui.bytes


BIN
GameClient/Assets/ResIn/UI/ClothingSynthetic/ClothingSynthetic_fui.bytes


BIN
GameClient/Assets/ResIn/UI/Common/Common_fui.bytes


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


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


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


BIN
GameClient/Assets/ResIn/UI/DressUp/DressUp_fui.bytes


BIN
GameClient/Assets/ResIn/UI/Login/Login_fui.bytes


BIN
GameClient/Assets/ResIn/UI/Main/Main_fui.bytes


BIN
GameClient/Assets/Resources/UI/Launcher/Launcher_fui.bytes


+ 1 - 1
GameClient/ProjectSettings/ProjectSettings.asset

@@ -699,7 +699,7 @@ PlayerSettings:
   webGLThreadsSupport: 0
   webGLDecompressionFallback: 0
   scriptingDefineSymbols:
-    7: ILRuntime1;PT_DEV111;PT_TEMP111
+    7: ILRuntime1;PT_DEV;PT_TEMP111
   additionalCompilerArguments: {}
   platformArchitecture: {}
   scriptingBackend: