diff --git a/src/main/java/net/mcreator/target/event/GunEventHandler.java b/src/main/java/net/mcreator/target/event/GunEventHandler.java index fc75cf9a6..9af4bd237 100644 --- a/src/main/java/net/mcreator/target/event/GunEventHandler.java +++ b/src/main/java/net/mcreator/target/event/GunEventHandler.java @@ -3,6 +3,7 @@ package net.mcreator.target.event; import net.mcreator.target.TargetMod; import net.mcreator.target.entity.ProjectileEntity; import net.mcreator.target.init.TargetModAttributes; +import net.mcreator.target.init.TargetModItems; import net.mcreator.target.init.TargetModTags; import net.mcreator.target.network.TargetModVariables; import net.mcreator.target.tools.ItemNBTTool; @@ -108,13 +109,17 @@ public class GunEventHandler { ItemStack stack = player.getMainHandItem(); if (stack.is(TargetModTags.Items.NORMAL_MAG_GUN)) { double mode = stack.getOrCreateTag().getDouble("firemode"); + if (player.getPersistentData().getDouble("firing") == 0 && player.getMainHandItem().getItem() == TargetModItems.DEVOTION.get()) { + stack.getOrCreateTag().putDouble("fire_increase", 0); + } if (player.getPersistentData().getDouble("firing") == 1 && stack.getOrCreateTag().getDouble("reloading") == 0 && stack.getOrCreateTag().getDouble("ammo") > 0 && !player.getCooldowns().isOnCooldown(stack.getItem()) && mode != 1 - && !player.getCooldowns().isOnCooldown(stack.getItem())) { + && !player.getCooldowns().isOnCooldown(stack.getItem())) + { if (stack.getOrCreateTag().getDouble("firemode") == 0) { player.getPersistentData().putDouble("firing", 0); @@ -135,7 +140,19 @@ public class GunEventHandler { stack.getOrCreateTag().putDouble("fireanim", 2); stack.getOrCreateTag().putDouble("empty", 1); - int cooldown = (int) Math.ceil(20 * 60 / ItemNBTTool.getDouble(stack, "rpm", 60)); + if (player.getMainHandItem().getItem() == TargetModItems.M_4.get() || player.getMainHandItem().getItem() == TargetModItems.HK_416.get()) { + if (stack.getOrCreateTag().getDouble("fire_sequence") == 1) { + stack.getOrCreateTag().putDouble("fire_sequence", 0); + } else { + stack.getOrCreateTag().putDouble("fire_sequence", 1); + } + } + + if (player.getMainHandItem().getItem() == TargetModItems.DEVOTION.get()) { + stack.getOrCreateTag().putDouble("fire_increase", stack.getOrCreateTag().getDouble("fire_increase") + 0.334); + } + + 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++) { diff --git a/src/main/resources/data/target/guns/aa_12.json b/src/main/resources/data/target/guns/aa_12.json index 509ad980a..0dab790fa 100644 --- a/src/main/resources/data/target/guns/aa_12.json +++ b/src/main/resources/data/target/guns/aa_12.json @@ -9,5 +9,5 @@ "velocity": 16, "mag": 25, "projectileamount": 8, - "rpm": 360 + "fire_interval": 4 } \ No newline at end of file diff --git a/src/main/resources/data/target/guns/abekiri.json b/src/main/resources/data/target/guns/abekiri.json index dce7d7969..ab658b8e7 100644 --- a/src/main/resources/data/target/guns/abekiri.json +++ b/src/main/resources/data/target/guns/abekiri.json @@ -7,5 +7,6 @@ "damage": 2.5, "headshot": 1.5, "velocity": 15, - "mag": 2 + "mag": 2, + "fire_interval": 2 } \ 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 6dea1feb8..28cf6c750 100644 --- a/src/main/resources/data/target/guns/ak_47.json +++ b/src/main/resources/data/target/guns/ak_47.json @@ -9,5 +9,5 @@ "velocity": 30, "mag": 30, "projectileamount": 1, - "rpm": 600 + "fire_interval": 2 } \ 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 6e233b864..04bbf8a0f 100644 --- a/src/main/resources/data/target/guns/devotion.json +++ b/src/main/resources/data/target/guns/devotion.json @@ -11,5 +11,5 @@ "mag": 55, "firemode": 2, "projectileamount": 1, - "rpm": 400 + "fire_interval": 5 } \ 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 4003c4cb7..2276bed3f 100644 --- a/src/main/resources/data/target/guns/hk_416.json +++ b/src/main/resources/data/target/guns/hk_416.json @@ -9,5 +9,5 @@ "velocity": 45, "mag": 30, "projectileamount": 1, - "rpm": 800 + "fire_interval": 1 } \ 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 0e1db0944..04098170f 100644 --- a/src/main/resources/data/target/guns/m_4.json +++ b/src/main/resources/data/target/guns/m_4.json @@ -9,5 +9,5 @@ "velocity": 45, "mag": 30, "projectileamount": 1, - "rpm": 800 + "fire_interval": 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 61e3fcf57..3dd10cc10 100644 --- a/src/main/resources/data/target/guns/m_60.json +++ b/src/main/resources/data/target/guns/m_60.json @@ -11,5 +11,5 @@ "mag": 100, "firemode": 2, "projectileamount": 1, - "rpm": 600 + "fire_interval": 2 } \ 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 bce13de10..86729ba1e 100644 --- a/src/main/resources/data/target/guns/minigun.json +++ b/src/main/resources/data/target/guns/minigun.json @@ -6,5 +6,6 @@ "damage": 8, "headshot": 2, "velocity": 40, - "firemode": 2 + "firemode": 2, + "fire_interval": 1 } \ 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 85d410f6d..f2524c81f 100644 --- a/src/main/resources/data/target/guns/mk_14.json +++ b/src/main/resources/data/target/guns/mk_14.json @@ -10,5 +10,5 @@ "velocity": 45, "mag": 20, "projectileamount": 1, - "rpm": 600 + "fire_interval": 2 } \ 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 38a6b0aa1..4a78a244e 100644 --- a/src/main/resources/data/target/guns/rpk.json +++ b/src/main/resources/data/target/guns/rpk.json @@ -10,5 +10,5 @@ "velocity": 35, "mag": 50, "projectileamount": 1, - "rpm": 600 + "fire_interval": 2 } \ 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 cf235bdf9..3ab1aac9d 100644 --- a/src/main/resources/data/target/guns/sks.json +++ b/src/main/resources/data/target/guns/sks.json @@ -9,5 +9,5 @@ "velocity": 40, "mag": 20, "projectileamount": 1, - "rpm": 400 + "fire_interval": 3 } \ 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 8e211a6b3..c8183f2a6 100644 --- a/src/main/resources/data/target/guns/svd.json +++ b/src/main/resources/data/target/guns/svd.json @@ -9,5 +9,5 @@ "velocity": 50, "mag": 10, "projectileamount": 1, - "rpm": 200 + "fire_interval": 5 } \ 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 a9dd24f64..04ae18016 100644 --- a/src/main/resources/data/target/guns/trachelium.json +++ b/src/main/resources/data/target/guns/trachelium.json @@ -9,5 +9,5 @@ "velocity": 60, "mag": 8, "projectileamount": 1, - "rpm": 240 + "fire_interval": 5 } \ 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 09f2ac98f..7a9387361 100644 --- a/src/main/resources/data/target/guns/vector.json +++ b/src/main/resources/data/target/guns/vector.json @@ -9,5 +9,5 @@ "velocity": 22, "mag": 33, "projectileamount": 1, - "rpm": 1200 + "fire_interval": 1 } \ No newline at end of file