Starsector API
Loading...
Searching...
No Matches
ShowRemainingCapacity.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.Global;
7import com.fs.starfarer.api.campaign.CargoAPI;
8import com.fs.starfarer.api.campaign.InteractionDialogAPI;
9import com.fs.starfarer.api.campaign.econ.CommoditySpecAPI;
10import com.fs.starfarer.api.campaign.rules.MemoryAPI;
11import com.fs.starfarer.api.impl.campaign.ids.Commodities;
12import com.fs.starfarer.api.util.Misc;
13import com.fs.starfarer.api.util.Misc.Token;
14
19
20 public boolean execute(String ruleId, InteractionDialogAPI dialog, List<Token> params, Map<String, MemoryAPI> memoryMap) {
21 if (dialog == null) return false;
22
23 String cid = Commodities.SUPPLIES; // show cargo capacity by default
24 if (params.size() >= 1) {
25 cid = params.get(0).getString(memoryMap);
26 }
27
28 CommoditySpecAPI spec = Global.getSettings().getCommoditySpec(cid);
29 CargoAPI cargo = Global.getSector().getPlayerFleet().getCargo();
30 String str = "";
31 int cap = 0;
32 if (spec.isFuel()) {
33 cap = cargo.getFreeFuelSpace();
34 if (cap > 1) {
35 str += "Your fleet's fuel tanks can hold an additional %s units of fuel.";
36 } else {
37 str += "Your fleet's fuel tanks are currently full.";
38 }
39 } else if (spec.isPersonnel()) {
40 cap = cargo.getFreeCrewSpace();
41 if (cap > 1) {
42 str += "Your fleet's crew quarters can accommodate an additional %s personnel.";
43 } else {
44 str += "Your fleet's crew berths are currently full.";
45 }
46 } else {
47 cap = (int) cargo.getSpaceLeft();
48 if (cap > 1) {
49 str += "Your fleet's holds can accommodate an additional %s units of cargo.";
50 } else {
51 str += "Your fleet's cargo holds are currently full.";
52 }
53 }
54 dialog.getTextPanel().addPara(str, Misc.getHighlightColor(), Misc.getWithDGS(cap));
55
56 return true;
57 }
58}
59
60
static SettingsAPI getSettings()
Definition Global.java:51
static SectorAPI getSector()
Definition Global.java:59
boolean execute(String ruleId, InteractionDialogAPI dialog, List< Token > params, Map< String, MemoryAPI > memoryMap)
CommoditySpecAPI getCommoditySpec(String commodityId)