跳转至

GFSkillActivationContext

API Reference / Combat / 类索引

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

技能激活上下文。 保存一次技能激活过程中的 owner、目标、位置、失败原因和项目元数据。 它只承载通用上下文,不解释成本、阵营、属性或具体玩法规则。

成员概览

类型 名称 签名
属性 skill var skill: GFSkill = null
属性 owner var owner: Object = null
属性 manual_target var manual_target: Object = null
属性 cast_center var cast_center: Variant = null
属性 resolved_center var resolved_center: Vector2 = Vector2.ZERO
属性 targets var targets: Array[Object] = []
属性 failure_reason var failure_reason: StringName = &""
属性 metadata var metadata: Dictionary = {}
方法 configure func configure( p_skill: GFSkill, p_owner: Object, p_manual_target: Object = null, p_cast_center: Variant = null, p_resolved_center: Vector2 = Vector2.ZERO, p_metadata: Dictionary = {} ) -> RefCounted:
方法 fail func fail(reason: StringName, extra_metadata: Dictionary = {}) -> void:
方法 is_ok func is_ok() -> bool:
方法 to_report func to_report() -> Dictionary:

属性

skill

  • API:public
var skill: GFSkill = null

技能实例。

owner

  • API:public
var owner: Object = null

技能拥有者。

manual_target

  • API:public
var manual_target: Object = null

手动传入的目标。

cast_center

  • API:public
var cast_center: Variant = null

原始施放中心。

结构:

  • cast_center: Variant,可为 null 或 Vector2。

resolved_center

  • API:public
var resolved_center: Vector2 = Vector2.ZERO

解析后的施放中心。

targets

  • API:public
var targets: Array[Object] = []

最终目标列表。

结构:

  • targets: Array[Object],经过项目目标规则过滤后的目标。

failure_reason

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

激活报告中的失败原因。空值表示尚未失败。

metadata

  • API:public
var metadata: Dictionary = {}

项目自定义元数据。框架不解释该字段。

结构:

  • metadata: Dictionary,项目持有的成本、日志、调试或表现数据。

方法

configure

  • API:public
func configure( p_skill: GFSkill, p_owner: Object, p_manual_target: Object = null, p_cast_center: Variant = null, p_resolved_center: Vector2 = Vector2.ZERO, p_metadata: Dictionary = {} ) -> RefCounted:

配置上下文并返回自身。

参数:

名称 说明
p_skill 技能实例。
p_owner 技能拥有者。
p_manual_target 手动传入目标。
p_cast_center 原始施放中心。
p_resolved_center 解析后的施放中心。
p_metadata 项目自定义元数据。

返回:当前上下文。

结构:

  • p_cast_center: Variant,可为 null 或 Vector2。
  • p_metadata: Dictionary,复制到上下文中供项目检查、提交或诊断使用。
  • return: GFSkillActivationContext 当前上下文。

fail

  • API:public
func fail(reason: StringName, extra_metadata: Dictionary = {}) -> void:

标记激活失败。

参数:

名称 说明
reason 失败原因。
extra_metadata 追加到上下文的元数据。

结构:

  • extra_metadata: Dictionary,复制到 metadata 中供项目诊断或串联使用。

is_ok

  • API:public
func is_ok() -> bool:

检查上下文当前是否未失败。

返回:未失败时返回 true。

to_report

  • API:public
func to_report() -> Dictionary:

创建报告字典。

返回:报告字典。

结构:

  • return: Dictionary,包含 ok、reason、skill_id、target_count 和 metadata。