添加单发上弹,准备阶段需要上弹时的上弹时间节点

This commit is contained in:
Atsuishio 2025-05-28 23:53:51 +08:00 committed by Light_Quanta
parent f4aa6947ed
commit 0edc1749ae
No known key found for this signature in database
GPG key ID: 11A39A1B8C890959
5 changed files with 14 additions and 7 deletions

View file

@ -73,6 +73,10 @@ public class DefaultGunData {
public int prepareTime; public int prepareTime;
@SerializedName("PrepareLoadTime") @SerializedName("PrepareLoadTime")
public int prepareLoadTime; public int prepareLoadTime;
// 单发装填时的上弹时间
@SerializedName("PrepareAmmoLoadTime")
public int prepareAmmoLoadTime = 1;
@SerializedName("PrepareEmptyTime") @SerializedName("PrepareEmptyTime")
public int prepareEmptyTime; public int prepareEmptyTime;

View file

@ -269,6 +269,11 @@ public class GunData {
return defaultGunData().prepareLoadTime; return defaultGunData().prepareLoadTime;
} }
public int prepareAmmoLoadTime() {
return defaultGunData().prepareAmmoLoadTime;
}
public int defaultPrepareEmptyTime() { public int defaultPrepareEmptyTime() {
return defaultGunData().prepareEmptyTime; return defaultGunData().prepareEmptyTime;
} }

View file

@ -229,7 +229,7 @@ public class GunEventHandler {
if (reload.singleReloadStarter.start()) { if (reload.singleReloadStarter.start()) {
NeoForge.EVENT_BUS.post(new ReloadEvent.Pre(player, data)); 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 // 此处判断空仓换弹的时候是否在准备阶段就需要装填一发如M870
playGunPrepareLoadReloadSounds(player); playGunPrepareLoadReloadSounds(player);
int prepareLoadTime = data.defaultPrepareLoadTime(); int prepareLoadTime = data.defaultPrepareLoadTime();
@ -254,11 +254,7 @@ public class GunEventHandler {
reload.setState(ReloadState.NORMAL_RELOADING); reload.setState(ReloadState.NORMAL_RELOADING);
} }
if (stack.getItem() == ModItems.M_870.get() && reload.prepareLoadTimer.get() == 10) { if (reload.prepareLoadTimer.get() == data.prepareAmmoLoadTime()) {
iterativeLoad(player, data);
}
if (stack.getItem() == ModItems.SECONDARY_CATACLYSM.get() && reload.prepareLoadTimer.get() == 3) {
iterativeLoad(player, data); iterativeLoad(player, data);
} }

View file

@ -14,6 +14,7 @@
], ],
"PrepareTime": 7, "PrepareTime": 7,
"PrepareLoadTime": 36, "PrepareLoadTime": 36,
"PrepareAmmoLoadTime": 10,
"IterativeTime": 16, "IterativeTime": 16,
"IterativeAmmoLoadTime": 3, "IterativeAmmoLoadTime": 3,
"FinishTime": 12, "FinishTime": 12,

View file

@ -14,8 +14,9 @@
"Iterative" "Iterative"
], ],
"PrepareLoadTime": 31, "PrepareLoadTime": 31,
"PrepareAmmoLoadTime": 3,
"IterativeTime": 20, "IterativeTime": 20,
"FinishTime": 19, "FinishTime": 22,
"SoundRadius": 8, "SoundRadius": 8,
"RPM": 300, "RPM": 300,
"AmmoType": "superbwarfare:grenade_40mm", "AmmoType": "superbwarfare:grenade_40mm",