From b8b41aa5846dae5a9bbf4fee82020f1d9e2b2a48 Mon Sep 17 00:00:00 2001 From: Benjamin Culkin Date: Mon, 12 Aug 2024 17:08:54 -0400 Subject: Initial commit --- .../blessings/standard/PorcupineBlessing.java | 45 ++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 src/main/java/fyresmodjam/blessings/standard/PorcupineBlessing.java (limited to 'src/main/java/fyresmodjam/blessings/standard/PorcupineBlessing.java') diff --git a/src/main/java/fyresmodjam/blessings/standard/PorcupineBlessing.java b/src/main/java/fyresmodjam/blessings/standard/PorcupineBlessing.java new file mode 100644 index 0000000..a46c3d0 --- /dev/null +++ b/src/main/java/fyresmodjam/blessings/standard/PorcupineBlessing.java @@ -0,0 +1,45 @@ +package fyresmodjam.blessings.standard; + +import fyresmodjam.blessings.Blessing; +import fyresmodjam.misc.DamageSources; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.util.DamageSource; +import net.minecraftforge.event.entity.living.LivingHurtEvent; + +public class PorcupineBlessing extends Blessing { + + @Override + public String name() { + return "Porcupine"; + } + + @Override + public String description() { + return "Deal retaliation damage to melee attackers"; + } + + @Override + public float onIncomingDamage(LivingHurtEvent event, + float damageMultiplier) { + Entity trueSource = event.getSource().getTrueSource(); + + boolean isMeleeDamage = event.getSource().damageType + .equals("mob") + || event.getSource().getDamageType() + .equals("player"); + + if (trueSource != null + && trueSource instanceof EntityLivingBase + && !event.getSource().isProjectile() + && isMeleeDamage) { + DamageSource damage = DamageSources.retaliation; + + ((EntityLivingBase) trueSource) + .attackEntityFrom(damage, + event.getAmount() * 0.07F); + } + + return damageMultiplier; + } +} -- cgit v1.2.3