165 lines
3.8 KiB
C#
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
|
|
}
|
|
}
|