From 9e5823c811259fe751e0afed3224de726c0af77c Mon Sep 17 00:00:00 2001
From: client_linchunjie <461730578@qq.com>
Date: 星期三, 15 五月 2019 10:36:38 +0800
Subject: [PATCH] 3335 任务反馈修改

---
 System/MainInterfacePanel/TaskFeedbackModel.cs |   78 ++++++++++++++++++++++++++++++++------
 1 files changed, 65 insertions(+), 13 deletions(-)

diff --git a/System/MainInterfacePanel/TaskFeedbackModel.cs b/System/MainInterfacePanel/TaskFeedbackModel.cs
index a2cc1f4..e74cdbf 100644
--- a/System/MainInterfacePanel/TaskFeedbackModel.cs
+++ b/System/MainInterfacePanel/TaskFeedbackModel.cs
@@ -63,6 +63,22 @@
                             feedback.equipCondition = array;
                         }
                         break;
+                    case TaskFeedbackType.FightPowerSideTask:
+                        {
+                            var stringArray = config.condition.Split('|');
+                            feedback.condition = int.Parse(stringArray[0]);
+                            var array = LitJson.JsonMapper.ToObject<int[][]>(stringArray[1]);
+                            if (array != null)
+                            {
+                                List<int[]> sideTasks = new List<int[]>(array.Length);
+                                for (int i = 0; i < array.Length; i++)
+                                {
+                                    sideTasks.Add(array[i]);
+                                }
+                                feedback.sideTasks = sideTasks;
+                            }
+                        }
+                        break;
                 }
 
                 m_TaskFeedbacks.Add(config.taskId, feedback);
@@ -133,6 +149,33 @@
                             }
                         }
                         break;
+                    case TaskFeedbackType.FightPowerSideTask:
+                        {
+                            int condition = 0;
+                            if (IsSatisfyCondition(feedback, out condition))
+                            {
+                                if (config.succGuide != 0)
+                                {
+                                    ExecuteGuide(config.succGuide);
+                                }
+                            }
+                            else
+                            {
+                                if (!IsSatisfySideTask(feedback.sideTasks, out condition))
+                                {
+                                    var sideFeedbackConfig = TaskFeedbackConfig.Get(condition);
+                                    if (!string.IsNullOrEmpty(sideFeedbackConfig.remind))
+                                    {
+                                        SysNotifyMgr.Instance.ShowTip(sideFeedbackConfig.remind);
+                                    }
+                                    if (sideFeedbackConfig != null && sideFeedbackConfig.failGuide != 0)
+                                    {
+                                        ExecuteGuide(sideFeedbackConfig.failGuide);
+                                    }
+                                }
+                            }
+                        }
+                        break;
                 }
             }
         }
@@ -164,19 +207,7 @@
                 case TaskFeedbackType.FightPower:
                     return PlayerDatas.Instance.baseData.FightPoint >= feedback.condition;
                 case TaskFeedbackType.SideTask:
-                    foreach (var taskId in taskModel.SideQuestsDic.Keys)
-                    {
-                        for (int i = 0; i < feedback.sideTasks.Count; i++)
-                        {
-                            if (taskId >= feedback.sideTasks[i][0]
-                                && taskId <= feedback.sideTasks[i][1])
-                            {
-                                condition = taskId;
-                                return false;
-                            }
-                        }
-                    }
-                    return true;
+                    return IsSatisfySideTask(feedback.sideTasks, out condition);
                 case TaskFeedbackType.ReikiPoint:
                     return reikiRootModel.GetReikiRootTotalPoint() >= feedback.condition;
                 case TaskFeedbackType.Equip:
@@ -190,8 +221,28 @@
                     return PlayerDatas.Instance.baseData.allCopper >= (ulong)feedback.condition;
                 case TaskFeedbackType.Guide:
                     return true;
+                case TaskFeedbackType.FightPowerSideTask:
+                    return PlayerDatas.Instance.baseData.FightPoint >= feedback.condition;
             }
             return false;
+        }
+
+        public bool IsSatisfySideTask(List<int[]> sideTasks, out int condition)
+        {
+            condition = 0;
+            foreach (var taskId in taskModel.SideQuestsDic.Keys)
+            {
+                for (int i = 0; i < sideTasks.Count; i++)
+                {
+                    if (taskId >= sideTasks[i][0]
+                        && taskId <= sideTasks[i][1])
+                    {
+                        condition = taskId;
+                        return false;
+                    }
+                }
+            }
+            return true;
         }
     }
 
@@ -212,6 +263,7 @@
         Equip = 4,
         Copper = 5,
         Guide = 6,
+        FightPowerSideTask = 7,
     }
 }
 

--
Gitblit v1.8.0