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 void openInventory(EntityPlayer player) { if (getEntityWorld().isRemote) return; canPickupItems = false; canAddToSilo = false; canCollectFromSilo = false; tasks.removeTask(aiWander); tasks.removeTask(aiPlantCrops); tasks.removeTask(aiHarvestCrops); tasks.removeTask(aiBonemealCrops); }
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 setCombatTask() { tasks.removeTask(aiMeleeAttack); tasks.removeTask(aiAvoid); setAI((byte) 0); }
private void setCanBreakDoors(boolean val) { if (canBreakDoors != val) { canBreakDoors = val; if (canBreakDoors) { tasks.addTask(1, breakDoorAI); } else { tasks.removeTask(breakDoorAI); } } }
private void setAI(byte id) { if (id == 0) { tasks.removeTask(aiAttackOnCollide); tasks.addTask(1, aiArrowAttack); } if (id == 1) { tasks.removeTask(aiArrowAttack); tasks.addTask(1, aiAttackOnCollide); } }
private void setAI(byte id) { if (id == 0) { tasks.removeTask(aiAttackOnCollide); tasks.addTask(1, aiArrowAttack); } if (id == 1) { tasks.removeTask(aiArrowAttack); tasks.addTask(1, aiAttackOnCollide); } }
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); } }
private void setAI(byte id) { if (id == 0) { tasks.addTask(1, aiAttackOnCollide); } if (id == 1) { tasks.removeTask(aiAttackOnCollide); } }
private void setAI(byte id) { if (id == 0) { tasks.addTask(1, aiAttackOnCollide); } if (id == 1) { tasks.removeTask(aiAttackOnCollide); } }
private void setAI(byte id) { if (id == 0) { tasks.addTask(1, aiArrowAttack); } if (id == 1) { tasks.removeTask(aiArrowAttack); } }
private void setAI(byte id) { if (id == 0) { tasks.removeTask(aiMeleeAttack); tasks.addTask(1, aiStrafe); } if (id == 1) { tasks.removeTask(aiStrafe); tasks.addTask(1, aiMeleeAttack); } }
private void updateAttackAI() { targetTasks.removeTask(findTargetAI); tasks.removeTask(attackAI); if (!isRidden()) { targetTasks.addTask(2, findTargetAI); tasks.addTask(4, attackAI); } }
@Override public void release(TileAttractor attractor, EntityLiving entity) { EntityAIBase remove = findAITask(attractor, entity); if (remove != null) { entity.tasks.removeTask(remove); cancelCurrentTasks(entity); } }
private void setAI(byte id) { if (id == 0) { targetTasks.addTask(2, aiNearestAttackableTarget); } if (id == 1) { tasks.addTask(1, aiAttackOnCollide); } if (id == 2) { tasks.removeTask(aiAttackOnCollide); } }
/** * sets or removes EntityAIBreakDoor task */ public void setBreakDoorsAItask(boolean enabled) { ((PathNavigateGround) this.getNavigator()).setBreakDoors(enabled); if (enabled) { this.tasks.addTask(1, this.breakDoor); } else { this.tasks.removeTask(this.breakDoor); } }
public void setCombatTaskReal() { tasks.removeTask(getAiAttackOnCollide()); tasks.removeTask(getAiArrowAttack()); if (isRanged()) { tasks.addTask(4, getAiArrowAttack()); } else { tasks.addTask(4, getAiAttackOnCollide()); } }
@Override public void setCombatTask() { if (aiAttackOnCollide != null) { this.tasks.removeTask(aiAttackOnCollide); } aiAttackOnCollide = new EntityAIAttackMelee(this, this.getBaseSprintModifier(getType()), false); this.tasks.addTask(attackPriority, aiAttackOnCollide); }
@Override public void setCombatTask() { if (aiAttackOnCollide != null) { this.tasks.removeTask(aiAttackOnCollide); } aiAttackOnCollide = new EntityAIAttackStealthMelee(this, this.getBaseSprintModifier(getType()), false); this.tasks.addTask(attackPriority, aiAttackOnCollide); }
@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())); }