package fyresmodjam.blessings.marks; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraftforge.event.entity.living.LivingHurtEvent; import net.minecraftforge.fml.common.gameevent.TickEvent.ServerTickEvent; public class VampirismMark extends Mark { @Override public String name() { return "Vampirism"; } @Override public String description() { return "BENEFIT - Heal a substantial amount of the damage done to enemies\nDRAWBACK - Greatly weakened during the day and ignited in direct sunlight"; } @Override public float onIncomingDamage(LivingHurtEvent event, float damageMultiplier) { if (event.getEntity().getBrightness() > 0.5F && event .getEntity().world.canBlockSeeSky(event .getEntity() .getPosition())) { return damageMultiplier + 0.4F; } 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.25F); boolean seeTheSky = trueSource.world .canBlockSeeSky(trueSource .getPosition()); if (trueSource.getBrightness() > 0.5F && seeTheSky) { return damageMultiplier - 0.4F; } } return damageMultiplier; } @Override public void commonTick(ServerTickEvent stev, EntityPlayer play) { boolean seeTheSky = play.world .canBlockSeeSky(play.getPosition()); if (play.getBrightness() > 0.5f && seeTheSky && play.ticksExisted % 20 == 0) { play.setFire(5); } } }