[MD]
### 新增
- **SX-Attribute 模式下,TacZ 重武器/爆炸的溅射伤害现在也吃属性。** 爆炸伤害是 `EntityDamageByBlockEvent`(无攻击实体),而 SX 的 `DamageData` 必须绑定 `EntityDamageByEntityEvent`。插件会构建一个仅用于计算的临时 `EntityDamageByEntityEvent`(射手→受击者),在其上跑 SX 的攻击/防御属性循环,再把计算结果(含取消判定)回写到真实的爆炸事件上,并发送命中反馈。
- 爆炸开关 `attribute-plus.apply-explosion-weapons` 现在对 AttributePlus 与 SX 两种模式都生效(关闭则两种模式都不让爆炸吃属性)。
### 注意
- 与子弹一致,SX 爆炸计算同样依赖最近开火射手缓存定位射手,并跳过带方块来源的真实爆炸(床、重生锚等)。
- 该能力依赖 SX 计算接管(`sxManualCalcReady`),反射不可用时自动降级、不影响其余功能。
### 修复
- **SX-Attribute 模式实测不生效的根因修复。** SX 自带的 `ListenerDamage` 只在伤害来源 `event.getDamager()` 是 Bukkit `Projectile`(且射手为 `LivingEntity`)或 `LivingEntity` 时才计算攻击/防御属性。而在 Mohist 上,TacZ 子弹的 Bukkit 包装是 `com.mohistmc.bukkit.entity.MohistModsEntity`(既不是 `Projectile` 也不是 `LivingEntity`,伤害 cause 为 `ENTITY_ATTACK`),因此 SX 直接 `return` 跳过,旧版调用的 `setProjectileData` 也永远不会被 SX 读取——SX 对 TacZ 伤害完全不生效。
- 现在 SX 模式下,当伤害来源是 SX 无法识别的包装实体时,插件会**自行驱动 SX 的属性计算**:用解析出的真实射手与受击者,构建 `DamageData`、遍历 `SubAttribute` 跑攻击/防御计算、回写伤害并触发 `SXDamageEvent`(与 SX 原生流程一致,命中反馈、全息等仍可联动)。当伤害来源是 SX 能原生处理的真实抛射物/生物时则不介入,避免重复计算。
[/MD]