//-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Friday, July 27, 2018 //-------------------------------------------------------- using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; namespace Snxxz.UI { public class ViewPetHorseStoneWin : Window { [SerializeField] RectTransform m_ContainerPet; [SerializeField] RectTransform m_ContainerHorse; [SerializeField] ScrollerController m_Controller; [SerializeField] Button m_CloseBtn; RoleParticularModel model { get { return ModelCenter.Instance.GetModel(); } } List petHorseStones; #region Built-in protected override void BindController() { } protected override void AddListeners() { m_Controller.OnRefreshCell += OnRefreshCell; m_CloseBtn.onClick.AddListener(CloseClick); } protected override void OnPreOpen() { Display(); } protected override void OnAfterOpen() { } protected override void OnPreClose() { } protected override void OnAfterClose() { } #endregion private void Display() { var viewplayer = model.GetViewPlayerData(model.viewPlayer); if (viewplayer == null) { return; } m_ContainerHorse.gameObject.SetActive(!model.viewPetStone); m_ContainerPet.gameObject.SetActive(model.viewPetStone); petHorseStones = null; petHorseStones = viewplayer.rolePlusData.petHorseStones.FindAll((x) => { var config = ItemConfig.Get(x.item); return config.Type == (model.viewPetStone ? 28 : 22); }); m_Controller.Refresh(); if (petHorseStones != null) { petHorseStones.Sort(Compare); for (int i = 0; i < petHorseStones.Count; i++) { m_Controller.AddCell(ScrollerDataType.Header, i); } } m_Controller.Restart(); } private void OnRefreshCell(ScrollerDataType type, CellView cell) { ViewPetHorseStoneCell petHorseStoneCell = cell as ViewPetHorseStoneCell; var index = cell.index; if (petHorseStones != null && index < petHorseStones.Count) { petHorseStoneCell.Display(petHorseStones[index].item, petHorseStones[index].count); } } int Compare(RoleParticularModel.PetHorseStone x, RoleParticularModel.PetHorseStone y) { var stoneConfig_x = AttrFruitConfig.Get(x.item); var stoneConfig_y = AttrFruitConfig.Get(y.item); if (stoneConfig_x != null && stoneConfig_y != null) { return -stoneConfig_x.Sort.CompareTo(stoneConfig_y.Sort); } return -x.item.CompareTo(y.item); } } }