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