21 public boolean execute(String ruleId, InteractionDialogAPI dialog, List<Token> params, Map<String, MemoryAPI> memoryMap) {
24 float range = Float.parseFloat(params.get(0).string);
25 String factionId = params.get(1).getString(memoryMap);
26 String varName = params.get(2).string;
27 String value = params.get(3).getString(memoryMap);
28 float dur = Float.parseFloat(params.get(4).string);
30 final SectorEntityToken target = dialog.getInteractionTarget();
31 if (target.getContainingLocation() ==
null)
return false;
33 List<CampaignFleetAPI> fleets = target.getContainingLocation().getFleets();
34 for (CampaignFleetAPI fleet : fleets) {
35 if (fleet == target)
continue;
36 if (!fleet.getFaction().getId().equals(factionId))
continue;
37 if (fleet.getAI() instanceof CampaignFleetAIAPI) {
38 float dist = Misc.getDistance(target.getLocation(), fleet.getLocation());
40 fleet.getMemoryWithoutUpdate().set(varName, value, dur);