污秽生物(Taint Creatures)
被污秽(taint)转化而来的生物。全部实现空标记接口 ITaintedMob(thaumcraft.api.entities.ITaintedMob,接口体为空,只有 {}),供 TaintData / 转化逻辑识别。共 10 个注册实体。
基本信息
| 属性 | 值 |
|---|---|
| 模组 | thaumcraft |
| 注册代码 | common/config/ConfigEntities.java:136-163 |
| 类目录 | common/entities/monster/(9 个)+ common/entities/monster/boss/(1 个) |
| 实体 ID | 34–47 |
| 标记接口 | thaumcraft.api.entities.ITaintedMob(空接口) |
| 刷怪蛋 | 全部经 ItemSpawnerEgg.addMapping(名字, 前景色, 背景色) |
10 个注册实体
| ID | 注册名 | 类 | 继承 | 生命值 | 刷怪蛋颜色 |
|---|---|---|---|---|---|
| 34 | ThaumSlime |
EntityThaumicSlime |
EntityMob implements IMob, ITaintedMob |
随体积变(见下) | 前景 16761087 / 背景 16744703 |
| 35 | TaintSpider |
EntityTaintSpider |
— | 已有条目 | 16761087 / 4210752 |
| 36 | Taintacle |
EntityTaintacle |
EntityMob |
50.0 | 16761087 / 8388736 |
| 37 | TaintacleTiny |
EntityTaintacleSmall |
EntityTaintacle implements ITaintedMob |
8.0 | 16761087 / 8388752 |
| 38 | TaintSpore |
EntityTaintSpore |
— | 随孢子大小变 | 16761087 / 8388720 |
| 39 | TaintSwarmer |
EntityTaintSporeSwarmer |
EntityTaintSpore |
75.0 | 16761087 / 8388704 |
| 40 | TaintSwarm |
EntityTaintSwarm |
EntityMob implements ITaintedMob |
30.0 | 16761087 / 8388688 |
| 41 | TaintedChicken |
EntityTaintChicken |
EntityMob implements ITaintedMob |
8.0 | 16761087 / 12632256 |
| 42 | TaintedCow |
EntityTaintCow |
EntityMob implements ITaintedMob |
40.0 | 16761087 / 8272443 |
| 43 | TaintedPig |
EntityTaintPig |
EntityMob implements ITaintedMob |
20.0 | 16761087 / 15702511 |
| 44 | TaintedSheep |
EntityTaintSheep |
EntityMob implements **IShearable**, ITaintedMob |
20.0 | 16761087 / 8421504 |
| 45 | TaintedVillager |
EntityTaintVillager |
EntityMob implements ITaintedMob |
30.0 | 16761087 / 65535 |
| 46 | TaintacleGiant |
EntityTaintacleGiant |
EntityTaintacle implements **IBossDisplayData**, ITaintedMob |
125.0 | 16761087 / 8421504 |
| — | TaintedCreeper |
EntityTaintCreeper |
— | — | 已有条目 |
⚠️
TaintableGiant与TaintedSheep的刷怪蛋背景色都是8421504(ConfigEntities.java:163与:159),即用刷怪蛋区分不出这两个。
数值
生命值一览
| 实体 | 生命值 | 来源 |
|---|---|---|
ThaumSlime |
= 体积(setSlimeSize 里 getEntityAttribute(maxHealth).setBaseValue(par1),par1 就是大小) |
EntityThaumicSlime.java:216 |
Taintacle |
50.0 | EntityTaintacle.java:73 |
TaintacleTiny |
8.0 | EntityTaintacleSmall.java:23 |
TaintSpore |
= 孢子大小(setSporeSize 里 experienceValue = par1,血量同理) |
EntityTaintSpore.java:156 |
TaintSwarmer |
75.0 | EntityTaintSporeSwarmer.java |
TaintSwarm |
30.0 | EntityTaintSwarm.java |
TaintedChicken |
8.0 | EntityTaintChicken.java:55 |
TaintedCow |
40.0 | EntityTaintCow.java:47 |
TaintedPig |
20.0 | EntityTaintPig.java:47 |
TaintedSheep |
20.0 | EntityTaintSheep.java:59 |
TaintedVillager |
30.0 | EntityTaintVillager.java:71 |
TaintacleGiant |
125.0 | boss/EntityTaintacleGiant.java:43 |
EntityThaumicSlime 的体积—血量联动
setSlimeSize(int par1)(EntityThaumicSlime.java:216):
this.dataWatcher.updateObject(16, new Byte((byte) par1));
float ss = (float) Math.sqrt(par1);
setSize(0.25F * ss + 0.25F, 0.25F * ss + 0.25F);
setPosition(this.posX, this.posY, this.posZ);
getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(par1); // 血量 = 体积
setHealth(getMaxHealth());
this.experienceValue = (int) ss; // 经验 = sqrt(体积)
体积 par1 |
碰撞半宽 | 经验值 |
|---|---|---|
| 1 | 0.5 | 1 |
| 2 | ≈0.604 | 1((int) 1.414 = 1) |
| 4 | ≈0.75 | 2 |
构造函数里体积取 1 << rand.nextInt(3) ⇒ 1 / 2 / 4 三种,血量同样是 1 / 2 / 4。
EntityTaintSpore 的孢子大小
setSporeSize(int par1)(EntityTaintSpore.java:156):碰撞半宽 max(0.15 × par1, 0.5),经验值 = par1。
EntityTaintacleSmall 的寿命
EntityTaintacleSmall.java:11 声明 int lifetime = 200; ⇒ 小污秽触手生成后 **200 tick(10 秒)**消散。
其它
| 属性 | 值 | 来源 |
|---|---|---|
| 本页覆盖实体 | 10 | ConfigEntities.java:136-163 |
| 全部实体 ID 范围 | 0–49 | ConfigEntities.java:74 起 id++ |
ITaintedMob 接口体 |
空(只有 {}) |
thaumcraft/api/entities/ITaintedMob.java |
EntityTaintedSheep 额外实现 |
IShearable(可被剪刀剪毛) |
类声明 |
EntityTaintacleGiant 额外实现 |
IBossDisplayData(Boss 血条) |
类声明 |
交互
| 实体 | 行为 |
|---|---|
ThaumSlime |
会跳、会吐出远程攻击(spitCounter 初始 100,每次 setThrowableHeading 构造);launched = 10 |
TaintedChicken |
模仿原版鸡的跳动逻辑(保留 field_752_b / field_753_a / destPos 字段) |
TaintedVillager |
保留 randomTickDivider 与 isMatingFlag 字段,即仍会尝试繁殖 |
TaintedSheep |
吃草、IShearable 剪毛 |
TaintacleTiny |
200 tick 后自动消散 |
TaintSwarmer |
继承 EntityTaintSpore,是孢子群落里的大号个体(75 血) |
TaintacleGiant |
Boss,带血条,血量 125 |
相关条目
- Taint Spider - ID 35,已单独建条目
- Taintacle - ID 36,已单独建条目
- Taint Spore - ID 38,已单独建条目
- Tainted Creeper - ID 43,已单独建条目
- Wisp - 污秽的"友善"对应物(
EntityWisp,ID 21) - Eldritch Golem - 污秽的"高级"对应物