24 public boolean execute(String ruleId, InteractionDialogAPI dialog, List<Token> params, Map<String, MemoryAPI> memoryMap) {
25 if (dialog ==
null)
return false;
26 if (!(dialog.getInteractionTarget() instanceof CampaignFleetAPI))
return false;
28 final String factionId = params.get(0).getString(memoryMap);
29 float range = params.get(1).getFloat(memoryMap);
30 float days = params.get(2).getFloat(memoryMap);
32 boolean makeAware =
false;
33 if (params.size() >= 4) {
34 makeAware = params.get(3).getBoolean(memoryMap);
38 List<CampaignFleetAPI> fleets = Misc.findNearbyFleets(dialog.getInteractionTarget(), range,
new FleetFilter() {
39 public boolean accept(CampaignFleetAPI curr) {
40 return curr.getFaction().getId().equals(factionId);
44 if (dialog.getInteractionTarget() instanceof CampaignFleetAPI) {
45 CampaignFleetAPI fleet = (CampaignFleetAPI) dialog.getInteractionTarget();
46 if (fleet.getFaction().getId().equals(factionId)) {
47 MemoryAPI memory = fleet.getMemoryWithoutUpdate();
48 memory.set(MemFlags.MEMORY_KEY_MAKE_HOSTILE,
true, days);
50 memory.set(MemFlags.MEMORY_KEY_SAW_PLAYER_WITH_TRANSPONDER_ON,
true);
55 for (CampaignFleetAPI curr : fleets) {
56 if (curr == dialog.getInteractionTarget())
continue;
58 MemoryAPI memory = curr.getMemoryWithoutUpdate();
62 memory.set(MemFlags.MEMORY_KEY_MAKE_HOSTILE,
true, days);
64 memory.set(MemFlags.MEMORY_KEY_SAW_PLAYER_WITH_TRANSPONDER_ON,
true);