少年修仙传客户端代码仓库
client_linchunjie
2019-03-14 c9add585a6990f1beecb94a946eaa3f5d27dcbd1
Merge branch 'master' of http://192.168.0.87:10010/r/snxxz_scripts
2 文件已重命名
20个文件已修改
4 文件已复制
12个文件已添加
1092 ■■■■■ 已修改文件
Core/GameEngine/Model/Config/LegendPropertyConfig.cs 202 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/GameEngine/Model/Config/LegendPropertyConfig.cs.meta 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/GameEngine/Model/Config/LegendPropertyValueConfig.cs 222 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/GameEngine/Model/Config/LegendPropertyValueConfig.cs.meta 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/GameEngine/Model/TelPartialConfig/PartialLegendPropertyValueConfig.cs 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/GameEngine/Model/TelPartialConfig/PartialLegendPropertyValueConfig.cs.meta 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/GameEngine/Model/TelPartialConfig/tagItemPlusConfig.cs 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/GameEngine/Model/TelPartialConfig/tagItemPlusMaxConfig.cs 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/NetworkPackage/ClientPack/ClientToMapServer/CA3_Item/CA316_tagCMEquipPlusEvolve.cs 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/NetworkPackage/ClientPack/ClientToMapServer/CA3_Item/CA316_tagCMEquipPlusEvolve.cs.meta 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/NetworkPackage/DTCFile/ServerPack/HAD_SaleActivity.meta 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/NetworkPackage/DTCFile/ServerPack/HAE_Truck.meta 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/NetworkPackage/DTCFile/ServerPack/HAF_Merge.meta 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/NetworkPackage/DTCFile/ServerPack/HB0_Event.meta 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/NetworkPackage/ServerPack/HAD_SaleActivity.meta 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/NetworkPackage/ServerPack/HAE_Truck.meta 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/NetworkPackage/ServerPack/HAF_Merge.meta 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/NetworkPackage/ServerPack/HB0_Event.meta 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Lua/Gen/SnxxzUIItemLogicUtilityWrap.cs 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Lua/Gen/SnxxzUIItemTipsModelWrap.cs 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Equip/EquipModel.cs 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/EquipGem/EquipEvolution.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/EquipGem/EquipEvolutionWin.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/EquipGem/EquipStrengthModel.cs 51 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/ItemTip/EquipTipUtility.cs 26 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/ItemTip/EquipTipUtility.cs.meta 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/ItemTip/EquipTipWin.cs 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/ItemTip/TipBaseInfoWidget.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/ItemTip/TipBasePropertyWidget.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/ItemTip/TipGemInfoWidget.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/ItemTip/TipLegendPropertyWidget.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/ItemTip/TipStrengthenPropertyWidget.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/ItemTip/TipSuitPropertyWidget.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/ItemTip/TipTrainPropertyWidget.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/KnapSack/Logic/ItemLogicUtility.cs 47 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/KnapSack/Logic/ItemTipsModel.cs 184 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/KnapSack/Logic/LegendPropertyUtility.cs 162 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Utility/ConfigInitiator.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/GameEngine/Model/Config/LegendPropertyConfig.cs
New file
@@ -0,0 +1,202 @@
//--------------------------------------------------------
//    [Author]:           Fish
//    [  Date ]:           Thursday, March 14, 2019
//--------------------------------------------------------
using System.Collections.Generic;
using System.IO;
using System.Threading;
using System;
using UnityEngine;
[XLua.LuaCallCSharp]
public partial class LegendPropertyConfig
{
    public readonly int id;
    public readonly int quality;
    public LegendPropertyConfig()
    {
    }
    public LegendPropertyConfig(string input)
    {
        try
        {
            var tables = input.Split('\t');
            int.TryParse(tables[0],out id);
            int.TryParse(tables[1],out quality);
        }
        catch (Exception ex)
        {
            DebugEx.Log(ex);
        }
    }
    static Dictionary<string, LegendPropertyConfig> configs = new Dictionary<string, LegendPropertyConfig>();
    public static LegendPropertyConfig Get(string id)
    {
        if (!inited)
        {
            Debug.Log("LegendPropertyConfig 还未完成初始化。");
            return null;
        }
        if (configs.ContainsKey(id))
        {
            return configs[id];
        }
        LegendPropertyConfig config = null;
        if (rawDatas.ContainsKey(id))
        {
            config = configs[id] = new LegendPropertyConfig(rawDatas[id]);
            rawDatas.Remove(id);
        }
        return config;
    }
    public static LegendPropertyConfig 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<LegendPropertyConfig> GetValues()
    {
        var values = new List<LegendPropertyConfig>();
        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 +"/LegendProperty.txt";
        }
        else
        {
            path = AssetVersionUtility.GetAssetFilePath("config/LegendProperty.txt");
        }
        var tempConfig = new LegendPropertyConfig();
        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 LegendPropertyConfig(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 LegendPropertyConfig(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/LegendPropertyConfig.cs.meta
copy from System/ItemTip/ItemTipUtility.cs.meta copy to Core/GameEngine/Model/Config/LegendPropertyConfig.cs.meta
File was copied from System/ItemTip/ItemTipUtility.cs.meta
@@ -1,6 +1,6 @@
fileFormatVersion: 2
guid: 1e29f156c73e78044934e85f0d55156d
timeCreated: 1552377672
guid: 9cbabe11900eafe4699824def6a3ac6e
timeCreated: 1552536986
licenseType: Pro
MonoImporter:
  serializedVersion: 2
Core/GameEngine/Model/Config/LegendPropertyValueConfig.cs
New file
@@ -0,0 +1,222 @@
//--------------------------------------------------------
//    [Author]:           Fish
//    [  Date ]:           Thursday, March 14, 2019
//--------------------------------------------------------
using System.Collections.Generic;
using System.IO;
using System.Threading;
using System;
using UnityEngine;
[XLua.LuaCallCSharp]
public partial class LegendPropertyValueConfig
{
    public readonly int id;
    public readonly int ItemType;
    public readonly int ItemClassLV;
    public readonly int ItemColor;
    public readonly int IsSuit;
    public readonly Int2[] previewValue;
    public readonly int propertyCount;
    public LegendPropertyValueConfig()
    {
    }
    public LegendPropertyValueConfig(string input)
    {
        try
        {
            var tables = input.Split('\t');
            int.TryParse(tables[0],out id);
            int.TryParse(tables[1],out ItemType);
            int.TryParse(tables[2],out ItemClassLV);
            int.TryParse(tables[3],out ItemColor);
            int.TryParse(tables[4],out IsSuit);
            string[] previewValueStringArray = tables[5].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
            previewValue = new Int2[previewValueStringArray.Length];
            for (int i=0;i<previewValueStringArray.Length;i++)
            {
                 Int2.TryParse(previewValueStringArray[i],out previewValue[i]);
            }
            int.TryParse(tables[6],out propertyCount);
        }
        catch (Exception ex)
        {
            DebugEx.Log(ex);
        }
    }
    static Dictionary<string, LegendPropertyValueConfig> configs = new Dictionary<string, LegendPropertyValueConfig>();
    public static LegendPropertyValueConfig Get(string id)
    {
        if (!inited)
        {
            Debug.Log("LegendPropertyValueConfig 还未完成初始化。");
            return null;
        }
        if (configs.ContainsKey(id))
        {
            return configs[id];
        }
        LegendPropertyValueConfig config = null;
        if (rawDatas.ContainsKey(id))
        {
            config = configs[id] = new LegendPropertyValueConfig(rawDatas[id]);
            rawDatas.Remove(id);
        }
        return config;
    }
    public static LegendPropertyValueConfig 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<LegendPropertyValueConfig> GetValues()
    {
        var values = new List<LegendPropertyValueConfig>();
        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 +"/LegendPropertyValue.txt";
        }
        else
        {
            path = AssetVersionUtility.GetAssetFilePath("config/LegendPropertyValue.txt");
        }
        var tempConfig = new LegendPropertyValueConfig();
        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 LegendPropertyValueConfig(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 LegendPropertyValueConfig(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/LegendPropertyValueConfig.cs.meta
copy from System/ItemTip/ItemTipUtility.cs.meta copy to Core/GameEngine/Model/Config/LegendPropertyValueConfig.cs.meta
File was copied from System/ItemTip/ItemTipUtility.cs.meta
@@ -1,6 +1,6 @@
fileFormatVersion: 2
guid: 1e29f156c73e78044934e85f0d55156d
timeCreated: 1552377672
guid: 9b41155b3cd3cfe45aae5364966bac57
timeCreated: 1552536728
licenseType: Pro
MonoImporter:
  serializedVersion: 2
Core/GameEngine/Model/TelPartialConfig/PartialLegendPropertyValueConfig.cs
New file
@@ -0,0 +1,22 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public partial class LegendPropertyValueConfig : IConfigPostProcess
{
    static Dictionary<int, LegendPropertyValueConfig> previewConfigs = new Dictionary<int, LegendPropertyValueConfig>();
    public void OnConfigParseCompleted()
    {
        var key = ItemType * 1000000 + ItemClassLV * 10000 + ItemColor * 100 + IsSuit;
        previewConfigs[key] = this;
    }
    public static LegendPropertyValueConfig Get(int itemType, int level, int quality, bool suit)
    {
        var key = itemType * 1000000 + level * 10000 + quality * 100 + (suit ? 1 : 0);
        return previewConfigs.ContainsKey(key) ? previewConfigs[key] : null;
    }
}
Core/GameEngine/Model/TelPartialConfig/PartialLegendPropertyValueConfig.cs.meta
copy from System/ItemTip/ItemTipUtility.cs.meta copy to Core/GameEngine/Model/TelPartialConfig/PartialLegendPropertyValueConfig.cs.meta
File was copied from System/ItemTip/ItemTipUtility.cs.meta
@@ -1,6 +1,6 @@
fileFormatVersion: 2
guid: 1e29f156c73e78044934e85f0d55156d
timeCreated: 1552377672
guid: 2b69fff22e7d168449e4323f9388a42c
timeCreated: 1552533259
licenseType: Pro
MonoImporter:
  serializedVersion: 2
Core/GameEngine/Model/TelPartialConfig/tagItemPlusConfig.cs
@@ -4,16 +4,18 @@
public partial class ItemPlusConfig : IConfigPostProcess
{
    private static Dictionary<string, ItemPlusConfig> ItemPlus = new Dictionary<string, ItemPlusConfig>();
    private static Dictionary<int, ItemPlusConfig> ItemPlus = new Dictionary<int, ItemPlusConfig>();
    public void OnConfigParseCompleted()
    {
        ItemPlus.Add(StringUtility.Contact(type, level).ToString(), this);
        var key = type * 100 + level;
        ItemPlus[key] = this;
    }
    public static ItemPlusConfig GetTypeAndLevel(int type, int level)
    {
        var key = type * 100 + level;
        ItemPlusConfig itemPlus = null;
        ItemPlus.TryGetValue(StringUtility.Contact(type, level).ToString(), out itemPlus);
        ItemPlus.TryGetValue(key, out itemPlus);
        return itemPlus;
    }
}
Core/GameEngine/Model/TelPartialConfig/tagItemPlusMaxConfig.cs
@@ -4,19 +4,21 @@
public partial class ItemPlusMaxConfig : IConfigPostProcess
{
    private static Dictionary<string, ItemPlusMaxConfig> t_ItemPM = new Dictionary<string, ItemPlusMaxConfig>();
    private static Dictionary<int, ItemPlusMaxConfig> t_ItemPM = new Dictionary<int, ItemPlusMaxConfig>();
    private static Dictionary<int, int> m_ItemPlusMaxLvDict = new Dictionary<int, int>();
    public void OnConfigParseCompleted()
    {
        t_ItemPM.Add(StringUtility.Contact(EquipType, equipStar).ToString(), this);
        var key = EquipType * 100 + equipStar;
        t_ItemPM[key] = this;
    }
    public static ItemPlusMaxConfig GetEquipTypeAndEquipStar(int equipType, int equipStar)//获取强化类型,装备星数
    {
        var key = equipType * 100 + equipStar;
        ItemPlusMaxConfig itemPMax = null;
        t_ItemPM.TryGetValue(StringUtility.Contact(equipType, equipStar).ToString(), out itemPMax);
        t_ItemPM.TryGetValue(key, out itemPMax);
        return itemPMax;
    }
Core/NetworkPackage/ClientPack/ClientToMapServer/CA3_Item/CA316_tagCMEquipPlusEvolve.cs
New file
@@ -0,0 +1,18 @@
using UnityEngine;
using System.Collections;
// A3 16 装备强化进化 #tagCMEquipPlusEvolve
public class CA316_tagCMEquipPlusEvolve : GameNetPackBasic {
    public ushort ItemIndex;    //装备在背包中索引
    public CA316_tagCMEquipPlusEvolve () {
        combineCmd = (ushort)0x03FE;
        _cmd = (ushort)0xA316;
    }
    public override void WriteToBytes () {
        WriteBytes (ItemIndex, NetDataType.WORD);
    }
}
Core/NetworkPackage/ClientPack/ClientToMapServer/CA3_Item/CA316_tagCMEquipPlusEvolve.cs.meta
copy from System/ItemTip/ItemTipUtility.cs.meta copy to Core/NetworkPackage/ClientPack/ClientToMapServer/CA3_Item/CA316_tagCMEquipPlusEvolve.cs.meta
File was copied from System/ItemTip/ItemTipUtility.cs.meta
@@ -1,6 +1,6 @@
fileFormatVersion: 2
guid: 1e29f156c73e78044934e85f0d55156d
timeCreated: 1552377672
guid: f9ffe59f03c369a43bced6b271dac0ac
timeCreated: 1552534826
licenseType: Pro
MonoImporter:
  serializedVersion: 2
Core/NetworkPackage/DTCFile/ServerPack/HAD_SaleActivity.meta
New file
@@ -0,0 +1,9 @@
fileFormatVersion: 2
guid: 3e05761d690b75440a6be79207d0fb01
folderAsset: yes
timeCreated: 1547643019
licenseType: Pro
DefaultImporter:
  userData:
  assetBundleName:
  assetBundleVariant:
Core/NetworkPackage/DTCFile/ServerPack/HAE_Truck.meta
New file
@@ -0,0 +1,9 @@
fileFormatVersion: 2
guid: 1d70ccd06161e0443b7a802ad94292f8
folderAsset: yes
timeCreated: 1547643019
licenseType: Pro
DefaultImporter:
  userData:
  assetBundleName:
  assetBundleVariant:
Core/NetworkPackage/DTCFile/ServerPack/HAF_Merge.meta
New file
@@ -0,0 +1,9 @@
fileFormatVersion: 2
guid: 71e878ac60c49ad4f964dd2dbc725739
folderAsset: yes
timeCreated: 1547643019
licenseType: Pro
DefaultImporter:
  userData:
  assetBundleName:
  assetBundleVariant:
Core/NetworkPackage/DTCFile/ServerPack/HB0_Event.meta
New file
@@ -0,0 +1,9 @@
fileFormatVersion: 2
guid: eed34091b0568664b9fb42f0634496c1
folderAsset: yes
timeCreated: 1547643019
licenseType: Pro
DefaultImporter:
  userData:
  assetBundleName:
  assetBundleVariant:
Core/NetworkPackage/ServerPack/HAD_SaleActivity.meta
New file
@@ -0,0 +1,9 @@
fileFormatVersion: 2
guid: 32ceb8b7faf99f84a8b73ce53c5e3e4d
folderAsset: yes
timeCreated: 1547643019
licenseType: Pro
DefaultImporter:
  userData:
  assetBundleName:
  assetBundleVariant:
Core/NetworkPackage/ServerPack/HAE_Truck.meta
New file
@@ -0,0 +1,9 @@
fileFormatVersion: 2
guid: 77f69c2b862d1704299a32d0d8eeb71e
folderAsset: yes
timeCreated: 1547643019
licenseType: Pro
DefaultImporter:
  userData:
  assetBundleName:
  assetBundleVariant:
Core/NetworkPackage/ServerPack/HAF_Merge.meta
New file
@@ -0,0 +1,9 @@
fileFormatVersion: 2
guid: fa14960fa44b0d1439bab471a764e34f
folderAsset: yes
timeCreated: 1547643019
licenseType: Pro
DefaultImporter:
  userData:
  assetBundleName:
  assetBundleVariant:
Core/NetworkPackage/ServerPack/HB0_Event.meta
New file
@@ -0,0 +1,9 @@
fileFormatVersion: 2
guid: d914565b65f8e8145988734c4d915834
folderAsset: yes
timeCreated: 1547643019
licenseType: Pro
DefaultImporter:
  userData:
  assetBundleName:
  assetBundleVariant:
Lua/Gen/SnxxzUIItemLogicUtilityWrap.cs
@@ -209,11 +209,6 @@
                {
                    int _itemId = LuaAPI.xlua_tointeger(L, 2);
                    
                        System.Collections.Generic.Dictionary<int, int> gen_ret = gen_to_be_invoked.GetWingsLegendProperties( _itemId );
                        translator.Push(L, gen_ret);
                    return 1;
                }
                
Lua/Gen/SnxxzUIItemTipsModelWrap.cs
@@ -1333,11 +1333,6 @@
                {
                    ItemConfig _config = (ItemConfig)translator.GetObject(L, 2, typeof(ItemConfig));
                    
                        System.Collections.Generic.Dictionary<int, int> gen_ret = gen_to_be_invoked.SetItemEffectDict( _config );
                        translator.Push(L, gen_ret);
                    return 1;
                }
                
System/Equip/EquipModel.cs
@@ -612,19 +612,18 @@
                case RoleEquipType.FairyCan2:
                case RoleEquipType.Glove:
                case RoleEquipType.Jade:
                    EquipSet.ClientPlaceToServerPlace(config.LV, config.EquipPlace);
                    serverEquipPlace = EquipSet.ClientPlaceToServerPlace(config.LV, config.EquipPlace);
                    break;
                case RoleEquipType.Wing:
                case RoleEquipType.Guard1:
                case RoleEquipType.Guard2:
                case RoleEquipType.PeerlessWeapon1:
                case RoleEquipType.PeerlessWeapon2:
                    EquipSet.ClientPlaceToServerPlace(0, config.EquipPlace);
                    serverEquipPlace = EquipSet.ClientPlaceToServerPlace(0, config.EquipPlace);
                    break;
            }
            return serverEquipPlace;
        }
    }
System/EquipGem/EquipEvolution.cs
@@ -23,7 +23,7 @@
        }
        private void OnClickEvolutionBtn()
        {
            WindowCenter.Instance.Open<EquipEvolutionWin>();
        }
    }
System/EquipGem/EquipEvolutionWin.cs
@@ -31,6 +31,7 @@
        protected override void AddListeners()
        {
            m_CloseButton.AddListener(()=> { CloseImmediately(); });
        }
        protected override void OnPreOpen()
System/EquipGem/EquipStrengthModel.cs
@@ -47,6 +47,7 @@
    public Dictionary<int, EquipStrengthClass> EquipStrengthDic = new Dictionary<int, EquipStrengthClass>();//强化数据
    public Dictionary<int, EquipMaxLvClass> EquipLevelMaxDic = new Dictionary<int, EquipMaxLvClass>();//强化类型的最大等级上限
    public Dictionary<int, int> PartTypeDic = new Dictionary<int, int>();//强化的部位类型
    public Dictionary<int, int> EvolutionTypeMaxDic = new Dictionary<int, int>();
    public event Action EquipStrengthUpdate;//强化数据刷新
    public event Action SelectEquipRefresh;//二级页签刷新
    public event Action SelectLevelRefresh;//一级页签刷新
@@ -94,6 +95,7 @@
        var strengthenLevelLimit = FuncConfigConfig.Get("StrengthenLevelLimit").Numerical1;
        PartTypeDic = ConfigParse.GetDic<int, int>(strengthenLevelLimit);
        GetEquipLevelMax();
        GetEvolutionTypeMax();
    }
    public void OnBeforePlayerDataInitialize()
@@ -142,9 +144,15 @@
        CA301_tagEquipPlus CA301 = new CA301_tagEquipPlus();
        CA301.PackType = (byte)packTyp;
        CA301.ItemIndex = (ushort)equipIndex;
        GameNetSystem.Instance.SendInfo(CA301);//向服务器发送装备位
        GameNetSystem.Instance.SendInfo(CA301);
    }
    public void SendEquipPlusEvolve(int equipIndex)
    {
        CA316_tagCMEquipPlusEvolve CA316 = new CA316_tagCMEquipPlusEvolve();
        CA316.ItemIndex =(ushort)equipIndex;
        GameNetSystem.Instance.SendInfo(CA316);
    }
    private void GetEquipLevelMax()
    {
        var itemPlusMax = ItemPlusMaxConfig.GetValues();
@@ -235,7 +243,7 @@
        return itemPlusConfig;
    }
    public EquipPlusEvolveClass GetEquipPlusEvolve(int equipType, int equipLv=0)//获取装备进化数据
    public EquipPlusEvolveClass GetEquipPlusEvolve(int equipType, int equipLv = 0)//获取装备进化数据
    {
        EquipPlusEvolveClass equipPlusEvolve = new EquipPlusEvolveClass();
        var equipPlusEvolveConfig = EquipPlusEvolveConfig.GetEquipPlaceAndEvolveLV(equipType, equipLv);
@@ -258,25 +266,56 @@
                if (config != null)
                {
                    equipPlusEvolve.AttrName = config.Name;
                    float value= Dic2[key];
                    float value = Dic2[key];
                    switch (config.ISPercentage)
                    {
                        case 0:
                            if (equipLv == 0)
                            {
                                equipPlusEvolve.AttrValue = 0.ToString();
                            }
                            equipPlusEvolve.AttrValue = value.ToString();
                            break;
                        case 1:
                            equipPlusEvolve.AttrValue = (value/100).ToString()+"%";
                            if (equipLv == 0)
                            {
                                equipPlusEvolve.AttrValue = 0.ToString() + "%";
                            }
                            equipPlusEvolve.AttrValue = (value / 100).ToString() + "%";
                            break;
                        case 2:
                            equipPlusEvolve.AttrValue = value.ToString()+"%";
                            if (equipLv == 0)
                            {
                                equipPlusEvolve.AttrValue = 0.ToString() + "%";
                            }
                            equipPlusEvolve.AttrValue = value.ToString() + "%";
                            break;
                    }
                }
            }
        }
        return equipPlusEvolve;
    }
    private void GetEvolutionTypeMax()
    {
        var evolveValues = EquipPlusEvolveConfig.GetValues();
        foreach (var value in evolveValues)
        {
            if (EvolutionTypeMaxDic.ContainsKey(value.EquipPlace))
            {
                var lv = EvolutionTypeMaxDic[value.EquipPlace];
                if (value.EvolveLV > lv)
                {
                    EvolutionTypeMaxDic[value.EquipPlace] = value.EvolveLV;
                }
            }
            else
            {
                EvolutionTypeMaxDic.Add(value.EquipPlace, value.EvolveLV);
            }
        }
    }
}
System/ItemTip/EquipTipUtility.cs
File was renamed from System/ItemTip/ItemTipUtility.cs
@@ -10,7 +10,7 @@
namespace Snxxz.UI
{
    public enum ItemTipType
    public enum EquipTipType
    {
        Item = 0,
        Equip = 1,
@@ -18,7 +18,7 @@
        Good = 3,
    }
    public class ItemTipUtility
    public class EquipTipUtility
    {
        public struct TipData
@@ -92,11 +92,11 @@
        static EquipGemModel gemModel { get { return ModelCenter.Instance.GetModel<EquipGemModel>(); } }
        static EquipTrainModel trainModel { get { return ModelCenter.Instance.GetModel<EquipTrainModel>(); } }
        public static ItemTipType tipType { get; private set; }
        public static EquipTipType tipType { get; private set; }
        public static TipData mainTipData { get; private set; }
        public static TipData secondaryData { get; private set; }
        public static void Show(ItemTipType type, int itemId)
        public static void Show(EquipTipType type, int itemId)
        {
            tipType = type;
            secondaryData = default(TipData);
@@ -114,19 +114,19 @@
            switch (type)
            {
                case ItemTipType.Item:
                case EquipTipType.Item:
                    WindowCenter.Instance.Open<ItemTipWin>();
                    break;
                case ItemTipType.Equip:
                case EquipTipType.Equip:
                    WindowCenter.Instance.Open<EquipTipWin>();
                    break;
                case ItemTipType.Good:
                case EquipTipType.Good:
                    WindowCenter.Instance.Open<GoodTipWin>();
                    break;
            }
        }
        public static void Show(ItemTipType type, string guid)
        public static void Show(EquipTipType type, string guid)
        {
            var item = packModel.GetItemByGuid(guid);
            if (item == null)
@@ -149,13 +149,13 @@
                trainProperty = GetTrainProperty(guid)
            };
            if (tipType == ItemTipType.EquipCompare)
            if (tipType == EquipTipType.EquipCompare)
            {
                var equipedGuid = equipModel.GetEquip(item.config.LV, item.config.EquipPlace);
                var equipedItem = packModel.GetItemByGuid(equipedGuid);
                if (equipedItem == null)
                {
                    tipType = ItemTipType.Equip;
                    tipType = EquipTipType.Equip;
                    secondaryData = default(TipData);
                }
                else
@@ -182,13 +182,13 @@
            switch (type)
            {
                case ItemTipType.Item:
                case EquipTipType.Item:
                    WindowCenter.Instance.Open<ItemTipWin>();
                    break;
                case ItemTipType.Equip:
                case EquipTipType.Equip:
                    WindowCenter.Instance.Open<EquipTipWin>();
                    break;
                case ItemTipType.Good:
                case EquipTipType.Good:
                    WindowCenter.Instance.Open<GoodTipWin>();
                    break;
            }
System/ItemTip/EquipTipUtility.cs.meta
File was renamed from System/ItemTip/ItemTipUtility.cs.meta
@@ -1,6 +1,6 @@
fileFormatVersion: 2
guid: 1e29f156c73e78044934e85f0d55156d
timeCreated: 1552377672
guid: cf7cae7c5308be24380d2ca3154bd8db
timeCreated: 1552532488
licenseType: Pro
MonoImporter:
  serializedVersion: 2
System/ItemTip/EquipTipWin.cs
@@ -55,21 +55,21 @@
        private void DisplayTipInfo()
        {
            if (ItemTipUtility.tipType == ItemTipType.EquipCompare)
            if (EquipTipUtility.tipType == EquipTipType.EquipCompare)
            {
                m_MainWidgetGroup.SetActive(true);
                m_MainWidgetGroup.SetPosition(m_RightPoint.position);
                m_MainWidgetGroup.Display(ItemTipUtility.mainTipData);
                m_MainWidgetGroup.Display(EquipTipUtility.mainTipData);
                m_SecondaryWidgetGroup.SetActive(true);
                m_SecondaryWidgetGroup.SetPosition(m_LeftPoint.position);
                m_SecondaryWidgetGroup.Display(ItemTipUtility.secondaryData);
                m_SecondaryWidgetGroup.Display(EquipTipUtility.secondaryData);
            }
            else
            {
                m_MainWidgetGroup.SetActive(true);
                m_MainWidgetGroup.SetPosition(m_MiddlePoint.position);
                m_MainWidgetGroup.Display(ItemTipUtility.mainTipData);
                m_MainWidgetGroup.Display(EquipTipUtility.mainTipData);
                m_SecondaryWidgetGroup.SetActive(false);
            }
@@ -77,7 +77,7 @@
        private void InitOperateButton()
        {
            if (string.IsNullOrEmpty(ItemTipUtility.mainTipData.guid))
            if (string.IsNullOrEmpty(EquipTipUtility.mainTipData.guid))
            {
                foreach (var button in m_OpreateButtons)
                {
@@ -87,7 +87,7 @@
            else
            {
                var actions = new Dictionary<ItemOperateType, UnityAction>();
                if (ItemTipUtility.mainTipData.baseInfo.isAuction)
                if (EquipTipUtility.mainTipData.baseInfo.isAuction)
                {
                    actions[ItemOperateType.putAway] = () => { };
                }
@@ -137,7 +137,7 @@
                this.container.position = position;
            }
            public void Display(ItemTipUtility.TipData data)
            public void Display(EquipTipUtility.TipData data)
            {
                baseInfoWidget.gameObject.SetActive(true);
                baseInfoWidget.Display(data.baseInfo);
System/ItemTip/TipBaseInfoWidget.cs
@@ -20,7 +20,7 @@
        [SerializeField] RectTransform m_SurplusTimeContainer;
        [SerializeField] Text m_SurplusTime;
        public void Display(ItemTipUtility.BaseInfo baseInfo)
        public void Display(EquipTipUtility.BaseInfo baseInfo)
        {
            if (baseInfo.isEquiped)
            {
System/ItemTip/TipBasePropertyWidget.cs
@@ -14,7 +14,7 @@
    {
        [SerializeField] Text m_PropertyBehaviour;
        public void Display(ItemTipUtility.BaseProperty data)
        public void Display(EquipTipUtility.BaseProperty data)
        {
            var count = Mathf.Min(data.baseProperties.Count, data.starProperties.Count);
            var lines = new string[count];
System/ItemTip/TipGemInfoWidget.cs
@@ -14,7 +14,7 @@
    {
        [SerializeField] GemBehaviour[] m_GemBehaviours;
        public void Display(ItemTipUtility.GemInfo gemInfo)
        public void Display(EquipTipUtility.GemInfo gemInfo)
        {
            for (int i = 0; i < m_GemBehaviours.Length; i++)
            {
System/ItemTip/TipLegendPropertyWidget.cs
@@ -13,7 +13,7 @@
    {
        [SerializeField] Text m_PropertyBehaviours;
        public void Display(ItemTipUtility.LegendProperty data)
        public void Display(EquipTipUtility.LegendProperty data)
        {
            var count = data.properties.Count;
            var lines = new string[count];
System/ItemTip/TipStrengthenPropertyWidget.cs
@@ -13,7 +13,7 @@
    {
        [SerializeField] Text m_PropertyBehaviour;
        public void Display(ItemTipUtility.StrengthenProperty data)
        public void Display(EquipTipUtility.StrengthenProperty data)
        {
            var count = data.properties.Count;
            var lines = new string[count];
System/ItemTip/TipSuitPropertyWidget.cs
@@ -21,8 +21,8 @@
        [SerializeField] Text m_EightSuitTitle;
        [SerializeField] Text m_EightSuitDescription;
        ItemTipUtility.SuitInfo suitInfo;
        public void Display(ItemTipUtility.SuitInfo suitInfo)
        EquipTipUtility.SuitInfo suitInfo;
        public void Display(EquipTipUtility.SuitInfo suitInfo)
        {
            this.suitInfo = suitInfo;
System/ItemTip/TipTrainPropertyWidget.cs
@@ -13,7 +13,7 @@
    {
        [SerializeField] Text m_PropertyBehaviour;
        public void Display(ItemTipUtility.TrainProperty data)
        public void Display(EquipTipUtility.TrainProperty data)
        {
            var count = data.properties.Count;
            var lines = new string[count];
System/KnapSack/Logic/ItemLogicUtility.cs
@@ -251,46 +251,21 @@
        private Dictionary<int, int> GetEquipLegendProperties(int itemId)
        {
            var config = ItemConfig.Get(itemId);
            var legendIdlist = new List<int>();
            if (LegendPropertyUtility.HasEquipPlace(config.EquipPlace))
            {
                for (var i = 0; i < 3; i++)
                {
                    var type = (LegendAttrType)i;
                    var count = LegendPropertyUtility.GetEquipPropertyCount(config.ItemColor, config.StarLevel, type);
                    if (count > 0)
                    {
                        var propertyIds = LegendPropertyUtility.GetEquipPlaceProperties(config.EquipPlace, type);
                        legendIdlist.AddRange(propertyIds.GetRange(0, count));
                    }
                }
            }
            var legendProperties = LegendPropertyUtility.GetEquipProperties(itemId);
            var properties = new Dictionary<int, int>();
            for (int i = 0; i < legendIdlist.Count; i++)
            {
                var propertyId = legendIdlist[i];
                var qualityPropertyValue = LegendPropertyUtility.GetEquipQualityPropertyValue(propertyId, config.ItemColor);
                if (qualityPropertyValue != 0)
                {
                    properties[propertyId] = qualityPropertyValue;
                }
                else
                {
                    var levelPropertyValue = LegendPropertyUtility.GetEquipLevelPropertyValue(propertyId, config.LV);
                    if (levelPropertyValue != 0)
                    {
                        properties[propertyId] = levelPropertyValue;
                    }
                }
            if (legendProperties != null)
            {
                foreach (var item in legendProperties)
                {
                    properties[item.x] = item.y;
                }
            }
            return properties;
        }
        public Dictionary<int, int> GetWingsLegendProperties(int itemId)
        private Dictionary<int, int> GetWingsLegendProperties(int itemId)
        {
            var config = ItemConfig.Get(itemId);
            var properties = new Dictionary<int, int>();
@@ -953,8 +928,8 @@
        private int playerLv;
        private Dictionary<int, List<ItemModel>> _lifePotionDict = new Dictionary<int, List<ItemModel>>(); //key 药水等级
        private List<int> _sellItemScorelist = new List<int>();
        private Dictionary<int, Dictionary<int, List<ItemModel>>> _sameIndexEquipDict = new Dictionary<int, Dictionary<int, List<ItemModel>>>();  //存储相同装备位的装备
                                                                                                                                                  // private  _sameEquipScoreDict = new Dictionary<int, List<ItemModel>>(); //存储相同ID中相同装备评分的装备
        private Dictionary<int, Dictionary<int, List<ItemModel>>> _sameIndexEquipDict = new Dictionary<int, Dictionary<int, List<ItemModel>>>();  //存储相同装备位的装备
                                                                                                                                                  // private  _sameEquipScoreDict = new Dictionary<int, List<ItemModel>>(); //存储相同ID中相同装备评分的装备
        private Dictionary<int, ItemModel> _packModelDict;
        private List<ItemModel> _sellItemlist = new List<ItemModel>();
System/KnapSack/Logic/ItemTipsModel.cs
@@ -536,7 +536,7 @@
        public void SetCurrentAttrData(ItemModel itemModel, bool isCompare)
        {
            curAttrData = new ItemAttrData(itemModel.itemId, false, (ulong)itemModel.count
                  , itemModel.gridIndex,  isCompare
                  , itemModel.gridIndex, isCompare
                  , itemModel.packType, itemModel.guid, ConfigParse.Analysis(itemModel.itemInfo.userData), ItemTipChildType.Normal);
        }
@@ -566,7 +566,7 @@
            if (itemModel == null) return;
            compareAttrData = new ItemAttrData(itemModel.itemId, false, (ulong)itemModel.count
              , itemModel.gridIndex,  true
              , itemModel.gridIndex, true
              , type, itemModel.guid, ConfigParse.Analysis(itemModel.itemInfo.userData));
        }
@@ -793,7 +793,7 @@
                    attrData.SetTipsFuncBtn(ItemOperateType.inlay, (ItemWinBtnType, ItemAttrData) => { ItemOperateUtility.Instance.GotoInlayItem(attrData.guid); });
                }
                if (attrData.itemConfig.CanTrade == 1 )
                if (attrData.itemConfig.CanTrade == 1)
                {
                    attrData.SetTipsFuncBtn(ItemOperateType.putAway, (ItemWinBtnType, ItemAttrData) => { ItemOperateUtility.Instance.PutAwayItem(attrData.guid); });
                }
@@ -1072,7 +1072,7 @@
            if (attrData == null)
                return "";
            Dictionary<int, int> itemEffectDict = SetItemEffectDict(attrData.itemConfig);
            Dictionary<int, int> itemEffectDict = GetItemEffectDict(attrData.itemConfig);
            attrSB.Length = 0;
            string atkStr = "";
            string otherStr = "";
@@ -1153,7 +1153,7 @@
            int curHp = 0;
            int curHurt = 0;
            Dictionary<int, int> itemEffectDict = SetItemEffectDict(attrData.itemConfig);
            Dictionary<int, int> itemEffectDict = GetItemEffectDict(attrData.itemConfig);
            Dictionary<int, int> wingAttrModelDict = ConfigParse.GetDic<int, int>(wingRefine.attrupper);
            foreach (var key in itemEffectDict.Keys)
@@ -1286,17 +1286,8 @@
            }
            else
            {
                var quality = attrData.itemConfig.ItemColor;
                var starLevel = attrData.itemConfig.StarLevel;
                var count = LegendPropertyUtility.GetEquipPropertyCount(quality, starLevel);
                if (starLevel > 2)
                {
                    s = Language.Get("LegendAttPreview_MustTitle", count);
                }
                else
                {
                    s = Language.Get("LegendAttPreview_MightTitle", count);
                }
                var count = LegendPropertyUtility.GetEquipPropertyCount(attrData.itemId);
                s = Language.Get("LegendAttPreview_MightTitle", count);
            }
            return s;
@@ -1408,7 +1399,6 @@
                case 9:
                case 10:
                case 12:
                    idlist.Sort(CompareLegendAttrType);
                    break;
                case 121:
                case 122:
@@ -1563,19 +1553,6 @@
                    case 11:
                        s = string.Format("<color=#{0}>{1}</color>", LegendPropertyUtility.GetWingPropertyColor(attrId, attrDict[attrId]), s);
                        break;
                    case 1:
                    case 2:
                    case 3:
                    case 4:
                    case 5:
                    case 6:
                    case 7:
                    case 8:
                    case 9:
                    case 10:
                    case 12:
                        s = GetTextColorByLegendType(GetLegendType(attrId), s);
                        break;
                    case 101:
                    case 102:
                    case 103:
@@ -1627,15 +1604,6 @@
            }
        }
        private int CompareLegendAttrType(int start, int end)
        {
            int type1 = GetLegendType(start);
            int type2 = GetLegendType(end);
            if (type1.CompareTo(type2) != 0) return type1.CompareTo(type2);
            return 0;
        }
        private int CompareJadeDynastyLegendColorType(int start, int end)
        {
            int value1 = attrDict[start];
@@ -1656,11 +1624,6 @@
            if (type1.CompareTo(type2) != 0) return -type1.CompareTo(type2);
            return 0;
        }
        private int GetLegendType(int id)
        {
            return (int)LegendPropertyUtility.GetEquipPropertyType(id);
        }
        private int GetDogzLegendType(int id)
@@ -1840,7 +1803,7 @@
            return s;
        }
        public Dictionary<int, int> SetItemEffectDict(ItemConfig config)
        Dictionary<int, int> GetItemEffectDict(ItemConfig config)
        {
            Dictionary<int, int> itemEffectDict = new Dictionary<int, int>();
            if (config == null) return itemEffectDict;
@@ -1863,6 +1826,7 @@
            {
                DebugEx.Log(ex.ToString());
            }
            return itemEffectDict;
        }
@@ -2044,7 +2008,7 @@
            var fruitlist = AttrFruitConfig.GetKeys();
            Dictionary<int, int> attrDict = new Dictionary<int, int>();
            Dictionary<int, int> itemEffectDict = SetItemEffectDict(itemConfig);
            Dictionary<int, int> itemEffectDict = GetItemEffectDict(itemConfig);
            int atk = 0;
            int hp = 0;
            int def = 0;
@@ -2564,33 +2528,12 @@
                        case 11:
                            SetWingsLegendAttrPreview(out legendIdlist, out legendValuelist);
                            break;
                        case 1:
                        case 2:
                        case 3:
                        case 4:
                        case 5:
                        case 6:
                        case 7:
                        case 8:
                        case 9:
                        case 10:
                        case 12:
                            SetEquipLegendAttrPreview(out legendIdlist, out legendValuelist);
                            break;
                        case 101:
                        case 102:
                        case 103:
                        case 104:
                        case 105:
                            SetDogzEquipLegendAttrPreview(out legendIdlist, out legendValuelist);
                            break;
                    }
                    var packType = GeneralDefine.GetPackTypeByItemType(itemConfig.Type);
                    switch (packType)
                    {
                        case PackType.JadeDynastyItem:
                            SetJadeDynastyEquipLegendAttrPreview(out legendIdlist, out legendValuelist);
                            break;
                    }
@@ -2704,45 +2647,6 @@
            }
        }
        private void SetEquipLegendAttrPreview(out List<int> ids, out List<int> values)
        {
            ids = new List<int>();
            values = new List<int>();
            var equipPlace = itemConfig.EquipPlace;
            if (LegendPropertyUtility.HasEquipPlace(equipPlace))
            {
                ids.AddRange(LegendPropertyUtility.GetEquipPlaceProperties(equipPlace));
            }
            for (var i = ids.Count - 1; i >= 0; i--)
            {
                var propertyId = ids[i];
                if (LegendPropertyUtility.GetEquipPropertyType(propertyId) == LegendAttrType.Normal)
                {
                    ids.RemoveAt(i);
                }
            }
            for (var i = 0; i < ids.Count; i++)
            {
                var propertyId = ids[i];
                var qualityPropertyValue = LegendPropertyUtility.GetEquipQualityPropertyValue(propertyId, itemConfig.ItemColor);
                if (qualityPropertyValue != 0)
                {
                    values.Add(qualityPropertyValue);
                }
                else
                {
                    var levelPropertyValue = LegendPropertyUtility.GetEquipLevelPropertyValue(propertyId, itemConfig.LV);
                    if (levelPropertyValue != 0)
                    {
                        values.Add(levelPropertyValue);
                    }
                }
            }
        }
        private void SetDogzEquipLegendAttrPreview(out List<int> legendIdlist, out List<int> legendValuelist)
        {
            legendIdlist = new List<int>();
@@ -2770,14 +2674,6 @@
                legendValuelist.Add(value);
            }
        }
        private void SetJadeDynastyEquipLegendAttrPreview(out List<int> legendIdlist, out List<int> legendValuelist)
        {
            Dictionary<int, int> attrDict = null;
            itemTipsModel.TryGetJadeDynastyLegendAttr(itemId, out attrDict);
            legendIdlist = attrDict.Keys.ToList();
            legendValuelist = attrDict.Values.ToList();
        }
        private StringBuilder _extraInfoBuider = new StringBuilder();
@@ -2826,17 +2722,6 @@
            if (lv <= 0) return;
            strengthDataDict = new Dictionary<int, int>();
            //itemPlus = ItemPlusConfig.GetItemPlusData(type, lv);
            //if (itemPlus != null)
            //{
            //    int[] attrIDs = itemPlus.attrIds;
            //    int[] attrValues = itemPlus.attrValues;
            //    int i = 0;
            //    for (i = 0; i < attrIDs.Length; i++)
            //    {
            //        strengthDataDict.Add(attrIDs[i], attrValues[i]);
            //    }
            //}
        }
        /// <summary>
@@ -2885,55 +2770,6 @@
            for (i = 0; i < ids.Count; i++)
            {
                exhaustedMaxDataDict.Add(ids[i], values[i]);
            }
        }
        /// <summary>
        /// 设置弹框的洗练数据
        /// </summary>
        /// <param name="type"></param>
        /// <param name="lv"></param>
        /// <param name="values"></param>
        private EquipWashConfig.EquipWashData tagWashModel;
        public void SetWashModel(int type, int lv, int[] values)
        {
            washDataDict = null;
            bool isWash = false;
            int i = 0;
            for (i = 0; i < values.Length; i++)
            {
                if (values[i] > 0)
                {
                    isWash = true;
                    break;
                }
            }
            if (!isWash)
            {
                return;
            }
            washDataDict = new Dictionary<int, int>();
            this.tagWashModel = EquipWashConfig.Get(type, lv);
            if (this.tagWashModel != null)
            {
                for (i = 0; i < values.Length; i++)
                {
                    switch (i)
                    {
                        case 0:
                            washDataDict.Add(tagWashModel.config.attType1, values[0]);
                            break;
                        case 1:
                            washDataDict.Add(tagWashModel.config.attType2, values[1]);
                            break;
                        case 2:
                            washDataDict.Add(tagWashModel.config.attType3, values[2]);
                            break;
                    }
                }
            }
        }
System/KnapSack/Logic/LegendPropertyUtility.cs
@@ -6,71 +6,61 @@
public class LegendPropertyUtility
{
    static PropertyColor propertyColor;
    static PropertyMap equipPropertyMap;
    static PropertyMap dogzPropertyMap;
    static PropertyCount equipPropertyCount;
    static PropertyCount dogzPropertyCount;
    static QualityPropertyValue equipQualityPropertyValue;
    static QualityPropertyValue dogzQualityPropertyValue;
    static LevelPropertyValue equipLevelPropertyValue;
    static WingPropertyCount wingPropertyCount;
    static WingPropertyValue wingPropertyValue;
    public static void Init()
    {
        propertyColor = new PropertyColor("LegendAttrColor");
        equipPropertyMap = new PropertyMap(FuncConfigConfig.Get("LegendAttrColor").Numerical1,
            FuncConfigConfig.Get("LegendAttrRulePreview").Numerical1);
        dogzPropertyMap = new PropertyMap(FuncConfigConfig.Get("DogzLegendAttrColor").Numerical1,
            FuncConfigConfig.Get("DogzLegendAttrRulePreview").Numerical1);
        equipPropertyCount = new PropertyCount(FuncConfigConfig.Get("LegendAttrCountPreview").Numerical1);
        dogzPropertyCount = new PropertyCount(FuncConfigConfig.Get("DogzLegendAttrCountPreview").Numerical1);
        equipQualityPropertyValue = new QualityPropertyValue(FuncConfigConfig.Get("LegendAttrValueByColorPreview").Numerical1);
        dogzQualityPropertyValue = new QualityPropertyValue(FuncConfigConfig.Get("DogzLegendAttrValueByColorPreview").Numerical1);
        equipLevelPropertyValue = new LevelPropertyValue(FuncConfigConfig.Get("LegendAttrValueByClassLVPreview").Numerical1);
        wingPropertyCount = new WingPropertyCount();
        wingPropertyValue = new WingPropertyValue();
    }
    public static List<Int2> GetEquipProperties(int itemId)
    {
        var config = ItemConfig.Get(itemId);
        if (config == null)
        {
            return null;
        }
        var legendPropertyConfig = LegendPropertyValueConfig.Get(config.Type, config.LV, config.ItemColor, config.SuiteiD != 0);
        if (legendPropertyConfig == null)
        {
            return null;
        }
        return new List<Int2>(legendPropertyConfig.previewValue);
    }
    public static int GetEquipPropertyCount(int itemId)
    {
        var config = ItemConfig.Get(itemId);
        if (config == null)
        {
            return 0;
        }
        var legendPropertyConfig = LegendPropertyValueConfig.Get(config.Type, config.LV, config.ItemColor, config.SuiteiD != 0);
        if (legendPropertyConfig == null)
        {
            return 0;
        }
        return legendPropertyConfig.propertyCount;
    }
    public static string GetWingPropertyColor(int propertyId, int value)
    {
        return propertyColor.GetWingPropertyColor(propertyId, value);
    }
    public static LegendAttrType GetEquipPropertyType(int propertyId)
    {
        return equipPropertyMap.GetPropertyType(propertyId);
    }
    public static bool HasEquipPlace(int place)
    {
        return equipPropertyMap.HasPlace(place);
    }
    public static bool HasEquipProperty(int place, int propertyId)
    {
        if (!HasEquipPlace(place))
        {
            return false;
        }
        return equipPropertyMap.GetProperties(place).Contains(propertyId);
    }
    public static List<int> GetEquipPlaceProperties(int place)
    {
        return equipPropertyMap.GetProperties(place);
    }
    public static List<int> GetEquipPlaceProperties(int place, LegendAttrType type)
    {
        return equipPropertyMap.GetProperties(place);
    }
    public static LegendAttrType GetDogzPropertyType(int propertyId)
@@ -83,31 +73,9 @@
        return dogzPropertyMap.HasPlace(place);
    }
    public static bool HasDogzProperty(int place, int propertyId)
    {
        if (!HasEquipPlace(place))
        {
            return false;
        }
        return dogzPropertyMap.GetProperties(place).Contains(propertyId);
    }
    public static List<int> GetDogzPlaceProperties(int place)
    {
        return dogzPropertyMap.GetProperties(place);
    }
    public static int GetEquipPropertyCount(int quality, int star, LegendAttrType type)
    {
        return equipPropertyCount.GetCount(quality, star, type);
    }
    public static int GetEquipPropertyCount(int quality, int star)
    {
        return equipPropertyCount.GetCount(quality, star, LegendAttrType.Normal)
            + equipPropertyCount.GetCount(quality, star, LegendAttrType.Fixed)
            + equipPropertyCount.GetCount(quality, star, LegendAttrType.Fixed);
    }
    public static int GetDogzPropertyCount(int quality, int star, LegendAttrType type)
@@ -115,19 +83,9 @@
        return dogzPropertyCount.GetCount(quality, star, type);
    }
    public static int GetEquipQualityPropertyValue(int property, int quality)
    {
        return equipQualityPropertyValue.GetValue(property, quality);
    }
    public static int GetDogzQualityPropertyValue(int property, int quality)
    {
        return dogzQualityPropertyValue.GetValue(property, quality);
    }
    public static int GetEquipLevelPropertyValue(int property, int level)
    {
        return equipLevelPropertyValue.GetValue(property, level);
    }
    public static int GetWingPropertyCount(int level)
@@ -448,58 +406,6 @@
                return 0;
            }
        }
    }
    public class LevelPropertyValue
    {
        // key 属性ID value 装备阶级,属性数值
        Dictionary<int, Dictionary<int, int>> levelValues = new Dictionary<int, Dictionary<int, int>>();
        public LevelPropertyValue(string config)
        {
            var json = JsonMapper.ToObject(config);
            levelValues = new Dictionary<int, Dictionary<int, int>>();
            foreach (var key in json.Keys)
            {
                var propertyId = int.Parse(key);
                var levelToValue = new Dictionary<int, int>();
                levelValues.Add(int.Parse(key), levelToValue);
                var subJson = json[key];
                for (var i = 0; i < subJson.Count; i++)
                {
                    levelToValue[(int)subJson[i][0]] = (int)subJson[i][1];
                }
            }
        }
        public bool Has(int property)
        {
            return levelValues.ContainsKey(property);
        }
        public bool Has(int property, int level)
        {
            if (!levelValues.ContainsKey(property))
            {
                return false;
            }
            return levelValues[property].ContainsKey(property);
        }
        public int GetValue(int property, int level)
        {
            if (Has(property, level))
            {
                return levelValues[property][level];
            }
            else
            {
                return 0;
            }
        }
    }
    public class WingPropertyCount
Utility/ConfigInitiator.cs
@@ -285,6 +285,8 @@
        normalTasks.Add(new ConfigInitTask("EquipStarConfig", () => { EquipStarConfig.Init(); }, () => { return EquipStarConfig.inited; }));
        normalTasks.Add(new ConfigInitTask("WashLevelMaxConfig", () => { WashLevelMaxConfig.Init(); }, () => { return WashLevelMaxConfig.inited; }));
        normalTasks.Add(new ConfigInitTask("EquipPlusEvolveConfig", () => { EquipPlusEvolveConfig.Init(); }, () => { return EquipPlusEvolveConfig.inited; }));
        normalTasks.Add(new ConfigInitTask("LegendPropertyValueConfig", () => { LegendPropertyValueConfig.Init(); }, () => { return LegendPropertyValueConfig.inited; }));
        normalTasks.Add(new ConfigInitTask("LegendPropertyConfig", () => { LegendPropertyConfig.Init(); }, () => { return LegendPropertyConfig.inited; }));
    }
    static List<ConfigInitTask> doingTasks = new List<ConfigInitTask>();