内置节点库
GCS 内置 140+ FlowGraph 节点,分布在 Add Node 菜单的九个组里。本页按创作目标整理这些节点,帮助你快速定位合适的节点家族。
面向已经明确卡牌、状态或敌人行为,并想快速找到节点名的内容作者。把这一页当作内置节点集的索引。分组表说明各节点家族负责的创作问题;各详情页列出每个节点的输入、输出、常见搭配,以及换用其他节点更合适的边界。
这里的每个名字都是 Add Node 菜单名,与 FlowGraph 窗口里的拼写完全一致。实际图会混用多个节点家族。demo 卡牌 Poison Arrow 从一个 Entry 出发,用两个 Action 节点完成玩法工作,再用 FX 节点组成的效果块表现每次状态变化:

MutatorNode、SourceNode、SelectorNode 这类扩展基类只在你用 C# 编写自定义节点时才重要。那部分 API 在自定义节点。
九个菜单组
| 组 | 详情页 | 想做这件事时用它…… |
|---|---|---|
| Entry | 入口与 Hook | 在战斗、回合、卡牌、单位、状态、能量或事件时机之后启动图 |
| Hook | 入口与 Hook | 在 GCS 提交某个数值前拦截它、修改它或取消它 |
| Action | Action 节点 | 改变战斗状态:伤害、HP、护甲、能量、卡牌、状态、变量、回合、单位 |
| Get | Get 节点 | 读取战斗状态:单位、卡牌、状态、牌堆、变量、事件参数 |
| Operator | Flow、Operator、Intent 与 Event 节点 | 计算、比较、过滤、排序、选取和转换值 |
| Flow | Flow、Operator、Intent 与 Event 节点 | 用分支、循环、序列、选择、等待和 switch 组织执行顺序 |
| FX | FX 与表现节点 | 请求 VFX、SFX、动画、浮动文字、单位移动和镜头反馈 |
| Intent | Flow、Operator、Intent 与 Event 节点 | 构建敌人的意图预览和行为模式 |
| Event | Flow、Operator、Intent 与 Event 节点 | 触发(Raise)GCS 内部事件或 GES 事件 |
Group 是唯一一个不从此菜单添加的内置节点。选中两个或多个节点并按 Ctrl+G,即可把它们打包成一个可折叠的 Group;它随 Flow 节点一并介绍。
四个详情页共用同一种表格格式。每一行给出菜单名、玩法职责、通常要配置的输入与设置、向后传递的输出、常见搭配节点,以及一条"何时避免"的边界,帮助图保持语义准确。
全部内置节点,按组列出
Action(27 个)
Add Cards, Cancel Hook, Change Armor, Change Energy, Change HP, Change Status, Deal Damage, Despawn Unit, Draw Cards, End Turn, Extra Turn, Kill Unit, Modify Card Cost, Move Cards, Play Card, Reapply Status, Remove Cards, Remove Statuses, Replay Card, Revive Unit, Set Variable, Shuffle Draw Pile, Skip Next Turn, Spawn Unit, Transform Card, Upgrade Cards, Write Hook.
Entry(33 个)
On Armor Gained, On Armor Lost, On Attack Taken, On Battle End, On Battle Start, On Card Added To Deck, On Card Added To Hand, On Card Discarded, On Card Drawn, On Card Exhausted, On Card Played, On Card Retained, On Damage Dealt, On Damage Taken, On Discard Phase, On Draw Phase, On Draw Pile Shuffled, On Enemy Behavior Start, On Energy Gained, On Energy Spent, On GES Event, On HP Gained, On HP Lost, On Internal Event, On Status Expired, On Status Inflicted, On Status Received, On Status Removed, On Status Stacks Changed, On Turn End, On Turn Start, On Unit Died, On Unit Spawned.
Hook(18 个)
Armor Gain Hook, Armor Loss Hook, Armor Reset Hook, Attack Taken Hook, Card Cost Hook, Card Playable Hook, Damage Dealt Hook, Damage Taken Hook, Draw Count Hook, Energy Gain Hook, Energy Per Turn Hook, Energy Spend Hook, Hand Size Hook, HP Gain Hook, HP Loss Hook, Inflict Status Hook, Receive Status Hook, Status Damage Hook.
Get(19 个)
Active Team, Active Turn, Active Unit, All Enemies, All Units, Card Info, Card Piles, Cards Drawn This Turn, Cards Played This Turn, Deck Cards, Event Arg, Opponent Unit, Player Energy, Self Unit, Status Info, This Card, Unit Info, Unit Status Stacks, Variable.
Operator(22 个)
Clamp, Condition, Constant, Contains, Convert, Count, Exclude, Filter, Is Empty, Logic, Make Collection, Math Binary, Math Unary, Merge Collections, Pick Element, Random, Random Elements, Ref Equal, Select, Shuffle, Sort, Take.
Flow(10 个)
Branch, Choice, Delayed Trigger, Foreach, Gate, Loop, Sequence, Switch, Wait, While.
FX(7 个)
Flash Unit, Play Animation, Play SFX, Play VFX, Shake Camera, Show Floating Text, Slide Unit.
Intent(6 个)
Every N Turns, HP Threshold Pattern, Leaf Intent, Once Per Battle, Sequence Pattern, Weighted Random Pattern.
Event(2 个)
Raise GES Event, Raise Internal Event.
Group(1 个)
Group。通过选中节点并按 Ctrl+G 创建,不从 Add Node 菜单添加。
选能直说本意的节点
优先选择直接描述玩家可见行为的节点。两个节点可以在屏幕上打出同一个数字,对规则引擎却意味着完全不同的事:
| 目标 | 从这里开始 | 不要从这里开始 |
|---|---|---|
| 造成伤害 | Deal Damage | Change HP,除非设计明确要绕过伤害规则 |
| 治疗单位 | 正数 Amount 的 Change HP | 负数的 Deal Damage |
| 增减状态层数 | Change Status | 直接改变量 |
| 动态改变卡牌费用 | Card Cost Hook 加 Write Hook | Modify Card Cost,除非你要的是定时修正 |
| 在值改变之后响应 | Entry 节点 | 从不写入的 Hook 节点 |
| 在值提交之前改它 | Hook 节点加 Write Hook | 事后才触发的 Entry 节点 |
区别之所以重要,是因为 Hook、护甲和状态只会在对应管线中参与结算。Deal Damage 会经过这些规则;Change HP 则用于绕过伤害管线、直接改变 HP。
自定义节点进的是同一个菜单
自定义节点和内置节点并排出现在同一个 Add Node 菜单里。一个自定义节点继承某个 authoring 基类,声明 [Serializable],并挂上 [FlowNode(category, displayName)]。当节点行为接近某个已有家族时复用已有 category;只有它代表新的创作概念时才新增 category。
自定义端口的命名沿用内置节点的词汇:Target、Amount、Cards、Status、Duration、Result、Body、Done。一个泄漏序列化细节或运行时类名的端口名,会逼着以后的每个作者用 C# 思维而不是卡牌设计思维来读图。完整创作契约见自定义节点。