天境护甲

基本信息

天境护甲共 6 套 × 4 件 = 24 件,外加 1 件哨卫长靴,共 25 件护甲类物品。

套系 类 ArmorMaterial 修复材料 染色 注册行
紫晶 ItemZaniteArmor IRON 紫晶石 zanite_gemstone 0x711AE8 ItemsAether.java 护甲段
重力晶 ItemAetherArmor DIAMOND 魔淬重力晶矿 — 同上
海神 ItemAetherArmor DIAMOND 无 0x2654FF 同上
凤凰 ItemAetherArmor DIAMOND 无 — 同上
黑曜 ItemAetherArmor DIAMOND 无 0x1B1447 同上
女武神 ItemAetherArmor DIAMOND 无 — 同上
注册名 中文名 armorType 套系名参数
aether_legacy:zanite_helmet 紫晶头盔 0 "zanite"
aether_legacy:zanite_chestplate 紫晶胸甲 1 "zanite"
aether_legacy:zanite_leggings 紫晶护腿 2 "zanite"
aether_legacy:zanite_boots 紫晶战靴 3 "zanite"
aether_legacy:gravitite_helmet 重力晶盔 0 "gravitite"
aether_legacy:gravitite_chestplate 重力晶甲 1 "gravitite"
aether_legacy:gravitite_leggings 重力晶护腿 2 "gravitite"
aether_legacy:gravitite_boots 重力晶靴 3 "gravitite"
aether_legacy:neptune_helmet 海神头盔 0 "neptune"
aether_legacy:neptune_chestplate 海神胸甲 1 "neptune"
aether_legacy:neptune_leggings 海神护腿 2 "neptune"
aether_legacy:neptune_boots 海神战靴 3 "neptune"
aether_legacy:phoenix_helmet 凤凰头盔 0 "phoenix"
aether_legacy:phoenix_chestplate 凤凰胸甲 1 "phoenix"
aether_legacy:phoenix_leggings 凤凰护腿 2 "phoenix"
aether_legacy:phoenix_boots 凤凰战靴 3 "phoenix"
aether_legacy:obsidian_helmet 黑曜头盔 0 "obsidian"
aether_legacy:obsidian_chestplate 黑曜胸甲 1 "obsidian"
aether_legacy:obsidian_leggings 黑曜护腿 2 "obsidian"
aether_legacy:obsidian_boots 黑曜战靴 3 "obsidian"
aether_legacy:valkyrie_helmet 武神头盔 0 "valkyrie"
aether_legacy:valkyrie_chestplate 武神胸甲 1 "valkyrie"
aether_legacy:valkyrie_leggings 武神护腿 2 "valkyrie"
aether_legacy:valkyrie_boots 武神靴子 3 "valkyrie"
aether_legacy:sentry_boots 哨卫长靴 3 "sentry"

armorType 约定为 0 = 头盔、1 胸甲、2 护腿、3 靴子,与原版 ItemArmor 一致。

功能

护甲贴图

ItemAetherArmor.getArmorTexture(ItemAetherArmor.java)按套系名拼贴图路径:

return this.shouldDefualt ? (leggings ? defualt_location[1] : defualt_location[0])
    : Aether.modAddress() + "textures/armor/" + this.armorName + "_" + type1 + ".png";
  • leggings 由 getUnlocalizedName().contains("leggings") 判定,对应 layer_2,其余为 layer_1
  • shouldDefualt 为真时复用原版铁质护甲贴图 textures/models/armor/iron_layer_{1,2}.png(ItemAetherArmor.java:15-16)

注意:sentry_boots 的套系名是 "sentry",需要贴图 aether_legacy:textures/armor/sentry_layer_1.png。该文件是否存在于资源包中本次未逐一核对全部 25 件的贴图文件,仅可确证 getArmorTexture 的拼接规则。

染色

使用 5 参构造(带 hex)的三套护甲可染色:

套系 颜色值 效果
紫晶 0x711AE8 紫色
海神 0x2654FF 蓝色
黑曜 0x1B1447 近黑

getColorFromItemStack(ItemAetherArmor.java)在 colorization != -1 时返回染色值,否则返回 16777215(纯白,即不染色)。这是原版「皮甲可染色」机制的复用。

修复

getIsRepairable(ItemAetherArmor.java):

return this.source == null ? false : repair.getItem() == this.source;

只有传入了修复材料的套系才能修复:

套系 修复材料
紫晶 aether_legacy:zanite_gemstone(紫晶石)
重力晶 aether_legacy:enchanted_gravitite(魔淬重力晶矿)方块物品
海神 / 凤凰 / 黑曜 / 女武神 / 哨卫 不可修复(source == null)

稀有度

getRarity(ItemAetherArmor.java)对护甲名做字符串匹配:

return !this.armorName.contains("zanite") && !this.armorName.contains("gravitite") ? ItemsAether.aether_loot
    : super.getRarity(stack);

即除紫晶与重力晶外的所有护甲(海神、凤凰、黑曜、女武神、哨卫,共 13 件)都是绿色「天境战利品」稀有度(ItemsAether.java:57-58,EnumHelper.addRarity("aether_legacy_loot", EnumChatFormatting.GREEN, "Aether Loot"))。紫晶与重力晶护甲保持普通稀有度。

紫晶护甲的动态减伤

ItemZaniteArmor implements ISpecialArmor(ItemZaniteArmor.java:10),实现了随剩余耐久变化的动态减伤。isBetween(tool, max, min)(ItemZaniteArmor.java)判定 origin <= maxDamage - max && origin >= maxDamage - min,即按已消耗耐久分段:

部位 满耐久 25%–100% 50%–75% 75%–50% 濒临损坏
头盔(type 0) 4 3 2 1 0
胸甲(type 1) 3 2 1 0 —
护腿(type 2) 4 3 2 1 0
靴子(type 3) 4 3 2 1 0

表中的数字是传入 getDamageReductionAmount(level) 的目标等级,实际减伤点数取自 this.damageReductionAmountArray[level][this.armorType](ItemZaniteArmor.java),该数组由 ArmorMaterial.DIAMOND / IRON 决定,原版 ArmorMaterial 不在 mirror/ 中,故具体点数无法核实。

分段边界(以最大耐久为基准的已损失值,ItemZaniteArmor.java):

部位 第 1 段 第 2 段 第 3 段 第 4 段 第 5 段
头盔 0–48 49–95 96–143 144–191 192–240
胸甲 0–44 45–89 90–134 135–179 180–225
护腿 0–44 45–89 90–134 135–179 180–225
靴子 0–38 39–77 78–116 117–155 156–195

数值

数值名 值 来源
护甲件总数 25(6 套 × 4 + 哨卫靴) ItemsAether.java 护甲注册段
紫晶套 ArmorMaterial IRON ItemsAether.java
其余 5 套 ArmorMaterial DIAMOND ItemsAether.java
紫晶染色 0x711AE8 ItemsAether.java
海神染色 0x2654FF ItemsAether.java
黑曜染色 0x1B1447 ItemsAether.java
未染色回退色 16777215 ItemAetherArmor.java getColorFromItemStack
绿色稀有度物品数 13 ItemAetherArmor.java getRarity 逻辑
创造标签 AetherCreativeTabs.armor ItemAetherArmor.java 构造

合成配方

各套护甲的合成配方定义在资源包 assets/aether_legacy/recipes/ 下,按套系组织。海神、凤凰、黑曜、女武神、哨卫 5 套因不可修复且为战利品稀有度,预期为地牢战利品产出而非合成产出 —— 本次未逐一核对资源包中的 recipe JSON,故不断言。

相关条目