用途:构建以卡牌在区域间移动(牌库→手牌→打出→弃牌)为核心对象的游戏,如构筑类、TCG/CCG、纸牌接龙、Roguelike 卡牌游戏;也用于设计抽牌/洗牌/重洗、回合结构、卡牌费用和效果结算。不适用于以棋盘/格子状态为主的解谜,或仅附带卡牌战斗的 RPG(后者建议从 rpg 技能入手)。
主要能力:卡牌数据(id、名称、费用、类型、文本和以数据而非代码表示的效果规格);区域模型(牌库、手牌、战场、弃牌、放逐,每张牌只存在于一个区域);抽牌、洗牌与重洗(牌库空时把弃牌洗回);以状态机表示的回合阶段(重置/抽牌/主要/战斗/结束);资源系统(法力/能量/行动);效果结算(按定义顺序处理目标与触发);胜负条件;手牌布局、拖放或点击出牌、区域计数与目标提示等 UI。
使用方式:核心循环为抽牌→花费资源出牌→效果结算改变场面→结束回合(清理/弃牌)→对手或下一阶段,直到满足胜负条件。效果应作为数据列表由统一解释器处理,而非每张牌写一个函数;移动卡牌采用先移除后添加,并断言不会重复出现;需要回放或撤销时使用带种子的随机数生成器。
限制与注意:资料未提供具体安装命令、平台或收费信息。常见失败模式包括卡牌同时存在于两个区域、忘记重洗导致空牌库崩溃、每张牌单独写函数难以维护、效果顺序或同时触发不确定、未播种洗牌无法复现、缺少手牌上限或解场手段、目标选择状态泄漏等。可与其他技能组合:用 godot-resources 或 unity-scriptableobjects 定义卡牌资产,用 game-ui-ux 与 godot-ui-control 做界面,用 save-systems 做存档与回放,用 game-ai 做对手 AI。