diff --git a/src/main/java/net/mcreator/superbwarfare/event/ClientEventHandler.java b/src/main/java/net/mcreator/superbwarfare/event/ClientEventHandler.java index 009aa4cea..c9ca5b999 100644 --- a/src/main/java/net/mcreator/superbwarfare/event/ClientEventHandler.java +++ b/src/main/java/net/mcreator/superbwarfare/event/ClientEventHandler.java @@ -6,6 +6,7 @@ import net.mcreator.superbwarfare.entity.DroneEntity; import net.mcreator.superbwarfare.entity.ICannonEntity; import net.mcreator.superbwarfare.init.ModItems; import net.mcreator.superbwarfare.init.ModMobEffects; +import net.mcreator.superbwarfare.init.ModPerks; import net.mcreator.superbwarfare.init.ModTags; import net.mcreator.superbwarfare.network.ModVariables; import net.mcreator.superbwarfare.network.message.ShootMessage; @@ -232,7 +233,8 @@ public class ClientEventHandler { } if (stack.getOrCreateTag().getInt("DesperadoTimePost") > 0) { - rpm *= 1.3; + int perkLevel = PerkHelper.getItemPerkLevel(ModPerks.DESPERADO.get(), stack); + rpm *= 1.25 + 0.05 * perkLevel; } double rps = rpm / 60; @@ -556,7 +558,7 @@ public class ClientEventHandler { fireRotTimer += 0.18 * (1.9 - fireRotTimer) * times; } - float[] shake = {0,0}; + float[] shake = {0, 0}; shake[0] = (float) (1.3 * amplitude * (1 / 6.3 * (fireRotTimer - 0.5)) * Math.sin(6.3 * (fireRotTimer - 0.5)) * (3 - Math.pow(fireRotTimer, 2)) + 1 * Mth.clamp(0.3 - fireRotTimer, 0, 1) * (2 * Math.random() - 1)); shake[1] = (float) (4.2 * amplitude * (1 / 6.3 * (fireRotTimer - 0.5)) * Math.sin(6.3 * (fireRotTimer - 0.5)) * (3 - Math.pow(fireRotTimer, 2)) + 3 * Mth.clamp(0.5 - fireRotTimer, 0, 0.5) * (2 * Math.random() - 1)); @@ -615,7 +617,7 @@ public class ClientEventHandler { if (recoilHorizon > 0) { recoilHorizon = recoilHorizon - Math.min(Math.pow(recoilHorizon, 2), 6) * times + recoilY; } else { - recoilHorizon = recoilHorizon + Math.min(Math.pow(recoilHorizon, 2), 6) * times + recoilY ; + recoilHorizon = recoilHorizon + Math.min(Math.pow(recoilHorizon, 2), 6) * times + recoilY; } recoilY = 0; diff --git a/src/main/java/net/mcreator/superbwarfare/init/ModPerks.java b/src/main/java/net/mcreator/superbwarfare/init/ModPerks.java index df3acfa9c..e67458245 100644 --- a/src/main/java/net/mcreator/superbwarfare/init/ModPerks.java +++ b/src/main/java/net/mcreator/superbwarfare/init/ModPerks.java @@ -54,7 +54,6 @@ public class ModPerks { public static final RegistryObject FIELD_DOCTOR = FUNC_PERKS.register("field_doctor", () -> new Perk("field_doctor", Perk.Type.FUNCTIONAL)); public static final RegistryObject SUPER_RECHARGE = FUNC_PERKS.register("super_recharge", () -> new Perk("super_recharge", Perk.Type.FUNCTIONAL)); public static final RegistryObject DIMENSION_MAGAZINE = FUNC_PERKS.register("dimension_magazine", () -> new Perk("dimension_magazine", Perk.Type.FUNCTIONAL)); - public static final RegistryObject DESPERADO = FUNC_PERKS.register("desperado", () -> new Perk("desperado", Perk.Type.FUNCTIONAL)); /** * Damage Perks @@ -67,6 +66,7 @@ public class ModPerks { public static final RegistryObject HEAD_SEEKER = DAMAGE_PERKS.register("head_seeker", () -> new Perk("head_seeker", Perk.Type.DAMAGE)); public static final RegistryObject MONSTER_HUNTER = DAMAGE_PERKS.register("monster_hunter", () -> new Perk("monster_hunter", Perk.Type.DAMAGE)); public static final RegistryObject VOLT_OVERLOAD = DAMAGE_PERKS.register("volt_overload", () -> new Perk("volt_overload", Perk.Type.DAMAGE)); + public static final RegistryObject DESPERADO = DAMAGE_PERKS.register("desperado", () -> new Perk("desperado", Perk.Type.DAMAGE)); public static void registerCompatPerks() { if (ModList.get().isLoaded(CompatHolder.DMV)) { diff --git a/src/main/java/net/mcreator/superbwarfare/perk/PerkHelper.java b/src/main/java/net/mcreator/superbwarfare/perk/PerkHelper.java index f48b53e1b..ab71217c2 100644 --- a/src/main/java/net/mcreator/superbwarfare/perk/PerkHelper.java +++ b/src/main/java/net/mcreator/superbwarfare/perk/PerkHelper.java @@ -203,11 +203,11 @@ public class PerkHelper { } 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.DESPERADO.get(); + perk == ModPerks.FOURTH_TIMES_CHARM.get() || perk == ModPerks.SUBSISTENCE.get(); } case DAMAGE -> { return perk == ModPerks.KILL_CLIP.get() || perk == ModPerks.GUTSHOT_STRAIGHT.get() || - perk == ModPerks.MONSTER_HUNTER.get() || perk == ModPerks.HEAD_SEEKER.get(); + perk == ModPerks.MONSTER_HUNTER.get() || perk == ModPerks.HEAD_SEEKER.get() || perk == ModPerks.DESPERADO.get(); } default -> { return false; diff --git a/src/main/resources/assets/superbwarfare/lang/en_us.json b/src/main/resources/assets/superbwarfare/lang/en_us.json index a27db378a..b239edfc4 100644 --- a/src/main/resources/assets/superbwarfare/lang/en_us.json +++ b/src/main/resources/assets/superbwarfare/lang/en_us.json @@ -272,6 +272,8 @@ "des.superbwarfare.monster_hunter": "Increases the damage of weapon against monsters", "item.superbwarfare.volt_overload": "Volt Overload", "des.superbwarfare.volt_overload": "Increases the shock damage of Taser Gun", + "item.superbwarfare.desperado": "Desperado", + "des.superbwarfare.desperado": "精准击杀后进行换弹,可暂时提升射速", "item.superbwarfare.empty_perk": "Empty Perk", "item.superbwarfare.shortcut_pack": "Shortcut Pack", diff --git a/src/main/resources/assets/superbwarfare/lang/zh_cn.json b/src/main/resources/assets/superbwarfare/lang/zh_cn.json index c1b7e5b02..33e27efbb 100644 --- a/src/main/resources/assets/superbwarfare/lang/zh_cn.json +++ b/src/main/resources/assets/superbwarfare/lang/zh_cn.json @@ -272,6 +272,8 @@ "des.superbwarfare.monster_hunter": "增加武器对怪物的伤害", "item.superbwarfare.volt_overload": "电压过载", "des.superbwarfare.volt_overload": "增加泰瑟枪电击的伤害", + "item.superbwarfare.desperado": "亡命之徒", + "des.superbwarfare.desperado": "精准击杀后进行换弹,可暂时提升射速", "item.superbwarfare.empty_perk": "空白模组", "item.superbwarfare.shortcut_pack": "捷径包",