(client) feat:健康给予,路径优化,结算界面,商店界面 (#60)

Co-authored-by: m0_75251201 <m0_75251201@noreply.gitcode.com>
Reviewed-on: http://47.107.252.169:3000/Roguelite-Game-Developing-Team/Gen_Hack-and-Slash-Roguelite/pulls/60
This commit is contained in:
2025-10-10 14:08:23 +08:00
parent 9a797479ff
commit 16b49f3d3a
1900 changed files with 114053 additions and 34157 deletions

View File

@@ -7,23 +7,22 @@ namespace Parsing
public static class Resolver
{
/// <summary>
/// 将字符串表达式解析为一个谓词函数,该函数可以用于筛选实体对象。
/// 将字符串表达式解析为一个谓词函数,该函数可以用于筛选实体对象。
/// </summary>
/// <param name="expression">表示条件的字符串表达式。格式示例:"entity.Id &gt; 10" 或 "entity.Name == 'John'"。</param>
/// <returns>返回一个 Func&lt;Entity.Entity, bool&gt; 类型的委托,表示解析后的谓词函数。</returns>
/// <exception cref="FormatException">当输入表达式的格式不正确时抛出此异常。</exception>
/// <exception cref="NotSupportedException">当表达式中包含不支持的操作符或数据类型时抛出此异常。</exception>
/// <remarks>
/// 表达式的格式必须符合以下规则:
/// - 表达式由三部分组成:属性路径、操作符和值,用空格分隔。
/// - 属性路径格式为 "entity.PropertyName",其中 PropertyName 是实体类中的一个公共属性或字段。
/// - 操作符可以是以下之一:"&gt;", "&lt;", "&gt;=", "&lt;=", "==", "!="。
/// - 值的类型必须与属性的类型匹配并且支持以下类型string, int, long, float, double, decimal, bool, DateTime, Guid 和枚举类型。
///
/// 注意事项:
/// - 字符串值需要用单引号或双引号括起来,例如 'John' 或 "John"
/// - 对于可为空类型Nullable会自动处理其底层类型的转换
/// - 字符串比较默认使用不区分大小写的 Equals 方法。
/// 表达式的格式必须符合以下规则:
/// - 表达式由三部分组成:属性路径、操作符和值,用空格分隔。
/// - 属性路径格式为 "entity.PropertyName",其中 PropertyName 是实体类中的一个公共属性或字段。
/// - 操作符可以是以下之一:"&gt;", "&lt;", "&gt;=", "&lt;=", "==", "!="。
/// - 值的类型必须与属性的类型匹配并且支持以下类型string, int, long, float, double, decimal, bool, DateTime, Guid 和枚举类型。
/// 注意事项:
/// - 字符串值需要用单引号或双引号括起来,例如 'John' 或 "John"。
/// - 对于可为空类型Nullable会自动处理其底层类型的转换
/// - 字符串比较默认使用不区分大小写的 Equals 方法
/// </remarks>
public static Func<Entity.Entity, bool> ParsePredicate(string expression)
{