迁移到 Reforge 无 Harmony 重写版并修复 beta 兼容问题和超过 7 人无法联机问题#23
Open
zuiter wants to merge 1 commit into
Open
Conversation
Replace the old runtime-patching implementation with the Reforge module system: official mod initializer, reflection cache, injected Godot nodes, and the RMP extended lobby protocol for large-lobby synchronization. The migration also refreshes player-facing README content, restores screenshot assets and contributor credits, removes tracked build outputs, and teaches release scripts to resolve both sts2.dll and Steamworks.NET.dll from the installed game. Constraint: Current project rules forbid Harmony, MonoMod, runtime transpilers, and JSON config files. Constraint: Slay the Spire 2 beta 0.106.1 requires INetMessage.ShouldBuffer to be compiled against the current game assembly. Rejected: Patch the old Harmony implementation in place | this PR is intentionally the Reforge migration requested by maintainers. Rejected: Commit generated DLL/PCK/ZIP artifacts | build outputs are reproducible and already ignored. Confidence: medium Scope-risk: broad Directive: Do not reintroduce runtime patching frameworks; keep game-internal access behind ReflectionCache and RMP protocol boundaries. Tested: dotnet build .\RemoveMultiplayerPlayerLimit.csproj -c Release with installed beta sts2.dll and Steamworks.NET.dll Tested: powershell -ExecutionPolicy Bypass -File tools\build_release.ps1 -Configuration Release -Sts2AssemblyPath <installed sts2.dll> -SteamworksAssemblyPath <installed Steamworks.NET.dll> Tested: git diff --cached --check Not-tested: In-game multiplayer session with 5-16 real clients
7666149 to
e6670c9
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
修改内容
本 PR 将旧的 Harmony 实现迁移为 Reforge 无 Harmony 重写版。
主要改动:
ModInitializer+ReflectionCache+ Godot 节点模块INetMessage.ShouldBuffer导致的模组加载失败README.md/README_ZH.md,保留截图、功能说明、配置说明和鸣谢build/二进制产物sts2.dll和Steamworks.NET.dll说明
Reforge 版本不再使用 Harmony / MonoMod / Transpiler,也不再依赖运行时方法替换。
当前实现通过游戏自带的 Mod 初始化入口加载模块,并使用反射缓存、Godot 节点轮询和 RMP 扩展网络协议来处理多人大厅、UI 布局、宝箱房和难度缩放等功能。
0.1.8-beta中房间人数上限固定为 16,旧配置中的max_player_limit会被忽略;配置文件仅保留difficulty_scaling和 macOS TLS 兼容补丁相关选项。已验证
dotnet build .\RemoveMultiplayerPlayerLimit.csproj -c Release通过tools/build_release.ps1完整打包通过sts2-RMP-0.1.8-beta.zipgit diff --cached --check通过.csproj中没有 Harmony / MonoMod patch 引用未验证