2025-05-18 01:04:31 +08:00

165 lines
3.8 KiB
C#

// ***********************************************************************
// Assembly : Game
// Author : Kimch
// Created : 2021-01-20
// Description :
// Last Modified By :
// Last Modified On :
// ***********************************************************************
// <copyright file= "EnergyActivityWidget" company="Kunpo"></copyright>
// <summary></summary>
// ***********************************************************************
using TMPro;
using UnityEngine;
using UnityEngine.UI;
namespace G.UI
{
/// <summary>
///
/// </summary>
public class EnergyActivityWidget : KUIWidget
{
#region Field
#pragma warning disable CS0649 // 从未对字段赋值,字段将一直保持其默认值 null
[KUIFlag]
TextMeshProUGUI _tmpTitle;
[KUIFlag]
TextMeshProUGUI _tmpTime;
[KUIFlag]
KUIList __listRewards;
[KUIFlag]
Button _btnReward;
[KUIFlag]
TextMeshProUGUI _tmpReward;
[KUIFlag]
GameObject __imgAd;
#pragma warning restore CS0649 // 从未对字段赋值,字段将一直保持其默认值 null
private int _startTimestamp;
private int _endTimestamp;
private SmartCostWidget _smartCostWidget;
#endregion
#region Method
public override void Refresh()
{
if (this.data is ActivityInfo activity)
{
__listRewards.Clear();
foreach (var reward in activity.rewardInfos)
__listRewards.GetItem<PropWidget>().SetItem(reward);
_startTimestamp = activity.startTimestamp;
_endTimestamp = activity.endTimestamp;
var today = Launch.ServerNow;
_tmpTime.text = $"活动时间:{today.AddSeconds(_startTimestamp).ToShortTimeString()}-{today.AddSeconds(_endTimestamp).ToShortTimeString()}";
UpdateView();
}
}
public void UpdateView()
{
if (this.data is ActivityInfo activity)
{
if (activity.status == 0)
{
int nowTS = Launch.TodaySeconds;
if (nowTS < _startTimestamp)
{
_btnReward.interactable = false;
_tmpReward.text = "还未开始";
__imgAd.SetActive(false);
}
else if (nowTS > _endTimestamp)
{
_btnReward.interactable = true;
_tmpReward.text = "补领";
__imgAd.SetActive(true);
_smartCostWidget.SetAdTicket(MoneyProxy.Instance.GetMoney(Item.Id.kAdTicket));
}
else
{
_btnReward.interactable = true;
_tmpReward.text = "领取";
__imgAd.SetActive(false);
}
}
else
{
_btnReward.interactable = false;
_tmpReward.text = "已领";
__imgAd.SetActive(false);
}
}
}
private void OnRewardBtnClick()
{
if (this.data is ActivityInfo activity)
{
if (activity.status != 0)
return;
int nowTS = Launch.TodaySeconds;
if (nowTS < _startTimestamp)
{
}
else if (nowTS > _endTimestamp)
{
ActivityProxy.Instance.freeEnergyActivity.GetRewards(activity.id, true,
(error, message) =>
{
if (error == 0)
{
RewardProxy.Instance.GetRewardWithUI(new Item.ItemInfo(Item.Id.kEnergy, 10),
(err, mes) =>
{
PostNotification(GlobalDefine.EVENT_MONEY_CHANGED);
});
UpdateView();
}
});
}
else
{
ActivityProxy.Instance.freeEnergyActivity.GetRewards(activity.id, false,
(error, message) =>
{
if (error == 0)
{
RewardProxy.Instance.GetRewardWithUI(new Item.ItemInfo(Item.Id.kEnergy, 10),
(err, mes) =>
{
PostNotification(GlobalDefine.EVENT_MONEY_CHANGED);
});
UpdateView();
}
});
}
}
}
#endregion
#region Unity
/// <summary>
///
/// </summary>
private void Awake()
{
SetViewData();
__listRewards.AddTemplate<PropWidget>(true);
_btnReward.onClick.AddListener(this.OnRewardBtnClick);
_smartCostWidget = __imgAd.AddComponent<SmartCostWidget>();
}
#endregion
}
}