//--------------------------------------------------------
|
// [Author]: 第二世界
|
// [ Date ]: Thursday, September 07, 2017
|
//--------------------------------------------------------
|
|
using Snxxz.UI;
|
using System;
|
using System.Collections;
|
using System.Collections.Generic;
|
using UnityEngine;
|
using UnityEngine.EventSystems;
|
using UnityEngine.UI;
|
|
namespace Snxxz.UI {
|
|
public class DepotWin : TempKnapSackBasic
|
{
|
#region 成员变量
|
[SerializeField]
|
private Button _depotSortBtn;
|
[SerializeField]
|
private Button _bagSortBtn;
|
[SerializeField]
|
private Image _bagSortImage;
|
[SerializeField]
|
private Image _depotSortImage;
|
[SerializeField]
|
private Text _timeDepotDown;
|
[SerializeField]
|
private Text _timeBagDown;
|
[SerializeField]
|
private ScrollerController _gridlineCtrl;
|
#endregion
|
|
private SinglePackModel packModel;
|
|
ItemTipsModel _itemTipsModel;
|
ItemTipsModel itemTipsModel
|
{
|
get
|
{
|
return _itemTipsModel ?? (_itemTipsModel = ModelCenter.Instance.GetModel<ItemTipsModel>());
|
}
|
}
|
|
PlayerPackModel _playerPack;
|
PlayerPackModel playerPack
|
{
|
get { return _playerPack ?? (_playerPack = ModelCenter.Instance.GetModel<PlayerPackModel>()); }
|
}
|
|
PackModelInterface _modelInterface;
|
PackModelInterface modelInterface
|
{
|
get { return _modelInterface ?? (_modelInterface = ModelCenter.Instance.GetModel<PackModelInterface>()); }
|
}
|
|
#region Built-in
|
protected override void BindController()
|
{
|
_gridlineCtrl.OnRefreshCell += OnRefreshGridCell;
|
_gridlineCtrl.vertical = true;
|
_gridlineCtrl.lockType = EnhanceLockType.KeepVertical;
|
}
|
|
protected override void AddListeners()
|
{
|
_depotSortBtn.onClick.RemoveAllListeners();
|
_depotSortBtn.onClick.AddListener(() => { OnClickDepotSortBtn(); });
|
_bagSortBtn.onClick.RemoveAllListeners();
|
_bagSortBtn.onClick.AddListener(() => { OnClickSortBtn(); });
|
}
|
|
protected override void OnPreOpen()
|
{
|
playerPack.GridRefreshEvent += OnPackCanUseGrid;
|
playerPack.RefreshItemCountAct += OnAddItemCell;
|
playerPack.RefreshPackAct += RefreshPackModel;
|
|
packModel = playerPack.GetSinglePackModel(PackType.Warehouse);
|
OnCreateGridLineCell(_gridlineCtrl);
|
|
TimeDownMgr.CoolTimeData bagData;
|
if(TimeDownMgr.Instance.Get(TimeDownMgr.CoolTimeType.BagSort,out bagData))
|
{
|
bagData.func = RefreshBagSortTime;
|
_bagSortImage.SetSprite("BlackBtn");
|
_timeBagDown.text = Language.Get("BagWin_SortCDbtn_Text_1", Mathf.CeilToInt(bagData.duration-bagData.time));
|
_bagSortBtn.enabled = false;
|
}
|
else
|
{
|
_bagSortImage.SetSprite("SecondBtn1");
|
_timeBagDown.text = Language.Get("BagWin_Sortbtn_Text_2");
|
_bagSortBtn.enabled = true;
|
}
|
|
TimeDownMgr.CoolTimeData depotData;
|
if (TimeDownMgr.Instance.Get(TimeDownMgr.CoolTimeType.DepotSort, out depotData))
|
{
|
depotData.func = RefreshDepotSortTime;
|
_depotSortImage.SetSprite("BlackBtn");
|
_timeDepotDown.text = Language.Get("BagWin_SortCDbtn_Text_1", Mathf.CeilToInt(depotData.duration - depotData.time));
|
_depotSortBtn.enabled = false;
|
}
|
else
|
{
|
_depotSortImage.SetSprite("SecondBtn1");
|
_timeDepotDown.text = Language.Get("BagWin_Sortbtn_Text_3");
|
_depotSortBtn.enabled = true;
|
}
|
}
|
|
|
protected override void OnAfterOpen()
|
{
|
_gridlineCtrl.JumpIndex(0);
|
}
|
|
protected override void OnPreClose()
|
{
|
playerPack.RefreshPackAct -= RefreshPackModel;
|
playerPack.RefreshItemCountAct -= OnAddItemCell;
|
playerPack.GridRefreshEvent -= OnPackCanUseGrid;
|
|
}
|
|
protected override void OnAfterClose()
|
{
|
|
}
|
#endregion
|
|
|
private void RefreshPackModel(PackType type)
|
{
|
if (type != PackType.Warehouse)
|
return;
|
_gridlineCtrl.JumpIndex(0);
|
OnCreateGridLineCell(_gridlineCtrl);
|
}
|
|
#region 共用部分
|
|
public override void OnCreateGridLineCell(ScrollerController gridCtrl)
|
{
|
base.OnCreateGridLineCell(gridCtrl);
|
}
|
|
public void OnRefreshGridCell(ScrollerDataType type, CellView cell)
|
{
|
|
int gridlineIndex = cell.index;
|
int childCode = 0;
|
|
if (packModel == null)
|
{
|
for (childCode = 0; childCode < cell.transform.childCount; childCode++)
|
{
|
GridCell gridCell = cell.transform.GetChild(childCode).GetComponent<GridCell>();
|
if (gridCell == null)
|
gridCell = cell.transform.GetChild(childCode).gameObject.AddComponent<GridCell>();
|
|
gridCell.gridLock.SetActive(true);
|
gridCell.itemCell.gameObject.SetActive(false);
|
}
|
return;
|
}
|
|
for (childCode = 0; childCode < cell.transform.childCount; childCode++)
|
{
|
GridCell gridCell = cell.transform.GetChild(childCode).GetComponent<GridCell>();
|
if (gridCell == null)
|
gridCell = cell.transform.GetChild(childCode).gameObject.AddComponent<GridCell>();
|
|
int cellCount = (cell.transform.childCount) * gridlineIndex + (childCode + 1);
|
gridCell.itemCell.gameObject.SetActive(false);
|
if (cellCount > packModel.openGridCount)
|
gridCell.gridLock.SetActive(true);
|
|
else
|
gridCell.gridLock.SetActive(false);
|
|
ItemModel itemModel = packModel.GetItemByIndex(cellCount - 1);
|
if (itemModel != null)
|
{
|
gridCell.itemCell.gameObject.SetActive(true);
|
//pdr ToDo
|
gridCell.itemCell.Init(itemModel, true);
|
gridCell.itemCellBtn.OnOneParaClick = null;
|
gridCell.itemCellBtn.m_OnDbClick = null;
|
gridCell.itemCellBtn.OnOneParaClick=(int info)=>
|
{
|
itemTipsModel.SetItemTipsModel(PackType.Warehouse,itemModel.guid,false,true);
|
itemTipsModel.SetDepotTipsBtn(itemTipsModel.curAttrData);
|
itemTipsModel.ShowUICtrl();
|
};
|
gridCell.itemCellBtn.m_OnDbClick = () =>
|
{
|
ItemOperateUtility.Instance.TakeOutFromWarehouse(ItemOperateType.putOut, itemModel.guid);
|
};
|
|
}
|
gridCell.lockBtn.onClick.RemoveAllListeners();
|
gridCell.lockBtn.onClick.AddListener(() =>
|
{
|
int selectGridIndex = cell.index * 5 + int.Parse(gridCell.gameObject.name.Substring(gridCell.gameObject.name.Length - 1, 1));
|
OnClickLockBtn(selectGridIndex, packModel);
|
});
|
|
}
|
}
|
|
public override void OnPackCanUseGrid(PackType type)
|
{
|
if (type != PackType.Warehouse)
|
return;
|
OnCreateGridLineCell(_gridlineCtrl);
|
}
|
|
public override void OnAddItemCell(PackType type,int index,int id)
|
{
|
if (type != PackType.Warehouse)
|
return;
|
|
OnCreateGridLineCell(_gridlineCtrl);
|
}
|
|
|
public void OnClickSortBtn()
|
{
|
modelInterface.SendPackResetQuest(PackType.Item);
|
TimeDownMgr.Instance.Begin(TimeDownMgr.CoolTimeType.BagSort, 5.0f, RefreshBagSortTime);
|
_timeBagDown.text = Language.Get("BagWin_SortCDbtn_Text_1", 5);
|
_bagSortImage.SetSprite("BlackBtn");
|
_bagSortBtn.enabled = false;
|
}
|
public void OnClickDepotSortBtn()
|
{
|
modelInterface.SendPackResetQuest(PackType.Warehouse);
|
TimeDownMgr.Instance.Begin(TimeDownMgr.CoolTimeType.DepotSort, 5.0f, RefreshDepotSortTime);
|
_timeDepotDown.text = Language.Get("BagWin_SortCDbtn_Text_1", 5);
|
_depotSortImage.SetSprite("BlackBtn");
|
_depotSortBtn.enabled = false;
|
}
|
|
private void RefreshBagSortTime(float time)
|
{
|
if (time <= 0)
|
{
|
_bagSortImage.SetSprite("SecondBtn1");
|
_timeBagDown.text = Language.Get("BagWin_Sortbtn_Text_2");
|
_bagSortBtn.enabled = true;
|
}
|
else
|
{
|
_bagSortBtn.enabled = false;
|
_timeBagDown.text = Language.Get("BagWin_SortCDbtn_Text_1", time);
|
}
|
}
|
|
private void RefreshDepotSortTime(float time)
|
{
|
if (time <= 0)
|
{
|
_depotSortImage.SetSprite("SecondBtn1");
|
_timeDepotDown.text = Language.Get("BagWin_Sortbtn_Text_3");
|
_depotSortBtn.enabled = true;
|
}
|
else
|
{
|
_timeDepotDown.text = Language.Get("BagWin_SortCDbtn_Text_1", time);
|
_depotSortBtn.enabled = false;
|
}
|
}
|
#endregion
|
|
}
|
|
}
|
|
|
|
|