From cc78351b2fd67642a066b8a9b8925903899bb0e1 Mon Sep 17 00:00:00 2001 From: 17146 <1714673995@qq.com> Date: Sat, 12 Apr 2025 22:27:27 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E7=BB=B4=E6=8C=81=E7=94=9F?= =?UTF-8?q?=E8=AE=A1=E6=95=88=E6=9E=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../event/LivingEventHandler.java | 25 +++++++++++++++++++ .../superbwarfare/perk/PerkHelper.java | 2 +- 2 files changed, 26 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/atsuishio/superbwarfare/event/LivingEventHandler.java b/src/main/java/com/atsuishio/superbwarfare/event/LivingEventHandler.java index b332fe904..c8cf65d1a 100644 --- a/src/main/java/com/atsuishio/superbwarfare/event/LivingEventHandler.java +++ b/src/main/java/com/atsuishio/superbwarfare/event/LivingEventHandler.java @@ -665,7 +665,32 @@ public class LivingEventHandler { cap.handgunAmmo -= ammoFinal; } data.ammo.set(Math.min(mag, ammo + ammoFinal)); + } else if (stack.is(ModTags.Items.USE_SHOTGUN_AMMO)) { + int ammoFinal = Math.min(cap.handgunAmmo, ammoNeed); + if (flag) { + ammoFinal = ammoNeed; + } else { + cap.shotgunAmmo -= ammoFinal; + } + data.ammo.set(Math.min(mag, ammo + ammoFinal)); + } else if (stack.is(ModTags.Items.USE_SNIPER_AMMO)) { + int ammoFinal = Math.min(cap.handgunAmmo, ammoNeed); + if (flag) { + ammoFinal = ammoNeed; + } else { + cap.sniperAmmo -= ammoFinal; + } + data.ammo.set(Math.min(mag, ammo + ammoFinal)); + } else if (stack.is(ModTags.Items.USE_HEAVY_AMMO)) { + int ammoFinal = Math.min(cap.heavyAmmo, ammoNeed); + if (flag) { + ammoFinal = ammoNeed; + } else { + cap.heavyAmmo -= ammoFinal; + } + data.ammo.set(Math.min(mag, ammo + ammoFinal)); } + data.save(); player.setData(ModAttachments.PLAYER_VARIABLE, cap); cap.sync(player); diff --git a/src/main/java/com/atsuishio/superbwarfare/perk/PerkHelper.java b/src/main/java/com/atsuishio/superbwarfare/perk/PerkHelper.java index 5a0b6334b..decf5fb03 100644 --- a/src/main/java/com/atsuishio/superbwarfare/perk/PerkHelper.java +++ b/src/main/java/com/atsuishio/superbwarfare/perk/PerkHelper.java @@ -48,10 +48,10 @@ public class PerkHelper { case AMMO -> !perk.descriptionId.equals("butterfly_bullet") && perk != ModPerks.MICRO_MISSILE.get() && perk != ModPerks.LONGER_WIRE.get(); case FUNCTIONAL -> perk == ModPerks.HEAL_CLIP.get() + || perk == ModPerks.SUBSISTENCE.get() || perk == ModPerks.FOURTH_TIMES_CHARM.get() || perk == ModPerks.POWERFUL_ATTRACTION.get() || perk == ModPerks.INTELLIGENT_CHIP.get(); - case DAMAGE -> perk == ModPerks.KILL_CLIP.get() || perk == ModPerks.MONSTER_HUNTER.get() || perk == ModPerks.VORPAL_WEAPON.get();