@Override public boolean hitEntity(final ItemStack stack, final EntityLivingBase target, @NotNull final EntityLivingBase attacker) { if (attacker instanceof EntityPlayer && target instanceof AbstractEntityBarbarian) { target.addPotionEffect(new PotionEffect(LEVITATION_EFFECT, LEVITATION_EFFECT_DURATION, LEVITATION_EFFECT_MULTIPLIER)); } return super.hitEntity(stack, target, attacker); }
@Override public boolean hitEntity(@Nonnull ItemStack stack, @Nonnull EntityLivingBase entity, @Nonnull EntityLivingBase playerEntity) { if (playerEntity instanceof EntityPlayer) { EntityPlayer player = (EntityPlayer) playerEntity; // Durability damage EnergyUpgradeHolder eu = EnergyUpgradeManager.loadFromItem(stack); if (eu != null && eu.isAbsorbDamageWithPower() && eu.getEnergy() > 0) { eu.extractEnergy(getPowerPerDamagePoint(stack), false); } else { super.hitEntity(stack, entity, playerEntity); } // sword hit if (eu != null) { eu.writeToItem(); if (eu.getEnergy() >= DarkSteelConfig.darkSteelSwordPowerUsePerHit.get()) { extractInternal(player.getHeldItemMainhand(), DarkSteelConfig.darkSteelSwordPowerUsePerHit); entity.getEntityData().setBoolean(SwordHandler.HIT_BY_DARK_STEEL_SWORD, true); } } } return true; }
@Override public boolean hitEntity(ItemStack stack, EntityLivingBase target, EntityLivingBase attacker) { if (this == ModItems.silver_sword) { if (target.getCreatureAttribute() == EnumCreatureAttribute.UNDEAD) { target.attackEntityFrom(DamageSource.MAGIC, 2); } } if (this.toolMaterial == ModItems.myrmexChitin) { if (target.getCreatureAttribute() != EnumCreatureAttribute.ARTHROPOD) { target.attackEntityFrom(DamageSource.GENERIC, 4); } if (target instanceof EntityDeathWorm) { target.attackEntityFrom(DamageSource.GENERIC, 4); } } if (this == ModItems.myrmex_desert_sword_venom || this == ModItems.myrmex_jungle_sword_venom) { target.addPotionEffect(new PotionEffect(MobEffects.POISON, 200, 2)); } return super.hitEntity(stack, target, attacker); }
@Override public boolean hitEntity(ItemStack stack, EntityLivingBase target, EntityLivingBase attacker) { if (super.hitEntity(stack, target, attacker)) { if (attacker instanceof EntityPlayer) { EntityPlayer attackerPlayer = (EntityPlayer) attacker; this.recalculatePowers(stack, attackerPlayer.getEntityWorld(), attackerPlayer); EnumDemonWillType type = this.getCurrentType(stack); double will = PlayerDemonWillHandler.getTotalDemonWill(type, attackerPlayer); int willBracket = this.getLevel(stack, will); applyEffectToEntity(type, willBracket, target, attackerPlayer); ItemStack offStack = attackerPlayer.getItemStackFromSlot(EntityEquipmentSlot.OFFHAND); if (offStack.getItem() instanceof ISentientSwordEffectProvider) { ISentientSwordEffectProvider provider = (ISentientSwordEffectProvider) offStack.getItem(); if (provider.providesEffectForWill(type)) { provider.applyOnHitEffect(type, stack, offStack, attacker, target); } } } return true; } return false; }
@Override public boolean hitEntity(ItemStack stack, EntityLivingBase target, EntityLivingBase attacker) { if (this == ModItems.dragonbone_sword_fire) { if (target instanceof EntityIceDragon) { target.attackEntityFrom(DamageSource.IN_FIRE, 13.5F); } target.setFire(5); target.knockBack(target, 1F, attacker.posX - target.posX, attacker.posZ - target.posZ); } if (this == ModItems.dragonbone_sword_ice) { if (target instanceof EntityFireDragon) { target.attackEntityFrom(DamageSource.DROWN, 13.5F); } FrozenEntityProperties frozenProps = EntityPropertiesHandler.INSTANCE.getProperties(target, FrozenEntityProperties.class); frozenProps.setFrozenFor(200); target.addPotionEffect(new PotionEffect(MobEffects.SLOWNESS, 100, 2)); target.addPotionEffect(new PotionEffect(MobEffects.MINING_FATIGUE, 100, 2)); target.knockBack(target, 1F, attacker.posX - target.posX, attacker.posZ - target.posZ); } return super.hitEntity(stack, target, attacker); }