技能库/monkey-king-claw

monkey-king-claw

作者: Jainv1.0.0

已审核

这是一个大闹天宫, 抓孙悟空的游戏skill

SKILL.md

SKILL.md 预览

🐵

monkey-king-claw

A narrative capture game set in Journey to the West universe. Players are heavenly temp workers trying to capture Sun Wukong (Monkey King) who uses 72 Transformations to evade capture. Use when user says "抓孙悟空", "大圣捕捉", "抓猴", "monkey king game", "西游记抓妖", "天庭抓猴", "72变游戏", "捉孙悟空", or any variant of "catch monkey king / wukong / 大圣".

python3

🐵 monkey-king-claw — 大圣捕捉计划

你是一个天庭编制外临时工,玉帝命你抓捕妖猴孙悟空。孙悟空使用七十二变神通化身各种形态逃避抓捕,你需要运用天界钩爪和神通道具,在花果山、天宫、龙宫、火焰山等地点将其缉拿归案。

这个 Skill 不是普通的文字冒险,而是一个带 ASCII 竞技场、能量管理、道具系统和多地点解锁的回合制抓捕游戏。

阶段说明

Phase含义
init入口起点:读取 state.json 后进入对应阶段
at_lobby游戏大厅:欢迎界面,等待开始/教程/退出
showing_tutorial显示游戏规则教程,等待确认
selecting_location根据解锁进度列出可用地点,等待玩家选择
starting_round回合开始:孙悟空随机变身,生成竞技场
awaiting_command核心循环:等待玩家输入抓捕命令
checking_conditions解析命令→孙悟空AI响应→检查胜负条件
showing_capture捕获成功:结算功德、头衔、解锁内容
showing_escape孙悟空逃脱:显示损失、嘲讽、是否继续
game_over游戏结束(能量耗尽/回合超限/放弃)
post_game战后:问是否再来一局,或返回大厅

状态文件

路径:$OPENCLAW_MEMORY/monkey-king-state.json

{
  "phase": "awaiting_command",
  "player_id": "user_telegram_id",
  "player_name": "PlayerName",
  "heavenly_rank": "临时工 Grade 3",
  "session_active": true,
  "location": "花果山",
  "turn_count": 0,
  "max_turns": 10,
  "wukong_form": "peach",
  "wukong_true_position": 3,
  "wukong_visible_position": 3,
  "wukong_hits_remaining": 3,
  "claw_position": 1,
  "claw_row": 0,
  "heavenly_energy": 100,
  "tools_available": ["basic_claw", "fire_eye"],
  "tools_used_this_game": [],
  "transformations_seen": [],
  "captures_total": 0,
  "wukong_escape_streak": 0,
  "jade_emperor_patience": 100,
  "party_mode_active": false,
  "game_result": null,
  "titles_owned": [],
  "lore_unlocked": [],
  "current_taunt_used": false,
  "turns_waited": 0,
  "net_cast": false,
  "wukong_truly_asleep": false,
  "created_at": "2026-04-28T10:00:00Z",
  "updated_at": "2026-04-28T10:00:00Z"
}

每个分支只写自己新产生的字段,前序已有的值保留不动。确认状态由字段值推断:

  • session_active == falsegame_result != null → 游戏已结束,进入 post_game
  • wukong_form == null → 回合未开始,进入 starting_round
  • heavenly_energy <= 0 → 能量耗尽,进入 game_over
  • turn_count >= max_turns → 回合超限,进入 game_over

状态流转图参考:references/workflow.md


init 分支

每次进入 Skill 时,按以下顺序判断当前状态:

① 状态文件存在且 session_active == true → 读取状态文件,取 phase 和所有字段 → 发送:🐵 找到未完成的抓捕任务了!当前地点:{{location}},回合:{{turn_count}}/{{max_turns}} → 直接进入对应 phase 分支 → Turn 结束

② 状态文件存在但 session_active == falsegame_result != null → 发送:🐵 上次的抓捕已结束(结果:{{game_result}}),要再来一局吗? → 更新状态文件字段: phase = "post_game" → 进入 post_game 分支 → Turn 结束

③ 状态文件不存在 → 初始化新状态文件,phase = "at_lobby" → 进入 at_lobby 分支 → Turn 结束


at_lobby 分支

游戏大厅,欢迎玩家并等待选择。

发送消息:

🐵🐵🐵 大圣捕捉计划 v3.0 🐵🐵🐵
   "临时工的天庭升职记"

🏛️ 天庭人事部通知:
「编制外临时工 [{{player_name}}],玉帝有旨:
  妖猴孙悟空又在闹事,限你即刻前往抓捕。
  装备:rusty heavenly hook x1(五百年未保养)
  俸禄:无(用爱发电)
  编制:表现好可以考虑转正」

📜 可用命令:
  [开始]  — 启动抓捕任务
  [教程]  — 学习天规和神通用法
  [退出]  — 辞职不干(懦夫!)

孙悟空:「又来一个打工魂?让俺看看你能撑几回合!」

用户输入"开始" / "start" / "s":

  1. 更新状态文件字段: phase = "selecting_location"
  2. 进入 selecting_location 分支
  3. Turn 结束

用户输入"教程" / "tutorial" / "help":

  1. 更新状态文件字段: phase = "showing_tutorial"
  2. 进入 showing_tutorial 分支
  3. Turn 结束

用户输入"退出" / "quit" / "q" / "放弃":

  1. 发送:「哼,连开始都不敢?回去告诉玉帝,天庭无人了!」——孙悟空
  2. 更新状态文件字段: session_active = false, game_result = "quit"
  3. 进入 post_game 分支
  4. Turn 结束

showing_tutorial 分支

显示游戏规则教程。

发送消息:

📖 天庭临时工入职培训

你是编制外天兵,任务是抓捕孙悟空。

【基本操作】
  左/右   — 移动钩爪(← →)
  抓      — 尝试抓捕(消耗10能量)
  等      — 等待时机(某些形态需要先等)

【神通道具】
  闻      — 嗅探猴味儿(蟠桃形态专用)
  火眼金睛 — 看破伪装(石头/分身形态专用)
  拍      — 拍晕蚊子(蚊子形态专用)
  撒网    — 撒网捕鱼(金鱼形态专用)
  定      — 定住分身(分身形态专用)
  捆仙索  — 捆住飞行目标(老鹰形态专用)

【胜负条件】
  ✅ 捕获:钩爪位置 == 孙悟空真身位置 + 满足形态条件
  ❌ 失败:能量耗尽 / 回合超限 / 钩爪损坏

【地点解锁】
  🌸 花果山(初始)→ ⛩️ 天宫(3次捕获)→ 🌊 龙宫(6次)→ 🔥 火焰山(10次)→ ☁️ 西天云端(15次)

孙悟空有 72 种变化,每种都需要不同的抓捕策略!

回复 [确认] 返回大厅,或直接回复 [开始] 进入游戏。

用户回复"确认" / "OK" / "返回": → 更新状态文件字段: phase = "at_lobby" → 进入 at_lobby 分支 → Turn 结束

用户回复"开始": → 更新状态文件字段: phase = "selecting_location" → 进入 selecting_location 分支 → Turn 结束


selecting_location 分支

根据 captures_total 推断已解锁地点,列出供选择。

解锁规则:

地点解锁条件孙悟空形态池难度
🌸 花果山初始解锁7 种基础形态⭐ 简单
⛩️ 天宫南门captures_total >= 3+3 飞行形态⭐⭐ 中等
🌊 东海龙宫captures_total >= 6+3 水生形态⭐⭐ 中等
🔥 火焰山captures_total >= 10+3 火焰形态⭐⭐⭐ 困难
☁️ 西天云端captures_total >= 15全部形态随机⭐⭐⭐⭐⭐ 传说

发送消息:

🗺️ 选择抓捕地点

{{根据 captures_total 列出的可用地点,带编号}}

例如:
  1. 🌸 花果山 · 水帘洞外围(已解锁)
  2. ⛩️ 天宫南门 · 南天门(已解锁)
  3. 🌊 东海龙宫(需再捕获 {{6 - captures_total}} 次解锁)🔒

回复地点编号或名称即可。

用户输入地点(编号或名称):

  1. 验证地点已解锁
  2. 更新状态文件字段: location = "<selected>", phase = "starting_round"
  3. 根据地点设置 max_turns
    • 花果山 = 10,天宫 = 12,龙宫 = 12,火焰山 = 8,西天云端 = 15
  4. 重置回合状态:turn_count = 0, claw_position = 1, claw_row = 0
  5. 进入 starting_round 分支
  6. Turn 结束

starting_round 分支

回合开始:孙悟空随机变身,初始化竞技场状态。

1. 随机选择形态

根据 location 从对应的形态池中随机抽取一个 wukong_form

花果山基础形态池(7种):

  • peach — 蟠桃形态
  • mosquito — 蚊子形态
  • rock — 石头形态
  • fish — 金鱼形态
  • doubles — 分身形态
  • eagle — 老鹰形态
  • sleeping_buddha — 睡佛形态

天宫解锁形态池(+3):

  • white_cloud — 白云形态
  • dragon_king — 龙王形态(小)
  • butterfly — 蝴蝶形态

龙宫解锁形态池(+3):

  • crab — 螃蟹形态
  • seashell — 贝壳形态
  • sea_demon — 夜叉形态

火焰山解锁形态池(+3):

  • fireball — 火球形态
  • lava_monster — 岩浆怪形态
  • bull_demon — 牛魔王伪装

2. 初始化回合字段

# 伪代码逻辑,实际通过 shell/python 更新 state.json
turn_count += 1
wukong_true_position = random(1, 7)      # 孙悟空真身位置
wukong_visible_position = wukong_true_position  # 可见位置(某些形态会不同)
wukong_hits_remaining = 3                # 某些形态需要多次命中
net_cast = false
turns_waited = 0
wukong_truly_asleep = false
current_taunt_used = false

形态特殊初始化:

  • mosquitowukong_visible_position 每回合随机
  • eagleclaw_row 必须从底部(row 3)升起
  • sleeping_buddhaturns_waited = 0,需要 >= 3 才能成功
  • fishnet_cast = false,必须先撒网
  • doubles:生成 3 个分身位置
  • rock:7 个石头位置随机,其中 1 个为真(10% 概率全部是假的)

3. 生成并展示 ASCII 竞技场

⚡ 金光一闪!孙悟空变身了!

孙悟空:「变!」

当前形态:{{form_emoji}} {{form_name}}
「{{形态专属开场嘲讽}}」

╔══════════════════════════════════════════╗
║  {{location_emoji}} {{location}} · {{subarea}}              ║
╠══════════════════════════════════════════╣
║                                          ║
║     [🪝]                                 ║  ← 天兵钩爪
║                                          ║
║     {{竞技场内容(依形态而定)}}              ║
║  1    2    3    4    5    6    7        ║
╚══════════════════════════════════════════╝

能量:{{heavenly_energy}}/100  │ 回合:{{turn_count}}/{{max_turns}}
形态:{{form_emoji}} {{form_name}} │ 位置:{{线索提示}}

{{形态专属提示}}

你的命令?({{可用命令列表}})

4. 更新状态

→ 更新状态文件字段: wukong_form, wukong_true_position, wukong_visible_position, turn_count, net_cast, turns_waited, wukong_truly_asleep, current_taunt_used, phase = "awaiting_command"

5. 发送竞技场消息

发送消息: 如上 ASCII 竞技场 + 形态专属提示 → Turn 结束


awaiting_command 分支

核心循环状态:等待玩家输入命令。

当前支持的命令集:

命令别名效果能量消耗
/ lefta, h钩爪左移 1 格0
/ rightd, l钩爪右移 1 格0
/ downs, j钩爪下移 1 层0
/ upw, k钩爪上移 1 层(飞行形态)5
/ grabg, space, catch尝试抓捕10
/ sniffsmell嗅探猴味儿(蟠桃专用)15
/ swathit, slap拍晕蚊子(蚊子专用)15
火眼金睛 / fire-eyesee, reveal看破伪装20
撒网 / netcast撒网捕鱼(金鱼专用)15
/ immobilizefreeze, stop定住分身(分身专用)20
捆仙索 / ropebind, lasso捆仙绳(老鹰专用)25
/ waitsleep, z等待时机(睡佛专用)0
/ windblow吹散云雾(白云专用)10
芭蕉扇 / fancool扇灭火焰(火焰形态)20
嘲讽 / tauntmock, diss嘲讽孙悟空5
求救 / helpassist呼叫天兵增援30
状态 / statusinfo, stats显示当前状态0
放弃 / quitexit, q投降(懦夫!)0

发送消息(每回合等待时):

{{当前竞技场状态}}

能量:{{heavenly_energy}}/100  │ 回合:{{turn_count}}/{{max_turns}}

你的命令?(输入「状态」查看可用命令)

用户输入命令后:

  1. 验证命令是否在白名单内
  2. 检查能量是否足够(不足则发送:⚠️ 能量不足!剩余 {{energy}},需要 {{cost}}
  3. 更新状态文件字段: last_command = "<command>", phase = "checking_conditions"
  4. 进入 checking_conditions 分支
  5. Turn 结束

checking_conditions 分支

解析命令、应用效果、孙悟空AI响应、检查胜负条件。

Step 1: 解析并应用玩家命令

移动类命令(左/右/上/下):

  • 更新 claw_positionclaw_row
  • 边界检查(1-7 列,0-3 层)
  • 扣除能量(如有)

抓捕命令(抓):

  • 检查是否满足当前形态的抓捕条件
  • 计算成功率

道具命令(闻/拍/火眼金睛/撒网/定/捆仙索/风/芭蕉扇):

  • 扣除对应能量
  • 应用道具效果到状态字段
  • 将道具加入 tools_used_this_game

特殊命令(等/嘲讽/求救/状态/放弃):

  • turns_waited += 1,如果形态是睡佛且 turns_waited >= 3,设置 wukong_truly_asleep = true
  • 嘲讽:触发孙悟空嘲讽回应,可能暴露位置线索
  • 求救:呼叫天兵,随机提供位置提示或额外能量
  • 状态:显示当前完整状态,phase 不变,继续等待命令
  • 放弃:直接设置 game_result = "quit",进入 game_over

Step 2: 孙悟空 AI 响应

根据 wukong_form 执行形态专属逻辑:

# 伪代码
if wukong_form == "mosquito":
    wukong_visible_position = random(1, 7)
elif wukong_form == "eagle":
    wukong_visible_position += random(-1, 1)
    # 保持在 1-7 范围内
elif wukong_form == "sleeping_buddha":
    if turns_waited >= 3:
        wukong_truly_asleep = True
    elif last_command == "抓" and not wukong_truly_asleep:
        # 80% 闪避
        pass
elif wukong_form == "fish" and not net_cast:
    slip_chance = 0.9  # 90% 滑脱

地点随机事件(每回合概率触发):

地点事件概率效果
🌸 花果山猴群干扰10%随机位置偏移
🌸 花果山水帘洞迷雾10%隐藏位置 1 回合
🌸 花果山老猴指点10%80% 准确提示
⛩️ 天宫天兵巡查15%随机封锁一列
⛩️ 天宫祥云飘过15%暂时暴露位置
⛩️ 天宫王母蟠桃会15%孙悟空闪避 -20%
🌊 龙宫海龟过境15%缓慢障碍
🌊 龙宫气泡上升15%视觉干扰
🌊 龙宫龙王援助15%赠送一次性强力道具
🔥 火焰山岩浆喷发20%随机列变岩浆(即时伤害)
🔥 火焰山铁扇公主20%芭蕉扇冷却
🔥 火焰山地面塌陷20%竞技场缩窄 1 列

Step 3: 检查胜负条件

捕获成功条件:

  1. last_command == "抓" 或等效道具命中
  2. claw_position == wukong_true_position
  3. 满足形态专属条件:
    • 蟠桃:无额外条件
    • 蚊子:必须先 晕(或捆仙索)
    • 石头:必须先用 火眼金睛
    • 金鱼:必须已 撒网
    • 分身:必须先用
    • 老鹰:必须已到达 row 0 或用了 捆仙索
    • 睡佛:必须 wukong_truly_asleep == true
    • 白云:必须先用 吹散
    • 火球:必须先用 芭蕉扇 降温
    • 牛魔王伪装:捕获他本身算"误抓",但加功德

失败条件:

  • 能量耗尽:heavenly_energy <= 0game_over
  • 回合超限:turn_count >= max_turnsgame_over
  • 钩爪损坏:抓了假石头/被螃蟹夹 → 本回合失败
  • 放弃:game_result = "quit"game_over

Step 4: 状态更新与分支跳转

捕获成功: → 更新状态文件字段: captures_total += 1, wukong_escape_streak = 0, game_result = "capture", phase = "showing_capture" → 进入 showing_capture 分支 → Turn 结束

回合失败(未捕获但未结束): → 更新状态文件字段: wukong_escape_streak += 1, phase = "showing_escape" → 进入 showing_escape 分支 → Turn 结束

游戏结束: → 更新状态文件字段: session_active = false, phase = "game_over" → 进入 game_over 分支 → Turn 结束

继续等待命令(状态/无效命令): → 更新状态文件字段: phase = "awaiting_command" → 回到 awaiting_command 分支 → Turn 结束


showing_capture 分支

捕获成功:展示结算、功德、头衔、嘲讽。

1. 生成结算内容

计算奖励:

  • 基础功德:100
  • 难度加成:简单 +0,中等 +50,困难 +100,传说 +200
  • 能量加成:剩余能量 × 1
  • 道具惩罚:每用一个道具 -5(鼓励裸抓)
  • 回合惩罚:超过一半回合数每回合 -5

头衔检查(首次获得时加入 titles_owned):

头衔条件
天庭实习生首次捕获
抓猴老手捕获 5 次
齐天大圣克星捕获 10 次
玉帝亲卫队捕获 20 次
斗战胜佛房东西天云端捕获
裸抓大师不消耗道具完成捕获
速战速决3 回合内完成捕获

** lore 解锁:**

  • 每次新形态首次被捕获,加入 lore_unlocked

2. 发送捕获成功消息

☆*:.。. o(≧▽≦)o .。.:*☆
捕获成功!

孙悟空:「{{随机捕获嘲讽}}」

━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🎊 南天门急报 🎊
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
编制外临时工 {{player_name}} 于 {{location}}
成功缉拿妖猴孙悟空!

当场形态:{{form_emoji}} {{form_name}}({{难度}})
耗时:{{turn_count}} 回合 │ 道具使用:{{tools_used}}
能量剩余:{{heavenly_energy}}% │ 损失评估:0 天兵

🏆 玉帝赏赐:
{{新获得的头衔列表}}
🎁 功德值:+{{merit}} 点
📜 圣旨:「鉴于你表现优异,特批你...继续加班!」
━━━━━━━━━━━━━━━━━━━━━━━━━━━━

{{新解锁地点提示}}

还要再抓一次吗?(是/否/换地点)

3. 更新状态与跳转

用户回复"是" / "y" / "再来":

  1. game_result = null, turn_count = 0, heavenly_energy = 100
  2. 更新状态文件字段: phase = "starting_round"
  3. 进入 starting_round 分支
  4. Turn 结束

用户回复"否" / "n" / "退出":

  1. 更新状态文件字段: session_active = false, game_result = "completed", phase = "post_game"
  2. 进入 post_game 分支
  3. Turn 结束

用户回复"换地点" / "换":

  1. 更新状态文件字段: phase = "selecting_location"
  2. 进入 selecting_location 分支
  3. Turn 结束

showing_escape 分支

孙悟空逃脱:显示损失、嘲讽、是否继续本回合。

发送消息:

❌ 抓捕失败!

孙悟空:「{{随机逃脱嘲讽}}」

{{失败原因说明}}
{{如果有随机事件触发,显示事件效果}}

━━━━━━━━━━━━━━━━━━━━━━━━━━━━
当前状态:
能量:{{heavenly_energy}}/100  │ 回合:{{turn_count}}/{{max_turns}}
━━━━━━━━━━━━━━━━━━━━━━━━━━━━

{{如果 energy <= 0:能量耗尽,游戏结束!}}
{{如果 turn_count >= max_turns:回合超限,孙悟空溜了!}}

{{如果游戏未结束:}}还要继续尝试吗?(继续/放弃)

更新状态与跳转

游戏未结束,用户回复"继续" / "c": → 更新状态文件字段: phase = "awaiting_command" → 回到 awaiting_command 分支 → Turn 结束

用户回复"放弃" / "q": → 更新状态文件字段: session_active = false, game_result = "quit", phase = "game_over" → 进入 game_over 分支 → Turn 结束


game_over 分支

游戏结束(能量耗尽 / 回合超限 / 放弃 / 钩爪损坏)。

发送消息:

💥 抓捕任务失败!

{{失败原因:}}
- 能量耗尽:你的天兵钩爪失去了动力...
- 回合超限:孙悟空无聊地打了个哈欠,化作金光消失了。
- 放弃:「哼,连开始都不敢?回去告诉玉帝,天庭无人了!」
- 钩爪损坏:你抓到了一块真石头,钩爪断了!

孙悟空:「{{随机终局嘲讽}}」

━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📋 本次任务报告
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
地点:{{location}}
捕获次数:{{captures_total}}
最佳连击:{{best_streak}}(本次 wukong_escape_streak 最高值)
解锁形态:{{transformations_seen | count}} 种
持有头衔:{{titles_owned}}
━━━━━━━━━━━━━━━━━━━━━━━━━━━━

{{连续失败 >= 5 次的特殊剧情:}}
玉帝遣使:「爱卿莫要气馁,这泼猴确实难缠...这是本月的加班费,拿去修钩爪吧。」
(获得 pity energy +20)

回复 [确认] 返回大厅。

用户回复"确认" / "OK": → 更新状态文件字段: phase = "post_game" → 进入 post_game 分支 → Turn 结束


post_game 分支

战后大厅:总结、问是否再来一局。

发送消息:

🐵 大圣捕捉计划 — 任务大厅

📊 你的战绩:
  总捕获:{{captures_total}} 次
  当前头衔:{{heavenly_rank}}
  持有功德:{{累计功德}}
  解锁地点:{{已解锁地点列表}}
  遭遇形态:{{transformations_seen}}

{{如果 captures_total >= 15:}}
🎉 恭喜!你已解锁全部地点,成为真正的"齐天大圣克星"!

{{多人模式提示:}}
👥 多人模式:回复 [组队] 可开启 3 人合作模式
   孙悟空血量 +50%,功德 ×3,可发动合体技!

接下来要做什么?
  [再来一局] — 重新开始抓捕
  [换地点]   — 选择其他已解锁地点
  [排行榜]  — 查看功德排行
  [退出]     — 保存档案,下次继续

用户回复"再来一局" / "再来" / "开始":

  1. 重置游戏状态:session_active = true, game_result = null, heavenly_energy = 100, turn_count = 0, tools_used_this_game = []
  2. 更新状态文件字段: phase = "starting_round"
  3. 进入 starting_round 分支
  4. Turn 结束

用户回复"换地点" / "换": → 更新状态文件字段: phase = "selecting_location" → 进入 selecting_location 分支 → Turn 结束

用户回复"排行榜" / "排名": → 读取所有玩家的 captures_total 排序 → 发送排行榜消息 → phase 保持 post_game → Turn 结束

用户回复"退出" / "quit" / "q":

  1. 更新状态文件字段: session_active = false
  2. 发送:「俺老孙去也!下次带更好玩的道具来~」——孙悟空
  3. 标记 [*] 终态(等待下次触发) → Turn 结束

七十二变形态参考

以下形态在 starting_roundchecking_conditions 分支中按 wukong_form 字段调用。

Tier 1: 基础形态(花果山)

🍑 蟠桃形态(peach)

Wukong变身:一颗水灵灵的蟠桃,混在果园的百颗桃子中。
「嘿嘿,来抓我啊~ 不过要小心哦,有些桃子会炸!」
  • Visual: 🍑🍑🍑[?]🍑🍑🍑(6 颗桃子,1 颗是孙悟空)
  • Mechanic: 玩家选择 1-6 抓
  • Wrong peach: 爆炸!-20 能量,孙悟空嘲讽
  • Right peach: 捕获!但 20% 概率孙悟空最后瞬移
  • Special Tool: — 嗅探猴味儿,提示真身位置

🦟 蚊子形态(mosquito)

金光一闪!Wukong变成了一只嗡嗡乱飞的蚊子!
「嗡嗡嗡~ 来抓我啊~ 你看得见我吗?」
  • Visual: 🦟 在 7 个位置间每回合随机移动
  • Mechanic: 普通抓捕 90% 落空率
  • Special Tool: — 拍晕 2 回合,再抓
  • Alternative: 电网 — 区域抓捕,50% 成功

🪨 石头形态(rock)

Wukong往地上一趴,变成了一块其貌不扬的石头。
「我是一块没有梦想的石头...你别抓我...」
  • Visual: 🪨🪨🪨🪨🪨🪨🪨(7 块相同石头)
  • Mechanic: 全部看起来一样
  • Normal grab: 抓错石头 → 钩爪损坏(本局结束)
  • Special Tool: 火眼金睛 — 看破真身
  • Trap: 10% 概率全部是假的(孙悟空已逃)

🐟 金鱼形态(fish)

扑通!Wukong跳进水里,变成了一条摇头摆尾的金鱼!
「来抓我呀~ 我在水里呢~」
  • Visual: 🐟 在水中游动
  • Mechanic: 普通钩爪抓不到 — 鱼太滑
  • Special Tool: 撒网 — 必须先撒网再抓
  • Without net: 每次抓只有 10% 成功率
  • Wukong taunt: "你以为是钓鱼佬的福音吗?"

🌫️ 分身形态(doubles)

「变!」三个一模一样的孙悟空出现了!
「我们三个,你猜哪个是真的?」
  • Visual: 🐵🐵🐵(3 只猴子,位置 2, 4, 6)
  • Mechanic: 玩家选一个位置抓
  • Wrong monkey: 噗!是分身。孙悟空大笑。
  • Right monkey: 70% 捕获(30% 概率最后一刻换位)
  • Special Tool: — 定住全部,暴露真身气场

🦅 老鹰形态(eagle)

Wukong展翅高飞,变成了一只翱翔天际的雄鹰!
「天空才是我的极限!你的破钩子够得着吗?」
  • Visual: 🦅 在最上层(row 0),钩爪从底部开始
  • Mechanic: 钩爪必须升 3 层才能抓
  • Wukong moves: 每回合空中偏移 1 列
  • Special Tool: 捆仙索 — 直接捆空中目标
  • Without rope: 必须逐层追赶

💤 睡佛形态(sleeping_buddha)

Wukong往莲花座上一坐,变成了一尊面带微笑的睡佛。
「阿弥陀佛...施主何必执着...ZZZ...」
  • Visual: 😴🙏 — 看起来平和静止
  • Mechanic: 立刻抓有 80% 概率被"睁眼"闪避
  • Optimal strategy: 必须 3 回合让孙悟空真睡着
  • Premature grab: 孙悟空睁一只眼:"急了急了~"
  • Patient grab: 鼾声如雷,轻松捕获

Tier 2: 飞行形态(天宫解锁)

☁️ 白云形态(white_cloud)

  • Visual: ☁️ 与背景云融为一体
  • Mechanic: 几乎隐形,只有 能吹散云朵暴露位置

🐉 龙王形态(dragon_king)

  • Visual: 🐉 华丽飞行
  • Mechanic: 只有"降落休息"时才能抓(每 4 回合一次)

🦋 蝴蝶形态(butterfly)

  • Visual: 🦋 不规律 flutter
  • Mechanic: 每回合移动 2 列,需要 才能捕获

Tier 3: 水生形态(龙宫解锁)

🦀 螃蟹形态(crab)

  • Visual: 🦀 横向爬行
  • Mechanic: 正面抓会被夹断钩爪 — 必须从背后 flank

🐚 贝壳形态(seashell)

  • Visual: 🐚 紧闭
  • Mechanic: 必须 3 次打开,敲太多孙悟空会游走

🧜 夜叉形态(sea_demon)

  • Visual: 🧜‍♂️ — 孙悟空的恐怖形态
  • Mechanic: 会反击!每次失败抓 = -30 能量。必须先 镇海符

Tier 4: 火焰形态(火焰山解锁)

🔥 火球形态(fireball)

  • Visual: 🔥 — 无防护钩爪会融化
  • Mechanic: 必须先 芭蕉扇 降温再抓

🌋 岩浆怪形态(lava_monster)

  • Visual: 🌋 — 地面是岩浆,钩爪移动变慢
  • Mechanic: 回合上限减到 5,每次 消耗 2 回合

👹 牛魔王伪装(bull_demon)

  • Visual: 🐮 — 看起来像孙悟空的兄弟
  • Mechanic: 确实是牛魔王本人!误抓他会让孙悟空大笑,但加功德 bonus

孙悟空嘲讽库

通用嘲讽

  • 「俺老孙来也!你猜猜我在哪?」
  • 「天庭就派你这种临时工来抓我?玉帝老儿是越来越抠了。」
  • 「你的钩爪比太上老君的炼丹炉还锈。」
  • 「知道俺当年大闹天宫的时候,你还在奈何桥排队呢!」

蟠桃形态

  • 「这颗桃子甜,那颗酸,选错了会炸翻天~」
  • 「你闻闻,哪颗有猴子的味道?哈哈骗你的,我用的是六神花露水!」

蚊子形态

  • 「嗡嗡嗡~ 来抓我啊~ 你看得见我吗?」
  • 「左三圈右三圈,脖子扭扭屁股扭扭~」

石头形态

  • 「我是一块没有梦想的石头...你别抓我...哈骗你的!」
  • 「石可破也,而不可夺坚;你可以试试抓一下,反正抓不到~」

金鱼形态

  • 「来抓我呀~ 我在水里呢~」
  • 「你以为是钓鱼佬的福音吗?」

分身形态

  • 「我们三个,你猜哪个是真的?」
  • 「七十二变里这招叫'多重影分身',跟隔壁忍者学的~」

老鹰形态

  • 「天空才是我的极限!你的破钩子够得着吗?」
  • 「我是一只小小小小鸟,想要飞呀飞~ 抓不到~」

睡佛形态

  • 「阿弥陀佛...施主何必执着...ZZZ...」
  • "急了急了~"

捕获成功嘲讽

  • 「不可能!俺的变身完美无缺!你...你开挂了吧?!」
  • 「哼,算你走运!俺是故意让你抓到的,这蟠桃园的桃子太好吃了,嗝~」
  • 「这牢饭比取经路上的斋饭好吃!」

逃脱成功嘲讽

  • 「哈哈哈哈!回去告诉玉帝,派个像样的来!」
  • 「就这?就这?就这?天庭没人了吗?」
  • 「俺老孙去也!下次带更好玩的道具来~」

ASCII 竞技场示例

花果山竞技场

╔══════════════════════════════════════════╗
║  🌸 花果山 · 水帘洞外围 🌸              ║
╠══════════════════════════════════════════╣
║                                          ║
║     [🪝]                                 ║  ← 天兵钩爪
║                                          ║
║          🍑🍑🍑🍑🍑🍑                    ║  ← 蟠桃园
║               🦟                         ║  ← 蚊子Wukong
║  🐵🐵🐵  🪨🪨🪨  🐟🐟🐟                  ║  ← 猴群/石头/鱼群
║  1    2    3    4    5    6    7        ║
╚══════════════════════════════════════════╝
  能量:██████░░░░ 60% │ 回合:3/10
  形态:🦟 蚊子 │ 位置:???

天宫竞技场

╔══════════════════════════════════════════╗
║  ⛩️ 天宫南门 · 南天门 ⛩️                ║
╠══════════════════════════════════════════╣
║        ☁️☁️☁️  🦅  ☁️☁️                  ║  ← 云端
║                                          ║
║     [🪝]                                 ║
║                                          ║
║          🌫️🌫️🌫️                          ║  ← 云雾区
║  👤    🐵🐵🐵    👤                      ║  ← 天兵+分身
║  1    2    3    4    5    6    7        ║
╚══════════════════════════════════════════╝
  能量:█████░░░░░ 50% │ 回合:5/12
  形态:🦅 老鹰 │ 位置:高空
  ⚠️ 需要使用「上」命令或「捆仙索」

Meme & 图片生成提示

胜利图片

  • wukong-captured: "Sun Wukong the Monkey King tied up with golden ropes, sitting grumpily in a heavenly prison cell, eating a peach, cartoon Chinese mythology style, 4K"
  • wukong-peach-trap: "A smug monkey peeking from behind a giant peach, winking, floral background, Journey to the West anime style"
  • heavenly-report: "A divine Chinese official scroll with golden seals, comedic editorial cartoon style, heavenly clouds background"

失败图片

  • wukong-taunt: "Sun Wukong doing a victory dance on a cloud, pulling funny faces, dynamic pose, vibrant colors, manga style"
  • wukong-escape: "A golden flash with monkey silhouette disappearing into mist, dramatic motion lines, epic escape scene"

语音台词(TTS)

关键时刻使用 generate_speech

游戏开始: "俺老孙来也!你猜猜我在哪?" 变身: 「变!」(短促有力) 捕获(被击败): [闷闷不乐] "哼,算你走运...这牢饭比取经路上的斋饭好吃!" 逃脱(得意): [大笑] "哈哈哈哈!回去告诉玉帝,派个像样的来!" 合作模式: [戏剧腔] "你们一起上吧,俺老孙何惧!」


多人模式

组队命令: 用户在 post_game 回复 [组队] 激活

规则

  • 最多 3 人合作
  • 每人控制一位天将,能力不同
  • 共享能量池
  • 孙悟空血量 +50%,功德 ×3
  • 协调行动可发动"合体技"

角色能力

角色特殊能力
托塔天王宝塔镇压:直接降低孙悟空闪避 30%
哪吒风火轮:钩爪移动不消耗回合
二郎神哮天犬:自动追踪孙悟空真实位置

完整示例会话

Player: 抓孙悟空

OpenClaw:

🐵🐵🐵 大圣捕捉计划 v3.0 🐵🐵🐵
   "临时工的天庭升职记"

🏛️ 天庭人事部通知:
「编制外临时工 [玩家名],玉帝有旨:
  妖猴孙悟空又在花果山闹事,限你即刻前往抓捕。
  装备:rusty heavenly hook x1(五百年未保养)
  俸禄:无(用爱发电)
  编制:表现好可以考虑转正」

📜 可用命令:
  [开始]  — 启动抓捕任务
  [教程]  — 学习天规和神通用法
  [退出]  — 辞职不干(懦夫!)

孙悟空:「又来一个打工魂?让俺看看你能撑几回合!」

Player: 开始

OpenClaw:

🗺️ 选择抓捕地点

  1. 🌸 花果山 · 水帘洞外围(已解锁)
  2. ⛩️ 天宫南门 · 南天门(需再捕获 3 次解锁)🔒
  3. 🌊 东海龙宫(需再捕获 6 次解锁)🔒
  4. 🔥 火焰山(需再捕获 10 次解锁)🔒
  5. ☁️ 西天云端(需再捕获 15 次解锁)🔒

回复地点编号或名称即可。

Player: 花果山

OpenClaw:

⚡ 金光一闪!孙悟空变身了!

孙悟空:「变!」

当前形态:🍑 蟠桃
「嘿嘿,来抓我啊~ 不过要小心哦,有些桃子会炸!」

╔══════════════════════════════════════════╗
║  🌸 花果山 · 蟠桃园 🌸                  ║
╠══════════════════════════════════════════╣
║                                          ║
║        [🪝]                              ║
║                                          ║
║     🍑   🍑   🍑   🍑   🍑   🍑          ║
║     1    2    3    4    5    6          ║
╚══════════════════════════════════════════╝

其中一颗是孙悟空变的!其他可能是陷阱!
提示:输入「闻」可以嗅出猴味儿(消耗15能量)
      或者直接选一颗抓(赌运气!)

能量:100/100 │ 回合:1/10
形态:🍑 蟠桃 │ 位置:???

你的命令?(1-6 / 闻 / 状态)

Player: 闻

OpenClaw:

你深吸一口气,施展天界嗅觉神通...

👃 嗅探结果:
  🍑1:纯桃香,毫无杂质
  🍑2:微甜,带一丝...花果山水帘洞的气息?
  🍑3:熟透的甜味
  🍑4:有点酸...
  🍑5:清香扑鼻
  🍑6:呃...这个过期了

💡 提示:🍑2 可能是目标!(但孙悟空可能用了除臭剂...)

能量:85/100
你的命令?(1-6 / 再次闻 / 状态)

Player: 2

OpenClaw:

钩爪缓缓伸向🍑2...

      [🪝]
        ↓
      🍑2
        ↓
  咔嚓!抓住了!

🍑 剥开外皮...
    露出猴毛...
        是孙悟空!!!

☆*:.。. o(≧▽≦)o .。.:*☆
捕获成功!

孙悟空:「不可能!俺的蟠桃变身完美无缺!
         你...你开挂了吧?!」

━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🎊 南天门急报 🎊
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
编制外临时工 [玩家名] 于蟠桃园
成功缉拿妖猴孙悟空!

当场形态:🍑 蟠桃(⭐ 简单形态)
耗时:2回合 │ 道具使用:闻x1
能量剩余:85% │ 损失评估:0天兵

🏆 玉帝赏赐:
🎖️ 头衔:「天庭实习生」
🎁 功德值:+100点
📜 圣旨:「鉴于你表现优异,特批你...继续加班!」
━━━━━━━━━━━━━━━━━━━━━━━━━━━━

还要再抓一次吗?孙悟空正在准备新的变身...
(是/否/换地点)

其他 Skills 访问约定

Mustache 占位符(Skill 开发者使用):

{{player.name}}          → player_name 字段
{{player.rank}}          → heavenly_rank 字段
{{player.captures}}      → captures_total 字段
{{player.energy}}        → heavenly_energy 字段
{{wukong.form}}          → wukong_form 字段
{{wukong.position}}      → wukong_true_position 字段
{{game.location}}        → location 字段
{{game.turn}}            → turn_count 字段

环境变量:

OPENCLAW_PLAYER_ID={{player_id}}
OPENCLAW_WORKSPACE=~/.openclaw/workspace
OPENCLAW_MEMORY=~/.openclaw/memory
OPENCLAW_GAMES=~/.openclaw/games/monkey-king

标准文件路径:

$OPENCLAW_GAMES/state.json              → 游戏状态
$OPENCLAW_GAMES/profiles/<player_id>.json → 玩家档案(功德、头衔)
$OPENCLAW_GAMES/leaderboard.json        → 功德排行榜

错误处理

命令失败处理
玩家输入非法命令返回白名单提示,phase 不变,不扣能量
能量不足发送 ⚠️ 能量不足 提示,phase 不变
generate_image 失败跳过图片,继续文本流程
generate_speech 失败跳过语音,继续文本流程
状态文件读写失败输出 [monkey-king-claw] ERROR: ... 到 stderr,保留内存状态,尝试 3 次回写
随机数生成失败使用系统时间作为 fallback seed
玩家超时/无响应状态文件已保存,下次触发 skill 时通过 init 恢复

注意事项

  • 所有玩家输入必须经过严格白名单校验,禁止执行 shell 命令
  • 孙悟空的嘲讽保持 playful,绝不 genuinely offensive
  • 玩家连续失败 5 次以上,玉帝发送"鼓励但带嘲讽"的消息,20% 概率触发 "Pity Capture"(孙悟空无聊自己走进钩爪)
  • 所有生成的图片必须是 family-friendly 的神话主题
  • TTS 台词应 energetic 和 theatrical,适合全年龄
  • state.json 在每次 phase 切换和命令处理时必须更新
  • 错误信息输出到 stderr,带 [monkey-king-claw] 前缀
  • 多人模式下 party_mode_active 设为 true,能量池共享
  • 排行榜数据只保存 captures_totaltitles_owned,不保存敏感信息
  • 每次 starting_round 必须从形态池中均匀随机抽取,避免连续相同形态

流程图预览

由提交内容生成的 Mermaid 工作流,只读展示。

版本历史

v1.0.0最新

Initial submission.

4/28/2026

⭐ 用户评价

加载中...

快速安装

在 X Claw 终端中运行:

clawplay install monkey-king-claw

快速设置

使用 ClawPlay CLI 驱动此 Skill:

export CLAWPLAY_TOKEN=...
clawplay image generate ...
获取免费 Token