//-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Friday, September 08, 2017 //-------------------------------------------------------- using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using Snxxz.UI; //灵兽魂石 namespace Snxxz.UI { public class PetStoneTipsWin : Window { [SerializeField] ScrollerController m_ScrollerController; [SerializeField] Button _CloseBtnHS; [SerializeField] GameObject m_Text_Power; [SerializeField] Text m_PowerNum; private Dictionary tag_Item = new Dictionary(); Dictionary tagCIM = new Dictionary(); private List ListID = new List(); ItemTipsModel _itemTipsModel; ItemTipsModel itemTipsModel { get { return _itemTipsModel ?? (_itemTipsModel = ModelCenter.Instance.GetModel()); } } PackModel _playerPack; PackModel playerPack { get { return _playerPack ?? (_playerPack = ModelCenter.Instance.GetModel()); } } #region Built-in PlayerPetDatas m_petModel; PlayerPetDatas petmodel { get { return m_petModel ?? (m_petModel = ModelCenter.Instance.GetModel()); } } RoleParticularModel m_RoleParticularModel; RoleParticularModel roleParticularModel { get { return m_RoleParticularModel ?? (m_RoleParticularModel = ModelCenter.Instance.GetModel()); } } protected override void BindController() { tag_Item = petmodel._TagPetItem; } protected override void AddListeners() { _CloseBtnHS.onClick.AddListener(CloseButtonHS); } protected override void OnPreOpen() { GetPetPower(); ListId(); ListSortId();//排序 m_ScrollerController.OnRefreshCell += OnRefreshGridCell; OnCreateGridLineCell(m_ScrollerController); m_ScrollerController.JumpIndex(JumpIndex()); } protected override void OnAfterOpen() { PlayerPetDatas.Event_Ha339 += HA339; roleParticularModel.PowerUpdate += PowerUpdate; } protected override void OnPreClose() { m_petModel.PetStoneItemId = 0; m_ScrollerController.OnRefreshCell -= OnRefreshGridCell; PlayerPetDatas.Event_Ha339 -= HA339; roleParticularModel.PowerUpdate -= PowerUpdate; } protected override void OnAfterClose() { } private void PowerUpdate() { GetPetPower(); } private void GetPetPower() { ulong PetPower = roleParticularModel.GetFuncFightPower((int)FuncPowerType.PetSoul); if (PetPower > 0) { m_Text_Power.SetActive(true); m_PowerNum.gameObject.SetActive(true); m_PowerNum.text = "+" + PetPower; } else { m_Text_Power.SetActive(false); m_PowerNum.gameObject.SetActive(false); } } #endregion private void OnCreateGridLineCell(ScrollerController gridCtrl) { gridCtrl.Refresh(); for (int i = 0; i < ListID.Count; i++) { gridCtrl.AddCell(ScrollerDataType.Header, ListID[i]); } gridCtrl.Restart(); } private void OnRefreshGridCell(ScrollerDataType type, CellView cell) { int _id = cell.index; MountStoneItem _MountStoneItem = cell.GetComponent(); ItemConfig _item = ItemConfig.Get(_id.ToString()); if (ItemConfig.Get(_id) == null) return; _MountStoneItem.m_BGMItem.SetItemBackGround(_item.ItemColor); _MountStoneItem.Item.SetSprite(_item.IconKey); int hs_number = playerPack.GetItemCountByID(PackType.Item, _id);//魂石数量 List bagIndex = null; if (hs_number <= 0) { _MountStoneItem.UserBtn.interactable = false; _MountStoneItem.UserBtn.GetComponent().gray = true; _MountStoneItem.m_UseTxt.color = UIHelper.GetUIColor(TextColType.White); _MountStoneItem.ItemNum.text = " " + hs_number.ToString() + "" + "/1"; } else { _MountStoneItem.UserBtn.interactable = true; _MountStoneItem.UserBtn.GetComponent().gray = false; _MountStoneItem.m_UseTxt.color = UIHelper.GetUIColor(TextColType.NavyBrown); _MountStoneItem.ItemNum.text = hs_number.ToString() + "/1"; bagIndex = playerPack.GetSinglePack(PackType.Item).GetItemIndexsAppointedCount(_id, 1); } int _maxuse = AttrFruitConfig.Get(_id).MaxUseCnt; _MountStoneItem.PetExpNum.text = tag_Item[_id].ToString() + "/" + _maxuse.ToString(); _MountStoneItem.Slider.value = (float)Math.Round((float)tag_Item[_id] / _maxuse, 2, MidpointRounding.AwayFromZero); SpiritBeastsText(_id.ToString(), _MountStoneItem.Some_text, tag_Item[_id]); if (tag_Item[_id] >= _maxuse) _MountStoneItem.UserBtn.gameObject.SetActive(false); else _MountStoneItem.UserBtn.gameObject.SetActive(true); _MountStoneItem.ItemButton.GetComponent