Ice Crystal(冰晶)

事实基准:/Users/evlos/a/mirror/twilightforest(minecraftVersion = 1.7.10)逐行读源码。

基本信息

属性 值 来源
注册实体名 TwilightForest:Ice Crystal TwilightForestMod.java:743-748
实体 ID 常量 idMobIceCrystal = 235 TwilightForestMod.java:1137
类 twilightforest.entity.boss.EntityTFIceCrystal entity/boss/EntityTFIceCrystal.java(121 行)
父类 net.minecraft.entity.monster.EntityMob 同上 :19
尺寸 setSize(0.6F, 1.8F) 同上 :34
蛋色 主 0xdce9fe / 副 0xadcafb TwilightForestMod.java:747-748
所属结构 冰霜高塔(iceTower 特性 ID 7) TFFeature.java:89

数值

属性 值 来源
maxHealth 10.0 EntityTFIceCrystal.java:44
movementSpeed 0.23 同上 :45
attackDamage 5.0 同上 :46
每区块生成上限 8 同上 :66-68
召唤后存活上限 maxCrystalAge 600 tick(30 秒) 同上 :92-94
crystalAge 初值 0(onLivingUpdate 每 tick +1) 同上 :21、:112

AI 行为 / 特殊机制

isAIEnabled() 恒为 true(:52-54)。任务表(:27-33):

优先级 任务 行号
0 EntityAISwimming :27
1 EntityAIAttackOnCollide(EntityPlayer, 1.0D, false) :28
2 EntityAIWander(this, 1.0D) :29
3 EntityAIWatchClosest(EntityPlayer, 8.0F) :30
3 EntityAILookIdle :31

targetTasks:EntityAIHurtByTarget(优先级 1)与 EntityAINearestAttackableTarget(EntityPlayer, 0, true)(优先级 2)(:32-33)。

限时自毁:构造时 maxCrystalAge = -1(:36,即默认永不过时)。 被雪之女王召唤时调用 setToDieIn30Seconds() 把 maxCrystalAge 设为 600 (:92-94),onLivingUpdate 在 crystalAge >= maxCrystalAge 且非客户端时 setDead()(:117-119)。注意:它只是 setDead(),不掉落经验球。

召唤来源:EntityTFSnowQueen.java:593-595 生成后于 :598 立刻调用 setToDieIn30Seconds()(源码注释 // don't stick around)。

掉落:getDropItem() 返回 Items.snowball(:59-61)——原版雪球。 本类没有 dropFewItems 覆写,不掉落 TwilightForest 任何物品,也不掉 trophy。

音效:mob.ice.noise / mob.ice.hurt / mob.ice.death(:71-87), 与 Stable / Unstable Ice Core 共用同一组音效。

未实装部分:源码中 getCreatureAttribute() 返回 UNDEAD 的重写被整段注释 (:96-103),手持 TFItems.iceSword 的代码也被注释(:38), 故冰晶不是亡灵、也不会自带冰剑。

无刷怪蛋:TFFeature 与 biomes 中没有 Ice Crystal 的生成条目, 只能由雪之女王召唤或用刷怪蛋放置。

相关条目