- 规范 UI 设计成为:

- UIForm 负责展示
    - Controller 负责控制
    - UseCase 负责业务逻辑
    - RawData 负责提供原始数据
    - Context 负责为 UIForm 提供数据
- 添加和补充一系列 UI 功能
This commit is contained in:
SepComet
2026-02-16 19:03:09 +08:00
parent d650dd63e7
commit 85b0205c73
251 changed files with 12705 additions and 5220 deletions
@@ -0,0 +1,86 @@
using System.Text;
using DataTable;
using Definition.DataStruct;
using Entity;
using Entity.EntityData;
namespace Game.Utility
{
public static class ItemDescUtility
{
public static string CreatePropDescription(StatModifier[] modifiers)
{
if (modifiers == null || modifiers.Length == 0)
{
return null;
}
StringBuilder sb = new StringBuilder();
foreach (StatModifier modifier in modifiers)
{
sb.Append(modifier);
sb.Append('\n');
}
return sb.ToString();
}
public static string CreateWeaponDescription(DRWeapon drWeapon)
{
if (drWeapon == null)
{
return null;
}
return CreateWeaponDescription(drWeapon.Attack, drWeapon.Cooldown, drWeapon.AttackRange, drWeapon.Modifiers);
}
public static string CreateWeaponDescription(WeaponBase weapon)
{
if (weapon == null || weapon.WeaponData == null)
{
return null;
}
return CreateWeaponDescription(weapon.WeaponData);
}
public static string CreateWeaponDescription(WeaponData weaponData)
{
if (weaponData == null)
{
return null;
}
return CreateWeaponDescription(weaponData.Attack, weaponData.Cooldown,
weaponData.AttackRange, weaponData.Modifiers);
}
public static string CreatePropDescription(PropItem prop)
{
if (prop == null)
{
return null;
}
return CreatePropDescription(prop.Modifiers);
}
private static string CreateWeaponDescription(int attack, float cooldown, float attackRange,
StatModifier[] modifiers)
{
StringBuilder sb = new StringBuilder();
sb.AppendLine($"Attack: {attack}");
sb.AppendLine($"Cooldown: {cooldown}");
sb.AppendLine($"Range: {attackRange}");
string modifiersDesc = CreatePropDescription(modifiers);
if (!string.IsNullOrEmpty(modifiersDesc))
{
sb.Append(modifiersDesc);
}
return sb.ToString();
}
}
}
@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: dcfdad321f8ce314fa013b885c2a78f7
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant: