From 29db26c8316842fada4881c256a86c52429fbd77 Mon Sep 17 00:00:00 2001
From: client_Lhy <995049470@qq.com>
Date: 星期五, 05 七月 2019 10:43:11 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master' into LuaOrgan

---
 System/MainInterfacePanel/TaskFeedbackModel.cs |   51 +++++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 47 insertions(+), 4 deletions(-)

diff --git a/System/MainInterfacePanel/TaskFeedbackModel.cs b/System/MainInterfacePanel/TaskFeedbackModel.cs
index 7a20734..621271b 100644
--- a/System/MainInterfacePanel/TaskFeedbackModel.cs
+++ b/System/MainInterfacePanel/TaskFeedbackModel.cs
@@ -86,6 +86,16 @@
                             }
                         }
                         break;
+                    case TaskFeedbackType.SkyTowerFightPoint:
+                        {
+                            if (!string.IsNullOrEmpty(config.reikiRoot))
+                            {
+                                var point = 0;
+                                int.TryParse(config.reikiRoot, out point);
+                                feedback.totalPoints = point;
+                            }
+                        }
+                        break;
                     case TaskFeedbackType.ReikiPoint:
                         {
                             if (!string.IsNullOrEmpty(config.reikiRoot))
@@ -180,7 +190,15 @@
                                     if (TryGetSatisfyConditionFuncs(feedback.failFuns[index], out succFuncs))
                                     {
                                         taskFeedbackFuncs.Clear();
-                                        taskFeedbackFuncs.AddRange(succFuncs);
+                                        if (config.onlyOneFunc != null &&
+                                            index < config.onlyOneFunc.Length && config.onlyOneFunc[index] == 1)
+                                        {
+                                            taskFeedbackFuncs.Add(succFuncs[0]);
+                                        }
+                                        else
+                                        {
+                                            taskFeedbackFuncs.AddRange(succFuncs);
+                                        }
                                         TaskFeedbackFuncWin.funcTitle = funcTitle;
                                         WindowCenter.Instance.Open<TaskFeedbackFuncWin>();
                                     }
@@ -212,7 +230,15 @@
                                     if (TryGetSatisfyConditionFuncs(feedback.failFuns[index], out succFuncs))
                                     {
                                         taskFeedbackFuncs.Clear();
-                                        taskFeedbackFuncs.AddRange(succFuncs);
+                                        if (config.onlyOneFunc != null &&
+                                            index < config.onlyOneFunc.Length && config.onlyOneFunc[index] == 1)
+                                        {
+                                            taskFeedbackFuncs.Add(succFuncs[0]);
+                                        }
+                                        else
+                                        {
+                                            taskFeedbackFuncs.AddRange(succFuncs);
+                                        }
                                         TaskFeedbackFuncWin.funcTitle = funcTitle;
                                         WindowCenter.Instance.Open<TaskFeedbackFuncWin>();
                                     }
@@ -245,7 +271,15 @@
                                     if (TryGetSatisfyConditionFuncs(feedback.failFuns[index], out succFuncs))
                                     {
                                         taskFeedbackFuncs.Clear();
-                                        taskFeedbackFuncs.AddRange(succFuncs);
+                                        if (config.onlyOneFunc != null &&
+                                            index < config.onlyOneFunc.Length && config.onlyOneFunc[index] == 1)
+                                        {
+                                            taskFeedbackFuncs.Add(succFuncs[0]);
+                                        }
+                                        else
+                                        {
+                                            taskFeedbackFuncs.AddRange(succFuncs);
+                                        }
                                         TaskFeedbackFuncWin.funcTitle = funcTitle;
                                         WindowCenter.Instance.Open<TaskFeedbackFuncWin>();
                                     }
@@ -415,7 +449,15 @@
                         var skyTowerConfig = SkyTowerConfig.Get(config.condition);
                         if (skyTowerConfig != null)
                         {
-                            return PlayerDatas.Instance.baseData.FightPoint >= skyTowerConfig.fightPower;
+                            if (feedback.totalPoints > 0 && PlayerDatas.Instance.baseData.FightPoint < skyTowerConfig.fightPower)
+                            {
+                                condition = reikiRootModel.GetReikiRootTotalPointWithFree() >= feedback.totalPoints ? 0 : 1;
+                                return false;
+                            }
+                            else
+                            {
+                                return PlayerDatas.Instance.baseData.FightPoint >= skyTowerConfig.fightPower;
+                            }
                         }
                     }
                     break;
@@ -586,6 +628,7 @@
         public List<Item> items;
         public Dictionary<int, List<int[]>> reikiRoots;
         public List<int[]> failFuns;
+        public int totalPoints;
 
         public int IndexOfSideTasks(int taskId)
         {

--
Gitblit v1.8.0