少年修仙传客户端代码仓库
client_linchunjie
2019-04-17 e9688daf1090c07eb964950114a8fbbf358b29b6
3294 【2.0】娲皇遗迹界面问题。
5个文件已修改
2个文件已删除
812 ■■■■■ 已修改文件
Core/GameEngine/Model/Config/WHYJRewardConfig.cs 412 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/GameEngine/Model/Config/WHYJRewardConfig.cs.meta 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Lua/Gen/WHYJRewardConfigWrap.cs 327 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Lua/Gen/WHYJRewardConfigWrap.cs.meta 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Lua/Gen/XLuaGenAutoRegister.cs 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Dungeon/DungenWHYJ.cs 53 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Dungeon/DungeonNuwaVictoryWin.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/GameEngine/Model/Config/WHYJRewardConfig.cs
@@ -1,205 +1,215 @@
//--------------------------------------------------------
//    [Author]:           Fish
//    [  Date ]:           Thursday, February 14, 2019
//--------------------------------------------------------
using System.Collections.Generic;
using System.IO;
using System.Threading;
using System;
using UnityEngine;
[XLua.LuaCallCSharp]
public partial class WHYJRewardConfig
{
//--------------------------------------------------------
//    [Author]:           Fish
//    [  Date ]:           Wednesday, April 17, 2019
//--------------------------------------------------------
using System.Collections.Generic;
using System.IO;
using System.Threading;
using System;
using UnityEngine;
[XLua.LuaCallCSharp]
public partial class WHYJRewardConfig
{
    public readonly int ID;
    public readonly string Reward;
    public readonly string Quantity;
    public WHYJRewardConfig()
    {
    }
    public WHYJRewardConfig(string input)
    {
        try
        {
            var tables = input.Split('\t');
    public readonly int[] Reward;
    public readonly int[] Quantity;
    public WHYJRewardConfig()
    {
    }
    public WHYJRewardConfig(string input)
    {
        try
        {
            var tables = input.Split('\t');
            int.TryParse(tables[0],out ID); 
            Reward = tables[1];
            string[] RewardStringArray = tables[1].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
            Reward = new int[RewardStringArray.Length];
            for (int i=0;i<RewardStringArray.Length;i++)
            {
                 int.TryParse(RewardStringArray[i],out Reward[i]);
            }
            Quantity = tables[2];
        }
        catch (Exception ex)
        {
            DebugEx.Log(ex);
        }
    }
    static Dictionary<string, WHYJRewardConfig> configs = new Dictionary<string, WHYJRewardConfig>();
    public static WHYJRewardConfig Get(string id)
    {
        if (!inited)
        {
            Debug.Log("WHYJRewardConfig 还未完成初始化。");
            return null;
        }
        if (configs.ContainsKey(id))
        {
            return configs[id];
        }
        WHYJRewardConfig config = null;
        if (rawDatas.ContainsKey(id))
        {
            config = configs[id] = new WHYJRewardConfig(rawDatas[id]);
            rawDatas.Remove(id);
        }
        return config;
    }
    public static WHYJRewardConfig 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<WHYJRewardConfig> GetValues()
    {
        var values = new List<WHYJRewardConfig>();
        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 +"/WHYJReward.txt";
        }
        else
        {
            path = AssetVersionUtility.GetAssetFilePath("config/WHYJReward.txt");
        }
        var tempConfig = new WHYJRewardConfig();
        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 WHYJRewardConfig(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 WHYJRewardConfig(line);
                            configs[id] = config;
                            (config as IConfigPostProcess).OnConfigParseCompleted();
                        }
                        else
                        {
                            rawDatas[id] = line;
                        }
                    }
                    catch (System.Exception ex)
                    {
                        Debug.LogError(ex);
                    }
                }
                inited = true;
            });
        }
    }
}
            string[] QuantityStringArray = tables[2].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
            Quantity = new int[QuantityStringArray.Length];
            for (int i=0;i<QuantityStringArray.Length;i++)
            {
                 int.TryParse(QuantityStringArray[i],out Quantity[i]);
            }
        }
        catch (Exception ex)
        {
            DebugEx.Log(ex);
        }
    }
    static Dictionary<string, WHYJRewardConfig> configs = new Dictionary<string, WHYJRewardConfig>();
    public static WHYJRewardConfig Get(string id)
    {
        if (!inited)
        {
            Debug.Log("WHYJRewardConfig 还未完成初始化。");
            return null;
        }
        if (configs.ContainsKey(id))
        {
            return configs[id];
        }
        WHYJRewardConfig config = null;
        if (rawDatas.ContainsKey(id))
        {
            config = configs[id] = new WHYJRewardConfig(rawDatas[id]);
            rawDatas.Remove(id);
        }
        return config;
    }
    public static WHYJRewardConfig 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<WHYJRewardConfig> GetValues()
    {
        var values = new List<WHYJRewardConfig>();
        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 +"/WHYJReward.txt";
        }
        else
        {
            path = AssetVersionUtility.GetAssetFilePath("config/WHYJReward.txt");
        }
        var tempConfig = new WHYJRewardConfig();
        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 WHYJRewardConfig(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 WHYJRewardConfig(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/WHYJRewardConfig.cs.meta
@@ -1,6 +1,6 @@
fileFormatVersion: 2
guid: fd4f59c93037b534ebaa9633e4ef63a7
timeCreated: 1550122242
timeCreated: 1555480223
licenseType: Pro
MonoImporter:
  serializedVersion: 2
Lua/Gen/WHYJRewardConfigWrap.cs
File was deleted
Lua/Gen/WHYJRewardConfigWrap.cs.meta
File was deleted
Lua/Gen/XLuaGenAutoRegister.cs
@@ -662,9 +662,6 @@
            translator.DelayWrapLoader(typeof(VipPrivilegeConfig), VipPrivilegeConfigWrap.__Register);
        
        
            translator.DelayWrapLoader(typeof(WHYJRewardConfig), WHYJRewardConfigWrap.__Register);
            translator.DelayWrapLoader(typeof(WashLevelMaxConfig), WashLevelMaxConfigWrap.__Register);
        
        
System/Dungeon/DungenWHYJ.cs
@@ -17,10 +17,11 @@
        [SerializeField] Button m_WHYJButton;
        [SerializeField] GameObject m_Container_WHYJ;        
        [SerializeField] Transform m_Horizontal;
        [SerializeField] ItemCell[] m_Items;
        [SerializeField] Image m_Rating;//评级
        DungeonModel model { get { return ModelCenter.Instance.GetModel<DungeonModel>(); } }
        List<int> ListRating = new List<int>();
        Dictionary<int, List<Item>> rewardItems = new Dictionary<int, List<Item>>();
        public void Init()
        {
            ListRating.Clear();
@@ -89,25 +90,51 @@
        private void SetTranItemCell()
        {
            int lineID = model.mission.lineID;
            var WHYJConfig = WHYJRewardConfig.Get(lineID+1);
            int[] RewardList = ConfigParse.GetMultipleStr<int>(WHYJConfig.Reward);
            int[] QuantityList = ConfigParse.GetMultipleStr<int>(WHYJConfig.Quantity);
            for (int i = 0; i < m_Horizontal.childCount; i++)
            if (!rewardItems.ContainsKey(lineID + 1))
            {
                if (i < RewardList.Length)
                rewardItems.Add(lineID + 1, new List<Item>());
                var WHYJConfig = WHYJRewardConfig.Get(lineID + 1);
                for (int i = 0; i < WHYJConfig.Reward.Length; i++)
                {
                    m_Horizontal.GetChild(i).gameObject.SetActive(true);
                    ItemCell ItemCell = m_Horizontal.GetChild(i).GetComponent<ItemCell>();
                    float value = GetRating() * QuantityList[i];
                    ItemCellModel cellModel = new ItemCellModel(RewardList[i], true, (ulong)Math.Round(value,0));
                    ItemCell.Init(cellModel);
                    rewardItems[lineID + 1].Add(new Item()
                    {
                        id = WHYJConfig.Reward[i],
                        count = WHYJConfig.Quantity[i],
                    });
                }
                rewardItems[lineID + 1].Sort(Compare);
            }
            List<Item> RewardList = rewardItems[lineID + 1];
            for (int i = 0; i < m_Items.Length; i++)
            {
                if (i < RewardList.Count)
                {
                    m_Items[i].gameObject.SetActive(true);
                    float value = GetRating() * RewardList[i].count;
                    ItemCellModel cellModel = new ItemCellModel(RewardList[i].id, true, (ulong)Math.Round(value,0));
                    m_Items[i].Init(cellModel);
                }
                else
                {
                    m_Horizontal.GetChild(i).gameObject.SetActive(false);
                    m_Items[i].gameObject.SetActive(false);
                }
            }
        }
        }
        private int Compare(Item x, Item y)
        {
            var lhs_config = ItemConfig.Get(x.id);
            var rhs_config = ItemConfig.Get(y.id);
            if (lhs_config.ItemColor != rhs_config.ItemColor)
            {
                return -lhs_config.ItemColor.CompareTo(rhs_config.ItemColor);
            }
            return 0;
        }
        private void OnClickButton()
        {
            m_Container_WHYJ.SetActive(!m_Container_WHYJ.activeSelf);
System/Dungeon/DungeonNuwaVictoryWin.cs
@@ -141,7 +141,8 @@
            else
            {
                m_ContainerReward.gameObject.SetActive(true);
                m_ChallengeRemind.gameObject.SetActive(result.grade >= 5);
                m_ChallengeRemind.gameObject.SetActive(result.grade >= 5
                    && result.lineID + 1 < dungeonNuwaModel.floorCount);
                DrawItemRewards();
                if (hasAssistPoint)