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/standard/VampireBlessing.java | |
Diffstat (limited to 'src/main/java/fyresmodjam/blessings/standard/VampireBlessing.java')
| -rw-r--r-- | src/main/java/fyresmodjam/blessings/standard/VampireBlessing.java | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/src/main/java/fyresmodjam/blessings/standard/VampireBlessing.java b/src/main/java/fyresmodjam/blessings/standard/VampireBlessing.java new file mode 100644 index 0000000..6594eab --- /dev/null +++ b/src/main/java/fyresmodjam/blessings/standard/VampireBlessing.java @@ -0,0 +1,55 @@ +package fyresmodjam.blessings.standard; + +import fyresmodjam.blessings.Blessing; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraftforge.event.entity.living.LivingHurtEvent; + +public class VampireBlessing extends Blessing { + + @Override + public String name() { + return "Vampire"; + } + + @Override + public String description() { + return "\tBenefit: Heal a small percentage of damage dealt to enemies\n\tDrawback: Weakened during the day"; + } + + @Override + public float onIncomingDamage(LivingHurtEvent event, + float damageMultiplier) { + Entity ent = event.getEntity(); + if (ent.getBrightness() > 0.5F && ent.world + .canBlockSeeSky(ent.getPosition())) { + return damageMultiplier + 0.2F; + } + + return damageMultiplier; + } + + @Override + public float onOutgoingDamage(LivingHurtEvent event, + float damageMultiplier) { + Entity trueSource = event.getSource().getTrueSource(); + if (trueSource instanceof EntityLivingBase) { + + ((EntityLivingBase) trueSource) + .heal((event.getAmount() + * damageMultiplier) + * 0.07F); + + boolean seeTheSky = trueSource.world + .canBlockSeeSky(trueSource + .getPosition()); + + if (trueSource.getBrightness() > 0.5F + && seeTheSky) { + return damageMultiplier - 0.2F; + } + } + + return damageMultiplier; + } +} |
