本文整理汇总了Java中net.minecraft.entity.EntityLivingBase.attackEntityFrom方法的典型用法代码示例。如果您正苦于以下问题:Java EntityLivingBase.attackEntityFrom方法的具体用法?Java EntityLivingBase.attackEntityFrom怎么用?Java EntityLivingBase.attackEntityFrom使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类net.minecraft.entity.EntityLivingBase
的用法示例。
在下文中一共展示了EntityLivingBase.attackEntityFrom方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: attackEntityFrom
import net.minecraft.entity.EntityLivingBase; //导入方法依赖的package包/类
/**
* Called when the entity is attacked.
*/
public boolean attackEntityFrom(DamageSource source, float amount)
{
if (!this.func_175472_n() && !source.isMagicDamage() && source.getSourceOfDamage() instanceof EntityLivingBase)
{
EntityLivingBase entitylivingbase = (EntityLivingBase)source.getSourceOfDamage();
if (!source.isExplosion())
{
entitylivingbase.attackEntityFrom(DamageSource.causeThornsDamage(this), 2.0F);
entitylivingbase.playSound("damage.thorns", 0.5F, 1.0F);
}
}
this.wander.makeUpdate();
return super.attackEntityFrom(source, amount);
}
示例2: onExecutionTick
import net.minecraft.entity.EntityLivingBase; //导入方法依赖的package包/类
@Override
public void onExecutionTick(EntityPlayer player, int progress)
{
player.world.playSound(player, player.getPosition(), SoundEvents.ENTITY_PLAYER_ATTACK_NODAMAGE, SoundCategory.PLAYERS, 1, 2F);
Vec3d look = player.getLookVec().scale(3);
Vec3d pos = player.getPositionVector();
List<EntityLivingBase> targets = Helpers.rayTraceEntities(player.world, pos.addVector(0, player.getEyeHeight(), 0), look, Optional.of(e -> e != player), EntityLivingBase.class);
EntityLivingBase assumedToBeLookedAt = Helpers.getClosest(targets, player);
if (assumedToBeLookedAt != null)
{
assumedToBeLookedAt.hurtResistantTime = 0;
assumedToBeLookedAt.attackEntityFrom(DamageSource.causePlayerDamage(player), Math.max(1, (float) player.getEntityAttribute(SharedMonsterAttributes.ATTACK_DAMAGE).getAttributeValue() / 10));
player.world.playSound(player, player.getPosition(), SoundEvents.ENTITY_PLAYER_ATTACK_NODAMAGE, SoundCategory.PLAYERS, 1, 0.1F);
Vec3d targetPos = assumedToBeLookedAt.getPositionVector();
player.world.spawnParticle(EnumParticleTypes.CRIT, targetPos.x + player.world.rand.nextDouble() / 2 - player.world.rand.nextDouble() / 2, targetPos.y + assumedToBeLookedAt.getEyeHeight() + player.world.rand.nextDouble() / 2 - player.world.rand.nextDouble() / 2, targetPos.z + player.world.rand.nextDouble() / 2 - player.world.rand.nextDouble() / 2, 0, 0, 0);
if (!player.world.isRemote)
{
ItemStack is = player.getHeldItemMainhand().isEmpty() ? player.getHeldItemOffhand() : player.getHeldItemMainhand();
is.damageItem(1, player);
}
}
}
示例3: activateSkill
import net.minecraft.entity.EntityLivingBase; //导入方法依赖的package包/类
@Override
public int activateSkill(IWeaponSkillInfo info, EntityLivingBase attacker, ItemStack item, DamageSource source, EntityLivingBase opponent) {
//If you don't know about Earthbound, we can't be friends. Sorry, I don't make the rules.
DamageSource smaaaaaaash = new EntityDamageSource("weaponskill.smash", attacker);
opponent.attackEntityFrom(smaaaaaaash, 4f);
opponent.addPotionEffect( new PotionEffect(Potion.getPotionFromResourceLocation("minecraft:blindness"), 20*3, 2 ));
//Thermionics.LOG.info("SMAAAAAAASH WeaponSkill activated against entity {} at {},{},{}", opponent, opponent.posX, opponent.posY, opponent.posZ);
if (opponent instanceof EntityMob) {
EntityMob monster = (EntityMob)opponent;
monster.setAttackTarget(null);
monster.setRevengeTarget(null);
}
if (!attacker.world.isRemote) {
//Serverside, queue the effect
SpawnParticleEmitterMessage fx = new SpawnParticleEmitterMessage(Thermionics.CONTEXT, EnumWeaponSkill.SMAAAAAAASH, opponent);
fx.sendToAllWatching(opponent);
}
return 20*5;
}
示例4: affectEntity
import net.minecraft.entity.EntityLivingBase; //导入方法依赖的package包/类
public void affectEntity(Entity p_180793_1_, Entity p_180793_2_, EntityLivingBase entityLivingBaseIn, int p_180793_4_, double p_180793_5_)
{
if ((this.id != heal.id || entityLivingBaseIn.isEntityUndead()) && (this.id != harm.id || !entityLivingBaseIn.isEntityUndead()))
{
if (this.id == harm.id && !entityLivingBaseIn.isEntityUndead() || this.id == heal.id && entityLivingBaseIn.isEntityUndead())
{
int j = (int)(p_180793_5_ * (double)(6 << p_180793_4_) + 0.5D);
if (p_180793_1_ == null)
{
entityLivingBaseIn.attackEntityFrom(DamageSource.magic, (float)j);
}
else
{
entityLivingBaseIn.attackEntityFrom(DamageSource.causeIndirectMagicDamage(p_180793_1_, p_180793_2_), (float)j);
}
}
}
else
{
int i = (int)(p_180793_5_ * (double)(4 << p_180793_4_) + 0.5D);
entityLivingBaseIn.heal((float)i);
}
}
示例5: attackEntityFrom
import net.minecraft.entity.EntityLivingBase; //导入方法依赖的package包/类
/**
* Called when the entity is attacked.
*/
public boolean attackEntityFrom(DamageSource source, float amount)
{
if (!this.isMoving() && !source.isMagicDamage() && source.getSourceOfDamage() instanceof EntityLivingBase)
{
EntityLivingBase entitylivingbase = (EntityLivingBase)source.getSourceOfDamage();
if (!source.isExplosion())
{
entitylivingbase.attackEntityFrom(DamageSource.causeThornsDamage(this), 2.0F);
}
}
if (this.wander != null)
{
this.wander.makeUpdate();
}
return super.attackEntityFrom(source, amount);
}
示例6: affectEntity
import net.minecraft.entity.EntityLivingBase; //导入方法依赖的package包/类
public void affectEntity(@Nullable Entity source, @Nullable Entity indirectSource, EntityLivingBase entityLivingBaseIn, int amplifier, double health)
{
if ((this != MobEffects.INSTANT_HEALTH || entityLivingBaseIn.isEntityUndead()) && (this != MobEffects.INSTANT_DAMAGE || !entityLivingBaseIn.isEntityUndead()))
{
if (this == MobEffects.INSTANT_DAMAGE && !entityLivingBaseIn.isEntityUndead() || this == MobEffects.INSTANT_HEALTH && entityLivingBaseIn.isEntityUndead())
{
int j = (int)(health * (double)(6 << amplifier) + 0.5D);
if (source == null)
{
entityLivingBaseIn.attackEntityFrom(DamageSource.magic, (float)j);
}
else
{
entityLivingBaseIn.attackEntityFrom(DamageSource.causeIndirectMagicDamage(source, indirectSource), (float)j);
}
}
}
else
{
int i = (int)(health * (double)(4 << amplifier) + 0.5D);
entityLivingBaseIn.heal((float)i);
}
}
示例7: func_190551_c
import net.minecraft.entity.EntityLivingBase; //导入方法依赖的package包/类
private void func_190551_c(EntityLivingBase p_190551_1_)
{
EntityLivingBase entitylivingbase = this.func_190552_j();
if (p_190551_1_.isEntityAlive() && !p_190551_1_.func_190530_aW() && p_190551_1_ != entitylivingbase)
{
if (entitylivingbase == null)
{
p_190551_1_.attackEntityFrom(DamageSource.magic, 6.0F);
}
else
{
if (entitylivingbase.isOnSameTeam(p_190551_1_))
{
return;
}
p_190551_1_.attackEntityFrom(DamageSource.causeIndirectMagicDamage(this, entitylivingbase), 6.0F);
}
}
}
示例8: hitEntity
import net.minecraft.entity.EntityLivingBase; //导入方法依赖的package包/类
@Override
public boolean hitEntity(ItemStack stack, EntityLivingBase target, EntityLivingBase attacker) {
if (!target.world.isRemote)
if (target instanceof EntityEnderman && attacker instanceof EntityPlayer) {
target.attackEntityFrom(DamageSource.causePlayerDamage((EntityPlayer) attacker), 20);
stack.damageItem(50, attacker);
} else {
stack.damageItem(1, attacker);
}
return true;
}
示例9: hitEntity
import net.minecraft.entity.EntityLivingBase; //导入方法依赖的package包/类
@Override
public boolean hitEntity(ItemStack stack, EntityLivingBase target, @Nonnull EntityLivingBase attacker) {
if (!target.world.isRemote) {
if (target.getCreatureAttribute() == EnumCreatureAttribute.UNDEAD && attacker instanceof EntityPlayer) {
target.attackEntityFrom(DamageSource.causePlayerDamage((EntityPlayer) attacker), 12);
stack.damageItem(25, attacker);
} else {
stack.damageItem(1, attacker);
}
}
return true;
}
示例10: onExecutionStart
import net.minecraft.entity.EntityLivingBase; //导入方法依赖的package包/类
@Override
public void onExecutionStart(EntityPlayer player)
{
ItemStack is = player.getHeldItemMainhand().isEmpty() ? player.getHeldItemOffhand() : player.getHeldItemMainhand();
EnumWeaponWeight weight = EnumWeaponWeight.getWeaponWeight(is);
player.world.playSound(player, player.getPosition(), SoundEvents.ENTITY_PLAYER_ATTACK_SWEEP, SoundCategory.PLAYERS, 1, 1F);
Vec3d playerLook = player.getLookVec();
Vec3d playerPos = player.getPositionVector();
player.world.spawnParticle(EnumParticleTypes.SWEEP_ATTACK, playerPos.x + playerLook.x, playerPos.y + player.getEyeHeight() * 0.5F, playerPos.z + playerLook.z, 0, 0, 0);
AxisAlignedBB aabb = new AxisAlignedBB(playerPos.addVector(-3, -1, -3), playerPos.addVector(3, 3, 3));
List<EntityLivingBase> lst = player.world.getEntitiesWithinAABB(EntityLivingBase.class, aabb, e -> e != player);
for (EntityLivingBase ent : lst)
{
if (ent instanceof EntityTameable && ((EntityTameable)ent).getOwner() == player)
{
continue;
}
Vec3d ePos = ent.getPositionVector();
Vec3d player2ent = ePos.subtract(playerPos).normalize();
float angle = (float) Math.toDegrees(Math.acos(player2ent.dotProduct(playerLook)));
if (angle > 60)
{
continue;
}
ent.attackEntityFrom(DamageSource.causePlayerDamage(player), (float) (player.getEntityAttribute(SharedMonsterAttributes.ATTACK_DAMAGE).getAttributeValue() * 0.85F));
player.world.playSound(player, ent.getPosition(), SoundEvents.ENTITY_PLAYER_ATTACK_SWEEP, SoundCategory.PLAYERS, 1, 2F);
if (!player.world.isRemote && weight == EnumWeaponWeight.HEAVY && player.world.rand.nextBoolean())
{
ent.addPotionEffect(new PotionEffect(ExPPotions.stunned, 100, 0, false, false));
}
}
}
示例11: onUpdate
import net.minecraft.entity.EntityLivingBase; //导入方法依赖的package包/类
@Override
public void onUpdate()
{
prevPosX = posX;
prevPosY = posY;
prevPosZ = posZ;
moveEntity(motionX, motionY, motionZ);
AxisAlignedBB range = new AxisAlignedBB(posX - 0.5, posY, posZ - 0.5, posX + 0.5, posY + 0.5, posZ + 0.5);
List<EntityLivingBase> mobsInRange = worldObj.getEntitiesWithinAABB(EntityLivingBase.class, range);
for (EntityLivingBase target : mobsInRange)
{
if (target != caster)
{
target.attackEntityFrom(DamageSource.magic, damage);
this.isCollided = true;
break;
}
}
if (isCollided)
{
this.setExpired();
}
if (prevPosY == posY && motionY > 0)
{
this.setExpired();
}
if (this.particleMaxAge-- <= 0)
{
this.setExpired();
}
}
示例12: updateTask
import net.minecraft.entity.EntityLivingBase; //导入方法依赖的package包/类
public void updateTask()
{
EntityLivingBase entitylivingbase = this.theEntity.getAttackTarget();
this.theEntity.getNavigator().clearPathEntity();
this.theEntity.getLookHelper().setLookPositionWithEntity(entitylivingbase, 90.0F, 90.0F);
if (!this.theEntity.canEntityBeSeen(entitylivingbase))
{
this.theEntity.setAttackTarget((EntityLivingBase)null);
}
else
{
++this.tickCounter;
if (this.tickCounter == 0)
{
this.theEntity.setTargetedEntity(this.theEntity.getAttackTarget().getEntityId());
this.theEntity.worldObj.setEntityState(this.theEntity, (byte)21);
}
else if (this.tickCounter >= this.theEntity.func_175464_ck())
{
float f = 1.0F;
if (this.theEntity.worldObj.getDifficulty() == EnumDifficulty.HARD)
{
f += 2.0F;
}
if (this.theEntity.isElder())
{
f += 2.0F;
}
entitylivingbase.attackEntityFrom(DamageSource.causeIndirectMagicDamage(this.theEntity, this.theEntity), f);
entitylivingbase.attackEntityFrom(DamageSource.causeMobDamage(this.theEntity), (float)this.theEntity.getEntityAttribute(SharedMonsterAttributes.attackDamage).getAttributeValue());
this.theEntity.setAttackTarget((EntityLivingBase)null);
}
else if (this.tickCounter >= 60 && this.tickCounter % 20 == 0)
{
;
}
super.updateTask();
}
}
示例13: func_191510_k
import net.minecraft.entity.EntityLivingBase; //导入方法依赖的package包/类
private void func_191510_k()
{
float f = 0.0F;
ItemStack itemstack = (ItemStack)this.dataManager.get(FIREWORK_ITEM);
NBTTagCompound nbttagcompound = itemstack.func_190926_b() ? null : itemstack.getSubCompound("Fireworks");
NBTTagList nbttaglist = nbttagcompound != null ? nbttagcompound.getTagList("Explosions", 10) : null;
if (nbttaglist != null && !nbttaglist.hasNoTags())
{
f = (float)(5 + nbttaglist.tagCount() * 2);
}
if (f > 0.0F)
{
if (this.field_191513_e != null)
{
this.field_191513_e.attackEntityFrom(DamageSource.field_191552_t, (float)(5 + nbttaglist.tagCount() * 2));
}
double d0 = 5.0D;
Vec3d vec3d = new Vec3d(this.posX, this.posY, this.posZ);
for (EntityLivingBase entitylivingbase : this.world.getEntitiesWithinAABB(EntityLivingBase.class, this.getEntityBoundingBox().expandXyz(5.0D)))
{
if (entitylivingbase != this.field_191513_e && this.getDistanceSqToEntity(entitylivingbase) <= 25.0D)
{
boolean flag = false;
for (int i = 0; i < 2; ++i)
{
RayTraceResult raytraceresult = this.world.rayTraceBlocks(vec3d, new Vec3d(entitylivingbase.posX, entitylivingbase.posY + (double)entitylivingbase.height * 0.5D * (double)i, entitylivingbase.posZ), false, true, false);
if (raytraceresult == null || raytraceresult.typeOfHit == RayTraceResult.Type.MISS)
{
flag = true;
break;
}
}
if (flag)
{
float f1 = f * (float)Math.sqrt((5.0D - (double)this.getDistanceToEntity(entitylivingbase)) / 5.0D);
entitylivingbase.attackEntityFrom(DamageSource.field_191552_t, f1);
}
}
}
}
}
示例14: performEffect
import net.minecraft.entity.EntityLivingBase; //导入方法依赖的package包/类
public void performEffect(EntityLivingBase entityLivingBaseIn, int p_76394_2_)
{
if (this.id == regeneration.id)
{
if (entityLivingBaseIn.getHealth() < entityLivingBaseIn.getMaxHealth())
{
entityLivingBaseIn.heal(1.0F);
}
}
else if (this.id == poison.id)
{
if (entityLivingBaseIn.getHealth() > 1.0F)
{
entityLivingBaseIn.attackEntityFrom(DamageSource.magic, 1.0F);
}
}
else if (this.id == wither.id)
{
entityLivingBaseIn.attackEntityFrom(DamageSource.wither, 1.0F);
}
else if (this.id == hunger.id && entityLivingBaseIn instanceof EntityPlayer)
{
((EntityPlayer)entityLivingBaseIn).addExhaustion(0.025F * (float)(p_76394_2_ + 1));
}
else if (this.id == saturation.id && entityLivingBaseIn instanceof EntityPlayer)
{
if (!entityLivingBaseIn.worldObj.isRemote)
{
((EntityPlayer)entityLivingBaseIn).getFoodStats().addStats(p_76394_2_ + 1, 1.0F);
}
}
else if ((this.id != heal.id || entityLivingBaseIn.isEntityUndead()) && (this.id != harm.id || !entityLivingBaseIn.isEntityUndead()))
{
if (this.id == harm.id && !entityLivingBaseIn.isEntityUndead() || this.id == heal.id && entityLivingBaseIn.isEntityUndead())
{
entityLivingBaseIn.attackEntityFrom(DamageSource.magic, (float)(6 << p_76394_2_));
}
}
else
{
entityLivingBaseIn.heal((float)Math.max(4 << p_76394_2_, 0));
}
}
示例15: onFinish
import net.minecraft.entity.EntityLivingBase; //导入方法依赖的package包/类
@Override
public void onFinish(World world, BlockPos pos, EntityLivingBase entity, int amplifier) {
if (entity instanceof EntityLivingBase) {
entity.attackEntityFrom(DamageSource.MAGIC, 500000);
}
}