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 |
源码常量 |
相关条目