桦栗果精 Birchnutter
“疯狂的小坚果。”—— 威尔逊检查它时说
桦栗果精是桦栗树进入怪物状态时生成的敌对生物。它会从地下出现并追击可攻击目标,离目标较远时使用跳跃攻击;击杀后随机掉落一枚桦栗果或一些树枝。
概述
桦栗果精带有 monster、birchnutdrake 和 scarytoprey 标签,是敌对生物。它由桦栗树的 DeciduousTreeUpdater 生成:桦栗树进入怪物状态后会在周围生成桦栗果精,并让它们优先攻击相关目标;桦栗树停止怪物状态时,会取消后续的桦栗果精生成任务。
属性
| 属性 | 数值 |
|---|---|
| 生命值 | 50 |
| 攻击力 | 5 |
| 攻击间隔 | 2 秒(SetAttackPeriod(2),源码固定值) |
| 攻击距离 | 2.5;追击判定距离为 3(SetRange(2.5, 3),源码固定值) |
| 移动速度 | 行走 3.5(源码固定值) |
它没有独立的理智光环或掉落表定义。
行为
生成与出现
桦栗果精由桦栗树的更新组件生成,而不是通过独立的世界生成房间出现。桦栗树进入怪物状态后,会在树周围分批生成桦栗果精;生成的个体会获得树当前的目标,或者寻找附近的玩家作为目标。桦栗树被点燃时也有单独的桦栗果精生成流程。
桦栗果精的状态图以 spawn 为初始状态:它先处于地下、不可见且不能攻击的状态,随后播放钻出地面的动画并进入正常状态。离开时播放钻入地下的动画,动画结束后实体被移除,因此它不是被击败后才回到树下。
索敌与追击
- 每秒执行一次重新索敌;默认索敌距离为
7 × 1.5。 - 目标必须带有
_combat标签,且不能带有wall、birchnutdrake或INLIMBO标签;实际目标仍需通过战斗组件的可攻击判定。 - 保持目标的条件包括:目标未死亡、仍可攻击,且距离不超过 20;桦栗果精处于隐藏状态时会继续保持目标。离开状态或失去目标一段时间后,它会触发钻地离场。
- 行为树优先处理恐慌和电击恐慌,其次是回到出生点附近的范围约束,之后才是追击与攻击。出生点记录为它初始化时的位置,离出生点超过 20 后会执行范围约束。
群体反应
桦栗果精受攻击时会立即把攻击者设为目标,并向 15 范围内最多 10 只仍存活的桦栗果精分享目标。它们不会通过这段分享逻辑把目标传给其他种类的生物。
攻击方式
桦栗果精有普通攻击和跳跃攻击两种状态:
- 目标距离不超过 2 时进入普通攻击状态。
- 目标距离大于 2 且目标仍有效时进入
attack_leap,攻击动画期间会向前跳跃,并在动画第 12 帧执行一次攻击。 - 普通攻击同样在攻击动画第 12 帧执行伤害;两种攻击都由战斗组件实际结算,攻击力为 5。
它可以被冰冻和电击,状态图为这些效果加入了对应状态;同时支持燃烧。死亡后会在短暂延迟后熄灭身上的火焰。
掉落
击杀桦栗果精后,掉落组件会随机选择 1 件物品:
这两个权重来自 scripts/prefabs/birchnutdrake.lua 中的 AddRandomLoot;源码没有为该生物定义额外的固定掉落。
应对
动画




deciduoustree_tall