| Core/GameEngine/Model/Config/TaskFeedbackFuncConfig.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Core/GameEngine/Model/Config/TaskFeedbackFuncConfig.cs.meta | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/EquipGem/EquipStrengthModel.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/MainInterfacePanel/TaskFeedbackModel.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/Role/ReikiRootWin.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
Core/GameEngine/Model/Config/TaskFeedbackFuncConfig.cs
@@ -1,6 +1,6 @@ //-------------------------------------------------------- // [Author]: Fish // [ Date ]: Thursday, May 16, 2019 // [ Date ]: Thursday, May 23, 2019 //-------------------------------------------------------- using System.Collections.Generic; @@ -16,7 +16,11 @@ public readonly int id; public readonly string name; public readonly int jump; public readonly int guide; public readonly int guide; public readonly int type; public readonly int condition; public readonly Int2[] itemCondition; public readonly Int2[] betterEquips; public TaskFeedbackFuncConfig() { @@ -34,7 +38,25 @@ int.TryParse(tables[2],out jump); int.TryParse(tables[3],out guide); int.TryParse(tables[3],out guide); int.TryParse(tables[4],out type); int.TryParse(tables[5],out condition); string[] itemConditionStringArray = tables[6].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries); itemCondition = new Int2[itemConditionStringArray.Length]; for (int i=0;i<itemConditionStringArray.Length;i++) { Int2.TryParse(itemConditionStringArray[i],out itemCondition[i]); } string[] betterEquipsStringArray = tables[7].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries); betterEquips = new Int2[betterEquipsStringArray.Length]; for (int i=0;i<betterEquipsStringArray.Length;i++) { Int2.TryParse(betterEquipsStringArray[i],out betterEquips[i]); } } catch (Exception ex) { @@ -118,6 +140,7 @@ path = AssetVersionUtility.GetAssetFilePath("config/TaskFeedbackFunc.txt"); } configs.Clear(); var tempConfig = new TaskFeedbackFuncConfig(); var preParse = tempConfig is IConfigPostProcess; Core/GameEngine/Model/Config/TaskFeedbackFuncConfig.cs.meta
@@ -1,6 +1,6 @@ fileFormatVersion: 2 guid: b2d416872ed7b3048a5b2d4696c3541f timeCreated: 1557994779 timeCreated: 1558595830 licenseType: Pro MonoImporter: serializedVersion: 2 System/EquipGem/EquipStrengthModel.cs
@@ -575,6 +575,37 @@ } } public bool ExistAnySatisfyStrengh() { var equipSets = equipModel.GetUnLockedEquipSets(); foreach (var level in equipSets) { foreach (var place in equipPlaces) { var position = new Int2(level, place); var equipGuid = equipModel.GetEquip(position); if (string.IsNullOrEmpty(equipGuid)) { continue; } var state = GetEquipStrengthState(position); if (state != 0) { continue; } if (!HasEnoughMoney(position)) { continue; } return true; } } return false; } void UpdateRedpoint() { if (!FuncOpen.Instance.IsFuncOpen((int)FuncOpenEnum.Strength)) System/MainInterfacePanel/TaskFeedbackModel.cs
@@ -14,6 +14,8 @@ 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() { @@ -164,9 +166,13 @@ 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>(); } } } } @@ -197,9 +203,13 @@ 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>(); } } } } @@ -223,9 +233,13 @@ { 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>(); } } } } @@ -250,9 +264,13 @@ 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>(); } } } } @@ -408,6 +426,68 @@ } 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 System/Role/ReikiRootWin.cs
@@ -231,7 +231,16 @@ bool up = m_ReikiRootPoints.IndexOf(behaviour) == m_ReikiRootPoints.Count - 1; var worldpos = trans.TransformPoint(new Vector3(0, (up ? 1 : -1) * trans.rect.height / 2, 0)); var worldpos = Vector3.zero; if (!up) { worldpos = trans.TransformPoint(new Vector3(0, -trans.rect.height / 2, 0)); } else { var keyBoardRect = m_NumKeyboard.transform as RectTransform; worldpos = trans.TransformPoint(new Vector3(0, trans.rect.height / 2 + keyBoardRect.rect.height, 0)); } var localpos = m_Container.InverseTransformPoint(worldpos); m_NumKeyboard.transform.localPosition = localpos; }