修复维持生计对创造弹药不起作用的效果

This commit is contained in:
17146 2025-03-09 03:17:43 +08:00
parent 3fb8b3740a
commit 412522dbc0

View file

@ -643,13 +643,23 @@ public class LivingEventHandler {
int ammoReload = (int) Math.min(mag, mag * rate); int ammoReload = (int) Math.min(mag, mag * rate);
int ammoNeed = Math.min(mag - ammo, ammoReload); int ammoNeed = Math.min(mag - ammo, ammoReload);
boolean flag = player.getInventory().hasAnyMatching(s -> s.is(ModItems.CREATIVE_AMMO_BOX.get()));
if (stack.is(ModTags.Items.USE_RIFLE_AMMO)) { if (stack.is(ModTags.Items.USE_RIFLE_AMMO)) {
int ammoFinal = Math.min(capability.rifleAmmo, ammoNeed); int ammoFinal = Math.min(capability.rifleAmmo, ammoNeed);
if (flag) {
ammoFinal = ammoNeed;
} else {
capability.rifleAmmo -= ammoFinal; capability.rifleAmmo -= ammoFinal;
}
GunsTool.setGunIntTag(stack, "Ammo", Math.min(mag, ammo + ammoFinal)); GunsTool.setGunIntTag(stack, "Ammo", Math.min(mag, ammo + ammoFinal));
} else if (stack.is(ModTags.Items.USE_HANDGUN_AMMO)) { } else if (stack.is(ModTags.Items.USE_HANDGUN_AMMO)) {
int ammoFinal = Math.min(capability.handgunAmmo, ammoNeed); int ammoFinal = Math.min(capability.handgunAmmo, ammoNeed);
if (flag) {
ammoFinal = ammoNeed;
} else {
capability.handgunAmmo -= ammoFinal; capability.handgunAmmo -= ammoFinal;
}
GunsTool.setGunIntTag(stack, "Ammo", Math.min(mag, ammo + ammoFinal)); GunsTool.setGunIntTag(stack, "Ammo", Math.min(mag, ammo + ammoFinal));
} }
capability.syncPlayerVariables(player); capability.syncPlayerVariables(player);