From eb2a56d325b4bbdacd3d8795250e79fe66e2eac1 Mon Sep 17 00:00:00 2001 From: Atsuihsio <842960157@qq.com> Date: Sun, 4 Aug 2024 16:39:14 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E7=A9=BF=E7=94=B2=E6=AF=94?= =?UTF-8?q?=E4=BE=8B=E6=98=BE=E7=A4=BA=EF=BC=8C=E6=B7=BB=E5=8A=A0=E7=BF=BB?= =?UTF-8?q?=E8=AF=91=E9=A1=B9=EF=BC=8C=E5=89=8A=E5=BC=B1=E6=95=B4=E4=BD=93?= =?UTF-8?q?=E7=A9=BF=E7=94=B2=E6=AF=94=E4=BE=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../client/screens/DroneUIOverlay.java | 44 +++++++++++++--- .../superbwarfare/entity/DroneEntity.java | 7 +++ .../superbwarfare/entity/RpgRocketEntity.java | 52 ++----------------- .../superbwarfare/event/GunEventHandler.java | 2 +- .../superbwarfare/item/gun/SentinelItem.java | 4 +- .../network/message/FireMessage.java | 6 +-- .../superbwarfare/tools/GunsTool.java | 6 +-- .../superbwarfare/tools/TooltipTool.java | 35 +++++++++---- .../assets/superbwarfare/lang/en_us.json | 11 +++- .../assets/superbwarfare/lang/zh_cn.json | 11 +++- .../tags/damage_type/bypasses_effects.json | 3 +- .../data/superbwarfare/guns/aa_12.json | 2 +- .../data/superbwarfare/guns/abekiri.json | 2 +- .../data/superbwarfare/guns/ak_47.json | 2 +- .../data/superbwarfare/guns/devotion.json | 2 +- .../data/superbwarfare/guns/hk_416.json | 2 +- .../superbwarfare/guns/hunting_rifle.json | 2 +- .../data/superbwarfare/guns/m_4.json | 2 +- .../data/superbwarfare/guns/m_60.json | 2 +- .../data/superbwarfare/guns/m_870.json | 2 +- .../data/superbwarfare/guns/minigun.json | 2 +- .../data/superbwarfare/guns/mk_14.json | 2 +- .../data/superbwarfare/guns/rpg.json | 3 +- .../data/superbwarfare/guns/rpk.json | 2 +- .../data/superbwarfare/guns/sentinel.json | 2 +- .../data/superbwarfare/guns/sks.json | 2 +- .../data/superbwarfare/guns/svd.json | 2 +- .../data/superbwarfare/guns/trachelium.json | 2 +- 28 files changed, 120 insertions(+), 96 deletions(-) diff --git a/src/main/java/net/mcreator/superbwarfare/client/screens/DroneUIOverlay.java b/src/main/java/net/mcreator/superbwarfare/client/screens/DroneUIOverlay.java index 93d47089e..e00a3e3d3 100644 --- a/src/main/java/net/mcreator/superbwarfare/client/screens/DroneUIOverlay.java +++ b/src/main/java/net/mcreator/superbwarfare/client/screens/DroneUIOverlay.java @@ -7,6 +7,7 @@ import net.mcreator.superbwarfare.init.ModItems; import net.mcreator.superbwarfare.tools.TraceTool; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.GameRenderer; +import net.minecraft.network.chat.Component; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.player.Player; @@ -68,22 +69,51 @@ public class DroneUIOverlay { if (distance > MAX_DISTANCE - 48) { - event.getGuiGraphics().drawString(Minecraft.getInstance().font, "WARNING", w / 2 + -18, h / 2 + -47, -65536, false); + event.getGuiGraphics().drawString(Minecraft.getInstance().font, Component.translatable("des.superbwarfare.drone.warning") + , w / 2 + -18, h / 2 + -47, -65536, false); color = -65536; } - event.getGuiGraphics().drawString(Minecraft.getInstance().font, "Distance:" + new DecimalFormat("##.#").format(distance) + "M", w / 2 + 10, h / 2 + 33, color, false); - event.getGuiGraphics().drawString(Minecraft.getInstance().font, "Health:" + new DecimalFormat("##.#").format(entity.getHealth()) + "/" + new DecimalFormat("##").format(entity.getMaxHealth()), w / 2 - 77, h / 2 + 33, -1, false); + event.getGuiGraphics().drawString(Minecraft.getInstance().font, Component.translatable("des.superbwarfare.drone.distance") + .append(Component.literal(new DecimalFormat("##.#").format(distance) + "M")) + , w / 2 + 10, h / 2 + 33, color, false); + + event.getGuiGraphics().drawString(Minecraft.getInstance().font, Component.translatable("des.superbwarfare.drone.health") + .append(Component.literal(new DecimalFormat("##.#").format(entity.getHealth()) + "/" + new DecimalFormat("##.#").format(entity.getMaxHealth()))) + , w / 2 - 77, h / 2 + 33, -1, false); + if (!entity.getEntityData().get(KAMIKAZE)) { - event.getGuiGraphics().drawString(Minecraft.getInstance().font, "AMMO:" + new DecimalFormat("##.#").format(entity.getEntityData().get(AMMO)) + " / 6", w / 2 + 12, h / 2 + -37, -1, false); + + event.getGuiGraphics().drawString(Minecraft.getInstance().font, Component.translatable("des.superbwarfare.drone.ammo") + .append(Component.literal(new DecimalFormat("##.#").format(entity.getEntityData().get(AMMO)) + " / 6")) + , w / 2 + 12, h / 2 + -37, -1, false); + } else { - event.getGuiGraphics().drawString(Minecraft.getInstance().font, "KAMIKAZE", w / 2 + 12, h / 2 + -37, -65536, false); + + event.getGuiGraphics().drawString(Minecraft.getInstance().font, Component.translatable("des.superbwarfare.drone.kamikaze") + , w / 2 + 12, h / 2 + -37, -65536, false); + } if (lookAtEntity) { - event.getGuiGraphics().drawString(Minecraft.getInstance().font, "Range:" + new DecimalFormat("##.#").format(entity_range) + "M " + lookingEntity.getDisplayName().getString(), w / 2 + 12, h / 2 - 28, color, false); + + event.getGuiGraphics().drawString(Minecraft.getInstance().font, Component.translatable("des.superbwarfare.drone.range") + .append(Component.literal(new DecimalFormat("##.#").format(entity_range) + "M " + lookingEntity.getDisplayName().getString())) + , w / 2 + 12, h / 2 - 28, color, false); + } else { - event.getGuiGraphics().drawString(Minecraft.getInstance().font, block_range > 512 ? "Range:---M" : "Range:" + new DecimalFormat("##.#").format(block_range) + "M", w / 2 + 12, h / 2 - 28, color, false); + if (block_range > 512) { + + event.getGuiGraphics().drawString(Minecraft.getInstance().font, Component.translatable("des.superbwarfare.drone.range") + .append(Component.literal("---M")) + , w / 2 + 12, h / 2 - 28, color, false); + + } else { + event.getGuiGraphics().drawString(Minecraft.getInstance().font, Component.translatable("des.superbwarfare.drone.range") + .append(Component.literal(new DecimalFormat("##.#").format(block_range) + "M")) + , w / 2 + 12, h / 2 - 28, color, false); + } + } } } diff --git a/src/main/java/net/mcreator/superbwarfare/entity/DroneEntity.java b/src/main/java/net/mcreator/superbwarfare/entity/DroneEntity.java index 682024e45..7d2ef6c24 100644 --- a/src/main/java/net/mcreator/superbwarfare/entity/DroneEntity.java +++ b/src/main/java/net/mcreator/superbwarfare/entity/DroneEntity.java @@ -356,6 +356,13 @@ public class DroneEntity extends PathfinderMob implements GeoEntity { ItemHandlerHelper.giveItemToPlayer(player, new ItemStack(ModItems.MORTAR_SHELLS.get())); } + player.getInventory().items.stream().filter(stack_ -> stack_.getItem() == ModItems.MONITOR.get()) + .forEach(stack_ -> { + if (stack_.getOrCreateTag().getString(Monitor.LINKED_DRONE).equals(this.getStringUUID())) { + Monitor.disLink(stack_); + } + }); + if (!this.level().isClientSide()) this.discard(); } else if (stack.getItem() == ModItems.RGO_GRENADE.get() && !this.entityData.get(KAMIKAZE)) { if (this.entityData.get(AMMO) < 6) { diff --git a/src/main/java/net/mcreator/superbwarfare/entity/RpgRocketEntity.java b/src/main/java/net/mcreator/superbwarfare/entity/RpgRocketEntity.java index 43487ef4d..841480416 100644 --- a/src/main/java/net/mcreator/superbwarfare/entity/RpgRocketEntity.java +++ b/src/main/java/net/mcreator/superbwarfare/entity/RpgRocketEntity.java @@ -1,8 +1,6 @@ package net.mcreator.superbwarfare.entity; import net.mcreator.superbwarfare.ModUtils; -import net.mcreator.superbwarfare.headshot.BoundingBoxManager; -import net.mcreator.superbwarfare.headshot.IHeadshotBox; import net.mcreator.superbwarfare.init.ModDamageTypes; import net.mcreator.superbwarfare.init.ModEntities; import net.mcreator.superbwarfare.init.ModItems; @@ -27,7 +25,6 @@ import net.minecraft.world.entity.projectile.ThrowableItemProjectile; import net.minecraft.world.item.Item; import net.minecraft.world.level.Explosion; import net.minecraft.world.level.Level; -import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.BlockHitResult; import net.minecraft.world.phys.EntityHitResult; import net.minecraft.world.phys.Vec3; @@ -43,8 +40,6 @@ import software.bernie.geckolib.core.animation.RawAnimation; import software.bernie.geckolib.core.object.PlayState; import software.bernie.geckolib.util.GeckoLibUtil; -import java.util.Optional; - public class RpgRocketEntity extends ThrowableItemProjectile implements GeoEntity, AnimatedEntity{ public static final EntityDataAccessor ANIMATION = SynchedEntityData.defineId(CannonShellEntity.class, EntityDataSerializers.STRING); @@ -99,51 +94,10 @@ public class RpgRocketEntity extends ThrowableItemProjectile implements GeoEntit entity.invulnerableTime = 0; } - AABB boundingBox = entity.getBoundingBox(); - Vec3 startVec = this.position(); - Vec3 endVec = startVec.add(this.getDeltaMovement()); - Vec3 hitPos = boundingBox.clip(startVec, endVec).orElse(null); - /* Check for headshot */ - boolean headshot = false; - if (entity instanceof LivingEntity) { - IHeadshotBox headshotBox = (IHeadshotBox) BoundingBoxManager.getHeadshotBoxes(entity.getType()); - if (headshotBox != null) { - AABB box = headshotBox.getHeadshotBox((LivingEntity) entity); - if (box != null) { - box = box.move(boundingBox.getCenter().x, boundingBox.minY, boundingBox.getCenter().z); - Optional headshotHitPos = box.clip(startVec, endVec); - if (headshotHitPos.isEmpty()) { - box = box.inflate(0.2, 0.2, 0.2); - headshotHitPos = box.clip(startVec, endVec); - } - if (headshotHitPos.isPresent() && (hitPos == null || headshotHitPos.get().distanceTo(hitPos) < 0.55)) { - headshot = true; - } - if (headshot) { - if (this.getOwner() instanceof LivingEntity living) { - if (!living.level().isClientSide() && living instanceof ServerPlayer player) { - living.playSound(ModSounds.HEADSHOT.get(), 1, 1); - - ModUtils.PACKET_HANDLER.send(PacketDistributor.PLAYER.with(() -> player), new ClientIndicatorMessage(1, 5)); - } - } - } - } - } - } - - if (headshot) { - if (entity instanceof Monster monster) { - monster.hurt(ModDamageTypes.causeGunFireHeadshotDamage(this.level().registryAccess(), this, this.getOwner()), this.damage * 5f * damageMultiplier); - } else { - entity.hurt(ModDamageTypes.causeGunFireHeadshotDamage(this.level().registryAccess(), this, this.getOwner()), this.damage * 5f); - } + if (entity instanceof Monster monster) { + monster.hurt(ModDamageTypes.causeCannonFireDamage(this.level().registryAccess(), this, this.getOwner()), this.damage * damageMultiplier); } else { - if (entity instanceof Monster monster) { - monster.hurt(ModDamageTypes.causeGunFireHeadshotDamage(this.level().registryAccess(), this, this.getOwner()), this.damage * damageMultiplier); - } else { - entity.hurt(ModDamageTypes.causeGunFireHeadshotDamage(this.level().registryAccess(), this, this.getOwner()), this.damage); - } + entity.hurt(ModDamageTypes.causeCannonFireDamage(this.level().registryAccess(), this, this.getOwner()), this.damage); } if (this.tickCount > 1) { diff --git a/src/main/java/net/mcreator/superbwarfare/event/GunEventHandler.java b/src/main/java/net/mcreator/superbwarfare/event/GunEventHandler.java index b19e5dc63..91b503b96 100644 --- a/src/main/java/net/mcreator/superbwarfare/event/GunEventHandler.java +++ b/src/main/java/net/mcreator/superbwarfare/event/GunEventHandler.java @@ -344,7 +344,7 @@ public class GunEventHandler { if (!player.level().isClientSide()) { float headshot = (float) heldItem.getOrCreateTag().getDouble("headshot"); int monsterMultiple = EnchantmentHelper.getTagEnchantmentLevel(ModEnchantments.MONSTER_HUNTER.get(), heldItem); - float damage = (float) (heldItem.getOrCreateTag().getDouble("damage") + heldItem.getOrCreateTag().getDouble("add_damage")) * (float) heldItem.getOrCreateTag().getDouble("damageadd"); + float damage = (float) (heldItem.getOrCreateTag().getDouble("damage") + heldItem.getOrCreateTag().getDouble("sentinelChargeDamage")) * (float) heldItem.getOrCreateTag().getDouble("levelDamageMultiple"); float bypassArmorRate = (float) heldItem.getOrCreateTag().getDouble("BypassesArmor"); boolean zoom = player.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new ModVariables.PlayerVariables()).zoom; diff --git a/src/main/java/net/mcreator/superbwarfare/item/gun/SentinelItem.java b/src/main/java/net/mcreator/superbwarfare/item/gun/SentinelItem.java index 88089cd88..3c3976eea 100644 --- a/src/main/java/net/mcreator/superbwarfare/item/gun/SentinelItem.java +++ b/src/main/java/net/mcreator/superbwarfare/item/gun/SentinelItem.java @@ -232,9 +232,9 @@ public class SentinelItem extends GunItem implements GeoItem, AnimatedItem { if (energyStored > 0) { energy.extractEnergy(5, false); - tag.putDouble("add_damage", 0.2857142857142857 * tag.getDouble("damage") * tag.getDouble("damageadd")); + tag.putDouble("sentinelChargeDamage", 0.2857142857142857 * tag.getDouble("damage") * tag.getDouble("levelDamageMultiple")); } else { - tag.putDouble("add_damage", 0); + tag.putDouble("sentinelChargeDamage", 0); } } ); 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 0311bb4aa..696d462ae 100644 --- a/src/main/java/net/mcreator/superbwarfare/network/message/FireMessage.java +++ b/src/main/java/net/mcreator/superbwarfare/network/message/FireMessage.java @@ -228,7 +228,7 @@ public class FireMessage { 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); - damage = 0.008333333 * tag.getDouble("damage") * tag.getDouble("speed") * tag.getDouble("damageadd"); + damage = 0.008333333 * tag.getDouble("damage") * tag.getDouble("speed") * tag.getDouble("levelDamageMultiple"); projectile.shoot(player.getLookAngle().x, player.getLookAngle().y, player.getLookAngle().z, velocity, 2.5f); projectile.damage((float) damage); player.level().addFreshEntity(projectile); @@ -281,7 +281,7 @@ public class FireMessage { Level level = player.level(); if (!level.isClientSide()) { int monsterMultiple = EnchantmentHelper.getTagEnchantmentLevel(ModEnchantments.MONSTER_HUNTER.get(), stack); - GunGrenadeEntity gunGrenadeEntity = new GunGrenadeEntity(player, level, (float) stack.getOrCreateTag().getDouble("damage") * (float) stack.getOrCreateTag().getDouble("damageadd"), monsterMultiple); + GunGrenadeEntity gunGrenadeEntity = new GunGrenadeEntity(player, level, (float) stack.getOrCreateTag().getDouble("damage") * (float) stack.getOrCreateTag().getDouble("levelDamageMultiple"), monsterMultiple); gunGrenadeEntity.setPos(player.getX(), player.getEyeY() - 0.1, player.getZ()); gunGrenadeEntity.shoot(player.getLookAngle().x, player.getLookAngle().y, player.getLookAngle().z, (float) stack.getOrCreateTag().getDouble("velocity"), @@ -323,7 +323,7 @@ public class FireMessage { if (!level.isClientSide()) { int monsterMultiple = EnchantmentHelper.getTagEnchantmentLevel(ModEnchantments.MONSTER_HUNTER.get(), mainHandItem); - RpgRocketEntity rocketEntity = new RpgRocketEntity(player, level, (float) tag.getDouble("damage") * (float) tag.getDouble("damageadd"), monsterMultiple); + RpgRocketEntity rocketEntity = new RpgRocketEntity(player, level, (float) tag.getDouble("damage") * (float) tag.getDouble("levelDamageMultiple"), monsterMultiple); rocketEntity.setPos(player.getX(), player.getEyeY() - 0.1, player.getZ()); rocketEntity.shoot(player.getLookAngle().x, player.getLookAngle().y, player.getLookAngle().z, (float) tag.getDouble("velocity"), (float) (mainHandItem.getOrCreateTag().getDouble("dev") * ZoomMessage.zoom_spread)); diff --git a/src/main/java/net/mcreator/superbwarfare/tools/GunsTool.java b/src/main/java/net/mcreator/superbwarfare/tools/GunsTool.java index 4520f474d..93e8101cf 100644 --- a/src/main/java/net/mcreator/superbwarfare/tools/GunsTool.java +++ b/src/main/java/net/mcreator/superbwarfare/tools/GunsTool.java @@ -67,12 +67,12 @@ public class GunsTool { public static void pvpModeCheck(ItemStack stack, Level level) { if (!ModVariables.MapVariables.get(level).pvpMode) { if (stack.getOrCreateTag().getInt("level") >= 10) { - stack.getOrCreateTag().putDouble("damageadd", 1 + 0.05 * (stack.getOrCreateTag().getInt("level") - 10)); + stack.getOrCreateTag().putDouble("levelDamageMultiple", 1 + 0.05 * (stack.getOrCreateTag().getInt("level") - 10)); } else { - stack.getOrCreateTag().putDouble("damageadd", 1); + stack.getOrCreateTag().putDouble("levelDamageMultiple", 1); } } else { - stack.getOrCreateTag().putDouble("damageadd", 1); + stack.getOrCreateTag().putDouble("levelDamageMultiple", 1); } } diff --git a/src/main/java/net/mcreator/superbwarfare/tools/TooltipTool.java b/src/main/java/net/mcreator/superbwarfare/tools/TooltipTool.java index 1b76c84e5..2bf1c4613 100644 --- a/src/main/java/net/mcreator/superbwarfare/tools/TooltipTool.java +++ b/src/main/java/net/mcreator/superbwarfare/tools/TooltipTool.java @@ -24,29 +24,29 @@ public class TooltipTool { public static void addGunTips(List tooltip, ItemStack stack) { tooltip.add(Component.literal("")); - double damage = (ItemNBTTool.getDouble(stack, "damage", 0) + - ItemNBTTool.getDouble(stack, "add_damage", 0)) - * ItemNBTTool.getDouble(stack, "damageadd", 1); + double damage = ItemNBTTool.getDouble(stack, "damage", 0) + * ItemNBTTool.getDouble(stack, "levelDamageMultiple", 1); tooltip.add(Component.translatable("des.superbwarfare.tips.damage").withStyle(ChatFormatting.GRAY) .append(Component.literal("").withStyle(ChatFormatting.RESET)) .append(Component.literal(new DecimalFormat("##.#").format(damage)).withStyle(ChatFormatting.GREEN))); addLevelTips(tooltip, stack); + addBypassTips(tooltip, stack); } public static void addShotgunTips(List tooltip, ItemStack stack, int count) { tooltip.add(Component.literal("")); - double damage = (ItemNBTTool.getDouble(stack, "damage", 0) + - ItemNBTTool.getDouble(stack, "add_damage", 0)) - * ItemNBTTool.getDouble(stack, "damageadd", 1); + double damage = ItemNBTTool.getDouble(stack, "damage", 0) + * ItemNBTTool.getDouble(stack, "levelDamageMultiple", 1); 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))); addLevelTips(tooltip, stack); + addBypassTips(tooltip, stack); } private static void addLevelTips(List tooltip, ItemStack stack) { @@ -72,10 +72,19 @@ public class TooltipTool { } + private static void addBypassTips(List tooltip, ItemStack stack) { + double byPassRate = ItemNBTTool.getDouble(stack, "BypassesArmor", 0); + + tooltip.add(Component.translatable("des.superbwarfare.tips.bypass").withStyle(ChatFormatting.GRAY) + .append(Component.literal("").withStyle(ChatFormatting.RESET)) + .append(Component.literal(new DecimalFormat("##.##").format(byPassRate * 100) + "%").withStyle(ChatFormatting.GOLD).withStyle(ChatFormatting.BOLD))); + + } + public static void addBocekTips(List tooltip, ItemStack stack) { tooltip.add(Component.literal("")); - double total = ItemNBTTool.getDouble(stack, "damage", 0) * ItemNBTTool.getDouble(stack, "damageadd", 1); + double total = ItemNBTTool.getDouble(stack, "damage", 0) * ItemNBTTool.getDouble(stack, "levelDamageMultiple", 1); tooltip.add(Component.translatable("des.superbwarfare.tips.damage").withStyle(ChatFormatting.GRAY) .append(Component.literal("").withStyle(ChatFormatting.RESET)) @@ -84,6 +93,7 @@ public class TooltipTool { .append(Component.literal(new DecimalFormat("##.#").format(total)).withStyle(ChatFormatting.GREEN))); addLevelTips(tooltip, stack); + addBypassTips(tooltip, stack); } public static void addSentinelTips(List tooltip, ItemStack stack) { @@ -97,14 +107,14 @@ public class TooltipTool { if (flag.get()) { double damage = (ItemNBTTool.getDouble(stack, "damage", 0) + - ItemNBTTool.getDouble(stack, "add_damage", 0)) - * ItemNBTTool.getDouble(stack, "damageadd", 1); + ItemNBTTool.getDouble(stack, "sentinelChargeDamage", 0)) + * ItemNBTTool.getDouble(stack, "levelDamageMultiple", 1); tooltip.add(Component.translatable("des.superbwarfare.tips.damage").withStyle(ChatFormatting.GRAY) .append(Component.literal("").withStyle(ChatFormatting.RESET)) .append(Component.literal(new DecimalFormat("##.#").format(damage)).withStyle(ChatFormatting.AQUA).withStyle(ChatFormatting.BOLD))); } else { - double damage = ItemNBTTool.getDouble(stack, "damage", 0) * ItemNBTTool.getDouble(stack, "damageadd", 1); + double damage = ItemNBTTool.getDouble(stack, "damage", 0) * ItemNBTTool.getDouble(stack, "levelDamageMultiple", 1); tooltip.add(Component.translatable("des.superbwarfare.tips.damage").withStyle(ChatFormatting.GRAY) .append(Component.literal("").withStyle(ChatFormatting.RESET)) @@ -112,6 +122,7 @@ public class TooltipTool { } addLevelTips(tooltip, stack); + addBypassTips(tooltip, stack); stack.getCapability(ForgeCapabilities.ENERGY).ifPresent( e -> tooltip.add(Component.literal(e.getEnergyStored() + " / " + e.getMaxEnergyStored() + " FE").withStyle(ChatFormatting.GRAY)) @@ -129,6 +140,8 @@ public class TooltipTool { if (entity == null) return; - tooltip.add(Component.literal("Distance:" + new DecimalFormat("##.#").format(player.distanceTo(entity)) + "M").withStyle(ChatFormatting.GRAY)); + tooltip.add(Component.translatable("des.superbwarfare.tips.distance").withStyle(ChatFormatting.GRAY) + .append(Component.literal("").withStyle(ChatFormatting.RESET)) + .append(Component.literal("Distance:" + new DecimalFormat("##.#").format(player.distanceTo(entity)) + "M").withStyle(ChatFormatting.GRAY))); } } diff --git a/src/main/resources/assets/superbwarfare/lang/en_us.json b/src/main/resources/assets/superbwarfare/lang/en_us.json index 058883d69..ced628ed4 100644 --- a/src/main/resources/assets/superbwarfare/lang/en_us.json +++ b/src/main/resources/assets/superbwarfare/lang/en_us.json @@ -41,6 +41,8 @@ "des.superbwarfare.tips.damage": "Damage: ", "des.superbwarfare.tips.level": "Level: ", + "des.superbwarfare.tips.bypass": "Armor Piercing: ", + "des.superbwarfare.tips.distance": "Drone Distance: ", "item.superbwarfare.vector_blueprint": "VECTOR Blueprint", "item.superbwarfare.m_60_blueprint": "M60 Blueprint", @@ -272,5 +274,12 @@ "des.superbwarfare.monitor.linked": "Connect!", "des.superbwarfare.monitor.monitor_already_linked": "This monitor has been connected!", "des.superbwarfare.monitor.already_linked": "This device has been connected!", - "des.superbwarfare.monitor.unlinked": "Disconnect!" + "des.superbwarfare.monitor.unlinked": "Disconnect!", + + "des.superbwarfare.drone.distance": "DISTANCE:", + "des.superbwarfare.drone.health": "HEALTH:", + "des.superbwarfare.drone.ammo": "AMMO:", + "des.superbwarfare.drone.range": "RANGE:", + "des.superbwarfare.drone.kamikaze": "KAMIKAZE", + "des.superbwarfare.drone.warning": "WARNING!" } \ No newline at end of file diff --git a/src/main/resources/assets/superbwarfare/lang/zh_cn.json b/src/main/resources/assets/superbwarfare/lang/zh_cn.json index c7ade6669..44a4ca6a0 100644 --- a/src/main/resources/assets/superbwarfare/lang/zh_cn.json +++ b/src/main/resources/assets/superbwarfare/lang/zh_cn.json @@ -41,6 +41,8 @@ "des.superbwarfare.tips.damage": "伤害: ", "des.superbwarfare.tips.level": "等级: ", + "des.superbwarfare.tips.bypass": "护甲穿透: ", + "des.superbwarfare.tips.distance": "无人机距离你: ", "item.superbwarfare.vector_blueprint": "短剑冲锋枪蓝图", "item.superbwarfare.m_60_blueprint": "M60通用机枪蓝图", @@ -272,5 +274,12 @@ "des.superbwarfare.monitor.linked": "连接成功!", "des.superbwarfare.monitor.monitor_already_linked": "这个遥控器已连接到一个设备!", "des.superbwarfare.monitor.already_linked": "这个设备已被连接!", - "des.superbwarfare.monitor.unlinked": "断开连接!" + "des.superbwarfare.monitor.unlinked": "断开连接!", + + "des.superbwarfare.drone.distance": "飞手距离:", + "des.superbwarfare.drone.health": "耐久值:", + "des.superbwarfare.drone.ammo": "弹药:", + "des.superbwarfare.drone.range": "测距:", + "des.superbwarfare.drone.kamikaze": "自爆模式", + "des.superbwarfare.drone.warning": "警告!" } \ No newline at end of file diff --git a/src/main/resources/data/minecraft/tags/damage_type/bypasses_effects.json b/src/main/resources/data/minecraft/tags/damage_type/bypasses_effects.json index ec40dfff4..f5febb66c 100644 --- a/src/main/resources/data/minecraft/tags/damage_type/bypasses_effects.json +++ b/src/main/resources/data/minecraft/tags/damage_type/bypasses_effects.json @@ -5,6 +5,7 @@ "superbwarfare:gunfire_headshot_absolute", "superbwarfare:arrow_in_knee_absolute", "superbwarfare:arrow_in_brain_absolute", - "superbwarfare:shock" + "superbwarfare:shock", + "superbwarfare:cannon_fire" ] } \ No newline at end of file diff --git a/src/main/resources/data/superbwarfare/guns/aa_12.json b/src/main/resources/data/superbwarfare/guns/aa_12.json index 837876936..07e910301 100644 --- a/src/main/resources/data/superbwarfare/guns/aa_12.json +++ b/src/main/resources/data/superbwarfare/guns/aa_12.json @@ -18,5 +18,5 @@ "burst_size": 1, "normal_reload_time": 64, "empty_reload_time": 85, - "BypassesArmor": 0.1 + "BypassesArmor": 0.05 } diff --git a/src/main/resources/data/superbwarfare/guns/abekiri.json b/src/main/resources/data/superbwarfare/guns/abekiri.json index 183966a0c..2cb2540f1 100644 --- a/src/main/resources/data/superbwarfare/guns/abekiri.json +++ b/src/main/resources/data/superbwarfare/guns/abekiri.json @@ -18,5 +18,5 @@ "burst_size": 1, "normal_reload_time": 66, "empty_reload_time": 83, - "BypassesArmor": 0 + "BypassesArmor": 0.01 } \ No newline at end of file diff --git a/src/main/resources/data/superbwarfare/guns/ak_47.json b/src/main/resources/data/superbwarfare/guns/ak_47.json index 7116e423d..9809bd34b 100644 --- a/src/main/resources/data/superbwarfare/guns/ak_47.json +++ b/src/main/resources/data/superbwarfare/guns/ak_47.json @@ -18,5 +18,5 @@ "burst_size": 1, "normal_reload_time": 54, "empty_reload_time": 69, - "BypassesArmor": 0.3 + "BypassesArmor": 0.2 } \ No newline at end of file diff --git a/src/main/resources/data/superbwarfare/guns/devotion.json b/src/main/resources/data/superbwarfare/guns/devotion.json index 03e42b710..f0a7d67fc 100644 --- a/src/main/resources/data/superbwarfare/guns/devotion.json +++ b/src/main/resources/data/superbwarfare/guns/devotion.json @@ -19,5 +19,5 @@ "burst_size": 1, "normal_reload_time": 73, "empty_reload_time": 95, - "BypassesArmor": 0.4 + "BypassesArmor": 0.25 } \ No newline at end of file diff --git a/src/main/resources/data/superbwarfare/guns/hk_416.json b/src/main/resources/data/superbwarfare/guns/hk_416.json index 9d0fb83ce..17da02abd 100644 --- a/src/main/resources/data/superbwarfare/guns/hk_416.json +++ b/src/main/resources/data/superbwarfare/guns/hk_416.json @@ -18,5 +18,5 @@ "burst_size": 1, "normal_reload_time": 56, "empty_reload_time": 64, - "BypassesArmor": 0.4 + "BypassesArmor": 0.25 } \ No newline at end of file diff --git a/src/main/resources/data/superbwarfare/guns/hunting_rifle.json b/src/main/resources/data/superbwarfare/guns/hunting_rifle.json index 21dee6e68..8832a52c1 100644 --- a/src/main/resources/data/superbwarfare/guns/hunting_rifle.json +++ b/src/main/resources/data/superbwarfare/guns/hunting_rifle.json @@ -16,5 +16,5 @@ "auto": 0, "burst_size": 1, "empty_reload_time": 64, - "BypassesArmor": 0.5 + "BypassesArmor": 0.7 } \ No newline at end of file diff --git a/src/main/resources/data/superbwarfare/guns/m_4.json b/src/main/resources/data/superbwarfare/guns/m_4.json index 9f83aefa7..5256c587d 100644 --- a/src/main/resources/data/superbwarfare/guns/m_4.json +++ b/src/main/resources/data/superbwarfare/guns/m_4.json @@ -18,5 +18,5 @@ "burst_size": 1, "normal_reload_time": 56, "empty_reload_time": 64, - "BypassesArmor": 0.4 + "BypassesArmor": 0.25 } \ No newline at end of file diff --git a/src/main/resources/data/superbwarfare/guns/m_60.json b/src/main/resources/data/superbwarfare/guns/m_60.json index d8d13c6e6..6c2381043 100644 --- a/src/main/resources/data/superbwarfare/guns/m_60.json +++ b/src/main/resources/data/superbwarfare/guns/m_60.json @@ -19,5 +19,5 @@ "burst_size": 1, "normal_reload_time": 114, "empty_reload_time": 133, - "BypassesArmor": 0.4 + "BypassesArmor": 0.25 } \ No newline at end of file diff --git a/src/main/resources/data/superbwarfare/guns/m_870.json b/src/main/resources/data/superbwarfare/guns/m_870.json index 4d41eaa12..1cb57e803 100644 --- a/src/main/resources/data/superbwarfare/guns/m_870.json +++ b/src/main/resources/data/superbwarfare/guns/m_870.json @@ -21,5 +21,5 @@ "prepare_load_time": 36, "iterative_time": 16, "finish_time": 12, - "BypassesArmor": 0.1 + "BypassesArmor": 0.05 } \ No newline at end of file diff --git a/src/main/resources/data/superbwarfare/guns/minigun.json b/src/main/resources/data/superbwarfare/guns/minigun.json index 91b8bf932..d3b7d847a 100644 --- a/src/main/resources/data/superbwarfare/guns/minigun.json +++ b/src/main/resources/data/superbwarfare/guns/minigun.json @@ -10,5 +10,5 @@ "weight": 2, "fire_mode": 2, "projectile_amount": 1, - "BypassesArmor": 0.35 + "BypassesArmor": 0.3 } \ No newline at end of file diff --git a/src/main/resources/data/superbwarfare/guns/mk_14.json b/src/main/resources/data/superbwarfare/guns/mk_14.json index 851d0cb93..2d3d30c43 100644 --- a/src/main/resources/data/superbwarfare/guns/mk_14.json +++ b/src/main/resources/data/superbwarfare/guns/mk_14.json @@ -21,5 +21,5 @@ "burst_size": 1, "normal_reload_time": 58, "empty_reload_time": 81, - "BypassesArmor": 0.55 + "BypassesArmor": 0.4 } \ No newline at end of file diff --git a/src/main/resources/data/superbwarfare/guns/rpg.json b/src/main/resources/data/superbwarfare/guns/rpg.json index 5bed5345e..a4a10bd09 100644 --- a/src/main/resources/data/superbwarfare/guns/rpg.json +++ b/src/main/resources/data/superbwarfare/guns/rpg.json @@ -13,5 +13,6 @@ "burst": 0, "auto": 0, "burst_size": 1, - "empty_reload_time": 100 + "empty_reload_time": 100, + "BypassesArmor": 1 } \ No newline at end of file diff --git a/src/main/resources/data/superbwarfare/guns/rpk.json b/src/main/resources/data/superbwarfare/guns/rpk.json index e3795d6e2..13e47a772 100644 --- a/src/main/resources/data/superbwarfare/guns/rpk.json +++ b/src/main/resources/data/superbwarfare/guns/rpk.json @@ -19,5 +19,5 @@ "burst_size": 1, "normal_reload_time": 73, "empty_reload_time": 95, - "BypassesArmor": 0.35 + "BypassesArmor": 0.23 } \ No newline at end of file diff --git a/src/main/resources/data/superbwarfare/guns/sentinel.json b/src/main/resources/data/superbwarfare/guns/sentinel.json index 0014d25fd..378fccae5 100644 --- a/src/main/resources/data/superbwarfare/guns/sentinel.json +++ b/src/main/resources/data/superbwarfare/guns/sentinel.json @@ -19,5 +19,5 @@ "burst_size": 1, "normal_reload_time": 59, "empty_reload_time": 89, - "BypassesArmor": 0.7 + "BypassesArmor": 0.8 } \ No newline at end of file diff --git a/src/main/resources/data/superbwarfare/guns/sks.json b/src/main/resources/data/superbwarfare/guns/sks.json index 100950582..0c188c6cb 100644 --- a/src/main/resources/data/superbwarfare/guns/sks.json +++ b/src/main/resources/data/superbwarfare/guns/sks.json @@ -18,5 +18,5 @@ "burst_size": 1, "normal_reload_time": 54, "empty_reload_time": 75, - "BypassesArmor": 0.35 + "BypassesArmor": 0.23 } \ No newline at end of file diff --git a/src/main/resources/data/superbwarfare/guns/svd.json b/src/main/resources/data/superbwarfare/guns/svd.json index bb5c4ff63..7ba5abfe0 100644 --- a/src/main/resources/data/superbwarfare/guns/svd.json +++ b/src/main/resources/data/superbwarfare/guns/svd.json @@ -18,5 +18,5 @@ "burst_size": 1, "normal_reload_time": 56, "empty_reload_time": 70, - "BypassesArmor": 0.6 + "BypassesArmor": 0.45 } \ No newline at end of file diff --git a/src/main/resources/data/superbwarfare/guns/trachelium.json b/src/main/resources/data/superbwarfare/guns/trachelium.json index 3d66e3cef..4b553abc3 100644 --- a/src/main/resources/data/superbwarfare/guns/trachelium.json +++ b/src/main/resources/data/superbwarfare/guns/trachelium.json @@ -17,5 +17,5 @@ "auto": 0, "burst_size": 1, "empty_reload_time": 65, - "BypassesArmor": 0.25 + "BypassesArmor": 0.2 } \ No newline at end of file