跳到主要内容

Get 节点

GCS · Built-In Node Library

Get 节点只读战斗状态,从不改变它。19 个内置节点为图里每个数据端口提供单位、卡牌、状态、数字和集合。

面向正在连接目标、条件和数值缩放的图作者。

Get 节点用于回答当前战斗状态:谁在行动、目标的状态是什么、某个牌堆里有哪些卡、事件携带了哪些参数。它们本身从不改变战斗。它们的输出连接到 Action、Operator 和 Flow 节点的数据端口。

demo 卡牌 Rapid Fire 展示了这种分工。All Enemies 是其中的 Get 节点:它把完整敌人列表传给 Random Elements,后者在循环的每一轮里挑出 Deal Damage 要攻击的目标。

Rapid Fire 的图:All Enemies 这个 Get 节点传给 Random Elements,为每轮循环挑选伤害目标

菜单组与基类

这些节点在 Add Node 菜单中属于 Get。扩展基类 SourceNodeSelectorNode 只在你用 C# 写自定义节点时才重要。


当前战斗上下文

节点用途输入与设置输出常见搭配何时避免
Active Team读取当前正在行动的队伍TeamSwitchCondition、按队伍区分的规则需要单位引用;用 Active Unit
Active Unit读取当前正在行动的单位UnitUnit InfoDeal DamagePlay VFX明确要的是图的拥有者;用 Self Unit
Active Turn读取当前战斗回合数TurnConditionEvery N Turns、随回合成长的效果需要每个单位各自的回合计数
Self Unit读取拥有这张图的单位Unit自我增益、自伤、状态逻辑行动单位可能不是拥有者;用 Active Unit
Opponent Unit在简单一对一上下文中读取对面单位Unit基础攻击卡、敌人行动有多个敌人或目标规则很重要;用选择器或卡牌自己的目标
Player Energy读取当前能量和每回合能量CurrentPerTurn费用检查、随能量缩放的卡要改变能量;用 Change Energy

单位与状态检查

节点用途输入与设置输出常见搭配何时避免
Unit Info读取一个单位的可见信息UnitUnitSourceTeamHPMaxHPHPPercentArmorStatusesIntentIntentAmountAliveAttackedTierTagsConditionFilterBranch、敌人阶段规则要改变单位;用 Action 节点
Unit Status Stacks读取单位身上某一个状态的层数UnitUnitSourceStatusStacksCondition、消耗层数的配方、Hook 图需要单位身上的全部状态;用 Unit Info.Statuses
Status Info读取一个状态的信息StatusStacksTypeTagsFilterCondition、状态 UI 逻辑要增减层数;用 Change Status

demo 状态 Poison 的核心逻辑就来自这一节:它的每回合伤害等于自身层数,接法是 Status Info.Stacks 连进 Deal Damage.Amount。层数叠得越高,毒伤越大,其他节点不需要额外逻辑。


卡牌检查

节点用途输入与设置输出常见搭配何时避免
This Card读取这张图正在为之运行的卡CardCard InfoReplay Card、自我变形卡图不是由卡牌拥有或触发的
Card Info读取一张卡的可见信息CardCardSourceCostTypeRarityTagsKeywordsConditionFilterCard Cost Hook、卡牌联动要移动、升级或移除这张卡
Card Piles从运行时牌堆读取卡牌PileCardsFilterTakeMove CardsUpgrade Cards要的是战斗外的卡组定义;用 Deck Cards
Deck Cards从一个卡组资产读取卡牌DeckCards开局规则、卡组分析、奖励逻辑要的是当前运行时抽牌堆或手牌
Cards Played This Turn读取本回合打出的卡Cards连击计数、卡牌类型联动需要整场战斗的历史
Cards Drawn This Turn读取本回合抽到的卡Cards抽牌联动、抽牌数加成需要当前手牌内容

变量与事件数据

节点用途输入与设置输出常见搭配何时避免
Variable读取一个命名变量NameKindBattleScopeResultSet VariableBranch、随状态成长的效果前一个节点已经产出了这个值;直接连线
Event Arg从内部事件或 GES 事件读取命名参数ArgNameResultOn Internal EventOn GES Event、事件驱动的图图不是由事件入口启动的

集合

节点用途输入与设置输出常见搭配何时避免
All Enemies读取所有存活的敌方单位UnitsAoE 卡、FilterForeach应该包含友方单位;用 All Units
All Units读取场上所有单位Units全局效果、全场过滤只应影响其中一方

FilterTakeRandom ElementsSortPick Element 这类集合塑形节点列在 Operator 页,因为它们转换值,而不是读取某个特定的战斗来源。


选择来源

把设计在问的问题,对上能直接回答它的节点:

设计的问题来源
"这张卡的类型是 Attack 吗?"This CardCard Info.Type
"目标低于 50% HP 吗?"目标单位 → Unit Info.HPPercentCondition
"哪些敌人带有 Burn?"All Enemies → 按状态 Filter
"玩家能量够吗?"Player Energy.CurrentCondition
"这场战斗里它触发过吗?"打开 BattleScopeVariable
"那个事件发给我什么?"Event Arg

简单的图只用直接来源。只有来源需要缩窄、排序、随机化、计数或转换时,才加选择器和 Operator 节点。


常见错误

错误更好的做法
卡应该打它选中的目标,却用了 Active Unit用卡牌自己的目标,或入口的 target 输出
设计说的是构筑卡组数据,却读了 Card Piles对卡组资产用 Deck Cards
All Units 出发,事后再想办法撤销打到友方的部分All Enemies 出发,或先按队伍过滤
把每个来源值都存进变量除非这个值要跨入口复用,否则直接连线
在没有事件启动的图里读 Event Arg用普通数据线传值,或从 On Internal Event 启动