diff --git a/src/main/java/net/mcreator/superbwarfare/client/screens/AmmoBarOverlay.java b/src/main/java/net/mcreator/superbwarfare/client/screens/AmmoBarOverlay.java index 4729b09cd..e03ba78a5 100644 --- a/src/main/java/net/mcreator/superbwarfare/client/screens/AmmoBarOverlay.java +++ b/src/main/java/net/mcreator/superbwarfare/client/screens/AmmoBarOverlay.java @@ -178,16 +178,16 @@ public class AmmoBarOverlay { return "" + stack.getOrCreateTag().getInt("max_ammo"); } - if (stack.is(ModTags.Items.RIFLE)) { + if (stack.is(ModTags.Items.USE_RIFLE_AMMO)) { return "" + (player.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new ModVariables.PlayerVariables())).rifleAmmo; } - if (stack.is(ModTags.Items.HANDGUN) || stack.is(ModTags.Items.SMG)) { + if (stack.is(ModTags.Items.USE_HANDGUN_AMMO)) { return "" + (player.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new ModVariables.PlayerVariables())).handgunAmmo; } - if (stack.is(ModTags.Items.SHOTGUN)) { + if (stack.is(ModTags.Items.USE_SHOTGUN_AMMO)) { return "" + (player.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new ModVariables.PlayerVariables())).shotgunAmmo; } - if (stack.is(ModTags.Items.SNIPER_RIFLE)) { + if (stack.is(ModTags.Items.USE_SNIPER_AMMO)) { return "" + (player.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new ModVariables.PlayerVariables())).sniperAmmo; } return ""; @@ -214,16 +214,16 @@ public class AmmoBarOverlay { return "Rifle Ammo"; } - if (stack.is(ModTags.Items.RIFLE)) { + if (stack.is(ModTags.Items.USE_RIFLE_AMMO)) { return " Rifle Ammo"; } - if (stack.is(ModTags.Items.HANDGUN) || stack.is(ModTags.Items.SMG)) { + if (stack.is(ModTags.Items.USE_HANDGUN_AMMO)) { return "Handgun Ammo"; } - if (stack.is(ModTags.Items.SHOTGUN)) { + if (stack.is(ModTags.Items.USE_SHOTGUN_AMMO)) { return "Shotgun Ammo"; } - if (stack.is(ModTags.Items.SNIPER_RIFLE)) { + if (stack.is(ModTags.Items.USE_SNIPER_AMMO)) { return "Sniper Ammo"; } return ""; diff --git a/src/main/java/net/mcreator/superbwarfare/enchantment/FourthTimesCharm.java b/src/main/java/net/mcreator/superbwarfare/enchantment/FourthTimesCharm.java index 09ef39f9b..afe77affd 100644 --- a/src/main/java/net/mcreator/superbwarfare/enchantment/FourthTimesCharm.java +++ b/src/main/java/net/mcreator/superbwarfare/enchantment/FourthTimesCharm.java @@ -35,6 +35,6 @@ public class FourthTimesCharm extends Enchantment { @Override public boolean canApplyAtEnchantingTable(ItemStack itemstack) { - return itemstack.is(ModTags.Items.CAN_SHOOT_BULLET) && !itemstack.is(ModItems.MINIGUN.get()) && !itemstack.is(ModTags.Items.SHOTGUN); + return itemstack.is(ModTags.Items.CAN_SHOOT_BULLET) && !itemstack.is(ModItems.MINIGUN.get()) && !itemstack.is(ModTags.Items.USE_SHOTGUN_AMMO); } } diff --git a/src/main/java/net/mcreator/superbwarfare/event/GunEventHandler.java b/src/main/java/net/mcreator/superbwarfare/event/GunEventHandler.java index 81ab7cc5e..7266d3c97 100644 --- a/src/main/java/net/mcreator/superbwarfare/event/GunEventHandler.java +++ b/src/main/java/net/mcreator/superbwarfare/event/GunEventHandler.java @@ -492,17 +492,17 @@ public class GunEventHandler { public static void playGunNormalReload(Player player) { ItemStack stack = player.getMainHandItem(); - if (stack.is(ModTags.Items.SHOTGUN)) { + if (stack.is(ModTags.Items.USE_SHOTGUN_AMMO)) { if (stack.getItem() == ModItems.ABEKIRI.get()) { GunsTool.reload(player, GunInfo.Type.SHOTGUN); } else { GunsTool.reload(player, GunInfo.Type.SHOTGUN, true); } - } else if (stack.is(ModTags.Items.SNIPER_RIFLE)) { + } else if (stack.is(ModTags.Items.USE_SNIPER_AMMO)) { GunsTool.reload(player, GunInfo.Type.SNIPER, true); - } else if (stack.is(ModTags.Items.HANDGUN) || stack.is(ModTags.Items.SMG)) { + } else if (stack.is(ModTags.Items.USE_HANDGUN_AMMO)) { GunsTool.reload(player, GunInfo.Type.HANDGUN, true); - } else if (stack.is(ModTags.Items.RIFLE)) { + } else if (stack.is(ModTags.Items.USE_RIFLE_AMMO)) { if (stack.getItem() == ModItems.M_60.get()) { GunsTool.reload(player, GunInfo.Type.RIFLE); } else { @@ -518,13 +518,13 @@ public class GunEventHandler { public static void playGunEmptyReload(Player player) { ItemStack stack = player.getMainHandItem(); - if (stack.is(ModTags.Items.SHOTGUN)) { + if (stack.is(ModTags.Items.USE_SHOTGUN_AMMO)) { GunsTool.reload(player, GunInfo.Type.SHOTGUN); - } else if (stack.is(ModTags.Items.SNIPER_RIFLE)) { + } else if (stack.is(ModTags.Items.USE_SNIPER_AMMO)) { GunsTool.reload(player, GunInfo.Type.SNIPER); - } else if (stack.is(ModTags.Items.HANDGUN) || stack.is(ModTags.Items.SMG)) { + } else if (stack.is(ModTags.Items.USE_HANDGUN_AMMO)) { GunsTool.reload(player, GunInfo.Type.HANDGUN); - } else if (stack.is(ModTags.Items.RIFLE)) { + } else if (stack.is(ModTags.Items.USE_RIFLE_AMMO)) { GunsTool.reload(player, GunInfo.Type.RIFLE); } else if (stack.getItem() == ModItems.TASER.get()) { stack.getOrCreateTag().putInt("ammo", 1); @@ -632,13 +632,13 @@ public class GunEventHandler { // 检查备弹 var capability = player.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new ModVariables.PlayerVariables()); - if (stack.is(ModTags.Items.SHOTGUN) && capability.shotgunAmmo == 0) { + if (stack.is(ModTags.Items.USE_SHOTGUN_AMMO) && capability.shotgunAmmo == 0) { tag.putBoolean("force_stage3_start", true); - } else if (stack.is(ModTags.Items.SNIPER_RIFLE) && capability.sniperAmmo == 0) { + } else if (stack.is(ModTags.Items.USE_SNIPER_AMMO) && capability.sniperAmmo == 0) { tag.putBoolean("force_stage3_start", true); - } else if ((stack.is(ModTags.Items.HANDGUN) || stack.is(ModTags.Items.SMG)) && capability.handgunAmmo == 0) { + } else if ((stack.is(ModTags.Items.USE_HANDGUN_AMMO) || stack.is(ModTags.Items.SMG)) && capability.handgunAmmo == 0) { tag.putBoolean("force_stage3_start", true); - } else if (stack.is(ModTags.Items.RIFLE) && capability.rifleAmmo == 0) { + } else if (stack.is(ModTags.Items.USE_RIFLE_AMMO) && capability.rifleAmmo == 0) { tag.putBoolean("force_stage3_start", true); } else { tag.putInt("reload_stage", 2); @@ -691,13 +691,13 @@ public class GunEventHandler { // 备弹耗尽结束 var capability = player.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new ModVariables.PlayerVariables()); - if (stack.is(ModTags.Items.SHOTGUN) && capability.shotgunAmmo == 0) { + if (stack.is(ModTags.Items.USE_SHOTGUN_AMMO) && capability.shotgunAmmo == 0) { tag.putInt("reload_stage", 3); - } else if (stack.is(ModTags.Items.SNIPER_RIFLE) && capability.sniperAmmo == 0) { + } else if (stack.is(ModTags.Items.USE_SNIPER_AMMO) && capability.sniperAmmo == 0) { tag.putInt("reload_stage", 3); - } else if ((stack.is(ModTags.Items.HANDGUN) || stack.is(ModTags.Items.SMG)) && capability.handgunAmmo == 0) { + } else if ((stack.is(ModTags.Items.USE_HANDGUN_AMMO) || stack.is(ModTags.Items.SMG)) && capability.handgunAmmo == 0) { tag.putInt("reload_stage", 3); - } else if (stack.is(ModTags.Items.RIFLE) && capability.rifleAmmo == 0) { + } else if (stack.is(ModTags.Items.USE_RIFLE_AMMO) && capability.rifleAmmo == 0) { tag.putInt("reload_stage", 3); } @@ -732,24 +732,24 @@ public class GunEventHandler { tag.putInt("ammo", tag.getInt("ammo") + 1); - if (stack.is(ModTags.Items.SHOTGUN)) { + if (stack.is(ModTags.Items.USE_SHOTGUN_AMMO)) { player.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).ifPresent(capability -> { - capability.shotgunAmmo = capability.shotgunAmmo - 1; + capability.shotgunAmmo -= 1; capability.syncPlayerVariables(player); }); - } else if (stack.is(ModTags.Items.SNIPER_RIFLE)) { + } else if (stack.is(ModTags.Items.USE_SNIPER_AMMO)) { player.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).ifPresent(capability -> { - capability.sniperAmmo = capability.sniperAmmo - 1; + capability.sniperAmmo -= 1; capability.syncPlayerVariables(player); }); - } else if ((stack.is(ModTags.Items.HANDGUN) || stack.is(ModTags.Items.SMG))) { + } else if (stack.is(ModTags.Items.USE_HANDGUN_AMMO)) { player.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).ifPresent(capability -> { - capability.handgunAmmo = capability.handgunAmmo - 1; + capability.handgunAmmo -= 1; capability.syncPlayerVariables(player); }); - } else if (stack.is(ModTags.Items.RIFLE)) { + } else if (stack.is(ModTags.Items.USE_RIFLE_AMMO)) { player.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).ifPresent(capability -> { - capability.rifleAmmo = capability.rifleAmmo - 1; + capability.rifleAmmo -= 1; capability.syncPlayerVariables(player); }); } diff --git a/src/main/java/net/mcreator/superbwarfare/event/LivingEventHandler.java b/src/main/java/net/mcreator/superbwarfare/event/LivingEventHandler.java index 4c574f95a..61602f655 100644 --- a/src/main/java/net/mcreator/superbwarfare/event/LivingEventHandler.java +++ b/src/main/java/net/mcreator/superbwarfare/event/LivingEventHandler.java @@ -75,15 +75,15 @@ public class LivingEventHandler { if (DamageTypeTool.isGunDamage(damageSource)) { double distance = entity.position().distanceTo(sourceentity.position()); - if (stack.is(ModTags.Items.SHOTGUN) || stack.getItem() == ModItems.BOCEK.get()) { + if (stack.is(ModTags.Items.USE_SHOTGUN_AMMO) || stack.getItem() == ModItems.BOCEK.get()) { damage = reduceDamageByDistance(amount, distance, 0.03, 25); - } else if (stack.is(ModTags.Items.SNIPER_RIFLE)) { + } else if (stack.is(ModTags.Items.USE_SNIPER_AMMO)) { damage = reduceDamageByDistance(amount, distance, 0.001, 200); - } else if (stack.is(ModTags.Items.HANDGUN)) { + } else if (stack.is(ModTags.Items.USE_HANDGUN_AMMO)) { damage = reduceDamageByDistance(amount, distance, 0.03, 50); } else if (stack.is(ModTags.Items.SMG)) { damage = reduceDamageByDistance(amount, distance, 0.03, 50); - } else if (stack.is(ModTags.Items.RIFLE)) { + } else if (stack.is(ModTags.Items.USE_RIFLE_AMMO)) { damage = reduceDamageByDistance(amount, distance, 0.0025, 150); } event.setAmount((float) damage); @@ -405,20 +405,19 @@ public class LivingEventHandler { return; } - float rate = level * 0.1f + (stack.is(ModTags.Items.SMG) || stack.is(ModTags.Items.RIFLE) ? 0.17f : 0f); + float rate = level * 0.1f + (stack.is(ModTags.Items.SMG) || stack.is(ModTags.Items.RIFLE) ? 0.07f : 0f); int mag = stack.getOrCreateTag().getInt("mag"); int ammoReload = (int) Math.min(mag, mag * rate); - player.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null) - .ifPresent(capability -> { - if (stack.is(ModTags.Items.RIFLE)) { + player.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).ifPresent(capability -> { + if (stack.is(ModTags.Items.USE_RIFLE_AMMO)) { capability.rifleAmmo -= Math.min(capability.rifleAmmo, ammoReload); - } else if (stack.is(ModTags.Items.SMG) || stack.is(ModTags.Items.HANDGUN)) { + } else if (stack.is(ModTags.Items.USE_HANDGUN_AMMO)) { capability.handgunAmmo -= Math.min(capability.handgunAmmo, ammoReload); } capability.syncPlayerVariables(player); - stack.getOrCreateTag().putInt("ammo", ammoReload); + stack.getOrCreateTag().putInt("ammo", mag + ammoReload); } ); } diff --git a/src/main/java/net/mcreator/superbwarfare/event/PlayerEventHandler.java b/src/main/java/net/mcreator/superbwarfare/event/PlayerEventHandler.java index 27b9b5335..633798fde 100644 --- a/src/main/java/net/mcreator/superbwarfare/event/PlayerEventHandler.java +++ b/src/main/java/net/mcreator/superbwarfare/event/PlayerEventHandler.java @@ -257,19 +257,19 @@ public class PlayerEventHandler { public static void handleAmmoCount(Player player) { ItemStack stack = player.getMainHandItem(); - if (stack.is(ModTags.Items.RIFLE)) { + if (stack.is(ModTags.Items.USE_RIFLE_AMMO)) { stack.getOrCreateTag().putInt("max_ammo", ((player.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new ModVariables.PlayerVariables())).rifleAmmo)); } - if (stack.is(ModTags.Items.HANDGUN) || stack.is(ModTags.Items.SMG)) { + if (stack.is(ModTags.Items.USE_HANDGUN_AMMO) || stack.is(ModTags.Items.SMG)) { stack.getOrCreateTag().putInt("max_ammo", ((player.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new ModVariables.PlayerVariables())).handgunAmmo)); } - if (stack.is(ModTags.Items.SHOTGUN)) { + if (stack.is(ModTags.Items.USE_SHOTGUN_AMMO)) { stack.getOrCreateTag().putInt("max_ammo", ((player.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new ModVariables.PlayerVariables())).shotgunAmmo)); } - if (stack.is(ModTags.Items.SNIPER_RIFLE)) { + if (stack.is(ModTags.Items.USE_SNIPER_AMMO)) { stack.getOrCreateTag().putInt("max_ammo", ((player.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new ModVariables.PlayerVariables())).sniperAmmo)); } diff --git a/src/main/java/net/mcreator/superbwarfare/init/ModTags.java b/src/main/java/net/mcreator/superbwarfare/init/ModTags.java index b935c6d3e..0f080dd3c 100644 --- a/src/main/java/net/mcreator/superbwarfare/init/ModTags.java +++ b/src/main/java/net/mcreator/superbwarfare/init/ModTags.java @@ -11,11 +11,15 @@ public class ModTags { public static class Items { public static final TagKey GUN = tag("gun"); + public static final TagKey USE_HANDGUN_AMMO = tag("use_handgun_ammo"); + public static final TagKey USE_RIFLE_AMMO = tag("use_rifle_ammo"); + public static final TagKey USE_SHOTGUN_AMMO = tag("use_shotgun_ammo"); + public static final TagKey USE_SNIPER_AMMO = tag("use_sniper_ammo"); + + public static final TagKey SMG = tag("smg"); public static final TagKey HANDGUN = tag("handgun"); public static final TagKey RIFLE = tag("rifle"); - 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_GUN = tag("normal_gun"); public static final TagKey LEGENDARY_GUN = tag("legendary_gun"); diff --git a/src/main/java/net/mcreator/superbwarfare/network/ModVariables.java b/src/main/java/net/mcreator/superbwarfare/network/ModVariables.java index 1f6ae846d..583149c4a 100644 --- a/src/main/java/net/mcreator/superbwarfare/network/ModVariables.java +++ b/src/main/java/net/mcreator/superbwarfare/network/ModVariables.java @@ -275,8 +275,8 @@ public class ModVariables { public double cannonFiring = 0; public int cannonRecoil = 0; public double targetAngle = 0; - public int rifleAmmo = 0; public boolean refresh = false; + public int rifleAmmo = 0; public int handgunAmmo = 0; public int shotgunAmmo = 0; public int sniperAmmo = 0; @@ -287,7 +287,6 @@ public class ModVariables { public int tacticalSprintTime = 600; public boolean tacticalSprintExhaustion = false; - public void syncPlayerVariables(Entity entity) { if (entity instanceof ServerPlayer) ModUtils.PACKET_HANDLER.send(PacketDistributor.DIMENSION.with(entity.level()::dimension), new PlayerVariablesSyncMessage(this, entity.getId())); diff --git a/src/main/java/net/mcreator/superbwarfare/network/message/ReloadMessage.java b/src/main/java/net/mcreator/superbwarfare/network/message/ReloadMessage.java index e2d26c302..d69f01be9 100644 --- a/src/main/java/net/mcreator/superbwarfare/network/message/ReloadMessage.java +++ b/src/main/java/net/mcreator/superbwarfare/network/message/ReloadMessage.java @@ -60,13 +60,13 @@ public class ReloadMessage { boolean can_single_reload = tag.getDouble("iterative_time") != 0; //检查备弹 - if (stack.is(ModTags.Items.SHOTGUN) && capability.shotgunAmmo == 0) { + if (stack.is(ModTags.Items.USE_SHOTGUN_AMMO) && capability.shotgunAmmo == 0) { return; - } else if (stack.is(ModTags.Items.SNIPER_RIFLE) && capability.sniperAmmo == 0) { + } else if (stack.is(ModTags.Items.USE_SNIPER_AMMO) && capability.sniperAmmo == 0) { return; - } else if ((stack.is(ModTags.Items.HANDGUN) || stack.is(ModTags.Items.SMG)) && capability.handgunAmmo == 0) { + } else if ((stack.is(ModTags.Items.USE_HANDGUN_AMMO) || stack.is(ModTags.Items.SMG)) && capability.handgunAmmo == 0) { return; - } else if (stack.is(ModTags.Items.RIFLE) && capability.rifleAmmo == 0) { + } else if (stack.is(ModTags.Items.USE_RIFLE_AMMO) && capability.rifleAmmo == 0) { return; } else if (stack.getItem() == ModItems.TASER.get() && tag.getInt("max_ammo") == 0) { return; diff --git a/src/main/resources/data/superbwarfare/tags/items/rifle.json b/src/main/resources/data/superbwarfare/tags/items/rifle.json index 76a6de289..33f698fde 100644 --- a/src/main/resources/data/superbwarfare/tags/items/rifle.json +++ b/src/main/resources/data/superbwarfare/tags/items/rifle.json @@ -1,14 +1,10 @@ { "replace": false, "values": [ - "superbwarfare:devotion", "superbwarfare:m_4", "superbwarfare:hk_416", - "superbwarfare:rpk", "superbwarfare:sks", - "superbwarfare:minigun", "superbwarfare:mk_14", - "superbwarfare:m_60", "superbwarfare:marlin", "superbwarfare:ak_47", "superbwarfare:qbz_95" diff --git a/src/main/resources/data/superbwarfare/tags/items/use_handgun_ammo.json b/src/main/resources/data/superbwarfare/tags/items/use_handgun_ammo.json new file mode 100644 index 000000000..c2966d660 --- /dev/null +++ b/src/main/resources/data/superbwarfare/tags/items/use_handgun_ammo.json @@ -0,0 +1,10 @@ +{ + "replace": false, + "values": [ + "superbwarfare:trachelium", + "superbwarfare:glock_17", + "superbwarfare:glock_18", + "superbwarfare:m_1911", + "superbwarfare:vector" + ] +} \ No newline at end of file diff --git a/src/main/resources/data/superbwarfare/tags/items/use_rifle_ammo.json b/src/main/resources/data/superbwarfare/tags/items/use_rifle_ammo.json new file mode 100644 index 000000000..76a6de289 --- /dev/null +++ b/src/main/resources/data/superbwarfare/tags/items/use_rifle_ammo.json @@ -0,0 +1,16 @@ +{ + "replace": false, + "values": [ + "superbwarfare:devotion", + "superbwarfare:m_4", + "superbwarfare:hk_416", + "superbwarfare:rpk", + "superbwarfare:sks", + "superbwarfare:minigun", + "superbwarfare:mk_14", + "superbwarfare:m_60", + "superbwarfare:marlin", + "superbwarfare:ak_47", + "superbwarfare:qbz_95" + ] +} \ No newline at end of file diff --git a/src/main/resources/data/superbwarfare/tags/items/shotgun.json b/src/main/resources/data/superbwarfare/tags/items/use_shotgun_ammo.json similarity index 100% rename from src/main/resources/data/superbwarfare/tags/items/shotgun.json rename to src/main/resources/data/superbwarfare/tags/items/use_shotgun_ammo.json diff --git a/src/main/resources/data/superbwarfare/tags/items/use_sniper_ammo.json b/src/main/resources/data/superbwarfare/tags/items/use_sniper_ammo.json new file mode 100644 index 000000000..a0bac5986 --- /dev/null +++ b/src/main/resources/data/superbwarfare/tags/items/use_sniper_ammo.json @@ -0,0 +1,10 @@ +{ + "replace": false, + "values": [ + "superbwarfare:hunting_rifle", + "superbwarfare:ntw_20", + "superbwarfare:sentinel", + "superbwarfare:svd", + "superbwarfare:m_98b" + ] +} \ No newline at end of file