灵气效应系统 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)的执行顺序:
- 若该要素无对应效果、或在客户端、或被黑名单屏蔽 → 直接返回(
:29-31)
- 频率门控:
tick % effect.getTickInterval() != 0 → 返回(:33-34)
- 按
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 个效果采用这种方式(下表标注为「双效果」)。
- 范围内玩家解锁对应研究(
: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 派发一次对应要素的效果 |
| 灵气核心实体在范围内 |
同上 |
| 玩家进入范围 |
解锁该要素的灵气效应研究 |
| 要素在黑名单中 |
效果被完全跳过 |
相关条目