添加穿甲弹

This commit is contained in:
Atsuihsio 2024-08-09 16:19:14 +08:00
parent 50f7d60bef
commit 08912da043
9 changed files with 27 additions and 9 deletions

View file

@ -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));

View file

@ -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));
}
}

View file

@ -22,6 +22,8 @@ public class ModPerks {
public static final DeferredRegister<Perk> PERKS = DeferredRegister.create(new ResourceLocation(ModUtils.MODID, "perk"), ModUtils.MODID);
public static final RegistryObject<AmmoPerk> 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<AmmoPerk> 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<AmmoPerk> POISONOUS_BULLET = PERKS.register("poisonous_bullet",

View file

@ -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));
}
}

View file

@ -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;

View file

@ -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",

View file

@ -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": "野兽弹",

View file

@ -0,0 +1,6 @@
{
"parent": "item/generated",
"textures": {
"layer0": "superbwarfare:item/perk/ap_bullet"
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 895 B