22 public boolean execute(String ruleId, InteractionDialogAPI dialog, List<Token> params, Map<String, MemoryAPI> memoryMap) {
27 for (CampaignFleetAPI fleet : playerFleet.getContainingLocation().getFleets()) {
28 if (fleet.getAI() ==
null)
continue;
29 if (fleet.getFaction().isPlayerFaction())
continue;
30 if (fleet.isStationMode())
continue;
32 if (!fleet.isHostileTo(playerFleet))
continue;
33 if (fleet.getBattle() !=
null)
continue;
35 if (Misc.isInsignificant(fleet)) {
40 VisibilityLevel level = playerFleet.getVisibilityLevelTo(fleet);
46 if (level == VisibilityLevel.NONE)
continue;
48 if (fleet.getFleetData().getMembersListCopy().isEmpty())
continue;
50 float dist = Misc.getDistance(playerFleet.getLocation(), fleet.getLocation());
51 if (dist > 1500f)
continue;
54 if (fleet.getAI() instanceof ModularFleetAIAPI) {
55 ModularFleetAIAPI ai = (ModularFleetAIAPI) fleet.getAI();
56 if (ai.getTacticalModule() !=
null &&
57 (ai.getTacticalModule().isFleeing() || ai.getTacticalModule().isMaintainingContact() ||
58 ai.getTacticalModule().isStandingDown())) {