public void setPathfinder() { super.setPathfinder(); if (myPet.getDamage() > 0) { petPathfinderSelector.replaceGoal("MeleeAttack", new MeleeAttack(this, 0.1F, 8, 20)); } } }
@Override public boolean shouldStart() { if (!petEntity.canMove()) { return false; } if (myPet.getDamage() <= 0 && myPet.getRangedDamage() <= 0) { return false; } if (!this.petEntity.hasTarget() || this.petEntity.getTargetPriority() != TargetPriority.OwnerHurts) { return false; } return true; }
@Override public boolean shouldStart() { if (myPet.getDamage() <= 0) { return false; } if (!this.petEntity.hasTarget()) { return false; } EntityLiving targetEntity = ((CraftLivingEntity) this.petEntity.getTarget()).getHandle(); if (petEntity.getMyPet().getRangedDamage() > 0 && this.petEntity.f(targetEntity.locX, targetEntity.boundingBox.b, targetEntity.locZ) >= 20) { return false; } this.targetEntity = targetEntity; return true; }
@Override public boolean shouldFinish() { if (!entityMyPet.hasTarget() || myPet.getRangedDamage() <= 0 || !entityMyPet.canMove()) { return true; } if (this.target.getBukkitEntity() != this.entityMyPet.getTarget()) { return true; } double meleeDamage = myPet.getDamage(); if (meleeDamage > 0 && this.entityMyPet.f(target.locX, target.boundingBox.b, target.locZ) < 4) { Ranged rangedSkill = myPet.getSkills().get(Ranged.class); if (meleeDamage > rangedSkill.getDamage().getValue().doubleValue()) { return true; } } return false; }
/** * Is called when a MyPet attemps to do damge to another entity */ public boolean attack(Entity entity) { boolean damageEntity = false; try { double damage = isMyPet() ? myPet.getDamage() : 0; if (entity instanceof EntityPlayer) { Player victim = (Player) entity.getBukkitEntity(); if (!MyPetApi.getHookHelper().canHurt(myPet.getOwner().getPlayer(), victim, true)) { if (myPet.hasTarget()) { setGoalTarget(null); } return false; } } damageEntity = entity.damageEntity(DamageSource.mobAttack(this), (float) damage); } catch (Exception e) { e.printStackTrace(); } return damageEntity; }
@Override public boolean shouldStart() { if (myPet.getRangedDamage() <= 0) { return false; } if (!entityMyPet.canMove()) { return false; } if (!entityMyPet.hasTarget()) { return false; } EntityLiving target = ((CraftLivingEntity) this.entityMyPet.getTarget()).getHandle(); double meleeDamage = myPet.getDamage(); if (meleeDamage > 0 && this.entityMyPet.f(target.locX, target.boundingBox.b, target.locZ) < 4) { Ranged rangedSkill = myPet.getSkills().get(Ranged.class); if (meleeDamage > rangedSkill.getDamage().getValue().doubleValue()) { return false; } } this.target = target; return true; }
@Override public boolean shouldStart() { if (!myPet.getSkills().isActive(SprintImpl.class)) { return false; } if (petEntity.getMyPet().getDamage() <= 0) { return false; } if (!this.petEntity.hasTarget()) { return false; } EntityLiving targetEntity = ((CraftLivingEntity) this.petEntity.getTarget()).getHandle(); if (!targetEntity.isAlive()) { return false; } if (lastTarget == targetEntity) { return false; } if (petEntity.getMyPet().getRangedDamage() > 0 && this.petEntity.f(targetEntity) >= 16) { return false; } this.lastTarget = targetEntity; return true; }
@Override public boolean shouldFinish() { if (!petEntity.canMove()) { return true; } else if (!petEntity.hasTarget()) { return true; } EntityLiving target = ((CraftLivingEntity) this.petEntity.getTarget()).getHandle(); Behavior behaviorSkill = myPet.getSkills().get(Behavior.class); if (behaviorSkill.getBehavior() != BehaviorMode.Duel) { return true; } else if (myPet.getDamage() <= 0 && myPet.getRangedDamage() <= 0) { return true; } else if (target.world != petEntity.world) { return true; } else if (petEntity.f(target) > 400) { return true; } else if (petEntity.f(((CraftPlayer) petEntity.getOwner().getPlayer()).getHandle()) > 600) { return true; } return false; }
@Override public boolean shouldFinish() { if (!petEntity.canMove()) { return true; } else if (petEntity.getTarget() == null) { return true; } EntityLiving target = ((CraftLivingEntity) petEntity.getTarget()).getHandle(); if (!target.isAlive()) { return true; } Behavior behaviorSkill = myPet.getSkills().get(Behavior.class); if (behaviorSkill.getBehavior() != BehaviorMode.Aggressive) { return true; } else if (myPet.getDamage() <= 0 && myPet.getRangedDamage() <= 0) { return true; } else if (target.world != petEntity.world) { return true; } else if (petEntity.f(target) > 400) { return true; } else if (petEntity.f(((CraftPlayer) petEntity.getOwner().getPlayer()).getHandle()) > 600) { return true; } return false; }
@Override public boolean shouldFinish() { if (!petEntity.canMove()) { return true; } if (!this.petEntity.hasTarget()) { return true; } EntityLiving target = ((CraftLivingEntity) this.petEntity.getTarget()).getHandle(); if (!target.isAlive()) { return true; } Behavior behaviorSkill = myPet.getSkills().get(Behavior.class); if (behaviorSkill.getBehavior() != BehaviorMode.Farm) { return true; } else if (myPet.getDamage() <= 0 && myPet.getRangedDamage() <= 0) { return true; } else if (target.world != petEntity.world) { return true; } else if (petEntity.f(target) > 400) { return true; } else if (petEntity.f(((CraftPlayer) petEntity.getOwner().getPlayer()).getHandle()) > 600) { return true; } return false; }
@Override public boolean shouldStart() { Behavior behaviorSkill = myPet.getSkills().get(Behavior.class); if (!behaviorSkill.isActive() || behaviorSkill.getBehavior() != BehaviorMode.Farm) { return false; } if (myPet.getDamage() <= 0 && myPet.getRangedDamage() <= 0) { return false; } if (!petEntity.canMove()) { return false; } if (petEntity.hasTarget()) { return false; } for (Object entityObj : this.petEntity.world.a(EntityMonster.class, this.petOwnerEntity.boundingBox.grow((double) range, (double) range, (double) range))) { EntityMonster entityMonster = (EntityMonster) entityObj; if (!entityMonster.isAlive() || petEntity.f(entityMonster) > 91) { continue; } if (!MyPetApi.getHookHelper().canHurt(myPet.getOwner().getPlayer(), entityMonster.getBukkitEntity())) { continue; } this.target = entityMonster; return true; } return false; }
@Override public boolean shouldStart() { if (myPet.getDamage() <= 0 && myPet.getRangedDamage() <= 0) { return false;
return false; if (myPet.getDamage() <= 0 && myPet.getRangedDamage() <= 0) { return false;
return false; if (myPet.getDamage() <= 0 && myPet.getRangedDamage() <= 0) { return false;
return false; if (myPet.getDamage() <= 0 && myPet.getRangedDamage() <= 0) { return false;