//--------------------------------------------------------
|
// [Author]: 第二世界
|
// [ Date ]: Monday, January 28, 2019
|
//--------------------------------------------------------
|
|
using System;
|
using System.Collections;
|
using System.Collections.Generic;
|
using UnityEngine;
|
using UnityEngine.UI;
|
using vnxbqy.UI;
|
|
public class MergeServerTurntableSelectItemWin : ILWindow
|
{
|
List<ItemCell> zjItems = new List<ItemCell>();
|
List<ToggleButton> zjtoggleBtns = new List<ToggleButton>();
|
List<ItemCell> jpItems = new List<ItemCell>();
|
List<ToggleButton> jptoggleBtns = new List<ToggleButton>();
|
Button checkBtn;
|
Button closeBtn;
|
Text textChooseZJ;
|
Text textChoosJP;
|
|
MergeServerTurntableModel model = MergeServerTurntableModel.Instance;
|
|
|
#region Built-in
|
protected override void BindController()
|
{
|
|
for (int i = 1; i <= 4; i++)
|
{
|
zjItems.Add(proxy.GetWidgtEx<ItemCell>("itemcell_zj" + i));
|
zjtoggleBtns.Add(proxy.GetWidgtEx<ToggleButton>("Toggle_Inevitable_zj" + i));
|
}
|
for (int i = 1; i <= 8; i++)
|
{
|
jpItems.Add(proxy.GetWidgtEx<ItemCell>("itemcell_jp" + i));
|
jptoggleBtns.Add(proxy.GetWidgtEx<ToggleButton>("Toggle_Inevitable_jp" + i));
|
}
|
checkBtn = proxy.GetWidgtEx<Button>("CommonButton");
|
closeBtn = proxy.GetWidgtEx<Button>("Img_Close");
|
textChooseZJ = proxy.GetWidgtEx<Text>("TextChooseZJ");
|
textChoosJP = proxy.GetWidgtEx<Text>("TextChoosJP");
|
|
|
|
|
}
|
|
protected override void AddListeners()
|
{
|
closeBtn.AddListener(CheckClose);
|
|
checkBtn.SetListener(SendSelectItem);
|
|
for (int i = 0; i < zjtoggleBtns.Count; i++)
|
{
|
int index = i;
|
zjtoggleBtns[i].SetListener(()=> {
|
zjtoggleBtns[index].isOn = !zjtoggleBtns[index].isOn;
|
});
|
zjtoggleBtns[i].OnValueChange(ShowZJToggle);
|
}
|
|
for (int i = 0; i < jptoggleBtns.Count; i++)
|
{
|
int index = i;
|
jptoggleBtns[i].SetListener(() => {
|
jptoggleBtns[index].isOn = !jptoggleBtns[index].isOn;
|
});
|
jptoggleBtns[i].OnValueChange(ShowJPToggle);
|
}
|
}
|
|
protected override void OnPreOpen()
|
{
|
ILOperationTimeHepler.Instance.operationTimeUpdateEvent += operationTimeUpdateEvent;
|
Display();
|
}
|
|
protected override void OnAfterOpen()
|
{
|
|
}
|
|
protected override void OnPreClose()
|
{
|
ILOperationTimeHepler.Instance.operationTimeUpdateEvent -= operationTimeUpdateEvent;
|
}
|
|
protected override void OnAfterClose()
|
{
|
}
|
#endregion
|
|
void Display()
|
{
|
OperationBase operationBase = null;
|
if (!OperationTimeHepler.Instance.TryGetOperationTime(model.operationType, out operationBase))
|
{
|
return;
|
}
|
OperationTurntable operation = operationBase as OperationTurntable;
|
for (int i = 0; i < zjItems.Count; i++)
|
{
|
zjtoggleBtns[i].isOn = false;
|
if (i < operation.superItemList.Count)
|
{
|
zjtoggleBtns[i].SetActiveIL(true);
|
zjItems[i].SetActiveIL(true);
|
var item = operation.superItemList[i];
|
var model = new ItemCellModel((int)item.ItemID, false, (ulong)item.ItemCount);
|
zjItems[i].Init(model);
|
zjItems[i].button.SetListener(() =>
|
{
|
ItemTipUtility.Show((int)item.ItemID);
|
});
|
}
|
else
|
{
|
zjItems[i].SetActiveIL(false);
|
zjtoggleBtns[i].SetActiveIL(false);
|
}
|
}
|
|
for (int i = 0; i < jpItems.Count; i++)
|
{
|
jptoggleBtns[i].isOn = false;
|
if (i < operation.goodItemList.Count)
|
{
|
jptoggleBtns[i].SetActiveIL(true);
|
jpItems[i].SetActiveIL(true);
|
var item = operation.goodItemList[i];
|
var model = new ItemCellModel((int)item.ItemID, false, (ulong)item.ItemCount);
|
jpItems[i].Init(model);
|
jpItems[i].button.SetListener(() =>
|
{
|
ItemTipUtility.Show((int)item.ItemID);
|
});
|
}
|
else
|
{
|
jpItems[i].SetActiveIL(false);
|
jptoggleBtns[i].SetActiveIL(false);
|
}
|
}
|
|
textChooseZJ.text = Language.Get("HFTurntable_4", operation.superItemCanChooseCount);
|
textChoosJP.text = Language.Get("HFTurntable_4", operation.goodItemCanChooseCount);
|
}
|
|
void SendSelectItem()
|
{
|
OperationBase operationBase = null;
|
if (OperationTimeHepler.Instance.TryGetOperationTime(model.operationType, out operationBase))
|
{
|
OperationTurntable operation = operationBase as OperationTurntable;
|
|
|
int jpCnt = 0;
|
List<byte> jpChooseItems = new List<byte>();
|
for (int i = 0; i < jptoggleBtns.Count; i++)
|
{
|
if (jptoggleBtns[i].isOn)
|
{
|
jpCnt++;
|
jpChooseItems.Add(operation.goodItemList[i].ItemNum);
|
}
|
}
|
|
if (jpCnt != operation.goodItemCanChooseCount)
|
{
|
ConfirmCancel.ShowPopConfirm(Language.Get("Mail101"), Language.Get("HFTurntable_5"),
|
Language.Get("L1001"), Language.Get("HFTurntable_8"), (bool isOk) =>
|
{
|
if (!isOk)
|
{
|
WindowCenter.Instance.CloseIL<MergeServerTurntableSelectItemWin>();
|
}
|
|
});
|
return;
|
}
|
|
int zjCnt = 0;
|
List<byte> zjChooseItems = new List<byte>();
|
for (int i = 0; i < zjtoggleBtns.Count; i++)
|
{
|
if (zjtoggleBtns[i].isOn)
|
{
|
zjCnt++;
|
zjChooseItems.Add(operation.superItemList[i].ItemNum);
|
}
|
}
|
|
if (zjCnt != operation.superItemCanChooseCount)
|
{
|
ConfirmCancel.ShowPopConfirm(Language.Get("Mail101"), Language.Get("HFTurntable_5"),
|
Language.Get("L1001"), Language.Get("HFTurntable_8"), (bool isOk) =>
|
{
|
if (!isOk)
|
{
|
WindowCenter.Instance.CloseIL<MergeServerTurntableSelectItemWin>();
|
}
|
|
});
|
return;
|
}
|
|
|
ConfirmCancel.ShowPopConfirm(Language.Get("Mail101"), Language.Get("HFTurntable_7"), (bool isOk) =>
|
{
|
if (isOk)
|
{
|
var pack = new IL_CAA12_tagCMActTurntableChooseItem();
|
pack.ActNum = (byte)operation.ActNum;
|
pack.GoodItemNumList = jpChooseItems.ToArray();
|
pack.GoodItemNumCount = (byte)pack.GoodItemNumList.Length;
|
pack.SuperItemNumList = zjChooseItems.ToArray();
|
pack.SuperItemNumCount = (byte)pack.SuperItemNumList.Length;
|
GameNetSystem.Instance.SendInfo(pack);
|
}
|
});
|
|
}
|
}
|
|
void CheckClose()
|
{
|
WindowCenter.Instance.CloseIL<MergeServerTurntableSelectItemWin>();
|
}
|
|
void ShowJPToggle(bool ison)
|
{
|
OperationBase operationBase = null;
|
if (OperationTimeHepler.Instance.TryGetOperationTime(model.operationType, out operationBase))
|
{
|
OperationTurntable operation = operationBase as OperationTurntable;
|
|
int jpCnt = 0;
|
for (int i = 0; i < jptoggleBtns.Count; i++)
|
{
|
if (jptoggleBtns[i].isOn)
|
{
|
jpCnt++;
|
}
|
jptoggleBtns[i].SetActiveIL(i < operation.goodItemList.Count);
|
}
|
|
//选满了 隐藏其他可点击
|
if (jpCnt == operation.goodItemCanChooseCount)
|
{
|
for (int i = 0; i < jptoggleBtns.Count; i++)
|
{
|
if (!jptoggleBtns[i].isOn)
|
{
|
jptoggleBtns[i].SetActiveIL(false);
|
}
|
}
|
}
|
}
|
}
|
|
void ShowZJToggle(bool ison)
|
{
|
OperationBase operationBase = null;
|
if (OperationTimeHepler.Instance.TryGetOperationTime(model.operationType, out operationBase))
|
{
|
OperationTurntable operation = operationBase as OperationTurntable;
|
|
int jpCnt = 0;
|
for (int i = 0; i < zjtoggleBtns.Count; i++)
|
{
|
if (zjtoggleBtns[i].isOn)
|
{
|
jpCnt++;
|
}
|
zjtoggleBtns[i].SetActiveIL(i < operation.superItemList.Count);
|
}
|
|
//选满了 隐藏其他可点击
|
if (jpCnt == operation.superItemCanChooseCount)
|
{
|
for (int i = 0; i < zjtoggleBtns.Count; i++)
|
{
|
if (!zjtoggleBtns[i].isOn)
|
{
|
zjtoggleBtns[i].SetActiveIL(false);
|
}
|
}
|
}
|
}
|
}
|
|
//确定后收到回报再关闭界面
|
private void operationTimeUpdateEvent(Operation type)
|
{
|
if (type == model.operationType)
|
{
|
WindowCenter.Instance.CloseIL<MergeServerTurntableSelectItemWin>();
|
}
|
}
|
}
|