神风自爆 (Kamikaze Revenge)
基本信息
| 属性 | 值 |
|---|---|
| 类型 | 事件系统(配置 + 事件订阅) |
| 触发条件 | 玩家击杀生物(LivingDeathEvent,伤害来源必须是玩家) |
| 配置类 | com.github.namikon.angermod.config.KamikazeConfig |
| 事件类 | com.github.namikon.angermod.events.KamikazeRevenge |
| 默认启用 | false |
| 配置分类 | kamikaze |
行为
被动生物(friendly mobs)被玩家击杀时有概率原地爆炸——形成"神风特攻队"式复仇效果。
- 事件源必须是玩家造成(
source.getSourceOfDamage() instanceof EntityPlayer),且玩家不是FakePlayer。 - 检查玩家主手物品的
getUnlocalizedName()是否包含任一butcherItems关键字——若是(默认flint),则跳过爆炸(视作用"屠夫物品")。 - 否则按
chance%概率(world.rand.nextInt(100) >= chance不爆炸)触发爆炸。 - 爆炸强度:
1.5F(低强度,不会破坏太多方块)。 - 是否破坏地形 =
mobGriefing 游戏规则 && doTerrainDamage。
数值
| 数值名 | 默认值 | 范围 | 说明 |
|---|---|---|---|
enabled |
false |
bool | 是否启用整个模块 |
chance |
5 | 0 - 100 | 触发爆炸的概率百分比 |
doTerrainDamage |
false |
bool | 是否允许爆炸破坏地形(受 mobGriefing 双重控制) |
butcherItems |
["flint"] |
字符串数组 | 使用包含这些关键字的物品击杀可避免爆炸 |
屠夫物品机制
- 仅检查
player.inventory.getCurrentItem()主手物品的getUnlocalizedName().toLowerCase(),不进行元数据匹配。 - 任一关键字命中即整次击杀免爆。
- 默认
flint:使用燧石击杀被动生物即可避免爆炸——设计意图是鼓励玩家"用正确工具宰杀"。
旧版配置迁移
LegacyAngerModConfig.loadLegacyConfig 读取:
KamikazeMobRevenge(ModuleControl)→enabledKamikazeChance(Limits)→chanceKamikazeMobsDoTerrainDamage(Protection)→doTerrainDamageKamikazeItemBlacklist(Blacklist)→butcherItems