共享草案 - 多人卡牌奖励共享

共享草案 - 多人卡牌奖励共享

[中文] 将多人卡牌奖励转变为共享的抽牌体验!战斗结束后,所有玩家的卡牌奖励合并为一个共享牌池。玩家同时从合并后的牌池中选择,并通过石头剪刀布小游戏来决定。

游戏玩法

功能特性

英文

  • ? 共享卡牌轮抽 — 战斗后所有玩家的卡牌奖励合并为一个共享卡池
  • ✊✋✌️ 石头剪刀布冲突解决 — 多人选同一张卡时通过趣味小游戏决定归属
  • ?️ 卡牌归属显示 — 查看每张卡牌原本属于哪个玩家的卡池
  • ? 跨职业选卡 — 可从任意玩家的卡池中选卡(可配置)
  • ? 放弃选卡 — 玩家可选择跳过轮抽,保留原始奖励
  • ⏱️ 就绪超时 — 可配置等待其他玩家进入轮抽的超时时间(默认 60 秒)
  • ? 轮抽结果展示 — 清晰的结果总结,显示每个玩家的选择
  • ? 完整网络同步 — 自定义网络动作确保所有客户端完美同步
  • ⚙️ ModConfig 支持 — 通过 ModConfig 在游戏内设置(可选)
  • ? 调试模式 — 单人模式下模拟 AI 玩家进行测试(AI 延迟可配置)
  • ?️‍?️ 显示/隐藏切换 — 带有红绿色标识的显示/隐藏按钮(支持中英文)

工作原理

英文

  1. 正常进行多人游戏 — 战斗并获得卡牌奖励
  2. 战斗结束后,点击卡牌奖励时会打开共享轮抽界面,而非原版选卡界面
  3. 所有玩家的卡牌奖励合并为一个共享卡池,以精美网格布局展示
  4. 从卡池中选一张卡 — 如果没人跟你抢,卡牌直接归你
  5. 如果多个玩家选了同一张卡,进行石头剪刀布决定归属
  6. 赢家获得卡牌,输家重新选择
  7. 轮抽结束后,结果展示显示每个人的选择

安装方法

英文

  1. 下载 zip 文件
  2. SharedDraft 文件夹解压到游戏的 mods/ 目录:
    • Windows: Steam/steamapps/common/Slay the Spire 2/mods/
    • macOS: Steam/steamapps/common/Slay the Spire 2/SlayTheSpire2.app/Contents/MacOS/mods/
    • Linux: Steam/steamapps/common/Slay the Spire 2/mods/
  3. 启动游戏,mod 会自动加载
  4. 开始多人模式并完成一场战斗,即可体验共享轮抽!

⚙️ 配置

编辑 mod 文件夹中的 config.json,或使用 ModConfig(如已安装)进行游戏内设置。

设置 默认值 说明
ShowCardOwnership true 显示卡牌属于哪个玩家
AllowCrossClassPicks true 允许从任意卡池选卡
ReadyTimeoutSeconds 60 等待玩家就绪超时(秒)
DebugMode false 启用单人调试模式
DebugPlayerCount 2 调试模式模拟玩家数
DebugAiDelaySeconds 1.5 调试 AI 延迟(秒)

⚠️ 注意事项

[EN] All players in the multiplayer session should have this mod installed for the best experience. If only some players have the mod, the draft system may not work correctly.

[中文] 建议多人游戏中所有玩家都安装此 mod 以获得最佳体验。如果只有部分玩家安装,轮抽系统可能无法正常工作。

? 技术细节

  • 使用 HarmonyLib 运行时修补 — 不修改任何游戏文件
  • 拦截 RewardsSet.Offer()CardReward.OnSelect() 来重定向卡牌奖励流程
  • 自定义 NetDraftActionNetDraftCardExchangeAction 实现稳健的网络同步
  • 使用 Godot Control 节点构建完整自定义 UI(无需 PCK)
  • 与其他多人 mod 兼容(如 Gold Gift)

? 前置要求

  • Slay the Spire 2(已启用 mod 支持)
  • 多人模式(2-4 人)— 或使用调试模式进行单人测试
  • 无需其他 mod(ModConfig 为可选)

? 版本

v0.1.0 — 首次发布