using System;
|
using UnityEngine;
|
using UnityEngine.UI;
|
using System.Collections.Generic;
|
using System.Linq;
|
using System.Collections;
|
|
namespace vnxbqy.UI
|
{
|
public class XBWarehouseWin : Window
|
{
|
[SerializeField] ScrollerController itemlistCtrl;
|
[SerializeField] ScrollerController getLogCtrl;
|
[SerializeField] Button putOutBtn;
|
[SerializeField] Button sortBtn;
|
[SerializeField] Image sortImage;
|
[SerializeField] Text sortBtnText;
|
int gridCount = 100;
|
|
PackModel _playerPack;
|
PackModel playerPack { get { return _playerPack ?? (_playerPack = ModelCenter.Instance.GetModel<PackModel>()); } }
|
HappyXBModel XBModel { get { return ModelCenter.Instance.GetModel<HappyXBModel>(); } }
|
|
int SingleLineCnt = 5;
|
int logCreateCnt = 0;
|
|
List<string> itemGetTimeArray = new List<string>();
|
protected override void BindController()
|
{
|
itemlistCtrl.OnRefreshCell += RefreshGridCell;
|
getLogCtrl.OnRefreshCell += RefreshGetItemLog;
|
gridCount = GeneralDefine.maxXBGridCount;
|
}
|
|
protected override void AddListeners()
|
{
|
sortBtn.AddListener(ClickSortBtn);
|
putOutBtn.AddListener(ClickPutOutBtn);
|
}
|
protected override void OnPreOpen()
|
{
|
playerPack.refrechPackEvent += RefreshPack;
|
CreateGridLine();
|
TimeDownMgr.CoolTimeData data;
|
|
if (TimeDownMgr.Instance.Get(TimeDownMgr.CoolTimeType.HappyXBWarehouse, out data))
|
{
|
data.func = RefreshTime;
|
sortImage.SetSprite("BlackBtn");
|
sortBtnText.text = Language.Get("BagWin_SortCDbtn_Text_1", Mathf.CeilToInt(data.duration - data.time));
|
sortBtn.enabled = false;
|
}
|
else
|
{
|
sortImage.SetSprite("SecondBtn1");
|
sortBtnText.text = Language.Get("BagWin_Sortbtn_Text_3");
|
sortBtn.enabled = true;
|
}
|
|
RefreshXBResult();
|
}
|
|
protected override void OnAfterOpen()
|
{
|
|
}
|
|
protected override void OnPreClose()
|
{
|
playerPack.refrechPackEvent -= RefreshPack;
|
}
|
|
protected override void OnAfterClose()
|
{
|
|
}
|
|
private void RefreshPack(PackType type)
|
{
|
if (type != PackType.Treasure) return;
|
|
itemlistCtrl.JumpIndex(0);
|
itemlistCtrl.m_Scorller.RefreshActiveCellViews();
|
}
|
|
private void RefreshXBResult()
|
{
|
if (PlayerPrefs.HasKey(HappyXBModel.HAPPYXBITEMKEY))
|
{
|
itemGetTimeArray = LocalSave.GeStringArray(HappyXBModel.HAPPYXBITEMKEY).ToList();
|
}
|
else
|
{
|
itemGetTimeArray.Clear();
|
}
|
CreateGetItemLog();
|
XBModel.ClearXBRusltData();
|
}
|
|
|
private void CreateGridLine()
|
{
|
int line = gridCount / SingleLineCnt;
|
itemlistCtrl.Refresh();
|
for(int i = 0; i < line; i++)
|
{
|
itemlistCtrl.AddCell(ScrollerDataType.Header,i);
|
}
|
itemlistCtrl.Restart();
|
|
}
|
|
private void RefreshGridCell(ScrollerDataType type, CellView cell)
|
{
|
int length = cell.transform.childCount;
|
for(int i = 0; i < length;i++)
|
{
|
int cellCount = length * cell.index + (i + 1);
|
XBGridCell xBGrid = cell.transform.GetChild(i).GetComponent<XBGridCell>();
|
ItemModel itemModel = playerPack.GetItemByIndex(PackType.Treasure, cellCount-1);
|
if(itemModel != null)
|
{
|
xBGrid.SetModel(itemModel.guid,cellCount-1);
|
}
|
else
|
{
|
xBGrid.SetModel("",cellCount-1);
|
}
|
|
}
|
}
|
|
private void CreateGetItemLog()
|
{
|
getLogCtrl.Refresh();
|
for(int i = 0; i < itemGetTimeArray.Count;i++)
|
{
|
getLogCtrl.AddCell(ScrollerDataType.Header,i);
|
}
|
getLogCtrl.Restart();
|
}
|
|
private void RefreshGetItemLog(ScrollerDataType type, CellView cell)
|
{
|
Text logText = cell.transform.Find("LogText").GetComponent<Text>();
|
Image greyImg = cell.transform.Find("Image").GetComponent<Image>();
|
logText.text = itemGetTimeArray[cell.index];
|
if(cell.index % 2 == 0)
|
{
|
greyImg.SetActive(true);
|
}
|
else
|
{
|
greyImg.SetActive(false);
|
}
|
}
|
|
private void ClickSortBtn()
|
{
|
ItemLogicUtility.Instance.ResetPack(PackType.Treasure);
|
TimeDownMgr.Instance.Begin(TimeDownMgr.CoolTimeType.HappyXBWarehouse, 5.0f, RefreshTime);
|
sortBtnText.text = Language.Get("BagWin_SortCDbtn_Text_1", 5);
|
sortImage.SetSprite("BlackBtn");
|
sortBtn.enabled = false;
|
}
|
|
private void RefreshTime(float time)
|
{
|
|
if (time <= 0)
|
{
|
sortImage.SetSprite("SecondBtn1");
|
sortBtnText.text = Language.Get("BagWin_Sortbtn_Text_3");
|
sortBtn.enabled = true;
|
}
|
else
|
{
|
sortBtnText.text = Language.Get("BagWin_SortCDbtn_Text_1", time);
|
sortBtn.enabled = false;
|
}
|
|
}
|
|
private void ClickPutOutBtn()
|
{
|
SinglePack singlePack = playerPack.GetSinglePack(PackType.Treasure);
|
if (singlePack == null) return;
|
Dictionary<int, ItemModel> pairs = singlePack.GetAllItems();
|
bool isHaveItem = false;
|
bool isHaveRune = false;
|
foreach(var value in pairs.Values)
|
{
|
if(value.config.Type == 30 || value.config.Type == 31)
|
{
|
isHaveRune = true;
|
}
|
else
|
{
|
isHaveItem = true;
|
}
|
if(isHaveRune && isHaveItem)
|
{
|
break;
|
}
|
}
|
|
if((isHaveItem && XBModel.CheckIsEmptyGrid(PackType.Item))
|
|| (isHaveRune && XBModel.CheckIsEmptyGrid(PackType.RunePack)))
|
{
|
XBModel.SendPutOutXBItem(PackType.Treasure, PackType.Item, 0, 1);
|
}
|
}
|
|
}
|
}
|