use of eidolons.entity.handlers.active.Targeter in project Eidolons by IDemiurge.
the class ActionExecutor method createTargeter.
@Override
protected Targeter createTargeter(DC_ActiveObj active, ActiveMaster entityMaster) {
return new Targeter(active, entityMaster) {
@Override
public Targeting getTargeting() {
initTargetingMode();
if (AI_Manager.isRunning()) {
return super.getTargeting();
}
if (getAction().isAttackGeneric()) {
Conditions conditions = new OrConditions();
int maxRange = 0;
for (DC_ActiveObj attack : getAction().getSubActions()) {
if (attack.isThrow()) {
continue;
}
if (!attack.canBeActivated()) {
continue;
}
conditions.add(attack.getTargeting().getFilter().getConditions());
if (maxRange < attack.getRange()) {
maxRange = attack.getRange();
}
}
conditions.setFastFailOnCheck(true);
conditions = ConditionMaster.getFilteredConditions(conditions, DistanceCondition.class);
conditions.add(new DistanceCondition("" + maxRange));
SelectiveTargeting selectiveTargeting = new SelectiveTargeting(SELECTIVE_TARGETING_TEMPLATES.ATTACK, conditions);
return selectiveTargeting;
}
return super.getTargeting();
}
};
}
Aggregations