using System.Linq;
using UnityEngine;
using UnityEngine.UI;
///
/// 淘金自动
///
public class GoldRushAutoWin : UIBase
{
[SerializeField] ScrollerController autoScroller;
[SerializeField] Toggle autoRefreshToggle;
[SerializeField] Button freeBtn;
[SerializeField] Transform notFreeGo;
[SerializeField] Button buyBtn;
[SerializeField] Text buyText;
[SerializeField] Text buyTipsText;
[SerializeField] Button autoBtn;
[SerializeField] Text autoText;
[SerializeField] Text timeText;
protected override void InitComponent()
{
freeBtn.AddListener(UseFree);
buyBtn.AddListener(Buy);
autoBtn.AddListener(Auto);
autoRefreshToggle.onValueChanged.AddListener((value)=>
{
autoRefreshToggle.isOn = value;
GoldRushManager.Instance.isAutoRefreshItem = autoRefreshToggle.isOn;
});
}
protected override void OnPreOpen()
{
GlobalTimeEvent.Instance.secondEvent += OnSecondEvent;
GoldRushManager.Instance.OnGoldRushInfoEvent += OnGoldRushInfoEvent;
autoScroller.OnRefreshCell += OnRefreshCell;
Display();
}
protected override void OnPreClose()
{
GlobalTimeEvent.Instance.secondEvent -= OnSecondEvent;
GoldRushManager.Instance.OnGoldRushInfoEvent -= OnGoldRushInfoEvent;
autoScroller.OnRefreshCell -= OnRefreshCell;
}
void Display()
{
CreateScroller();
autoRefreshToggle.isOn = GoldRushManager.Instance.isAutoRefreshItem;
DisplayBtns();
}
void CreateScroller()
{
autoScroller.Refresh();
for (int i = 0; i < GoldRushManager.Instance.autoRefreshItemIDs.Length; i++)
{
autoScroller.AddCell(ScrollerDataType.Header, i);
}
autoScroller.Restart();
}
void OnRefreshCell(ScrollerDataType type, CellView cell)
{
var _cell = cell as GoldRushAutoCell;
_cell.Display(cell.index);
}
void DisplayBtns()
{
var endTime = GoldRushManager.Instance.housekeeperEndTime;
if (endTime == 0)
{
freeBtn.SetActive(true);
notFreeGo.SetActive(false);
}
else if (TimeUtility.AllSeconds >= endTime)
{
//已过期
freeBtn.SetActive(false);
notFreeGo.SetActive(true);
//购买
buyBtn.SetActive(true);
buyTipsText.text = Language.Get("GoldRush45", GoldRushManager.Instance.buyAutoDaysList[0]);
RechargeManager.Instance.TryGetOrderInfo(GoldRushManager.Instance.buyAutoCTGIDList[0], out var orderInfo);
buyText.text = Language.Get("PayMoneyNum", orderInfo.PayRMBNumOnSale);
autoBtn.SetActive(false);
}
else
{
freeBtn.SetActive(false);
notFreeGo.SetActive(true);
//续费
buyBtn.SetActive(true);
buyTipsText.text = "";
buyText.text = Language.Get("GoldRush27");
autoBtn.SetActive(true);
autoText.text = Language.Get(GoldRushManager.Instance.isOpenAuto ? "GoldRush46" : "GoldRush28");
timeText.text = Language.Get("GoldRush29") + TimeUtility.SecondsToShortDHMS(endTime - TimeUtility.AllSeconds);
}
}
void OnSecondEvent()
{
var endTime = GoldRushManager.Instance.housekeeperEndTime;
if (endTime > 0 && TimeUtility.AllSeconds < endTime)
{
timeText.text = Language.Get("GoldRush29") + TimeUtility.SecondsToShortDHMS(endTime - TimeUtility.AllSeconds);
}
}
void UseFree()
{
if (GoldRushManager.Instance.housekeeperEndTime != 0)
return;
ConfirmCancel.ShowPopConfirm(Language.Get("Mail101"),
Language.Get("GoldRush47"), (bool isOK) =>
{
if (isOK)
{
var pack = new CB039_tagCSGoldRushAutoFreeUse();
GameNetSystem.Instance.SendInfo(pack);
}
});
}
void Buy()
{
var endTime = GoldRushManager.Instance.housekeeperEndTime;
if (endTime > 0 && TimeUtility.AllSeconds < endTime)
{
//续费
UIManager.Instance.OpenWindow();
}
else
{
//购买
RechargeManager.Instance.CTG(GoldRushManager.Instance.buyAutoCTGIDList[0]);
}
}
void Auto()
{
if (GoldRushManager.Instance.isOpenAuto)
{
GoldRushManager.Instance.StopAutoWorking();
}
else
{
GoldRushManager.Instance.StartAutoWorking();
}
autoText.text = Language.Get(GoldRushManager.Instance.isOpenAuto ? "GoldRush46" : "GoldRush28");
SysNotifyMgr.Instance.ShowTip(GoldRushManager.Instance.isOpenAuto ? "GoldRush11" : "GoldRush12");
CloseWindow();
}
void OnGoldRushInfoEvent()
{
DisplayBtns();
}
}