『模组开发日记』之寒冰剑

本文最后更新于 2025年9月14日 下午

寒冰剑(强大的武器)


在到后期有了暗晶剑后,我们还有通过对暗晶剑进行升级来得到寒冰剑

寒冰剑的合成

寒冰剑通过使用一个下界之星和两个冰晶合成

寒冰剑的合成

冰晶则需要通过四块蓝冰,四颗钻石,和一块紫水晶碎片来合成

冰晶的合成

寒冰剑的功能

寒冰剑继承了暗晶剑的吸血功能并且在攻击生物是会对生物施加霜冻效果

霜冻

每施加一次霜冻效果会有两秒的冷却时间

了解霜冻机制请点这里

寒冰剑相比暗晶剑还有一点伤害提升

可以说是后期神器了


代码演示

下面是寒冰剑的具体实现代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
//寒冰剑
public class IceSwordItem extends SwordItem
{
//增加冷却时间
private long lastHealTime = 0; //上次回复生命的时间
private static final long HEAL_COOLDOWN = 2000; //2秒冷却,单位是毫秒
private int enemyHitCount = 0; //记录击中的敌人数量
private static final int COOLDOWN_TIME = 40; //设置物品冷却时间,单位是tick(1秒=20tick)

public IceSwordItem(ToolMaterial toolMaterial, int attackDamage, float attackSpeed, Settings settings)
{
super(toolMaterial, attackDamage, attackSpeed, settings);
}

@Override
public boolean postHit(ItemStack stack, LivingEntity target, LivingEntity attacker)
{
//可以在if语句块里引用PlayerEntity user
if (attacker instanceof PlayerEntity user)
{
//检查冷却时间
if (user.getItemCooldownManager().isCoolingDown(stack.getItem()))
{
return true; //如果正在冷却,直接返回
}

stack.damage(1, attacker, e -> e.sendEquipmentBreakStatus(EquipmentSlot.MAINHAND));
enemyHitCount++; //每次击中敌人时增加计数

long currentTime = System.currentTimeMillis();

//用寒冰剑打中人之后会给对方施加霜冻效果
target.addStatusEffect(new StatusEffectInstance(ModStatusEffects.FROST, 200, 0)); // 10秒霜冻

//检查冷却时间
if (currentTime - lastHealTime >= HEAL_COOLDOWN)
{
healMultipleFromEnemies(attacker, enemyHitCount);
lastHealTime = currentTime; //更新最后一次回复生命的时间
enemyHitCount = 0; //重置敌人数量计数
}

//设置物品冷却(用物品冷却管理器来设置)
user.getItemCooldownManager().set(stack.getItem(), COOLDOWN_TIME);
}

return true;
}

//用于实现多次攻击回复生命值的逻辑
public void healMultipleFromEnemies(LivingEntity attacker, int enemyCount)
{
//每个敌人回复1点生命值
float healAmount = Math.min(enemyCount * 2, 20 - attacker.getHealth()); //确保不超过最大生命值
attacker.heal(healAmount);
}
}

以上代码用于 Fabric-1.20 版本模组开发

仅供参考,若想摘抄请在下方留言



后记

霜冻效果

青金铜套装的效果

“一花一世界,一叶一菩提”


版权所有 © 2025 云梦泽
欢迎访问我的个人网站:https://hgt12.github.io/


『模组开发日记』之寒冰剑
http://example.com/2025/09/14/『模组开发日记』之寒冰剑/
作者
云梦泽
发布于
2025年9月14日
更新于
2025年9月14日
许可协议