//--------------------------------------------------------
|
// [Author]: 第二世界
|
// [ Date ]: Thursday, January 25, 2018
|
//--------------------------------------------------------
|
|
using System;
|
using System.Collections;
|
using System.Collections.Generic;
|
using TableConfig;
|
using UnityEngine;
|
using UnityEngine.Events;
|
using UnityEngine.UI;
|
|
namespace Snxxz.UI {
|
|
public class DogzPackWin : Window
|
{
|
[SerializeField] List<DogzEquip> m_DogzEquips;
|
[SerializeField] List<Button> m_DogzUnEquipBtns;
|
[SerializeField] List<Text> m_DogzUnEquipContents;
|
[SerializeField] Image m_DogzHeadIcon;
|
[SerializeField] Button m_CloseBtn;
|
[SerializeField] Button m_GetEquipBtn;
|
[SerializeField] ScrollerController m_PackController;
|
[SerializeField] Button qualitySelectBtn;
|
[SerializeField] Button starSelectBtn;
|
[SerializeField] SortTable qualitySort;
|
[SerializeField] SortTable starSort;
|
|
DogzModel m_DogzModel;
|
DogzModel dogzModel
|
{
|
get
|
{
|
return m_DogzModel ?? (m_DogzModel = ModelCenter.Instance.GetModel<DogzModel>());
|
}
|
}
|
PlayerPackModel playerPack { get { return ModelCenter.Instance.GetModel<PlayerPackModel>(); } }
|
DogzPackModel m_Model;
|
DogzPackModel model
|
{
|
get
|
{
|
return m_Model ?? (m_Model = ModelCenter.Instance.GetModel<DogzPackModel>());
|
}
|
}
|
#region Built-in
|
protected override void BindController()
|
{
|
}
|
|
protected override void AddListeners()
|
{
|
m_CloseBtn.onClick.AddListener(CloseClick);
|
m_GetEquipBtn.onClick.AddListener(GetEquipBtn);
|
qualitySelectBtn.AddListener(ClickQualitySelect);
|
starSelectBtn.AddListener(ClickStarSelect);
|
}
|
|
protected override void OnPreOpen()
|
{
|
dogzModel.RefreshDogzEquipAct += RefreshDogzEquipEvent;
|
playerPack.RefreshItemCountAct += RefreshDogzItemEvent;
|
qualitySort.onSelectSortEvent += RefreshDogzSelectEvent;
|
starSort.onSelectSortEvent += RefreshDogzSelectEvent;
|
dogzModel.SelectDogzItemQuality = 0;
|
dogzModel.SelectDogzItemStart = 0;
|
starSort.SetDefault();
|
qualitySort.SetDefault();
|
UpdateDogzEquip();
|
UpdateDogzPack();
|
starSort.gameObject.SetActive(false);
|
qualitySort.gameObject.SetActive(false);
|
}
|
|
protected override void OnAfterOpen()
|
{
|
}
|
|
protected override void OnPreClose()
|
{
|
dogzModel.RefreshDogzEquipAct -= RefreshDogzEquipEvent;
|
playerPack.RefreshItemCountAct -= RefreshDogzItemEvent;
|
qualitySort.onSelectSortEvent -= RefreshDogzSelectEvent;
|
starSort.onSelectSortEvent -= RefreshDogzSelectEvent;
|
}
|
|
protected override void OnAfterClose()
|
{
|
}
|
#endregion
|
|
private void RefreshDogzEquipEvent(int dogzId)
|
{
|
if (dogzId != dogzModel.presentSelectDogz) return;
|
UpdateDogzEquip();
|
}
|
|
private void UpdateDogzEquip()
|
{
|
var _dogzCfg = Config.Instance.Get<DogzConfig>(dogzModel.presentSelectDogz);
|
m_DogzHeadIcon.SetSprite(_dogzCfg.HeadIcon);
|
m_DogzHeadIcon.SetNativeSize();
|
for (int i = 0; i < m_DogzEquips.Count; i++)
|
{
|
ItemModel _data;
|
int index = i;
|
bool _equiped = dogzModel.TryGetDogzEquip(dogzModel.presentSelectDogz, i+101, out _data);
|
m_DogzUnEquipBtns[i].gameObject.SetActive(!_equiped);
|
m_DogzEquips[i].gameObject.SetActive(_equiped);
|
if (_equiped)
|
{
|
m_DogzEquips[i].Display(_data);
|
}
|
else
|
{
|
var _itemColor = dogzModel.GetDogzEquipLimitByIndex(dogzModel.presentSelectDogz, i);
|
m_DogzUnEquipContents[i].text = StringUtility.Contact(DogzModel.GetItemColorName(_itemColor),
|
DogzModel.GetDogzPartNameByIndex(i));
|
m_DogzUnEquipContents[i].color = UIHelper.GetUIColor(_itemColor);
|
m_DogzUnEquipBtns[i].RemoveAllListeners();
|
m_DogzUnEquipBtns[i].AddListener(() => { ClickEquipIndex(index); });
|
}
|
}
|
}
|
|
private void ClickEquipIndex(int index)
|
{
|
dogzModel.GetDogzItemListByIndex(index);
|
if(dogzModel.selectEquipPlacelist.Count > 0)
|
{
|
WindowCenter.Instance.Open<SelectDogzItemWin>();
|
}
|
else
|
{
|
ConfirmCancel.ShowPopConfirm(Language.Get("Mail101"), Language.Get("DogzFunc101"), (bool isOk)=>
|
{
|
if(isOk)
|
{
|
|
}
|
return;
|
});
|
}
|
}
|
|
private void RefreshDogzSelectEvent(int type)
|
{
|
m_PackController.m_Scorller.RefreshActiveCellViews();
|
}
|
|
private void RefreshDogzItemEvent(PackType type, int index, int id)
|
{
|
if (type != PackType.rptDogzItem && type != PackType.rptDogzEquip) return;
|
|
m_PackController.m_Scorller.RefreshActiveCellViews();
|
}
|
|
private void UpdateDogzPack()
|
{
|
if (m_PackController.GetNumberOfCells(m_PackController.m_Scorller) == 0)
|
{
|
m_PackController.Refresh();
|
var _line = dogzModel.DogzPackGridCnt / 4;
|
for (int i = 0; i < _line; i++)
|
{
|
m_PackController.AddCell(ScrollerDataType.Header, i);
|
}
|
m_PackController.Restart();
|
}
|
else
|
{
|
m_PackController.m_Scorller.RefreshActiveCellViews();
|
}
|
}
|
|
private void GetEquipBtn()
|
{
|
//--界面跳转
|
}
|
|
private void ClickStarSelect()
|
{
|
starSort.gameObject.SetActive(!starSort.gameObject.activeInHierarchy);
|
}
|
|
private void ClickQualitySelect()
|
{
|
qualitySort.gameObject.SetActive(!qualitySort.gameObject.activeInHierarchy);
|
}
|
}
|
|
}
|
|
|
|
|