Starsector API
Loading...
Searching...
No Matches
MakeNearbyFleetsNonHostile.java
Go to the documentation of this file.
1package com.fs.starfarer.api.impl.campaign.rulecmd;
2
3import java.util.List;
4import java.util.Map;
5
6import com.fs.starfarer.api.campaign.CampaignFleetAPI;
7import com.fs.starfarer.api.campaign.InteractionDialogAPI;
8import com.fs.starfarer.api.campaign.rules.MemoryAPI;
9import com.fs.starfarer.api.impl.campaign.ids.MemFlags;
10import com.fs.starfarer.api.util.Misc;
11import com.fs.starfarer.api.util.Misc.FleetFilter;
12import com.fs.starfarer.api.util.Misc.Token;
13
18
19 public boolean execute(String ruleId, InteractionDialogAPI dialog, List<Token> params, Map<String, MemoryAPI> memoryMap) {
20 if (dialog == null) return false;
21 if (dialog.getInteractionTarget() == null) return false;
22
23 final String factionId = params.get(0).getString(memoryMap);
24 String reason = params.get(1).getString(memoryMap);
25 float range = params.get(2).getFloat(memoryMap);
26 float days = params.get(3).getFloat(memoryMap);
27
28 List<CampaignFleetAPI> fleets = Misc.findNearbyFleets(dialog.getInteractionTarget(), range, new FleetFilter() {
29 public boolean accept(CampaignFleetAPI curr) {
30 return curr.getFaction().getId().equals(factionId);
31 }
32 });
33
34 for (CampaignFleetAPI curr : fleets) {
35 MemoryAPI memory = curr.getMemoryWithoutUpdate();
36 Misc.setFlagWithReason(memory, MemFlags.MEMORY_KEY_MAKE_NON_HOSTILE, reason, true, days);
37 }
38
39
40 return true;
41 }
42
43}
boolean execute(String ruleId, InteractionDialogAPI dialog, List< Token > params, Map< String, MemoryAPI > memoryMap)