diff --git a/src/main/java/net/mcreator/superbwarfare/entity/ProjectileEntity.java b/src/main/java/net/mcreator/superbwarfare/entity/ProjectileEntity.java index f0800d9ae..ace7e47e8 100644 --- a/src/main/java/net/mcreator/superbwarfare/entity/ProjectileEntity.java +++ b/src/main/java/net/mcreator/superbwarfare/entity/ProjectileEntity.java @@ -361,7 +361,7 @@ public class ProjectileEntity extends Entity implements IEntityAdditionalSpawnDa if (beast && entity instanceof LivingEntity living) { if (living.isDeadOrDying()) return; - if (living instanceof SenpaiEntity || living instanceof Target1Entity) return; + if (living instanceof Target1Entity) return; if (this.shooter instanceof ServerPlayer player) { ModUtils.PACKET_HANDLER.send(PacketDistributor.PLAYER.with(() -> player), new ClientIndicatorMessage(0, 5)); diff --git a/src/main/java/net/mcreator/superbwarfare/event/GunEventHandler.java b/src/main/java/net/mcreator/superbwarfare/event/GunEventHandler.java index f63b4503f..d5e44eedd 100644 --- a/src/main/java/net/mcreator/superbwarfare/event/GunEventHandler.java +++ b/src/main/java/net/mcreator/superbwarfare/event/GunEventHandler.java @@ -369,11 +369,12 @@ public class GunEventHandler { float bypassArmorRate = (float) heldItem.getOrCreateTag().getDouble("BypassesArmor"); var perk = PerkHelper.getPerkByType(heldItem, Perk.Type.AMMO); if (perk instanceof AmmoPerk ammoPerk) { - bypassArmorRate += ammoPerk.bypassArmorRate; + int level = PerkHelper.getItemPerkLevel(perk, heldItem); + + bypassArmorRate = bypassArmorRate + ammoPerk.bypassArmorRate + (perk == ModPerks.AP_BULLET.get()? 0.05f * (level - 1) : 0); projectile.setRGB(ammoPerk.rgb); if (ammoPerk.mobEffect.get() != null) { - int level = PerkHelper.getItemPerkLevel(perk, heldItem); projectile.effect(() -> new MobEffectInstance(ammoPerk.mobEffect.get(), 100, level - 1)); } } diff --git a/src/main/java/net/mcreator/superbwarfare/init/ModPerks.java b/src/main/java/net/mcreator/superbwarfare/init/ModPerks.java index f1edb7f59..9f05457a9 100644 --- a/src/main/java/net/mcreator/superbwarfare/init/ModPerks.java +++ b/src/main/java/net/mcreator/superbwarfare/init/ModPerks.java @@ -22,6 +22,8 @@ public class ModPerks { public static final DeferredRegister PERKS = DeferredRegister.create(new ResourceLocation(ModUtils.MODID, "perk"), ModUtils.MODID); + public static final RegistryObject AP_BULLET = PERKS.register("ap_bullet", + () -> new AmmoPerk(new AmmoPerk.Builder("ap_bullet", Perk.Type.AMMO).bypassArmorRate(0.4f).rgb(230, 0, 0))); public static final RegistryObject SILVER_BULLET = PERKS.register("silver_bullet", () -> new AmmoPerk(new AmmoPerk.Builder("silver_bullet", Perk.Type.AMMO).bypassArmorRate(0.05f).rgb(87, 166, 219))); public static final RegistryObject POISONOUS_BULLET = PERKS.register("poisonous_bullet", diff --git a/src/main/java/net/mcreator/superbwarfare/network/message/FireMessage.java b/src/main/java/net/mcreator/superbwarfare/network/message/FireMessage.java index 0314ad5cf..32122262c 100644 --- a/src/main/java/net/mcreator/superbwarfare/network/message/FireMessage.java +++ b/src/main/java/net/mcreator/superbwarfare/network/message/FireMessage.java @@ -226,11 +226,12 @@ public class FireMessage { var perk = PerkHelper.getPerkByType(heldItem, Perk.Type.AMMO); if (perk instanceof AmmoPerk ammoPerk) { - bypassArmorRate += ammoPerk.bypassArmorRate; + int level = PerkHelper.getItemPerkLevel(perk, heldItem); + + bypassArmorRate = bypassArmorRate + ammoPerk.bypassArmorRate + (perk == ModPerks.AP_BULLET.get()? 0.05f * (level - 1) : 0); projectile.setRGB(ammoPerk.rgb); if (ammoPerk.mobEffect.get() != null) { - int level = PerkHelper.getItemPerkLevel(perk, heldItem); projectile.effect(() -> new MobEffectInstance(ammoPerk.mobEffect.get(), 100, level - 1)); } } diff --git a/src/main/java/net/mcreator/superbwarfare/tools/TooltipTool.java b/src/main/java/net/mcreator/superbwarfare/tools/TooltipTool.java index 71e5cb735..7fee670e7 100644 --- a/src/main/java/net/mcreator/superbwarfare/tools/TooltipTool.java +++ b/src/main/java/net/mcreator/superbwarfare/tools/TooltipTool.java @@ -1,6 +1,7 @@ package net.mcreator.superbwarfare.tools; import net.mcreator.superbwarfare.entity.DroneEntity; +import net.mcreator.superbwarfare.init.ModPerks; import net.mcreator.superbwarfare.perk.AmmoPerk; import net.mcreator.superbwarfare.perk.Perk; import net.mcreator.superbwarfare.perk.PerkHelper; @@ -82,8 +83,11 @@ public class TooltipTool { double perkbypassArmorRate = 0; var perk = PerkHelper.getPerkByType(stack, Perk.Type.AMMO); + if (perk == null) return; + if (perk instanceof AmmoPerk ammoPerk) { - perkbypassArmorRate = ammoPerk.bypassArmorRate; + int level = PerkHelper.getItemPerkLevel(perk, stack); + perkbypassArmorRate = ammoPerk.bypassArmorRate + (perk == ModPerks.AP_BULLET.get()? 0.05f * (level - 1) : 0); } double byPassRate = ItemNBTTool.getDouble(stack, "BypassesArmor", 0) + perkbypassArmorRate; diff --git a/src/main/resources/assets/superbwarfare/lang/en_us.json b/src/main/resources/assets/superbwarfare/lang/en_us.json index 839207673..c1dc01eb7 100644 --- a/src/main/resources/assets/superbwarfare/lang/en_us.json +++ b/src/main/resources/assets/superbwarfare/lang/en_us.json @@ -174,6 +174,8 @@ "item.superbwarfare.galena": "Raw Galena", "item.superbwarfare.scheelite": "Raw Galena", + "item.superbwarfare.ap_bullet": "Ap Bullet", + "des.superbwarfare.ap_bullet": "Increased the armor-piercing ratio of bullets", "item.superbwarfare.silver_bullet": "Silver Bullet", "des.superbwarfare.silver_bullet": "Causes extra damage to undead entities", "item.superbwarfare.beast_bullet": "Beast Bullet", @@ -195,9 +197,9 @@ "perk.superbwarfare.tips": "[Perks]", "perk.superbwarfare.slot": "Type: ", - "perk.superbwarfare.slot_Ammo": "子弹模组", - "perk.superbwarfare.slot_Functional": "功能模组", - "perk.superbwarfare.slot_Damage": "伤害模组", + "perk.superbwarfare.slot_Ammo": "Bullet Perk", + "perk.superbwarfare.slot_Functional": "Functional Perk", + "perk.superbwarfare.slot_Damage": "Damage Perk", "death.attack.gunfire": "%1$s was shoot by %2$s", "death.attack.gunfire.entity": "%1$s was shoot by %2$s", diff --git a/src/main/resources/assets/superbwarfare/lang/zh_cn.json b/src/main/resources/assets/superbwarfare/lang/zh_cn.json index 677fa4dfe..ca11cfc4e 100644 --- a/src/main/resources/assets/superbwarfare/lang/zh_cn.json +++ b/src/main/resources/assets/superbwarfare/lang/zh_cn.json @@ -174,6 +174,8 @@ "item.superbwarfare.galena": "粗方铅矿", "item.superbwarfare.scheelite": "白钨矿", + "item.superbwarfare.ap_bullet": "穿甲弹", + "des.superbwarfare.ap_bullet": "增加子弹的穿甲比例", "item.superbwarfare.silver_bullet": "银弹", "des.superbwarfare.silver_bullet": "对亡灵生物造成额外伤害", "item.superbwarfare.beast_bullet": "野兽弹", diff --git a/src/main/resources/assets/superbwarfare/models/item/ap_bullet.json b/src/main/resources/assets/superbwarfare/models/item/ap_bullet.json new file mode 100644 index 000000000..1990d143c --- /dev/null +++ b/src/main/resources/assets/superbwarfare/models/item/ap_bullet.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "superbwarfare:item/perk/ap_bullet" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/superbwarfare/textures/item/perk/ap_bullet.png b/src/main/resources/assets/superbwarfare/textures/item/perk/ap_bullet.png new file mode 100644 index 000000000..27e30e0d9 Binary files /dev/null and b/src/main/resources/assets/superbwarfare/textures/item/perk/ap_bullet.png differ