From 08912da043317cf7ff12b3512634ac45488e263c Mon Sep 17 00:00:00 2001 From: Atsuihsio <842960157@qq.com> Date: Fri, 9 Aug 2024 16:19:14 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E7=A9=BF=E7=94=B2=E5=BC=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../superbwarfare/entity/ProjectileEntity.java | 2 +- .../superbwarfare/event/GunEventHandler.java | 5 +++-- .../net/mcreator/superbwarfare/init/ModPerks.java | 2 ++ .../network/message/FireMessage.java | 5 +++-- .../mcreator/superbwarfare/tools/TooltipTool.java | 6 +++++- .../assets/superbwarfare/lang/en_us.json | 8 +++++--- .../assets/superbwarfare/lang/zh_cn.json | 2 ++ .../superbwarfare/models/item/ap_bullet.json | 6 ++++++ .../textures/item/perk/ap_bullet.png | Bin 0 -> 895 bytes 9 files changed, 27 insertions(+), 9 deletions(-) create mode 100644 src/main/resources/assets/superbwarfare/models/item/ap_bullet.json create mode 100644 src/main/resources/assets/superbwarfare/textures/item/perk/ap_bullet.png 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 0000000000000000000000000000000000000000..27e30e0d980ee5221d37d648c0201487b85fe848 GIT binary patch literal 895 zcmV-_1AzRAP)gWk5*kPpy{JGYj0fIsjO$R>#&IX`%go z-`%^5zVC57-X4cL_vRLj2Y{0YbX^Akc>eN+Rl(bbU#IuOFzEEkQ1kix#r1ulT$X&} zKRrH;CH2+NkFW1%(`zw+YcwAC=jl#&fpSq@tMQcB0JM$YZ5Ok2DLb(M{7)nAlnubz z_*R~f1;Enn*PFvQ{aahfRe&;{8m&?TcH6~FQb%cDq8?Do?OO)Ipa`7@mx=s zmX&}cJ-~A0b2?emBhCP{HeOP;M8OykGk(1}j9mA322sEBKXcby2$Fu00IWt{GPkWg z;S4}y<6jtC1Hu`A+Qxg|1*eA<1kq_QM-sP(=K)TZ5KI6FjgQI-f;s>T?_HN`2uT2((Tt1`RgUE)6g&zD7eW$1NpPDOelmDcAJ>C|z#N<@kX#5V z%OIu6D39J}QYB-}bm=Yj07)Q=HM-j_&Za^@$&n7VCs~q%08*8t8k+#*f+W-KsXj^f zBSot~DBxs3$*MoMY{_P|CiPL~3MlwNIbwDKRbt$=xE&U}};SweSS1yn|U< zJQqUEfJey;0FVzM_Puq+$rJ#mZW)6#9RRMkBI2tN|jLLv{axa}>i^I}ee64iPRD5jR8s&>EkRrafR;L21%5w&Zayz9wOlUYo`nDi0MjpTL9bK5y}5?}`h1mv{s7nS Vo#RM