Starsector API
Loading...
Searching...
No Matches
DeliveryMission.java
Go to the documentation of this file.
1package com.fs.starfarer.api.impl.campaign.rulecmd.missions;
2
3import java.util.List;
4import java.util.Map;
5
6import com.fs.starfarer.api.Global;
7import com.fs.starfarer.api.campaign.CampaignFleetAPI;
8import com.fs.starfarer.api.campaign.CargoAPI;
9import com.fs.starfarer.api.campaign.FactionAPI;
10import com.fs.starfarer.api.campaign.InteractionDialogAPI;
11import com.fs.starfarer.api.campaign.OptionPanelAPI;
12import com.fs.starfarer.api.campaign.SectorEntityToken;
13import com.fs.starfarer.api.campaign.TextPanelAPI;
14import com.fs.starfarer.api.campaign.comm.IntelInfoPlugin;
15import com.fs.starfarer.api.campaign.econ.MarketAPI;
16import com.fs.starfarer.api.campaign.rules.MemoryAPI;
17import com.fs.starfarer.api.impl.campaign.intel.bar.events.DeliveryMissionIntel;
18import com.fs.starfarer.api.impl.campaign.rulecmd.BaseCommandPlugin;
19import com.fs.starfarer.api.impl.campaign.rulecmd.salvage.MarketCMD;
20import com.fs.starfarer.api.util.Misc.Token;
21
25public class DeliveryMission extends BaseCommandPlugin {
26
27 protected CampaignFleetAPI playerFleet;
28 protected SectorEntityToken entity;
29 protected FactionAPI playerFaction;
30 protected FactionAPI entityFaction;
31 protected TextPanelAPI text;
32 protected OptionPanelAPI options;
33 protected CargoAPI playerCargo;
34 protected MemoryAPI memory;
35 protected MarketAPI market;
36 protected InteractionDialogAPI dialog;
37 protected Map<String, MemoryAPI> memoryMap;
38 protected FactionAPI faction;
39
40
41 public DeliveryMission() {
42
43 }
44
45 protected void init(SectorEntityToken entity) {
46 memory = entity.getMemoryWithoutUpdate();
47 this.entity = entity;
48 playerFleet = Global.getSector().getPlayerFleet();
49 playerCargo = playerFleet.getCargo();
50
51 playerFaction = Global.getSector().getPlayerFaction();
52 entityFaction = entity.getFaction();
53
54 faction = entity.getFaction();
55
56 market = entity.getMarket();
57 }
58
59 public boolean execute(String ruleId, InteractionDialogAPI dialog, List<Token> params, Map<String, MemoryAPI> memoryMap) {
60 this.dialog = dialog;
61 this.memoryMap = memoryMap;
62
63 String command = params.get(0).getString(memoryMap);
64 if (command == null) return false;
65
66 entity = dialog.getInteractionTarget();
67 init(entity);
68
70
71 text = dialog.getTextPanel();
72 options = dialog.getOptionPanel();
73
74 if (command.equals("completeMissions")) {
76 } else if (command.equals("checkCompletion")) {
77 return checkCompletion();
78 }
79
80
81
82 return true;
83 }
84
85 protected boolean checkCompletion() {
86 for (IntelInfoPlugin temp : Global.getSector().getIntelManager().getIntel(DeliveryMissionIntel.class)) {
87 DeliveryMissionIntel intel = (DeliveryMissionIntel) temp;
88 if (!intel.isAccepted()) continue;
89 if (intel.isEnding()) continue;
90
91 MarketAPI dest = intel.getDestination();
92 if (dest != market) continue;
93
94 if (intel.hasEnough()) return true;
95 }
96 return false;
97 }
98
99 protected void completeMissions() {
100 dialog.getTextPanel().addPara("You contact the relevant parties and drop off the cargo at the agreed-upon dockside locations.");
101
102 for (IntelInfoPlugin temp : Global.getSector().getIntelManager().getIntel(DeliveryMissionIntel.class)) {
103 DeliveryMissionIntel intel = (DeliveryMissionIntel) temp;
104 if (!intel.isAccepted()) continue;
105 if (intel.isEnding()) continue;
106
107 MarketAPI dest = intel.getDestination();
108 if (dest != market) continue;
109
110 if (intel.hasEnough()) {
111 intel.performDelivery(dialog);
112 }
113 }
114
115 options.clearOptions();
116 options.addOption("Continue", MarketCMD.DEBT_RESULT_CONTINUE);
117
118 }
119
120
121}
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
static SectorAPI getSector()
Definition Global.java:59
static MemoryAPI getEntityMemory(Map< String, MemoryAPI > memoryMap)
boolean execute(String ruleId, InteractionDialogAPI dialog, List< Token > params, Map< String, MemoryAPI > memoryMap)