跳转至

GFModifier

API Reference / Combat / 类索引

  • 路径:addons/gf/extensions/combat/attributes/gf_modifier.gd
  • 模块:Combat
  • 继承:RefCounted
  • API:public
  • 类别:值对象 (value_object)
  • 首次版本:3.17.0

属性修饰器数据类。 定义了如何修改一个通用属性(如加值、乘值)。 attribute_id 表示目标属性,source_id 表示来源,避免把“改谁”和“从哪来”混在一起。 通常由 Buff、装备或被动技能产生。

成员概览

类型 名称 签名
枚举 Type enum Type
属性 type var type: Type = Type.BASE_ADD
属性 value var value: float:
属性 attribute_id var attribute_id: StringName = &""
属性 source_id var source_id: StringName = &""
方法 create_base_add static func create_base_add( p_value: float, p_attribute_id: StringName = &"", p_source_id: StringName = &"" ) -> GFModifier:
方法 create_percent_add static func create_percent_add( p_value: float, p_attribute_id: StringName = &"", p_source_id: StringName = &"" ) -> GFModifier:
方法 create_final_add static func create_final_add( p_value: float, p_attribute_id: StringName = &"", p_source_id: StringName = &"" ) -> GFModifier:
方法 duplicate_modifier func duplicate_modifier() -> GFModifier:
方法 is_numeric_state_valid func is_numeric_state_valid() -> bool:
方法 to_dictionary func to_dictionary() -> Dictionary:
方法 apply_dictionary func apply_dictionary(data: Dictionary) -> void:
方法 from_dictionary static func from_dictionary(data: Dictionary) -> GFModifier:

枚举

Type

  • API:public
enum Type {
    ## 基础加值。
    BASE_ADD,
    ## 百分比乘区。
    PERCENT_ADD,
    ## 最终加值。
    FINAL_ADD,
}

修饰器计算类型。

属性

type

  • API:public
var type: Type = Type.BASE_ADD

修饰器类型。

value

  • API:public
  • 首次版本:3.17.0
var value: float:

修饰器的数值。

attribute_id

  • API:public
var attribute_id: StringName = &""

目标属性标识,例如 &"ATK"、&"HP"。

source_id

  • API:public
var source_id: StringName = &""

来源标识,例如 Buff ID、装备 ID 或被动技能 ID,用于查找和移除。

方法

create_base_add

  • API:public
static func create_base_add( p_value: float, p_attribute_id: StringName = &"", p_source_id: StringName = &"" ) -> GFModifier:

静态工厂方法:创建基础加值修饰器。

参数:

名称 说明
p_value 修饰器数值。
p_attribute_id 修饰器作用的属性标识。
p_source_id 修饰器来源标识。

返回:新修饰器。

create_percent_add

  • API:public
static func create_percent_add( p_value: float, p_attribute_id: StringName = &"", p_source_id: StringName = &"" ) -> GFModifier:

静态工厂方法:创建百分比加值修饰器。

参数:

名称 说明
p_value 修饰器数值。
p_attribute_id 修饰器作用的属性标识。
p_source_id 修饰器来源标识。

返回:新修饰器。

create_final_add

  • API:public
static func create_final_add( p_value: float, p_attribute_id: StringName = &"", p_source_id: StringName = &"" ) -> GFModifier:

静态工厂方法:创建最终加值修饰器。

参数:

名称 说明
p_value 修饰器数值。
p_attribute_id 修饰器作用的属性标识。
p_source_id 修饰器来源标识。

返回:新修饰器。

duplicate_modifier

  • API:public
  • 首次版本:6.0.0
func duplicate_modifier() -> GFModifier:

创建修饰器副本。

返回:新修饰器。

is_numeric_state_valid

  • API:public
  • 首次版本:8.0.0
func is_numeric_state_valid() -> bool:

检查修正器数值是否有限。

返回:最近一次 value 写入有效且当前值有限时返回 true。

to_dictionary

  • API:public
  • 首次版本:6.0.0
func to_dictionary() -> Dictionary:

转换为可序列化字典。

返回:修饰器字典。

结构:

  • return: Dictionary with type, value, attribute_id, and source_id.

apply_dictionary

  • API:public
  • 首次版本:6.0.0
func apply_dictionary(data: Dictionary) -> void:

从字典应用修饰器字段。

参数:

名称 说明
data 修饰器字典。

结构:

  • data: Dictionary with optional type, value, attribute_id, and source_id.

from_dictionary

  • API:public
  • 首次版本:6.0.0
static func from_dictionary(data: Dictionary) -> GFModifier:

从字典创建修饰器。

参数:

名称 说明
data 修饰器字典。

返回:新修饰器。

结构:

  • data: Dictionary with optional type, value, attribute_id, and source_id.