22 public boolean execute(String ruleId, InteractionDialogAPI dialog, List<Token> params, Map<String, MemoryAPI> memoryMap) {
24 String factionId = params.get(0).getString(memoryMap);
27 for (CampaignFleetAPI fleet : playerFleet.getContainingLocation().getFleets()) {
28 if (fleet.getFaction().isPlayerFaction())
continue;
30 if (!fleet.getFaction().getId().equals(factionId))
continue;
31 if (fleet.getBattle() !=
null)
continue;
32 if (fleet.isStationMode())
continue;
35 VisibilityLevel level = playerFleet.getVisibilityLevelTo(fleet);
36 if (level == VisibilityLevel.NONE)
continue;
38 if (fleet.getFleetData().getMembersListCopy().isEmpty())
continue;
40 float dist = Misc.getDistance(playerFleet.getLocation(), fleet.getLocation());
41 if (dist > 750f)
continue;
44 if (fleet.getAI() instanceof ModularFleetAIAPI) {
45 ModularFleetAIAPI ai = (ModularFleetAIAPI) fleet.getAI();
46 if (ai.getTacticalModule() !=
null &&
47 (ai.getTacticalModule().isFleeing() || ai.getTacticalModule().isMaintainingContact() ||
48 ai.getTacticalModule().isStandingDown())) {