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

139 lines
3.7 KiB
C#

// ***********************************************************************
// Assembly : Game
// Author : Kimch
// Created : 2020-10-09
// Description :
// Last Modified By :
// Last Modified On :
// ***********************************************************************
// <copyright file= "RewardWindow" company="Kunpo"></copyright>
// <summary></summary>
// ***********************************************************************
using System.Collections.Generic;
namespace G.UI
{
/// <summary>
/// 通用领取奖励界面
/// </summary>
public partial class RewardWindow : KUIWindow
{
/// <summary>
///
/// </summary>
public class RewardData
{
public readonly List<Item.ItemInfo> items = new List<Item.ItemInfo>(16);
public Callback2 callback;
public int maxCount = 12;
public bool eqFilter = true;
/// <summary>
/// 完成
/// </summary>
public void Complete()
{
callback?.Invoke(0, null);
}
/// <summary>
///
/// </summary>
public void Clear()
{
items.Clear();
}
}
private static RewardData _Default = new RewardData();
#region Constructor
public RewardWindow()
: base(UILayer.kPopup, UIMode.kNone)
{
uiPath = "ui_w_reward";
}
#endregion
#region Method
/// <summary>
///
/// </summary>
/// <param name="itemInfo"></param>
/// <param name="callback"></param>
public static void ShowReward(Item.ItemInfo itemInfo, Callback2 callback)
{
_Default.Clear();
_Default.items.Add(itemInfo);
_Default.callback = callback;
OpenWindow<RewardWindow>(_Default);
}
/// <summary>
/// 可以处理堆叠
/// </summary>
/// <param name="itemInfos"></param>
/// <param name="callback"></param>
public static void ShowRewards(IList<Item.ItemInfo> itemInfos, Callback2 callback)
{
_Default.Clear();
_Default.callback = callback;
Item.ItemInfo.Combine(itemInfos, _Default.items);
OpenWindow<RewardWindow>(_Default);
}
public static void ShowRewards(IList<Item.ItemInfo> itemInfos, bool combin, Callback2 callback)
{
_Default.Clear();
_Default.callback = callback;
if (combin)
Item.ItemInfo.Combine(itemInfos, _Default.items);
else
_Default.items.AddRange(itemInfos);
OpenWindow<RewardWindow>(_Default);
}
public static void ShowBox(Item.ItemInfo itemInfo, Callback2 callback)
{
_Default.Clear();
_Default.items.Add(itemInfo);
_Default.callback = callback;
OpenWindow<OpenBoxWindow>(_Default);
}
public static void ShowBoxs(IList<Item.ItemInfo> itemInfos, Callback2 callback)
{
_Default.Clear();
_Default.callback = callback;
for (int i = 0; i < itemInfos.Count; i++)
{
_Default.items.Add(itemInfos[i]);
}
OpenWindow<OpenBoxWindow>(_Default);
}
#endregion
#region Unity
/// <summary>
///
/// </summary>
public override void Awake()
{
InitView();
}
/// <summary>
///
/// </summary>
public override void OnEnable()
{
RefreshView();
}
#endregion
}
}