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.26053250062+c263a06d(independent from stable release versions) -
Current Stable Line in repo:
0.2.33 -
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:
c263a06d -
Workflow Run: #26053250062
0.2.33
- Redesign and construct a better
RunSavedDatasystem- Data preservation mechanism with host authority, will automatically synchronize data to all clients at the start of the game
- Allows adjusting data before the game starts, and actively synchronizing data when switching characters or preparing
- Note: The data will be snapshotted at the start of the game, and subsequent operations should not rely on external data updates, but should use similar normal numerical update methods to update the recorded data
- Add
IModAncientActValidityinterface, providing a method similar toBaseLib'sIsValidForAct - Enhance the vanilla
DevConsolewith comprehensive, standardized, and prescriptive improvements- Now most completion candidate IDs will automatically include the localized name in the current game language
- Now allows using the localized name to search completion candidates
- Add
AssetProfilesupport forModifierModel, allowing definition of mutually exclusive groups and sorting - Remove the gate logic for the settings menu and add more logic to ensure the entry point always exists
- 重新设计并构造了一个更好的
RunSavedData系统- 数据保持主机权威机制,将会在对局开始/恢复时从主机分发数据同步到所有客户端
- 允许在对局开始前调整数据,并在切换角色、准备状态时主动同步数据,也允许手动调度推送数据
- 注意:对局开始时会对数据进行快照处理,之后的操作不应靠外部数据更新,而是用类似原版正常数值更新的方式更新记录数据
- 补充了
IModAncientActValidity接口,用于提供类似于BaseLib的IsValidForAct方法 - 完整的对原版的所有
DevConsole进行了规范、统一、指定性的增强- 现在补全的提示 ID 大多会自动添加对应当前游戏语言的本地化名称
- 现在允许使用对应当前游戏语言的本地化名称来搜索补全提示
- 补充了
ModifierModel的AssetProfile支持,以及互斥组定义和排序能力 - 移除了设置菜单的门禁逻辑,并补充了更多的确保节点存在的逻辑以保证设置菜单入口始终存在
Full Changelog: v0.2.32...v0.2.33
0.2.32
- Modified some logic to avoid potential missing reference issues
- Now when registering is frozen, the type information of the types that exist references but are not found in ModelDb will be output to the log
- Optimized some logic of the font cache to proactively re-cache new font resources when references are lost
- Fixed compatibility issues with the latest BaseLib MaxHandSize modification
- Optimized some details of the Steam integration pipeline to avoid specific behavior crashes on other platforms
- Modified some reflection property access logic to UnsafeAccessor to improve performance
- Added a log for FMOD integration to prompt for event paths that are not found in both the GUID mapping table and the loaded Studio events
- Added
IModColorfulPhilosophersCardPoolinterface, allowing users to mark custom character card pools as reward color options in Colorful Philosophers events
- 调整了一些逻辑的时序,以避免一些潜在的缺失引用问题
- 现在注册冻结时,会将存在引用但在 ModelDb 中没有查找到目标的类型信息输出到日志中
- 优化了界面字体缓存的部分逻辑,以使其在引用丢失时可以主动重新缓存新的字体资源
- 修复了与最新 BaseLib 的 MaxHandSize 修改的兼容性问题
- 优化了 Steam 集成链路的部分细节问题,以避免在其他平台下的特定行为崩溃
- 修改了部分反射属性访问逻辑为 UnsafeAccessor 以提升性能
- 为 FMOD 集成增加了一个日志,以提示 GUID 映射表与原版已加载的 Banks 中均无法查找到的 event path
- 提供了
IModColorfulPhilosophersCardPool接口,允许用户标记自定义角色卡池以在 Colorful Philosophers 事件中作为奖励颜色选项
Full Changelog: v0.2.31...v0.2.32
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