Example usage for net.minecraftforge.event.entity.living LivingHurtEvent setAmount

List of usage examples for net.minecraftforge.event.entity.living LivingHurtEvent setAmount

Introduction

In this page you can find the example usage for net.minecraftforge.event.entity.living LivingHurtEvent setAmount.

Prototype

public void setAmount(float amount) 

Source Link

Usage

From source file:com.lothrazar.cyclicmagic.item.ItemFangs.java

License:Open Source License

@SubscribeEvent
public void onAttack(LivingHurtEvent event) {
    //true source is player that was holding the fang item
    //immediate source is the entity. and we check the boolean flag to make sure it was one of these, not from illager or some other spawn reason
    if (event.getSource().getImmediateSource() instanceof EntityEvokerFangs
            && UtilNBT.getEntityBoolean(event.getSource().getImmediateSource(), NBT_FANG_FROMPLAYER)) {
        event.setAmount(event.getAmount() * 2);
    }//from  w w  w  .  ja va2 s  .com
}

From source file:com.lothrazar.cyclicmagic.potion.effect.PotionEnder.java

License:Open Source License

@SubscribeEvent
public void onHurt(LivingHurtEvent event) {
    if (event.getEntityLiving().isPotionActive(this) && event.getSource() == DamageSource.IN_WALL) {
        event.setAmount(0);
    }/*from  w  ww.  ja v  a2  s  . c  o m*/
}

From source file:de.canitzp.rarmor.module.protection.ItemModuleProtection.java

@SubscribeEvent
public void onHurt(LivingHurtEvent event) {
    EntityLivingBase entity = event.getEntityLiving();
    if (!entity.getEntityWorld().isRemote && entity instanceof EntityPlayer) {
        EntityPlayer player = (EntityPlayer) entity;
        IRarmorData data = RarmorAPI.methodHandler.getDataForChestplate(player, false);
        if (data != null) {
            float damageReduct = 0F;

            for (ActiveRarmorModule module : data.getCurrentModules()) {
                if (module instanceof ActiveModuleProtection) {
                    damageReduct = ((ActiveModuleProtection) module).getDamageReduction();
                    break;
                }/*from  ww w .ja  v  a  2  s. c o  m*/
            }

            if (damageReduct > 0F) {
                int neededEnergy = (int) (damageReduct * 200);

                if (data.getEnergyStored() >= neededEnergy) {
                    event.setAmount(Math.max(0, event.getAmount() / damageReduct));
                    data.extractEnergy(neededEnergy, false);
                }
            }
        }
    }
}

From source file:de.sanandrew.mods.turretmod.event.DamageEventHandler.java

License:Creative Commons License

@SubscribeEvent
public void onDamage(LivingHurtEvent event) {
    if (event.getEntity() instanceof EntityTurret) {
        IUpgradeProcessor proc = ((EntityTurret) event.getEntity()).getUpgradeProcessor();
        if (proc.hasUpgrade(Upgrades.SHIELD_PERSONAL)) {
            ShieldPersonal upgInst = proc.getUpgradeInstance(Upgrades.SHIELD_PERSONAL);
            float restDmg = upgInst.damage(event.getAmount());
            if (restDmg <= 0.0F) {
                event.setCanceled(true);
            } else {
                event.setAmount(restDmg);
            }/*from  w ww.j  a va2 s.c  o m*/
            proc.syncUpgrade(Upgrades.SHIELD_PERSONAL);
        }
    }
}

From source file:hellfirepvp.astralsorcery.common.event.listener.EventHandlerEntity.java

License:Open Source License

@SubscribeEvent(priority = EventPriority.LOW)
public void onAttack(LivingHurtEvent event) {
    if (event.getEntity().getEntityWorld().isRemote)
        return;//w  w w . j a  va  2  s . c  om

    DamageSource source = event.getSource();
    if (source.getTrueSource() != null) {
        EntityLivingBase entitySource = null;
        if (source.getTrueSource() instanceof EntityLivingBase) {
            entitySource = (EntityLivingBase) source.getTrueSource();
        } else if (source.getTrueSource() instanceof EntityArrow) {
            Entity shooter = ((EntityArrow) source.getTrueSource()).shootingEntity;
            if (shooter != null && shooter instanceof EntityLivingBase) {
                entitySource = (EntityLivingBase) shooter;
            }
        }
        if (entitySource != null) {
            WandAugment foundAugment = null;
            ItemStack stack = entitySource.getHeldItemMainhand();
            if (!stack.isEmpty() && stack.getItem() instanceof ItemWand) {
                foundAugment = ItemWand.getAugment(stack);
            }
            stack = entitySource.getHeldItemOffhand();
            if (foundAugment == null && !stack.isEmpty() && stack.getItem() instanceof ItemWand) {
                foundAugment = ItemWand.getAugment(stack);
            }
            if (foundAugment != null && foundAugment.equals(WandAugment.DISCIDIA)) {
                EntityAttackStack attack = attackStack.get(entitySource.getEntityId());
                if (attack == null) {
                    attack = new EntityAttackStack();
                    attackStack.put(entitySource.getEntityId(), attack);
                }
                EntityLivingBase entity = event.getEntityLiving();
                float multiplier = attack.getAndUpdateMultipler(entity);
                event.setAmount(event.getAmount() * (1F + multiplier));
                PktParticleEvent ev = new PktParticleEvent(
                        PktParticleEvent.ParticleEventType.DISCIDIA_ATTACK_STACK, entity.posX, entity.posY,
                        entity.posZ);
                ev.setAdditionalData(multiplier);
                PacketChannel.CHANNEL.sendToAllAround(ev, PacketChannel.pointFromPos(event.getEntity().world,
                        event.getEntity().getPosition(), 64));
            }
        }
    }
}

From source file:hellfirepvp.astralsorcery.common.event.listener.EventHandlerEntity.java

License:Open Source License

@SubscribeEvent
public void onDamage(LivingHurtEvent event) {
    EntityLivingBase living = event.getEntityLiving();
    if (living == null || living.getEntityWorld().isRemote)
        return;//  www  .j  a v a  2 s .c om

    if (!living.isDead && living instanceof EntityPlayer) {
        if (invulnerabilityCooldown.contains((EntityPlayer) living)) {
            event.setCanceled(true);
            return;
        }
    }

    DamageSource source = event.getSource();
    lblIn: if (source.getTrueSource() != null) {
        EntityPlayer p;
        if (source.getTrueSource() instanceof EntityPlayer) {
            p = (EntityPlayer) source.getTrueSource();
        } else if (source.getTrueSource() instanceof EntityArrow) {
            Entity shooter = ((EntityArrow) source.getTrueSource()).shootingEntity;
            if (shooter != null && shooter instanceof EntityPlayer) {
                p = (EntityPlayer) shooter;
            } else {
                break lblIn;
            }
        } else {
            break lblIn;
        }
        PlayerProgress prog = ResearchManager.getProgress(p);
        if (prog != null) {
            float dmg = event.getAmount();
            Map<ConstellationPerk, Integer> perks = prog.getAppliedPerks();
            for (ConstellationPerk perk : perks.keySet()) {
                if (!prog.isPerkActive(perk))
                    continue;
                if (perk.mayExecute(ConstellationPerk.Target.ENTITY_ATTACK)) {
                    dmg = perk.onEntityAttack(p, event.getEntityLiving(), dmg);
                }
            }
            event.setAmount(dmg);
        }
    }
    EntityLivingBase entity = event.getEntityLiving();
    if (entity != null) {
        if (entity instanceof EntityPlayer) {
            EntityPlayer hurt = (EntityPlayer) entity;
            PlayerProgress prog = ResearchManager.getProgress(hurt);
            if (prog != null) {
                float dmg = event.getAmount();
                Map<ConstellationPerk, Integer> perks = prog.getAppliedPerks();
                for (ConstellationPerk perk : perks.keySet()) {
                    if (!prog.isPerkActive(perk))
                        continue;
                    if (perk.mayExecute(ConstellationPerk.Target.ENTITY_HURT)) {
                        dmg = perk.onEntityHurt(hurt, source, dmg);
                    }
                }
                event.setAmount(dmg);
            }
        }

        ItemStack active = entity.getActiveItemStack();
        if (!active.isEmpty() && active.getItem() instanceof ItemWand) {
            WandAugment wa = ItemWand.getAugment(active);
            if (wa != null && wa.equals(WandAugment.ARMARA)) {
                PotionEffect potion = new PotionEffect(MobEffects.RESISTANCE, 100, 0);
                if (entity.isPotionApplicable(potion)) {
                    entity.addPotionEffect(potion);
                }
                potion = new PotionEffect(MobEffects.ABSORPTION, 100, 1);
                if (entity.isPotionApplicable(potion)) {
                    entity.addPotionEffect(potion);
                }
            }
        }
    }
}

From source file:hellfirepvp.astralsorcery.common.event.listener.EventHandlerServer.java

License:Open Source License

@SubscribeEvent
public void onDamage(LivingHurtEvent event) {
    EntityLivingBase living = event.getEntityLiving();
    if (living == null || living.getEntityWorld().isRemote)
        return;//from  ww  w .  jav  a  2  s.co m

    if (!living.isDead && living instanceof EntityPlayer) {
        if (invulnerabilityCooldown.contains((EntityPlayer) living)) {
            event.setCanceled(true);
            return;
        }
    }

    DamageSource source = event.getSource();
    lblIn: if (source.getSourceOfDamage() != null) {
        EntityPlayer p;
        if (source.getSourceOfDamage() instanceof EntityPlayer) {
            p = (EntityPlayer) source.getSourceOfDamage();
        } else if (source.getSourceOfDamage() instanceof EntityArrow) {
            Entity shooter = ((EntityArrow) source.getSourceOfDamage()).shootingEntity;
            if (shooter != null && shooter instanceof EntityPlayer) {
                p = (EntityPlayer) shooter;
            } else {
                break lblIn;
            }
        } else {
            break lblIn;
        }
        PlayerProgress prog = ResearchManager.getProgress(p);
        if (prog != null) {
            float dmg = event.getAmount();
            Map<ConstellationPerk, Integer> perks = prog.getAppliedPerks();
            for (ConstellationPerk perk : perks.keySet()) {
                if (!prog.isPerkActive(perk))
                    continue;
                if (perk.mayExecute(ConstellationPerk.Target.ENTITY_ATTACK)) {
                    dmg = perk.onEntityAttack(p, event.getEntityLiving(), dmg);
                }
            }
            event.setAmount(dmg);
        }
    }
    if (event.getEntityLiving() != null && event.getEntityLiving() instanceof EntityPlayer) {
        EntityPlayer hurt = (EntityPlayer) event.getEntityLiving();
        PlayerProgress prog = ResearchManager.getProgress(hurt);
        if (prog != null) {
            float dmg = event.getAmount();
            Map<ConstellationPerk, Integer> perks = prog.getAppliedPerks();
            for (ConstellationPerk perk : perks.keySet()) {
                if (!prog.isPerkActive(perk))
                    continue;
                if (perk.mayExecute(ConstellationPerk.Target.ENTITY_HURT)) {
                    dmg = perk.onEntityHurt(hurt, source, dmg);
                }
            }
            event.setAmount(dmg);
        }
    }
}

From source file:md.zazpro.mod.common.baubles.Ring_Core.java

License:Open Source License

@SubscribeEvent(priority = EventPriority.LOWEST)
public void onHurt(LivingHurtEvent event) {
    if (event.getSource().getEntity() instanceof EntityPlayer) {
        EntityPlayer player = (EntityPlayer) event.getSource().getEntity();
        ItemStack itemStack1 = BaublesApi.getBaublesHandler(player).getStackInSlot(1);
        ItemStack itemStack2 = BaublesApi.getBaublesHandler(player).getStackInSlot(2);
        if (RingUtils.isLegali(itemStack1, itemStack2, "Power")) {
            ItemStack itemStack3 = RingUtils.getStackFromBoolean(itemStack1, itemStack2, "Power");
            if (this.getBSUStored(itemStack3) >= ConfigurationHandler.Ring_POWER) {
                this.extractBSU(itemStack3, ConfigurationHandler.Ring_POWER, false);
                float power = (float) RingUtils.getIntFromBauble(itemStack1, itemStack2, "Power");
                float amount = event.getAmount() + power;
                event.setAmount(amount);
            }//from www  .j a v  a2 s. c o  m
        }
    }
}

From source file:vazkii.botania.common.item.equipment.bauble.ItemBalanceCloak.java

License:Open Source License

public boolean effectOnDamage(LivingHurtEvent event, EntityPlayer player, ItemStack stack) {
    if (!event.getSource().isMagicDamage()) {
        event.setAmount(event.getAmount() / 2);

        if (event.getSource().getEntity() != null)
            event.getSource().getEntity()
                    .attackEntityFrom(DamageSource.causeIndirectMagicDamage(player, player), event.getAmount());

        if (event.getAmount() > player.getHealth())
            event.setAmount(player.getHealth() - 1);

        player.worldObj.playSound(null, player.posX, player.posY, player.posZ, BotaniaSoundEvents.holyCloak,
                SoundCategory.PLAYERS, 1F, 1F);
        for (int i = 0; i < 30; i++) {
            double x = player.posX + Math.random() * player.width * 2 - player.width;
            double y = player.posY + Math.random() * player.height;
            double z = player.posZ + Math.random() * player.width * 2 - player.width;
            boolean green = Math.random() > 0.5;
            Botania.proxy.sparkleFX(x, y, z, 0.3F, green ? 1F : 0.3F, green ? 0.3F : 1F,
                    0.8F + (float) Math.random() * 0.4F, 3);
        }/*  w  ww  .j ava2s  .  co  m*/
        return true;
    }

    return false;
}

From source file:vazkii.quark.vanity.feature.WitchHat.java

License:Creative Commons License

@SubscribeEvent
public void onDamage(LivingHurtEvent event) {
    if (halveDamage && event.getSource().getTrueSource() != null
            && event.getSource().getTrueSource() instanceof EntityWitch) {
        ItemStack hat = event.getEntityLiving().getItemStackFromSlot(EntityEquipmentSlot.HEAD);
        if (!hat.isEmpty() && hat.getItem() == witch_hat)
            event.setAmount(event.getAmount() / 2);
    }/*from  ww  w  . ja v  a2s .  c  om*/
}