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

---
 System/MainInterfacePanel/TaskFeedbackModel.cs |   39 +++++++++++++++++++++++++++------------
 1 files changed, 27 insertions(+), 12 deletions(-)

diff --git a/System/MainInterfacePanel/TaskFeedbackModel.cs b/System/MainInterfacePanel/TaskFeedbackModel.cs
index a5eec7b..3ab95b5 100644
--- a/System/MainInterfacePanel/TaskFeedbackModel.cs
+++ b/System/MainInterfacePanel/TaskFeedbackModel.cs
@@ -100,6 +100,20 @@
                         break;
                 }
 
+                if (string.IsNullOrEmpty(config.failFuncs))
+                {
+                    var funcArray = LitJson.JsonMapper.ToObject<int[][]>(config.failFuncs);
+                    if (funcArray != null)
+                    {
+                        List<int[]> failFuncs = new List<int[]>(funcArray.Length);
+                        for (int i = 0; i < funcArray.Length; i++)
+                        {
+                            failFuncs.Add(funcArray[i]);
+                        }
+                        feedback.failFuns = failFuncs;
+                    }
+                }
+
                 m_TaskFeedbacks.Add(config.taskId, feedback);
             }
         }
@@ -133,8 +147,7 @@
                             int condition = 0;
                             if (IsSatisfyCondition(feedback, out condition))
                             {
-                                var guide = config.succGuide != null
-                                    && config.succGuide.Length > 0 ? config.succGuide[0] : 0;
+                                var guide = config.succGuide;
                                 if (guide != 0 && !NewBieCenter.Instance.IsGuideCompleted(guide))
                                 {
                                     ExecuteGuide(guide);
@@ -154,10 +167,11 @@
                                     var index = Mathf.Min(condition, config.remind.Length - 1);
                                     SysNotifyMgr.Instance.ShowTip(config.remind[index]);
                                 }
-                                if (config.failFuncs != null && config.failFuncs.Length > 0)
+                                if (feedback.failFuns != null)
                                 {
+                                    var index = Mathf.Min(condition, feedback.failFuns.Count - 1);
                                     taskFeedbackFuncs.Clear();
-                                    taskFeedbackFuncs.AddRange(config.failFuncs);
+                                    taskFeedbackFuncs.AddRange(feedback.failFuns[index]);
                                     WindowCenter.Instance.Open<TaskFeedbackFuncWin>();
                                 }
                             }
@@ -168,8 +182,7 @@
                             int condition = 0;
                             if (IsSatisfyCondition(feedback, out condition))
                             {
-                                var guide = config.succGuide != null
-                                    && config.succGuide.Length > 0 ? config.succGuide[0] : 0;
+                                var guide = config.succGuide;
                                 if (guide != 0 && !NewBieCenter.Instance.IsGuideCompleted(guide))
                                 {
                                     ExecuteGuide(guide);
@@ -190,10 +203,11 @@
                                     var index = Mathf.Min(taskIndex, config.remind.Length - 1);
                                     SysNotifyMgr.Instance.ShowTip(config.remind[index]);
                                 }
-                                if (config.failFuncs != null && config.failFuncs.Length > 0)
+                                if (feedback.failFuns != null)
                                 {
+                                    var index = Mathf.Min(condition, feedback.failFuns.Count - 1);
                                     taskFeedbackFuncs.Clear();
-                                    taskFeedbackFuncs.AddRange(config.failFuncs);
+                                    taskFeedbackFuncs.AddRange(feedback.failFuns[index]);
                                     WindowCenter.Instance.Open<TaskFeedbackFuncWin>();
                                 }
                             }
@@ -204,8 +218,7 @@
                             int condition = 0;
                             if (IsSatisfyCondition(feedback, out condition))
                             {
-                                var guide = config.succGuide != null
-                                    && config.succGuide.Length > 0 ? config.succGuide[0] : 0;
+                                var guide = config.succGuide;
                                 if (guide != 0 && !NewBieCenter.Instance.IsGuideCompleted(guide))
                                 {
                                     ExecuteGuide(guide);
@@ -226,10 +239,11 @@
                                     var index = Mathf.Min(taskIndex, config.remind.Length - 1);
                                     SysNotifyMgr.Instance.ShowTip(config.remind[index]);
                                 }
-                                if (config.failFuncs != null && config.failFuncs.Length > 0)
+                                if (feedback.failFuns != null)
                                 {
+                                    var index = Mathf.Min(condition, feedback.failFuns.Count - 1);
                                     taskFeedbackFuncs.Clear();
-                                    taskFeedbackFuncs.AddRange(config.failFuncs);
+                                    taskFeedbackFuncs.AddRange(feedback.failFuns[index]);
                                     WindowCenter.Instance.Open<TaskFeedbackFuncWin>();
                                 }
                             }
@@ -360,6 +374,7 @@
         public int[] equipCondition;
         public List<Item> items;
         public Dictionary<int, List<int[]>> reikiRoots;
+        public List<int[]> failFuns;
 
         public int IndexOfSideTasks(int taskId)
         {

--
Gitblit v1.8.0