| Core/GameEngine/Model/Config/KingTreasureConfig.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Core/GameEngine/Model/Config/KingTreasureConfig.cs.meta | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Core/NetworkPackage/DTCFile/ServerPack/HA3_Function/DTCA352_tagMCMagicWeaponLVInfo.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/Treasure/KingTreasureModel.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/Treasure/KingTreasureWin.cs | ●●●●● 补丁 | 查看 | 原始文档 | 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 跳转至赛季目标 } }