Search in sources :

Example 1 with PriorityManagerImpl

use of eidolons.game.battlecraft.ai.tools.priority.PriorityManagerImpl in project Eidolons by IDemiurge.

the class DefaultActionHandler method pickAutomatically.

// 
private static DC_ActiveObj pickAutomatically(List<DC_ActiveObj> subActions, BattleFieldObject target) {
    DC_ActiveObj pick = null;
    int max = 0;
    for (DC_ActiveObj attack : subActions) {
        if (attack.getActiveWeapon().isNatural())
            if (attack.getOwnerObj().getWeapon(attack.isOffhand()) != null)
                continue;
        if (!attack.canBeActivated(attack.getRef(), true))
            continue;
        if (!attack.canBeTargeted(target.getId()))
            continue;
        DC_PriorityManager.toggleImplementation(new PriorityManagerImpl(target.getGame().getAiManager()) {

            @Override
            public Unit getUnit() {
                return attack.getOwnerObj();
            }
        });
        int priority = 0;
        try {
            priority = DC_PriorityManager.getAttackPriority(attack, target);
        } catch (Exception e) {
            main.system.ExceptionMaster.printStackTrace(e);
        } finally {
            DC_PriorityManager.toggleImplementation(null);
        }
        if (priority >= max) {
            pick = attack;
            max = priority;
        }
    }
    return pick;
}
Also used : PriorityManagerImpl(eidolons.game.battlecraft.ai.tools.priority.PriorityManagerImpl) Unit(eidolons.entity.obj.unit.Unit)

Aggregations

Unit (eidolons.entity.obj.unit.Unit)1 PriorityManagerImpl (eidolons.game.battlecraft.ai.tools.priority.PriorityManagerImpl)1