Starsector API
Loading...
Searching...
No Matches
MakeNearbyFleetsHostile.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
23
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;
27
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);
31
32 boolean makeAware = false;
33 if (params.size() >= 4) {
34 makeAware = params.get(3).getBoolean(memoryMap);
35 }
36
37
38 List<CampaignFleetAPI> fleets = Misc.findNearbyFleets(dialog.getInteractionTarget(), range, new FleetFilter() {
39 public boolean accept(CampaignFleetAPI curr) {
40 return curr.getFaction().getId().equals(factionId);
41 }
42 });
43
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);
49 if (makeAware) {
50 memory.set(MemFlags.MEMORY_KEY_SAW_PLAYER_WITH_TRANSPONDER_ON, true);
51 }
52 }
53 }
54
55 for (CampaignFleetAPI curr : fleets) {
56 if (curr == dialog.getInteractionTarget()) continue;
57
58 MemoryAPI memory = curr.getMemoryWithoutUpdate();
59
60 //boolean stillSet = Misc.setFlagWithReason(memory, MemFlags.MEMORY_KEY_MAKE_HOSTILE, reason, true, days);
61
62 memory.set(MemFlags.MEMORY_KEY_MAKE_HOSTILE, true, days);
63 if (makeAware) {
64 memory.set(MemFlags.MEMORY_KEY_SAW_PLAYER_WITH_TRANSPONDER_ON, true);
65 }
66 }
67
68
69 return true;
70 }
71
72}
boolean execute(String ruleId, InteractionDialogAPI dialog, List< Token > params, Map< String, MemoryAPI > memoryMap)