shaoxiadiablo/Assets/AGame/Scripts/UI/QingMingWindow/QingMingWindow.Recharge.cs

248 lines
6.4 KiB
C#
Raw Normal View History

2025-05-18 01:04:31 +08:00
// ***********************************************************************
// Assembly : Game
// Author : Kimch
// Created : 2022-03-21
// Description :
// Last Modified By :
// Last Modified On :
// ***********************************************************************
// <copyright file= "QingMingWindow" company="Kunpo"></copyright>
// <summary></summary>
// ***********************************************************************
using TMPro;
using UnityEngine;
using UnityEngine.UI;
namespace G.UI
{
partial class QingMingWindow
{
class RechargeRewad : KUIWidget
{
#region Fide
#pragma warning disable CS0649 // 从未对字段赋值,字段将一直保持其默认值 null
[KUIFlag]
KUIList __listRewards;
[KUIFlag]
Button _btnReceive;
[KUIFlag]
TextMeshProUGUI _tmpPrice;
[KUIFlag]
TextMeshProUGUI _tmpLevel;
#pragma warning restore CS0649 // 从未对字段赋值,字段将一直保持其默认值 null
private bool _isShowBtn;
#endregion
#region Mothod
public override void Refresh()
{
if (this.data is ActivitySubInfo subInfo)
{
var mission = MissionProxy.Instance.GetMission(subInfo.item.typeArgs[0]);
if (mission.isRewarded)
{
_tmpPrice.text = "已领取";
_btnReceive.interactable = false;
}
else if(mission.isRewarding)
{
_tmpPrice.text = "领取";
_btnReceive.interactable = true;
}
else
{
if (_isShowBtn)
{
_tmpPrice.text = "去完成";
_btnReceive.interactable = _isShowBtn;
}
else
{
_tmpPrice.text = "未完成";
_btnReceive.interactable = _isShowBtn;
}
}
__listRewards.Clear();
foreach (var itemInfo in mission.rewards)
{
__listRewards.GetItem<PropWidget>().SetItem(itemInfo);
}
_tmpLevel.text = ((mission.id % 100) + 1).ToString();
}
}
public void ChangeBtnShow(bool isShow)
{
_isShowBtn = isShow;
}
private void OnReceiveBtnClick() //获得奖励
{
if (this.data is ActivitySubInfo subInfo)
{
QingMingActivity.Instance.RechargrReward(subInfo.id, (error, message) =>
{
if (error == 0)
{
GetWindow<QingMingWindow>().RefreshRechargePanle();
PostNotification(GlobalDefine.EVENT_MONEY_CHANGED, "Recharge", "QingMing_w_Btn");
KStatistics.Instance.ReportEvent_Activity("qingming", 4, subInfo.id, "", "", 1, "", 0, 0);//埋点
}
else
{
GetWindow<QingMingWindow>().OpenGetMoneyPathPanle();
}
});
}
SoundProxy.PlayFxAsync(GlobalDefine.BUTTON_CLICK_SOUND);
}
private void OpenGetPetPanle()
{
var pet = PetProxy.Instance.GetPet(13020);
OpenWindow<UI.GetPetBox>(pet);
}
#endregion
#region Unity
private void Awake()
{
SetViewData();
_btnReceive.onClick.AddListener(this.OnReceiveBtnClick);
__listRewards.AddTemplate<PropWidget>(true);
}
#endregion
}
class RechargeRecord : KUIWidget
{
#region Field
#pragma warning disable CS0649 // 从未对字段赋值,字段将一直保持其默认值 null
Slider _slider;
[KUIFlag]
TextMeshProUGUI _tmpLevel;
[KUIFlag]
TextMeshProUGUI _tmpExp;
#pragma warning restore CS0649 // 从未对字段赋值,字段将一直保持其默认值 null
#endregion
#region Method
public override void Refresh()
{
if (this.data is Mission mission)
{
_tmpLevel.text = ((mission.id %100)+1).ToString();
_slider.value = mission.progress;
if (mission.curValue > mission.maxValue)
{
_tmpExp.text = $"{mission.maxValue}/{mission.maxValue}";
}
else
{
_tmpExp.text = $"{mission.curValue}/{mission.maxValue}";
}
}
}
#endregion
#region Unity
private void Awake()
{
SetViewData();
_slider = GetComponent<Slider>();
}
#endregion
}
class Recharge : KUIWidget
{
#region Field
#pragma warning disable CS0649 // 从未对字段赋值,字段将一直保持其默认值 null
[KUIFlag]
TextMeshProUGUI _tmpPropNumber;
[KUIFlag]
KUIList __listRecharges;
[KUIFlag]
TextMeshProUGUI _tmpTime4;
[KUIFlag]
KUIList __listExp;
#pragma warning restore CS0649 // 从未对字段赋值,字段将一直保持其默认值 null
#endregion
#region Method
public void RefreshView()
{
var propCount = ItemProxy.Instance.GetPropCount(3001);
_tmpPropNumber.text = propCount.ToString();
_tmpTime4.text = QingMingActivity.Instance.sigeInSurplusTime;
__listRecharges.Clear();
var subInfos = QingMingActivity.Instance.rechargeActivityInfo.subInfos;
bool showFirstBtn = true;
for (int i = 0; i < subInfos.Length; i++)
{
var mission = MissionProxy.Instance.GetMission(subInfos[i].item.typeArgs[0]);
if (mission.isRewarding)
{
var recharge = __listRecharges.GetItem<RechargeRewad>();
recharge.SetData(subInfos[i]);
}
else if(!mission.isRewarded)
{
var recharge = __listRecharges.GetItem<RechargeRewad>();
recharge.ChangeBtnShow(showFirstBtn);
recharge.SetData(subInfos[i]);
showFirstBtn = false;
}
}
for (int i = 0; i < subInfos.Length; i++)
{
var mission = MissionProxy.Instance.GetMission(subInfos[i].item.typeArgs[0]);
if (mission.isRewarded)
{
var recharge = __listRecharges.GetItem<RechargeRewad>();
recharge.SetData(subInfos[i]);
}
}
__listExp.Clear();
for (int i = 0; i < subInfos.Length; i++)
{
var mission = MissionProxy.Instance.GetMission(subInfos[i].item.typeArgs[0]);
if (!mission.isRewarding && !mission.isRewarded)
{
__listExp.GetItem().SetData(mission);
break;
}
if (i == subInfos.Length-1)
{
__listExp.GetItem().SetData(mission);
}
}
}
public void RefreshTimer()//刷新时间
{
_tmpTime4.text = QingMingActivity.Instance.sigeInSurplusTime;
}
#endregion
#region Unity
private void Awake()
{
SetViewData();
__listRecharges.AddTemplate<RechargeRewad>(true);
__listExp.AddTemplate<RechargeRecord>(true);
}
private void OnEnable()
{
RefreshView();
}
#endregion
}
}
}