添加穿甲弹
This commit is contained in:
parent
50f7d60bef
commit
08912da043
9 changed files with 27 additions and 9 deletions
|
@ -361,7 +361,7 @@ public class ProjectileEntity extends Entity implements IEntityAdditionalSpawnDa
|
||||||
|
|
||||||
if (beast && entity instanceof LivingEntity living) {
|
if (beast && entity instanceof LivingEntity living) {
|
||||||
if (living.isDeadOrDying()) return;
|
if (living.isDeadOrDying()) return;
|
||||||
if (living instanceof SenpaiEntity || living instanceof Target1Entity) return;
|
if (living instanceof Target1Entity) return;
|
||||||
|
|
||||||
if (this.shooter instanceof ServerPlayer player) {
|
if (this.shooter instanceof ServerPlayer player) {
|
||||||
ModUtils.PACKET_HANDLER.send(PacketDistributor.PLAYER.with(() -> player), new ClientIndicatorMessage(0, 5));
|
ModUtils.PACKET_HANDLER.send(PacketDistributor.PLAYER.with(() -> player), new ClientIndicatorMessage(0, 5));
|
||||||
|
|
|
@ -369,11 +369,12 @@ public class GunEventHandler {
|
||||||
float bypassArmorRate = (float) heldItem.getOrCreateTag().getDouble("BypassesArmor");
|
float bypassArmorRate = (float) heldItem.getOrCreateTag().getDouble("BypassesArmor");
|
||||||
var perk = PerkHelper.getPerkByType(heldItem, Perk.Type.AMMO);
|
var perk = PerkHelper.getPerkByType(heldItem, Perk.Type.AMMO);
|
||||||
if (perk instanceof AmmoPerk ammoPerk) {
|
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);
|
projectile.setRGB(ammoPerk.rgb);
|
||||||
|
|
||||||
if (ammoPerk.mobEffect.get() != null) {
|
if (ammoPerk.mobEffect.get() != null) {
|
||||||
int level = PerkHelper.getItemPerkLevel(perk, heldItem);
|
|
||||||
projectile.effect(() -> new MobEffectInstance(ammoPerk.mobEffect.get(), 100, level - 1));
|
projectile.effect(() -> new MobEffectInstance(ammoPerk.mobEffect.get(), 100, level - 1));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -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 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",
|
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)));
|
() -> 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",
|
public static final RegistryObject<AmmoPerk> POISONOUS_BULLET = PERKS.register("poisonous_bullet",
|
||||||
|
|
|
@ -226,11 +226,12 @@ public class FireMessage {
|
||||||
|
|
||||||
var perk = PerkHelper.getPerkByType(heldItem, Perk.Type.AMMO);
|
var perk = PerkHelper.getPerkByType(heldItem, Perk.Type.AMMO);
|
||||||
if (perk instanceof AmmoPerk ammoPerk) {
|
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);
|
projectile.setRGB(ammoPerk.rgb);
|
||||||
|
|
||||||
if (ammoPerk.mobEffect.get() != null) {
|
if (ammoPerk.mobEffect.get() != null) {
|
||||||
int level = PerkHelper.getItemPerkLevel(perk, heldItem);
|
|
||||||
projectile.effect(() -> new MobEffectInstance(ammoPerk.mobEffect.get(), 100, level - 1));
|
projectile.effect(() -> new MobEffectInstance(ammoPerk.mobEffect.get(), 100, level - 1));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
package net.mcreator.superbwarfare.tools;
|
package net.mcreator.superbwarfare.tools;
|
||||||
|
|
||||||
import net.mcreator.superbwarfare.entity.DroneEntity;
|
import net.mcreator.superbwarfare.entity.DroneEntity;
|
||||||
|
import net.mcreator.superbwarfare.init.ModPerks;
|
||||||
import net.mcreator.superbwarfare.perk.AmmoPerk;
|
import net.mcreator.superbwarfare.perk.AmmoPerk;
|
||||||
import net.mcreator.superbwarfare.perk.Perk;
|
import net.mcreator.superbwarfare.perk.Perk;
|
||||||
import net.mcreator.superbwarfare.perk.PerkHelper;
|
import net.mcreator.superbwarfare.perk.PerkHelper;
|
||||||
|
@ -82,8 +83,11 @@ public class TooltipTool {
|
||||||
|
|
||||||
double perkbypassArmorRate = 0;
|
double perkbypassArmorRate = 0;
|
||||||
var perk = PerkHelper.getPerkByType(stack, Perk.Type.AMMO);
|
var perk = PerkHelper.getPerkByType(stack, Perk.Type.AMMO);
|
||||||
|
if (perk == null) return;
|
||||||
|
|
||||||
if (perk instanceof AmmoPerk ammoPerk) {
|
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;
|
double byPassRate = ItemNBTTool.getDouble(stack, "BypassesArmor", 0) + perkbypassArmorRate;
|
||||||
|
|
||||||
|
|
|
@ -174,6 +174,8 @@
|
||||||
"item.superbwarfare.galena": "Raw Galena",
|
"item.superbwarfare.galena": "Raw Galena",
|
||||||
"item.superbwarfare.scheelite": "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",
|
"item.superbwarfare.silver_bullet": "Silver Bullet",
|
||||||
"des.superbwarfare.silver_bullet": "Causes extra damage to undead entities",
|
"des.superbwarfare.silver_bullet": "Causes extra damage to undead entities",
|
||||||
"item.superbwarfare.beast_bullet": "Beast Bullet",
|
"item.superbwarfare.beast_bullet": "Beast Bullet",
|
||||||
|
@ -195,9 +197,9 @@
|
||||||
|
|
||||||
"perk.superbwarfare.tips": "[Perks]",
|
"perk.superbwarfare.tips": "[Perks]",
|
||||||
"perk.superbwarfare.slot": "Type: ",
|
"perk.superbwarfare.slot": "Type: ",
|
||||||
"perk.superbwarfare.slot_Ammo": "子弹模组",
|
"perk.superbwarfare.slot_Ammo": "Bullet Perk",
|
||||||
"perk.superbwarfare.slot_Functional": "功能模组",
|
"perk.superbwarfare.slot_Functional": "Functional Perk",
|
||||||
"perk.superbwarfare.slot_Damage": "伤害模组",
|
"perk.superbwarfare.slot_Damage": "Damage Perk",
|
||||||
|
|
||||||
"death.attack.gunfire": "%1$s was shoot by %2$s",
|
"death.attack.gunfire": "%1$s was shoot by %2$s",
|
||||||
"death.attack.gunfire.entity": "%1$s was shoot by %2$s",
|
"death.attack.gunfire.entity": "%1$s was shoot by %2$s",
|
||||||
|
|
|
@ -174,6 +174,8 @@
|
||||||
"item.superbwarfare.galena": "粗方铅矿",
|
"item.superbwarfare.galena": "粗方铅矿",
|
||||||
"item.superbwarfare.scheelite": "白钨矿",
|
"item.superbwarfare.scheelite": "白钨矿",
|
||||||
|
|
||||||
|
"item.superbwarfare.ap_bullet": "穿甲弹",
|
||||||
|
"des.superbwarfare.ap_bullet": "增加子弹的穿甲比例",
|
||||||
"item.superbwarfare.silver_bullet": "银弹",
|
"item.superbwarfare.silver_bullet": "银弹",
|
||||||
"des.superbwarfare.silver_bullet": "对亡灵生物造成额外伤害",
|
"des.superbwarfare.silver_bullet": "对亡灵生物造成额外伤害",
|
||||||
"item.superbwarfare.beast_bullet": "野兽弹",
|
"item.superbwarfare.beast_bullet": "野兽弹",
|
||||||
|
|
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
"parent": "item/generated",
|
||||||
|
"textures": {
|
||||||
|
"layer0": "superbwarfare:item/perk/ap_bullet"
|
||||||
|
}
|
||||||
|
}
|
Binary file not shown.
After Width: | Height: | Size: 895 B |
Loading…
Add table
Reference in a new issue