diff --git a/src/main/java/net/mcreator/target/client/model/item/AK47ItemModel.java b/src/main/java/net/mcreator/target/client/model/item/AK47ItemModel.java index ce93bdd47..73aa4ca6f 100644 --- a/src/main/java/net/mcreator/target/client/model/item/AK47ItemModel.java +++ b/src/main/java/net/mcreator/target/client/model/item/AK47ItemModel.java @@ -88,7 +88,7 @@ public class AK47ItemModel extends GeoModel { shuan.setPosZ(2.4f * (float) fp); - if (stack.getOrCreateTag().getDouble("fireanim") > 0) { + if (stack.getOrCreateTag().getDouble("flash_time") > 0) { flare.setScaleX((float) (1.0 + 0.5 * (Math.random() - 0.5))); flare.setScaleY((float) (1.0 + 0.5 * (Math.random() - 0.5))); flare.setRotZ((float) (0.5 * (Math.random() - 0.5))); diff --git a/src/main/java/net/mcreator/target/client/model/item/Aa12ItemModel.java b/src/main/java/net/mcreator/target/client/model/item/Aa12ItemModel.java index e0da2fbdd..df9fbf4ad 100644 --- a/src/main/java/net/mcreator/target/client/model/item/Aa12ItemModel.java +++ b/src/main/java/net/mcreator/target/client/model/item/Aa12ItemModel.java @@ -72,7 +72,7 @@ public class Aa12ItemModel extends GeoModel { CoreGeoBone flare = getAnimationProcessor().getBone("flare"); - if (stack.getOrCreateTag().getDouble("fireanim") > 0) { + if (stack.getOrCreateTag().getDouble("flash_time") > 0) { flare.setScaleX((float) (1.0 + 0.5 * (Math.random() - 0.5))); flare.setScaleY((float) (1.0 + 0.5 * (Math.random() - 0.5))); flare.setRotZ((float) (0.5 * (Math.random() - 0.5))); diff --git a/src/main/java/net/mcreator/target/client/model/item/AbekiriItemModel.java b/src/main/java/net/mcreator/target/client/model/item/AbekiriItemModel.java index df98bf6e9..5879ce89e 100644 --- a/src/main/java/net/mcreator/target/client/model/item/AbekiriItemModel.java +++ b/src/main/java/net/mcreator/target/client/model/item/AbekiriItemModel.java @@ -64,7 +64,7 @@ public class AbekiriItemModel extends GeoModel { CoreGeoBone flare = getAnimationProcessor().getBone("flare"); - if (stack.getOrCreateTag().getDouble("fireanim") > 0) { + if (stack.getOrCreateTag().getDouble("flash_time") > 0) { flare.setScaleX((float) (1.0 + 0.5 * (Math.random() - 0.5))); flare.setScaleY((float) (1.0 + 0.5 * (Math.random() - 0.5))); flare.setRotZ((float) (0.5 * (Math.random() - 0.5))); diff --git a/src/main/java/net/mcreator/target/client/model/item/DevotionItemModel.java b/src/main/java/net/mcreator/target/client/model/item/DevotionItemModel.java index 464a73cde..2debd52e3 100644 --- a/src/main/java/net/mcreator/target/client/model/item/DevotionItemModel.java +++ b/src/main/java/net/mcreator/target/client/model/item/DevotionItemModel.java @@ -95,7 +95,8 @@ public class DevotionItemModel extends GeoModel { number.setScaleX(0); number.setScaleY(0); } - if (stack.getOrCreateTag().getDouble("fireanim") > 0) { + + if (stack.getOrCreateTag().getDouble("flash_time") > 0) { flare.setScaleX((float) (1.0 + 0.5 * (Math.random() - 0.5))); flare.setScaleY((float) (1.0 + 0.5 * (Math.random() - 0.5))); flare.setRotZ((float) (0.5 * (Math.random() - 0.5))); diff --git a/src/main/java/net/mcreator/target/client/model/item/Hk416ItemModel.java b/src/main/java/net/mcreator/target/client/model/item/Hk416ItemModel.java index c9343f0bf..1c0ce421c 100644 --- a/src/main/java/net/mcreator/target/client/model/item/Hk416ItemModel.java +++ b/src/main/java/net/mcreator/target/client/model/item/Hk416ItemModel.java @@ -37,7 +37,7 @@ public class Hk416ItemModel extends GeoModel { Player player = Minecraft.getInstance().player; ItemStack stack = player.getMainHandItem(); - if (stack.getOrCreateTag().getDouble("fireanim") > 0) { + if (stack.getOrCreateTag().getDouble("flash_time") > 0) { flare.setScaleX((float) (1.0 + 0.5 * (Math.random() - 0.5))); flare.setScaleY((float) (1.0 + 0.5 * (Math.random() - 0.5))); flare.setRotZ((float) (0.5 * (Math.random() - 0.5))); diff --git a/src/main/java/net/mcreator/target/client/model/item/HuntingRifleItemModel.java b/src/main/java/net/mcreator/target/client/model/item/HuntingRifleItemModel.java index 145b52027..1f9f76ea6 100644 --- a/src/main/java/net/mcreator/target/client/model/item/HuntingRifleItemModel.java +++ b/src/main/java/net/mcreator/target/client/model/item/HuntingRifleItemModel.java @@ -71,7 +71,7 @@ public class HuntingRifleItemModel extends GeoModel { CoreGeoBone flare = getAnimationProcessor().getBone("flare"); - if (stack.getOrCreateTag().getDouble("fireanim") > 0) { + if (stack.getOrCreateTag().getDouble("flash_time") > 0) { flare.setScaleX((float) (1.0 + 0.5 * (Math.random() - 0.5))); flare.setScaleY((float) (1.0 + 0.5 * (Math.random() - 0.5))); flare.setRotZ((float) (0.5 * (Math.random() - 0.5))); diff --git a/src/main/java/net/mcreator/target/client/model/item/KraberItemModel.java b/src/main/java/net/mcreator/target/client/model/item/KraberItemModel.java index 014ace595..e37881dd9 100644 --- a/src/main/java/net/mcreator/target/client/model/item/KraberItemModel.java +++ b/src/main/java/net/mcreator/target/client/model/item/KraberItemModel.java @@ -84,7 +84,7 @@ public class KraberItemModel extends GeoModel { scope.setScaleZ(1f - (0.9f * (float) p)); - if (stack.getOrCreateTag().getDouble("fireanim") > 37) { + if (stack.getOrCreateTag().getDouble("flash_time") > 0) { flare.setScaleX((float) (1.0 + 0.5 * (Math.random() - 0.5))); flare.setScaleY((float) (1.0 + 0.5 * (Math.random() - 0.5))); flare.setRotZ((float) (0.5 * (Math.random() - 0.5))); diff --git a/src/main/java/net/mcreator/target/client/model/item/M4ItemModel.java b/src/main/java/net/mcreator/target/client/model/item/M4ItemModel.java index 6f3bdb511..1fb38d72f 100644 --- a/src/main/java/net/mcreator/target/client/model/item/M4ItemModel.java +++ b/src/main/java/net/mcreator/target/client/model/item/M4ItemModel.java @@ -69,7 +69,7 @@ public class M4ItemModel extends GeoModel { CoreGeoBone flare = getAnimationProcessor().getBone("flare"); - if (stack.getOrCreateTag().getDouble("fireanim") > 0) { + if (stack.getOrCreateTag().getDouble("flash_time") > 0) { flare.setScaleX((float) (1.0 + 0.5 * (Math.random() - 0.5))); flare.setScaleY((float) (1.0 + 0.5 * (Math.random() - 0.5))); flare.setRotZ((float) (0.5 * (Math.random() - 0.5))); diff --git a/src/main/java/net/mcreator/target/client/model/item/M60ItemModel.java b/src/main/java/net/mcreator/target/client/model/item/M60ItemModel.java index 9134312c1..e824bb325 100644 --- a/src/main/java/net/mcreator/target/client/model/item/M60ItemModel.java +++ b/src/main/java/net/mcreator/target/client/model/item/M60ItemModel.java @@ -112,7 +112,7 @@ public class M60ItemModel extends GeoModel { CoreGeoBone flare = getAnimationProcessor().getBone("flare"); - if (stack.getOrCreateTag().getDouble("fireanim") > 0) { + if (stack.getOrCreateTag().getDouble("flash_time") > 0) { flare.setScaleX((float) (1.0 + 0.5 * (Math.random() - 0.5))); flare.setScaleY((float) (1.0 + 0.5 * (Math.random() - 0.5))); flare.setRotZ((float) (0.5 * (Math.random() - 0.5))); diff --git a/src/main/java/net/mcreator/target/client/model/item/M98bItemModel.java b/src/main/java/net/mcreator/target/client/model/item/M98bItemModel.java index 79aad5f54..7f783e24a 100644 --- a/src/main/java/net/mcreator/target/client/model/item/M98bItemModel.java +++ b/src/main/java/net/mcreator/target/client/model/item/M98bItemModel.java @@ -84,7 +84,8 @@ public class M98bItemModel extends GeoModel { qiang.setScaleX(1); qiang.setScaleY(1); } - if (stack.getOrCreateTag().getDouble("fireanim") > 14) { + + if (stack.getOrCreateTag().getDouble("flash_time") > 0) { flare.setScaleX((float) (1.0 + 0.5 * (Math.random() - 0.5))); flare.setScaleY((float) (1.0 + 0.5 * (Math.random() - 0.5))); flare.setRotZ((float) (0.5 * (Math.random() - 0.5))); diff --git a/src/main/java/net/mcreator/target/client/model/item/Mk14ItemModel.java b/src/main/java/net/mcreator/target/client/model/item/Mk14ItemModel.java index a79bb76a8..7827f67c4 100644 --- a/src/main/java/net/mcreator/target/client/model/item/Mk14ItemModel.java +++ b/src/main/java/net/mcreator/target/client/model/item/Mk14ItemModel.java @@ -101,9 +101,9 @@ public class Mk14ItemModel extends GeoModel { bolt.setPosZ(6); } - if (stack.getOrCreateTag().getDouble("fireanim") > 0) { - flare.setScaleX((float) (2 + 0.5 * (Math.random() - 0.5))); - flare.setScaleY((float) (2 + 0.5 * (Math.random() - 0.5))); + if (stack.getOrCreateTag().getDouble("flash_time") > 0) { + flare.setScaleX((float) (1.0 + 0.5 * (Math.random() - 0.5))); + flare.setScaleY((float) (1.0 + 0.5 * (Math.random() - 0.5))); flare.setRotZ((float) (0.5 * (Math.random() - 0.5))); } else { flare.setScaleX(0); diff --git a/src/main/java/net/mcreator/target/client/model/item/RpkItemModel.java b/src/main/java/net/mcreator/target/client/model/item/RpkItemModel.java index 146033fc6..b1ab8f041 100644 --- a/src/main/java/net/mcreator/target/client/model/item/RpkItemModel.java +++ b/src/main/java/net/mcreator/target/client/model/item/RpkItemModel.java @@ -100,7 +100,7 @@ public class RpkItemModel extends GeoModel { shuan.setPosZ(2.4f * (float) fp); - if (stack.getOrCreateTag().getDouble("fireanim") > 0) { + if (stack.getOrCreateTag().getDouble("flash_time") > 0) { flare.setScaleX((float) (1.0 + 0.5 * (Math.random() - 0.5))); flare.setScaleY((float) (1.0 + 0.5 * (Math.random() - 0.5))); flare.setRotZ((float) (0.5 * (Math.random() - 0.5))); diff --git a/src/main/java/net/mcreator/target/client/model/item/SentinelItemModel.java b/src/main/java/net/mcreator/target/client/model/item/SentinelItemModel.java index e20644b2a..a4b77de99 100644 --- a/src/main/java/net/mcreator/target/client/model/item/SentinelItemModel.java +++ b/src/main/java/net/mcreator/target/client/model/item/SentinelItemModel.java @@ -163,7 +163,7 @@ public class SentinelItemModel extends GeoModel { CoreGeoBone flare = getAnimationProcessor().getBone("flare"); - if (stack.getOrCreateTag().getDouble("fireanim") > 0) { + if (stack.getOrCreateTag().getDouble("flash_time") > 0) { flare.setScaleX((float) (1.0 + 0.5 * (Math.random() - 0.5))); flare.setScaleY((float) (1.0 + 0.5 * (Math.random() - 0.5))); flare.setRotZ((float) (0.5 * (Math.random() - 0.5))); @@ -173,8 +173,8 @@ public class SentinelItemModel extends GeoModel { flare.setRotZ(0); } - if ((stack.getOrCreateTag().getInt("ammo") <= 5)) { - ammo.setScaleX((float) (stack.getOrCreateTag().getInt("ammo") / 5)); + if ((stack.getOrCreateTag().getDouble("ammo") <= 5)) { + ammo.setScaleX((float) (stack.getOrCreateTag().getDouble("ammo") / 5)); } } } diff --git a/src/main/java/net/mcreator/target/client/model/item/SksItemModel.java b/src/main/java/net/mcreator/target/client/model/item/SksItemModel.java index 3a3ca5848..8bb1f3ffc 100644 --- a/src/main/java/net/mcreator/target/client/model/item/SksItemModel.java +++ b/src/main/java/net/mcreator/target/client/model/item/SksItemModel.java @@ -85,7 +85,7 @@ public class SksItemModel extends GeoModel { shuan.setPosZ(2.5f * (float) fp); - if (stack.getOrCreateTag().getDouble("fireanim") > 0) { + if (stack.getOrCreateTag().getDouble("flash_time") > 0) { flare.setScaleX((float) (1.0 + 0.5 * (Math.random() - 0.5))); flare.setScaleY((float) (1.0 + 0.5 * (Math.random() - 0.5))); flare.setRotZ((float) (0.5 * (Math.random() - 0.5))); diff --git a/src/main/java/net/mcreator/target/client/model/item/SvdItemModel.java b/src/main/java/net/mcreator/target/client/model/item/SvdItemModel.java index 0088386c0..052f8d7b0 100644 --- a/src/main/java/net/mcreator/target/client/model/item/SvdItemModel.java +++ b/src/main/java/net/mcreator/target/client/model/item/SvdItemModel.java @@ -108,7 +108,7 @@ public class SvdItemModel extends GeoModel { shuan.setPosZ(2.4f * (float) fp); - if (stack.getOrCreateTag().getDouble("fireanim") > 0) { + if (stack.getOrCreateTag().getDouble("flash_time") > 0) { flare.setScaleX((float) (1.0 + 0.5 * (Math.random() - 0.5))); flare.setScaleY((float) (1.0 + 0.5 * (Math.random() - 0.5))); flare.setRotZ((float) (0.5 * (Math.random() - 0.5))); diff --git a/src/main/java/net/mcreator/target/client/model/item/TracheliumItemModel.java b/src/main/java/net/mcreator/target/client/model/item/TracheliumItemModel.java index 32edd8ac1..0d2e99fdb 100644 --- a/src/main/java/net/mcreator/target/client/model/item/TracheliumItemModel.java +++ b/src/main/java/net/mcreator/target/client/model/item/TracheliumItemModel.java @@ -65,7 +65,7 @@ public class TracheliumItemModel extends GeoModel { CoreGeoBone flare = getAnimationProcessor().getBone("flare"); - if (stack.getOrCreateTag().getDouble("fireanim") > 0) { + if (stack.getOrCreateTag().getDouble("flash_time") > 0) { flare.setScaleX((float) (1.0 + 0.5 * (Math.random() - 0.5))); flare.setScaleY((float) (1.0 + 0.5 * (Math.random() - 0.5))); flare.setRotZ((float) (0.5 * (Math.random() - 0.5))); diff --git a/src/main/java/net/mcreator/target/event/GunEventHandler.java b/src/main/java/net/mcreator/target/event/GunEventHandler.java index 5f08c071b..3344cba1c 100644 --- a/src/main/java/net/mcreator/target/event/GunEventHandler.java +++ b/src/main/java/net/mcreator/target/event/GunEventHandler.java @@ -110,7 +110,7 @@ public class GunEventHandler { private static void handleGunFire(Player player) { ItemStack stack = player.getMainHandItem(); - if (stack.is(TargetModTags.Items.NORMAL_MAG_GUN)) { + if (stack.is(TargetModTags.Items.NORMAL_GUN)) { double mode = stack.getOrCreateTag().getInt("firemode"); if (player.getPersistentData().getDouble("firing") == 0 && player.getMainHandItem().getItem() == TargetModItems.DEVOTION.get()) { stack.getOrCreateTag().putDouble("fire_increase", 0); @@ -120,7 +120,10 @@ public class GunEventHandler { && stack.getOrCreateTag().getDouble("reloading") == 0 && stack.getOrCreateTag().getInt("ammo") > 0 && !player.getCooldowns().isOnCooldown(stack.getItem()) - && mode != 1) { + && mode != 1 + && stack.getOrCreateTag().getDouble("need_bolt_action") == 0) { + + playGunSounds(player); if (stack.getOrCreateTag().getInt("firemode") == 0) { player.getPersistentData().putDouble("firing", 0); @@ -135,10 +138,16 @@ public class GunEventHandler { if (stack.getOrCreateTag().getInt("ammo") == 1) { stack.getOrCreateTag().putDouble("gj", 1); } + /** + * 判断是否为栓动武器(bolt_action_time > 0),并在开火后给一个需要上膛的状态 + */ + if (stack.getOrCreateTag().getDouble("bolt_action_time") > 0 && stack.getOrCreateTag().getInt("ammo") > 1) { + stack.getOrCreateTag().putDouble("need_bolt_action", 1); + } stack.getOrCreateTag().putInt("ammo", (stack.getOrCreateTag().getInt("ammo") - 1)); - stack.getOrCreateTag().putDouble("firecooldown", 7); - stack.getOrCreateTag().putDouble("fireanim", 2); + stack.getOrCreateTag().putDouble("fireanim", stack.getOrCreateTag().getDouble("fire_interval")); + stack.getOrCreateTag().putDouble("flash_time", 2); stack.getOrCreateTag().putDouble("empty", 1); if (player.getMainHandItem().getItem() == TargetModItems.M_4.get() || player.getMainHandItem().getItem() == TargetModItems.HK_416.get()) { @@ -164,13 +173,41 @@ public class GunEventHandler { } } + if (player.getMainHandItem().getItem() == TargetModItems.SENTINEL.get()) { + if ((player.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new TargetModVariables.PlayerVariables())).zooming) { + stack.getOrCreateTag().putBoolean("zoom_fire", true); + } else { + stack.getOrCreateTag().putBoolean("zoom_fire", false); + } + if (stack.getOrCreateTag().getDouble("power") > 20) { + stack.getOrCreateTag().putDouble("power", (stack.getOrCreateTag().getDouble("power") - 20)); + } else { + stack.getOrCreateTag().putDouble("power", 0); + } + stack.getOrCreateTag().putDouble("crot", 20); + } + int cooldown = (int) stack.getOrCreateTag().getDouble("fire_interval") + (int) stack.getOrCreateTag().getDouble("fire_sequence") - (int) stack.getOrCreateTag().getDouble("fire_increase"); player.getCooldowns().addCooldown(stack.getItem(), cooldown); for (int index0 = 0; index0 < (int) stack.getOrCreateTag().getDouble("projectileamount"); index0++) { gunShoot(player); } - playGunSounds(player); + + } + /** + * 在开火动画的最后1tick,设置需要拉栓上膛的武器拉栓动画的倒计时为data里的拉栓时间 + */ + if (stack.getOrCreateTag().getDouble("fireanim") == 1 && stack.getOrCreateTag().getDouble("need_bolt_action") == 1) { + stack.getOrCreateTag().putDouble("bolt_action_anim", stack.getOrCreateTag().getDouble("bolt_action_time")); + player.getCooldowns().addCooldown(stack.getItem(), (int) stack.getOrCreateTag().getDouble("bolt_action_time")); + playGunBoltSounds(player); + } + if (stack.getOrCreateTag().getDouble("bolt_action_anim") > 0) { + stack.getOrCreateTag().putDouble("bolt_action_anim", stack.getOrCreateTag().getDouble("bolt_action_anim") -1); + } + if (stack.getOrCreateTag().getDouble("bolt_action_anim") == 1) { + stack.getOrCreateTag().putDouble("need_bolt_action", 0); } } } @@ -188,29 +225,74 @@ public class GunEventHandler { String origin = stack.getItem().getDescriptionId(); String name = origin.substring(origin.lastIndexOf(".") + 1); - SoundEvent sound1p = ForgeRegistries.SOUND_EVENTS.getValue(new ResourceLocation(TargetMod.MODID, name + "_fire_1p")); - if (sound1p != null && player instanceof ServerPlayer serverPlayer) { - serverPlayer.connection.send(new ClientboundSoundPacket(new Holder.Direct<>(sound1p), - SoundSource.PLAYERS, serverPlayer.getX(), serverPlayer.getY(), serverPlayer.getZ(), 2f, 1f, serverPlayer.level().random.nextLong())); - } + if (player.getMainHandItem().getItem() == TargetModItems.SENTINEL.get() && stack.getOrCreateTag().getDouble("power") > 0) { + SoundEvent sound1p = ForgeRegistries.SOUND_EVENTS.getValue(new ResourceLocation(TargetMod.MODID, name + "_charge_fire_1p")); + if (sound1p != null && player instanceof ServerPlayer serverPlayer) { + serverPlayer.connection.send(new ClientboundSoundPacket(new Holder.Direct<>(sound1p), + SoundSource.PLAYERS, serverPlayer.getX(), serverPlayer.getY(), serverPlayer.getZ(), 2f, 1f, serverPlayer.level().random.nextLong())); + } - SoundEvent sound3p = ForgeRegistries.SOUND_EVENTS.getValue(new ResourceLocation(TargetMod.MODID, name + "_fire_3p")); - if (sound3p != null) { - player.playSound(sound3p, 4f, 1f); - } + SoundEvent sound3p = ForgeRegistries.SOUND_EVENTS.getValue(new ResourceLocation(TargetMod.MODID, name + "v_fire_3p")); + if (sound3p != null) { + player.playSound(sound3p, 4f, 1f); + } - SoundEvent soundFar = ForgeRegistries.SOUND_EVENTS.getValue(new ResourceLocation(TargetMod.MODID, name + "_far")); - if (soundFar != null) { - player.playSound(soundFar, 12f, 1f); - } + SoundEvent soundFar = ForgeRegistries.SOUND_EVENTS.getValue(new ResourceLocation(TargetMod.MODID, name + "_charge_far")); + if (soundFar != null) { + player.playSound(soundFar, 12f, 1f); + } + + SoundEvent soundVeryFar = ForgeRegistries.SOUND_EVENTS.getValue(new ResourceLocation(TargetMod.MODID, name + "_charge_veryfar")); + if (soundVeryFar != null) { + player.playSound(soundVeryFar, 24f, 1f); + + } + + } else { + SoundEvent sound1p = ForgeRegistries.SOUND_EVENTS.getValue(new ResourceLocation(TargetMod.MODID, name + "_fire_1p")); + if (sound1p != null && player instanceof ServerPlayer serverPlayer) { + serverPlayer.connection.send(new ClientboundSoundPacket(new Holder.Direct<>(sound1p), + SoundSource.PLAYERS, serverPlayer.getX(), serverPlayer.getY(), serverPlayer.getZ(), 2f, 1f, serverPlayer.level().random.nextLong())); + } + + SoundEvent sound3p = ForgeRegistries.SOUND_EVENTS.getValue(new ResourceLocation(TargetMod.MODID, name + "_fire_3p")); + if (sound3p != null) { + player.playSound(sound3p, 4f, 1f); + } + + SoundEvent soundFar = ForgeRegistries.SOUND_EVENTS.getValue(new ResourceLocation(TargetMod.MODID, name + "_far")); + if (soundFar != null) { + player.playSound(soundFar, 12f, 1f); + } + + SoundEvent soundVeryFar = ForgeRegistries.SOUND_EVENTS.getValue(new ResourceLocation(TargetMod.MODID, name + "_veryfar")); + if (soundVeryFar != null) { + player.playSound(soundVeryFar, 24f, 1f); + + } - SoundEvent soundVeryFar = ForgeRegistries.SOUND_EVENTS.getValue(new ResourceLocation(TargetMod.MODID, name + "_veryfar")); - if (soundVeryFar != null) { - player.playSound(soundVeryFar, 24f, 1f); } } } + public static void playGunBoltSounds(Player player) { + ItemStack stack = player.getMainHandItem(); + if (!stack.is(TargetModTags.Items.GUN)) { + return; + } + + if (!player.level().isClientSide) { + String origin = stack.getItem().getDescriptionId(); + String name = origin.substring(origin.lastIndexOf(".") + 1); + + SoundEvent sound1p = ForgeRegistries.SOUND_EVENTS.getValue(new ResourceLocation(TargetMod.MODID, name + "_bolt")); + if (sound1p != null && player instanceof ServerPlayer serverPlayer) { + serverPlayer.connection.send(new ClientboundSoundPacket(new Holder.Direct<>(sound1p), + SoundSource.PLAYERS, serverPlayer.getX(), serverPlayer.getY(), serverPlayer.getZ(), 2f, 1f, serverPlayer.level().random.nextLong())); + } + } + } + public static void gunShoot(Player player) { ItemStack heldItem = player.getMainHandItem(); if (Math.random() < 0.5) { @@ -233,8 +315,7 @@ public class GunEventHandler { if (!player.level().isClientSide()) { float headshot = (float) heldItem.getOrCreateTag().getDouble("headshot"); - float damage = (float) (heldItem.getOrCreateTag().getDouble("damage") + heldItem.getOrCreateTag().getDouble("adddamage")) - * (float) heldItem.getOrCreateTag().getDouble("damageadd"); + float damage = (float) (heldItem.getOrCreateTag().getDouble("damage") + heldItem.getOrCreateTag().getDouble("adddamage")) * (float) heldItem.getOrCreateTag().getDouble("damageadd"); ProjectileEntity projectile = new ProjectileEntity(player.level()) .shooter(player) diff --git a/src/main/java/net/mcreator/target/event/LivingEntityEventHandler.java b/src/main/java/net/mcreator/target/event/LivingEntityEventHandler.java index 38feaf56f..a9b86cd1b 100644 --- a/src/main/java/net/mcreator/target/event/LivingEntityEventHandler.java +++ b/src/main/java/net/mcreator/target/event/LivingEntityEventHandler.java @@ -197,6 +197,9 @@ public class LivingEntityEventHandler { }); player.getPersistentData().putDouble("zoompos", 0); player.getPersistentData().putDouble("zoom_time", 0); + if (newStack.getOrCreateTag().getDouble("bolt_action_time") > 0) { + newStack.getOrCreateTag().putDouble("bolt_action_anim", 0); + } } } } diff --git a/src/main/java/net/mcreator/target/init/TargetModSounds.java b/src/main/java/net/mcreator/target/init/TargetModSounds.java index 0f6f7289f..f816bf653 100644 --- a/src/main/java/net/mcreator/target/init/TargetModSounds.java +++ b/src/main/java/net/mcreator/target/init/TargetModSounds.java @@ -114,6 +114,7 @@ public class TargetModSounds { public static final RegistryObject KRABER_VERYFAR = REGISTRY.register("kraber_veryfar", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "kraber_veryfar"))); public static final RegistryObject KRABER_RELOAD_NORMAL = REGISTRY.register("kraber_reload_normal", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "kraber_reload_normal"))); public static final RegistryObject KRABER_RELOAD_EMPTY = REGISTRY.register("kraber_reload_empty", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "kraber_reload_empty"))); + public static final RegistryObject KRABER_BOLT = REGISTRY.register("kraber_bolt", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "kraber_bolt"))); public static final RegistryObject VECTOR_FIRE_1P = REGISTRY.register("vector_fire_1p", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "vector_fire_1p"))); public static final RegistryObject VECTOR_FIRE_3P = REGISTRY.register("vector_fire_3p", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "vector_fire_3p"))); public static final RegistryObject VECTOR_FAR = REGISTRY.register("vector_far", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "vector_far"))); @@ -143,6 +144,7 @@ public class TargetModSounds { public static final RegistryObject SENTINEL_RELOAD_NORMAL = REGISTRY.register("sentinel_reload_normal", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "sentinel_reload_normal"))); public static final RegistryObject SENTINEL_RELOAD_EMPTY = REGISTRY.register("sentinel_reload_empty", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "sentinel_reload_empty"))); public static final RegistryObject SENTINEL_CHARGE = REGISTRY.register("sentinel_charge", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "sentinel_charge"))); + public static final RegistryObject SENTINEL_BOLT = REGISTRY.register("sentinel_bolt", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "sentinel_bolt"))); public static final RegistryObject M_60_FIRE_1P = REGISTRY.register("m_60_fire_1p", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "m_60_fire_1p"))); public static final RegistryObject M_60_FIRE_3P = REGISTRY.register("m_60_fire_3p", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "m_60_fire_3p"))); public static final RegistryObject M_60_FAR = REGISTRY.register("m_60_far", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "m_60_far"))); @@ -162,6 +164,7 @@ public class TargetModSounds { public static final RegistryObject M_98B_VERYFAR = REGISTRY.register("m_98b_veryfar", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "m_98b_veryfar"))); public static final RegistryObject M_98B_RELOAD_NORMAL = REGISTRY.register("m_98b_reload_normal", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "m_98b_reload_normal"))); public static final RegistryObject M_98B_RELOAD_EMPTY = REGISTRY.register("m_98b_reload_empty", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "m_98b_reload_empty"))); + public static final RegistryObject M_98B_BOLT = REGISTRY.register("m_98b_bolt", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "m_98b_bolt"))); public static final RegistryObject MARLIN_FIRE_1P = REGISTRY.register("marlin_fire_1p", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "marlin_fire_1p"))); public static final RegistryObject MARLIN_FIRE_3P = REGISTRY.register("marlin_fire_3p", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "marlin_fire_3p"))); public static final RegistryObject MARLIN_FAR = REGISTRY.register("marlin_far", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("target", "marlin_far"))); diff --git a/src/main/java/net/mcreator/target/init/TargetModTags.java b/src/main/java/net/mcreator/target/init/TargetModTags.java index fd199e009..c0e49d292 100644 --- a/src/main/java/net/mcreator/target/init/TargetModTags.java +++ b/src/main/java/net/mcreator/target/init/TargetModTags.java @@ -16,7 +16,7 @@ public class TargetModTags { public static final TagKey SHOTGUN = tag("shotgun"); public static final TagKey SNIPER_RIFLE = tag("sniper_rifle"); public static final TagKey SMG = tag("smg"); - public static final TagKey NORMAL_MAG_GUN = tag("normal_mag_gun"); + public static final TagKey NORMAL_GUN = tag("normal_gun"); public static final TagKey LEGENDARY_GUN = tag("legendary_gun"); public static final TagKey SPECIAL_GUN = tag("special_gun"); diff --git a/src/main/java/net/mcreator/target/item/gun/BocekItem.java b/src/main/java/net/mcreator/target/item/gun/BocekItem.java index c7a3f965b..fd9d6f5bc 100644 --- a/src/main/java/net/mcreator/target/item/gun/BocekItem.java +++ b/src/main/java/net/mcreator/target/item/gun/BocekItem.java @@ -5,7 +5,6 @@ import com.google.common.collect.Multimap; import net.mcreator.target.client.renderer.item.BocekItemRenderer; import net.mcreator.target.init.TargetModItems; import net.mcreator.target.item.AnimatedItem; -import net.mcreator.target.procedures.WeaponDrawProcedure; import net.mcreator.target.tools.GunsTool; import net.mcreator.target.tools.RarityTool; import net.mcreator.target.tools.TooltipTool; @@ -165,7 +164,6 @@ public class BocekItem extends GunItem implements GeoItem, AnimatedItem { if (tag.getDouble("arrowempty") > 0) { tag.putDouble("arrowempty", tag.getDouble("arrowempty") - 1); } - WeaponDrawProcedure.execute(entity, itemstack); } protected static boolean check(ItemStack stack) { diff --git a/src/main/java/net/mcreator/target/item/gun/Devotion.java b/src/main/java/net/mcreator/target/item/gun/Devotion.java index b0023789d..598c77efe 100644 --- a/src/main/java/net/mcreator/target/item/gun/Devotion.java +++ b/src/main/java/net/mcreator/target/item/gun/Devotion.java @@ -7,7 +7,6 @@ import net.mcreator.target.client.renderer.item.DevotionItemRenderer; import net.mcreator.target.init.TargetModItems; import net.mcreator.target.init.TargetModSounds; import net.mcreator.target.item.AnimatedItem; -import net.mcreator.target.procedures.WeaponDrawProcedure; import net.mcreator.target.tools.GunInfo; import net.mcreator.target.tools.GunReload; import net.mcreator.target.tools.GunsTool; @@ -218,7 +217,6 @@ public class Devotion extends GunItem implements GeoItem, AnimatedItem { GunReload.reload(entity, GunInfo.Type.RIFLE, true); } } - WeaponDrawProcedure.execute(entity, itemstack); } @Override diff --git a/src/main/java/net/mcreator/target/item/gun/GunItem.java b/src/main/java/net/mcreator/target/item/gun/GunItem.java index e4e58ab2c..2f92bff3c 100644 --- a/src/main/java/net/mcreator/target/item/gun/GunItem.java +++ b/src/main/java/net/mcreator/target/item/gun/GunItem.java @@ -1,11 +1,15 @@ package net.mcreator.target.item.gun; +import net.mcreator.target.init.TargetModItems; import net.mcreator.target.init.TargetModTags; +import net.mcreator.target.network.TargetModVariables; import net.mcreator.target.tools.GunsTool; import net.mcreator.target.tools.ItemNBTTool; import net.minecraft.core.BlockPos; +import net.minecraft.nbt.CompoundTag; import net.minecraft.sounds.SoundEvent; import net.minecraft.world.entity.Entity; +import net.minecraft.world.entity.LivingEntity; import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.Item; import net.minecraft.world.item.ItemStack; @@ -31,6 +35,8 @@ public abstract class GunItem extends Item { @Override public void inventoryTick(ItemStack itemstack, Level level, Entity entity, int slot, boolean selected) { super.inventoryTick(itemstack, level, entity, slot, selected); + Item mainHandItem = (entity instanceof LivingEntity _livEnt ? _livEnt.getMainHandItem() : ItemStack.EMPTY).getItem(); + CompoundTag tag = itemstack.getOrCreateTag(); if (!ItemNBTTool.getBoolean(itemstack, "init", false)) { GunsTool.initGun(level, itemstack, this.getDescriptionId().substring(this.getDescriptionId().lastIndexOf('.') + 1)); @@ -38,6 +44,47 @@ public abstract class GunItem extends Item { ItemNBTTool.setBoolean(itemstack, "init", true); } GunsTool.pvpModeCheck(itemstack, level); + + if (tag.getDouble("draw") == 1) { + tag.putDouble("draw", 0); + tag.putDouble("drawtime", 0); + entity.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).ifPresent(capability -> { + capability.zooming = false; + capability.syncPlayerVariables(entity); + }); + + if (entity instanceof Player _player) { + if (tag.getDouble("weight") == 0) { + _player.getCooldowns().addCooldown(itemstack.getItem(), 12); + } else if (tag.getDouble("weight") == 1) { + _player.getCooldowns().addCooldown(itemstack.getItem(), 17); + } else if (tag.getDouble("weight") == 2) { + _player.getCooldowns().addCooldown(itemstack.getItem(), 30); + } + } + + if (itemstack.getItem() == TargetModItems.RPG.get() && tag.getInt("ammo") == 0) { + tag.putDouble("empty", 1); + } + if (itemstack.getItem() == TargetModItems.SKS.get() && tag.getInt("ammo") == 0) { + tag.putDouble("gj", 1); + } + if (itemstack.getItem() == TargetModItems.M_60.get() && tag.getInt("ammo") <= 5) { + tag.putDouble("empty", 1); + } + } + + if (mainHandItem == itemstack.getItem()) { + if (tag.getDouble("drawtime") < 50) { + tag.putDouble("drawtime", (tag.getDouble("drawtime") + 1)); + } + } + if (tag.getDouble("fireanim") > 0) { + tag.putDouble("fireanim", (tag.getDouble("fireanim") - 1)); + } + if (tag.getDouble("flash_time") > 0) { + tag.putDouble("flash_time", (tag.getDouble("flash_time") - 1)); + } } public Set getReloadSound() { diff --git a/src/main/java/net/mcreator/target/item/gun/HuntingRifle.java b/src/main/java/net/mcreator/target/item/gun/HuntingRifle.java index fdb48db45..5271b3acc 100644 --- a/src/main/java/net/mcreator/target/item/gun/HuntingRifle.java +++ b/src/main/java/net/mcreator/target/item/gun/HuntingRifle.java @@ -7,7 +7,6 @@ import net.mcreator.target.client.renderer.item.HuntingRifleItemRenderer; import net.mcreator.target.init.TargetModItems; import net.mcreator.target.init.TargetModSounds; import net.mcreator.target.item.AnimatedItem; -import net.mcreator.target.procedures.WeaponDrawProcedure; import net.mcreator.target.tools.GunInfo; import net.mcreator.target.tools.GunReload; import net.mcreator.target.tools.GunsTool; @@ -198,7 +197,6 @@ public class HuntingRifle extends GunItem implements GeoItem, AnimatedItem { GunReload.reload(entity, GunInfo.Type.SNIPER); } } - WeaponDrawProcedure.execute(entity, itemstack); } public static ItemStack getGunInstance() { diff --git a/src/main/java/net/mcreator/target/item/gun/Kraber.java b/src/main/java/net/mcreator/target/item/gun/Kraber.java index 7de72a29a..e640243c6 100644 --- a/src/main/java/net/mcreator/target/item/gun/Kraber.java +++ b/src/main/java/net/mcreator/target/item/gun/Kraber.java @@ -89,12 +89,12 @@ public class Kraber extends GunItem implements GeoItem, AnimatedItem { return event.setAndContinue(RawAnimation.begin().thenLoop("animation.kraber.draw")); } - if (stack.getOrCreateTag().getDouble("fireanim") > 30) { - return event.setAndContinue(RawAnimation.begin().thenPlay("animation.kraber.fire")); + if (stack.getOrCreateTag().getDouble("bolt_action_anim") > 0) { + return event.setAndContinue(RawAnimation.begin().thenPlay("animation.kraber.shift")); } - if (stack.getOrCreateTag().getDouble("fireanim") < 30 && stack.getOrCreateTag().getDouble("fireanim") > 0) { - return event.setAndContinue(RawAnimation.begin().thenPlay("animation.kraber.shift")); + if (stack.getOrCreateTag().getDouble("fireanim") > 0) { + return event.setAndContinue(RawAnimation.begin().thenPlay("animation.kraber.fire")); } if (stack.getOrCreateTag().getDouble("reloading") == 1 && stack.getOrCreateTag().getDouble("emptyreload") == 1) { diff --git a/src/main/java/net/mcreator/target/item/gun/M98bItem.java b/src/main/java/net/mcreator/target/item/gun/M98bItem.java index f79d57438..dc7c40514 100644 --- a/src/main/java/net/mcreator/target/item/gun/M98bItem.java +++ b/src/main/java/net/mcreator/target/item/gun/M98bItem.java @@ -81,12 +81,12 @@ public class M98bItem extends GunItem implements GeoItem, AnimatedItem { return event.setAndContinue(RawAnimation.begin().thenLoop("animation.m98b.draw")); } - if (stack.getOrCreateTag().getDouble("fireanim") > 16) { - return event.setAndContinue(RawAnimation.begin().thenPlay("animation.m98b.fire")); + if (stack.getOrCreateTag().getDouble("bolt_action_anim") > 0) { + return event.setAndContinue(RawAnimation.begin().thenPlay("animation.m98b.shift")); } - if (stack.getOrCreateTag().getDouble("fireanim") < 16 && stack.getOrCreateTag().getDouble("fireanim") > 0) { - return event.setAndContinue(RawAnimation.begin().thenPlay("animation.m98b.shift")); + if (stack.getOrCreateTag().getDouble("fireanim") > 0) { + return event.setAndContinue(RawAnimation.begin().thenPlay("animation.m98b.fire")); } if (stack.getOrCreateTag().getDouble("reloading") == 1 && stack.getOrCreateTag().getDouble("emptyreload") == 1) { diff --git a/src/main/java/net/mcreator/target/item/gun/SentinelItem.java b/src/main/java/net/mcreator/target/item/gun/SentinelItem.java index aacf9b6e6..170cb3bb7 100644 --- a/src/main/java/net/mcreator/target/item/gun/SentinelItem.java +++ b/src/main/java/net/mcreator/target/item/gun/SentinelItem.java @@ -102,6 +102,14 @@ public class SentinelItem extends GunItem implements GeoItem, AnimatedItem { return event.setAndContinue(RawAnimation.begin().thenLoop("animation.sentinel.draw")); } + if (stack.getOrCreateTag().getBoolean("zoom_fire") == true && stack.getOrCreateTag().getDouble("bolt_action_anim") > 0) { + return event.setAndContinue(RawAnimation.begin().thenPlay("animation.sentinel.shift2")); + } + + if (stack.getOrCreateTag().getBoolean("zoom_fire") == false && stack.getOrCreateTag().getDouble("bolt_action_anim") > 0) { + return event.setAndContinue(RawAnimation.begin().thenPlay("animation.sentinel.shift")); + } + if (stack.getOrCreateTag().getDouble("fireanim") > 0) { return event.setAndContinue(RawAnimation.begin().thenPlay("animation.sentinel.fire")); } @@ -114,14 +122,6 @@ public class SentinelItem extends GunItem implements GeoItem, AnimatedItem { return event.setAndContinue(RawAnimation.begin().thenPlay("animation.sentinel.reload2")); } - if (stack.getOrCreateTag().getDouble("firing") > 0 && stack.getOrCreateTag().getDouble("firing") < 23) { - return event.setAndContinue(RawAnimation.begin().thenPlay("animation.sentinel.shift")); - } - - if (stack.getOrCreateTag().getDouble("zoomfiring") > 0 && stack.getOrCreateTag().getDouble("zoomfiring") < 23) { - return event.setAndContinue(RawAnimation.begin().thenPlay("animation.sentinel.shift2")); - } - if (stack.getOrCreateTag().getDouble("chargingtime") > 127 && stack.getOrCreateTag().getDouble("charging") == 1) { return event.setAndContinue(RawAnimation.begin().thenPlay("animation.sentinel.chargep")); } diff --git a/src/main/java/net/mcreator/target/item/gun/Trachelium.java b/src/main/java/net/mcreator/target/item/gun/Trachelium.java index 7bdc0e617..7164c5b8b 100644 --- a/src/main/java/net/mcreator/target/item/gun/Trachelium.java +++ b/src/main/java/net/mcreator/target/item/gun/Trachelium.java @@ -7,7 +7,6 @@ import net.mcreator.target.client.renderer.item.TracheliumItemRenderer; import net.mcreator.target.init.TargetModItems; import net.mcreator.target.init.TargetModSounds; import net.mcreator.target.item.AnimatedItem; -import net.mcreator.target.procedures.WeaponDrawLightProcedure; import net.mcreator.target.tools.*; import net.minecraft.ChatFormatting; import net.minecraft.client.Minecraft; @@ -194,7 +193,6 @@ public class Trachelium extends GunItem implements GeoItem, AnimatedItem { GunReload.reload(entity, GunInfo.Type.HANDGUN); } } - WeaponDrawLightProcedure.execute(entity, itemstack); } @Override diff --git a/src/main/java/net/mcreator/target/item/gun/VectorItem.java b/src/main/java/net/mcreator/target/item/gun/VectorItem.java index 6b2260dcc..c1cbd1ee2 100644 --- a/src/main/java/net/mcreator/target/item/gun/VectorItem.java +++ b/src/main/java/net/mcreator/target/item/gun/VectorItem.java @@ -8,7 +8,6 @@ import net.mcreator.target.init.TargetModItems; import net.mcreator.target.init.TargetModSounds; import net.mcreator.target.init.TargetModTags; import net.mcreator.target.item.AnimatedItem; -import net.mcreator.target.procedures.WeaponDrawLightProcedure; import net.mcreator.target.tools.GunInfo; import net.mcreator.target.tools.GunReload; import net.mcreator.target.tools.GunsTool; @@ -289,7 +288,5 @@ public class VectorItem extends GunItem implements GeoItem, AnimatedItem { GunReload.reload(entity, GunInfo.Type.HANDGUN, true); } } - - WeaponDrawLightProcedure.execute(entity, itemStack); } } \ No newline at end of file diff --git a/src/main/java/net/mcreator/target/procedures/AK47WuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure.java b/src/main/java/net/mcreator/target/procedures/AK47WuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure.java index 55df177af..be36b956d 100644 --- a/src/main/java/net/mcreator/target/procedures/AK47WuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure.java +++ b/src/main/java/net/mcreator/target/procedures/AK47WuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure.java @@ -67,6 +67,5 @@ public class AK47WuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure { GunReload.reload(entity, GunInfo.Type.RIFLE, true); } } - WeaponDrawProcedure.execute(entity, itemstack); } } diff --git a/src/main/java/net/mcreator/target/procedures/Aa12WuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure.java b/src/main/java/net/mcreator/target/procedures/Aa12WuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure.java index 6179cec2a..690d79a06 100644 --- a/src/main/java/net/mcreator/target/procedures/Aa12WuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure.java +++ b/src/main/java/net/mcreator/target/procedures/Aa12WuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure.java @@ -64,6 +64,5 @@ public class Aa12WuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure { GunReload.reload(entity, GunInfo.Type.SHOTGUN, true); } } - WeaponDrawProcedure.execute(entity, itemstack); } } diff --git a/src/main/java/net/mcreator/target/procedures/AbekiriWuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure.java b/src/main/java/net/mcreator/target/procedures/AbekiriWuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure.java index 4ae7d0f5f..e98eb38b8 100644 --- a/src/main/java/net/mcreator/target/procedures/AbekiriWuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure.java +++ b/src/main/java/net/mcreator/target/procedures/AbekiriWuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure.java @@ -1,6 +1,8 @@ package net.mcreator.target.procedures; import net.mcreator.target.network.TargetModVariables; +import net.mcreator.target.tools.GunInfo; +import net.mcreator.target.tools.GunReload; import net.minecraft.commands.CommandSource; import net.minecraft.commands.CommandSourceStack; import net.minecraft.server.level.ServerLevel; @@ -42,28 +44,7 @@ public class AbekiriWuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure { itemstack.getOrCreateTag().putDouble("reloadtime", 0); } if (itemstack.getOrCreateTag().getDouble("reloadtime") == 1 && (entity instanceof LivingEntity _livEnt ? _livEnt.getMainHandItem() : ItemStack.EMPTY).getOrCreateTag().getDouble("id") == id) { - if ((entity.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new TargetModVariables.PlayerVariables())).shotgunAmmo >= ammo1) { - { - int _setval = (entity.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new TargetModVariables.PlayerVariables())).shotgunAmmo - ammo1; - entity.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).ifPresent(capability -> { - capability.shotgunAmmo = _setval; - capability.syncPlayerVariables(entity); - }); - } - itemstack.getOrCreateTag().putInt("ammo", (itemstack.getOrCreateTag().getInt("ammo") + ammo1)); - itemstack.getOrCreateTag().putDouble("reloading", 0); - itemstack.getOrCreateTag().putDouble("emptyreload", 0); - } else { - { - int _setval = itemstack.getOrCreateTag().getInt("ammo") + (entity.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new TargetModVariables.PlayerVariables())).shotgunAmmo; - entity.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).ifPresent(capability -> { - capability.shotgunAmmo = _setval; - capability.syncPlayerVariables(entity); - }); - } - itemstack.getOrCreateTag().putInt("maxammo", 0); - itemstack.getOrCreateTag().putDouble("reloading", 0); - } + GunReload.reload(entity, GunInfo.Type.SHOTGUN); } } else if (itemstack.getOrCreateTag().getDouble("reloading") == 1 && itemstack.getOrCreateTag().getInt("ammo") == 1) { if (itemstack.getOrCreateTag().getDouble("reloadtime") == 83) { @@ -86,30 +67,8 @@ public class AbekiriWuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure { itemstack.getOrCreateTag().putDouble("reloadtime", 0); } if (itemstack.getOrCreateTag().getDouble("reloadtime") == 1 && (entity instanceof LivingEntity _livEnt ? _livEnt.getMainHandItem() : ItemStack.EMPTY).getOrCreateTag().getDouble("id") == id) { - if ((entity.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new TargetModVariables.PlayerVariables())).shotgunAmmo >= ammo1) { - { - int _setval = (entity.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new TargetModVariables.PlayerVariables())).shotgunAmmo - ammo1; - entity.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).ifPresent(capability -> { - capability.shotgunAmmo = _setval; - capability.syncPlayerVariables(entity); - }); - } - itemstack.getOrCreateTag().putInt("ammo", (itemstack.getOrCreateTag().getInt("ammo") + ammo1)); - itemstack.getOrCreateTag().putDouble("reloading", 0); - itemstack.getOrCreateTag().putDouble("emptyreload", 0); - } else { - { - int _setval = itemstack.getOrCreateTag().getInt("ammo") + (entity.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new TargetModVariables.PlayerVariables())).shotgunAmmo; - entity.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).ifPresent(capability -> { - capability.shotgunAmmo = _setval; - capability.syncPlayerVariables(entity); - }); - } - itemstack.getOrCreateTag().putInt("maxammo", 0); - itemstack.getOrCreateTag().putDouble("reloading", 0); - } + GunReload.reload(entity, GunInfo.Type.SHOTGUN); } } - WeaponDrawLightProcedure.execute(entity, itemstack); } } diff --git a/src/main/java/net/mcreator/target/procedures/Hk416WuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure.java b/src/main/java/net/mcreator/target/procedures/Hk416WuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure.java index 44edf5f8d..1ad4b8135 100644 --- a/src/main/java/net/mcreator/target/procedures/Hk416WuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure.java +++ b/src/main/java/net/mcreator/target/procedures/Hk416WuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure.java @@ -67,6 +67,5 @@ public class Hk416WuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure { GunReload.reload(entity, GunInfo.Type.RIFLE, true); } } - WeaponDrawProcedure.execute(entity, itemstack); } } diff --git a/src/main/java/net/mcreator/target/procedures/KraberWuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure.java b/src/main/java/net/mcreator/target/procedures/KraberWuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure.java index 946ee843b..eec3fa1e0 100644 --- a/src/main/java/net/mcreator/target/procedures/KraberWuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure.java +++ b/src/main/java/net/mcreator/target/procedures/KraberWuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure.java @@ -67,6 +67,5 @@ public class KraberWuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure { GunReload.reload(entity, GunInfo.Type.SNIPER, true); } } - WeapondrawhaveyProcedure.execute(entity, itemstack); } } diff --git a/src/main/java/net/mcreator/target/procedures/KraberfireProcedure.java b/src/main/java/net/mcreator/target/procedures/KraberfireProcedure.java deleted file mode 100644 index 0dfa2ec27..000000000 --- a/src/main/java/net/mcreator/target/procedures/KraberfireProcedure.java +++ /dev/null @@ -1,35 +0,0 @@ -package net.mcreator.target.procedures; - -import net.mcreator.target.init.TargetModItems; -import net.mcreator.target.tools.GunsTool; -import net.minecraft.commands.CommandSource; -import net.minecraft.commands.CommandSourceStack; -import net.minecraft.server.level.ServerLevel; -import net.minecraft.world.entity.player.Player; -import net.minecraft.world.item.ItemStack; - -public class KraberfireProcedure { - public static void execute(Player player) { - if (player.isSpectator()) return; - - ItemStack usehand = player.getMainHandItem(); - if (usehand.getItem() == TargetModItems.KRABER.get() && usehand.getOrCreateTag().getDouble("reloading") == 0 && !player.getCooldowns().isOnCooldown(usehand.getItem()) - && usehand.getOrCreateTag().getInt("ammo") > 0) { - usehand.getOrCreateTag().putDouble("fireanim", 40); - GunsTool.spawnBullet(player); - player.getCooldowns().addCooldown(usehand.getItem(), 40); - - if (!player.level().isClientSide() && player.getServer() != null) { - player.getServer().getCommands().performPrefixedCommand(new CommandSourceStack(CommandSource.NULL, player.position(), player.getRotationVector(), (ServerLevel) player.level(), 4, - player.getName().getString(), player.getDisplayName(), player.level().getServer(), player), "playsound target:kraber_fire_1p player @s ~ ~ ~ 2 1"); - player.getServer().getCommands().performPrefixedCommand(new CommandSourceStack(CommandSource.NULL, player.position(), player.getRotationVector(), (ServerLevel) player.level(), 4, - player.getName().getString(), player.getDisplayName(), player.level().getServer(), player), "playsound target:kraber_fire_3p player @a ~ ~ ~ 4 1"); - player.getServer().getCommands().performPrefixedCommand(new CommandSourceStack(CommandSource.NULL, player.position(), player.getRotationVector(), (ServerLevel) player.level(), 4, - player.getName().getString(), player.getDisplayName(), player.level().getServer(), player), "playsound target:kraber_far player @a ~ ~ ~ 12 1"); - player.getServer().getCommands().performPrefixedCommand(new CommandSourceStack(CommandSource.NULL, player.position(), player.getRotationVector(), (ServerLevel) player.level(), 4, - player.getName().getString(), player.getDisplayName(), player.level().getServer(), player), "playsound target:kraber_veryfar player @a ~ ~ ~ 24 1"); - } - usehand.getOrCreateTag().putInt("ammo", (usehand.getOrCreateTag().getInt("ammo") - 1)); - } - } -} diff --git a/src/main/java/net/mcreator/target/procedures/M4WuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure.java b/src/main/java/net/mcreator/target/procedures/M4WuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure.java index eaebac5ce..bd2d65993 100644 --- a/src/main/java/net/mcreator/target/procedures/M4WuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure.java +++ b/src/main/java/net/mcreator/target/procedures/M4WuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure.java @@ -67,6 +67,5 @@ public class M4WuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure { GunReload.reload(entity, GunInfo.Type.RIFLE, true); } } - WeaponDrawProcedure.execute(entity, itemstack); } } diff --git a/src/main/java/net/mcreator/target/procedures/M60WuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure.java b/src/main/java/net/mcreator/target/procedures/M60WuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure.java index d76a069d7..ebc00a4fd 100644 --- a/src/main/java/net/mcreator/target/procedures/M60WuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure.java +++ b/src/main/java/net/mcreator/target/procedures/M60WuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure.java @@ -70,6 +70,5 @@ public class M60WuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure { GunReload.reload(entity, GunInfo.Type.RIFLE); } } - WeapondrawhaveyProcedure.execute(entity, itemstack); } } diff --git a/src/main/java/net/mcreator/target/procedures/M79WuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure.java b/src/main/java/net/mcreator/target/procedures/M79WuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure.java index e3a407dfc..8b1f23899 100644 --- a/src/main/java/net/mcreator/target/procedures/M79WuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure.java +++ b/src/main/java/net/mcreator/target/procedures/M79WuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure.java @@ -60,6 +60,5 @@ public class M79WuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure { } } } - WeaponDrawProcedure.execute(entity, itemstack); } } diff --git a/src/main/java/net/mcreator/target/procedures/M870WuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure.java b/src/main/java/net/mcreator/target/procedures/M870WuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure.java index 135c5fac0..6f2df8b9a 100644 --- a/src/main/java/net/mcreator/target/procedures/M870WuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure.java +++ b/src/main/java/net/mcreator/target/procedures/M870WuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure.java @@ -94,6 +94,5 @@ public class M870WuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure { if (itemstack.getOrCreateTag().getDouble("firing") > 0) { itemstack.getOrCreateTag().putDouble("firing", (itemstack.getOrCreateTag().getDouble("firing") - 1)); } - WeaponDrawProcedure.execute(entity, itemstack); } } diff --git a/src/main/java/net/mcreator/target/procedures/M98bWuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure.java b/src/main/java/net/mcreator/target/procedures/M98bWuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure.java index 1c10947e9..4b4a1c996 100644 --- a/src/main/java/net/mcreator/target/procedures/M98bWuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure.java +++ b/src/main/java/net/mcreator/target/procedures/M98bWuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure.java @@ -71,6 +71,5 @@ public class M98bWuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure { GunReload.reload(entity, GunInfo.Type.SNIPER, true); } } - WeaponDrawProcedure.execute(entity, itemstack); } } diff --git a/src/main/java/net/mcreator/target/procedures/M98bfireProcedure.java b/src/main/java/net/mcreator/target/procedures/M98bfireProcedure.java deleted file mode 100644 index 5f3cd5c4c..000000000 --- a/src/main/java/net/mcreator/target/procedures/M98bfireProcedure.java +++ /dev/null @@ -1,35 +0,0 @@ -package net.mcreator.target.procedures; - -import net.mcreator.target.init.TargetModItems; -import net.mcreator.target.tools.GunsTool; -import net.minecraft.commands.CommandSource; -import net.minecraft.commands.CommandSourceStack; -import net.minecraft.server.level.ServerLevel; -import net.minecraft.world.entity.player.Player; -import net.minecraft.world.item.ItemStack; - -public class M98bfireProcedure { - public static void execute(Player player) { - if (player.isSpectator()) return; - - ItemStack usehand = player.getMainHandItem(); - if (usehand.getItem() == TargetModItems.M_98B.get() && usehand.getOrCreateTag().getDouble("reloading") == 0 && !(player.getCooldowns().isOnCooldown(usehand.getItem())) - && usehand.getOrCreateTag().getInt("ammo") > 0) { - usehand.getOrCreateTag().putDouble("fireanim", 17); - GunsTool.spawnBullet(player); - player.getCooldowns().addCooldown(usehand.getItem(), 17); - - if (!player.level().isClientSide() && player.getServer() != null) { - player.getServer().getCommands().performPrefixedCommand(new CommandSourceStack(CommandSource.NULL, player.position(), player.getRotationVector(), (ServerLevel) player.level(), 4, - player.getName().getString(), player.getDisplayName(), player.level().getServer(), player), "playsound target:m_98b_fire_1p player @s ~ ~ ~ 2 1"); - player.getServer().getCommands().performPrefixedCommand(new CommandSourceStack(CommandSource.NULL, player.position(), player.getRotationVector(), (ServerLevel) player.level(), 4, - player.getName().getString(), player.getDisplayName(), player.level().getServer(), player), "playsound target:m_98b_fire_3p player @a ~ ~ ~ 4 1"); - player.getServer().getCommands().performPrefixedCommand(new CommandSourceStack(CommandSource.NULL, player.position(), player.getRotationVector(), (ServerLevel) player.level(), 4, - player.getName().getString(), player.getDisplayName(), player.level().getServer(), player), "playsound target:m_98b_far player @a ~ ~ ~ 12 1"); - player.getServer().getCommands().performPrefixedCommand(new CommandSourceStack(CommandSource.NULL, player.position(), player.getRotationVector(), (ServerLevel) player.level(), 4, - player.getName().getString(), player.getDisplayName(), player.level().getServer(), player), "playsound target:m_98b_veryfar player @a ~ ~ ~ 24 1"); - } - usehand.getOrCreateTag().putInt("ammo", (usehand.getOrCreateTag().getInt("ammo") - 1)); - } - } -} diff --git a/src/main/java/net/mcreator/target/procedures/MarlinWuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure.java b/src/main/java/net/mcreator/target/procedures/MarlinWuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure.java index 44eec8573..8a3707096 100644 --- a/src/main/java/net/mcreator/target/procedures/MarlinWuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure.java +++ b/src/main/java/net/mcreator/target/procedures/MarlinWuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure.java @@ -86,6 +86,5 @@ public class MarlinWuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure { if (itemstack.getOrCreateTag().getDouble("firing") > 0) { itemstack.getOrCreateTag().putDouble("firing", (itemstack.getOrCreateTag().getDouble("firing") - 1)); } - WeaponDrawProcedure.execute(entity, itemstack); } } diff --git a/src/main/java/net/mcreator/target/procedures/MiniguninbackpackProcedure.java b/src/main/java/net/mcreator/target/procedures/MiniguninbackpackProcedure.java index fc049c8eb..18c8e2660 100644 --- a/src/main/java/net/mcreator/target/procedures/MiniguninbackpackProcedure.java +++ b/src/main/java/net/mcreator/target/procedures/MiniguninbackpackProcedure.java @@ -24,6 +24,5 @@ public class MiniguninbackpackProcedure { entity.getPersistentData().putDouble("minifiring", 0); itemstack.getOrCreateTag().putDouble("overheat", (itemstack.getOrCreateTag().getDouble("overheat") - 1)); } - WeapondrawhaveyProcedure.execute(entity, itemstack); } } diff --git a/src/main/java/net/mcreator/target/procedures/Mk14WuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure.java b/src/main/java/net/mcreator/target/procedures/Mk14WuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure.java index cfb331561..7d8294b4f 100644 --- a/src/main/java/net/mcreator/target/procedures/Mk14WuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure.java +++ b/src/main/java/net/mcreator/target/procedures/Mk14WuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure.java @@ -70,6 +70,5 @@ public class Mk14WuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure { GunReload.reload(entity, GunInfo.Type.RIFLE, true); } } - WeaponDrawProcedure.execute(entity, itemstack); } } diff --git a/src/main/java/net/mcreator/target/procedures/PressFireProcedure.java b/src/main/java/net/mcreator/target/procedures/PressFireProcedure.java index e72f2262b..7b575268f 100644 --- a/src/main/java/net/mcreator/target/procedures/PressFireProcedure.java +++ b/src/main/java/net/mcreator/target/procedures/PressFireProcedure.java @@ -7,16 +7,14 @@ import net.minecraft.commands.CommandSource; import net.minecraft.commands.CommandSourceStack; import net.minecraft.server.level.ServerLevel; import net.minecraft.world.entity.player.Player; +import net.mcreator.target.event.GunEventHandler; public class PressFireProcedure { public static void execute(Player player) { TaserfireProcedure.execute(player); M79fireProcedure.execute(player); - M98bfireProcedure.execute(player); RpgFireProcedure.execute(player); - KraberfireProcedure.execute(player); MinigunfireProcedure.execute(player); - SentinelFireProcedure.execute(player); MarlinfireProcedure.execute(player); M870fireProcedure.execute(player); VectorFireProcedure.execute(player); @@ -49,5 +47,14 @@ public class PressFireProcedure { if (tag.getInt("ammo") == 0) { PlayerReloadProcedure.execute(player); } + /** + * 栓动武器左键手动拉栓 + */ + if (mainHandItem.is(TargetModTags.Items.GUN) && tag.getDouble("bolt_action_time") > 0 && tag.getInt("ammo") > 0) { + if (!player.getCooldowns().isOnCooldown(mainHandItem.getItem()) && mainHandItem.getOrCreateTag().getDouble("need_bolt_action") == 1) { + mainHandItem.getOrCreateTag().putDouble("bolt_action_anim", mainHandItem.getOrCreateTag().getDouble("bolt_action_time")); + GunEventHandler.playGunBoltSounds(player); + } + } } } diff --git a/src/main/java/net/mcreator/target/procedures/RpgWuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure.java b/src/main/java/net/mcreator/target/procedures/RpgWuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure.java index 31f3963fb..0d7685ec8 100644 --- a/src/main/java/net/mcreator/target/procedures/RpgWuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure.java +++ b/src/main/java/net/mcreator/target/procedures/RpgWuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure.java @@ -52,6 +52,5 @@ public class RpgWuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure { } } } - WeaponDrawProcedure.execute(entity, itemstack); } } diff --git a/src/main/java/net/mcreator/target/procedures/RpkWuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure.java b/src/main/java/net/mcreator/target/procedures/RpkWuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure.java index d40691b8b..f2d73abf9 100644 --- a/src/main/java/net/mcreator/target/procedures/RpkWuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure.java +++ b/src/main/java/net/mcreator/target/procedures/RpkWuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure.java @@ -61,6 +61,5 @@ public class RpkWuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure { GunReload.reload(entity, GunInfo.Type.RIFLE, true); } } - WeaponDrawProcedure.execute(entity, itemstack); } } diff --git a/src/main/java/net/mcreator/target/procedures/SentinelFireProcedure.java b/src/main/java/net/mcreator/target/procedures/SentinelFireProcedure.java deleted file mode 100644 index 58b5bd331..000000000 --- a/src/main/java/net/mcreator/target/procedures/SentinelFireProcedure.java +++ /dev/null @@ -1,64 +0,0 @@ -package net.mcreator.target.procedures; - -import net.mcreator.target.init.TargetModItems; -import net.mcreator.target.network.TargetModVariables; -import net.mcreator.target.tools.GunsTool; -import net.minecraft.commands.CommandSource; -import net.minecraft.commands.CommandSourceStack; -import net.minecraft.server.level.ServerLevel; -import net.minecraft.world.entity.player.Player; -import net.minecraft.world.item.ItemStack; - -public class SentinelFireProcedure { - public static void execute(Player player) { - if (player.isSpectator()) return; - - ItemStack usehand = player.getMainHandItem(); - if (usehand.getItem() == TargetModItems.SENTINEL.get() && usehand.getOrCreateTag().getDouble("reloading") == 0 && !player.getCooldowns().isOnCooldown(usehand.getItem()) - && usehand.getOrCreateTag().getInt("ammo") > 0) { - if (usehand.getOrCreateTag().getDouble("power") > 0) { - if ((player.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new TargetModVariables.PlayerVariables())).zooming) { - usehand.getOrCreateTag().putDouble("zoomfiring", 24); - } else { - usehand.getOrCreateTag().putDouble("firing", 24); - } - if (!player.level().isClientSide() && player.getServer() != null) { - player.getServer().getCommands().performPrefixedCommand(new CommandSourceStack(CommandSource.NULL, player.position(), player.getRotationVector(), (ServerLevel) player.level(), 4, - player.getName().getString(), player.getDisplayName(), player.level().getServer(), player), "playsound target:sentinel_charge_fire_1p player @s ~ ~ ~ 2 1"); - player.getServer().getCommands().performPrefixedCommand(new CommandSourceStack(CommandSource.NULL, player.position(), player.getRotationVector(), (ServerLevel) player.level(), 4, - player.getName().getString(), player.getDisplayName(), player.level().getServer(), player), "playsound target:sentinel_charge_fire_3p player @a ~ ~ ~ 4 1"); - player.getServer().getCommands().performPrefixedCommand(new CommandSourceStack(CommandSource.NULL, player.position(), player.getRotationVector(), (ServerLevel) player.level(), 4, - player.getName().getString(), player.getDisplayName(), player.level().getServer(), player), "playsound target:sentinel_charge_far player @s ~ ~ ~ 12 1"); - player.getServer().getCommands().performPrefixedCommand(new CommandSourceStack(CommandSource.NULL, player.position(), player.getRotationVector(), (ServerLevel) player.level(), 4, - player.getName().getString(), player.getDisplayName(), player.level().getServer(), player), "playsound target:sentinel_charge_veryfar player @a ~ ~ ~ 24 1"); - } - if (usehand.getOrCreateTag().getDouble("power") > 20) { - usehand.getOrCreateTag().putDouble("power", (usehand.getOrCreateTag().getDouble("power") - 20)); - } else { - usehand.getOrCreateTag().putDouble("power", 0); - } - } else { - if ((player.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new TargetModVariables.PlayerVariables())).zooming) { - usehand.getOrCreateTag().putDouble("zoomfiring", 24); - } else { - usehand.getOrCreateTag().putDouble("firing", 24); - } - if (!player.level().isClientSide() && player.getServer() != null) { - player.getServer().getCommands().performPrefixedCommand(new CommandSourceStack(CommandSource.NULL, player.position(), player.getRotationVector(), (ServerLevel) player.level(), 4, - player.getName().getString(), player.getDisplayName(), player.level().getServer(), player), "playsound target:sentinel_fire_1p player @s ~ ~ ~ 2 1"); - player.getServer().getCommands().performPrefixedCommand(new CommandSourceStack(CommandSource.NULL, player.position(), player.getRotationVector(), (ServerLevel) player.level(), 4, - player.getName().getString(), player.getDisplayName(), player.level().getServer(), player), "playsound target:sentinel_fire_3p player @a ~ ~ ~ 4 1"); - player.getServer().getCommands().performPrefixedCommand(new CommandSourceStack(CommandSource.NULL, player.position(), player.getRotationVector(), (ServerLevel) player.level(), 4, - player.getName().getString(), player.getDisplayName(), player.level().getServer(), player), "playsound target:sentinel_far player @s ~ ~ ~ 12 1"); - player.getServer().getCommands().performPrefixedCommand(new CommandSourceStack(CommandSource.NULL, player.position(), player.getRotationVector(), (ServerLevel) player.level(), 4, - player.getName().getString(), player.getDisplayName(), player.level().getServer(), player), "playsound target:sentinel_veryfar player @a ~ ~ ~ 24 1"); - } - } - GunsTool.spawnBullet(player); - usehand.getOrCreateTag().putDouble("crot", 20); - player.getCooldowns().addCooldown(usehand.getItem(), 23); - usehand.getOrCreateTag().putInt("ammo", (usehand.getOrCreateTag().getInt("ammo") - 1)); - usehand.getOrCreateTag().putDouble("fireanim", 2); - } - } -} diff --git a/src/main/java/net/mcreator/target/procedures/SentinelWuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure.java b/src/main/java/net/mcreator/target/procedures/SentinelWuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure.java index a19aaa5da..4fe6201fe 100644 --- a/src/main/java/net/mcreator/target/procedures/SentinelWuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure.java +++ b/src/main/java/net/mcreator/target/procedures/SentinelWuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure.java @@ -76,7 +76,7 @@ public class SentinelWuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure { if (itemstack.getOrCreateTag().getDouble("zoomfiring") > 0) { itemstack.getOrCreateTag().putDouble("zoomfiring", (itemstack.getOrCreateTag().getDouble("zoomfiring") - 1)); } - WeaponDrawProcedure.execute(entity, itemstack); + cid = itemstack.getOrCreateTag().getDouble("cid"); if ((entity instanceof LivingEntity _livEnt ? _livEnt.getMainHandItem() : ItemStack.EMPTY).getOrCreateTag().getDouble("cid") != itemstack.getOrCreateTag().getDouble("cid")) { itemstack.getOrCreateTag().putDouble("charging", 0); diff --git a/src/main/java/net/mcreator/target/procedures/SksWuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure.java b/src/main/java/net/mcreator/target/procedures/SksWuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure.java index df45653f3..8d28062e6 100644 --- a/src/main/java/net/mcreator/target/procedures/SksWuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure.java +++ b/src/main/java/net/mcreator/target/procedures/SksWuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure.java @@ -72,6 +72,5 @@ public class SksWuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure { GunReload.reload(entity, GunInfo.Type.RIFLE, true); } } - WeaponDrawProcedure.execute(entity, itemstack); } } diff --git a/src/main/java/net/mcreator/target/procedures/SvdWuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure.java b/src/main/java/net/mcreator/target/procedures/SvdWuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure.java index ccd28a792..833e1c82c 100644 --- a/src/main/java/net/mcreator/target/procedures/SvdWuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure.java +++ b/src/main/java/net/mcreator/target/procedures/SvdWuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure.java @@ -72,6 +72,5 @@ public class SvdWuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure { GunReload.reload(entity, GunInfo.Type.SNIPER, true); } } - WeaponDrawProcedure.execute(entity, itemstack); } } diff --git a/src/main/java/net/mcreator/target/procedures/TasercooldownProcedure.java b/src/main/java/net/mcreator/target/procedures/TasercooldownProcedure.java index 415249a56..0c6e9e2a9 100644 --- a/src/main/java/net/mcreator/target/procedures/TasercooldownProcedure.java +++ b/src/main/java/net/mcreator/target/procedures/TasercooldownProcedure.java @@ -53,6 +53,5 @@ public class TasercooldownProcedure { } } } - WeaponDrawLightProcedure.execute(entity, itemstack); } } diff --git a/src/main/java/net/mcreator/target/procedures/WeaponDrawLightProcedure.java b/src/main/java/net/mcreator/target/procedures/WeaponDrawLightProcedure.java deleted file mode 100644 index a81af3610..000000000 --- a/src/main/java/net/mcreator/target/procedures/WeaponDrawLightProcedure.java +++ /dev/null @@ -1,36 +0,0 @@ -package net.mcreator.target.procedures; - -import net.mcreator.target.network.TargetModVariables; -import net.minecraft.nbt.CompoundTag; -import net.minecraft.world.entity.Entity; -import net.minecraft.world.entity.LivingEntity; -import net.minecraft.world.entity.player.Player; -import net.minecraft.world.item.Item; -import net.minecraft.world.item.ItemStack; - -public class WeaponDrawLightProcedure { - public static void execute(Entity entity, ItemStack itemStack) { - if (entity == null) return; - CompoundTag tag = itemStack.getOrCreateTag(); - Item mainHandItem = (entity instanceof LivingEntity _livEnt ? _livEnt.getMainHandItem() : ItemStack.EMPTY).getItem(); - if (tag.getDouble("draw") == 1) { - tag.putDouble("draw", 0); - tag.putDouble("drawtime", 0); - if (entity instanceof Player _player) - _player.getCooldowns().addCooldown(itemStack.getItem(), 11); - entity.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).ifPresent(capability -> { - capability.zooming = false; - capability.syncPlayerVariables(entity); - }); - } - - if (mainHandItem == itemStack.getItem()) { - if (tag.getDouble("drawtime") < 11) { - tag.putDouble("drawtime", (tag.getDouble("drawtime") + 1)); - } - } - if (tag.getDouble("fireanim") > 0) { - tag.putDouble("fireanim", (tag.getDouble("fireanim") - 1)); - } - } -} diff --git a/src/main/java/net/mcreator/target/procedures/WeaponDrawProcedure.java b/src/main/java/net/mcreator/target/procedures/WeaponDrawProcedure.java deleted file mode 100644 index ca414d3c7..000000000 --- a/src/main/java/net/mcreator/target/procedures/WeaponDrawProcedure.java +++ /dev/null @@ -1,43 +0,0 @@ -package net.mcreator.target.procedures; - -import net.mcreator.target.init.TargetModItems; -import net.mcreator.target.network.TargetModVariables; -import net.minecraft.nbt.CompoundTag; -import net.minecraft.world.entity.Entity; -import net.minecraft.world.entity.LivingEntity; -import net.minecraft.world.entity.player.Player; -import net.minecraft.world.item.Item; -import net.minecraft.world.item.ItemStack; - -public class WeaponDrawProcedure { - public static void execute(Entity entity, ItemStack itemStack) { - if (entity == null) return; - CompoundTag tag = itemStack.getOrCreateTag(); - Item mainHandItem = (entity instanceof LivingEntity _livEnt ? _livEnt.getMainHandItem() : ItemStack.EMPTY).getItem(); - if (tag.getDouble("draw") == 1) { - tag.putDouble("draw", 0); - tag.putDouble("drawtime", 0); - entity.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).ifPresent(capability -> { - capability.zooming = false; - capability.syncPlayerVariables(entity); - }); - if (entity instanceof Player _player) - _player.getCooldowns().addCooldown(itemStack.getItem(), 16); - if (itemStack.getItem() == TargetModItems.RPG.get() && tag.getInt("ammo") == 0) { - tag.putDouble("empty", 1); - } - if (itemStack.getItem() == TargetModItems.SKS.get() && tag.getInt("ammo") == 0) { - tag.putDouble("gj", 1); - } - } - - if (mainHandItem == itemStack.getItem()) { - if (tag.getDouble("drawtime") < 16) { - tag.putDouble("drawtime", (tag.getDouble("drawtime") + 1)); - } - } - if (tag.getDouble("fireanim") > 0) { - tag.putDouble("fireanim", (tag.getDouble("fireanim") - 1)); - } - } -} diff --git a/src/main/java/net/mcreator/target/procedures/WeapondrawhaveyProcedure.java b/src/main/java/net/mcreator/target/procedures/WeapondrawhaveyProcedure.java deleted file mode 100644 index 459ff213f..000000000 --- a/src/main/java/net/mcreator/target/procedures/WeapondrawhaveyProcedure.java +++ /dev/null @@ -1,40 +0,0 @@ -package net.mcreator.target.procedures; - -import net.mcreator.target.init.TargetModItems; -import net.mcreator.target.network.TargetModVariables; -import net.minecraft.nbt.CompoundTag; -import net.minecraft.world.entity.Entity; -import net.minecraft.world.entity.LivingEntity; -import net.minecraft.world.entity.player.Player; -import net.minecraft.world.item.Item; -import net.minecraft.world.item.ItemStack; - -public class WeapondrawhaveyProcedure { - public static void execute(Entity entity, ItemStack itemStack) { - if (entity == null) return; - CompoundTag tag = itemStack.getOrCreateTag(); - Item mainHandItem = (entity instanceof LivingEntity _livEnt ? _livEnt.getMainHandItem() : ItemStack.EMPTY).getItem(); - if (tag.getDouble("draw") == 1) { - tag.putDouble("draw", 0); - tag.putDouble("drawtime", 0); - entity.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).ifPresent(capability -> { - capability.zooming = false; - capability.syncPlayerVariables(entity); - }); - if (entity instanceof Player _player) - _player.getCooldowns().addCooldown(itemStack.getItem(), 29); - if (itemStack.getItem() == TargetModItems.M_60.get() && tag.getInt("ammo") <= 5) { - tag.putDouble("empty", 1); - } - } - - if (mainHandItem == itemStack.getItem()) { - if (tag.getDouble("drawtime") < 29) { - tag.putDouble("drawtime", (tag.getDouble("drawtime") + 1)); - } - } - if (tag.getDouble("fireanim") > 0) { - tag.putDouble("fireanim", (tag.getDouble("fireanim") - 1)); - } - } -} diff --git a/src/main/java/net/mcreator/target/tools/GunReload.java b/src/main/java/net/mcreator/target/tools/GunReload.java index 15555a0e0..962c66cc8 100644 --- a/src/main/java/net/mcreator/target/tools/GunReload.java +++ b/src/main/java/net/mcreator/target/tools/GunReload.java @@ -1,5 +1,6 @@ package net.mcreator.target.tools; +import net.mcreator.target.init.TargetModTags; import net.mcreator.target.network.TargetModVariables; import net.minecraft.nbt.CompoundTag; import net.minecraft.world.entity.Entity; @@ -18,6 +19,12 @@ public class GunReload { int mag = tag.getInt("mag"); int ammo = tag.getInt("ammo"); int ammoToAdd = mag - ammo + (extraOne ? 1 : 0); + /** + * 空仓换弹的栓动武器应该在换单后取消待上膛标记 + */ + if (ammo ==0 && tag.getDouble("bolt_action_time") > 0) { + tag.putDouble("need_bolt_action", 0); + } int playerAmmo = entity.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).map(c -> switch (type) { case RIFLE -> c.rifleAmmo; diff --git a/src/main/resources/assets/target/animations/sks.animation.json b/src/main/resources/assets/target/animations/sks.animation.json index f7aaee3ae..0ba3302dc 100644 --- a/src/main/resources/assets/target/animations/sks.animation.json +++ b/src/main/resources/assets/target/animations/sks.animation.json @@ -104,16 +104,6 @@ "vector": [0, 0, 0] } } - }, - "bolt": { - "position": { - "0.0": { - "vector": [0, 0, 3.25] - }, - "0.05": { - "vector": [0, 0, 0] - } - } } } }, @@ -130,16 +120,6 @@ "vector": [0, 0, 0] } } - }, - "bolt": { - "position": { - "0.0": { - "vector": [0, 0, 3.25] - }, - "0.05": { - "vector": [0, 0, 0] - } - } } } }, diff --git a/src/main/resources/assets/target/sounds.json b/src/main/resources/assets/target/sounds.json index 82caea700..1cd35a4d9 100644 --- a/src/main/resources/assets/target/sounds.json +++ b/src/main/resources/assets/target/sounds.json @@ -677,6 +677,14 @@ } ] }, + "kraber_bolt": { + "sounds": [ + { + "name": "target:kraber/kraber_bolt", + "stream": false + } + ] + }, "vector_fire_1p": { "sounds": [ @@ -913,6 +921,14 @@ } ] }, + "sentinel_bolt": { + "sounds": [ + { + "name": "target:sentinel/sentinel_bolt", + "stream": false + } + ] + }, "m_60_fire_1p": { "sounds": [ @@ -1060,6 +1076,14 @@ } ] }, + "m_98b_bolt": { + "sounds": [ + { + "name": "target:m_98b/m_98b_bolt", + "stream": false + } + ] + }, "marlin_fire_1p": { "sounds": [ @@ -1427,14 +1451,6 @@ } ] }, - "shift": { - "sounds": [ - { - "name": "target:shift", - "stream": false - } - ] - }, "headshot": { "sounds": [ { diff --git a/src/main/resources/assets/target/sounds/kraber/kraber_bolt.ogg b/src/main/resources/assets/target/sounds/kraber/kraber_bolt.ogg new file mode 100644 index 000000000..f13b5757b Binary files /dev/null and b/src/main/resources/assets/target/sounds/kraber/kraber_bolt.ogg differ diff --git a/src/main/resources/assets/target/sounds/kraber/kraber_fire_1p.ogg b/src/main/resources/assets/target/sounds/kraber/kraber_fire_1p.ogg index 4b538681a..86fa56b80 100644 Binary files a/src/main/resources/assets/target/sounds/kraber/kraber_fire_1p.ogg and b/src/main/resources/assets/target/sounds/kraber/kraber_fire_1p.ogg differ diff --git a/src/main/resources/assets/target/sounds/kraber/kraber_reload_empty.ogg b/src/main/resources/assets/target/sounds/kraber/kraber_reload_empty.ogg index 59d08442b..4a23e5c24 100644 Binary files a/src/main/resources/assets/target/sounds/kraber/kraber_reload_empty.ogg and b/src/main/resources/assets/target/sounds/kraber/kraber_reload_empty.ogg differ diff --git a/src/main/resources/assets/target/sounds/kraber/kraber_reload_normal.ogg b/src/main/resources/assets/target/sounds/kraber/kraber_reload_normal.ogg index ac0a270d8..614328ccc 100644 Binary files a/src/main/resources/assets/target/sounds/kraber/kraber_reload_normal.ogg and b/src/main/resources/assets/target/sounds/kraber/kraber_reload_normal.ogg differ diff --git a/src/main/resources/assets/target/sounds/m_98b/m_98b_bolt.ogg b/src/main/resources/assets/target/sounds/m_98b/m_98b_bolt.ogg new file mode 100644 index 000000000..b284f54dc Binary files /dev/null and b/src/main/resources/assets/target/sounds/m_98b/m_98b_bolt.ogg differ diff --git a/src/main/resources/assets/target/sounds/m_98b/m_98b_fire_1p.ogg b/src/main/resources/assets/target/sounds/m_98b/m_98b_fire_1p.ogg index 42f3735eb..ef07a7a3f 100644 Binary files a/src/main/resources/assets/target/sounds/m_98b/m_98b_fire_1p.ogg and b/src/main/resources/assets/target/sounds/m_98b/m_98b_fire_1p.ogg differ diff --git a/src/main/resources/assets/target/sounds/sentinel/sentinel_bolt.ogg b/src/main/resources/assets/target/sounds/sentinel/sentinel_bolt.ogg new file mode 100644 index 000000000..088a33a60 Binary files /dev/null and b/src/main/resources/assets/target/sounds/sentinel/sentinel_bolt.ogg differ diff --git a/src/main/resources/assets/target/sounds/sentinel/sentinel_charge_fire_1p.ogg b/src/main/resources/assets/target/sounds/sentinel/sentinel_charge_fire_1p.ogg index 7d2357fc3..328ffc5cb 100644 Binary files a/src/main/resources/assets/target/sounds/sentinel/sentinel_charge_fire_1p.ogg and b/src/main/resources/assets/target/sounds/sentinel/sentinel_charge_fire_1p.ogg differ diff --git a/src/main/resources/assets/target/sounds/sentinel/sentinel_fire_1p.ogg b/src/main/resources/assets/target/sounds/sentinel/sentinel_fire_1p.ogg index 16e41282b..4d282cfc3 100644 Binary files a/src/main/resources/assets/target/sounds/sentinel/sentinel_fire_1p.ogg and b/src/main/resources/assets/target/sounds/sentinel/sentinel_fire_1p.ogg differ diff --git a/src/main/resources/assets/target/sounds/shift.ogg b/src/main/resources/assets/target/sounds/shift.ogg deleted file mode 100644 index 4ca37513c..000000000 Binary files a/src/main/resources/assets/target/sounds/shift.ogg and /dev/null differ diff --git a/src/main/resources/data/target/guns/aa_12.json b/src/main/resources/data/target/guns/aa_12.json index 0dab790fa..e47c19f89 100644 --- a/src/main/resources/data/target/guns/aa_12.json +++ b/src/main/resources/data/target/guns/aa_12.json @@ -9,5 +9,6 @@ "velocity": 16, "mag": 25, "projectileamount": 8, - "fire_interval": 4 -} \ No newline at end of file + "fire_interval": 4, + "weight": 1 +} diff --git a/src/main/resources/data/target/guns/abekiri.json b/src/main/resources/data/target/guns/abekiri.json index 9b043fc95..cfa043438 100644 --- a/src/main/resources/data/target/guns/abekiri.json +++ b/src/main/resources/data/target/guns/abekiri.json @@ -9,5 +9,6 @@ "velocity": 15, "mag": 2, "projectileamount": 8, - "fire_interval": 2 + "fire_interval": 2, + "weight": 0 } \ No newline at end of file diff --git a/src/main/resources/data/target/guns/ak_47.json b/src/main/resources/data/target/guns/ak_47.json index 28cf6c750..1a0b9da05 100644 --- a/src/main/resources/data/target/guns/ak_47.json +++ b/src/main/resources/data/target/guns/ak_47.json @@ -9,5 +9,6 @@ "velocity": 30, "mag": 30, "projectileamount": 1, - "fire_interval": 2 + "fire_interval": 2, + "weight": 1 } \ No newline at end of file diff --git a/src/main/resources/data/target/guns/bocek.json b/src/main/resources/data/target/guns/bocek.json index 66c1dd2cc..7aac33a23 100644 --- a/src/main/resources/data/target/guns/bocek.json +++ b/src/main/resources/data/target/guns/bocek.json @@ -5,5 +5,7 @@ "recoilx": 0.005, "recoily": 0.003, "headshot": 1.5, - "damage": 24 + "damage": 24, + "weight": 1, + "weight": 1 } \ No newline at end of file diff --git a/src/main/resources/data/target/guns/devotion.json b/src/main/resources/data/target/guns/devotion.json index 04bbf8a0f..81611b3e7 100644 --- a/src/main/resources/data/target/guns/devotion.json +++ b/src/main/resources/data/target/guns/devotion.json @@ -11,5 +11,6 @@ "mag": 55, "firemode": 2, "projectileamount": 1, - "fire_interval": 5 + "fire_interval": 5, + "weight": 1 } \ No newline at end of file diff --git a/src/main/resources/data/target/guns/hk_416.json b/src/main/resources/data/target/guns/hk_416.json index 2276bed3f..c1f43e0d3 100644 --- a/src/main/resources/data/target/guns/hk_416.json +++ b/src/main/resources/data/target/guns/hk_416.json @@ -9,5 +9,6 @@ "velocity": 45, "mag": 30, "projectileamount": 1, - "fire_interval": 1 + "fire_interval": 1, + "weight": 1 } \ No newline at end of file diff --git a/src/main/resources/data/target/guns/hunting_rifle.json b/src/main/resources/data/target/guns/hunting_rifle.json index f6c51848b..62762b502 100644 --- a/src/main/resources/data/target/guns/hunting_rifle.json +++ b/src/main/resources/data/target/guns/hunting_rifle.json @@ -8,5 +8,6 @@ "headshot": 3, "velocity": 50, "mag": 1, - "projectileamount": 1 + "projectileamount": 1, + "weight": 1 } \ No newline at end of file diff --git a/src/main/resources/data/target/guns/kraber.json b/src/main/resources/data/target/guns/kraber.json index b756cddc9..3cb456d89 100644 --- a/src/main/resources/data/target/guns/kraber.json +++ b/src/main/resources/data/target/guns/kraber.json @@ -8,5 +8,9 @@ "damage": 70, "headshot": 3, "velocity": 40, - "mag": 4 + "projectileamount": 1, + "mag": 4, + "fire_interval": 10, + "bolt_action_time": 30, + "weight": 2 } \ No newline at end of file diff --git a/src/main/resources/data/target/guns/m_4.json b/src/main/resources/data/target/guns/m_4.json index 04098170f..79d53f71f 100644 --- a/src/main/resources/data/target/guns/m_4.json +++ b/src/main/resources/data/target/guns/m_4.json @@ -9,5 +9,6 @@ "velocity": 45, "mag": 30, "projectileamount": 1, - "fire_interval": 1 + "fire_interval": 1, + "weight": 1 } \ No newline at end of file diff --git a/src/main/resources/data/target/guns/m_60.json b/src/main/resources/data/target/guns/m_60.json index 3dd10cc10..30ff16d8b 100644 --- a/src/main/resources/data/target/guns/m_60.json +++ b/src/main/resources/data/target/guns/m_60.json @@ -11,5 +11,6 @@ "mag": 100, "firemode": 2, "projectileamount": 1, - "fire_interval": 2 + "fire_interval": 2, + "weight": 2 } \ No newline at end of file diff --git a/src/main/resources/data/target/guns/m_79.json b/src/main/resources/data/target/guns/m_79.json index dd606aaae..6ac1d8960 100644 --- a/src/main/resources/data/target/guns/m_79.json +++ b/src/main/resources/data/target/guns/m_79.json @@ -6,5 +6,6 @@ "recoily": 0.023, "damage": 40, "velocity": 3.75, - "mag": 1 + "mag": 1, + "weight": 1 } \ No newline at end of file diff --git a/src/main/resources/data/target/guns/m_870.json b/src/main/resources/data/target/guns/m_870.json index 37d5b3a88..356336d39 100644 --- a/src/main/resources/data/target/guns/m_870.json +++ b/src/main/resources/data/target/guns/m_870.json @@ -7,5 +7,6 @@ "damage": 2, "headshot": 1.5, "velocity": 20, - "mag": 8 + "mag": 8, + "weight": 1 } \ No newline at end of file diff --git a/src/main/resources/data/target/guns/m_98b.json b/src/main/resources/data/target/guns/m_98b.json index a3e36fdc9..8e6d6bdd5 100644 --- a/src/main/resources/data/target/guns/m_98b.json +++ b/src/main/resources/data/target/guns/m_98b.json @@ -7,5 +7,9 @@ "damage": 28, "headshot": 3, "velocity": 55, - "mag": 5 + "projectileamount": 1, + "mag": 5, + "fire_interval": 6, + "bolt_action_time": 18, + "weight": 1 } \ No newline at end of file diff --git a/src/main/resources/data/target/guns/marlin.json b/src/main/resources/data/target/guns/marlin.json index 5d460e346..40f4c49ac 100644 --- a/src/main/resources/data/target/guns/marlin.json +++ b/src/main/resources/data/target/guns/marlin.json @@ -7,5 +7,6 @@ "damage": 16, "headshot": 2.5, "velocity": 27, - "mag": 8 + "mag": 8, + "weight": 1 } \ No newline at end of file diff --git a/src/main/resources/data/target/guns/minigun.json b/src/main/resources/data/target/guns/minigun.json index 86729ba1e..9602672f0 100644 --- a/src/main/resources/data/target/guns/minigun.json +++ b/src/main/resources/data/target/guns/minigun.json @@ -7,5 +7,6 @@ "headshot": 2, "velocity": 40, "firemode": 2, - "fire_interval": 1 + "fire_interval": 1, + "weight": 2 } \ No newline at end of file diff --git a/src/main/resources/data/target/guns/mk_14.json b/src/main/resources/data/target/guns/mk_14.json index f2524c81f..0e757ac4e 100644 --- a/src/main/resources/data/target/guns/mk_14.json +++ b/src/main/resources/data/target/guns/mk_14.json @@ -10,5 +10,6 @@ "velocity": 45, "mag": 20, "projectileamount": 1, - "fire_interval": 2 + "fire_interval": 2, + "weight": 1 } \ No newline at end of file diff --git a/src/main/resources/data/target/guns/rpg.json b/src/main/resources/data/target/guns/rpg.json index 2a31a9385..0fc990ff3 100644 --- a/src/main/resources/data/target/guns/rpg.json +++ b/src/main/resources/data/target/guns/rpg.json @@ -6,5 +6,6 @@ "recoily": 0.018, "damage": 150, "velocity": 5.75, - "mag": 1 + "mag": 1, + "weight": 1 } \ No newline at end of file diff --git a/src/main/resources/data/target/guns/rpk.json b/src/main/resources/data/target/guns/rpk.json index 1a8f5a043..5edc98f52 100644 --- a/src/main/resources/data/target/guns/rpk.json +++ b/src/main/resources/data/target/guns/rpk.json @@ -10,5 +10,6 @@ "velocity": 35, "mag": 75, "projectileamount": 1, - "fire_interval": 2 + "fire_interval": 2, + "weight": 1 } \ No newline at end of file diff --git a/src/main/resources/data/target/guns/sentinel.json b/src/main/resources/data/target/guns/sentinel.json index 9afc56595..da07e1be0 100644 --- a/src/main/resources/data/target/guns/sentinel.json +++ b/src/main/resources/data/target/guns/sentinel.json @@ -6,6 +6,10 @@ "recoily": 0.018, "damage": 25, "mag": 5, + "projectileamount": 1, "headshot": 2, - "velocity": 50 + "velocity": 50, + "fire_interval": 2, + "bolt_action_time": 22, + "weight": 1 } \ No newline at end of file diff --git a/src/main/resources/data/target/guns/sks.json b/src/main/resources/data/target/guns/sks.json index 3ab1aac9d..37208751e 100644 --- a/src/main/resources/data/target/guns/sks.json +++ b/src/main/resources/data/target/guns/sks.json @@ -9,5 +9,6 @@ "velocity": 40, "mag": 20, "projectileamount": 1, - "fire_interval": 3 + "fire_interval": 3, + "weight": 1 } \ No newline at end of file diff --git a/src/main/resources/data/target/guns/svd.json b/src/main/resources/data/target/guns/svd.json index c8183f2a6..1f3715758 100644 --- a/src/main/resources/data/target/guns/svd.json +++ b/src/main/resources/data/target/guns/svd.json @@ -9,5 +9,6 @@ "velocity": 50, "mag": 10, "projectileamount": 1, - "fire_interval": 5 + "fire_interval": 5, + "weight": 1 } \ No newline at end of file diff --git a/src/main/resources/data/target/guns/taser.json b/src/main/resources/data/target/guns/taser.json index 5d1e7ab3c..40444ab3a 100644 --- a/src/main/resources/data/target/guns/taser.json +++ b/src/main/resources/data/target/guns/taser.json @@ -6,5 +6,6 @@ "zoom": 1.25, "damage": 5, "velocity": 3, - "mag": 1 + "mag": 1, + "weight": 0 } \ No newline at end of file diff --git a/src/main/resources/data/target/guns/trachelium.json b/src/main/resources/data/target/guns/trachelium.json index 04ae18016..3369c6697 100644 --- a/src/main/resources/data/target/guns/trachelium.json +++ b/src/main/resources/data/target/guns/trachelium.json @@ -9,5 +9,6 @@ "velocity": 60, "mag": 8, "projectileamount": 1, - "fire_interval": 5 + "fire_interval": 5, + "weight": 0 } \ No newline at end of file diff --git a/src/main/resources/data/target/guns/vector.json b/src/main/resources/data/target/guns/vector.json index 7a9387361..17e05f04d 100644 --- a/src/main/resources/data/target/guns/vector.json +++ b/src/main/resources/data/target/guns/vector.json @@ -9,5 +9,6 @@ "velocity": 22, "mag": 33, "projectileamount": 1, - "fire_interval": 1 + "fire_interval": 1, + "weight": 0 } \ No newline at end of file diff --git a/src/main/resources/data/target/tags/items/normal_mag_gun.json b/src/main/resources/data/target/tags/items/normal_gun.json similarity index 76% rename from src/main/resources/data/target/tags/items/normal_mag_gun.json rename to src/main/resources/data/target/tags/items/normal_gun.json index b7d27de43..734b0132b 100644 --- a/src/main/resources/data/target/tags/items/normal_mag_gun.json +++ b/src/main/resources/data/target/tags/items/normal_gun.json @@ -14,6 +14,9 @@ "target:m_4", "target:devotion", "target:trachelium", - "target:hunting_rifle" + "target:hunting_rifle", + "target:kraber", + "target:m_98b", + "target:sentinel" ] } \ No newline at end of file