diff --git a/src/main/java/com/atsuishio/superbwarfare/data/gun/DefaultGunData.java b/src/main/java/com/atsuishio/superbwarfare/data/gun/DefaultGunData.java index 6d71a86f5..60bd99d21 100644 --- a/src/main/java/com/atsuishio/superbwarfare/data/gun/DefaultGunData.java +++ b/src/main/java/com/atsuishio/superbwarfare/data/gun/DefaultGunData.java @@ -73,6 +73,10 @@ public class DefaultGunData { public int prepareTime; @SerializedName("PrepareLoadTime") public int prepareLoadTime; + + // 单发装填时的上弹时间 + @SerializedName("PrepareAmmoLoadTime") + public int prepareAmmoLoadTime = 1; @SerializedName("PrepareEmptyTime") public int prepareEmptyTime; diff --git a/src/main/java/com/atsuishio/superbwarfare/data/gun/GunData.java b/src/main/java/com/atsuishio/superbwarfare/data/gun/GunData.java index af0f6e0e1..831f8a264 100644 --- a/src/main/java/com/atsuishio/superbwarfare/data/gun/GunData.java +++ b/src/main/java/com/atsuishio/superbwarfare/data/gun/GunData.java @@ -269,6 +269,11 @@ public class GunData { return defaultGunData().prepareLoadTime; } + public int prepareAmmoLoadTime() { + return defaultGunData().prepareAmmoLoadTime; + } + + public int defaultPrepareEmptyTime() { return defaultGunData().prepareEmptyTime; } diff --git a/src/main/java/com/atsuishio/superbwarfare/event/GunEventHandler.java b/src/main/java/com/atsuishio/superbwarfare/event/GunEventHandler.java index a12c8da5c..ab366f9fd 100644 --- a/src/main/java/com/atsuishio/superbwarfare/event/GunEventHandler.java +++ b/src/main/java/com/atsuishio/superbwarfare/event/GunEventHandler.java @@ -229,7 +229,7 @@ public class GunEventHandler { if (reload.singleReloadStarter.start()) { NeoForge.EVENT_BUS.post(new ReloadEvent.Pre(player, data)); - if ((data.defaultPrepareLoadTime() != 0 && data.ammo.get() == 0) || stack.is(ModItems.SECONDARY_CATACLYSM.get())) { + if (data.defaultPrepareLoadTime() != 0 && data.ammo.get() == 0) { // 此处判断空仓换弹的时候,是否在准备阶段就需要装填一发,如M870 playGunPrepareLoadReloadSounds(player); int prepareLoadTime = data.defaultPrepareLoadTime(); @@ -254,11 +254,7 @@ public class GunEventHandler { reload.setState(ReloadState.NORMAL_RELOADING); } - if (stack.getItem() == ModItems.M_870.get() && reload.prepareLoadTimer.get() == 10) { - iterativeLoad(player, data); - } - - if (stack.getItem() == ModItems.SECONDARY_CATACLYSM.get() && reload.prepareLoadTimer.get() == 3) { + if (reload.prepareLoadTimer.get() == data.prepareAmmoLoadTime()) { iterativeLoad(player, data); } diff --git a/src/main/resources/data/superbwarfare/guns/m_870.json b/src/main/resources/data/superbwarfare/guns/m_870.json index a39ca9bab..08ad79591 100644 --- a/src/main/resources/data/superbwarfare/guns/m_870.json +++ b/src/main/resources/data/superbwarfare/guns/m_870.json @@ -14,6 +14,7 @@ ], "PrepareTime": 7, "PrepareLoadTime": 36, + "PrepareAmmoLoadTime": 10, "IterativeTime": 16, "IterativeAmmoLoadTime": 3, "FinishTime": 12, diff --git a/src/main/resources/data/superbwarfare/guns/secondary_cataclysm.json b/src/main/resources/data/superbwarfare/guns/secondary_cataclysm.json index 32f5af6f7..5a6a9b23a 100644 --- a/src/main/resources/data/superbwarfare/guns/secondary_cataclysm.json +++ b/src/main/resources/data/superbwarfare/guns/secondary_cataclysm.json @@ -14,8 +14,9 @@ "Iterative" ], "PrepareLoadTime": 31, + "PrepareAmmoLoadTime": 3, "IterativeTime": 20, - "FinishTime": 19, + "FinishTime": 22, "SoundRadius": 8, "RPM": 300, "AmmoType": "superbwarfare:grenade_40mm",