少年修仙传客户端代码仓库
client_linchunjie
2019-05-15 9e5823c811259fe751e0afed3224de726c0af77c
3335 任务反馈修改
1个文件已修改
78 ■■■■■ 已修改文件
System/MainInterfacePanel/TaskFeedbackModel.cs 78 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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,
    }
}