| | |
| | | TaskModel taskModel { get { return ModelCenter.Instance.GetModel<TaskModel>(); } }
|
| | | TreasureModel treasureModel { get { return ModelCenter.Instance.GetModel<TreasureModel>(); } }
|
| | | AlchemyModel alchemyModel { get { return ModelCenter.Instance.GetModel<AlchemyModel>(); } }
|
| | | EquipModel equipModel { get { return ModelCenter.Instance.GetModel<EquipModel>(); } }
|
| | | EquipStrengthModel equipStrengthModel { get { return ModelCenter.Instance.GetModel<EquipStrengthModel>(); } }
|
| | |
|
| | | public override void Init()
|
| | | {
|
| | |
| | | if (feedback.failFuns != null)
|
| | | {
|
| | | var index = Mathf.Min(condition, feedback.failFuns.Count - 1);
|
| | | taskFeedbackFuncs.Clear();
|
| | | taskFeedbackFuncs.AddRange(feedback.failFuns[index]);
|
| | | WindowCenter.Instance.Open<TaskFeedbackFuncWin>();
|
| | | List<int> succFuncs;
|
| | | if (TryGetSatisfyConditionFuncs(feedback.failFuns[index], out succFuncs))
|
| | | {
|
| | | taskFeedbackFuncs.Clear();
|
| | | taskFeedbackFuncs.AddRange(succFuncs);
|
| | | WindowCenter.Instance.Open<TaskFeedbackFuncWin>();
|
| | | }
|
| | | }
|
| | | }
|
| | | }
|
| | |
| | | if (feedback.failFuns != null)
|
| | | {
|
| | | var index = Mathf.Min(condition, feedback.failFuns.Count - 1);
|
| | | taskFeedbackFuncs.Clear();
|
| | | taskFeedbackFuncs.AddRange(feedback.failFuns[index]);
|
| | | WindowCenter.Instance.Open<TaskFeedbackFuncWin>();
|
| | | List<int> succFuncs;
|
| | | if (TryGetSatisfyConditionFuncs(feedback.failFuns[index], out succFuncs))
|
| | | {
|
| | | taskFeedbackFuncs.Clear();
|
| | | taskFeedbackFuncs.AddRange(succFuncs);
|
| | | WindowCenter.Instance.Open<TaskFeedbackFuncWin>();
|
| | | }
|
| | | }
|
| | | }
|
| | | }
|
| | |
| | | {
|
| | | var taskIndex = feedback.IndexOfSideTasks(condition);
|
| | | var index = Mathf.Min(taskIndex, feedback.failFuns.Count - 1);
|
| | | taskFeedbackFuncs.Clear();
|
| | | taskFeedbackFuncs.AddRange(feedback.failFuns[index]);
|
| | | WindowCenter.Instance.Open<TaskFeedbackFuncWin>();
|
| | | List<int> succFuncs;
|
| | | if (TryGetSatisfyConditionFuncs(feedback.failFuns[index], out succFuncs))
|
| | | {
|
| | | taskFeedbackFuncs.Clear();
|
| | | taskFeedbackFuncs.AddRange(succFuncs);
|
| | | WindowCenter.Instance.Open<TaskFeedbackFuncWin>();
|
| | | }
|
| | | }
|
| | | }
|
| | | }
|
| | |
| | | IsSatisfySideTask(feedback.sideTasks, out sideTaskId);
|
| | | var taskIndex = feedback.IndexOfSideTasks(sideTaskId);
|
| | | var index = Mathf.Min(taskIndex, feedback.failFuns.Count - 1);
|
| | | taskFeedbackFuncs.Clear();
|
| | | taskFeedbackFuncs.AddRange(feedback.failFuns[index]);
|
| | | WindowCenter.Instance.Open<TaskFeedbackFuncWin>();
|
| | | List<int> succFuncs;
|
| | | if (TryGetSatisfyConditionFuncs(feedback.failFuns[index], out succFuncs))
|
| | | {
|
| | | taskFeedbackFuncs.Clear();
|
| | | taskFeedbackFuncs.AddRange(succFuncs);
|
| | | WindowCenter.Instance.Open<TaskFeedbackFuncWin>();
|
| | | }
|
| | | }
|
| | | }
|
| | | }
|
| | |
| | | }
|
| | | return true;
|
| | | }
|
| | |
|
| | | public bool TryGetSatisfyConditionFuncs(int[] funcs, out List<int> succFuncs)
|
| | | {
|
| | | succFuncs = null;
|
| | | if (funcs != null && funcs.Length > 0)
|
| | | {
|
| | | succFuncs = new List<int>();
|
| | | for (int i = 0; i < funcs.Length; i++)
|
| | | {
|
| | | if (IsSatisfyFuncConfition(funcs[i]))
|
| | | {
|
| | | succFuncs.Add(funcs[i]);
|
| | | }
|
| | | }
|
| | | return succFuncs.Count > 0;
|
| | | }
|
| | | return false;
|
| | | }
|
| | |
|
| | | public bool IsSatisfyFuncConfition(int func)
|
| | | {
|
| | | var config = TaskFeedbackFuncConfig.Get(func);
|
| | | if (config != null)
|
| | | {
|
| | | switch (config.type)
|
| | | {
|
| | | case 1:
|
| | | foreach (var item in config.itemCondition)
|
| | | {
|
| | | var count = packModel.GetItemCountByID(PackType.Item, item.x);
|
| | | if (count < item.y)
|
| | | {
|
| | | return false;
|
| | | }
|
| | | }
|
| | | return true;
|
| | | case 2:
|
| | | return reikiRootModel.freePoint > 0;
|
| | | case 3:
|
| | | foreach (var equipSet in equipModel.GetUnLockedEquipSets())
|
| | | {
|
| | | if (equipModel.ExistBetterEquip(equipSet, EquipModel.realmEquipTypes))
|
| | | {
|
| | | return true;
|
| | | }
|
| | | }
|
| | | return false;
|
| | | case 4:
|
| | | MissionDetailDates taskData;
|
| | | if (taskModel.TryGetTaskData(config.condition, out taskData))
|
| | | {
|
| | | return taskData.MissionState != 3;
|
| | | }
|
| | | return false;
|
| | | case 5:
|
| | | return equipStrengthModel.ExistAnySatisfyStrengh();
|
| | | default:
|
| | | return true;
|
| | | }
|
| | | }
|
| | | return false;
|
| | | }
|
| | | }
|
| | |
|
| | | public struct TaskFeedback
|