友军动物复仇 (Friendly Animal Revenge)
基本信息
| 属性 | 值 |
|---|---|
| 类型 | 事件系统(配置 + 事件订阅) |
| 触发条件 | 玩家使用物品完成进食(PlayerUseItemEvent.Finish) |
| 配置类 | com.github.namikon.angermod.config.FriendlyAnimalRevengeConfig |
| 事件类 | com.github.namikon.angermod.events.EatCookedAnimalsEvent |
| 默认启用 | false |
| 配置分类 | friendly-animal-revenge |
行为
玩家吃完带有特定关键字的食物后,对应种类的友好动物会在 revengeRadius 范围内对玩家发起反击(造成 0 点伤害,但会将其攻击目标切换为玩家,从而触发原版 AI 反击或逃跑逻辑)。
- 食物关键字匹配:
item.getUnlocalizedName()是否包含任一xxxFoodTrigger字符串。 - 排除关键字:若同时包含任一
xxxFoodExclusions,则跳过触发(如hamburger排除pork触发)。 - 触发后,对
revengeRadius立方体内的目标动物调用attackEntityFrom(DamageSource.causePlayerDamage(player), 0f)——0 伤害但被原版 AI 视为"被该玩家攻击"。
数值
| 数值名 | 默认值 | 范围 | 说明 |
|---|---|---|---|
enabled |
false |
bool | 是否启用整个模块 |
revengeRadius |
16 | 2 - 128 | 复仇影响半径(方块) |
pigFoodTrigger |
["pork", "bacon", "ham"] |
字符串数组 | 触发猪复仇的食物关键字 |
pigFoodExclusions |
["hamburger"] |
字符串数组 | 排除词(避免误伤) |
cowFoodTrigger |
["beef"] |
字符串数组 | 触发牛复仇的食物关键字 |
cowFoodExclusions |
[] |
字符串数组 | 排除词 |
chickenFoodTrigger |
["chicken", "egg", "wing"] |
字符串数组 | 触发鸡复仇的食物关键字 |
chickenFoodExclusions |
["eggplant"] |
字符串数组 | 排除词(避免茄子触发) |
sheepFoodTrigger |
["mutton", "lamb"] |
字符串数组 | 触发羊复仇的食物关键字 |
sheepFoodExclusions |
[] |
字符串数组 | 排除词 |
目标实体 | 触发关键字参考
| 实体 | 默认触发关键字 | 默认排除关键字 |
|---|---|---|
EntityPig 猪 |
pork, bacon, ham | hamburger |
EntityCow 牛 |
beef | (无) |
EntityChicken 鸡 |
chicken, egg, wing | eggplant |
EntitySheep 羊 |
mutton, lamb | (无) |
注意:模块依赖于其他 mod 在
Entity*AI 中是否实现了"被攻击后反击/逃跑"逻辑;原版 1.7.10 的动物本身不会主动攻击玩家,因此"复仇"行为受其它 mod(如 Lycanites Mobs)影响。
旧版配置迁移
LegacyAngerModConfig.loadLegacyConfig 读取以下旧键:
FriendlyMobRevenge(ModuleControl)→enabledFriendlyMobRevengeRadius(Limits)→revengeRadiusPigFoodTrigger/CowFoodTrigger/ChickenFoodTrigger/SheepFoodTrigger(MobRevengeTrigger)→ 对应*FoodTrigger