少年修仙传客户端代码仓库
client_Wu Xijin
2019-05-23 9a808cbdb6dcb0ce36888290b13b2f2cdc210faa
Merge branch 'master' of http://192.168.0.87:10010/r/snxxz_scripts
5个文件已修改
177 ■■■■■ 已修改文件
Core/GameEngine/Model/Config/TaskFeedbackFuncConfig.cs 29 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/GameEngine/Model/Config/TaskFeedbackFuncConfig.cs.meta 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/EquipGem/EquipStrengthModel.cs 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/MainInterfacePanel/TaskFeedbackModel.cs 104 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Role/ReikiRootWin.cs 11 ●●●●● 补丁 | 查看 | 原始文档 | 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;
        }