少年修仙传客户端代码仓库
client_linchunjie
2018-12-25 f97a8a604bbd94fb07b6730ee6a79a18f35beb00
王者仙盟
3个文件已修改
2个文件已添加
262 ■■■■ 已修改文件
Core/GameEngine/Model/Config/KingTreasureConfig.cs 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/GameEngine/Model/Config/KingTreasureConfig.cs.meta 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/NetworkPackage/DTCFile/ServerPack/HA3_Function/DTCA352_tagMCMagicWeaponLVInfo.cs 49 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Treasure/KingTreasureModel.cs 90 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Treasure/KingTreasureWin.cs 64 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/GameEngine/Model/Config/KingTreasureConfig.cs
New file
@@ -0,0 +1,47 @@
//--------------------------------------------------------
//    [Author]:            第二世界
//    [  Date ]:           Tuesday, December 25, 2018
//--------------------------------------------------------
using UnityEngine;
using System;
namespace TableConfig {
    public partial class KingTreasureConfig : ConfigBase {
        public int ID { get ; private set ; }
        public int MWID { get ; private set ; }
        public int LV { get ; private set ; }
        public string AddAttr { get ; private set; }
        public override string getKey()
        {
            return ID.ToString();
        }
        public override void Parse() {
            try
            {
                ID=IsNumeric(rawContents[0]) ? int.Parse(rawContents[0]):0;
                MWID=IsNumeric(rawContents[1]) ? int.Parse(rawContents[1]):0;
                LV=IsNumeric(rawContents[2]) ? int.Parse(rawContents[2]):0;
                AddAttr = rawContents[3].Trim();
            }
            catch (Exception ex)
            {
                DebugEx.Log(ex);
            }
        }
    }
}
Core/GameEngine/Model/Config/KingTreasureConfig.cs.meta
New file
@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 69a1de784b915e14b98e3e9276d76115
timeCreated: 1545706375
licenseType: Pro
MonoImporter:
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData:
  assetBundleName:
  assetBundleVariant:
Core/NetworkPackage/DTCFile/ServerPack/HA3_Function/DTCA352_tagMCMagicWeaponLVInfo.cs
@@ -1,24 +1,25 @@
//--------------------------------------------------------
//    [Author]:           第二世界
//    [  Date ]:           Thursday, May 03, 2018
//--------------------------------------------------------
using Snxxz.UI;
using System;
using System.Collections;
using System.Collections.Generic;
public class DTCA352_tagMCMagicWeaponLVInfo : DtcBasic {
    public override void Done(GameNetPackBasic vNetPack)
    {
        base.Done(vNetPack);
        var package = vNetPack as HA352_tagMCMagicWeaponLVInfo;
        ModelCenter.Instance.GetModel<TreasureModel>().UpdateTreasureLevelInfo(package);
    }
}
//--------------------------------------------------------
//    [Author]:           第二世界
//    [  Date ]:           Thursday, May 03, 2018
//--------------------------------------------------------
using Snxxz.UI;
using System;
using System.Collections;
using System.Collections.Generic;
public class DTCA352_tagMCMagicWeaponLVInfo : DtcBasic {
    public override void Done(GameNetPackBasic vNetPack)
    {
        base.Done(vNetPack);
        var package = vNetPack as HA352_tagMCMagicWeaponLVInfo;
        ModelCenter.Instance.GetModel<TreasureModel>().UpdateTreasureLevelInfo(package);
        ModelCenter.Instance.GetModel<KingTreasureModel>().OnReceivePackage(package);
    }
}
System/Treasure/KingTreasureModel.cs
@@ -1,4 +1,5 @@
using System.Collections;
using System;
using System.Collections;
using System.Collections.Generic;
using TableConfig;
using UnityEngine;
@@ -6,6 +7,11 @@
{
    public class KingTreasureModel : Model, IBeforePlayerDataInitialize, IPlayerLoginOk
    {
        Dictionary<int, TreasureStatus> treasureStatusDict = new Dictionary<int, TreasureStatus>();
        Dictionary<int, Dictionary<int, Division>> treasureDivisionDict = new Dictionary<int, Dictionary<int, Division>>();
        public event Action<int> treasureStatusRefresh;
        public int wearCountLimit { get; private set; }
        public override void Init()
@@ -15,7 +21,7 @@
        public void OnBeforePlayerDataInitialize()
        {
            treasureStatusDict.Clear();
        }
        public void OnPlayerLoginOk()
@@ -35,6 +41,86 @@
            {
                wearCountLimit = int.Parse(config.Numerical1);
            }
            var configs = Config.Instance.GetAllValues<KingTreasureConfig>();
            for (int i = 0; i < configs.Count; i++)
            {
                Dictionary<int, Division> dict;
                if (!treasureDivisionDict.TryGetValue(configs[i].MWID, out dict))
                {
                    dict = new Dictionary<int, Division>();
                    treasureDivisionDict.Add(configs[i].MWID, dict);
                }
                dict.Add(configs[i].LV, new Division()
                {
                    division = configs[i].LV,
                    propertys = ConfigParse.GetDic<int, int>(configs[i].AddAttr),
                });
            }
        }
        public bool TryGetDivision(int treasureId, int divisionLevel, out Division division)
        {
            Dictionary<int, Division> dict;
            division = default(Division);
            return treasureDivisionDict.TryGetValue(treasureId, out dict)
                && dict.TryGetValue(divisionLevel, out division);
        }
        public bool TryGetStatus(int treasureId, out TreasureStatus status)
        {
            return treasureStatusDict.TryGetValue(treasureId, out status);
        }
        public void OnReceivePackage()
        {
        }
        public void OnReceivePackage(HA352_tagMCMagicWeaponLVInfo package)
        {
            for (int i = 0; i < package.Count; i++)
            {
                var data = package.InfoList[i];
                TreasureStatus status;
                if (!TryGetStatus((int)data.MWID, out status))
                {
                    status = new TreasureStatus();
                    treasureStatusDict.Add((int)data.MWID, status);
                }
                if (treasureStatusRefresh != null)
                {
                    treasureStatusRefresh((int)data.MWID);
                }
            }
        }
        public struct Division
        {
            public int division;
            public Dictionary<int, int> propertys;
        }
        public class TreasureStatus
        {
            public int division { get; private set; }
            public bool isWear { get; private set; }
            public void OnReceive(int division)
            {
                this.division = division;
            }
            public void OnReceive(bool isWear)
            {
                this.isWear = isWear;
            }
            public void Reset()
            {
                division = 0;
                isWear = false;
            }
        }
    }
}
System/Treasure/KingTreasureWin.cs
@@ -23,9 +23,12 @@
        [SerializeField] RectTransform m_ContainerEnd;
        [SerializeField] Text m_SeasonEndRemind;
        [SerializeField] RectTransform m_ContainerGot;
        [SerializeField] Image m_DivisionIcon;
        [SerializeField] Text m_Division;
        [SerializeField] Text m_Score;
        [SerializeField] RectTransform m_ContainerBaseProperty;
        [SerializeField] PropertyBehaviour[] m_BasePropertys;
        [SerializeField] RectTransform m_ContainerSpecialProperty;
        [SerializeField] PropertyBehaviour[] m_SpecialPropertys;
        [SerializeField] Text m_Remind;
        [SerializeField] Button m_Goto;
@@ -98,6 +101,9 @@
        void DisplayState()
        {
            Treasure treasure;
            m_ContainerEnd.gameObject.SetActive(false);
            m_ContainerGot.gameObject.SetActive(false);
            m_ContainerOnGoing.gameObject.SetActive(false);
            if (model.TryGetTreasure(model.selectedTreasure, out treasure))
            {
                if (treasure.state == TreasureState.Collected)
@@ -113,17 +119,67 @@
        void DisplayGot()
        {
            m_ContainerGot.gameObject.SetActive(true);
            KingTreasureModel.TreasureStatus status;
            List<int> basePropertys = new List<int>();
            List<int> specialPropertys = new List<int>();
            if (kingTreasureModel.TryGetStatus(model.selectedTreasure, out status))
            {
                //--todo 显示段位等级
                KingTreasureModel.Division division;
                if (kingTreasureModel.TryGetDivision(model.selectedTreasure, status.division, out division))
                {
                    if (division.propertys != null)
                    {
                        foreach (var key in division.propertys.Keys)
                        {
                            var config = Config.Instance.Get<PlayerPropertyConfig>(key);
                            if (config.type == 2)
                            {
                                specialPropertys.Add(key);
                            }
                            else
                            {
                                basePropertys.Add(key);
                            }
                        }
                    }
                }
                m_ContainerBaseProperty.gameObject.SetActive(basePropertys.Count > 0);
                m_ContainerSpecialProperty.gameObject.SetActive(specialPropertys.Count > 0);
                if (basePropertys.Count > 0)
                {
                    for (int i = 0; i < m_BasePropertys.Length; i++)
                    {
                        m_BasePropertys[i].gameObject.SetActive(i < basePropertys.Count);
                        if (i < basePropertys.Count)
                        {
                            m_BasePropertys[i].DisplayUpper(basePropertys[i], division.propertys[basePropertys[i]]);
                        }
                    }
                }
                if (specialPropertys.Count > 0)
                {
                    for (int i = 0; i < m_SpecialPropertys.Length; i++)
                    {
                        m_SpecialPropertys[i].gameObject.SetActive(i < specialPropertys.Count);
                        if (i < specialPropertys.Count)
                        {
                            m_BasePropertys[i].DisplayUpper(basePropertys[i], division.propertys[basePropertys[i]]);
                        }
                    }
                }
            }
        }
        void DisplayEnd()
        {
            m_ContainerEnd.gameObject.SetActive(true);
        }
        void DisplayOnGoing()
        {
            m_ContainerOnGoing.gameObject.SetActive(true);
        }
        void DisplayTween()
@@ -139,7 +195,7 @@
        private void Goto()
        {
            //--todo 跳转至赛季目标
        }
    }