添加近战击中音效

This commit is contained in:
Atsuishio 2025-05-22 18:27:18 +08:00 committed by Light_Quanta
parent 9809a8ca12
commit 7726b67db1
No known key found for this signature in database
GPG key ID: 11A39A1B8C890959
10 changed files with 34 additions and 5 deletions

View file

@ -17,6 +17,7 @@ public class ModSounds {
public static final DeferredHolder<SoundEvent, SoundEvent> SHOCK = REGISTRY.register("shock", () -> SoundEvent.createVariableRangeEvent(Mod.loc("shock")));
public static final DeferredHolder<SoundEvent, SoundEvent> ELECTRIC = REGISTRY.register("electric", () -> SoundEvent.createVariableRangeEvent(Mod.loc("electric")));
public static final DeferredHolder<SoundEvent, SoundEvent> MELEE_HIT = REGISTRY.register("melee_hit", () -> SoundEvent.createVariableRangeEvent(Mod.loc("melee_hit")));
public static final DeferredHolder<SoundEvent, SoundEvent> TRACHELIUM_FIRE_1P = REGISTRY.register("trachelium_fire_1p", () -> SoundEvent.createVariableRangeEvent(Mod.loc("trachelium_fire_1p")));
public static final DeferredHolder<SoundEvent, SoundEvent> TRACHELIUM_FIRE_3P = REGISTRY.register("trachelium_fire_3p", () -> SoundEvent.createVariableRangeEvent(Mod.loc("trachelium_fire_3p")));

View file

@ -3,10 +3,12 @@ package com.atsuishio.superbwarfare.item;
import com.atsuishio.superbwarfare.client.tooltip.component.CellImageComponent;
import com.atsuishio.superbwarfare.init.ModItems;
import com.atsuishio.superbwarfare.init.ModMobEffects;
import com.atsuishio.superbwarfare.init.ModSounds;
import com.atsuishio.superbwarfare.tiers.ModItemTier;
import com.atsuishio.superbwarfare.tools.NBTTool;
import net.minecraft.ChatFormatting;
import net.minecraft.network.chat.Component;
import net.minecraft.sounds.SoundSource;
import net.minecraft.world.InteractionHand;
import net.minecraft.world.InteractionResultHolder;
import net.minecraft.world.effect.MobEffectInstance;
@ -49,7 +51,7 @@ public class ElectricBaton extends SwordItem implements EnergyStorageItem {
@Override
public int getMaxEnergy() {
return 6000;
return MAX_ENERGY;
}
@Override
@ -77,7 +79,7 @@ public class ElectricBaton extends SwordItem implements EnergyStorageItem {
var cap = stack.getCapability(Capabilities.EnergyStorage.ITEM);
if (cap == null) return 0;
return Math.round(cap.getEnergyStored() * 13F / MAX_ENERGY);
return Math.round((float) cap.getEnergyStored() * 13F / MAX_ENERGY);
}
@Override
@ -88,13 +90,15 @@ public class ElectricBaton extends SwordItem implements EnergyStorageItem {
@Override
@ParametersAreNonnullByDefault
public boolean hurtEnemy(ItemStack stack, LivingEntity target, LivingEntity attacker) {
attacker.level().playSound(null, target.getOnPos(), ModSounds.MELEE_HIT.get(), SoundSource.PLAYERS, 1, (float) ((2 * org.joml.Math.random() - 1) * 0.1f + 1));
if (NBTTool.getTag(stack).getBoolean(TAG_OPEN)) {
var cap = stack.getCapability(Capabilities.EnergyStorage.ITEM);
if (cap != null && cap.getEnergyStored() >= ENERGY_COST) {
cap.extractEnergy(ENERGY_COST, false);
if (!target.level().isClientSide) {
target.addEffect(new MobEffectInstance(ModMobEffects.SHOCK, 200, 2), attacker);
target.addEffect(new MobEffectInstance(ModMobEffects.SHOCK, 20, 2), attacker);
}
}
}

View file

@ -3162,5 +3162,29 @@
"volume": 0.7
}
]
},
"melee_hit": {
"sounds": [
{
"name": "superbwarfare:melee_hit_01",
"stream": false
},
{
"name": "superbwarfare:melee_hit_02",
"stream": false
},
{
"name": "superbwarfare:melee_hit_03",
"stream": false
},
{
"name": "superbwarfare:melee_hit_04",
"stream": false
},
{
"name": "superbwarfare:melee_hit_05",
"stream": false
}
]
}
}

View file

@ -9,7 +9,7 @@
"upswing": 0.5,
"animation": "bettercombat:one_handed_slam",
"swing_sound": {
"id": "bettercombat:hammer_slam"
"id": "bettercombat:staff_stab"
}
},
{
@ -19,7 +19,7 @@
"upswing": 0.5,
"animation": "bettercombat:one_handed_slam",
"swing_sound": {
"id": "bettercombat:hammer_slam"
"id": "bettercombat:staff_stab"
}
},
{