From fda6d8f39f1adb652b29372606a7c981fe5175e2 Mon Sep 17 00:00:00 2001
From: client_Wu Xijin <364452445@qq.com>
Date: 星期五, 17 五月 2019 10:42:44 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.0.87:10010/r/snxxz_scripts

---
 System/MainInterfacePanel/TaskFeedbackModel.cs |   76 ++++++++++++++++++++-----------------
 1 files changed, 41 insertions(+), 35 deletions(-)

diff --git a/System/MainInterfacePanel/TaskFeedbackModel.cs b/System/MainInterfacePanel/TaskFeedbackModel.cs
index 04b936f..0aa7d22 100644
--- a/System/MainInterfacePanel/TaskFeedbackModel.cs
+++ b/System/MainInterfacePanel/TaskFeedbackModel.cs
@@ -111,6 +111,11 @@
 
         public void ExecuteTaskFeedback(int taskId)
         {
+            if (NewBieCenter.Instance.inGuiding || FunctionalGuideCenter.Instance.ExistAnyUnderwayGuide())
+            {
+                return;
+            }
+
             TaskFeedback feedback;
             if (TryGetTaskFeedback(taskId, out feedback))
             {
@@ -128,28 +133,29 @@
                             int condition = 0;
                             if (IsSatisfyCondition(feedback, out condition))
                             {
-                                if (config.succGuide != null
-                                    && config.succGuide.Length > 0)
+                                var guide = config.succGuide != null
+                                    && config.succGuide.Length > 0 ? config.succGuide[0] : 0;
+                                if (config.jump != 0 && (guide == 0 || NewBieCenter.Instance.IsGuideCompleted(guide)))
                                 {
-                                    ExecuteGuide(config.succGuide[0]);
+                                    WindowJumpMgr.Instance.WindowJumpTo((JumpUIType)config.jump);
+                                }
+                                else
+                                {
+                                    ExecuteGuide(guide);
                                 }
                             }
                             else
                             {
-                                if (!string.IsNullOrEmpty(config.remind))
+                                if (config.remind != null && config.remind.Length > 0)
                                 {
-                                    SysNotifyMgr.Instance.ShowTip(config.remind);
+                                    var index = Mathf.Min(condition, config.remind.Length - 1);
+                                    SysNotifyMgr.Instance.ShowTip(config.remind[index]);
                                 }
                                 if (config.failFuncs != null && config.failFuncs.Length > 0)
                                 {
                                     taskFeedbackFuncs.Clear();
                                     taskFeedbackFuncs.AddRange(config.failFuncs);
                                     WindowCenter.Instance.Open<TaskFeedbackFuncWin>();
-                                }
-                                if (config.failGuide != null
-                                    && config.failGuide.Length > 0)
-                                {
-                                    ExecuteGuide(config.failGuide[0]);
                                 }
                             }
                         }
@@ -159,29 +165,30 @@
                             int condition = 0;
                             if (IsSatisfyCondition(feedback, out condition))
                             {
-                                if (config.succGuide != null
-                                    && config.succGuide.Length > 0)
+                                var guide = config.succGuide != null
+                                    && config.succGuide.Length > 0 ? config.succGuide[0] : 0;
+                                if (config.jump != 0 && (guide == 0 || NewBieCenter.Instance.IsGuideCompleted(guide)))
                                 {
-                                    ExecuteGuide(config.succGuide[0]);
+                                    WindowJumpMgr.Instance.WindowJumpTo((JumpUIType)config.jump);
+                                }
+                                else
+                                {
+                                    ExecuteGuide(guide);
                                 }
                             }
                             else
                             {
-                                if (!string.IsNullOrEmpty(config.remind))
+                                if (config.remind != null && config.remind.Length > 0)
                                 {
-                                    SysNotifyMgr.Instance.ShowTip(config.remind);
+                                    var taskIndex = feedback.IndexOfSideTasks(condition);
+                                    var index = Mathf.Min(taskIndex, config.remind.Length - 1);
+                                    SysNotifyMgr.Instance.ShowTip(config.remind[index]);
                                 }
                                 if (config.failFuncs != null && config.failFuncs.Length > 0)
                                 {
                                     taskFeedbackFuncs.Clear();
                                     taskFeedbackFuncs.AddRange(config.failFuncs);
                                     WindowCenter.Instance.Open<TaskFeedbackFuncWin>();
-                                }
-                                var index = feedback.IndexOfSideTasks(condition);
-                                if (config.failGuide != null
-                                    && index >= 0 && index < config.failGuide.Length)
-                                {
-                                    ExecuteGuide(config.failGuide[index]);
                                 }
                             }
                         }
@@ -191,32 +198,30 @@
                             int condition = 0;
                             if (IsSatisfyCondition(feedback, out condition))
                             {
-                                if (config.succGuide != null
-                                    && config.succGuide.Length > 0)
+                                var guide = config.succGuide != null
+                                    && config.succGuide.Length > 0 ? config.succGuide[0] : 0;
+                                if (config.jump != 0 && (guide == 0 || NewBieCenter.Instance.IsGuideCompleted(guide)))
                                 {
-                                    ExecuteGuide(config.succGuide[0]);
+                                    WindowJumpMgr.Instance.WindowJumpTo((JumpUIType)config.jump);
+                                }
+                                else
+                                {
+                                    ExecuteGuide(guide);
                                 }
                             }
                             else
                             {
-                                if (!string.IsNullOrEmpty(config.remind))
+                                if (config.remind != null && config.remind.Length > 0)
                                 {
-                                    SysNotifyMgr.Instance.ShowTip(config.remind);
+                                    var taskIndex = feedback.IndexOfSideTasks(condition);
+                                    var index = Mathf.Min(taskIndex, config.remind.Length - 1);
+                                    SysNotifyMgr.Instance.ShowTip(config.remind[index]);
                                 }
                                 if (config.failFuncs != null && config.failFuncs.Length > 0)
                                 {
                                     taskFeedbackFuncs.Clear();
                                     taskFeedbackFuncs.AddRange(config.failFuncs);
                                     WindowCenter.Instance.Open<TaskFeedbackFuncWin>();
-                                }
-                                if (!IsSatisfySideTask(feedback.sideTasks, out condition))
-                                {
-                                    var index = feedback.IndexOfSideTasks(condition);
-                                    if (config.failGuide != null
-                                        && index >= 0 && index < config.failGuide.Length)
-                                    {
-                                        ExecuteGuide(config.failGuide[index]);
-                                    }
                                 }
                             }
                         }
@@ -268,6 +273,7 @@
                             {
                                 if (reikiRootModel.GetReikiRootPoint(reikiRoot[0]) < reikiRoot[1])
                                 {
+                                    condition = 1;
                                     return false;
                                 }
                             }

--
Gitblit v1.8.0