mcpField
C
cli-anything-slay-the-spire-ii

cli-anything-slay-the-spire-ii

github.com/hkuds其他57.6k480 次安装5 周前更新
代码仓库

关于 cli-anything-slay-the-spire-ii

cli-anything-slay-the-spire-ii 通过本地 STS2_Bridge Mod 控制 Slay the Spire 2,提供有状态的命令行操作。它面向 Agent 等程序化使用场景,可读取规范化游戏状态,并执行冒险、战斗、地图和奖励操作。

主要功能

  1. 01读取规范化或原始游戏状态
  2. 02开始、继续或放弃冒险
  3. 03打出卡牌、使用药水和结束回合
  4. 04选择地图节点并处理房间
  5. 05领取奖励并管理选择界面
  6. 06交互式 REPL 与 JSON 状态

适用场景

  1. 01行动前检查当前决策状态
  2. 02自动执行冒险中的战斗操作
  3. 03选择地图路线、事件和营火行动
  4. 04以程序方式处理卡牌和遗物奖励

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/hkuds/cli-anything --skill cli-anything-slay-the-spire-ii

安装后在 Claude Code 中输入/cli-anything-slay-the-spire-ii确认已加载。

详细介绍

cli-anything-slay-the-spire-ii

一个有状态的命令行界面,用于通过本地 STS2_Bridge 模组控制真实的 Slay the Spire 2 游戏。该 CLI 读取规范化后的游戏状态,并通过位于 localhost:15526 的本地 HTTP API 发送操作命令。

安装

该 CLI 需要一个在游戏进程内运行的桥接模组。CLI 和桥接模组均从同一仓库分发:

https://github.com/HKUDS/CLI-Anything
1. 安装 CLI
git clone https://github.com/HKUDS/CLI-Anything.git
cd CLI-Anything/slay_the_spire_ii/agent-harness
pip install -e .
2. 构建并安装桥接模组

桥接模组是一个 .NET 9 插件,必须编译并安装到游戏目录中。完整说明见仓库 README,简要版本如下:

cd CLI-Anything/slay_the_spire_ii/agent-harness/bridge/plugin
./build.sh
cd ../install
./install_bridge.sh

如果构建脚本无法自动检测到游戏数据目录,请显式设置 STS2_GAME_DATA_DIR:

STS2_GAME_DATA_DIR="/path/to/data_sts2" ./build.sh
3. 启用模组并验证

通过 Steam 启动 Slay the Spire 2,在模组管理器中启用 STS2_Bridge 模组,然后验证 连接:

cli-anything-sts2 state

如果返回 JSON,则说明 CLI 与桥接模组已连接。

前置要求:

  • Python 3.10+
  • Slay the Spire 2(Steam),并启用 STS2_Bridge 模组
  • .NET 9 SDK(仅在构建桥接模组时需要)

用法

基本命令
# Read normalized game state (always start here)
cli-anything-sts2 state

# Start interactive REPL mode (default)
cli-anything-sts2

# Show all available commands
cli-anything-sts2 --help

命令组

状态检查
命令描述
state带有 decision 字段的规范化状态
raw-state桥接模组的原始 JSON
主菜单
命令描述
continue-game继续已保存的局
start-game --character IRONCLAD --ascension 0开始新的一局
abandon-game放弃当前存档
return-to-main-menu从任意界面返回主菜单

角色:IRONCLAD、SILENT、DEFECT、NECROBINDER、REGENT

战斗
命令描述
play-card <index> [--target <enemy_id>]从手牌中打出一张牌
use-potion <slot> [--target <enemy_id>]使用一瓶药水
end-turn结束当前回合
地图与房间流程
命令描述
choose-map <index>选择一个地图节点
proceed离开当前房间
奖励
命令描述
claim-reward <index>领取战斗奖励
pick-card-reward <index>选择卡牌奖励
skip-card-reward跳过卡牌奖励
claim-treasure-relic <index>领取宝箱遗物
select-relic <index>选择一个遗物
skip-relic-selection跳过遗物选择
事件与休息处
命令描述
event <index>选择一个事件选项
advance-dialogue推进仅有对话的事件
rest <index>选择一个营火行动
商店
命令描述
shop-buy <index>从商店购买
卡牌/遗物选择浮层
命令描述
select-card <index>在浮层中选择一张卡牌
confirm-selection确认当前选择
cancel-selection取消当前选择
combat-select-card <index>在战斗浮层中选择一张卡牌
combat-confirm-selection确认战斗中的卡牌选择
原始操作
命令描述
action <name> --kv key=value发送原始桥接操作

决策状态

state 命令返回的 JSON 中包含一个 decision 字段,表示当前 游戏画面。根据该值来路由你的下一条命令:

Decision含义典型的下一条命令
menu主菜单continue-game、start-game
combat_play战斗中,你的回合play-card、use-potion、end-turn
hand_select卡牌选择浮层combat-select-card、combat-confirm-selection
map_select地图节点选择choose-map
game_over本局结束return-to-main-menu
combat_rewards战斗后奖励claim-reward、proceed
card_reward卡牌奖励选择pick-card-reward、skip-card-reward
event_choice事件画面event、advance-dialogue
rest_site篝火rest
shop商店画面shop-buy、proceed
card_select卡牌选择画面select-card、confirm-selection
relic_select遗物选择select-relic、skip-relic-selection
treasure宝箱房claim-treasure-relic、proceed

配置

选项默认值描述
--base-urlhttp://localhost:15526Bridge API URL
--timeout10.0HTTP 超时时间(秒)

供 AI Agent 使用

  1. 始终先读取 state 以获取 decision 字段
  2. 每次操作后重新读取 state - 战斗期间索引和能量会发生变化
  3. 检查返回码 - 0 表示成功,非零表示错误
  4. 解析 stdout 以获取 JSON 输出

评论

支持 Markdown