public static boolean brainwashEntity(EntityLiving entity, List<IMob> mobs) { EntityLivingBase target = entity.getAttackTarget(); boolean did = false; if(!(target instanceof IMob)) { IMob newTarget; do newTarget = mobs.get(entity.world.rand.nextInt(mobs.size())); while(newTarget == entity); if(newTarget instanceof EntityLiving) { entity.setAttackTarget(null); // Move any EntityAIHurtByTarget to highest priority for (EntityAITaskEntry entry : entity.targetTasks.taskEntries) { if (entry.action instanceof EntityAIHurtByTarget) { // Concurrent modification OK since we break out of the loop entity.targetTasks.removeTask(entry.action); entity.targetTasks.addTask(-1, entry.action); break; } } // Now set revenge target, which EntityAIHurtByTarget will pick up entity.setRevengeTarget((EntityLiving) newTarget); did = true; } } return did; }
public EntityWitherWitch(World world) { super(world); rangedAttackAI = new EntityAIRangedAttack(this, 1, 60, 10); tasks.addTask(1, new EntityAISwimming(this)); tasks.addTask(1, new EntityAISwimming(this)); tasks.addTask(2, rangedAttackAI); tasks.addTask(2, new EntityAIWander(this, 1.0D)); tasks.addTask(3, new EntityAIWatchClosest(this, EntityPlayer.class, 8.0F)); tasks.addTask(3, new EntityAILookIdle(this)); targetTasks.addTask(1, new EntityAIHurtByTarget(this, false)); targetTasks.addTask(2, new EntityAINearestAttackableTarget<EntityPlayer>(this, EntityPlayer.class, true)); }
private void setCanBreakDoors(boolean val) { if (canBreakDoors != val) { canBreakDoors = val; if (canBreakDoors) { tasks.addTask(1, breakDoorAI); } else { tasks.removeTask(breakDoorAI); } } }
private void setDefaults() { tasks.addTask(8, new AIButterflyFlee(this)); tasks.addTask(9, new AIButterflyMate(this)); tasks.addTask(10, new AIButterflyPollinate(this)); tasks.addTask(11, new AIButterflyRest(this)); tasks.addTask(12, new AIButterflyRise(this)); tasks.addTask(12, new AIButterflyWander(this)); }
private void addAI() { this.tasks.addTask(0, new EntityAISwimming(this)); this.tasks.addTask(0, new EntityAIRestrictOpenDoor(this)); this.tasks.addTask(0, new NpcAIDoor(this, true)); this.tasks.addTask(1, new NpcAIFollowPlayer(this)); this.tasks.addTask(2, new NpcAIMoveHome(this, 50F, 3F, 30F, 3F)); this.tasks.addTask(101, new EntityAIWatchClosest2(this, EntityPlayer.class, 3.0F, 1.0F)); this.tasks.addTask(102, new NpcAIWander(this)); this.tasks.addTask(103, new EntityAIWatchClosest(this, EntityLiving.class, 8.0F)); }
protected void initEntityAI() { this.tasks.addTask(1, new EntityAISwimming(this)); this.tasks.addTask(2, new StymphalianBirdAIFlee(this, 10)); this.tasks.addTask(3, new EntityAIAttackMelee(this, 1.5D, false)); this.tasks.addTask(5, new EntityAIWander(this, 1.0D)); this.tasks.addTask(6, new StymphalianBirdAIAirTarget(this)); this.tasks.addTask(7, new EntityAIWatchClosest(this, EntityLivingBase.class, 6.0F)); this.tasks.addTask(8, new EntityAILookIdle(this)); this.targetTasks.addTask(1, new EntityAIHurtByTarget(this, true, new Class[0])); this.targetTasks.addTask(2, new StymphalianBirdAITarget(this, EntityLivingBase.class, true)); }
@SafeVarargs public final void target(Class<? extends EntityLivingBase>... targets) { this.targetTasks.addTask(1, new SelectTargetEntityAI(this, targets)); this.attackTargets.addAll(Lists.newArrayList(targets)); }
public EntityWitherCat(World world) { super(world); EntityAIFollowOwner retreatTask = new EntityAIFollowOwner(this, 2.5, 5, 2.5); tasks.addTask(1, new EntityAISwimming(this)); tasks.addTask(2, new EntityAIAttackOnCollideOwned(this, EntityPlayer.class, 2.5, false, retreatTask)); tasks.addTask(3, followTask); tasks.addTask(4, new EntityAIWander(this, 1.0D)); tasks.addTask(5, new EntityAIWatchClosest(this, EntityPlayer.class, 8.0F)); tasks.addTask(6, new EntityAILookIdle(this)); tasks.addTask(7, new EntityAIAttackMelee(this, 1.0D, true)); setSize(DEF_WIDTH, DEF_HEIGHT); }
@Override protected void initEntityAI() { this.tasks.addTask(0, new EntityAISwimming(this)); this.tasks.addTask(2, new EntityAILivingAttack(this, 1.0D, false)); this.tasks.addTask(5, new EntityAIMoveTowardsRestriction(this, 1.0D)); this.tasks.addTask(6, new EntityAIFollowPlayer(this, 1.0D, 10.0F, 2.0F)); this.tasks.addTask(7, new EntityAIWanderAvoidWater(this, 1.0D)); this.tasks.addTask(8, new EntityAIWatchClosest(this, EntityPlayer.class, 8.0F)); this.tasks.addTask(8, new EntityAILookIdle(this)); this.applyEntityAI(); }
protected void initEntityAI() { this.tasks.addTask(1, new EntityAISwimming(this)); this.tasks.addTask(3, new EntityAILeapAtTarget(this, 0.4F)); this.tasks.addTask(3, new EntityAIPickUpAlly(this, 1, true)); this.tasks.addTask(4, new EntityCorruptedSpider.AISpiderAttack(this)); this.tasks.addTask(5, new EntityAIWander(this, 0.8D)); this.tasks.addTask(6, new EntityAIWatchClosest(this, EntityPlayer.class, 8.0F)); this.tasks.addTask(6, new EntityAILookIdle(this)); this.targetTasks.addTask(1, new EntityAIHurtByTarget(this, false)); this.targetTasks.addTask(1, new EntityAINearestAttackableTarget<>(this, EntityPlayer.class, true)); this.targetTasks.addTask(2, new EntityAINearestAttackableTarget<>(this, EntityLivingBase.class, 10, true, false, new EntityAspectedDemonBase.TeamAttackPredicate(this))); }
protected void initEntityAI() { this.entityAIEatGrass = new EntityAIEatAndCorruptBlock(this); this.entityAIProtectAlly = new EntityAIProtectAlly(this); this.tasks.addTask(0, new EntityAISwimming(this)); this.tasks.addTask(2, entityAIProtectAlly); this.tasks.addTask(5, this.entityAIEatGrass); this.tasks.addTask(6, new EntityAIWander(this, 1.0D)); this.tasks.addTask(7, new EntityAIWatchClosest(this, EntityPlayer.class, 6.0F)); this.tasks.addTask(8, new EntityAILookIdle(this)); this.targetTasks.addTask(1, new EntityAINearestAttackableTarget<>(this, EntityPlayer.class, true)); this.targetTasks.addTask(2, new EntityAINearestAttackableTarget<>(this, EntityLivingBase.class, 10, true, false, new EntityAspectedDemonBase.TeamAttackPredicate(this))); }
public EntityFallenKnight(World world) { super(world); setCombatTaskReal(); targetTasks.addTask(2, new EntityAINearestAttackableTarget<EntityVillager>(this, EntityVillager.class, false)); targetTasks.addTask(2, new EntityAINearestAttackableTarget<AbstractIllager>(this, AbstractIllager.class, false)); }
@Override protected void initEntityAI() { super.initEntityAI(); tasks.addTask(1, new EntityAIAttackOnCollideAggressive(this, 1.1D, true).setAttackFrequency(20)); }
@SubscribeEvent public void handleVillagerAI(EntityJoinWorldEvent event) { Entity entity = event.getEntity(); if ((entity instanceof EntityVillager)) { EntityVillager villager = (EntityVillager) entity; VillagerRegistry.VillagerProfession profession = villager.getProfessionForge(); if (ModuleApiculture.villagerApiarist != null && profession == ModuleApiculture.villagerApiarist) { villager.tasks.addTask(6, new ApiaristAI(villager, 0.6)); } } } }
@Override public IEffectData doEffectThrottled(IBeeGenome genome, IEffectData storedData, IBeeHousing housing) { List<EntityMob> mobs = getEntitiesInRange(genome, housing, EntityMob.class); for (EntityMob mob : mobs) { if (!isMobAvoidingPlayers(mob)) { mob.tasks.addTask(3, new AIAvoidPlayers(mob, 6.0f, 0.25f, 0.3f)); mob.tasks.onUpdateTasks(); } } return storedData; }
@SubscribeEvent public void onEntityTick(LivingUpdateEvent event) { if(event.getEntity() instanceof EntityVillager) { EntityVillager villager = (EntityVillager) event.getEntity(); for(EntityAITaskEntry task : villager.tasks.taskEntries) if(task.action instanceof EntityAITempt) return; villager.tasks.addTask(4, new EntityAITempt(villager, 0.6, Item.getItemFromBlock(Blocks.EMERALD_BLOCK), false)); } }
@Override public void startAttracting(TileAttractor attractor, EntityLiving entity) { EntityAIBase remove = findAITask(attractor, entity); if (remove != null) { entity.tasks.removeTask(remove); } cancelCurrentTasks(entity); entity.tasks.addTask(0, new AttractTask(entity, attractor.getTarget(), attractor.getPos())); }