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; }
@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; }
private void setCombatTask() { tasks.removeTask(aiMeleeAttack); tasks.removeTask(aiAvoid); setAI((byte) 0); }
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 setCombatTask() { tasks.removeTask(aiMeleeAttack); tasks.removeTask(aiStrafe); setAI((byte) 1); }
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 static void clearTasks(EntityAITasks tasks) { if (tasks.taskEntries.isEmpty()) return; List<EntityAITasks.EntityAITaskEntry> backup = Lists.newArrayList(tasks.taskEntries); for (EntityAITasks.EntityAITaskEntry entry : backup) { tasks.removeTask(entry.action); } }
private void setAI(byte id) { if (id == 0) { tasks.addTask(1, aiAttackOnCollide); } if (id == 1) { tasks.removeTask(aiAttackOnCollide); } }
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)); }
private void setCombatTask() { tasks.removeTask(aiMeleeAttack); tasks.removeTask(aiAvoid); setAI((byte) 0); }
private void setAI(byte id) { if (id == 0) { tasks.addTask(1, aiGaiaLeapAtTarget); tasks.addTask(2, aiMeleeAttack); tasks.removeTask(aiAvoid); } if (id == 1) { tasks.removeTask(aiGaiaLeapAtTarget); tasks.removeTask(aiMeleeAttack); tasks.addTask(2, aiAvoid); } }
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)); }
private void setCombatTask() { tasks.removeTask(aiMeleeAttack); tasks.removeTask(aiAvoid); setAI((byte) 0); }
private void setAI(byte id) { if (id == 0) { tasks.addTask(1, aiAttackOnCollide); } if (id == 1) { tasks.removeTask(aiAttackOnCollide); } }
@SafeVarargs public final void target(Class<? extends EntityLivingBase>... targets) { this.targetTasks.addTask(1, new SelectTargetEntityAI(this, targets)); this.attackTargets.addAll(Lists.newArrayList(targets)); }
@Override public void onDisable(EntityTameableDragon dragon) { if (appliedTasks.containsKey(dragon)) { dragon.tasks.removeTask(appliedTasks.get(dragon)); appliedTasks.remove(dragon); } }
private void setAI(byte id) { if (id == 0) { tasks.addTask(1, aiMeleeAttack); tasks.removeTask(aiAvoid); } if (id == 1) { tasks.removeTask(aiMeleeAttack); tasks.addTask(1, aiAvoid); } }
@Override protected void initEntityAI() { tasks.addTask(0, new EntityAISwimming(this)); 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, true)); }