修改射速机制

This commit is contained in:
Atsuihsio 2024-05-10 14:26:19 +08:00
parent 6cd3473dab
commit eaad11c7f8
15 changed files with 35 additions and 16 deletions

View file

@ -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++) {

View file

@ -9,5 +9,5 @@
"velocity": 16,
"mag": 25,
"projectileamount": 8,
"rpm": 360
"fire_interval": 4
}

View file

@ -7,5 +7,6 @@
"damage": 2.5,
"headshot": 1.5,
"velocity": 15,
"mag": 2
"mag": 2,
"fire_interval": 2
}

View file

@ -9,5 +9,5 @@
"velocity": 30,
"mag": 30,
"projectileamount": 1,
"rpm": 600
"fire_interval": 2
}

View file

@ -11,5 +11,5 @@
"mag": 55,
"firemode": 2,
"projectileamount": 1,
"rpm": 400
"fire_interval": 5
}

View file

@ -9,5 +9,5 @@
"velocity": 45,
"mag": 30,
"projectileamount": 1,
"rpm": 800
"fire_interval": 1
}

View file

@ -9,5 +9,5 @@
"velocity": 45,
"mag": 30,
"projectileamount": 1,
"rpm": 800
"fire_interval": 1
}

View file

@ -11,5 +11,5 @@
"mag": 100,
"firemode": 2,
"projectileamount": 1,
"rpm": 600
"fire_interval": 2
}

View file

@ -6,5 +6,6 @@
"damage": 8,
"headshot": 2,
"velocity": 40,
"firemode": 2
"firemode": 2,
"fire_interval": 1
}

View file

@ -10,5 +10,5 @@
"velocity": 45,
"mag": 20,
"projectileamount": 1,
"rpm": 600
"fire_interval": 2
}

View file

@ -10,5 +10,5 @@
"velocity": 35,
"mag": 50,
"projectileamount": 1,
"rpm": 600
"fire_interval": 2
}

View file

@ -9,5 +9,5 @@
"velocity": 40,
"mag": 20,
"projectileamount": 1,
"rpm": 400
"fire_interval": 3
}

View file

@ -9,5 +9,5 @@
"velocity": 50,
"mag": 10,
"projectileamount": 1,
"rpm": 200
"fire_interval": 5
}

View file

@ -9,5 +9,5 @@
"velocity": 60,
"mag": 8,
"projectileamount": 1,
"rpm": 240
"fire_interval": 5
}

View file

@ -9,5 +9,5 @@
"velocity": 22,
"mag": 33,
"projectileamount": 1,
"rpm": 1200
"fire_interval": 1
}