少年修仙传客户端代码仓库
client_Wu Xijin
2019-03-11 783400efba838ce0ef3e0244734019a56fa8cce4
3335 装备洗练功能开发。
4个文件已添加
3个文件已修改
277 ■■■■■ 已修改文件
Core/GameEngine/Model/Config/WashLevelMaxConfig.cs 208 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/GameEngine/Model/Config/WashLevelMaxConfig.cs.meta 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/GameEngine/Model/TelPartialConfig/PartialWashLevelMaxConfig.cs 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/GameEngine/Model/TelPartialConfig/PartialWashLevelMaxConfig.cs.meta 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Equip/EquipFrameWin.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/EquipTrain/EquipTrainCandidateBehaviour.cs 21 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Utility/ConfigInitiator.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/GameEngine/Model/Config/WashLevelMaxConfig.cs
New file
@@ -0,0 +1,208 @@
//--------------------------------------------------------
//    [Author]:           Fish
//    [  Date ]:           Monday, March 11, 2019
//--------------------------------------------------------
using System.Collections.Generic;
using System.IO;
using System.Threading;
using System;
using UnityEngine;
[XLua.LuaCallCSharp]
public partial class WashLevelMaxConfig
{
    public readonly int id;
    public readonly int equipType;
    public readonly int equipStar;
    public readonly int levelMax;
    public WashLevelMaxConfig()
    {
    }
    public WashLevelMaxConfig(string input)
    {
        try
        {
            var tables = input.Split('\t');
            int.TryParse(tables[0],out id);
            int.TryParse(tables[1],out equipType);
            int.TryParse(tables[2],out equipStar);
            int.TryParse(tables[3],out levelMax);
        }
        catch (Exception ex)
        {
            DebugEx.Log(ex);
        }
    }
    static Dictionary<string, WashLevelMaxConfig> configs = new Dictionary<string, WashLevelMaxConfig>();
    public static WashLevelMaxConfig Get(string id)
    {
        if (!inited)
        {
            Debug.Log("WashLevelMaxConfig 还未完成初始化。");
            return null;
        }
        if (configs.ContainsKey(id))
        {
            return configs[id];
        }
        WashLevelMaxConfig config = null;
        if (rawDatas.ContainsKey(id))
        {
            config = configs[id] = new WashLevelMaxConfig(rawDatas[id]);
            rawDatas.Remove(id);
        }
        return config;
    }
    public static WashLevelMaxConfig Get(int id)
    {
        return Get(id.ToString());
    }
    public static List<string> GetKeys()
    {
        var keys = new List<string>();
        keys.AddRange(configs.Keys);
        keys.AddRange(rawDatas.Keys);
        return keys;
    }
    public static List<WashLevelMaxConfig> GetValues()
    {
        var values = new List<WashLevelMaxConfig>();
        values.AddRange(configs.Values);
        var keys = new List<string>(rawDatas.Keys);
        foreach (var key in keys)
        {
            values.Add(Get(key));
        }
        return values;
    }
    public static bool Has(string id)
    {
        return configs.ContainsKey(id) || rawDatas.ContainsKey(id);
    }
    public static bool Has(int id)
    {
        return Has(id.ToString());
    }
    public static bool inited { get; private set; }
    protected static Dictionary<string, string> rawDatas = new Dictionary<string, string>();
    public static void Init(bool sync=false)
    {
        inited = false;
        var path = string.Empty;
        if (AssetSource.refdataFromEditor)
        {
            path = ResourcesPath.CONFIG_FODLER +"/WashLevelMax.txt";
        }
        else
        {
            path = AssetVersionUtility.GetAssetFilePath("config/WashLevelMax.txt");
        }
        var tempConfig = new WashLevelMaxConfig();
        var preParse = tempConfig is IConfigPostProcess;
        if (sync)
        {
            var lines = File.ReadAllLines(path);
            if (!preParse)
            {
                rawDatas = new Dictionary<string, string>(lines.Length - 3);
            }
            for (int i = 3; i < lines.Length; i++)
            {
                try
                {
                    var line = lines[i];
                    var index = line.IndexOf("\t");
                    if (index == -1)
                    {
                        continue;
                    }
                    var id = line.Substring(0, index);
                    if (preParse)
                    {
                        var config = new WashLevelMaxConfig(line);
                        configs[id] = config;
                        (config as IConfigPostProcess).OnConfigParseCompleted();
                    }
                    else
                    {
                        rawDatas[id] = line;
                    }
                }
                catch (System.Exception ex)
                {
                    Debug.LogError(ex);
                }
            }
            inited = true;
        }
        else
        {
            ThreadPool.QueueUserWorkItem((object _object) =>
            {
                var lines = File.ReadAllLines(path);
                if (!preParse)
                {
                    rawDatas = new Dictionary<string, string>(lines.Length - 3);
                }
                for (int i = 3; i < lines.Length; i++)
                {
                    try
                    {
                       var line = lines[i];
                        var index = line.IndexOf("\t");
                        if (index == -1)
                        {
                            continue;
                        }
                        var id = line.Substring(0, index);
                        if (preParse)
                        {
                            var config = new WashLevelMaxConfig(line);
                            configs[id] = config;
                            (config as IConfigPostProcess).OnConfigParseCompleted();
                        }
                        else
                        {
                            rawDatas[id] = line;
                        }
                    }
                    catch (System.Exception ex)
                    {
                        Debug.LogError(ex);
                    }
                }
                inited = true;
            });
        }
    }
}
Core/GameEngine/Model/Config/WashLevelMaxConfig.cs.meta
New file
@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 4f5f05a190827f847b600b3c9988650a
timeCreated: 1552298504
licenseType: Pro
MonoImporter:
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData:
  assetBundleName:
  assetBundleVariant:
Core/GameEngine/Model/TelPartialConfig/PartialWashLevelMaxConfig.cs
New file
@@ -0,0 +1,21 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public partial class WashLevelMaxConfig : IConfigPostProcess
{
    static Dictionary<int, WashLevelMaxConfig> washLevelMaxConfigs = new Dictionary<int, WashLevelMaxConfig>();
    public void OnConfigParseCompleted()
    {
        var key = equipType * 100 + equipStar;
        washLevelMaxConfigs[key] = this;
    }
    public static WashLevelMaxConfig Get(int type, int star)
    {
        var key = type * 100 + star;
        return washLevelMaxConfigs.ContainsKey(key) ? washLevelMaxConfigs[key] : null;
    }
}
Core/GameEngine/Model/TelPartialConfig/PartialWashLevelMaxConfig.cs.meta
New file
@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 4d25380bc3cd23d479aa010336985565
timeCreated: 1552298532
licenseType: Pro
MonoImporter:
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData:
  assetBundleName:
  assetBundleVariant:
System/Equip/EquipFrameWin.cs
@@ -104,6 +104,8 @@
        private void OpenTrainWin()
        {
            CloseSubWindows();
            WindowCenter.Instance.Open<EquipTrainWin>();
            functionOrder = m_Train.order;
        }
        private void CloseEquipFrameWin()
System/EquipTrain/EquipTrainCandidateBehaviour.cs
@@ -6,10 +6,11 @@
using System.Collections;
using UnityEngine.UI;
namespace Snxxz.UI {
namespace Snxxz.UI
{
    public class EquipTrainCandidateBehaviour : MonoBehaviour {
    public class EquipTrainCandidateBehaviour : MonoBehaviour
    {
        [SerializeField] Image m_BackGround;
        [SerializeField] Image m_EmptyItem;
        [SerializeField] ItemCell m_ItemCell;
@@ -17,17 +18,15 @@
        [SerializeField] Text m_Description2;
        [SerializeField] Button m_Select;
        EquipStarModel model { get { return ModelCenter.Instance.GetModel<EquipStarModel>(); } }
        EquipTrainModel model { get { return ModelCenter.Instance.GetModel<EquipTrainModel>(); } }
        EquipModel equipModel { get { return ModelCenter.Instance.GetModel<EquipModel>(); } }
        PackModel packModel { get { return ModelCenter.Instance.GetModel<PackModel>(); } }
        int place;
        EquipStarUpgradeCandidate candidate;
        EquipTrainCandidate candidate;
        public void Display(int place)
        public void Display(EquipTrainCandidate candidate)
        {
            this.place = place;
            this.candidate = model.GetCandidatePlace(this.place);
            this.candidate = candidate;
            DisplayBaseInfo();
            DisplayDynamicInfo(true);
@@ -63,7 +62,8 @@
                m_ItemCell.Init(item);
                m_Description1.text = item.config.ItemName;
                m_Description1.color = UIHelper.GetUIColor(item.config.ItemColor);
                m_Description2.text = string.Empty;
                var trainLevel = model.GetTrainLevel(candidate.level, candidate.place);
                m_Description2.text = string.Format("洗练等级:{0}级", trainLevel);
            }
        }
@@ -77,7 +77,6 @@
        }
    }
    public class EquipTrainCandidateBehaviourPool
    {
Utility/ConfigInitiator.cs
@@ -283,6 +283,7 @@
        normalTasks.Add(new ConfigInitTask("EquipControlConfig", () => { EquipControlConfig.Init(); }, () => { return EquipControlConfig.inited; }));
        normalTasks.Add(new ConfigInitTask("EquipSuitConfig", () => { EquipSuitConfig.Init(); }, () => { return EquipSuitConfig.inited; }));
        normalTasks.Add(new ConfigInitTask("EquipStarConfig", () => { EquipStarConfig.Init(); }, () => { return EquipStarConfig.inited; }));
        normalTasks.Add(new ConfigInitTask("WashLevelMaxConfig", () => { WashLevelMaxConfig.Init(); }, () => { return WashLevelMaxConfig.inited; }));
    }
    static List<ConfigInitTask> doingTasks = new List<ConfigInitTask>();