用途:为 Godot 项目搭建完整的 RPG 属性体系,包括基础属性(如力量、敏捷、智力)、等级成长、可叠加修饰符与战斗伤害计算。
主要能力:以 Resource 模板定义基础属性、成长曲线与属性继承;运行时 StatsComponent 负责实例化模板、增删修饰符、发出信号并按需即时计算派生属性;状态效果以 StatusEffectData 资源定义,类型分为 ADDITIVE(加算)、MULTIPLICATIVE(乘算)、OVERRIDE(覆盖);伤害公式集中在 RefCounted 工具中,供玩家与 NPC 共用;支持升级经验曲线、存档序列化、装备对比提示与 UI 信号同步。
使用方式:按场景选用脚本——基础属性用 base_stats_resource.gd,运行时叠加与重算用 stats_component_reactive.gd 与 stat_modifier_stacking.gd,增益/减益数据用 status_effect_data.gd,战斗数学用 damage_formula_handler.gd,升级用 exp_progression_resource.gd 与 level_up_system.gd,存档用 persistent_character_stats.gd,UI 同步用 dynamic_stat_label_sync.gd。增益以 Resource 方式编写,例如 StatusEffectData.new() 并设置 type、attribute、value、duration,通过 stats_component_reactive.gd 应用,以便每次变更只重算一次派生属性。
适用场景:动作 RPG、Roguelike、回合制战斗等需要属性、装备加成与派生战斗数值的项目。
限制与注意:百分比必须用浮点避免截断;修改生命值须发出信号;修饰符需唯一 ID 才可移除;经验公式需设成长上限以免溢出;派生值需钳制;不得在 _process() 中做重算,应基于修饰符或基础值变化触发;属性名用 StringName 或枚举而非硬编码;临时运行时增益在序列化前须剥离;伤害计算不得写在角色脚本内。前置技能包括项目基础、GDScript 掌握、Resource 数据模式与信号架构;官方文档与参考文件可按需查阅,暂未提供具体价格与平台信息。