//--------------------------------------------------------
|
// [Author]: 第二世界
|
// [ Date ]: Wednesday, November 01, 2017
|
//--------------------------------------------------------
|
|
using System.Collections.Generic;
|
using System.Linq;
|
using UnityEngine;
|
using UnityEngine.UI;
|
|
namespace vnxbqy.UI
|
{
|
|
public class SecretPlaceXBActWin : Window
|
{
|
[SerializeField] Text scoreValue;
|
[SerializeField] Text timeValue;
|
[SerializeField] Text level;
|
[SerializeField] Text itemCountText;
|
[SerializeField] ItemCell itemCell;
|
[SerializeField] Button selectButton;
|
[SerializeField] List<Transform> cellList;
|
[SerializeField] Text serverList;
|
[SerializeField] RichText showMoreServerText;
|
[SerializeField] Button showMoreServerBtn;
|
|
int totalCardCnt = 35; //总卡片数
|
|
|
int curLevel = 0; // 从第一层开始
|
|
SecretPlaceXBModel model { get { return ModelCenter.Instance.GetModel<SecretPlaceXBModel>(); } }
|
PackModel packModel { get { return ModelCenter.Instance.GetModel<PackModel>(); } }
|
|
#region Built-in
|
protected override void BindController()
|
{
|
}
|
|
protected override void AddListeners()
|
{
|
|
selectButton.SetListener(() => {
|
WindowCenter.Instance.Open<SecretPlaceSuperItemWin>();
|
});
|
showMoreServerBtn.SetListener(() => {
|
FuncRules.OpenFuncTip(Language.Get("L2015"), model.operationCrossAct.m_ServerListStr);
|
});
|
}
|
|
protected override void OnPreOpen()
|
{
|
ILOperationTimeHepler.Instance.operationTimeUpdateEvent += operationTimeUpdateEvent;
|
WindowCenter.Instance.windowAfterCloseEvent += OnWindowAfterCloseEvent;
|
model.OnXBResult += OnAwardItemResult;
|
packModel.refreshItemCountEvent += RefreshItemCountEvent;
|
|
model.showResultPos.Clear();
|
model.onceRedpointTip = false;
|
model.UpdateRedpoint();
|
Display();
|
}
|
|
|
protected override void OnAfterOpen()
|
{
|
WashCard();
|
}
|
|
protected override void OnPreClose()
|
{
|
ILOperationTimeHepler.Instance.operationTimeUpdateEvent -= operationTimeUpdateEvent;
|
WindowCenter.Instance.windowAfterCloseEvent -= OnWindowAfterCloseEvent;
|
model.OnXBResult -= OnAwardItemResult;
|
packModel.refreshItemCountEvent -= RefreshItemCountEvent;
|
}
|
|
protected override void OnAfterClose()
|
{
|
}
|
|
protected override void LateUpdate()
|
{
|
if (model.IsResultShowTime)
|
{
|
timeValue.text = StringUtility.Contact(Language.Get("L2013", Language.Get("L2014"), model.operationCrossAct.ShowResultTime()), " (",
|
Language.Get("XMZZ110") + ")");
|
}
|
|
if (model.showResultPos.Count != 0)
|
{
|
|
var keys = model.showResultPos.Keys.ToList();
|
for (int i = 0; i < keys.Count; i++)
|
{
|
var pos = keys[i];
|
if ((Time.time - model.showResultPos[pos]) > 1f)
|
{
|
var cell = cellList[pos - 1].GetComponent<SecretPlaceXBCell>();
|
cell.itemCell.SetActiveIL(false);
|
if (model.operationAct.awardItems.ContainsKey(pos) && model.operationAct.awardItems[pos].ItemLibType == OperationXianXiaMJLottery.bigAwardType)
|
{
|
cell.effHole.Play();
|
model.PopNextLevel();
|
}
|
|
model.showResultPos.Remove(pos);
|
}
|
}
|
}
|
}
|
|
|
#endregion
|
|
private void RefreshItemCountEvent(PackType packType, int index, int itemId)
|
{
|
if (itemId != model.subItemID) return;
|
itemCountText.text = packModel.GetItemCountByID(PackType.Item, model.subItemID).ToString();
|
}
|
|
|
public void OnAwardItemResult(int pos)
|
{
|
if (pos == 0)
|
return;
|
|
var cell = cellList[pos - 1].GetComponent<SecretPlaceXBCell>();
|
cell.DisplaySingle(pos);
|
scoreValue.text = model.lotteryScore.ToString();
|
itemCountText.text = packModel.GetItemCountByID(PackType.Item, model.subItemID).ToString();
|
}
|
|
void Display()
|
{
|
|
curLevel = model.operationAct.layerNum;
|
|
scoreValue.text = model.lotteryScore.ToString();
|
itemCountText.text = packModel.GetItemCountByID(PackType.Item, model.subItemID).ToString();
|
ShowTime();
|
level.text = Language.Get("SecretPlaceAct4", model.operationAct.layerNum);
|
|
ShowSelectBigAward();
|
|
if (model.operationCrossAct != null)
|
{
|
serverList.text = Language.Get("L2013", Language.Get("L2015"), model.operationCrossAct.m_ServerListStr).Replace(" ", UIHelper.no_breaking_space);
|
showMoreServerText.text = Language.Get("L2018", Language.Get("L2016"));
|
}
|
else
|
{
|
serverList.text = "";
|
showMoreServerText.text = "";
|
}
|
}
|
|
|
void ShowTime()
|
{
|
//分上榜时间 和 最后展示时间
|
if (model.IsResultShowTime)
|
{
|
timeValue.text = StringUtility.Contact(Language.Get("L2013", Language.Get("L2014"), model.operationCrossAct.ShowResultTime()), " (",
|
Language.Get("XMZZ110") + ")");
|
}
|
else if (model.operationCrossAct != null)
|
{
|
timeValue.text = StringUtility.Contact(Language.Get("ExpActivity_Text1"), UIHelper.AppendColor(TextColType.Green, model.operationCrossAct.ToDisplayJoinTime(), true));
|
}
|
else
|
{
|
timeValue.text = StringUtility.Contact(Language.Get("ExpActivity_Text1"), UIHelper.AppendColor(TextColType.Green, model.operationAct.ToDisplayTime(), true));
|
|
}
|
}
|
|
void ShowSelectBigAward()
|
{
|
|
if (model.operationAct.selectBigAward == null)
|
{
|
itemCell.SetActiveIL(false);
|
}
|
else
|
{
|
itemCell.SetActiveIL(true);
|
itemCell.Init(new ItemCellModel((int)model.operationAct.selectBigAward.ItemID, false, model.operationAct.selectBigAward.ItemCount));
|
itemCell.button.SetListener(() => {
|
ItemTipUtility.Show((int)model.operationAct.selectBigAward.ItemID);
|
});
|
}
|
}
|
|
|
//洗牌
|
void WashCard()
|
{
|
|
for (int i = 0; i < totalCardCnt; i++)
|
{
|
if (i < model.operationAct.cardShowCount)
|
{
|
cellList[i].SetActiveIL(true);
|
var cell = cellList[i].GetComponent<SecretPlaceXBCell>();
|
cell.Display(i + 1);
|
}
|
else
|
{
|
cellList[i].SetActiveIL(false);
|
}
|
}
|
}
|
|
|
private void operationTimeUpdateEvent(Operation type)
|
{
|
if (type == SecretPlaceXBModel.operaType)
|
{
|
|
if (curLevel != model.operationAct.layerNum)
|
{
|
WashCard();
|
curLevel = model.operationAct.layerNum;
|
WindowCenter.Instance.Open<SecretPlaceSuperItemWin>();
|
}
|
|
level.text = Language.Get("SecretPlaceAct4", model.operationAct.layerNum);
|
scoreValue.text = model.lotteryScore.ToString();
|
ShowSelectBigAward();
|
}
|
}
|
|
void OnWindowAfterCloseEvent(Window win)
|
{
|
if (win.name != "SecretPlaceSuperItemWin")
|
return;
|
|
if (model.HasTurnCard())
|
return;
|
WashCard();
|
}
|
}
|
|
}
|
|
|
|
|