实体加速卡修改默认为2x,避免出现1x卡

This commit is contained in:
C-H716 2025-11-13 21:54:04 +08:00
parent e223b9fae6
commit 618992aa7c

View File

@ -33,11 +33,20 @@ public class EntitySpeedCardItem extends UpgradeCardItem {
}
public static int readMultiplier(ItemStack stack) {
if (stack == null || stack.isEmpty()) return 1;
CompoundTag t = stack.getTag();
if (t == null) return 1;
int v = t.getInt(NBT_MULTIPLIER);
return v <= 0 ? 1 : v;
if (stack == null || stack.isEmpty()) return 2;
CompoundTag tag = stack.getTag();
if (tag == null || !tag.contains(NBT_MULTIPLIER)) {
// 关键检测到没有 NBT直接强制写一个默认合法值
CompoundTag newTag = stack.getOrCreateTag();
newTag.putInt(NBT_MULTIPLIER, 2);
return 2;
}
int v = tag.getInt(NBT_MULTIPLIER);
// 合法性检查
return switch (v) {
case 2, 4, 8, 16 -> v;
default -> 2; // 非法值一律纠正为 x2
};
}
@Override
@ -54,8 +63,7 @@ public class EntitySpeedCardItem extends UpgradeCardItem {
return Component.translatable(key);
}
public List<Component> getTooltipLines(ItemStack stack) {
private List<Component> getTooltipLines(ItemStack stack) {
int mult = readMultiplier(stack);
long cap = 1L;
switch (mult) {
@ -76,6 +84,4 @@ public class EntitySpeedCardItem extends UpgradeCardItem {
// add our custom tooltip lines (multiplier and max)
lines.addAll(this.getTooltipLines(stack));
}
}
}