Choke
基本信息
| 属性 | 值 |
|---|---|
| 类名 | atomicstryker.infernalmobs.common.modifiers.MM_Choke |
| 注册名 | InfernalMobs:Choke |
| 显示前缀 | Sith Lord / Dark Lord / Darth |
| 显示后缀 | of Breathlessness / the Anaerobic / of Deprivation |
| 触发机制 | onUpdate (可见目标) + onHurt + onDeath |
| 窒息伤害 | 2.0(DamageSource.drown) |
| 窒息间隔 | 每 tick 一次 |
功能
Choke(星战"原力锁喉"梗)词缀会让怪物对视线内的目标持续抽空气:
- 怪物每次 tick 扣 1 点目标的
getAir()值(标准 Minecraft 潜水计) - 当 air 跌至 -19 以下时,触发 2.0 点
DamageSource.drown伤害(实际伤害每 20 tick 才施加一次,符合原版溺水节奏) - 攻击该怪物时,目标 air 值 +60(“被打断”,恢复节奏)
跨维度同步
- 通过
AirPacket把目标 air 值广播给服务端/客户端,避免作弊 - 玩家 UUID + 当前时间戳写入
modifiedPlayerTimes,Choke 死亡时调用resetModifiedVictim还原
触发方式
| 触发 | 行为 |
|---|---|
| 目标变化 | 重置 air 计数为 -999(即"无锁定") |
| 视线追踪 | 持续扣 air,air < -19 时每 20 tick 一次溺水伤害 |
| 怪物被目标攻击 | 目标 air +60(中断) |
| 怪物死亡 | 调用 resetModifiedVictim,还原玩家 air |
数值
| 数值 | 默认值 | 配置项 |
|---|---|---|
| 溺水伤害 | 2.0 | 源码常量 |
| air 衰减速率 | 1 / tick | 源码固定 |
| 受击恢复 | +60 air | 源码常量 |
相关条目
- Ninja - 类似瞬移反击词缀