139 lines
3.7 KiB
C#
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
|
|
}
|
|
}
|