本文整理汇总了Java中net.minecraft.entity.EntityLivingBase.addPotionEffect方法的典型用法代码示例。如果您正苦于以下问题:Java EntityLivingBase.addPotionEffect方法的具体用法?Java EntityLivingBase.addPotionEffect怎么用?Java EntityLivingBase.addPotionEffect使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类net.minecraft.entity.EntityLivingBase
的用法示例。
在下文中一共展示了EntityLivingBase.addPotionEffect方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: tryFireMinigun
import net.minecraft.entity.EntityLivingBase; //导入方法依赖的package包/类
public boolean tryFireMinigun(EntityLivingBase target) {
boolean lastShotOfAmmo = false;
if (!ammo.isEmpty() && (pressurizable == null || pressurizable.getPressure(stack) > 0)) {
setMinigunTriggerTimeOut(Math.max(10, getMinigunSoundCounter()));
if (getMinigunSpeed() == MAX_GUN_SPEED && (!requiresTarget || gunAimedAtTarget)) {
if (!requiresTarget) target = raytraceTarget();
lastShotOfAmmo = ammo.attemptDamageItem(1, rand, player instanceof EntityPlayerMP ? (EntityPlayerMP) player : null);
if (pressurizable != null) pressurizable.addAir(stack, -airUsage);
if (target != null) {
ItemStack potion = ItemGunAmmo.getPotion(ammo);
if (!potion.isEmpty()) {
if (rand.nextInt(20) == 0) {
List<PotionEffect> effects = PotionUtils.getEffectsFromStack(potion);
for (PotionEffect effect : effects) {
target.addPotionEffect(new PotionEffect(effect));
}
}
} else {
target.attackEntityFrom(DamageSource.causePlayerDamage(player), ConfigHandler.general.configMinigunDamage);
}
}
}
}
return lastShotOfAmmo;
}
示例2: arrowHit
import net.minecraft.entity.EntityLivingBase; //导入方法依赖的package包/类
protected void arrowHit(EntityLivingBase living)
{
super.arrowHit(living);
for (PotionEffect potioneffect : this.potion.getEffects())
{
living.addPotionEffect(new PotionEffect(potioneffect.getPotion(), Math.max(potioneffect.getDuration() / 8, 1), potioneffect.getAmplifier(), potioneffect.getIsAmbient(), potioneffect.doesShowParticles()));
}
if (!this.customPotionEffects.isEmpty())
{
for (PotionEffect potioneffect1 : this.customPotionEffects)
{
living.addPotionEffect(potioneffect1);
}
}
}
示例3: applyPotionEffect
import net.minecraft.entity.EntityLivingBase; //导入方法依赖的package包/类
public static void applyPotionEffect(EntityLivingBase entitylivingbase, ShotPotion pot)
{
if (entitylivingbase == null) { return; } // Not a valid entity, for some reason
if (pot == null) { return; } // Nothing to apply
PotionEffect potion = entitylivingbase.getActivePotionEffect(pot.potion);
if (potion != null) // Already exists. Extending it
{
int dur = potion.getDuration();
entitylivingbase.addPotionEffect( new PotionEffect(pot.potion.id, pot.Duration + dur, pot.Strength - 1, false) );
}
else { entitylivingbase.addPotionEffect( new PotionEffect(pot.potion.id, pot.Duration, pot.Strength - 1, false) ); } // Fresh
}
示例4: applyEffects
import net.minecraft.entity.EntityLivingBase; //导入方法依赖的package包/类
public void applyEffects(EntityLivingBase target, EntityLivingBase source, EntityLivingBase indirectsource) {
for (CaskPotionEffect effect : effects)
{
PotionEffect potioneffect = effect.potionEffect;
PotionEffect currentStack = target.getActivePotionEffect(potioneffect.getPotion());
if (potioneffect.getPotion().isInstant())
{
potioneffect.getPotion().affectEntity(source, indirectsource, target, potioneffect.getAmplifier(), 1.0D);
}
else
{
int amplifier = currentStack.getAmplifier();
int duration = currentStack.getDuration();
if(currentStack != null)
{
amplifier = Math.min(amplifier + currentStack.getAmplifier() + 1,effect.maxStack);
if(amplifier != currentStack.getAmplifier())
duration += currentStack.getDuration();
}
PotionEffect newStack = new PotionEffect(potioneffect.getPotion(),duration,amplifier,false,false); //TODO: curative item?? alchemical hangover cure???
target.addPotionEffect(newStack);
}
}
}
示例5: onItemUse
import net.minecraft.entity.EntityLivingBase; //导入方法依赖的package包/类
@SubscribeEvent
public void onItemUse(LivingEntityUseItemEvent event)
{
EntityLivingBase living = event.getEntityLiving();
ItemStack stack = event.getItem();
PotionEffect effect = living.getActivePotionEffect(this);
if(ItemUtil.matchesOreDict(stack,"torch") && effect != null)
{
//TODO: Blow a cloud of fire out
if(effect.getDuration() > 10)
{
PotionEffect reducedEffect = new PotionEffect(this, effect.getDuration() - 5, effect.getAmplifier(), effect.getIsAmbient(), effect.doesShowParticles());
reducedEffect.setCurativeItems(effect.getCurativeItems());
living.addPotionEffect(reducedEffect);
}
else
{
living.removePotionEffect(this);
}
}
}
示例6: doSplash
import net.minecraft.entity.EntityLivingBase; //导入方法依赖的package包/类
private void doSplash() {
AxisAlignedBB axisalignedbb = this.getEntityBoundingBox().expand(4.0D, 2.0D, 4.0D);
List<EntityLivingBase> list = this.world.getEntitiesWithinAABB(EntityLivingBase.class, axisalignedbb);
if (!list.isEmpty()) {
Tuple<List<BrewEffect>, List<PotionEffect>> tuple = BrewUtils.deSerialize(NBTHelper.fixNBT(getBrew()));
for (EntityLivingBase entity : list) {
double distance = this.getDistanceSq(entity);
if (distance < 16.0D) {
for (BrewEffect effect : tuple.getFirst()) {
BrewStorageHandler.addEntityBrewEffect(entity, effect.copy());
}
for (PotionEffect potioneffect : tuple.getSecond()) {
entity.addPotionEffect(new PotionEffect(potioneffect));
}
}
}
}
}
示例7: onEntityWalk
import net.minecraft.entity.EntityLivingBase; //导入方法依赖的package包/类
@Override
public void onEntityWalk(World world, BlockPos pos, Entity entity) {
if (world.isRemote) return;
if (entity instanceof EntityLivingBase) {
EntityLivingBase living = (EntityLivingBase)entity;
living.addPotionEffect(new PotionEffect(Thermionics.POTION_EFFORTLESS_SPEED, 20, level));
}
}
示例8: updateTick
import net.minecraft.entity.EntityLivingBase; //导入方法依赖的package包/类
@Override
public void updateTick(World world, BlockPos pos, IBlockState state, Random rand) {
List<EntityLivingBase> elb = world.getEntitiesWithinAABB(EntityLivingBase.class, new AxisAlignedBB(pos.add(-range, -3, -range), pos.add(range, 3, range)));
for (EntityLivingBase entity : elb) {
if (!entity.isDead && (entity instanceof EntityMob || entity instanceof EntitySlime) && !world.isRemote) {
entity.addPotionEffect(new PotionEffect(MobEffects.INVISIBILITY, 500));
}
}
world.scheduleUpdate(pos, this, 100);
}
示例9: onArmorTick
import net.minecraft.entity.EntityLivingBase; //导入方法依赖的package包/类
@Override
public void onArmorTick(World world, final EntityPlayer player, ItemStack itemStack) {
if (!world.isRemote) {
if (player.ticksExisted % 20 == 0) {
float heal = TF2Attribute.getModifier("Health Regen", itemStack, 0, player);
if(heal > 0) {
int lastHitTime = player.ticksExisted - player.getEntityData().getInteger("lasthit");
if (lastHitTime >= 120)
player.heal(heal);
else if(lastHitTime >= 60)
player.heal(TF2Util.lerp(heal, heal/4f, (lastHitTime-60)/60f));
else
player.heal(heal/4f);
}
}
if (player.ticksExisted % 5 == 0 && itemStack.getTagCompound().getBoolean("Active")) {
itemStack.getTagCompound().setFloat("Rage",
Math.max(0,
itemStack.getTagCompound().getFloat("Rage")
- 1 / (TF2Attribute.getModifier("Buff Duration", itemStack,
getData(itemStack).getInt(PropertyType.DURATION), player) - 20)));
if (itemStack.getTagCompound().getFloat("Rage") <= 0)
itemStack.getTagCompound().setBoolean("Active", false);
for (EntityLivingBase living : world.getEntitiesWithinAABB(EntityLivingBase.class,
player.getEntityBoundingBox().grow(10, 10, 10), new Predicate<EntityLivingBase>() {
@Override
public boolean apply(EntityLivingBase input) {
// TODO Auto-generated method stub
return TF2Util.isOnSameTeam(player, input);
}
}))
living.addPotionEffect(new PotionEffect(this.getBuff(itemStack), 25));
}
if (player.isCreative())
itemStack.getTagCompound().setFloat("Rage", 1);
}
}
示例10: setAttackTarget
import net.minecraft.entity.EntityLivingBase; //导入方法依赖的package包/类
public void setAttackTarget(EntityLivingBase ent){
if(this.getAttackTarget()!=null&&ent instanceof EntityBuilding)
return;
if(ent!=null&&ent.hasCapability(TF2weapons.WEAPONS_CAP, null)&&ent.getCapability(TF2weapons.WEAPONS_CAP, null).itProtection>0)
return;
if(ent!=this.getAttackTarget()&&this.getAttackTarget()!=null){
boolean hadeffect=this.getAttackTarget().getActivePotionEffect(TF2weapons.it)!=null;
this.getAttackTarget().removePotionEffect(TF2weapons.it);
if(ent==null&&hadeffect)
this.getAttackTarget().addPotionEffect(new PotionEffect(TF2weapons.it,12));
}
if(ent!=null){
/*if(ent.getActivePotionEffect(TF2weapons.it)==null&&this.scareTick<=0){
for(EntityLivingBase living:this.world.getEntitiesWithinAABB(EntityLivingBase.class, this.getEntityBoundingBox().grow(10, 10, 10), new Predicate<EntityLivingBase>(){
@Override
public boolean apply(EntityLivingBase input) {
// TODO Auto-generated method stub
return getDistanceSqToEntity(input)<100 && !TF2weapons.isOnSameTeam(EntityHHH.this, input) && !(input.getItemStackFromSlot(EntityEquipmentSlot.HEAD) != null
&& input.getItemStackFromSlot(EntityEquipmentSlot.HEAD).getItem()==Item.getItemFromBlock(Blocks.PUMPKIN));
}
})){
TF2weapons.stun(living, 100, false);
}
this.scareTick=200;
}*/
this.targetTime=300;
ent.addPotionEffect(new PotionEffect(TF2weapons.it,600));
if(ent!=this.getAttackTarget()&&this.rand.nextBoolean()){
}
}
super.setAttackTarget(ent);
}
示例11: performEffect
import net.minecraft.entity.EntityLivingBase; //导入方法依赖的package包/类
@Override
public void performEffect(RayTraceResult rtrace, EntityLivingBase caster, World world) {
if (caster != null) {
caster.addPotionEffect(new PotionEffect(MobEffects.REGENERATION, 160, 0, false, true));
caster.addPotionEffect(new PotionEffect(MobEffects.HUNGER, 160, 0, false, false));
}
}
示例12: onImpact
import net.minecraft.entity.EntityLivingBase; //导入方法依赖的package包/类
@Override
protected void onImpact(RayTraceResult mop)
{
switch(mop.typeOfHit)
{
case BLOCK:
if (!inTerrain)
{
doBlockHitEffects(world, mop);
}
BlockPos pos = mop.getBlockPos();
IBlockState state = world.getBlockState(pos);
if(state.getBlock().canCollideCheck(state, false))
{
this.inTerrain = true;
this.stuckPos = pos;
//Why setVelocity is @SideOnly(Side.CLIENT) I do not know
this.motionX = this.motionY = this.motionZ = 0.0F;
}
break;
case ENTITY:
if(mop.entityHit instanceof EntityLivingBase && mop.entityHit != this.getThrower())
{
EntityLivingBase entityLiving = (EntityLivingBase) mop.entityHit;
int dmg = 2;
if(this.getThrower() instanceof EntityPlayer && ((EntityPlayer)this.getThrower()).capabilities.isCreativeMode) dmg = 0;
if(!world.isRemote && !knife.attemptDamageItem(dmg, rand, (EntityPlayerMP) this.getThrower()))
{
entityLiving.attackEntityFrom(DamageSource.causeThrownDamage(mop.entityHit, this.getThrower()), baseDamage * force);
entityLiving.addPotionEffect(new PotionEffect(MobEffects.SLOWNESS, (int) (100 * force), 2, false, false));
}
}
break;
default:
break;
}
}
示例13: onUpdate
import net.minecraft.entity.EntityLivingBase; //导入方法依赖的package包/类
@Override
public void onUpdate(ItemStack stack, World par2World, Entity par3Entity, int par4, boolean par5) {
super.onUpdate(stack, par2World, par3Entity, par4, par5);
if(stack.isEmpty())
return;
/*
* if(itemProperties.get(par2World.isRemote).get(par3Entity)==null){
* itemProperties.get(par2World.isRemote).put((EntityLivingBase)
* par3Entity, new NBTTagCompound()); }
*/
WeaponsCapability cap = par3Entity.getCapability(TF2weapons.WEAPONS_CAP, null);
WeaponData.WeaponDataCapability stackcap = stack.getCapability(TF2weapons.WEAPONS_DATA_CAP, null);
EntityLivingBase living=(EntityLivingBase) par3Entity;
if (stackcap.active == 0 && par5) {
stackcap.active = 1;
// itemProperties.get(par2World.isRemote).get(par3Entity).setShort("reloadd",
// (short) 800);
if(!par2World.isRemote && living.getAttributeMap().getAttributeInstance(SharedMonsterAttributes.MAX_HEALTH).getModifier(ItemWeapon.HEALTH_MODIFIER)!=null){
float addHealth=(float) living.getAttributeMap().getAttributeInstance(SharedMonsterAttributes.MAX_HEALTH).getModifier(ItemWeapon.HEALTH_MODIFIER).getAmount();
living.setHealth((living.getMaxHealth())/(living.getMaxHealth()-addHealth)*living.getHealth());
}
cap.fire1Cool = this.getDeployTime(stack, living);
cap.fire2Cool = this.getDeployTime(stack, living);
} else if (stackcap.active > 0
&& stack != living.getHeldItemOffhand() && !par5) {
if (stackcap.active == 2 && (cap.state & 3) > 0)
this.endUse(stack, living, par2World, cap.state, 0);
stackcap.active = 0;
this.holster(cap, stack, living, par2World);
}
if (par3Entity.ticksExisted % 5 == 0 && stackcap.active == 2
&& TF2Attribute.getModifier("Mark Death", stack, 0, living) > 0)
living.addPotionEffect(new PotionEffect(TF2weapons.markDeath,
(int) TF2Attribute.getModifier("Mark Death", stack, 0,living) * 20));
}
示例14: onEntityDamaged
import net.minecraft.entity.EntityLivingBase; //导入方法依赖的package包/类
/**
* Called whenever a mob is damaged with an item that has this enchantment on it.
*/
public void onEntityDamaged(EntityLivingBase user, Entity target, int level)
{
if (target instanceof EntityLivingBase)
{
EntityLivingBase entitylivingbase = (EntityLivingBase)target;
if (this.damageType == 2 && entitylivingbase.getCreatureAttribute() == EnumCreatureAttribute.ARTHROPOD)
{
int i = 20 + user.getRNG().nextInt(10 * level);
entitylivingbase.addPotionEffect(new PotionEffect(MobEffects.SLOWNESS, i, 3));
}
}
}
示例15: arrowHit
import net.minecraft.entity.EntityLivingBase; //导入方法依赖的package包/类
@Override
protected void arrowHit(EntityLivingBase living) {
if(arrowType == EnumHarshenArrowTypes.RIPPER
&&!(Lists.newArrayList(living.getArmorInventoryList().iterator()).get(3).getItem() == HarshenArmors.harshen_jaguar_armor_helmet
&& Lists.newArrayList(living.getArmorInventoryList().iterator()).get(2).getItem() == HarshenArmors.harshen_jaguar_armor_chestplate
&& Lists.newArrayList(living.getArmorInventoryList().iterator()).get(1).getItem() == HarshenArmors.harshen_jaguar_armor_leggings
&& Lists.newArrayList(living.getArmorInventoryList().iterator()).get(0).getItem() == HarshenArmors.harshen_jaguar_armor_boots))
living.addPotionEffect(new PotionEffect(MobEffects.WITHER, 150, 1));
}