109 lines
3.7 KiB
C#
109 lines
3.7 KiB
C#
using asap.core;
|
|
using DG.Tweening;
|
|
using GameCore;
|
|
using TMPro;
|
|
using UniRx;
|
|
using UnityEngine;
|
|
using UnityEngine.UI;
|
|
public class AdvertData
|
|
{
|
|
public int ID;
|
|
public int index;
|
|
public int day;
|
|
public string cdTime;
|
|
public bool isOpen;
|
|
}
|
|
public class AdvertPanel : MonoBehaviour
|
|
{
|
|
Button btn_close;
|
|
TMP_Text txt_energy, txt_money, txt_ticket;
|
|
ulong _curGold;
|
|
int _curEnergy;
|
|
int _curTicket;
|
|
protected CompositeDisposable disposables = new CompositeDisposable();
|
|
|
|
private void Awake()
|
|
{
|
|
txt_ticket = transform.Find("top_area/resource/icon_ticket/text_num").GetComponent<TMP_Text>();
|
|
txt_energy = transform.Find("top_area/resource/icon_energy/text_num").GetComponent<TMP_Text>();
|
|
txt_money = transform.Find("top_area/resource/icon_money/text_num").GetComponent<TMP_Text>();
|
|
btn_close = transform.Find("root/btn_close").GetComponent<Button>();
|
|
}
|
|
private void Start()
|
|
{
|
|
var playerData = GContext.container.Resolve<PlayerData>();
|
|
_curGold = playerData.gold;
|
|
_curEnergy = playerData.Energy;
|
|
_curTicket = GContext.container.Resolve<PlayerShopData>().GetAdticketCount();
|
|
txt_money.text = ConvertTools.GetNumberString2(_curGold);
|
|
txt_energy.text = ConvertTools.GetNumberString2(_curEnergy);
|
|
txt_ticket.text = ConvertTools.GetNumberString2(_curTicket);
|
|
btn_close.onClick.AddListener(() =>
|
|
{
|
|
GContext.Publish(new RestartShowHomeUIEvent());
|
|
UIManager.Instance.DestroyUI(UITypes.AdvertPanel);
|
|
});
|
|
GContext.OnEvent<ResAddEvent>().Where(x => x.id == 1002).Subscribe(x =>
|
|
{
|
|
GoldAddAnim();
|
|
}).AddTo(disposables);
|
|
GContext.OnEvent<ResAddEvent>().Where(x => x.id == 1001).Subscribe(x =>
|
|
{
|
|
EnergyAddAnim();
|
|
}).AddTo(disposables);
|
|
GContext.OnEvent<ResAddEvent>().Where(x => x.id == 1006).Subscribe(x =>
|
|
{
|
|
TicketAddAnim();
|
|
}).AddTo(disposables);
|
|
}
|
|
//private async System.Threading.Tasks.Task WaitForRewardPanel()
|
|
//{
|
|
// await new WaitForSeconds(0.5f);
|
|
// var rewardPanelTask = new RewardPopupData();
|
|
// GContext.Publish(rewardPanelTask);
|
|
// if (rewardPanelTask.tcs != null)
|
|
// {
|
|
// await rewardPanelTask.tcs.Task;
|
|
// }
|
|
|
|
//}
|
|
void GoldAddAnim()
|
|
{
|
|
//await WaitForRewardPanel();
|
|
DOTween.Kill("txt_money");
|
|
txt_money.text = ConvertTools.GetNumberString2(_curGold);
|
|
var EndDiamond = GContext.container.Resolve<PlayerData>().gold;
|
|
DOTween.To(() => _curGold, x => _curGold = x, EndDiamond, 1f).OnUpdate(() =>
|
|
{
|
|
txt_money.text = ConvertTools.GetNumberString2(_curGold);
|
|
}).SetId("txt_money");
|
|
}
|
|
|
|
void EnergyAddAnim()
|
|
{
|
|
//await WaitForRewardPanel();
|
|
DOTween.Kill("advert_text_energy");
|
|
txt_energy.text = ConvertTools.GetNumberString2(_curEnergy);
|
|
var EndEnergy = GContext.container.Resolve<PlayerData>().Energy;
|
|
DOTween.To(() => _curEnergy, x => _curEnergy = x, EndEnergy, 1f).OnUpdate(() =>
|
|
{
|
|
txt_energy.text = ConvertTools.GetNumberString2(_curEnergy);
|
|
}).SetId("advert_text_energy");
|
|
}
|
|
void TicketAddAnim()
|
|
{
|
|
//await WaitForRewardPanel();
|
|
DOTween.Kill("text_ticket");
|
|
txt_ticket.text = ConvertTools.GetNumberString2(_curTicket);
|
|
var Ticket = GContext.container.Resolve<PlayerShopData>().GetAdticketCount();
|
|
DOTween.To(() => _curTicket, x => _curTicket = x, Ticket, 1f).OnUpdate(() =>
|
|
{
|
|
txt_ticket.text = ConvertTools.GetNumberString2(_curTicket);
|
|
}).SetId("text_ticket");
|
|
}
|
|
private void OnDestroy()
|
|
{
|
|
disposables.Dispose();
|
|
}
|
|
}
|