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

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

beiguoxia 3 жил өмнө
parent
commit
b9fcb21c13
40 өөрчлөгдсөн 347 нэмэгдсэн , 130 устгасан
  1. 1 1
      FGUIProject/assets/Card/components/ListCardItem.xml
  2. 6 5
      FGUIProject/assets/ClothingFoster/components/comFosterAni.xml
  3. 5 0
      GameClient/Assets/Game/HotUpdate/Constant/ConstGuideId.cs
  4. 1 0
      GameClient/Assets/Game/HotUpdate/Constant/ConstStorageId.cs
  5. 60 6
      GameClient/Assets/Game/HotUpdate/Controller/GuideController.cs
  6. 71 5
      GameClient/Assets/Game/HotUpdate/Data/FunctionOpenDataManager.cs
  7. 7 0
      GameClient/Assets/Game/HotUpdate/Data/ItemDataManager.cs
  8. 1 1
      GameClient/Assets/Game/HotUpdate/Data/LuckyBoxDataManager.cs
  9. 4 4
      GameClient/Assets/Game/HotUpdate/Data/MainStoryDataManager.cs
  10. 2 0
      GameClient/Assets/Game/HotUpdate/Data/RoleDataManager.cs
  11. 4 0
      GameClient/Assets/Game/HotUpdate/Data/StorageDataManager.cs
  12. 1 1
      GameClient/Assets/Game/HotUpdate/DressUp/DressUpObjDataCache.cs
  13. 1 1
      GameClient/Assets/Game/HotUpdate/ServerProxy/CommonSProxy.cs
  14. 13 4
      GameClient/Assets/Game/HotUpdate/ServerProxy/InstanceZonesSProxy.cs
  15. 1 1
      GameClient/Assets/Game/HotUpdate/Views/Card/CardDetailView.cs
  16. 4 3
      GameClient/Assets/Game/HotUpdate/Views/Card/CardFosterView.cs
  17. 19 1
      GameClient/Assets/Game/HotUpdate/Views/ClothingDecompose/ClothingDecomposeView.cs
  18. 6 0
      GameClient/Assets/Game/HotUpdate/Views/ClothingFoster/SuitListView.cs
  19. 9 0
      GameClient/Assets/Game/HotUpdate/Views/ClothingFoster/SuitView.cs
  20. 4 4
      GameClient/Assets/Game/HotUpdate/Views/ClothingSynthetic/ClothingSyntheticView.cs
  21. 6 6
      GameClient/Assets/Game/HotUpdate/Views/ClothingSynthetic/SuitSyntheticView.cs
  22. 24 57
      GameClient/Assets/Game/HotUpdate/Views/DressUp/DressUpFightView.cs
  23. 2 1
      GameClient/Assets/Game/HotUpdate/Views/DressUp/DressUpView.cs
  24. 3 5
      GameClient/Assets/Game/HotUpdate/Views/DressUp/PhotographView.cs
  25. 13 5
      GameClient/Assets/Game/HotUpdate/Views/Guide/GuideView.cs
  26. 9 0
      GameClient/Assets/Game/HotUpdate/Views/MainStory/StoryChapterListView.cs
  27. 3 4
      GameClient/Assets/Game/HotUpdate/Views/MainStory/StoryChapterView.cs
  28. 15 1
      GameClient/Assets/Game/HotUpdate/Views/MainStory/StoryController.cs
  29. 1 1
      GameClient/Assets/Game/HotUpdate/Views/MainStory/StoryFightSingleScoreView.cs
  30. 1 1
      GameClient/Assets/Game/HotUpdate/Views/MainStory/StoryFightTargetScoreView.cs
  31. 6 6
      GameClient/Assets/Game/HotUpdate/Views/MainStory/StoryLevelInfoView.cs
  32. 2 0
      GameClient/Assets/Game/HotUpdate/Views/MainStory/StroyFightResultView.cs
  33. 15 4
      GameClient/Assets/Game/HotUpdate/Views/MainUI/MainUIView.cs
  34. 5 1
      GameClient/Assets/Game/HotUpdate/Views/RoleLvUp/RoleLvUpView.cs
  35. 8 0
      GameClient/Assets/Game/HotUpdate/Views/Studio/StudioView.cs
  36. 1 0
      GameClient/Assets/Game/HotUpdate/Views/ViewManager.cs
  37. 13 1
      GameClient/Assets/Game/HotUpdate/Views/XiuFang/XiuFangView.cs
  38. BIN
      GameClient/Assets/ResIn/Config/excelConfig.sqlite.bytes
  39. BIN
      GameClient/Assets/ResIn/UI/Card/Card_fui.bytes
  40. BIN
      GameClient/Assets/ResIn/UI/ClothingFoster/ClothingFoster_fui.bytes

+ 1 - 1
FGUIProject/assets/Card/components/ListCardItem.xml

@@ -3,7 +3,7 @@
   <displayList>
     <component id="n6_ojlz" name="loaCard" src="jzrr8n" fileName="components/ComCardMask.xml" xy="0,0"/>
     <image id="n20_pq5x" name="n20" src="pq5x60" fileName="images/kp_dikuang_1.png" xy="2,342"/>
-    <loader id="n23_94m1" name="loaBorder" xy="-2,0" size="242,441" url="ui://7l6lvkay94m19w" autoSize="true"/>
+    <loader id="n23_94m1" name="loaBorder" xy="-2,-2" size="242,441" url="ui://7l6lvkay94m19w" autoSize="true"/>
     <loader id="n19_pq5x" name="loaRarity" xy="178,14" size="50,50" url="ui://eg2y0ldppq5x62" autoSize="true"/>
     <text id="n8_ojlz" name="txtLv" xy="185,370" size="39,59" fontSize="24" color="#fff9f1" leading="-5" text="Lv.&#xA;30"/>
     <text id="n9_ojlz" name="txtName" xy="63,432" size="112,49" fontSize="36" color="#6a5d56" autoSize="none" text="赵钱孙"/>

+ 6 - 5
FGUIProject/assets/ClothingFoster/components/comFosterAni.xml

@@ -1,11 +1,12 @@
 <?xml version="1.0" encoding="utf-8"?>
-<component size="232,114">
+<component size="1080,1920">
   <displayList>
-    <image id="n35_nk8d" name="n35" src="py5ge" fileName="images/zhuxian_shuoto.png" xy="80,0"/>
-    <component id="n36_nk8d" name="proFoster" src="py5ga" fileName="images/ProgressBar1.xml" xy="0,108">
+    <image id="n35_nk8d" name="n35" src="py5ge" fileName="images/zhuxian_shuoto.png" xy="504,850" group="n39_s1ov"/>
+    <component id="n36_nk8d" name="proFoster" src="py5ga" fileName="images/ProgressBar1.xml" xy="424,958" group="n39_s1ov">
       <ProgressBar max="100"/>
     </component>
-    <text id="n37_bd1c" name="txtContent" xy="8,179" size="209,41" fontSize="30" text="服装浆洗中......"/>
-    <graph id="n38_lh8v" name="holder" xy="115,56" size="1,1" type="rect"/>
+    <text id="n37_bd1c" name="txtContent" xy="435,1029" size="209,41" group="n39_s1ov" fontSize="30" text="服装浆洗中......"/>
+    <graph id="n38_lh8v" name="holder" xy="539,906" size="1,1" group="n39_s1ov" type="rect"/>
+    <group id="n39_s1ov" name="n39" xy="424,850" size="232,220"/>
   </displayList>
 </component>

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

@@ -9,10 +9,13 @@ namespace GFGGame
         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_DECOMPOSE = "CLOTHING_DECOMPOSE";
         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 UP_CARD_LV = "UP_CARD_LV";
         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";
@@ -20,5 +23,7 @@ namespace GFGGame
         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";
+        public const string STUDIO_OPEN = "STUDIO_OPEN";
+        public const string SUIT_LIST_VIEW = "SUIT_LIST_VIEW";
     }
 }

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

@@ -3,6 +3,7 @@ namespace GFGGame
     public class ConstStorageId
     {
         public const int STORAGE_GUIDE = 10000;//引导起始Id,引导存储id:10000+引导编号id
+        public const int FUNCTION_OPEN = 30000;//功能开启起始Id,功能开启存储id:30000+功能id
 
         public const int STORAGE_SKIP_GUIDE = 20000;//跳过引导,0不跳过,1跳过
         public const int STORAGE_AUTO_PLAY = 20001;//自动战斗,0不自动战斗,1自动战斗

+ 60 - 6
GameClient/Assets/Game/HotUpdate/Controller/GuideController.cs

@@ -27,21 +27,74 @@ namespace GFGGame
             bool isGuide = GameGlobal.skipGuide == false && !isAllGuideFinish;
             return isGuide;
         }
+        /// <summary>
+        /// 检测当前角色等级是否有引导开启,若有则返回引导id
+        /// </summary>
+        /// <returns></returns>
+        public static string CheckHasRoleLvGuideOpen()
+        {
+            GuideCfg[] guideCfgs = GuideCfgArray.Instance.dataArray;
+
+            for (int i = 0; i < guideCfgs.Length; i++)
+            {
+                if (guideCfgs[i].roleLv <= 0) continue;
+                bool isFinishCurId = StorageDataManager.Instance.GetStorageValue(ConstStorageId.STORAGE_GUIDE + guideCfgs[i].id) > 0;
+                if (!isFinishCurId && guideCfgs[i].roleLv <= RoleDataManager.lvl)
+                {
+                    return guideCfgs[i].viewName;
+                }
+            }
+
+            return "";
+        }
 
-        public static bool TryGuide(GObject target, string guideKey, int index, string guideStr = null, int listIndex = -1, bool checkPriorIndex = true, int yTxt = 0, float devWidth = 0, float devHeight = 0, bool showAni = true)
+        /// <summary>
+        /// 是否特殊条件开启
+        /// </summary>
+        /// <returns></returns>
+        private static bool CheckSpecialGuideOpen(GuideCfg cfg)
         {
+            if (cfg.special <= 0) return false;
+            if (cfg.key == ConstGuideId.SUIT_LIST_VIEW)
+            {
+                return FunctionOpenDataManager.Instance.CheckIsFunOpenById(typeof(SuitListView).Name, false);
+            }
+            return false;
+
+        }
 
+        public static bool TryGuide(GObject target, string guideKey, int index, string guideStr = null, int listIndex = -1, bool checkPriorIndex = true, int yTxt = 0, float devWidth = 0, float devHeight = 0, bool showAni = true, bool showEffect = true, bool isOptionalGuide = false)
+        {
             GuideCfg cfg = GuideCfgArray.Instance.GetCfg(guideKey);
+            if (GuideDataManager.currentGuideId != 0 && GuideDataManager.currentGuideId != cfg.id) return false;
 
             bool isStoryLevelGuide = cfg.storyLevelId > 0;
             bool isFinishCurId = StorageDataManager.Instance.GetStorageValue(ConstStorageId.STORAGE_GUIDE + cfg.id) > 0;//当前引导未完成
             bool isFinishPriorId = cfg.priorId <= 0 || StorageDataManager.Instance.GetStorageValue(ConstStorageId.STORAGE_GUIDE + cfg.priorId) > 0;//前置引导已完成
             bool isFinishCurIndex = GuideDataManager.IsGuideIndexFinish(cfg.id, index) == true;//当前index未完成
             bool isFinishPriorIndex = !checkPriorIndex || checkPriorIndex && GuideDataManager.IsGuideIndexFinish(cfg.id, index - 1) == true;//前置index已完成
-            bool isCfgChapterOpen = MainStoryDataManager.CheckLevelUnlock(cfg.storyLevelId);//引导配置关卡已开启
+            bool isCfgChapterOpen = MainStoryDataManager.CheckLevelUnlock(cfg.storyLevelId, false);//引导配置关卡已开启
+            // if (checkChapterPass && !isCfgChapterOpen)
+            // {//cfg.storyLevelId为当前关卡,通关时 MainStoryDataManager.currentLevelCfgId为下一章的第一关,但下一章有可能因为角色等级不足未开启,会导致引导无法正常开启,所以添加是否通关检测
+            //     StoryLevelCfg levelCfg = StoryLevelCfgArray.Instance.GetCfg(cfg.storyLevelId);
+            //     if (levelCfg.chapterId - 1 > 0)
+            //     {
+            //         isCfgChapterOpen = MainStoryDataManager.CheckNeedChapterPass(levelCfg.chapterId - 1, out int needChapterId);
+            //     }
+            // }
             bool isCfgChapter = MainStoryDataManager.currentLevelCfgId == 0 || MainStoryDataManager.currentLevelCfgId == cfg.storyLevelId;//无选择(进入游戏时无选择)或当前所选择为配置关卡
 
-            if (isStoryLevelGuide && !isFinishCurId && isFinishPriorId && !isFinishCurIndex && isFinishPriorIndex && isCfgChapterOpen && isCfgChapter || !isStoryLevelGuide && !isFinishCurId)
+            bool isRoleLvGuide = cfg.roleLv > 0;
+            bool iscurRoleLv = RoleDataManager.lvl >= cfg.roleLv;
+
+            bool isSpecial = cfg.special > 0; //特殊条件开启的引导
+            bool specialOpen = CheckSpecialGuideOpen(cfg);
+
+            bool noneType = !isStoryLevelGuide && !isFinishCurId && isFinishPriorId && !isFinishCurIndex && isFinishPriorIndex && !isRoleLvGuide && !isSpecial;
+            bool storyType = isStoryLevelGuide && !isFinishCurId && isFinishPriorId && !isFinishCurIndex && isFinishPriorIndex && isCfgChapterOpen && isCfgChapter;
+            bool roleLvType = isRoleLvGuide && !isFinishCurId && isFinishPriorId && !isFinishCurIndex && isFinishPriorIndex && iscurRoleLv;
+            bool specialType = isSpecial && !isFinishCurId && isFinishPriorId && !isFinishCurIndex && isFinishPriorIndex && specialOpen;
+            if (storyType || roleLvType || specialType || noneType)
             {
                 GuideDataManager.currentGuideId = cfg.id;
                 GuideDataManager.currentGuideIdIndex = index;
@@ -64,7 +117,8 @@ namespace GFGGame
                         return false;
                     }
                 }
-                ShowGuideByIndex(target, guideStr, yTxt, cfg.optionalGuide == 1, devWidth, devHeight, GuideDataManager.currentGuideId, GuideDataManager.currentGuideIdIndex, showAni);
+                bool _isOptionalGuide = isOptionalGuide ? isOptionalGuide : cfg.optionalGuide == 1;
+                ShowGuideByIndex(target, guideStr, yTxt, _isOptionalGuide, devWidth, devHeight, GuideDataManager.currentGuideId, GuideDataManager.currentGuideIdIndex, showAni, showEffect);
                 if (!checkPriorIndex)
                 {
                     for (int i = 1; i < index; i++)
@@ -76,7 +130,7 @@ namespace GFGGame
             }
             return false;
         }
-        private static void ShowGuideByIndex(GObject target, string guideStr = null, int yTxt = 0, bool isOptionalGuide = false, float devWidth = 0, float devHeight = 0, int guideId = 0, int index = 0, bool showAni = true)
+        private static void ShowGuideByIndex(GObject target, string guideStr = null, int yTxt = 0, bool isOptionalGuide = false, float devWidth = 0, float devHeight = 0, int guideId = 0, int index = 0, bool showAni = true, bool showEffect = true)
         {
             HideGuide();
             if (GameGlobal.skipGuide)
@@ -84,7 +138,7 @@ namespace GFGGame
                 return;
             }
 
-            ViewManager.Show(ViewName.GUIDE_VIEW, new List<object> { target, guideStr, yTxt, isOptionalGuide, devWidth, devHeight, guideId, index, showAni });
+            ViewManager.Show(ViewName.GUIDE_VIEW, new List<object> { target, guideStr, yTxt, isOptionalGuide, devWidth, devHeight, guideId, index, showAni, showEffect });
         }
         public static bool TryCompleteGuideIndex(int guideId, int index)
         {

+ 71 - 5
GameClient/Assets/Game/HotUpdate/Data/FunctionOpenDataManager.cs

@@ -1,4 +1,5 @@
 using ET;
+using FairyGUI;
 using System.Collections.Generic;
 using UnityEngine;
 
@@ -30,7 +31,7 @@ namespace GFGGame
             }
             if (!CheckIsChapterFunOpen(cfg, showTips)) return false;
             if (!CheckIsLvFunOpen(cfg, showTips)) return false;
-
+            if (!CheckIsSpecialFunOpen(cfg, showTips)) return false;
             return true;
         }
 
@@ -44,27 +45,36 @@ namespace GFGGame
             for (int i = 0; i < cfgs.Length; i++)
             {
                 if (cfgs[i].show == 0) continue;
+                if (cfgs[i].special > 0) continue;
+                if (cfgs[i].lv > 0) continue;
                 if (cfgs[i].storyLevelId != storyLevelCfgId || !CheckIsChapterFunOpen(cfgs[i], false)) continue;
-                if (!CheckIsLvFunOpen(cfgs[i], false)) continue;
+                // if (CheckIsLvFunOpen(cfgs[i], false)) continue;
                 listCfg.Add(cfgs[i].id);
             }
             if (listCfg.Count > 0)
             {
+                // Timers.inst.Add(1, 0, FunctionOpen, listCfg);
                 ViewManager.Show<FunctionOpenView>(listCfg);
+
             }
         }
+
         /// <summary>
         /// 根据角色Lv检测是否有新功能开启
         /// </summary>
-        public void CheckHasLvFunOpen(int lv)
+        public void CheckHasLvFunOpen(int lv, int oldLv)
         {
+
             FunctionOpenCfg[] cfgs = FunctionOpenCfgArray.Instance.dataArray;
             List<string> listCfg = new List<string>();
             for (int i = 0; i < cfgs.Length; i++)
             {
+                if ((cfgs[i].special > 0)) continue;
                 if (cfgs[i].show == 0) continue;
-                if (lv != cfgs[i].lv || !CheckIsLvFunOpen(cfgs[i], false)) continue;
-                if (!CheckIsChapterFunOpen(cfgs[i], false)) continue;
+                if (lv <= 0) continue;
+                if (cfgs[i].storyLevelId > 0) continue;
+                if (cfgs[i].lv > oldLv && lv < cfgs[i].lv || !CheckIsLvFunOpen(cfgs[i], false)) continue;
+                // if (CheckIsChapterFunOpen(cfgs[i], false)) continue;
                 listCfg.Add(cfgs[i].id);
             }
             if (listCfg.Count > 0)
@@ -72,7 +82,38 @@ namespace GFGGame
                 ViewManager.Show<FunctionOpenView>(listCfg);
             }
         }
+        public async void CheckHasSpecialFunOpen()
+        {
+            if (StorageDataManager.Instance.GetStorangeDic().Count == 0)
+            {
+                await StorageSProxy.ReqGetClientValues();
+            }
+            FunctionOpenCfg[] cfgs = FunctionOpenCfgArray.Instance.dataArray;
+            List<string> listCfg = new List<string>();
+            for (int i = 0; i < cfgs.Length; i++)
+            {
+                if (cfgs[i].show == 0) continue;
+                if (cfgs[i].storyLevelId > 0) continue;
+                if (cfgs[i].lv > 0) continue;
+                if ((cfgs[i].special <= 0)) continue;
+                if (StorageDataManager.Instance.GetStorageValue(ConstStorageId.FUNCTION_OPEN + cfgs[i].index) == 1) continue;
+                if (CheckIsSpecialFunOpen(cfgs[i], false))
+                {
+                    listCfg.Add(cfgs[i].id);
+                }
+            }
+            if (listCfg.Count > 0)
+            {
+                ViewManager.Show<FunctionOpenView>(listCfg);
+            }
+        }
+        // private void FunctionOpen(object param)
+        // {
+        //     if (ViewManager.isViewOpen(typeof(RoleLvUpView).Name)) return;
+        //     ViewManager.Show<FunctionOpenView>(param);
+        //     Timers.inst.Remove(FunctionOpen);
 
+        // }
 
         //检测配置章节是否开启
         private bool CheckIsChapterFunOpen(FunctionOpenCfg cfg, bool showTips = true)
@@ -103,5 +144,30 @@ namespace GFGGame
             if (showTips) PromptController.Instance.ShowFloatTextPrompt(string.Format("角色达到{0}级解锁", cfg.lv));
             return false;
         }
+
+
+
+        private bool CheckIsSpecialFunOpen(FunctionOpenCfg cfg, bool showTips = true)
+        {
+            if (cfg.special <= 0) return true;
+            if (cfg.id == typeof(SuitListView).Name)//服装升级获取第一套【天衣】套装后开启
+            {
+
+                if (StorageDataManager.Instance.GetStorageValue(ConstStorageId.FUNCTION_OPEN + cfg.index) == 1) return true;
+
+                List<int> _currentList3 = DressUpMenuSuitDataManager.GetSuitIDList();
+                if (_currentList3.Count == 0) return false;
+                _currentList3 = SuitUtil.SortSuitListByHighRarity(_currentList3);
+                if (SuitCfgArray.Instance.GetCfg(_currentList3[0]).rarity == ConstDressRarity.Rarity_TIANYI)
+                {
+                    StorageSProxy.ReqSetClientValue(ConstStorageId.FUNCTION_OPEN + cfg.index, 1).Coroutine();
+                    return true;
+                }
+                if (showTips) PromptController.Instance.ShowFloatTextPrompt(string.Format("收集一套“天衣”套装后开启"));
+            }
+            return false;
+
+        }
+
     }
 }

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

@@ -45,6 +45,13 @@ namespace GFGGame
                 {
                     DecomposeDataManager.Instance.Add(itemID);
                 }
+
+                FunctionOpenCfg functionOpenCfg = FunctionOpenCfgArray.Instance.GetCfg(typeof(SuitListView).Name);
+                if (itemCfg.rarity == ConstDressRarity.Rarity_TIANYI && StorageDataManager.Instance.GetStorageValue(ConstStorageId.FUNCTION_OPEN + functionOpenCfg.index) == 0)
+                {
+                    
+                    FunctionOpenDataManager.Instance.CheckHasSpecialFunOpen();
+                }
             }
 
             // if (itemCfg.itemType == ConstItemType.DRESS_UP && !DressUpMenuItemDataManager.CheckIsSceneType(itemID))

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

@@ -20,7 +20,7 @@ namespace GFGGame
         public string probShow;
         private List<LuckyBoxBonusData> _showList;
 
-        public int[] luckyBoxIds = new int[] { 1, 2, 3 };//奖池列表
+        public int[] luckyBoxIds = new int[] { 2, 3 };//奖池列表
         public int startTime = 1635157620;
         public int endTime = 1704038400;
 

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

@@ -108,10 +108,10 @@ namespace GFGGame
             return true;
         }
 
-        public static bool CheckChapterUnlock(int chapterId)
+        public static bool CheckChapterUnlock(int chapterId, bool checkRoleLv = true)
         {
             StoryChapterCfg chapterCfg = StoryChapterCfgArray.Instance.GetCfg(chapterId);
-            if (GameGlobal.myNumericComponent.GetAsInt(NumericType.Lvl) < chapterCfg.lvl)
+            if (checkRoleLv && GameGlobal.myNumericComponent.GetAsInt(NumericType.Lvl) < chapterCfg.lvl)
             {
                 return false;
             }
@@ -126,12 +126,12 @@ namespace GFGGame
             return CheckNeedChapterPass(chapterId, out var needChapterId);
         }
 
-        public static bool CheckLevelUnlock(int levelCfgId)
+        public static bool CheckLevelUnlock(int levelCfgId, bool checkRoleLv = true)
         {
             var levelCfg = StoryLevelCfgArray.Instance.GetCfg(levelCfgId);
             if (levelCfg != null)
             {
-                if (!CheckChapterUnlock(levelCfg.chapterId))
+                if (!CheckChapterUnlock(levelCfg.chapterId, checkRoleLv))
                 {
                     return false;
                 }

+ 2 - 0
GameClient/Assets/Game/HotUpdate/Data/RoleDataManager.cs

@@ -114,6 +114,8 @@ namespace GFGGame
         }
         private static void CheckUpLv(object param)
         {
+            if (ViewManager.isViewOpen(typeof(FunctionOpenView).Name)) return;//等功能开启展示完成后在展示角色升级
+
             if (GRoot.inst.GetTopWindow() == null)
             {
                 OpenRoleLvUpView(null);

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

@@ -29,5 +29,9 @@ namespace GFGGame
 
             return _storangeInfoById[key];
         }
+        public Dictionary<int, int> GetStorangeDic()
+        {
+            return _storangeInfoById;
+        }
     }
 }

+ 1 - 1
GameClient/Assets/Game/HotUpdate/DressUp/DressUpObjDataCache.cs

@@ -110,7 +110,7 @@ namespace GFGGame
                 StorageSProxy.ReqSetClientValue(ConstStorageId.STORAGE_AUTO_PLAY, _autoPlay == true ? 1 : 0).Coroutine();
             }
         }
-        public int maxFightSpeed = 2;
+        public int maxFightSpeed = 8;
         private int _fightSpeed = 1;
         public int fightSpeed
         {

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

@@ -13,7 +13,7 @@ namespace ET
             switch (message.NumericType)
             {
                 case NumericType.Lvl:
-                    FunctionOpenDataManager.Instance.CheckHasLvFunOpen((int)message.NewValue);//等级变化要加测是否有功能开启
+                    FunctionOpenDataManager.Instance.CheckHasLvFunOpen((int)message.NewValue,oldValue);//等级变化要加测是否有功能开启
                     RoleDataManager.RoleLvUp(oldValue);
                     break;
                 case NumericType.Power:

+ 13 - 4
GameClient/Assets/Game/HotUpdate/ServerProxy/InstanceZonesSProxy.cs

@@ -39,8 +39,8 @@ namespace GFGGame
                     List<ItemData> bonusList = StoryBonusDataCache.GetBonusList(response.LevelCfgId, true, true);
                     BonusController.TryShowBonusList(bonusList);
                     InstanceZonesDataManager.TrySetLevelPass(response.LevelCfgId);
-                    FunctionOpenDataManager.Instance.CheckHasChapterFunOpen(response.LevelCfgId);//首次通过要检查是否有功能开启
                     InstanceZonesController.OnFinishStoryLevel(levelCfgId, true, true);
+                    FunctionOpenDataManager.Instance.CheckHasChapterFunOpen(response.LevelCfgId);//首次通过要检查是否有功能开启
                     return;
                 }
             }
@@ -56,8 +56,9 @@ namespace GFGGame
                 LevelCfgId = levelCfgId,
                 Score = score,
                 NpcScore = npcScore,
-                UseRecommend = useRecomend
+                UseRecommend = false
             });
+            bool isFirstFinish = false;
             if (response != null)
             {
                 if (response.Error == ErrorCode.ERR_Success)
@@ -78,8 +79,7 @@ namespace GFGGame
 
                     if (response.HasOnceBonus)
                     {
-                        //首次通过要检查是否有功能开启
-                        FunctionOpenDataManager.Instance.CheckHasChapterFunOpen(response.LevelCfgId);
+                        isFirstFinish = true;
                     }
                     InstanceZonesDataManager.TrySetLevelPass(response.LevelCfgId);
                     ViewManager.Show(ViewName.STORY_FIGHT_RESULT_VIEW, new StoryFightResultData
@@ -90,10 +90,19 @@ namespace GFGGame
                         Star = response.Star,
                         BonusList = bonusList
                     }, null, true);
+                    if (response.HasOnceBonus)
+                    {
+                        FunctionOpenDataManager.Instance.CheckHasChapterFunOpen(response.LevelCfgId);
+                    }
                     return;
                 }
             }
             InstanceZonesController.OnFinishStoryLevel(levelCfgId, false, false);
+            if (isFirstFinish)
+            {
+                //首次通过要检查是否有功能开启
+                FunctionOpenDataManager.Instance.CheckHasChapterFunOpen(response.LevelCfgId);
+            }
         }
 
         //剧情战斗关卡失败,更新最高分

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

@@ -142,7 +142,7 @@ namespace GFGGame
         {
             if (!ViewManager.CheckIsTopView(this.viewCom)) return;
 
-            GuideController.TryGuide(_ui.m_listCard, ConstGuideId.UP_CARD_STAR, 3, "选择可升星的词牌", 0);
+            GuideController.TryGuide(_ui.m_listCard, ConstGuideId.UP_CARD_LV, 3, "选择可升级的词牌", 0, true, 0, 0, 0, true, true);
         }
     }
 }

+ 4 - 3
GameClient/Assets/Game/HotUpdate/Views/Card/CardFosterView.cs

@@ -760,9 +760,10 @@ namespace GFGGame
         protected override 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);
+            GuideController.TryGuide(_ui.m_ComFosterBottom.m_listLvConsume, ConstGuideId.UP_CARD_LV, 4, "长按材料图标,可持续给词牌增加经验", 0, true, 0, 0, 0, true, true);
+            GuideController.TryGuide(_ui.m_ComFosterBottom.m_btnUpLv, ConstGuideId.UP_CARD_LV, 5, "点击升级", -1, true, 0, 0, 0, true, true);
+            // GuideController.TryGuide(_ui.m_ComFosterBottom.m_btnUpStar, ConstGuideId.UP_CARD_STAR, 5, "升满5星后,可解锁词牌的隐藏卡面哦");
+            GuideController.TryCompleteGuide(ConstGuideId.UP_CARD_LV, 5);
         }
     }
 }

+ 19 - 1
GameClient/Assets/Game/HotUpdate/Views/ClothingDecompose/ClothingDecomposeView.cs

@@ -60,10 +60,15 @@ namespace GFGGame
             base.OnShown();
             _ui.m_c1.selectedIndex = 0;
             _ui.m_listTab.selectedIndex = 0;
+
             _valueBarController.OnShown();
             _valueBarController.Controller(6);
             OnClickBtnRarity(ConstDressRarity.Rarity_FANPIN);
-
+            if (GuideDataManager.currentGuideId == GuideCfgArray.Instance.GetCfg(ConstGuideId.CLOTHING_DECOMPOSE).id)
+            {
+                _ui.m_listTab.selectedIndex = 1;
+                OnClickBtnRarity(ConstDressRarity.Rarity_ZHENXI);
+            }
         }
 
         protected override void OnHide()
@@ -268,5 +273,18 @@ namespace GFGGame
         {
             ViewManager.GoBackFrom(typeof(ClothingDecomposeView).FullName);
         }
+
+        protected override void UpdateToCheckGuide(object param)
+        {
+
+            if (!ViewManager.CheckIsTopView(this.viewCom)) return;
+
+
+            GuideController.TryGuide(_ui.m_list, ConstGuideId.CLOTHING_DECOMPOSE, 4, "选择重复获得的服饰部件", 0);
+            GuideController.TryGuide(_ui.m_btnDecompose, ConstGuideId.CLOTHING_DECOMPOSE, 5, "分解获得的材料可用于新服饰合成");
+            GuideController.TryCompleteGuide(ConstGuideId.CLOTHING_DECOMPOSE, 5);
+            GuideController.TryGuide(_ui.m_btnBack, ConstGuideId.CLOTHING_SYNTHETIC, 1, "回到绣坊界面");
+
+        }
     }
 }

+ 6 - 0
GameClient/Assets/Game/HotUpdate/Views/ClothingFoster/SuitListView.cs

@@ -156,6 +156,12 @@ namespace GFGGame
                 }
             });
         }
+        protected override void UpdateToCheckGuide(object param)
+        {
+            if (!ViewManager.CheckIsTopView(this.viewCom)) return;
+
+            GuideController.TryGuide(_ui.m_listSuit, ConstGuideId.SUIT_LIST_VIEW, 3, "选择套装", 0);
+        }
     }
 }
 

+ 9 - 0
GameClient/Assets/Game/HotUpdate/Views/ClothingFoster/SuitView.cs

@@ -367,5 +367,14 @@ namespace GFGGame
             Debug.Log("换新奖励:" + ItemDataManager.GetItemNum(10370));
 
         }
+        protected override void UpdateToCheckGuide(object param)
+        {
+            if (!ViewManager.CheckIsTopView(this.viewCom)) return;
+
+            GuideController.TryGuide(_ui.m_btnTabFoster, ConstGuideId.SUIT_LIST_VIEW, 4, "点击进行服饰养护工作");
+            GuideController.TryGuide(_ui.m_btnTabRenew, ConstGuideId.SUIT_LIST_VIEW, 5, "完成养护流程后,可以对服饰进行焕新,获得更多新的套装配件哦~");
+            GuideController.TryCompleteGuide(ConstGuideId.SUIT_LIST_VIEW, 5);
+
+        }
     }
 }

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

@@ -383,15 +383,15 @@ namespace GFGGame
             }
             if (!ViewManager.CheckIsTopView(this.viewCom)) return;
 
-            GuideController.TryGuide(_ui.m_listClothing, ConstGuideId.CLOTHING_SYNTHETIC, 8, "找到需要合成的物品", 0);
+            GuideController.TryGuide(_ui.m_listClothing, ConstGuideId.CLOTHING_SYNTHETIC, 4, "找到需要合成的物品", 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, "获得必需品啦,继续通关主线剧情吧", -1, true, 180);
+            if (listTypeItem_CloSynthetic != null) GuideController.TryGuide(listTypeItem_CloSynthetic.m_loaderIcon, ConstGuideId.CLOTHING_SYNTHETIC, 5, "这里可以查看合成需要的材料,和材料的获取途径");
+            GuideController.TryGuide(_ui.m_btnProduction, ConstGuideId.CLOTHING_SYNTHETIC, 6, "点击获得新的服饰");
+            GuideController.TryGuide(_ui.m_btnHome, ConstGuideId.CLOTHING_SYNTHETIC, 7, "获得必需品啦,继续通关主线剧情吧", -1, true, 180);
         }
     }
 }

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

@@ -171,12 +171,12 @@ namespace GFGGame
         protected override void UpdateToCheckGuide(object param)
         {
             if (!ViewManager.CheckIsTopView(this.viewCom)) return;
-            int storyLevelId = GuideCfgArray.Instance.GetCfg(ConstGuideId.CLOTHING_SYNTHETIC).storyLevelId;
-            string fightID = StoryLevelCfgArray.Instance.GetCfg(storyLevelId).fightID;
-            int itemId = StoryFightCfgArray.Instance.GetCfg(fightID).needItemId;
-            int suitId = ItemCfgArray.Instance.GetCfg(itemId).suitId;
-            int index = _suitListIds.IndexOf(suitId);
-            GuideController.TryGuide(_ui.m_listSuit, ConstGuideId.CLOTHING_SYNTHETIC, 7, "查看已解锁的图谱", index);
+            // int storyLevelId = GuideCfgArray.Instance.GetCfg(ConstGuideId.CLOTHING_SYNTHETIC).storyLevelId;
+            // string fightID = StoryLevelCfgArray.Instance.GetCfg(storyLevelId).fightID;
+            // int itemId = StoryFightCfgArray.Instance.GetCfg(fightID).needItemId;
+            // int suitId = ItemCfgArray.Instance.GetCfg(itemId).suitId;
+            // int index = _suitListIds.IndexOf(suitId);
+            GuideController.TryGuide(_ui.m_listSuit, ConstGuideId.CLOTHING_SYNTHETIC, 3, "查看已解锁的图谱", 0);
         }
     }
 }

+ 24 - 57
GameClient/Assets/Game/HotUpdate/Views/DressUp/DressUpFightView.cs

@@ -111,7 +111,7 @@ namespace GFGGame
             InstanceZonesDataManager.usedRecommend = false;
             // _ui.m_comboBox.title = "我的套装";
             _ui.m_txtRecommendCount.SetVar("v1", "" + GameGlobal.myNumericComponent.GetAsInt(ET.NumericType.RecommendCount)).FlushVars();
-            _ui.m_btnRecommend.enabled = GameGlobal.myNumericComponent.GetAsInt(ET.NumericType.RecommendCount) > 0;
+            // _ui.m_btnRecommend.enabled = GameGlobal.myNumericComponent.GetAsInt(ET.NumericType.RecommendCount) > 0;
             _scoreIndex = _ui.m_partsList.m_comboBoxRarity.selectedIndex;
             _ui.m_btnAutoPlay.selected = EquipDataCache.cacher.autoPlay;
             _ui.m_btnAutoPlay.visible = FunctionOpenDataManager.Instance.CheckIsFunOpenById(ConstFunctionId.FUNCTION_AUTOPLAY_FIGHT, false);
@@ -865,61 +865,10 @@ namespace GFGGame
 
             if (!ViewManager.CheckIsTopView(this.viewCom)) return;
 
-
-            if (listTypeItem_SingleFight_Sy == null && GuideDataManager.IsGuideFinish(ConstGuideId.SINGLE_FIGHT) <= 0 || listTypeItem_SingleFight_Xz == null && GuideDataManager.IsGuideFinish(ConstGuideId.SINGLE_FIGHT) <= 0 || listTypeItem_BuyClothing == null && GuideDataManager.IsGuideFinish(ConstGuideId.BUY_CLOTHING) <= 0)
-            {
-                // int len = _ui.m_comListType1.m_listType.numChildren;
-                for (int i = 0; i < _ui.m_comListType1.m_listType.numChildren; 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.IsGuideFinish(ConstGuideId.SINGLE_FIGHT) <= 0)
-                        // {
-
-                        //     if (dressUpMenuItemCfg1.type == ConstDressUpItemType.SHANG_YI)
-                        //     {
-                        //         listTypeItem_SingleFight_Sy = item;
-                        //         // _ui.m_comListType1.m_listType.ScrollToView(i);
-                        //         // break;
-                        //         syIndex = i;
-                        //     }
-                        //     if (dressUpMenuItemCfg1.type == ConstDressUpItemType.XIA_ZHUANG)
-                        //     {
-                        //         listTypeItem_SingleFight_Xz = item;
-                        //         // _ui.m_comListType1.m_listType.ScrollToView(i);
-                        //         // break;
-                        //         xzIndex = i;
-
-                        //     }
-                        // }
-                        // else 
-
-                        if (GuideDataManager.IsGuideFinish(ConstGuideId.BUY_CLOTHING) <= 0)
-                        {
-                            int type = 0;
-                            if (_fightCfg.needItemId > 0) type = ItemUtilCS.GetItemSubType(_fightCfg.needItemId);
-
-                            if (_fightCfg.needSuitId > 0) type = ConstDressUpItemType.TAO_ZHUANG;
-
-
-                            if (listTypeItem_BuyClothing == null && dressUpMenuItemCfg1.type == type)
-                            {
-                                listTypeItem_BuyClothing = item;
-                                // _ui.m_comListType1.m_listType.ScrollToView(i);
-                                break;
-                            }
-                        }
-                    }
-                }
-            }
-
             int syIndex = 0;
             int xzIndex = 0;
             int buyClothingIndex = 0;
+            int buyClothingSubIndex = 0;
 
             int len = _ui.m_comListType1.m_listType.numChildren;
             for (int i = 0; i < len; i++)
@@ -940,13 +889,30 @@ namespace GFGGame
                     if (_fightCfg.needItemId > 0)
                     {
                         int type = ItemUtilCS.GetItemSubType(_fightCfg.needItemId);
-                        if (GuideDataManager.IsGuideFinish(ConstGuideId.BUY_CLOTHING) <= 0 && dressUpMenuItemCfg1.type == type)
+
+
+                        if (GuideDataManager.IsGuideFinish(ConstGuideId.BUY_CLOTHING) <= 0 && ItemUtil.CheckMenuType1(_fightCfg.needItemId, _fightCfg.needSuitId, dressUpMenuItemCfg1.id))
                         {
                             buyClothingIndex = i;
                         }
                     }
                 }
             }
+            int len1 = _ui.m_comListType2.m_listType.numChildren;
+            for (int i = 0; i < len1; i++)
+            {
+                UI_TypeItem item = UI_TypeItem.Proxy(_ui.m_comListType2.m_listType.GetChildAt(i));
+                if (item != null)
+                {
+                    int menuID = (int)item.target.data;
+                    DressUpMenuItemCfg2 dressUpMenuItemCfg2 = DressUpMenuItemCfg2Array.Instance.GetCfg(menuID);
+                    var subType = ItemUtilCS.GetItemSubType(_fightCfg.needItemId);
+                    if (subType == dressUpMenuItemCfg2.type)
+                    {
+                        buyClothingSubIndex = i;
+                    }
+                }
+            }
             int djcId = 10476;//点绛唇Id
             int djcIndex = 0;
             int buyClothingIdIndex = 0;
@@ -970,9 +936,10 @@ namespace GFGGame
             GuideController.TryGuide(_ui.m_btnNext, ConstGuideId.SINGLE_FIGHT, 8, "穿着完毕,来验证一下,换上的服饰是否符合需求");
 
             GuideController.TryGuide(_ui.m_compNeed.target, ConstGuideId.BUY_CLOTHING, 1, "当提示有“必需品”时,需要穿上对应物品才能通关", -1, true, 170);
-            GuideController.TryGuide(_ui.m_comListType1.m_listType, ConstGuideId.BUY_CLOTHING, 5, "按照指示就可以找到必需品啦", buyClothingIndex, true, (int)listTypeItem_BuyClothing.target.y);
-            GuideController.TryGuide(_ui.m_partsList.m_list, ConstGuideId.BUY_CLOTHING, 6, "点击换上吧", buyClothingIdIndex, true, 170);
-            GuideController.TryCompleteGuide(ConstGuideId.BUY_CLOTHING, 6);
+            GuideController.TryGuide(_ui.m_comListType1.m_listType, ConstGuideId.BUY_CLOTHING, 5, "按照指示就可以找到必需品啦", buyClothingIndex);
+            GuideController.TryGuide(_ui.m_comListType2.m_listType, ConstGuideId.BUY_CLOTHING, 6, "", buyClothingSubIndex);
+            GuideController.TryGuide(_ui.m_partsList.m_list, ConstGuideId.BUY_CLOTHING, 7, "点击换上吧", buyClothingIdIndex, true, 170);
+            GuideController.TryCompleteGuide(ConstGuideId.BUY_CLOTHING, 7);
 
             GuideController.TryGuide(_ui.m_btnHint, ConstGuideId.TARGET_FIGHT, 1, "这次换装需要获得别人的认可呢");
 

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

@@ -768,7 +768,8 @@ namespace GFGGame
             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, "点击拍照");
+
+            GuideController.TryGuide(_ui.m_btnPhoto, ConstGuideId.PHOTOGRAPH, 1, "完成心水搭配后,可以拍照留下纪念哦");
 
         }
     }

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

@@ -576,11 +576,9 @@ namespace GFGGame
         protected override 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, "点击空白处查看整体效果", -1, true, (int)(_ui.m_loaGuide.y + _ui.m_loaGuide.height - 250), 0, 0, false);
-            GuideController.TryGuide(_ui.m_loaGuide1, ConstGuideId.PHOTOGRAPH, 6, "双指可控制放大缩小,或点击边框上的按键控制", -1, true, (int)(_ui.m_loaGuide1.y + _ui.m_loaGuide1.height - 250), 0, 0, false);
-            GuideController.TryGuide(_ui.m_btnPhotograph, ConstGuideId.PHOTOGRAPH, 7, "点击拍照,可以记录和分享美照啦");
-            GuideController.TryCompleteGuide(ConstGuideId.PHOTOGRAPH, 7);
+            GuideController.TryGuide(_ui.m_ComSelectRes.m_comBtnTab.m_btn0, ConstGuideId.PHOTOGRAPH, 2, "在这里可以选择已获得的背景、道具等,也可以放大缩小物品,增加画面丰富度");
+            GuideController.TryGuide(_ui.m_btnPhotograph, ConstGuideId.PHOTOGRAPH, 3, "来记录下这一刻吧~~");
+            GuideController.TryCompleteGuide(ConstGuideId.PHOTOGRAPH, 3);
         }
     }
 }

+ 13 - 5
GameClient/Assets/Game/HotUpdate/Views/Guide/GuideView.cs

@@ -16,6 +16,7 @@ namespace GFGGame
         private float devHeight;
         private int yTxt;
         private bool showAni;
+        private bool showEffect;
 
         private int guideId;
         private int guideIndex;
@@ -44,9 +45,9 @@ namespace GFGGame
             _ui.m_rectFrame.target.AddRelation(_ui.m_mask.m_guideArea, RelationType.Height);
             _ui.m_rectFrame.target.AddRelation(_ui.m_mask.m_guideArea, RelationType.Left_Left);
             _ui.m_rectFrame.target.AddRelation(_ui.m_mask.m_guideArea, RelationType.Top_Top);
-            _ui.target.onClick.Add(() =>
+            _ui.m_mask.target.onClick.Add(() =>
             {
-                if (isOptionalGuide) this.Hide();
+                if (isOptionalGuide) this.OnClickTarget();
             });
             string resPath0 = ResPathUtil.GetViewEffectPath("ui_yd/ui_yd_y", "ui_yd_y");
             SceneController.AddObjectToView(_gameObject, _wrapper, _ui.m_comHolder.m_holder, resPath0, out _gameObject, out _wrapper);
@@ -66,6 +67,7 @@ namespace GFGGame
             guideId = (int)dataList[6];
             guideIndex = (int)dataList[7];
             showAni = (bool)dataList[8];
+            showEffect = (bool)dataList[9];
 
             if (txtContent != null && txtContent.Length > 0)
             {
@@ -109,6 +111,10 @@ namespace GFGGame
                 _ui.m_rectFrameTemp.visible = false;
 
             }
+            if (!showEffect)
+            {
+                _ui.m_comHolder.target.visible = showEffect;
+            }
             _ui.m_compTxt.target.y = Math.Min(yTxt, GRoot.inst.height - _ui.m_compTxt.target.height - 3);
         }
 
@@ -116,7 +122,7 @@ namespace GFGGame
         {
             Timers.inst.Remove(UpdateGuideRect);
             base.OnHide();
-            if (isOptionalGuide || guideTarget == null)
+            if (!isOptionalGuide && guideTarget == null)
             {
                 OnClickTarget();
             }
@@ -175,8 +181,10 @@ namespace GFGGame
                 {
                     _ui.m_comHolder.target.visible = true;
                     _ui.m_mask.m_guideArea.visible = true;
-
-
+                }
+                if (!showEffect)
+                {
+                    _ui.m_comHolder.target.visible = showEffect;
                 }
             }
         }

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

@@ -160,5 +160,14 @@ namespace GFGGame
             }
         }
 
+        protected override void UpdateToCheckGuide(object param)
+        {
+            if (!ViewManager.CheckIsTopView(this.viewCom)) return;
+
+            GuideController.TryGuide(_ui.m_btnBack, ConstGuideId.CLOTHING_DECOMPOSE, 1, "点击返回主界面");
+            GuideController.TryGuide(_ui.m_btnBack, ConstGuideId.UP_CARD_LV, 1, "点击返回主界面", -1, true, 0, 0, 0, true, true);
+
+        }
+
     }
 }

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

@@ -251,12 +251,11 @@ namespace GFGGame
             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(_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.UP_CARD_STAR, 1, "点击返回主界面");
 
-            GuideController.TryGuide(_ui.m_btnHome, ConstGuideId.PHOTOGRAPH, 1, "拍照功能已开启,解锁更多搭配和玩法哦");
 
         }
         protected override void TryCompleteGuide()

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

@@ -25,7 +25,7 @@ namespace GFGGame
 
         public static void OnFinishStoryLevel(int levelCfgId, bool firstPass, bool success)
         {
-            if(success)
+            if (success)
             {
                 //判断是否是首次打通最后一关
                 int nextLevelID = levelCfgId + 1;
@@ -34,6 +34,20 @@ namespace GFGGame
 
                 if (fistPassLastLvl)
                 {
+                    StoryLevelCfg levelCfg = StoryLevelCfgArray.Instance.GetCfg(levelCfgId);
+                    StoryChapterCfg nextStoryChapterCfg = StoryChapterCfgArray.Instance.GetCfg(levelCfg.chapterId + 1);
+                    if (nextStoryChapterCfg != null)
+                    {
+                        StoryLevelCfg nextChapterLevelCfg = StoryLevelCfgArray.Instance.GetCfgs(nextStoryChapterCfg.type, nextStoryChapterCfg.subType, nextStoryChapterCfg.id)[0];
+
+                        int LevelID = nextChapterLevelCfg.id;
+                        MainStoryDataManager.currentLevelCfgId = LevelID;
+                    }
+                    else
+                    {
+                        MainStoryDataManager.currentLevelCfgId = 0;
+
+                    }
                     ViewManager.Show(ViewName.STORY_CHAPTER_LIST_VIEW, null, null, true);
                 }
                 else

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

@@ -21,7 +21,7 @@ namespace GFGGame
         private const float _prefectScale = 60f;//完美缩放比
         private float _time = 0;// 登峰造极按住的时间
 
-        private float _playTime = 2.3f / 2;
+        private float _playTime = 2.3f;
         private bool _stopFight = false;
 
         private GameObject _gameObject0;

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

@@ -214,7 +214,7 @@ namespace GFGGame
             _ui.m_proScore.m_txtMineScore.text = RoleDataManager.roleName + "0";
             _ui.m_btnBack.visible = true;
 
-            _speed = EquipDataCache.cacher.fightSpeed;
+            _speed =EquipDataCache.cacher.fightSpeed;
             if (_levelCfg.type == ConstInstanceZonesType.Field)
             {
                 _speed = EquipDataCache.cacher.fieldFightSpeed;

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

@@ -266,12 +266,12 @@ namespace GFGGame
             if (!ViewManager.CheckIsTopView(this.viewCom)) return;
 
             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, "点击空白处关闭", -1, true, (int)(this.viewCom.y + _ui.m_txtPowerDesc.y), 0, 0, false);
-            GuideController.TryGuide(_ui.m_listTag, ConstGuideId.OPEN_TAGS, 1, "选择相应的关卡标签,可提高分数", -1, true, 0);
+            // if (GuideController.TryGuide(_ui.m_txtNeed, ConstGuideId.CLOTHING_SYNTHETIC, 2, "这次必需品,要通过合成获得"))
+            // {
+            //     _ui.m_btnStart.touchable = false;
+            // }
+            // GuideController.TryGuide(null, ConstGuideId.CLOTHING_SYNTHETIC, 3, "点击空白处关闭", -1, true, (int)(this.viewCom.y + _ui.m_txtPowerDesc.y), 0, 0, false);
+            GuideController.TryGuide(_ui.m_listTag, ConstGuideId.OPEN_TAGS, 1, "选择相应的关卡标签,可提高分数", -1, true, (int)(this.viewCom.y + _ui.m_listBonus.y), 0, 0, false);
             GuideController.TryCompleteGuide(ConstGuideId.OPEN_TAGS, 1);
 
 

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

@@ -85,6 +85,8 @@ namespace GFGGame
 
             string resPath = ResPathUtil.GetViewEffectPath("ui_zhandou", string.Format("zd_zdjs_{0}", _resultData.Star));
             SceneController.AddObjectToView(_gameObject, _wrapper, _ui.m_holder, resPath, out _gameObject, out _wrapper, 120);
+            _ui.m_holder.visible = true;
+            _gameObject.SetActive(true);
 
             TextFormat tf = _ui.m_txtScore.textFormat;
             UpdateToCheckGuide(null);

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

@@ -241,9 +241,14 @@ namespace GFGGame
             // Timers.inst.Add(effectTime, 1, (param) =>
             // {
             //     _ui.m_btnDailyLogin.m_holder.visible = false;
+            // List<string> list = new List<string>();
+            // list.Add("StudioView");
+            // list.Add("XiuFangView");
+            // ViewManager.Show<FunctionOpenView>(list);
             ViewManager.Show<DailyLoginView>(null, new object[] { ViewName.MAINUI_VIEW, this.viewData });
             //     isOpen = false;
             // });
+
         }
         private void OnClickBtnCiPai()
         {
@@ -368,11 +373,17 @@ namespace GFGGame
             GuideController.TryCompleteGuide(ConstGuideId.FREEDOM_DRESS, 6);
             GuideController.TryGuide(_ui.m_btnHuanZhuang.target, ConstGuideId.FREEDOM_DRESS, 2, "在这里,可以自由搭配服饰和分享哦~", -1, false);
 
-            GuideController.TryGuide(_ui.m_btnXiuFang.target, ConstGuideId.CLOTHING_SYNTHETIC, 5, "绣坊里增添了新功能", -1, true);
-            GuideController.TryCompleteGuide(ConstGuideId.CLOTHING_SYNTHETIC, 11);
+            GuideController.TryGuide(_ui.m_btnXiuFang.target, ConstGuideId.CLOTHING_DECOMPOSE, 2, "绣坊里增添了新功能", -1, false);
+
+            GuideController.TryGuide(_ui.m_btnXiuFang.target, ConstGuideId.CLOTHING_SYNTHETIC, 1, "进入绣坊界面", -1, false);
+            GuideController.TryCompleteGuide(ConstGuideId.CLOTHING_SYNTHETIC, 7);
+
+            GuideController.TryGuide(_ui.m_btnCiPai.target, ConstGuideId.UP_CARD_LV, 2, "获得了一张“词牌”,点击查看", -1, false, 0, 0, 0, true, true);
+
+            GuideController.TryGuide(_ui.m_btnStudio.target, ConstGuideId.STUDIO_OPEN, 1, "工作室开门啦,进去看看~~");
+
+            GuideController.TryGuide(_ui.m_btnXiuFang.target, ConstGuideId.SUIT_LIST_VIEW, 1, "获得“天衣”服饰后,可进行养护和焕新,到绣坊看看");
 
-            GuideController.TryGuide(_ui.m_btnCiPai.target, ConstGuideId.UP_CARD_STAR, 2, "已经收集了足够的材料,可以给词牌升星了", -1, false);
-            GuideController.TryGuide(_ui.m_btnHuanZhuang.target, ConstGuideId.PHOTOGRAPH, 2, "点这里看看吧", -1, false);
 
         }
     }

+ 5 - 1
GameClient/Assets/Game/HotUpdate/Views/RoleLvUp/RoleLvUpView.cs

@@ -55,7 +55,11 @@ namespace GFGGame
         protected override void OnHide()
         {
             base.OnHide();
-
+            string viewName = GuideController.CheckHasRoleLvGuideOpen();
+            if (viewName != "")
+            {
+                ViewManager.Show(viewName, null, null, true);
+            }
         }
     }
 }

+ 8 - 0
GameClient/Assets/Game/HotUpdate/Views/Studio/StudioView.cs

@@ -72,5 +72,13 @@ namespace GFGGame
         {
 
         }
+
+        protected override void UpdateToCheckGuide(object param)
+        {
+            if (!ViewManager.CheckIsTopView(this.viewCom)) return;
+            GuideController.TryGuide(_ui.target, ConstGuideId.STUDIO_OPEN, 2, "通关相应副本,可以获得各种升级材料哦,快开始今天的日常工作吧~~", -1, true, (int)(this.viewCom.height - 280), 0, 0, false, false);
+            GuideController.TryCompleteGuide(ConstGuideId.STUDIO_OPEN, 2);
+
+        }
     }
 }

+ 1 - 0
GameClient/Assets/Game/HotUpdate/Views/ViewManager.cs

@@ -246,6 +246,7 @@ namespace GFGGame
             {
                 if (viewName != excludeViewName)
                 {
+                    if (viewName == typeof(FunctionOpenView).Name) continue;//功能开启界面不能强制关闭
                     Hide(viewName);
                 }
             }

+ 13 - 1
GameClient/Assets/Game/HotUpdate/Views/XiuFang/XiuFangView.cs

@@ -35,6 +35,13 @@ namespace GFGGame
             base.OnShown();
 
             _ui.m_component.target.scrollPane.SetPosX(0, false);
+            GuideCfg cfg = GuideCfgArray.Instance.GetCfg(ConstGuideId.CLOTHING_DECOMPOSE);
+            if (GuideDataManager.currentGuideId == cfg.id)
+            {
+                // _ui.m_component.target.scrollPane.ScrollLeft();// SetPosX(0, false);
+                _ui.m_component.target.scrollPane.SetPosX(320, false);
+
+            }
         }
 
         protected override void OnHide()
@@ -76,7 +83,12 @@ namespace GFGGame
         {
             if (!ViewManager.CheckIsTopView(this.viewCom)) return;
 
-            GuideController.TryGuide(_ui.m_component.m_btnSuitSynthetic, ConstGuideId.CLOTHING_SYNTHETIC, 6, "这里可以查看已获得的服饰图谱");
+            GuideController.TryGuide(_ui.m_component.m_btnSuitSynthetic, ConstGuideId.CLOTHING_SYNTHETIC, 2, "这里可以查看已获得的服饰图谱");
+
+            GuideController.TryGuide(_ui.m_component.m_btnDecompose, ConstGuideId.CLOTHING_DECOMPOSE, 3, "这里可以消耗重复获得的服饰");
+
+            GuideController.TryGuide(_ui.m_component.m_btnClothingUpgrade, ConstGuideId.SUIT_LIST_VIEW, 2, "点击服装升级");
+
 
         }
 

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


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


BIN
GameClient/Assets/ResIn/UI/ClothingFoster/ClothingFoster_fui.bytes