zhaoyang пре 3 година
родитељ
комит
d90acbe986
26 измењених фајлова са 680 додато и 111 уклоњено
  1. 11 0
      GameClient/Assets/Game/HotUpdate/Constant/ConstGuideId.cs
  2. 124 12
      GameClient/Assets/Game/HotUpdate/Controller/GuideController.cs
  3. 95 1
      GameClient/Assets/Game/HotUpdate/Data/GuideDataManager.cs
  4. 8 1
      GameClient/Assets/Game/HotUpdate/Views/Card/CardDetailView.cs
  5. 9 1
      GameClient/Assets/Game/HotUpdate/Views/Card/CardFosterView.cs
  6. 8 0
      GameClient/Assets/Game/HotUpdate/Views/ClothingShop/ClothingShopView.cs
  7. 19 1
      GameClient/Assets/Game/HotUpdate/Views/ClothingSynthetic/ClothingSyntheticView.cs
  8. 8 1
      GameClient/Assets/Game/HotUpdate/Views/ClothingSynthetic/SuitSyntheticView.cs
  9. 10 0
      GameClient/Assets/Game/HotUpdate/Views/CommonGame/ApproachOfItemView.cs
  10. 9 0
      GameClient/Assets/Game/HotUpdate/Views/CommonGame/BuyCountView.cs
  11. 67 1
      GameClient/Assets/Game/HotUpdate/Views/DressUp/DressUpFightView.cs
  12. 34 0
      GameClient/Assets/Game/HotUpdate/Views/DressUp/DressUpView.cs
  13. 22 0
      GameClient/Assets/Game/HotUpdate/Views/Guide/GuideView.cs
  14. 25 2
      GameClient/Assets/Game/HotUpdate/Views/LuckyBox/LuckyBoxStarView.cs
  15. 23 20
      GameClient/Assets/Game/HotUpdate/Views/LuckyBox/LuckyBoxView.cs
  16. 9 0
      GameClient/Assets/Game/HotUpdate/Views/MainStory/StoryCardChoose.cs
  17. 46 35
      GameClient/Assets/Game/HotUpdate/Views/MainStory/StoryChapterView.cs
  18. 30 1
      GameClient/Assets/Game/HotUpdate/Views/MainStory/StoryFightSingleScoreView.cs
  19. 5 4
      GameClient/Assets/Game/HotUpdate/Views/MainStory/StoryFightSingleView.cs
  20. 35 4
      GameClient/Assets/Game/HotUpdate/Views/MainStory/StoryFightTargetScoreView.cs
  21. 24 9
      GameClient/Assets/Game/HotUpdate/Views/MainStory/StoryLevelInfoView.cs
  22. 21 5
      GameClient/Assets/Game/HotUpdate/Views/MainUI/MainUIView.cs
  23. 27 12
      GameClient/Assets/Game/HotUpdate/Views/ViewManager.cs
  24. 10 0
      GameClient/Assets/Game/HotUpdate/Views/XiuFang/XiuFangView.cs
  25. BIN
      GameClient/Assets/ResIn/Config/excelConfig.sqlite.bytes
  26. 1 1
      GameClient/ProjectSettings/ProjectSettings.asset

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

@@ -23,5 +23,16 @@ namespace GFGGame
         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";
     }
 }

+ 124 - 12
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,18 +147,10 @@ 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))
@@ -163,6 +161,7 @@ namespace GFGGame
 
         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,102 @@ namespace GFGGame
             }
             return false;
         }
-        /*******************************************************************************************************************/
+        /*********************************************************************************************************************************/
+        public static bool useNewGuide = false;
+        public static bool TryGuide(GObject target, string guideKey, int index, string guideStr = null, bool isList = false, int listIndex = 0, bool checkInde = true, bool needUpdate = false, int yTxt = 0, bool isOptionalGuide = false, float devWidth = 0, float devHeight = 0)
+        {
+            if (!useNewGuide) return false;
+
+            GuideCfg cfg = GuideCfgArray.Instance.GetCfg(guideKey);
+
+            if (GuideDataManager.GetGuideCountCopy(guideKey) <= 0
+            && (!checkInde || checkInde && GuideDataManager.IsGuideIndexFinish(cfg.id, index - 1) == true && GuideDataManager.IsGuideIndexFinish(cfg.id, index) == false)
+            && (GuideDataManager.currentGuideId == 0 || GuideDataManager.currentGuideId == cfg.id && GuideDataManager.currentGuideIdIndex != index)
+            && StoryDataManager.CheckLevelPass(cfg.chapterId, cfg.level - 1)
+            && !StoryDataManager.CheckLevelPass(cfg.chapterId, cfg.level))
+            {
+                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, isOptionalGuide, devWidth, devHeight, GuideDataManager.currentGuideId, GuideDataManager.currentGuideIdIndex);
+                if (!checkInde)
+                {
+                    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 +796,7 @@ namespace GFGGame
 
         public static bool TryCompleteGuide(int guideId)
         {
+            if (useNewGuide) return false;
             bool result = GuideDataManager.TryCompleteGuide(guideId);
             if (result)
             {
@@ -698,11 +807,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)
             {

+ 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;
+        }
     }
 }

+ 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);
         }
     }
 }

+ 8 - 0
GameClient/Assets/Game/HotUpdate/Views/ClothingShop/ClothingShopView.cs

@@ -164,6 +164,7 @@ namespace GFGGame
                 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()
@@ -181,6 +182,7 @@ namespace GFGGame
             }
             _selectedItemId = 0;
             EventAgent.RemoveEventListener(ConstMessage.ITEM_CHANGED, UpdateSelectedItemInfo);
+            Timers.inst.Remove(UpdateToCheckGuide);
         }
 
         private void OnClickBtnBack()
@@ -354,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, "点击返回,回到换装");
+        }
     }
 }

+ 19 - 1
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)
             {
@@ -387,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, 7, "找到需要合成的物品", 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, 8, "这里可以查看合成需要的材料,和材料的获取途径");
+            GuideController.TryGuide(_ui.m_btnProduction, ConstGuideId.CLOTHING_SYNTHETIC, 9, "点击合成物品");
+            GuideController.TryGuide(_ui.m_btnHome, ConstGuideId.CLOTHING_SYNTHETIC, 10, "获得必需品啦,继续通关主线剧情吧");
+        }
     }
 }

+ 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, 6, "查看已解锁的图谱", true, 0);
+        }
     }
 }

+ 10 - 0
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)
@@ -148,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>

+ 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, "这次换装需要获得别人的认可呢");
+
+
+        }
     }
 }

+ 34 - 0
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)
@@ -549,5 +553,35 @@ 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);
+        }
     }
 }

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

@@ -13,6 +13,9 @@ namespace GFGGame
         private GObject guideTarget = null;
         private float devWidth;
         private float devHeight;
+
+        private int guideId;
+        private int guideIndex;
         private bool isOptionalGuide = false;//弱引导,点击任意地方都可关闭
         public override void Dispose()
         {
@@ -50,6 +53,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 +89,12 @@ namespace GFGGame
                     Timers.inst.AddUpdate(UpdateGuideRect);
                 }
                 _ui.m_mask.target.visible = true;
+
+                if (GuideController.useNewGuide)
+                {
+                    guideTarget.onClick.Add(OnClickTarget);
+
+                }
             }
             else
             {
@@ -96,7 +110,9 @@ namespace GFGGame
         {
             Timers.inst.Remove(UpdateGuideRect);
             base.OnHide();
+            OnClickTarget();
             guideTarget = null;
+
         }
 
 
@@ -132,5 +148,11 @@ namespace GFGGame
                 }
             }
         }
+        private void OnClickTarget()
+        {
+            if (guideTarget == null) return;
+            guideTarget.onClick.Remove(OnClickTarget);
+            GuideController.TryCompleteGuideIndex(guideId, guideIndex);
+        }
     }
 }

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

@@ -77,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();
@@ -201,6 +201,7 @@ namespace GFGGame
             }
             else
             {
+                TryCompleteGuide();
                 Timers.inst.Add(0.3f, 1, ClickUIEnd);
                 GuideController.HideGuide();
                 GuideController.TryCompleteGuide(ConstGuideId.MAIN_UI_BTN_ZHAI_XING);
@@ -249,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, 1600);
+            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;
+            }
         }
     }
 }

+ 23 - 20
GameClient/Assets/Game/HotUpdate/Views/LuckyBox/LuckyBoxView.cs

@@ -227,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()
         {
@@ -278,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);
         }
     }
 }

+ 46 - 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()
@@ -246,49 +247,59 @@ 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(_ui.m_btnHome, ConstGuideId.CLOTHING_SYNTHETIC, 3, "先回到主界面");
+            GuideController.TryGuide(_ui.m_btnHome, ConstGuideId.UP_CARD_STAR, 1, "点击返回主界面");
+
         }
     }
-}
+
+}
+

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

@@ -62,6 +62,7 @@ namespace GFGGame
             {
                 SkillScoreStart(null);
             });//评分结束
+            Timers.inst.AddUpdate(UpdateToCheckGuide);
 
         }
 
@@ -96,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
@@ -257,6 +269,7 @@ namespace GFGGame
                 GameObject.Destroy(_sceneObject);
                 _sceneObject = null;
             }
+            Timers.inst.Remove(UpdateToCheckGuide);
 
         }
 
@@ -293,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;

+ 35 - 4
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();
 
@@ -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, false, -128f, -128f);
+            }
+            GuideController.TryGuide(_ui.m_btnSkill0.target, ConstGuideId.TARGET_FIGHT, 3, "使用技能,可以增加胜出的几率哦,点击看看");
+            GuideController.TryCompleteGuide(ConstGuideId.TARGET_FIGHT, 3);
+
+        }
     }
 }

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

@@ -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)
@@ -250,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, 1, "这次必需品,要通过合成获得", false, 0, true, false, 0, true))
+            {
+                _ui.m_btnStart.touchable = false;
             }
+            GuideController.TryGuide(null, ConstGuideId.CLOTHING_SYNTHETIC, 2, "点击空白处关闭", false, 0, true, false, 1300);
+            GuideController.TryGuide(_ui.m_listTag, ConstGuideId.OPEN_TAGS, 1, "选择相应的关卡标签,可提高分数", false, 0, true, false, 0, true);
+            GuideController.TryCompleteGuide(ConstGuideId.OPEN_TAGS, 1);
+
+
+        }
+
+        private void TryCompleteGuide()
+        {
+            GuideCfg cfg = GuideCfgArray.Instance.GetCfg(ConstGuideId.CLOTHING_SYNTHETIC);
+            GuideController.TryCompleteGuideIndex(cfg.id, 2);
         }
-        // protected override void OnHide()
-        // {
-        //     base.OnHide();
-        //     GuideController.HideGuide();
-        // }
     }
 }

+ 21 - 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,20 @@ 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, 4, "绣坊里增添了新功能", false, 0, false);
+            GuideController.TryCompleteGuide(ConstGuideId.CLOTHING_SYNTHETIC, 10);
+
+            GuideController.TryGuide(_ui.m_btnCiPai.target, ConstGuideId.UP_CARD_STAR, 2, "已经收集了足够的材料,可以给词牌升星了");
         }
     }
 }

+ 27 - 12
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
                 {
@@ -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, 5, "这里可以查看已获得的服饰图谱");
+
+        }
+
     }
 }

BIN
GameClient/Assets/ResIn/Config/excelConfig.sqlite.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: