Releases: BAKAOLC/STS2-RitsuLib
Releases · BAKAOLC/STS2-RitsuLib
0.4.5
- Optimized some Loader's work logic, ensuring that when using multi-variant RitsuLib, it can correctly load and use the content from each variant.
- 优化了 Loader 的部分工作逻辑,以确保在使用多变体 RitsuLib 时,能够正确地加载和使用各个变体中的内容
Full Changelog: v0.4.4...v0.4.5
0.4.4
- Relaxed the conditions for unlocking characters; now if the required target character already has a match in the record, the corresponding unlock epoch will be retroactively granted
- Now attempts to mirror record backup progress data to prevent data loss caused by MOD reinstallation
- For records protected by mirroring, relevant WARN logs will be automatically filtered to avoid duplicate log noise
- Added a simple log server and a log display page to facilitate viewing logs and debugging
- Can be configured via the settings menu, or use the console input
openlogviewerto open
- Can be configured via the settings menu, or use the console input
- Fixed an issue where incorrect initialization timing of the
CombatOnlycard pool caused cards added directly to the pool to fail to register for network synchronization - Optimized some
HoverTiprelated logic to reduce potential derivative issues caused by the game's native implementation - Adjusted the structure and position of parts of the settings menu
- 放宽了对于角色解锁的判定条件,现在如果需求的目标角色在记录中已经存在对局,那么就会直接补发对应的解锁纪元
- 现在会尝试镜像记录备份进度数据,以避免因 MOD 重新安装导致记录的数据丢失
- 对于被镜像保护的记录,会自动过滤相关的 WARN 日志,以避免重复的日志噪音输出
- 添加了一个简易日志服务器以及日志显示页面,以方便查看日志和调试
- 可通过设置菜单配置,或者使用控制台输入
openlogviewer打开
- 可通过设置菜单配置,或者使用控制台输入
- 修复了
CombatOnly的牌堆的初始化时机错误导致直接加入牌堆无法正确注册网络同步卡牌的问题 - 优化了部分
HoverTip相关的逻辑,以减少因游戏原生实现的问题导致的一些可能的衍生问题 - 调整了部分设置菜单的结构和位置
Full Changelog: v0.4.3...v0.4.4
0.4.3
- Add some missing registration APIs
- Remove a useless built-in utility type
- Add a unified
GetDynamicEnumValueRegistryimplementation, to allow managing dynamic enum values in a unified way, avoiding duplicate implementations- Based on
DynamicEnumValueMinter, and unify the scattered Minter implementations into this interface - To keep the value result consistent, the old Minter rules are implemented as a special case, and other enum types will use the enum value name as the category name
- Add a set of get value APIs that ignore collision detection, to allow getting values even when collision occurs, only for debugging or special scenarios
- Based on
- Add audit logs for dynamic enum value generation and registration, and detect collision cases
- Since RitsuLib's design intention, when collision occurs, no automatic avoidance will be generated, and collision resolution needs to be explicitly adjusted to solve the collision problem
- Although the collision probability is extremely low due to the use of
XxHash32as the hash function, you still need to be aware that it is possible to occur
- Optimize the gamepad operation and focus display logic in the settings UI
- Now correctly parse
BaseLib's customTargetTypeinto the unifiedGetTargetslist - Now
ModCreatureVisualPlaybackand other state machines allow deriving the duration and remaining time of the animation, to allow more accurate control of death animations, etc.- This also means that non-Spine characters no longer need to override
DeathAnimLengthOverrideto set the death animation duration
- This also means that non-Spine characters no longer need to override
- Adjust the implementation details of
RitsuLib-managed GameActionto allow it to be correctly replayed, solving the problem of generating a lot of log noise
- 补充了部分缺失的注册 API
- 删除了一个无用的内置工具类型
- 补充了一个统一的
GetDynamicEnumValueRegistry实现,以允许用统一的方式管理动态枚举值,避免分别重复实现- 基于
DynamicEnumValueMinter实现,并将原本分散的各个 Minter 统一到这个接口中 - 为了保持值结果一致,老的 Minter 规则作为特例实现专门处理,其他的枚举类型将会使用枚举值名称作为分类名
- 补充了一组无视碰撞检查的获取值 API,以允许在发生碰撞时也能获取到值,仅用于调试或特殊场景
- 基于
- 补充了动态枚举值生成并注册后,检测到发生碰撞时的审计日志
- 由于 RitsuLib 的设计意图,发生碰撞时不会产生自动避让,发生碰撞时需要明确的自主调整以解决碰撞问题
- 尽管由于使用
XxHash32作为哈希函数,碰撞概率极低,但你仍然需要明确知道这一点是有可能发生的
- 优化了设置界面的手柄操作和焦点显示逻辑
- 现在能正确将
BaseLib的自定义TargetType也纳入统一的解析方式获取 Targets 列表 - 现在
ModCreatureVisualPlayback和其他的状态机均允许推导获取动画的时长和剩余时间,以允许更准确的控制死亡动画等时长- 这也代表非 Spine 角色不再必须覆写
DeathAnimLengthOverride以设置死亡动画时长
- 这也代表非 Spine 角色不再必须覆写
- 调整了
RitsuLib-managed GameAction的实现细节以允许其正确回放,解决其会生成大量日志噪音的问题
Full Changelog: v0.4.2...v0.4.3
Development build (dev)
This is an automated development build from branch dev.
-
Development Version:
9999.0.0-dev.26844572387+0e9ac024(independent from stable release versions) -
Current Stable Line in repo:
0.4.5 -
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:
0e9ac024 -
Workflow Run: #26844572387
0.4.2
- Simplified some creation logic of the settings menu, to reduce the overhead of interface instantiation
- Continued to adjust the logic of some logs, to reduce the unnecessary stack information output
- Fixed some possible NRE issues caused by the unsafe implementation of the original code itself
- Fixed some issues caused by the inconsistent template code usage resulting in patch failure due to inconsistent function matching results
- 简化了设置菜单的部分创建逻辑,以降低界面实例化时的开销
- 继续调整部分日志的逻辑,减少不必要的堆栈信息输出
- 修正了由于原版代码本身的不安全实现导致的部分可能的 NRE 问题
- 修正了由于部分使用了不一致的模板代码导致实际函数匹配结果不一致而产生补丁失败的问题
Full Changelog: v0.4.1...v0.4.2
0.4.1
- Continued to adjust the output format of some logs
- Fixed a patch target error in 0.103.2/0.103.3
- 继续调整了部分日志的输出格式
- 修正了 0.103.2/0.103.3 一个错误的补丁目标
Full Changelog: v0.4.0...v0.4.1
0.4.0
- Fixed some logging level errors in
ModPatcher - Compatible Change: Refactored the implementation of
RitsuLibSidecarSyncMessagesto implement a more完善的 game-internal sync message mechanism - Compatible Change: Modified the sync logic for right-click trigger behaviors, some behaviors may have changed, but now it is more符合游戏原生的操作行为
- Fixed some implementation of
Encounter'sIsValidForActto make it able to correctly cover most of the paths- Now
Boss Encounterwill be re-evaluated whether it can appear when entering the Act, instead of following the original开局创建逻辑
- Now
- Experimental Feature: Added
Model Capabilitysystem, to support adding logic to models in a similar component form- Since it is an experimental feature, the API is not guaranteed to be stable in future versions, but it is now available
- To reduce the learning burden and memory cost for other libraries, some values will be processed in a similar way, but it is not guaranteed to remain consistent in future versions
- 修正了
ModPatcher的部分日志等级错误 - 兼容性变更: 重构了
RitsuLibSidecarSyncMessages的实现,以实现更完善的游戏内同步消息机制 - 兼容性变更: 修改了右键触发行为的同步逻辑,部分行为可能会发生变更,但现在更符合游戏原生的操作行为
- 修正了
Encounter的IsValidForAct的部分实现,以使其能够正确覆盖大多数的路径- 现在
Boss Encounter会在进入 Act 时重新判定其是否可以出现,而不是遵循原版的开局创建逻辑
- 现在
- 实验性功能: 增加了
Model Capability系统,以支持使用类似组件的形式为模型动态添加逻辑- 由于为实验性功能,目前不保证其 API 在之后的版本的稳定性,但目前已经属于可用范畴
- 为降低与其他库的学习负担和记忆成本,部分值行为会使用类似的方式进行处理,但不保证未来版本会保持一致
Full Changelog: v0.3.10...v0.4.0
0.3.10
- Added
IModEncounterActValidityto support additional checks for whether a custom encounter should be generated in a given Act. - Improved the behavior of
WithVisibleOnHostSurfacesoption in settings, adding missing boundary condition handling. - Added support for navigating to specific settings from the console.
- Added reset default value buttons at the page and section levels in the settings menu.
- Only handles settings with default values, meaning options with reset default value functionality in the right-click menu.
- 添加了
IModEncounterActValidity以支持自定义 Encounter 添加额外的判定是否在某个 Act 中生成。 - 优化了设置中
WithVisibleOnHostSurfaces选项的表现,补充了部分缺失的边界条件处理 - 现在支持在控制台中使用指令跳转到指定的设置
- 补充了设置菜单中默认的页面级和章节级的重置默认值功能按钮
- 只会默认处理传递了默认值的设置项,也就是每个右键选项中存在重置默认值功能的选项
Full Changelog: v0.3.9...v0.3.10
0.3.9
- Optimized the time allocation logic, to reduce the wait time before entering the main menu
- Corrected some logic that may repeat timing, to more accurately record the time taken by each phase of RitsuLib startup
- Added a Mod load order sorting feature, which can use a fixed algorithm to rearrange the load order of Mods
- Supports copying the current order to other users and pasting it for others to use
- While in practice it is generally recommended to use the fixed sorting algorithm directly
- Supports copying the current order to other users and pasting it for others to use
VisualCueSetnow supports setting the duration of a single frame, to allow quick use of single frame sequence animations- The single frame sequence itself did not recognize the duration, now it has been changed to correctly recognize and use the duration parameter
- 优化了启动时间分配逻辑,以减少进入主菜单前的等待时间
- 修正了部分可能会重复计时的逻辑,以更准确的记录 RitsuLib 启动时的各个阶段耗时
- 增加了一个 Mod 加载顺序排序功能,可以用一个固定的算法重新排列 Mod 的加载顺序
- 支持复制当前顺序给其他用户,并让其他用户粘贴使用你的顺序
- 虽然实际一般来说建议直接用固定排序算法即可
- 支持复制当前顺序给其他用户,并让其他用户粘贴使用你的顺序
VisualCueSet现在支持给单帧设置时长,以允许快捷使用单帧序列动画- 原本的单帧序列本身不识别时长,现在改为了会正确识别并使用时长参数
Full Changelog: v0.3.8...v0.3.9
0.3.8
- Fixed a potential duplicate error point in a scroll container
- Optimized the duplicate check logic of ModelID, to reduce the query overhead of the registration process at startup
- Added a timing logic for auditing purposes, used to record the time taken by each phase of RitsuLib startup
- Cleaned up some unused dead code, to improve the readability and maintainability of the code
- 修正了一个滚动容器可能会出现的重复报错点
- 优化了 ModelID 的查重逻辑,以降低启动时注册流程的查询开销
- 增加了一个审计用途的计时逻辑,用于记录 RitsuLib 启动时的各个阶段耗时
- 清理了一部分未使用的死代码,以提高代码的整洁度和可读性
Full Changelog: v0.3.7...v0.3.8