//-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Wednesday, November 14, 2018 //-------------------------------------------------------- using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; namespace vnxbqy.UI { public class DemonTreasurePropertyWin : Window { [SerializeField] ScrollerController m_ScrollerControl; TreasureModel model { get { return ModelCenter.Instance.GetModel(); } } static Dictionary propertyDict = new Dictionary(); #region Built-in protected override void BindController() { } protected override void AddListeners() { m_ScrollerControl.OnRefreshCell += OnRefreshCell; } protected override void OnPreOpen() { Display(); } protected override void OnAfterOpen() { } protected override void OnPreClose() { } protected override void OnAfterClose() { } #endregion private void OnRefreshCell(ScrollerDataType type, CellView cell) { var propertyCell = cell as DemonTreasurePropertyCell; var key = cell.index; if (propertyDict.ContainsKey(key)) { propertyCell.Display(key, propertyDict[key]); } } private void Display() { propertyDict.Clear(); var list = model.GetTreasureCategory(TreasureCategory.Demon); for (int i = 0; i < list.Count; i++) { TreasureDungeon treasureDungeon; if (model.TryGetTreasureDungeon(list[i], out treasureDungeon)) { for (int k = 0; k < treasureDungeon.dungeonInfos.Count; k++) { var dungeonInfo = treasureDungeon.dungeonInfos[k]; if (treasureDungeon.currentLevel >= dungeonInfo.level) { foreach (var key in dungeonInfo.propertyDict.Keys) { if (!propertyDict.ContainsKey(key)) { propertyDict.Add(key, 0); } propertyDict[key] += dungeonInfo.propertyDict[key]; } } } } } m_ScrollerControl.Refresh(); foreach (var key in propertyDict.Keys) { m_ScrollerControl.AddCell(ScrollerDataType.Header, key); } m_ScrollerControl.Restart(); } } }