当前奖励池生命周期与直接死亡交接

后续:XP接收、等级修正与主从转发已补XP接收核,正式状态与死亡事务仍在接线范围内。

接续出生奖励计算。本批增加独立当前池状态和交接核心,未声称正式战斗中的奖励接收器/致死事务已经接完

当前值不是出生值

NativeRewardPoolSnapshot 分别保存可空的XP/fame:null是未知,0是已知零。不能用 InitialRewards 填补未知或已经消耗的当前值。

  • 普通重算55D3EB:重算前当前XP为0,跳过DAT读取和经验计算。
  • 重算前XP非0,重读DAT XP后继续计算;新读到0也仍进入41E440,不重新套新建实例的跳过门。
  • 普通重算保留fame;首次冠军化重写XP/fame,已有冠军标志则不重写。
  • 53BE74的复活相关写入只清XP,不能据此推导fame也应清零;完整复活门不属于本批交接核。

普通伤害死亡的奖励交接

原53DD35..53DDA3在上游门和来源选择之后:

text
死亡回调(source)
if source存在:
    经验回调(source, 重新读当前XP)
    声望回调(source, 重新读当前fame)
    清XP和fame

死亡回调可改写两池,XP回调可改写fame,必须读取回调后的值。有来源时才在这段末尾清池;来源为空则只调用死亡,不额外读取/清池。

持续死亡的顺序则是奖励、清池、事件通知、死亡。两者不能用同一套固定次序替代。

事务边界和验证

NativeRewardPoolTransaction 是暂存工作副本,整个外层准备成功后才发布快照;它不能回滚任意外部I/O。持续死亡核测试也已改用这个工作池。

64组原53DD35机器码交接对照,包含回调修改池、有无来源和零/负奖励,顺序与结果一致。死亡和奖励虚函数是明确边界,没有以此声称验证完整伤害/XP成长/onDeath处理器。

1534条核心断言、315项相关Python回归、Godot C#构建和架构lint通过;普通重算零门、冠军化门、未知字段和失败不发布也有回归。

正式当前池维护、实际XP/fame接收器及完整致死事务仍待接入。TYPE52准入未开放,武器构造仍1053/1419。