From 43afba3b4ca8e785b202800733046f20f3107f5c Mon Sep 17 00:00:00 2001 From: 17146 <1714673995@qq.com> Date: Fri, 9 May 2025 22:39:30 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BB=A7=E7=BB=AD=E4=BF=AE=E6=94=B9=E9=83=A8?= =?UTF-8?q?=E5=88=86tooltip=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../client/tooltip/ClientLauncherImageTooltip.java | 11 ++++++++--- .../tooltip/ClientSecondaryCataclysmImageTooltip.java | 11 ++++++++--- .../superbwarfare/perk/ammo/MicroMissile.java | 5 +++++ 3 files changed, 21 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/atsuishio/superbwarfare/client/tooltip/ClientLauncherImageTooltip.java b/src/main/java/com/atsuishio/superbwarfare/client/tooltip/ClientLauncherImageTooltip.java index 0c94ca360..ef5748f6c 100644 --- a/src/main/java/com/atsuishio/superbwarfare/client/tooltip/ClientLauncherImageTooltip.java +++ b/src/main/java/com/atsuishio/superbwarfare/client/tooltip/ClientLauncherImageTooltip.java @@ -1,7 +1,7 @@ package com.atsuishio.superbwarfare.client.tooltip; import com.atsuishio.superbwarfare.client.tooltip.component.GunImageComponent; -import com.atsuishio.superbwarfare.init.ModPerks; +import com.atsuishio.superbwarfare.perk.Perk; import com.atsuishio.superbwarfare.tools.FormatTool; import net.minecraft.ChatFormatting; import net.minecraft.network.chat.Component; @@ -15,8 +15,13 @@ public class ClientLauncherImageTooltip extends ClientGunImageTooltip { @Override protected Component getDamageComponent() { double damage = data.damage(); - int perkLevel = data.perk.getLevel(ModPerks.MICRO_MISSILE); - if (perkLevel > 0) damage *= 1.1f + perkLevel * 0.1f; + + for (var type : Perk.Type.values()) { + var instance = data.perk.getInstance(type); + if (instance != null) { + damage = instance.perk().getDisplayDamage(damage, data, instance); + } + } double explosionDamage = data.explosionDamage(); diff --git a/src/main/java/com/atsuishio/superbwarfare/client/tooltip/ClientSecondaryCataclysmImageTooltip.java b/src/main/java/com/atsuishio/superbwarfare/client/tooltip/ClientSecondaryCataclysmImageTooltip.java index 4febc30e0..2ac0c6549 100644 --- a/src/main/java/com/atsuishio/superbwarfare/client/tooltip/ClientSecondaryCataclysmImageTooltip.java +++ b/src/main/java/com/atsuishio/superbwarfare/client/tooltip/ClientSecondaryCataclysmImageTooltip.java @@ -1,7 +1,7 @@ package com.atsuishio.superbwarfare.client.tooltip; import com.atsuishio.superbwarfare.client.tooltip.component.GunImageComponent; -import com.atsuishio.superbwarfare.init.ModPerks; +import com.atsuishio.superbwarfare.perk.Perk; import com.atsuishio.superbwarfare.tools.FormatTool; import net.minecraft.ChatFormatting; import net.minecraft.network.chat.Component; @@ -15,8 +15,13 @@ public class ClientSecondaryCataclysmImageTooltip extends ClientEnergyImageToolt @Override protected Component getDamageComponent() { double damage = data.damage(); - int perkLevel = data.perk.getLevel(ModPerks.MICRO_MISSILE); - if (perkLevel > 0) damage *= 1.1f + perkLevel * 0.1f; + + for (var type : Perk.Type.values()) { + var instance = data.perk.getInstance(type); + if (instance != null) { + damage = instance.perk().getDisplayDamage(damage, data, instance); + } + } double explosionDamage = data.explosionDamage(); diff --git a/src/main/java/com/atsuishio/superbwarfare/perk/ammo/MicroMissile.java b/src/main/java/com/atsuishio/superbwarfare/perk/ammo/MicroMissile.java index 3f40a8b42..e0f8d93bc 100644 --- a/src/main/java/com/atsuishio/superbwarfare/perk/ammo/MicroMissile.java +++ b/src/main/java/com/atsuishio/superbwarfare/perk/ammo/MicroMissile.java @@ -27,4 +27,9 @@ public class MicroMissile extends AmmoPerk { projectile.setExplosionDamage(damage); } } + + @Override + public double getDisplayDamage(double damage, GunData data, PerkInstance instance) { + return damage * (1.1f + instance.level() * 0.1f); + } }