DoT接收门与自动来源上下文(v38)
2026-09-20。本批将TYPE52接收门及来源输入接入正式HIT准备过程。调用方不再必须手工提供NativeDotCombatContext;缺失时由核心读取实际单位/物品事实构建。显式上下文仍可用于已有隔离参考测试。
原接收门
5253D0的TYPE52路径:
- DAMAGEABLE(+6AB)为false时拒绝,不继续读其他条件。
- 读取IGNORES_PLAYER_DAMAGE;为true且源单位自身具有PLAYER类型时拒绝。
- 519DC0检查原状态不是5/6。它不检查HP浮点值。
51C9C0中,DAT存在但键缺失默认false;整个DAT对象不存在则返回true。二者不能合并成一个默认值。
装备来源即使由玩家持有,也不是“把持有者代入PLAYER类型检查”。角色来源则按实际UNITTYPE闭包判断,不用是否有人类控制代替类型。
TYPE64/STUN不受此门的DAMAGEABLE限制;106/107/108/109检查TYPE122护盾,这是其他分支,不能泛化成所有效果免疫。
新增原机器码参考:5253D0、51C9C0的DAT对象缺席分支及519DC0真实状态getter,共1576组。DAT键查询、源类型查询、护盾和字符串为明确边界。覆盖HP负/零/正、状态0/5/6/49、前后两次门调用标志,以及玩家/装备/从属角色来源;结果和短路查询次数一致。
MIMICIDLE不是当前状态枚举
513770通过名称定位状态对象,再由513200查两个状态列表。不能仅凭当前NativeState==49推导完整named-state membership。
56D380在加载MIMIC类型时显式设置MIMICIDLE。新怪物由已绑定的原UNITTYPE表初始化该标志;普通怪为false,MIMIC为true。类型资料不足或旧快照未保存时保留未知。SetNativeMimicIdle/核心SetMimicIdle用于明确的命名状态变更,不把通用CHASE事件猜成“已经醒来”。
TYPE52在562590内的MIMICIDLE检查位于临时复制之后:拒绝挂载仍保留已发生的复制随机数。不会反推成“未消耗任何随机数”。
本批没有宣称宝箱怪完整唤醒AI/动画状态机已经实现。
自动来源数值
- 装备不是CCharacter,不读取持有者的伤害/专注作为施加期倍率。
- 角色来源读取stat25的ALL及当前通道、原root-owner的stat91,以及MAGIC_BONUS_TO_SKILL的专注结果×原0.01f。
- 原CCharacter构造器555898/5558E5给基础专注10,不是0;CPlayer构造默认3,加载职业后以实时玩家属性为准。
- 51BB80的root owner不是“无条件最上层主人”:非ATTACHES_TO_MASTER单位直接返回当前master;附着链按原分支继续,循环资料明确拒绝。
- 当前应用是单机,没有其他玩家或强制人数模拟;PVM/MVP因子按该已声明上下文为1,不借用难度系数。多人上下文没有冒充完成。
门拒绝或MIMICIDLE早退时,不会先索要根本不会读取的角色数值。DAMAGEABLE=false的旧单位即使其他事实未知,也可以按原短路正确拒绝附加。
数据与保存
新增NativeEffectReceiverSnapshot,保存DAT是否存在、IGNORES_PLAYER_DAMAGE、MIMICIDLE、ATTACHES_TO_MASTER和基础Focus。静态定义事实与实时命名状态独立。
- 怪物导出增加两个原DAT布尔键及来源;窄表仍14形态,全表2284形态。
- 四职业定义导出相同静态键,均按原读取默认值处理。
- v38保存这些事实;旧数据缺失时不从HP、当前模型或当前状态枚举猜补。
- 读取器来源哈希变化后,已重建单位/角色碰撞派生产物:7731定义、225请求中224就绪、222份几何,覆盖不变。
实际验证
1657条核心断言通过,包括门结果/短路、真正HIT自动挂载、装备与PLAYER来源区别、Focus加成、MIMIC复制随机数、状态显式移除、未知事实回滚、旧数据,以及root-owner分支。接收门拒绝后不会再要求未使用的旧来源等级或实例ID。
tl2_dot_receiver_world_probe.gd使用实际ECHO PASS、正常装备的起始剑与原动画HIT。源物品额外TRANSFER模板、HP与种子为显式夹具;不直接向目标安装DoT,也不手工传Dot接收参数。结果:
- 原HIT附加1个DoT,保留物品来源实例。
- 本次参考值14.63238,下一0.1秒周期使HP从99987降到99985.5390625。
- 读取/恢复后继续相同周期逐字节一致。
这是headless数值和实际入口验证,不是完整原版武器/粒子外观验收。
最终334项相关Python回归通过,Godot构建零警告零错误;lint和diff检查通过。默认玩家存档哈希未变。
产物:build/native_dot_receiver_oracle/results.json、dot_receiver_core.log、dot_receiver_build.log、dot_receiver_world/run.log及dot_receiver_python.log。
下一段与未完成
当前TYPE52首阻塞组53件中,48件直接引用BLEEDING主题,另外5件来自间接效果链。接收门已能自动生成,但这些主题和相应生命周期尚需接入;没有因为现在能扣血就静默丢掉视觉属性并放行。
仍需:BLEEDING/UNITTHEME表现与引用保存、间接链剩余处理器、完整MIMIC状态驱动、owner-skill/modifier分支及其他动态类型。完整原版死亡分支与XP等级提升仍是独立未完成项。
构造审计仍1053/1419,319处理/上下文阻塞、47基础缺口、0意外构造失败。main原地修改,未提交。默认warp_autosave.json未改,SHA256仍9840fe858b6e311c73f8c2d4ed49912d59d71365f6278392811730e012d32a7f。