204 lines
3.6 KiB
C#
Raw Normal View History

2025-05-18 01:04:31 +08:00
// ***********************************************************************
// Assembly : Unity
// Author : Kimch
// Created : 2017-11-11
//
// Last Modified By : Kimch
// Last Modified On :
// ***********************************************************************
// <copyright file= "ToastBox" company=""></copyright>
// <summary></summary>
// ***********************************************************************
using System.Collections.Generic;
namespace G.UI
{
public partial class ToastBox : KUIWindow
{
#region Static API
public static void ShowText(string text)
{
if (_Instance is null)
{
OpenWindow<ToastBox>();
}
_Instance.AddInfo(0, text);
}
public static void ShowText(int textId)
{
if (_Instance is null)
{
OpenWindow<ToastBox>();
}
_Instance.AddInfo(0, KLocalization.GetLocalString(textId));
}
public static void ShowText(string text, int type)
{
if (_Instance is null)
{
OpenWindow<ToastBox>();
}
_Instance.AddInfo(type, text);
}
public static void ShowEffect(string text)
{
if (_Instance is null)
{
OpenWindow<ToastBox>();
}
_Instance.AddInfo(7, text);
}
public static void ShowCombatValue(int cur, int add, int index)
{
if (_Instance is null)
{
OpenWindow<ToastBox>();
}
_Instance.AddInfo(2, cur, add);
}
public static void ShowEquipment(string name, int quality, string[] iconInfo)
{
if (_Instance is null)
{
OpenWindow<ToastBox>();
}
_Instance.AddInfo(3, name, quality, iconInfo);
}
/// <summary>
///
/// </summary>
/// <param name="name"></param>
/// <param name="amount"></param>
/// <param name="quality"></param>
/// <param name="iconInfo"></param>
public static void ShowProp(string name, int amount, int quality, string[] iconInfo)
{
if (_Instance is null)
{
OpenWindow<ToastBox>();
}
_Instance.AddInfo(8, name, amount, quality, iconInfo);
}
#endregion
#region Model
private struct ToastInfo
{
public int type;
public string content;
public string[] iconInfo;
public int arg1;
public int arg2;
}
private readonly Queue<ToastInfo> _infoQueue = new Queue<ToastInfo>();
private void AddInfo(int type, string text)
{
AddInfo(new ToastInfo
{
type = type,
content = text,
});
}
private void AddInfo(int type, string text, int quality)
{
AddInfo(new ToastInfo
{
type = type,
content = text,
arg1 = quality,
});
}
private void AddInfo(int type, string text, int quality, string[] icon)
{
AddInfo(new ToastInfo
{
type = type,
content = text,
arg1 = quality,
iconInfo = icon,
});
}
private void AddInfo(int type, string text, int amount, int quality, string[] icon)
{
AddInfo(new ToastInfo
{
type = type,
content = text,
arg1 = amount,
arg2 = quality,
iconInfo = icon,
});
}
private void AddInfo(int type, int zhanli, int zhanliAdd)
{
AddInfo(new ToastInfo
{
type = type,
arg1 = zhanli,
arg2 = zhanliAdd,
});
}
private void AddInfo(ToastInfo info)
{
_infoQueue.Enqueue(info);
}
private void RefreshModel()
{
}
#endregion
#region Constructor
private static ToastBox _Instance;
public ToastBox()
: base(UILayer.kPopup, UIMode.kNone)
{
uiPath = "ui_w_toast";
_Instance = this;
}
#endregion
#region Method
public override void Awake()
{
InitView();
}
public override void OnEnable()
{
RefreshModel();
RefreshView();
}
public override void Update()
{
UpdateView();
}
#endregion
}
}