21 public boolean execute(String ruleId, InteractionDialogAPI dialog, List<Token> params, Map<String, MemoryAPI> memoryMap) {
25 String factionId = params.get(0).getString(memoryMap);
27 boolean patrolMustCareAboutTransponder =
false;
28 if (params.size() > 1) {
29 patrolMustCareAboutTransponder = params.get(1).getBoolean(memoryMap);
35 for (CampaignFleetAPI fleet : playerFleet.getContainingLocation().getFleets()) {
36 if (!fleet.getFaction().getId().equals(factionId))
continue;
37 if (fleet.getFaction().isPlayerFaction())
continue;
38 if (fleet.getBattle() !=
null)
continue;
40 if (patrolMustCareAboutTransponder && !Misc.caresAboutPlayerTransponder(fleet))
continue;
44 VisibilityLevel level = playerFleet.getVisibilityLevelTo(fleet);
45 MemoryAPI mem = fleet.getMemoryWithoutUpdate();
46 if (!mem.contains(MemFlags.MEMORY_KEY_SAW_PLAYER_WITH_TRANSPONDER_OFF) &&
47 !mem.contains(MemFlags.MEMORY_KEY_PURSUE_PLAYER)) {
48 if (level == VisibilityLevel.NONE)
continue;
51 float dist = Misc.getDistance(fleet.getLocation(), playerFleet.getLocation());
52 if (dist > 1000f)
continue;
54 if (isPatrol(fleet))
return true;