diff options
| author | Benjamin Culkin <scorpress@gmail.com> | 2024-08-12 17:08:54 -0400 |
|---|---|---|
| committer | Benjamin Culkin <scorpress@gmail.com> | 2024-08-12 17:08:54 -0400 |
| commit | b8b41aa5846dae5a9bbf4fee82020f1d9e2b2a48 (patch) | |
| tree | 9bce3e85926cfb68b3ebbc5d89f13ce10736e32d /src/main/java/fyresmodjam/blessings/marks/RetaliationMark.java | |
Diffstat (limited to 'src/main/java/fyresmodjam/blessings/marks/RetaliationMark.java')
| -rw-r--r-- | src/main/java/fyresmodjam/blessings/marks/RetaliationMark.java | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/src/main/java/fyresmodjam/blessings/marks/RetaliationMark.java b/src/main/java/fyresmodjam/blessings/marks/RetaliationMark.java new file mode 100644 index 0000000..a0537b2 --- /dev/null +++ b/src/main/java/fyresmodjam/blessings/marks/RetaliationMark.java @@ -0,0 +1,57 @@ +package fyresmodjam.blessings.marks; + +import fyresmodjam.ModjamMod; +import fyresmodjam.misc.DamageSources; +import net.minecraftforge.event.entity.living.LivingHurtEvent; + +public class RetaliationMark extends Mark { + + private static final double RETALIATION_CHANCE = 0.05; + + @Override + public String name() { + return "Retaliation"; + } + + @Override + public String description() { + return "BENEFIT - Have a chance to reflect attacks\nDRAWBACK - Have a chance for your attacks to be reflected"; + } + + @Override + public float onOutgoingDamage(LivingHurtEvent event, + float damageMultiplier) { + if (!event.getSource().damageType.equals("retaliation")) { + // Don't retaliate for retaliation + if (ModjamMod.r.nextDouble() < RETALIATION_CHANCE) { + event.getEntityLiving().attackEntityFrom( + DamageSources.retaliation, + Math.max(0.5f, event + .getAmount() + * damageMultiplier)); + + event.setCanceled(true); + } + } + + return damageMultiplier; + } + + @Override + public float onIncomingDamage(LivingHurtEvent event, + float damageMultiplier) { + if (!event.getSource().damageType.equals("retaliation")) { + // Don't retaliate for retaliation + if (ModjamMod.r.nextDouble() < RETALIATION_CHANCE) { + event.getEntityLiving().attackEntityFrom( + DamageSources.retaliation, + Math.max(0.5f, event.getAmount() + * damageMultiplier)); + + event.setCanceled(true); + } + } + + return damageMultiplier; + } +} |
