Releases: BAKAOLC/STS2-RitsuLib
Releases · BAKAOLC/STS2-RitsuLib
Development build (dev)
This is an automated development build from branch dev.
-
Development Version:
9999.0.0-dev.25959792788+acfbea9d(independent from stable release versions) -
Current Stable Line in repo:
0.2.31 -
Purpose: quick testing and integration validation.
-
Stability: may change frequently and can include breaking changes.
-
Install target: developers/testers only.
-
Repository: BAKAOLC/STS2-RitsuLib
-
Commit:
acfbea9d -
Workflow Run: #25959792788
0.2.31
- Removed the dependency on
Steamworks.NET, which allows for non-Steam platforms (especially Android porting) to be supported.- Related functionality has been modified to use soft dependencies, and for unsupported platforms, the functionality will be automatically disabled.
- Cloud save functionality will try to use the cloud save functionality provided by the host game.
- Adjusted the logic and scheduling of some patches to provide specific handling support for mobile porting.
- Synchronized the implementation of many
TargetTypeand related helper methods to allow users to more conveniently select some target types. - Reimplemented the manifest build logic to avoid potential infinite recursion issues during compilation in some environments.
- Fixed custom
CardPilenot updating count when content changes. - Extended
Rewardfunctionality to allow customRewarddefinitions.- Note: If you need specific synchronization logic, you need to implement it yourself, the native only supports notifying the selected Reward.
- Fixed some logical issues in
AncientEventand related toolchains. - Added Chinese language descriptions to most internal comments.
- 摘除了对
Steamworks.NET的依赖,以提供对非 Steam 平台(特别是 Android 移植)的支持- 相关功能已改为通过软依赖方式实现,对于不支持的平台,会自动禁用相关功能
- 云存档功能会尝试使用宿主游戏提供的云存档功能
- 调整了部分 patch 的工作逻辑和调度,以提供对移动版移植的特定处理适配
- 同步实现了大量
TargetType和相关辅助方法以允许用户更便捷的选择部分目标类型 - 重新实现了 manifest 的构建逻辑,以避免编译时部分环境可能产生无限递归的问题
- 修正了自定义
CardPile不会在内容变化时主动更新计数的问题 - 扩展了
Reward的功能支持,现在允许自定义Reward- 注意:如果你需要特定的同步逻辑,目前需要自己实现,原生仅支持通知选择了 Reward
- 修正了
AncientEvent及其相关工具链的部分工作逻辑问题 - 内部大部分注释现在补充了中文版本的描述
Full Changelog: v0.2.30...v0.2.31
0.2.30
- Fixed #36, now the dropdown list control in the settings menu has a maximum height limit, and the scrolling list and virtual list optimizations have been added to make it able to handle a large number of options.
- Fixed the synchronization issue in certain cases by correcting the
SavedPropertyprocessing logic. - Added the
SmartFormatextension registration toolchain, now it is easier to registerSmartFormatextensions. - Optimized the interface and methods of some content registries, now the different types of registries seem to be more unified on the call chain.
- The conversion methods between
CardKeyword,CardTag, andCardPiletypes andEnumstypes have been supplemented, and some inconsistent processing logic has been corrected.
- 修复 #36,现在设置菜单的下拉列表控件有最大高度限制,并且增加了滚动列表和虚拟列表优化,以使其能够处理大量的选项
- 修正了
SavedProperty的处理逻辑以解决特定情况下的不同步问题 - 增加了
SmartFormat扩展注册工具链,现在可以更方便地注册SmartFormat扩展 - 补充优化了部分内容注册器的接口和方法,现在不同类型的注册器的在调用链上显得会更为统一
- 现有的
CardKeyword、CardTag、CardPile现在与Enums类型的互转换方法现在都得到了补充,并且修正了部分并不统一的处理逻辑
What's Changed
- Add localization support for filter tooltips by @GlitchedReme in #35
Full Changelog: v0.2.29...v0.2.30
0.2.29
- Modify the target version of 0.105.0 to 0.105.1 and delete the support for 0.105.0
- Fixed the display effect error of the card outline rule when it is生效时部分情况下的显示效果错误问题
- Optimized and adjusted a portion of the node factory logic
- 修改 0.105.0 目标为 0.105.1,并删除 0.105.0 目标支持
- 修复了卡牌 Outline 规则生效时部分情况下的显示效果错误问题
- 优化调整了一部分节点工厂逻辑
Full Changelog: v0.2.28...v0.2.29
0.2.28
- Fixed an issue where logs could generate large amounts of unbounded noise under some weak-network conditions.
- Fixed an issue where, during handshake negotiation, attempts to initiate the handshake could retry without limit in some cases.
- Fixed an issue where, after a player disconnects, attempts to send messages to that player could retry without limit.
- setting system of runtime interop now supports I18N protocol, allowing mod authors to localize the settings interface using I18N system.
- setting system of runtime interop now supports default value protocol, allowing mod authors to set default value target in the settings interface.
- refactored some persistence related code, unified the structure and allowed using a unified interface to handle persistence operations.
- now
SaveScopeenum has two new enum values:RunSidecarandInMemory, representing session-level persistence and in-memory persistence respectively.
- now
- adjusted the log output level and timing of the patcher system, greatly reducing the log noise during normal operation.
- most debug information is now downgraded to
DEBUGlevel, if needed, please pass the--log-levelparameter at runtime to adjust the log level.
- most debug information is now downgraded to
- 修正了部分弱网环境下会在日志无限制产生大量噪音的问题
- 修正了握手协商过程中,部分情况下会无限制的尝试发起握手协商的问题
- 修正了在玩家断连后,会重复尝试再次发送消息至该玩家的问题
- 设置系统的弱依赖引用协议现在增加了 I18N 协议支持,以允许 mod 作者使用 I18N 系统来本地化设置界面
- 设置系统的弱依赖引用协议现在支持了默认值协议支持,以允许 mod 作者在设置界面中设置默认值目标
- 重构了部分持久化系统的相关代码,将结构改为更统一的形式,并允许使用统一接口来处理持久化操作
- 现在
SaveScope枚举增加了RunSidecar和InMemory两个新的枚举值,分别表示对局级持久化和内存持久化
- 现在
- 调整了 Patcher 系统的日志输出 Level 和时机,现在在正常运行过程中的日志噪音被大幅降低
- 大部分调试信息降低至了
DEBUG级别,如果有需要,请在运行时传递--log-level参数来调整日志级别
- 大部分调试信息降低至了
Full Changelog: v0.2.27...v0.2.28
0.2.27
- Improve the implementation details of AnyPlayer and Anyone targeting logic
- Add support for extra icon amount labels on the bottom right corner, and handle conflicts with vanilla UI
- Follow STS2 0.105.0: replace removed
Hook.AfterCardRetainedwithHook.AfterFlush, addBeforeFlushpatch, expose newBeforeFlushEventandCardsFlushedEvent; the legacyCardRetainedEventis replayed per retained card and marked[Obsolete] - Follow STS2 0.105.0
Badgeconstructor change:RuntimeTemplateBadgeandBadgePool.CreateAllpostfix now thread the newwonflag through the matching base ctor signature, eliminatingMissingMethodExceptionon the death screen for mods that registerModBadgeTemplate - Switch version-conditional compilation to cumulative interval macros (
STS2_AT_LEAST_<ver>) underbuild/RitsuLib.CompatDefines.targets; legacy single-targetSTS2_V_<ver>macros are gone - Maintained version is now 0.105.0, and the 0.104.0 branch will be treated as a Compat branch and will be maintained at the same level as 0.103.2
- Therefore, code still targeting 0.104.0 needs to use the new nuget package
- 优化 AnyPlayer 和 Anyone 的部分逻辑的实现细节
- 补充了右下角的额外数值角标槽位,并且增加了对不同原版角标的默认占位处理,在冲突时会报告错误
- 跟随 STS2 0.105.0 的钩子改动:用
Hook.AfterFlush取代被移除的Hook.AfterCardRetained,并补打BeforeFlush,新增BeforeFlushEvent与CardsFlushedEvent;原CardRetainedEvent在 0.105+ 上按张从AfterFlush.retainedCards回放,并标记[Obsolete]引导订阅方迁移到CardsFlushedEvent - 跟随 STS2 0.105.0
Badge构造器签名变更:RuntimeTemplateBadge与BadgePool.CreateAll后缀现按新won参数透传到匹配的基类构造函数,修复 mod 登记ModBadgeTemplate后在死亡结算页因MissingMethodException闪退的隐患 - 把版本条件编译统一改为累积区间宏(
STS2_AT_LEAST_<ver>),归口到build/RitsuLib.CompatDefines.targets;旧的单点版本宏STS2_V_<ver>已全部移除 - 主要面向版本已修改为 0.105.0,现行的 0.104.0 分支将转变为 Compat 分支并与 0.103.2 视为同等维护等级处理。
- 因此仍然面向 0.104.0 的代码需要使用新的 nuget 包
Full Changelog: v0.2.26...v0.2.27
0.2.26
- Fix some issues with max hand size calculation and modifier registration
- Fix some issues with version migration and modifier registration
- Extra icon amount labels now support custom color and outline color
- 修复了在某些情况下,手牌数量修改会重复生效的问题
- 修复了在设置版本迁移过程中会错误的触发重复注册的问题
- 额外数值角标功能现在支持自定义颜色和描边颜色了
Full Changelog: v0.2.25...v0.2.26
0.2.25
- Fixed some issues with HookedSingletonModel that were causing it to not work correctly
- 修正了 HookedSingletonModel 的部分错误实现,现在应当能正常工作了
Full Changelog: v0.2.24...v0.2.25
0.2.24
- Redesigned build workflow, now the Compat target product's manifest will have a
(STS2 <version> compat)suffix in thenamefield to clearly indicate that it is a compatibility package for a specific STS2 version. - Added a Loader project, which is used to load the corresponding STS2-RitsuLib.dll based on the game version.
- It will first look for the STS2-RitsuLib.dll corresponding to the current game version.
- If not found, it will select the one with the version closest to but lower than the current version.
- If none is found, it will load the latest version.
- The CI build artifact now contains a
STS2-RitsuLib.<version>.variant-pack.zipfile- Applicable to users, to reduce the need for users to manually download the corresponding package and switch files according to the version.
- Not applicable to development environment, because the base dll will be replaced with Loader, which will cause compilation failure.
- Only experimental support, it may be removed after the Steam Workshop is online.
- Added a website deployment workflow, which will deploy the documentation as a static website to GitHub Pages.
- Added an I18N table bridge, which is used to bridge the I18N object to the game's LocTable as a virtual LocTable.
- 重新修改了编译工作流,现在产出的 Compat 包的 manifest 中
name字段会添加(STS2 <version> compat)后缀以明确指出是针对特定 STS2 版本的兼容包 - 增加了 Loader 项目,用于根据游戏版本选择加载对应的 STS2-RitsuLib.dll
- 会优先查找当前游戏版本对应的 STS2-RitsuLib.dll
- 如果没有找到,则从低于该版本且最接近的版本中选择一个
- 如果都没有找到,则加载最新版本
- CI 构建产物现在会包含一个
STS2-RitsuLib.<version>.variant-pack.zip文件- 适用于用户,以减少用户必须根据版本手动下载对应包和来回切换文件的操作
- 无法用于开发环境使用,因为基础 dll 会被替换为 Loader,这会导致编译失败
- 仅为实验性支持,Steam 创意工坊上线后可能会被移除
- 修改了文档,添加了网站部署工作流,现在会把相关文档作为静态网站部署到 GitHub Pages
- 增加了一个 I18N 表桥接器,用于将 I18N 对象桥接到游戏内 LocTable 中作为虚拟 LocTable 使用
Full Changelog: v0.2.23...v0.2.24
0.2.23
- Added an extra corner amount labels system, allowing models to display extra amounts on the three corners other than the bottom right.
- Added HookedSingletonModel for simplifying singleton model hook subscription registration
- Added a set of JSON utilities (
STS2RitsuLib.Utils.Json)- JSON Pointer:
JsonPointer(RFC 6901,https://www.rfc-editor.org/rfc/rfc6901) - JSON Merge Patch:
JsonMergePatch(RFC 7386,https://www.rfc-editor.org/rfc/rfc7386) - JSON Patch:
JsonPatch(RFC 6902,https://www.rfc-editor.org/rfc/rfc6902) - JSON Canonicalization (JCS):
JsonCanonicalizer(RFC 8785,https://www.rfc-editor.org/rfc/rfc8785) - I-JSON Validation:
JsonIJsonValidator(RFC 7493,https://www.rfc-editor.org/rfc/rfc7493)
- JSON Pointer:
- Extended the Mod Settings registration capability without dependencies, and added ModData persistence support in non-dependency environments
- No related documentation yet, as I really don't know how to write documentation
- 添加了一个额外角标数值系统,使得支持的模型允许在除了右下角以外的三个角上显示额外的数值。
- 添加了 HookedSingletonModel 用于简化单例模型的钩子订阅注册
- 添加了一组 JSON 工具类(
STS2RitsuLib.Utils.Json)- JSON Pointer:
JsonPointer(RFC 6901,https://www.rfc-editor.org/rfc/rfc6901) - JSON Merge Patch:
JsonMergePatch(RFC 7386,https://www.rfc-editor.org/rfc/rfc7386) - JSON Patch:
JsonPatch(RFC 6902,https://www.rfc-editor.org/rfc/rfc6902) - JSON 规范化(JCS):
JsonCanonicalizer(RFC 8785,https://www.rfc-editor.org/rfc/rfc8785) - I-JSON 校验:
JsonIJsonValidator(RFC 7493,https://www.rfc-editor.org/rfc/rfc7493)
- JSON Pointer:
- 继续扩展了无依赖时的 Mod 设置注册能力,并增加了无依赖环境时的 ModData 持久化能力支持
- 暂时没有相关文档,因为我真不会写文档
Full Changelog: v0.2.21...v0.2.23