This commit is contained in:
2026-04-30 19:33:16 +08:00
commit fb2252f688
556 changed files with 69721 additions and 0 deletions
@@ -0,0 +1,109 @@
using GameFramework;
namespace GeometryTD.UI
{
/// <summary>
/// 对话框显示数据。
/// </summary>
public class DialogFormRawData
{
/// <summary>
/// 模式,即按钮数量。取值 1、2、3。
/// </summary>
public int Mode
{
get;
set;
}
/// <summary>
/// 标题。
/// </summary>
public string Title
{
get;
set;
}
/// <summary>
/// 消息内容。
/// </summary>
public string Message
{
get;
set;
}
/// <summary>
/// 弹出窗口时是否暂停游戏。
/// </summary>
public bool PauseGame
{
get;
set;
}
/// <summary>
/// 确认按钮文本。
/// </summary>
public string ConfirmText
{
get;
set;
}
/// <summary>
/// 确定按钮回调。
/// </summary>
public GameFrameworkAction<object> OnClickConfirm
{
get;
set;
}
/// <summary>
/// 取消按钮文本。
/// </summary>
public string CancelText
{
get;
set;
}
/// <summary>
/// 取消按钮回调。
/// </summary>
public GameFrameworkAction<object> OnClickCancel
{
get;
set;
}
/// <summary>
/// 中立按钮文本。
/// </summary>
public string OtherText
{
get;
set;
}
/// <summary>
/// 其它按钮回调。
/// </summary>
public GameFrameworkAction<object> OnClickOther
{
get;
set;
}
/// <summary>
/// 用户自定义数据。
/// </summary>
public object UserData
{
get;
set;
}
}
}
@@ -0,0 +1,16 @@
using GeometryTD.Definition;
using UnityEngine;
namespace GeometryTD.UI
{
public class ItemDescFormRawData
{
public string Title;
public string TypeText;
public string Description;
public int Price;
public Vector2 ScreenPosition;
public TagType[] Tags;
public TagRuntimeData[] TagRuntimes;
}
}
@@ -0,0 +1,11 @@
namespace GeometryTD.UI
{
public class RewardSelectFormRawData
{
public string TipText;
public RewardSelectItemRawData[] RewardItems;
public int RefreshCost;
public bool CanRefresh;
public bool CanGiveUp;
}
}
@@ -0,0 +1,17 @@
using GeometryTD.Definition;
using UnityEngine;
namespace GeometryTD.UI
{
public class RewardSelectItemRawData
{
public TowerCompSlotType SlotType;
public string Title;
public string TypeText;
public string Description;
public RarityType Rarity;
public TagType[] Tags;
public Sprite Icon;
public TowerCompItemData SourceItem;
}
}
@@ -0,0 +1,56 @@
using System;
using GeometryTD.CustomUtility;
using GeometryTD.Definition;
namespace GeometryTD.UI
{
public static class RewardSelectItemRawDataBuilder
{
public static RewardSelectItemRawData Build(TowerCompItemData item)
{
return new RewardSelectItemRawData
{
SlotType = item.SlotType,
Title = item.Name,
TypeText = BuildTypeText(item.SlotType),
Description = BuildDescription(item),
Rarity = item.Rarity,
Tags = item.Tags != null ? (TagType[])item.Tags.Clone() : Array.Empty<TagType>(),
Icon = null,
SourceItem = item
};
}
private static string BuildTypeText(TowerCompSlotType slotType)
{
return slotType switch
{
TowerCompSlotType.Muzzle => "Muzzle Component",
TowerCompSlotType.Bearing => "Bearing Component",
TowerCompSlotType.Base => "Base Component",
TowerCompSlotType.Accessory => "Accessory",
_ => "Component"
};
}
private static string BuildDescription(TowerCompItemData item)
{
if (item is MuzzleCompItemData muzzle)
{
return ItemDescUtility.BuildMuzzleDesc(muzzle);
}
if (item is BearingCompItemData bearing)
{
return ItemDescUtility.BuildBearingDesc(bearing);
}
if (item is BaseCompItemData baseComp)
{
return ItemDescUtility.BuildBaseDesc(baseComp);
}
return string.Empty;
}
}
}