灵气效应系统 Aura Effects

基本信息

属性 值
定义位置 common/aura/AuraEffects.java
注册 API GadomancyApi.registerAdditionalAuraEffect(Aspect, AuraEffect)(GadomancyApi.java:69)
存储 AuraEffectHandler.registeredEffects:Map<Aspect, AuraEffect>(AuraEffectHandler.java:26)
派发器 AuraEffectHandler.distributeEffects(...)(AuraEffectHandler.java:28)
效果总数 41(与 Thaumcraft 的 41 种非原初要素一一对应)
研究系统 AuraResearchManager(common/aura/AuraResearchManager.java)

派发机制

distributeEffects(AuraEffectHandler.java:28-61)的执行顺序:

  1. 若该要素无对应效果、或在客户端、或被黑名单屏蔽 → 直接返回(:29-31)
  2. 频率门控:tick % effect.getTickInterval() != 0 → 返回(:33-34)
  3. 按 getEffectType() 分派(:35-49):
AuraEffect.EffectType type = effect.getEffectType();
if (type != null) {
    switch (type) {
        case ENTITY_EFFECT: doEntityEffects(...); break;
        case BLOCK_EFFECT:  doBlockEffects(...);  break;
    }
} else {
    doEntityEffects(...);
    doBlockEffects(...);
}

getEffectType() 返回 null 是有意设计,表示「实体与方块效果都跑」。仓库中有 4 个效果采用这种方式(下表标注为「双效果」)。

  1. 范围内玩家解锁对应研究(:51-60),范围由 effect.getRange() 决定

默认参数

参数 默认值 来源
触发间隔 8 tick AuraEffect.getTickInterval(),AuraEffect.java:71-73
作用半径 8.0 AuraEffect.getRange(),AuraEffect.java:82

效果分类

分类 数量 效果
PotionDistributionEffect 24 向范围内实体分发原版 / Gadomancy 药水效果
AuraEffect.EntityAuraEffect(匿名子类) 7 仅对实体生效
AuraEffect.BlockAuraEffect(匿名子类) 6 仅对方块生效
AuraEffect(直接匿名子类,getEffectType() 返回 null) 4 双效果(实体 + 方块)
合计 41 与 Thaumcraft 的 41 种非原初要素一一对应

全部 41 种效果

全部来自同一个文件与同一套注册 API,因此合并为一页 + 变体表。PotionDistributionEffect 构造器参数为 (potion, radius, ?, duration, amplifier)。

药水分发型(24 种)

效果常量 要素 分发的药水 半径 时长 等级 行号
AER AIR Potion.moveSpeed 4 6 分钟 1 —
AQUA WATER Potion.waterBreathing 4 10 分钟 0 —
TERRA EARTH Potion.resistance 4 5 分钟 0 —
ORDO ORDER Potion.regeneration 4 3 分钟 0 —
PERDITIO ENTROPY Potion.weakness 4 3 分钟 0 —
TELUM WEAPON Potion.damageBoost 4 6 分钟 2 —
TUTAMEN ARMOR Potion.resistance 4 6 分钟 1 —
MOTUS MOTION Potion.moveSpeed 4 2 分钟 2 —
ITER TRAVEL Potion.moveSpeed 2 15 分钟 0 —
FAMES HUNGER Potion.hunger 4 2 分钟 0 —
SENSUS SENSES Potion.nightVision 2 8 分钟 0 —
VOLATUS FLIGHT Potion.jump 2 4 分钟 0 —
POTENTIA ENERGY Potion.damageBoost 4 4 分钟 0 —
TENEBRAE DARKNESS Potion.blindness 4 1 分钟 0 —
SANO HEAL Potion.regeneration 8 5 分钟 1 —
MORTUUS DEATH Potion.wither 4 3 分钟 1 —
HUMANUS MAN Potion.field_76434_w 2 4 分钟 1 —
INSTRUMENTUM TOOL Potion.digSpeed 2 6 分钟 0 —
PERFODIO MINE Potion.digSpeed 2 5 分钟 2 —
VENENUM POISON Potion.poison 2 1 分钟 0 —
VINCULUM TRAP Potion.moveSlowdown 4 3 分钟 0 —
LUCRUM GREED RegisteredPotions.POTION_LUCK 4 5 分钟 1 —
PRAECANTATIO MAGIC RegisteredPotions.VIS_DISCOUNT 4 5 分钟 1 —
VITREUS CRYSTAL RegisteredPotions.ACHROMATIC 4 5 分钟 0 —

其中 3 个直接分发 Gadomancy 自己的药水:挖掘幸运、魔力亲和、无色。

实体效果(7 种)

效果常量 要素 lang 描述(en_US.lang) 行号
VICTUS LIFE 帮助幼年动物更快长大 163
PANNUS CLOTH 在羊身上生成羊毛 177
LUX LIGHT 阻止该区域刷怪 195
AURAM AURA 把部分魔力扩散进灵气 387
COGNITIO MIND 授予更多关于原初要素的知识 414
IGNIS FIRE 蔓延火焰 504
ELDRITCH ELDRITCH 异界效果 518

方块效果(6 种)

效果常量 要素 lang 描述(en_US.lang) 行号
TEMPESTAS WEATHER 召唤闪电 219
HERBA PLANT 大幅加快附近植物的生长速度 470
ARBOR TREE 加快附近植物的生长速度 487
SOUL SOUL 唤醒不死的怪物 562
LIMUS SLIME 灵气变得更具黏性 622
BESTIA BEAST 召唤野兽 651

双效果(4 种,getEffectType() 返回 null)

效果常量 要素 行号
VITIUM TAINT 237
GELUM COLD 281
EXAMINIS UNDEAD 327
FABRICO CRAFT 441

黑名单

AuraResearchManager.isBlacklisted(aspect) 在派发入口处拦截(AuraEffectHandler.java:30)。黑名单来自配置项 auraPylonBlacklist(见配置项),ModConfig.refactorAspects 会用 Aspect.getAspect(s) 校验标签,无效标签被丢弃(ModConfig.java:160-169)。

研究解锁

玩家进入效果半径内时 AuraResearchManager.tryUnlockAuraEffect(player, aspect) 尝试解锁(AuraEffectHandler.java:59),成功后推送消息:

gadomancy.aura.research.unlock=You've discovered the effects of %s essentia.

(en_US.lang:237)

每个效果的描述文本使用 gadomancy.aura.effect.<要素标签> 模式(en_US.lang:239-282)。

数值

数值名 值
效果总数 41
覆盖要素数 41(Thaumcraft 全部非原初要素)
药水分发型 24
纯实体型 7
纯方块型 6
双效果型 4
默认触发间隔 8 tick
默认作用半径 8.0
最短持续时间 1 分钟(TENEBRAE、VENENUM)
最长持续时间 15 分钟(ITER)
最高药水等级 2(TELUM、MOTUS、PERFODIO)
最大药水半径 8(SANO)
最小药水半径 2(ITER、SENSUS、VOLATUS、HUMANUS、INSTRUMENTUM、PERFODIO、VENENUM)
分为最大药水量 10(AQUA)

交互

触发 行为
灵气塔在范围内 每 8 tick 派发一次对应要素的效果
灵气核心实体在范围内 同上
玩家进入范围 解锁该要素的灵气效应研究
要素在黑名单中 效果被完全跳过

相关条目