From dc84d8d3b4ef15d6c6c24d07255915e72dfb0f45 Mon Sep 17 00:00:00 2001 From: 17146 <1714673995@qq.com> Date: Tue, 11 Mar 2025 03:28:01 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B0=83=E6=95=B4perk=E4=BD=BF=E7=94=A8?= =?UTF-8?q?=E9=99=90=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../item/gun/launcher/M79Item.java | 2 +- .../item/gun/launcher/SecondaryCataclysm.java | 2 +- .../item/gun/machinegun/MinigunItem.java | 2 +- .../item/gun/smg/VectorItem.java | 2 +- .../item/gun/sniper/HuntingRifleItem.java | 1 - .../item/gun/special/BocekItem.java | 2 +- .../superbwarfare/perk/PerkHelper.java | 43 +++++++------------ 7 files changed, 21 insertions(+), 33 deletions(-) diff --git a/src/main/java/com/atsuishio/superbwarfare/item/gun/launcher/M79Item.java b/src/main/java/com/atsuishio/superbwarfare/item/gun/launcher/M79Item.java index b2600f524..b41408a6a 100644 --- a/src/main/java/com/atsuishio/superbwarfare/item/gun/launcher/M79Item.java +++ b/src/main/java/com/atsuishio/superbwarfare/item/gun/launcher/M79Item.java @@ -175,7 +175,7 @@ public class M79Item extends GunItem implements GeoItem, SpecialFireWeapon { @Override public boolean canApplyPerk(Perk perk) { - return PerkHelper.LAUNCHER_PERKS.test(perk); + return PerkHelper.LAUNCHER_PERKS.test(perk) || perk == ModPerks.MICRO_MISSILE.get(); } @Override diff --git a/src/main/java/com/atsuishio/superbwarfare/item/gun/launcher/SecondaryCataclysm.java b/src/main/java/com/atsuishio/superbwarfare/item/gun/launcher/SecondaryCataclysm.java index e42076052..5d8af9bab 100644 --- a/src/main/java/com/atsuishio/superbwarfare/item/gun/launcher/SecondaryCataclysm.java +++ b/src/main/java/com/atsuishio/superbwarfare/item/gun/launcher/SecondaryCataclysm.java @@ -275,7 +275,7 @@ public class SecondaryCataclysm extends GunItem implements GeoItem, SpecialFireW @Override public boolean canApplyPerk(Perk perk) { - return PerkHelper.LAUNCHER_PERKS.test(perk); + return PerkHelper.LAUNCHER_PERKS.test(perk) || perk == ModPerks.MICRO_MISSILE.get(); } @Override diff --git a/src/main/java/com/atsuishio/superbwarfare/item/gun/machinegun/MinigunItem.java b/src/main/java/com/atsuishio/superbwarfare/item/gun/machinegun/MinigunItem.java index 620fa721a..7f923f31e 100644 --- a/src/main/java/com/atsuishio/superbwarfare/item/gun/machinegun/MinigunItem.java +++ b/src/main/java/com/atsuishio/superbwarfare/item/gun/machinegun/MinigunItem.java @@ -203,7 +203,7 @@ public class MinigunItem extends GunItem implements GeoItem { @Override public boolean canApplyPerk(Perk perk) { return switch (perk.type) { - case AMMO -> true; + case AMMO -> perk != ModPerks.MICRO_MISSILE.get() && perk != ModPerks.LONGER_WIRE.get(); case FUNCTIONAL -> perk == ModPerks.FIELD_DOCTOR.get() || perk == ModPerks.INTELLIGENT_CHIP.get(); case DAMAGE -> perk == ModPerks.MONSTER_HUNTER.get() || perk == ModPerks.KILLING_TALLY.get(); }; diff --git a/src/main/java/com/atsuishio/superbwarfare/item/gun/smg/VectorItem.java b/src/main/java/com/atsuishio/superbwarfare/item/gun/smg/VectorItem.java index 64f16279d..51daaa035 100644 --- a/src/main/java/com/atsuishio/superbwarfare/item/gun/smg/VectorItem.java +++ b/src/main/java/com/atsuishio/superbwarfare/item/gun/smg/VectorItem.java @@ -173,7 +173,7 @@ public class VectorItem extends GunItem implements GeoItem { @Override public ResourceLocation getGunIcon() { - return new ResourceLocation(ModUtils.MODID, "textures/gun_icon/vector_icon.png"); + return ModUtils.loc("textures/gun_icon/vector_icon.png"); } @Override diff --git a/src/main/java/com/atsuishio/superbwarfare/item/gun/sniper/HuntingRifleItem.java b/src/main/java/com/atsuishio/superbwarfare/item/gun/sniper/HuntingRifleItem.java index af0037b9c..3bf0c91e6 100644 --- a/src/main/java/com/atsuishio/superbwarfare/item/gun/sniper/HuntingRifleItem.java +++ b/src/main/java/com/atsuishio/superbwarfare/item/gun/sniper/HuntingRifleItem.java @@ -102,7 +102,6 @@ public class HuntingRifleItem extends GunItem implements GeoItem { @Override public AnimatableInstanceCache getAnimatableInstanceCache() { return this.cache; - } public static ItemStack getGunInstance() { diff --git a/src/main/java/com/atsuishio/superbwarfare/item/gun/special/BocekItem.java b/src/main/java/com/atsuishio/superbwarfare/item/gun/special/BocekItem.java index c19a05269..1b8afc581 100644 --- a/src/main/java/com/atsuishio/superbwarfare/item/gun/special/BocekItem.java +++ b/src/main/java/com/atsuishio/superbwarfare/item/gun/special/BocekItem.java @@ -165,7 +165,7 @@ public class BocekItem extends GunItem implements GeoItem, SpecialFireWeapon { @Override public boolean canApplyPerk(Perk perk) { return switch (perk.type) { - case AMMO -> !perk.descriptionId.equals("butterfly_bullet"); + case AMMO -> !perk.descriptionId.equals("butterfly_bullet") && perk != ModPerks.MICRO_MISSILE.get(); case FUNCTIONAL -> perk == ModPerks.FIELD_DOCTOR.get() || perk == ModPerks.INTELLIGENT_CHIP.get(); case DAMAGE -> perk == ModPerks.MONSTER_HUNTER.get() || perk == ModPerks.KILLING_TALLY.get(); }; diff --git a/src/main/java/com/atsuishio/superbwarfare/perk/PerkHelper.java b/src/main/java/com/atsuishio/superbwarfare/perk/PerkHelper.java index d5fbf9e62..51b81de8a 100644 --- a/src/main/java/com/atsuishio/superbwarfare/perk/PerkHelper.java +++ b/src/main/java/com/atsuishio/superbwarfare/perk/PerkHelper.java @@ -181,7 +181,8 @@ public class PerkHelper { } public static final Predicate SHOTGUN_PERKS = perk -> switch (perk.type) { - case AMMO -> !perk.descriptionId.equals("butterfly_bullet"); + case AMMO -> !perk.descriptionId.equals("butterfly_bullet") && perk != ModPerks.MICRO_MISSILE.get() + && perk != ModPerks.LONGER_WIRE.get(); case FUNCTIONAL -> perk == ModPerks.SUBSISTENCE.get() || perk == ModPerks.POWERFUL_ATTRACTION.get() || perk == ModPerks.HEAL_CLIP.get() @@ -193,28 +194,19 @@ public class PerkHelper { || perk == ModPerks.VORPAL_WEAPON.get(); }; - public static final Predicate RIFLE_PERKS = perk -> { - switch (perk.type) { - case AMMO -> { - return true; - } - case FUNCTIONAL -> { - return perk == ModPerks.HEAL_CLIP.get() || perk == ModPerks.FIELD_DOCTOR.get() || - perk == ModPerks.FOURTH_TIMES_CHARM.get() || perk == ModPerks.SUBSISTENCE.get() || - perk == ModPerks.POWERFUL_ATTRACTION.get() || perk == ModPerks.INTELLIGENT_CHIP.get(); - } - case DAMAGE -> { - return perk == ModPerks.KILL_CLIP.get() || perk == ModPerks.GUTSHOT_STRAIGHT.get() || perk == ModPerks.MONSTER_HUNTER.get() || + public static final Predicate RIFLE_PERKS = perk -> switch (perk.type) { + case AMMO -> perk != ModPerks.MICRO_MISSILE.get() && perk != ModPerks.LONGER_WIRE.get(); + case FUNCTIONAL -> perk == ModPerks.HEAL_CLIP.get() || perk == ModPerks.FIELD_DOCTOR.get() || + perk == ModPerks.FOURTH_TIMES_CHARM.get() || perk == ModPerks.SUBSISTENCE.get() || + perk == ModPerks.POWERFUL_ATTRACTION.get() || perk == ModPerks.INTELLIGENT_CHIP.get(); + case DAMAGE -> + perk == ModPerks.KILL_CLIP.get() || perk == ModPerks.GUTSHOT_STRAIGHT.get() || perk == ModPerks.MONSTER_HUNTER.get() || perk == ModPerks.HEAD_SEEKER.get() || perk == ModPerks.DESPERADO.get() || perk == ModPerks.VORPAL_WEAPON.get(); - } - default -> { - return false; - } - } }; public static final Predicate HANDGUN_PERKS = perk -> switch (perk.type) { - case AMMO -> !perk.descriptionId.equals("butterfly_bullet"); + 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.FIELD_DOCTOR.get() || perk == ModPerks.SUBSISTENCE.get() @@ -227,8 +219,8 @@ public class PerkHelper { }; public static final Predicate SNIPER_RIFLE_PERKS = perk -> switch (perk.type) { - case AMMO -> !perk.descriptionId.equals("butterfly_bullet"); - + 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.FOURTH_TIMES_CHARM.get() || perk == ModPerks.POWERFUL_ATTRACTION.get() @@ -240,7 +232,7 @@ public class PerkHelper { }; public static final Predicate SMG_PERKS = perk -> switch (perk.type) { - case AMMO -> true; + case AMMO -> perk != ModPerks.MICRO_MISSILE.get() && perk != ModPerks.LONGER_WIRE.get(); case FUNCTIONAL -> perk == ModPerks.HEAL_CLIP.get() || perk == ModPerks.FOURTH_TIMES_CHARM.get() || perk == ModPerks.SUBSISTENCE.get() @@ -255,8 +247,7 @@ public class PerkHelper { }; public static final Predicate MACHINE_GUN_PERKS = perk -> switch (perk.type) { - case AMMO -> true; - + case AMMO -> perk != ModPerks.MICRO_MISSILE.get() && perk != ModPerks.LONGER_WIRE.get(); case FUNCTIONAL -> perk == ModPerks.FOURTH_TIMES_CHARM.get() || perk == ModPerks.SUBSISTENCE.get() || perk == ModPerks.POWERFUL_ATTRACTION.get() @@ -271,7 +262,5 @@ public class PerkHelper { public static final Predicate LAUNCHER_PERKS = perk -> perk == ModPerks.MONSTER_HUNTER.get() || perk == ModPerks.POWERFUL_ATTRACTION.get() || perk == ModPerks.INTELLIGENT_CHIP.get() - || perk == ModPerks.VORPAL_WEAPON.get() - || perk == ModPerks.MICRO_MISSILE.get(); - + || perk == ModPerks.VORPAL_WEAPON.get(); }