agentleFS
limoaCatherinelimoaCatherine/game-studio-harness/skills/encounter-script/SKILL.md

encounter-script

Skill4 starsChanged 53 days agoMITView on GitHub

编排遭遇波次/触发/重置/教学序,控制同屏预算与失败可读性。触发:遭遇脚本、encounter、波次、刷新、脱战重置、教学遭遇。

The file

Files
SKILL.md

遭遇脚本怎么排

何时用

  • 关卡遇敌要可摆进关的脚本
  • 压力曲线过平或过尖,或多波次触发衔接乱
  • 要给 AI/数值的组成表与刷新点
  • 白盒已锁空间,需把遇敌意图写实

怎么做

1. 定意图与预算(对齐目标 + 白盒)

做

  1. 意图句:教学/检验/表演/资源交换/门控;挂 level-goals-spec 目标 id 与 combat-flow-design 节奏段 id。
  2. 预算表:same_screen_cap|new_mechanic_count|duration_sec_band|intensity(conserv/std/high)——档位向用户索取。
  3. 学习目标一句 + 退化键(风筝点/教具怪/可跳过精英)。
  4. 可读上限:新单位种类+新弹道+新地板同时出现数;超限必须分波。
  5. 空间依赖:掩体/高低差/门控体积名在关卡编辑器 Outliner 可点到;未锁→回 blockout-pass,不填怪。
  6. 失败→回本步:目标 id 不存在或白盒体积 Missing——先补目标/白盒。

做到:意图挂合法目标 id;预算四字段齐;空间依赖体积可在编辑器选中;强度档已索取。

2. 波次表、职责与触发(表 + 刷新点)

做

  1. 建 encounter/<id>_waves.csv:wave|role_slots|count_band|spawn_point_id|trigger(enter/remain≤N/event/timer)|reset_rule。
  2. 每单位职责:主压力/骚扰/控制/教学靶/资源包。
  3. 精英单独行:警告前摇/色/音效钩子名槽;失败允许跳过或降级写清。
  4. 在关卡编辑器给每个 spawn_point_id 挂空物体/体积,命名与 csv 一致;AI 禁区/仇恨半径档写入组件或表。
  5. 触发依赖的机制必须在更早拍已教学;未教→改触发或前移教学遭遇。
  6. 失败→回步骤 1:spawn 点与白盒碰撞体重叠或点不存在——改点位/预算再填波。

做到:csv 每波有可点击 spawn_point_id;职责无空;触发不依赖未教机制;重置规则可执行。

3. 压力曲线、释放阀与走查(秒表)

做

  1. 按开场→加压→释放→收束填相对压力档;每段写释放阀(掩体、真空窗、教具、可清潮)。
  2. 长高压:用 stopwatch/Time.time 量高压段秒数;超项目高压时长档→插释放或拆波。
  3. 胜负与撤退:胜利后脚本(门开/过场/任务步进 id);失败清理(停刷、区域解锁)。
  4. 给保守/标准两套组成强度+利弊;用户选定后冻 encounter_intensity_ver。
  5. 对照 pacing-pass:本章压力贡献;与叙事高挡背靠背则加休息或挪拍。
  6. Play 模式从触发走到胜利/失败各一次;卡死刷新、看不见怪、门不开记缺陷。
  7. 失败→回步骤 2:走查卡在触发/刷新——改 wave 触发或 spawn 后再测压力。

做到:高压段有秒数记录;释放阀可指;强度版冻结;走查胜/败各≥1 次无卡死。

4. 交接数值与复测点

做

  1. 职责表交数值:role|threat_share_band|kitable?——不编造系数;挂 skill-numeric/damage-formula 下游。
  2. 复测点清单:首刷、灭团重试、跳波、精英跳过(若有)——Test Runner 手工步骤或关卡 Debug 菜单。
  3. 加波必须声明预算来源(砍哪波/加时长)。
  4. 表配置字段与 csv 一致;沙盒 excel-com-write。
  5. 未决:缺警告 VFX 钩子/缺碰撞→Owner 槽显式,不假装完结。
  6. 失败→回步骤 3:复测灭团重试软锁——改 reset_rule 后再交数值。

做到:数值可按职责接表;复测四点有结果;变更有预算来源;未决显式。

下一步常接:pacing-pass;数值类 Skill;空间回 blockout-pass。

细则

A. 遭遇卡模板

  1. 每场遭遇一行或一卡:enc_id|trigger|composition|ai_intent|retreat|reset|drop_intent|teach_tag。
  2. 触发写体积/任务状态/交互,禁止「玩家靠近就行」无距离或条件。
  3. 同屏敌人预算写死;超预算拆波次或降 AI 复杂度。
  4. 教学遭遇→加压→喘息顺序在关卡时间轴可见。
  5. 脱战/重置条件完备,防残局永久脏状态。

B. 可读与公平

  1. 敌人进入交战前应有可见提示或空间预告;背刺刷兵需用户特批。
  2. 失败后能判因:走位 / 机制不懂 / 数值——脚本侧提供可观察区分(提示/日志)。
  3. 至少两条战术选项(掩体/绕后/爆发窗口)在灰盒可走通。
  4. 与战斗技能组期望对齐:本关要教会的技能在遭遇中有强制或强诱导使用点。
  5. 失败→回 skill-kit/combat 职种会签,不单方面加怪。

C. 联调信号

  1. 事件名给程序:OnEncStart/Wave/Clear/Reset 稳定字符串。
  2. 试玩记录死亡点热区;连续同点死亡→改脚本或几何。
  3. 掉落意图只写「类型/用途」,具体数值交数值职种。
  4. 工具:关卡蓝图/触发体、表格、短录像。
  5. 下一步常接 pacing-pass。

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.