shaoxiadiablo/Assets/AGame/Scripts/UI/WomanWindow/WomanWindow.Conversion.cs

259 lines
6.9 KiB
C#
Raw Normal View History

2025-05-18 01:04:31 +08:00
// ***********************************************************************
// Assembly : Game
// Author : Kimch
// Created : 2022-02-14
// Description :
// Last Modified By :
// Last Modified On :
// ***********************************************************************
// <copyright file= "WomanWindow" company="Kunpo"></copyright>
// <summary></summary>
// ***********************************************************************
using TMPro;
using UnityEngine;
using UnityEngine.UI;
namespace G.UI
{
partial class WomanWindow
{
/// <summary>
/// 兑换栏
/// </summary>
class ConversionWidget : KUIWidget
{
#region Fide
#pragma warning disable CS0649 // 从未对字段赋值,字段将一直保持其默认值 null
[KUIFlag]
Image _imgIcon;
[KUIFlag]
TextMeshProUGUI _tmpPrice;
[KUIFlag]
KUIList __listRewards;
[KUIFlag]
Button _btnExchange;
[KUIFlag]
TextMeshProUGUI _tmpDescription;
#pragma warning restore CS0649 // 从未对字段赋值,字段将一直保持其默认值 null
#endregion
#region Method
public override void Refresh()
{
if (this.data is ActivitySubInfo subInfo)
{
_tmpDescription.text = $"本期兑换{subInfo.curValue}/{subInfo.maxValue}";
if (subInfo.curValue >= subInfo.maxValue)
{
_tmpDescription.color = new Color32(255, 182, 91, 255);
_tmpPrice.text = "已兑换";
_tmpPrice.color = Color.white;
_btnExchange.interactable = false;
}
else
{
_tmpDescription.color = Color.white;
_btnExchange.interactable = true;
var propCostCount = subInfo.item.typeArgs[1];
var propCount = ItemProxy.Instance.GetPropCount(3000);
_tmpPrice.text = propCostCount.ToString();
if (propCostCount <= propCount)
{
_tmpPrice.color = Color.white;
}
else
{
_tmpPrice.color = Color.red;
}
}
if (_imgIcon)
{
var prop = ItemProxy.Instance.GetStaticItem<ItemProp>(subInfo.item.typeArgs[0]);
var icon = ItemProxy.Instance.GetStaticItem<ItemIcon>(prop.iconId);
IconProxy.Instance.SetSprite(_imgIcon, icon.spriteInfo);
}
__listRewards.Clear();
foreach (var itemInfo in subInfo.rewardInfos)
{
__listRewards.GetItem<PropWidget>().SetItem(itemInfo);
}
}
}
private void OnExchangeBtnCilck() //兑换
{
if (this.data is ActivitySubInfo subInfo)
{
WomenActivity.Instance.Exchange(subInfo.id, (error, message) =>
{
if (error ==0)
{
GetWindow<WomanWindow>().RefreshConversionPanle();
//根据到时是否需要,暂测试使用
PostNotification(GlobalDefine.EVENT_MONEY_CHANGED, "Exchange", "Women_w_Btn");
}
else
{
ToastBox.ShowText(message);
}
});
}
}
#endregion
#region Unity
private void Awake()
{
SetViewData();
_btnExchange.onClick.AddListener(this.OnExchangeBtnCilck);
__listRewards.AddTemplate<PropWidget>(true);
}
#endregion
}
/// <summary>
/// 兑换界面
/// </summary>
class Conversion : KUIWidget
{
#region Auto Generate
#pragma warning disable CS0649 // 从未对字段赋值,字段将一直保持其默认值 null
[KUIFlag]
Button _btnSignMission;//打开任务
[KUIFlag]
KUIList __listConversion;
[KUIFlag]
Button _btnGetPath;//打开获取路径
[KUIFlag]
TextMeshProUGUI _tmpPropNumber;
[KUIFlag]
Button _btnIntoLevel;//进入副本
[KUIFlag]
TextMeshProUGUI _tmpLastTime;
[KUIFlag]
TextMeshProUGUI _tmpTime2;
#pragma warning restore CS0649 // 从未对字段赋值,字段将一直保持其默认值 null
#endregion
#region Method
/// <summary>
/// 刷新兑换界面
/// </summary>
public void RefreshView()
{
RefreshExchange();
var propCount = ItemProxy.Instance.GetPropCount(3000);
_tmpPropNumber.text = propCount.ToString();
var infoTime = TimeProxy.Instance.GetTimes(TimeProxy.);
_tmpLastTime.text = "今日剩余次数:" + infoTime;
if (infoTime>0)
{
_tmpLastTime.color = Color.white;
}
else
{
_tmpLastTime.color = Color.red;
}
}
public void RefreshTimer()//刷新时间
{
if (_tmpTime2)
{
_tmpTime2.text = WomenActivity.Instance.exchangeSurplusTime;
}
}
public void RefreshExchange()//兑换栏
{
__listConversion.Clear();
var exchange = WomenActivity.Instance.exchangeActivityInfo.subInfos;
foreach (var subInfo in exchange)//未兑换为
{
if (subInfo.curValue < subInfo.maxValue)
{
__listConversion.GetItem().SetData(subInfo);
}
}
foreach (var subInfo in exchange)//已兑换完
{
if (subInfo.curValue >= subInfo.maxValue)
{
__listConversion.GetItem().SetData(subInfo);
}
}
}
private void OnSignMissionBtnClick()//打开任务
{
if (WomenActivity.Instance.isSigeInActivityEnd)
{
ToastBox.ShowText("活动已结束");
}
else
{
GetWindow<WomanWindow>().OpenMissionPanle();
}
}
private void OnGetPathBtnClick()//打开获取路径
{
GetWindow<WomanWindow>().OpenGetPathPanle();
}
private void OnIntoLevelBtnClick()//挑战副本
{
if (TimeProxy.Instance.GetTimes(TimeProxy.) >0)
{
CloseWindow<WomanWindow>();
LevelProxy.Instance.StartActicityLevel(40000);
TimeProxy.Instance.CostTimes(TimeProxy.);
}
else
{
#if UNITY_EDITOR
LevelProxy.Instance.StartActicityLevel(40000);
#else
#endif
ToastBox.ShowText("今日剩余挑战次数不足");
}
}
public void CloseGetPropBtn()//关闭打开任务和获取途径的按钮
{
_btnGetPath.gameObject.SetActive(false);
_btnSignMission.gameObject.SetActive(false);
_btnIntoLevel.gameObject.SetActive(false);
}
#endregion
#region Unity
private void Awake()
{
SetViewData();
__listConversion.AddTemplate<ConversionWidget>(true);
_btnSignMission.onClick.AddListener(this.OnSignMissionBtnClick);
_btnGetPath.onClick.AddListener(this.OnGetPathBtnClick);
_btnIntoLevel.onClick.AddListener(this.OnIntoLevelBtnClick);
}
private void OnEnable()
{
RefreshView();
}
#endregion
}
}
}