Browse Source

战斗引导

zhaoyang 2 năm trước cách đây
mục cha
commit
eaa5d479e3

+ 1 - 1
FGUIProject/assets/League/LeagueConstructUI.xml

@@ -35,7 +35,7 @@
       <property target="txtDesc" propertyId="0" value="成员上限"/>
     </component>
     <component id="n16_rv09" name="comHotel1" src="rv0925" fileName="components/ComConstruct.xml" xy="424,522" group="n56_o9gh">
-      <property target="txtDesc" propertyId="0" value="御史上限"/>
+      <property target="txtDesc" propertyId="0" value="社花上限"/>
     </component>
     <component id="n18_rv09" name="comHotel2" src="rv0925" fileName="components/ComConstruct.xml" xy="424,557" group="n56_o9gh">
       <property target="txtDesc" propertyId="0" value="每日新加上限"/>

+ 6 - 4
GameClient/Assets/Game/HotUpdate/Constant/ConstMessage.cs

@@ -124,7 +124,7 @@ namespace GFGGame
         public const string CONTINUOUS_REBATE_GIFT = "CONTINUOUS_REBATE_GIFT";//领取连续返利礼包
         public const string CONTINUOUS_REBATE_GIFT_SHOP_BUY = "CONTINUOUS_REBATE_GIFT_SHOP_BUY";
         public const string ACTIVITY_LUCKY_BOX = "ACTIVITY_LUCKY_BOX";//通知限时抽奖活动剩余次数
-        
+
         //通知活动移除
         public const string ACTIVITY_REMOVE = "ACTIVITY_REMOVE";
         //通知活动添加
@@ -132,16 +132,18 @@ namespace GFGGame
         // ACTIVITY_REWARD_ADD
         public const string ACTIVITY_REWARD_ADD = "ACTIVITY_REWARD_ADD";
         public static string ACTIVITY_COUNT_VALUE_CHANGE = "ACTIVITY_COUNT_VALUE_CHANGE";
-        
+
         //通知开启通行证
         public const string NOTICE_PASSPORT_OPEN = "NOTICE_PASSPORT_OPEN";
         //通知通行证等级变化
         public const string NOTICE_PASSPORT_LEVEL_CHANGE = "NOTICE_PASSPORT_LEVEL_CHANGE";
         //通知通行证赛季变更
         public const string NOTICE_PASSPORT_SEASON_CHANGE = "NOTICE_PASSPORT_SEASON_CHANGE";
-        
+
         //通知任务状态变更
         public const string NOTICE_TASK_STATE_CHANGE = "NOTICE_TASK_STATE_CHANGE";
-        
+        //引导界面关闭
+        public const string GUIDE_VIEW_HIDE = "GUIDE_VIEW_HIDE";
+
     }
 }

+ 4 - 4
GameClient/Assets/Game/HotUpdate/Controller/GuideController.cs

@@ -63,7 +63,7 @@ namespace GFGGame
 
         }
         private static GList targetList = null;
-        public static bool TryGuide(GComponent target, string guideKey, int index, string guideStr = null, int listIndex = -1, bool checkPriorIndex = true, float yTxt = 0, bool justHint = false)
+        public static bool TryGuide(GComponent target, string guideKey, int index, string guideStr = null, int listIndex = -1, bool checkPriorIndex = true, float yTxt = 0, bool justHint = false, bool noTips = false)
         {
             if (!GameGlobal.DataInited)
             {
@@ -121,7 +121,7 @@ namespace GFGGame
                         return false;
                     }
                 }
-                ShowGuideByIndex(target, guideKey, guideStr, GuideDataManager.currentGuideId, GuideDataManager.currentGuideIdIndex, yTxt, justHint);
+                ShowGuideByIndex(target, guideKey, guideStr, GuideDataManager.currentGuideId, GuideDataManager.currentGuideIdIndex, yTxt, justHint, noTips);
                 if (!checkPriorIndex)
                 {
                     for (int i = 1; i < index; i++)
@@ -136,7 +136,7 @@ namespace GFGGame
 
             return false;
         }
-        private static void ShowGuideByIndex(GObject target, string guideKey, string guideStr = null, int guideId = 0, int index = 0, float yTxt = 0, bool justHint = false)
+        private static void ShowGuideByIndex(GObject target, string guideKey, string guideStr = null, int guideId = 0, int index = 0, float yTxt = 0, bool justHint = false, bool noTips = false)
         {
             HideGuide();
             if (GameGlobal.skipGuide)
@@ -144,7 +144,7 @@ namespace GFGGame
                 return;
             }
             LogServerHelper.SendNodeLog(GuideDataManager.currentGuideId * 100 + 1);
-            ViewManager.Show(ViewName.GUIDE_VIEW, new List<object> { target, guideKey, guideStr, guideId, index, yTxt, justHint });
+            ViewManager.Show(ViewName.GUIDE_VIEW, new List<object> { target, guideKey, guideStr, guideId, index, yTxt, justHint, noTips });
         }
         public static bool TryCompleteGuideIndex(string guideKey, int index)
         {

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

@@ -826,7 +826,6 @@ namespace GFGGame
         private void CheckGuide(object param)
         {
             if (GuideDataManager.IsGuideFinish(ConstGuideId.BUY_CLOTHING) <= 0
-             || GuideDataManager.IsGuideFinish(ConstGuideId.START_FIGHT) <= 0
              || GuideDataManager.IsGuideFinish(ConstGuideId.AUTOPLAY_FIGHT) <= 0)
             {
                 UpdateToCheckGuide(null);

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

@@ -1115,7 +1115,7 @@ namespace GFGGame
         protected override void TryCompleteGuide()
         {
             base.TryCompleteGuide();
-            GuideController.TryCompleteGuide(ConstGuideId.START_FIGHT, 5);
+            // GuideController.TryCompleteGuide(ConstGuideId.START_FIGHT, 5);
         }
     }
 }

+ 10 - 2
GameClient/Assets/Game/HotUpdate/Views/Guide/GuideView.cs

@@ -16,6 +16,7 @@ namespace GFGGame
         private int guideId;
         private int guideIndex;
         private bool justHint;//仅提示,无遮罩,点击任何地方可关闭引导
+        private bool NoTips;//无遮罩,无点击特效
 
         private float compTxtY = 0;//提示语位置
         private string txtContent = "";
@@ -61,6 +62,7 @@ namespace GFGGame
             guideIndex = (int)dataList[4];
             compTxtY = (float)dataList[5];
             justHint = (bool)dataList[6];
+            NoTips = (bool)dataList[7];
 
 
             GRoot.inst.touchable = true;
@@ -75,7 +77,7 @@ namespace GFGGame
 
                 Timers.inst.AddUpdate(UpdateGuideRect);
                 _ui.m_mask.target.visible = true;
-
+                _ui.m_comHolder.target.visible = true;
                 guideTarget.onClick.Add(OnClickTarget);
             }
             else
@@ -95,6 +97,11 @@ namespace GFGGame
                 _ui.m_mask.target.visible = false;
                 _ui.m_loaMask.visible = true;
             }
+            if (NoTips)
+            {
+                _ui.m_mask.target.visible = false;
+                _ui.m_comHolder.target.visible = false;
+            }
 
             //一些特殊引导
             GuideCfg cfg = GuideCfgArray.Instance.GetCfg(ConstGuideId.STUDIO_PORCELAIN);
@@ -124,6 +131,7 @@ namespace GFGGame
             guideTarget = null;
             Timers.inst.Remove(UpdateGuideRect);
             Timers.inst.Remove(UpdateStudioMetalGuide);
+            // EventAgent.DispatchEvent(ConstMessage.GUIDE_VIEW_HIDE);
         }
 
         private void UpdateComTxt(string txtContent)
@@ -174,7 +182,7 @@ namespace GFGGame
                     {
                         _ui.m_comHolder.m_c1.selectedIndex = 1;//手在右边
                     }
-                    _ui.m_comHolder.target.visible = true;
+                    _ui.m_comHolder.target.visible = !NoTips;
                     _ui.m_compTxt.target.visible = !String.IsNullOrEmpty(txtContent);
 
 

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

@@ -25,6 +25,7 @@ namespace GFGGame
         private float _time = 0;// 登峰造极按住的时间
         private int _prefectCount = 0;//卓越点击数量
         private bool _isAllPerfect = false;//登峰造极中
+        private bool tryGuide = false;
 
         private GameObject _gameObject0;
         private GameObject _gameObject1;
@@ -171,6 +172,7 @@ namespace GFGGame
         {
             base.AddEventListener();
             EventAgent.AddEventListener(ConstMessage.SHOW_CARD_SKILL_END, SkillScoreEnd);
+            // EventAgent.AddEventListener(ConstMessage.GUIDE_VIEW_HIDE, OnGuideEventListener);
         }
         protected override void OnShown()
         {
@@ -210,7 +212,16 @@ namespace GFGGame
             _skillScore = 0;//技能附加分
             _mainScore = ScoreSystemData.Instance.GetMainScore(roleData);
 
-            Timers.inst.Add(0.5f, 1, SkillScoreStart);//评分结束
+
+
+            if (GuideDataManager.IsGuideFinish(ConstGuideId.START_FIGHT) > 0)
+            {
+                _ui.m_comClick.target.touchable = true;
+                _ui.m_btnBack.visible = true;
+                Timers.inst.Add(0.5f, 1, SkillScoreStart);//评分结束
+            }
+            tryGuide = false;
+            Timers.inst.AddUpdate(CheckGuide);
         }
 
         private void SkillScoreStart(object param)
@@ -272,7 +283,12 @@ namespace GFGGame
             _ui.m_comClick.m_comResult.target.SetXY(x, y);
             _ui.m_comClick.m_comResult.m_t0.ignoreEngineTimeScale = false;
             _ui.m_comClick.m_comResult.m_t0.timeScale = FightDataManager.Instance.fightSpeed;
-            if (FightDataManager.Instance.autoPlay)
+            if (GuideDataManager.IsGuideFinish(ConstGuideId.START_FIGHT) <= 0)
+            {
+                _ui.m_comClick.target.touchable = false;
+                _ui.m_comClick.m_comResult.m_t0.Play(1, 0, 0, 1.25f, UpdateToCheckGuide);
+            }
+            else if (FightDataManager.Instance.autoPlay)
             {
                 _ui.m_comClick.m_comResult.m_t0.SetHook("perfect", CheckPerfectSkill);
                 _ui.m_comClick.m_comResult.m_t0.Play();
@@ -403,7 +419,11 @@ namespace GFGGame
             }
             else
             {
-                _ui.m_comClick.m_comAllPerfect.m_t0.Play();
+                if (GuideDataManager.IsGuideFinish(ConstGuideId.START_FIGHT) <= 0)
+                {
+                    _ui.m_comClick.target.touchable = false;
+                }
+                _ui.m_comClick.m_comAllPerfect.m_t0.Play(UpdateToCheckGuide);
             }
 
         }
@@ -415,6 +435,12 @@ namespace GFGGame
             _ui.m_comClick.m_comAllPerfect.m_t1.timeScale = FightDataManager.Instance.fightSpeed;// 1 / _speed;
             _ui.m_comClick.m_comAllPerfect.m_t1.Play(AllCircleScoreEnd);
             Timers.inst.Add(0.1f, 0, ComAllCirclePressTime);
+            if (GuideDataManager.IsGuideFinish(ConstGuideId.START_FIGHT) <= 0)
+            {
+                GuideCfg guideCfg = GuideCfgArray.Instance.GetCfg(ConstGuideId.START_FIGHT);
+                GuideController.TryCompleteGuideIndex(ConstGuideId.START_FIGHT, 10);
+                GuideController.TryCompleteGuide(ConstGuideId.START_FIGHT, 10);
+            }
         }
         private void ComAllCirclePressTime(object param = null)
         {
@@ -442,6 +468,7 @@ namespace GFGGame
                 {
                     _prefectCount = 0;
                     UpdateProgress();
+
                 });
         }
 
@@ -485,6 +512,7 @@ namespace GFGGame
         {
             base.RemoveEventListener();
             EventAgent.RemoveEventListener(ConstMessage.SHOW_CARD_SKILL_END, SkillScoreEnd);
+            // EventAgent.RemoveEventListener(ConstMessage.GUIDE_VIEW_HIDE, OnGuideEventListener);
         }
         private void Reset()
         {
@@ -524,6 +552,50 @@ namespace GFGGame
             }
 
             Reset();
+            Timers.inst.Remove(CheckGuide);
         }
+        private void CheckGuide(object param)
+        {
+            if (GuideDataManager.IsGuideFinish(ConstGuideId.START_FIGHT) <= 0)
+            {
+                _ui.m_btnBack.visible = false;
+                UpdateToCheckGuide(null);
+            }
+            else
+            {
+                Timers.inst.Remove(CheckGuide);
+            }
+        }
+        protected override void UpdateToCheckGuide(object param)
+        {
+            if (!ViewManager.CheckIsTopView(this.viewCom)) return;
+            GuideController.TryGuide(null, ConstGuideId.START_FIGHT, 6, "战斗时抓住时机点击可获得额外分数哦", -1, true, 230, true);
+            GuideCfg guideCfg = GuideCfgArray.Instance.GetCfg(ConstGuideId.START_FIGHT);
+            if (!tryGuide && GuideDataManager.IsGuideIndexFinish(guideCfg.id, 6))
+            {
+                tryGuide = true;
+                Timers.inst.Add(0.5f, 1, SkillScoreStart);
+            }
+        }
+
+        private void UpdateToCheckGuide()
+        {
+            _ui.m_comClick.target.touchable = true;
+            GuideCfg guideCfg = GuideCfgArray.Instance.GetCfg(ConstGuideId.START_FIGHT);
+            if (_partId == 1)
+            {
+                GuideController.TryGuide(_ui.m_comClick.target, ConstGuideId.START_FIGHT, 7, "就是这个时候!点击任意地方就可获得卓越评分!", -1, true, 230, false, true);
+            }
+            if (_partId == 2)
+            {
+                GuideController.TryGuide(_ui.m_comClick.target, ConstGuideId.START_FIGHT, 8, "点击!点击!", -1, true, 230, false, true);
+            }
+            if (_partId == 3)
+            {
+                GuideController.TryGuide(_ui.m_comClick.target, ConstGuideId.START_FIGHT, 9, "你真棒,再来一次", -1, true, 230, false, true);
+            }
+            if (_isAllPerfect) GuideController.TryGuide(_ui.m_comClick.target, ConstGuideId.START_FIGHT, 10, "太棒啦,6次卓越点击会触发登峰造极哦!任意地方按住3秒就行!", -1, true, 230, false, true);
+        }
+
     }
 }

BIN
GameClient/Assets/ResIn/UI/League/League_fui.bytes