From 469dbd2e5a06faab01e8190d038db83edb12cbe0 Mon Sep 17 00:00:00 2001
From: client_Hale <339726288@qq.com>
Date: 星期四, 16 五月 2019 17:52:26 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.0.87:10010/r/snxxz_scripts

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

diff --git a/System/MainInterfacePanel/TaskFeedbackModel.cs b/System/MainInterfacePanel/TaskFeedbackModel.cs
index 7d63a9b..04b936f 100644
--- a/System/MainInterfacePanel/TaskFeedbackModel.cs
+++ b/System/MainInterfacePanel/TaskFeedbackModel.cs
@@ -7,6 +7,8 @@
     {
         Dictionary<int, TaskFeedback> m_TaskFeedbacks = new Dictionary<int, TaskFeedback>();
 
+        public readonly List<int> taskFeedbackFuncs = new List<int>();
+
         ReikiRootModel reikiRootModel { get { return ModelCenter.Instance.GetModel<ReikiRootModel>(); } }
         PackModel packModel { get { return ModelCenter.Instance.GetModel<PackModel>(); } }
         TaskModel taskModel { get { return ModelCenter.Instance.GetModel<TaskModel>(); } }
@@ -77,6 +79,25 @@
                             }
                         }
                         break;
+                    case TaskFeedbackType.ReikiPoint:
+                        {
+                            if (!string.IsNullOrEmpty(config.reikiRoot))
+                            {
+                                var json = LitJson.JsonMapper.ToObject(config.reikiRoot);
+                                feedback.reikiRoots = new Dictionary<int, List<int[]>>();
+                                foreach (var jobKey in json.Keys)
+                                {
+                                    var job = int.Parse(jobKey);
+                                    var intArray = LitJson.JsonMapper.ToObject<int[][]>(json[jobKey].ToJson());
+                                    feedback.reikiRoots.Add(job, new List<int[]>());
+                                    for (int i = 0; i < intArray.Length; i++)
+                                    {
+                                        feedback.reikiRoots[job].Add(intArray[i]);
+                                    }
+                                }
+                            }
+                        }
+                        break;
                 }
 
                 m_TaskFeedbacks.Add(config.taskId, feedback);
@@ -102,6 +123,7 @@
                     case TaskFeedbackType.Guide:
                     case TaskFeedbackType.Equip:
                     case TaskFeedbackType.ItemCount:
+                    case TaskFeedbackType.SkyTowerFightPoint:
                         {
                             int condition = 0;
                             if (IsSatisfyCondition(feedback, out condition))
@@ -117,6 +139,12 @@
                                 if (!string.IsNullOrEmpty(config.remind))
                                 {
                                     SysNotifyMgr.Instance.ShowTip(config.remind);
+                                }
+                                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)
@@ -143,6 +171,12 @@
                                 {
                                     SysNotifyMgr.Instance.ShowTip(config.remind);
                                 }
+                                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)
@@ -168,6 +202,12 @@
                                 if (!string.IsNullOrEmpty(config.remind))
                                 {
                                     SysNotifyMgr.Instance.ShowTip(config.remind);
+                                }
+                                if (config.failFuncs != null && config.failFuncs.Length > 0)
+                                {
+                                    taskFeedbackFuncs.Clear();
+                                    taskFeedbackFuncs.AddRange(config.failFuncs);
+                                    WindowCenter.Instance.Open<TaskFeedbackFuncWin>();
                                 }
                                 if (!IsSatisfySideTask(feedback.sideTasks, out condition))
                                 {
@@ -219,6 +259,20 @@
                 case TaskFeedbackType.SideTask:
                     return IsSatisfySideTask(feedback.sideTasks, out condition);
                 case TaskFeedbackType.ReikiPoint:
+                    {
+                        if (feedback.reikiRoots != null)
+                        {
+                            var job = PlayerDatas.Instance.baseData.Job;
+                            var reikiRoots = feedback.reikiRoots[job];
+                            foreach (var reikiRoot in reikiRoots)
+                            {
+                                if (reikiRootModel.GetReikiRootPoint(reikiRoot[0]) < reikiRoot[1])
+                                {
+                                    return false;
+                                }
+                            }
+                        }
+                    }
                     return reikiRootModel.GetReikiRootTotalPoint() >= config.condition;
                 case TaskFeedbackType.Equip:
                     {
@@ -251,6 +305,15 @@
                         }
                         return true;
                     }
+                case TaskFeedbackType.SkyTowerFightPoint:
+                    {
+                        var skyTowerConfig = SkyTowerConfig.Get(config.condition);
+                        if (skyTowerConfig != null)
+                        {
+                            return PlayerDatas.Instance.baseData.FightPoint >= skyTowerConfig.fightPower;
+                        }
+                    }
+                    break;
             }
             return false;
         }
@@ -281,6 +344,7 @@
         public List<int[]> sideTasks;
         public int[] equipCondition;
         public List<Item> items;
+        public Dictionary<int, List<int[]>> reikiRoots;
 
         public int IndexOfSideTasks(int taskId)
         {
@@ -309,6 +373,7 @@
         Guide = 6,
         FightPowerSideTask = 7,
         ItemCount = 8,
+        SkyTowerFightPoint = 9,
     }
 }
 

--
Gitblit v1.8.0