diff --git a/src/main/java/net/mcreator/superbwarfare/event/GunEventHandler.java b/src/main/java/net/mcreator/superbwarfare/event/GunEventHandler.java index 97f0948da..3899e9282 100644 --- a/src/main/java/net/mcreator/superbwarfare/event/GunEventHandler.java +++ b/src/main/java/net/mcreator/superbwarfare/event/GunEventHandler.java @@ -195,6 +195,7 @@ public class GunEventHandler { if (!player.level().isClientSide()) { float headshot = (float) heldItem.getOrCreateTag().getDouble("headshot"); float damage = (float) (heldItem.getOrCreateTag().getDouble("damage") + heldItem.getOrCreateTag().getDouble("sentinelChargeDamage")) * (float) heldItem.getOrCreateTag().getDouble("levelDamageMultiple"); + float velocity = (float) heldItem.getOrCreateTag().getDouble("velocity"); boolean zoom = player.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new ModVariables.PlayerVariables()).zoom; var perk = PerkHelper.getPerkByType(heldItem, Perk.Type.AMMO); @@ -238,6 +239,7 @@ public class GunEventHandler { } else if (perk == ModPerks.HE_BULLET.get()) { int level = PerkHelper.getItemPerkLevel(perk, heldItem); projectile.heBullet(true, level); + velocity *= 0.6f; } var dmgPerk = PerkHelper.getPerkByType(heldItem, Perk.Type.DAMAGE); @@ -247,7 +249,7 @@ public class GunEventHandler { } projectile.setPos(player.getX() - 0.1 * player.getLookAngle().x, player.getEyeY() - 0.1 - 0.1 * player.getLookAngle().y, player.getZ() + -0.1 * player.getLookAngle().z); - projectile.shoot(player.getLookAngle().x, player.getLookAngle().y + 0.0005f, player.getLookAngle().z, 1 * (float) heldItem.getOrCreateTag().getDouble("velocity"), + projectile.shoot(player.getLookAngle().x, player.getLookAngle().y + 0.0005f, player.getLookAngle().z, velocity, (float) spared); player.level().addFreshEntity(projectile); } diff --git a/src/main/java/net/mcreator/superbwarfare/item/gun/shotgun/Aa12Item.java b/src/main/java/net/mcreator/superbwarfare/item/gun/shotgun/Aa12Item.java index f502230d9..50e8dc91b 100644 --- a/src/main/java/net/mcreator/superbwarfare/item/gun/shotgun/Aa12Item.java +++ b/src/main/java/net/mcreator/superbwarfare/item/gun/shotgun/Aa12Item.java @@ -168,7 +168,7 @@ public class Aa12Item extends GunItem implements GeoItem, AnimatedItem { @Override public void appendHoverText(ItemStack stack, @Nullable Level level, List list, TooltipFlag flag) { - TooltipTool.addShotgunTips(list, stack, 8); + TooltipTool.addShotgunTips(list, stack); } @Override diff --git a/src/main/java/net/mcreator/superbwarfare/item/gun/shotgun/AbekiriItem.java b/src/main/java/net/mcreator/superbwarfare/item/gun/shotgun/AbekiriItem.java index 086c05458..3fbeb7cee 100644 --- a/src/main/java/net/mcreator/superbwarfare/item/gun/shotgun/AbekiriItem.java +++ b/src/main/java/net/mcreator/superbwarfare/item/gun/shotgun/AbekiriItem.java @@ -159,7 +159,7 @@ public class AbekiriItem extends GunItem implements GeoItem, AnimatedItem { @Override public void appendHoverText(ItemStack stack, @Nullable Level level, List list, TooltipFlag flag) { - TooltipTool.addShotgunTips(list, stack, 8); + TooltipTool.addShotgunTips(list, stack); } public static ItemStack getGunInstance() { diff --git a/src/main/java/net/mcreator/superbwarfare/item/gun/shotgun/M870Item.java b/src/main/java/net/mcreator/superbwarfare/item/gun/shotgun/M870Item.java index 16adcaa09..43d5e8e5a 100644 --- a/src/main/java/net/mcreator/superbwarfare/item/gun/shotgun/M870Item.java +++ b/src/main/java/net/mcreator/superbwarfare/item/gun/shotgun/M870Item.java @@ -158,7 +158,7 @@ public class M870Item extends GunItem implements GeoItem, AnimatedItem { @Override public void appendHoverText(ItemStack stack, @Nullable Level level, List list, TooltipFlag flag) { - TooltipTool.addShotgunTips(list, stack, 12); + TooltipTool.addShotgunTips(list, stack); } @Override 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 dfeb812e4..3bb5bda46 100644 --- a/src/main/java/net/mcreator/superbwarfare/network/message/FireMessage.java +++ b/src/main/java/net/mcreator/superbwarfare/network/message/FireMessage.java @@ -225,6 +225,7 @@ public class FireMessage { } else if (perk == ModPerks.HE_BULLET.get()) { int level = PerkHelper.getItemPerkLevel(perk, heldItem); projectile.heBullet(true, level); + velocity *= 0.6f; } var dmgPerk = PerkHelper.getPerkByType(heldItem, Perk.Type.DAMAGE); @@ -348,6 +349,7 @@ public class FireMessage { } else if (perk == ModPerks.HE_BULLET.get()) { int level = PerkHelper.getItemPerkLevel(perk, heldItem); projectile.heBullet(true, level); + velocity *= 0.6f; } var dmgPerk = PerkHelper.getPerkByType(heldItem, Perk.Type.DAMAGE); diff --git a/src/main/java/net/mcreator/superbwarfare/tools/TooltipTool.java b/src/main/java/net/mcreator/superbwarfare/tools/TooltipTool.java index 84ec40a8b..f145923db 100644 --- a/src/main/java/net/mcreator/superbwarfare/tools/TooltipTool.java +++ b/src/main/java/net/mcreator/superbwarfare/tools/TooltipTool.java @@ -43,7 +43,7 @@ public class TooltipTool { addPerkTips(tooltip, stack); } - public static void addShotgunTips(List tooltip, ItemStack stack, int count) { + public static void addShotgunTips(List tooltip, ItemStack stack) { tooltip.add(Component.literal("")); double damage = ItemNBTTool.getDouble(stack, "damage", 0) @@ -51,7 +51,7 @@ public class TooltipTool { tooltip.add(Component.translatable("des.superbwarfare.tips.damage").withStyle(ChatFormatting.GRAY) .append(Component.literal("").withStyle(ChatFormatting.RESET)) - .append(Component.literal(new DecimalFormat("##.#").format(damage) + " * " + count).withStyle(ChatFormatting.GREEN))); + .append(Component.literal(new DecimalFormat("##.#").format(damage) + " * " + new DecimalFormat("##").format(ItemNBTTool.getDouble(stack, "projectile_amount", 0))).withStyle(ChatFormatting.GREEN))); addLevelTips(tooltip, stack); addBypassTips(tooltip, stack); diff --git a/src/main/resources/assets/superbwarfare/lang/en_us.json b/src/main/resources/assets/superbwarfare/lang/en_us.json index 9f6edd615..c79c1a04f 100644 --- a/src/main/resources/assets/superbwarfare/lang/en_us.json +++ b/src/main/resources/assets/superbwarfare/lang/en_us.json @@ -220,7 +220,9 @@ "item.superbwarfare.longer_wire": "Longer Wire", "des.superbwarfare.longer_wire": "Increases the range of Taser Gun", "item.superbwarfare.jhp_bullet": "JHP Bullet", - "des.superbwarfare.jhp_bullet": "增加对低护甲目标的伤害", + "des.superbwarfare.jhp_bullet": "增加对无护甲目标的伤害,但伤害会随着护甲值上升而迅速降低", + "item.superbwarfare.he_bullet": "Explosion Bullet", + "des.superbwarfare.he_bullet": "子弹在命中后会爆炸", "item.superbwarfare.heal_clip": "Heal Clip", "des.superbwarfare.heal_clip": "Reloading after dealing a final blow will heal you and your nearby allies", diff --git a/src/main/resources/assets/superbwarfare/lang/zh_cn.json b/src/main/resources/assets/superbwarfare/lang/zh_cn.json index e4ce78a3f..91c5c2165 100644 --- a/src/main/resources/assets/superbwarfare/lang/zh_cn.json +++ b/src/main/resources/assets/superbwarfare/lang/zh_cn.json @@ -220,7 +220,9 @@ "item.superbwarfare.longer_wire": "延长导线", "des.superbwarfare.longer_wire": "增加泰瑟枪的射程", "item.superbwarfare.jhp_bullet": "空尖弹", - "des.superbwarfare.jhp_bullet": "增加对低护甲目标的伤害", + "des.superbwarfare.jhp_bullet": "增加对无护甲目标的伤害,但伤害会随着护甲值上升而迅速降低", + "item.superbwarfare.he_bullet": "爆炸子弹", + "des.superbwarfare.he_bullet": "子弹在命中后会爆炸", "item.superbwarfare.heal_clip": "治疗弹匣", "des.superbwarfare.heal_clip": "最后一击后短时间内填装,可治疗自身和附近队友", diff --git a/src/main/resources/assets/superbwarfare/models/item/he_bullet.json b/src/main/resources/assets/superbwarfare/models/item/he_bullet.json new file mode 100644 index 000000000..0f67c16c9 --- /dev/null +++ b/src/main/resources/assets/superbwarfare/models/item/he_bullet.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "superbwarfare:item/perk/he_bullet" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/superbwarfare/textures/item/perk/he_bullet.png b/src/main/resources/assets/superbwarfare/textures/item/perk/he_bullet.png new file mode 100644 index 000000000..e84c4817b Binary files /dev/null and b/src/main/resources/assets/superbwarfare/textures/item/perk/he_bullet.png differ diff --git a/src/main/resources/data/superbwarfare/recipes/perk/he_bullet_perk_crafting.json b/src/main/resources/data/superbwarfare/recipes/perk/he_bullet_perk_crafting.json new file mode 100644 index 000000000..c09aacc0d --- /dev/null +++ b/src/main/resources/data/superbwarfare/recipes/perk/he_bullet_perk_crafting.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "pattern": [ + "cbc", + "bab", + "cbc" + ], + "key": { + "a": { + "item": "superbwarfare:empty_perk" + }, + "b": { + "item":"minecraft:tnt" + }, + "c": { + "item": "superbwarfare:high_energy_explosives" + } + }, + "result": { + "item": "superbwarfare:he_bullet", + "count": 1 + } +} \ No newline at end of file