feat: 宠物行为权重系统 - #30
Merged
Merged
Conversation
行为权重系统(§1-§13、§22-§25): - 新增 Behavior/ 模块:BehaviorConfigSO(每宠一张行为表)、 BehaviorWeightCalculator(性格/精力/心情/重复四倍率纯函数)、 BehaviorSelector(硬规则过滤 + 归一化加权随机 + 强制睡觉/兜底待机)、 BehaviorRuntimeState(最近 3 行为 + 冷却表) - PetController 接入行为驱动循环:非玩家可控宠按权重自主行动, 复用手动交互绑定(BindingInteractionType);RandomWander 支持外部目标 - StatTickService 按 §11/§13 重写:清醒 3 分钟 -1 精力、睡觉停止自然衰减、 心情每 5 分钟向 50 回归 1 点 - 配置资产:BehaviorConfig_Angel/Devil、PetStateValueConfig 字段更新、 PersonalityMatrix 初始值按 §23(0-100 → 内部 -1..1);双宠 prefab 接线 交流系统(§14-§19): - 新增 Social/PetSocialService:对子亲密度(初始 30)、 NEED_SPACE/WARM/NORMAL 回应判定、结算表、300s 防刷冷却、 特殊事件旁路;IPersistentService(pet_social) - PetClickReactionController 点击触发交流(被点击=对方,另一只=发起者), NEED_SPACE/精力不足时气泡反馈 离线规则(§20): - PetRuntimeSaveService 存档 v2 附保存时刻,恢复时心情按离线时长 向 50 回归(每 5 分钟 1 点,最多 6 点),精力不衰减;v1 兼容 UI 接入: - ProfilePanelStub 关系栏改读 IPetSocialService.Friendship(数值+阶段标签), 订阅 FriendshipChanged;废弃无写入路径的 Relation 显示源 架构修正: - PersonalityVector / IPersonalityEvolutionService 上移至 Pet 程序集根 (命名空间不变),解除 Pet ⇄ Personality 程序集循环引用 测试:四倍率/选择器/Tick/社交/离线 40+ EditMode 用例(含文档示例: Mood 80 离线 2h → 74)
ULookup
force-pushed
the
feat/pet-behavior-weight-system
branch
from
August 20, 2026 14:58
84fe8c6 to
a3c3f9d
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.
概述
按策划文档《数值规则_策划补齐版》(25 节,本地文档未随本 PR 提交)完成公寓场景双宠数值系统的设计与实现:行为权重决策、双宠交流、离线规则,并把亲密度接入「宠物状态」面板。
核心公式(§25):
FinalWeight = BaseWeight × PersonalityMultiplier × EnergyMultiplier × MoodMultiplier × RepeatMultiplier改动内容
行为权重系统(§1-§13、§22-§25)
Pet/Behavior/:BehaviorConfigSO(每宠一张行为表)、BehaviorWeightCalculator(四倍率纯函数)、BehaviorSelector(精力硬规则过滤 → 冷却 → 四倍率 → 归一化加权随机;≤5 精力强制睡觉绕冷却防死锁;全零兜底待机)、BehaviorRuntimeState(最近 3 行为 + 冷却表)PetController接入行为驱动循环:非玩家可控宠按权重自主行动,复用宠物 prefab 的手动交互绑定(BindingInteractionType);RandomWander新增外部目标模式StatTickService按 §11/§13 重写:清醒每 3 分钟 -1 精力、睡觉停止自然衰减、心情每 5 分钟向 50 回归 1 点(不越过)BehaviorConfig_Angel/Devil(含性格标签/偏好精力/结算增量/冷却)、PetStateValueConfig字段更新、PersonalityMatrix初始值按 §23(文档 0-100 → 内部 -1..1);双宠 prefab 接上_config(此前悬空)与_behaviorConfig交流系统(§14-§19)
Pet/Social/PetSocialService:对子亲密度(初始 30)、NEED_SPACE/WARM/NORMAL 回应判定(对方 E<30 或 M<30 优先)、§17 结算表、300s 防刷冷却(只挡亲密度,心情/精力照常结算)、§19 特殊事件旁路;实现IPersistentService(pet_social)离线规则(§20)
PetRuntimeSaveService存档 v2 附保存时刻;恢复时心情按离线时长向 50 回归(每 5 分钟 1 点、最多 6 点,即文档示例 Mood 80 离线 2h → 74),精力不衰减;v1 存档兼容UI 接入
ProfilePanelStub关系栏改读IPetSocialService.Friendship(显示数值·阶段标签+ 进度条),订阅FriendshipChanged;废弃无写入路径的PetRuntimeData.Relation显示源测试
GeminiLab.Tests.EditMode后再合并验证步骤
30·普通;点击宠物交流后变31·普通,5 分钟内再点不变(防刷)