Starsector API
Loading...
Searching...
No Matches
RepairAvailable.java
Go to the documentation of this file.
1package com.fs.starfarer.api.impl.campaign.rulecmd;
2
3import java.awt.Color;
4import java.util.List;
5import java.util.Map;
6
7import com.fs.starfarer.api.Global;
8import com.fs.starfarer.api.campaign.CampaignFleetAPI;
9import com.fs.starfarer.api.campaign.InteractionDialogAPI;
10import com.fs.starfarer.api.campaign.RepLevel;
11import com.fs.starfarer.api.campaign.SectorEntityToken;
12import com.fs.starfarer.api.campaign.rules.MemKeys;
13import com.fs.starfarer.api.campaign.rules.MemoryAPI;
14import com.fs.starfarer.api.impl.campaign.ids.Factions;
15import com.fs.starfarer.api.util.Misc.Token;
16
17public class RepairAvailable extends BaseCommandPlugin {
18
19 private static final Color HIGHLIGHT_COLOR = Global.getSettings().getColor("buttonShortcut");
20
21 public boolean execute(String ruleId, InteractionDialogAPI dialog, List<Token> params, Map<String, MemoryAPI> memoryMap) {
22 CampaignFleetAPI playerFleet = Global.getSector().getPlayerFleet();
23
24 float needed = playerFleet.getLogistics().getTotalRepairAndRecoverySupplyCost();
25 if (needed > 0) needed = Math.max(1, Math.round(needed));
26 memoryMap.get(MemKeys.GLOBAL).set("$repairSupplyCost", (int) needed, 0);
27
28 SectorEntityToken entity = dialog.getInteractionTarget();
29 if (entity.getMarket() != null && !entity.getMarket().hasSpaceport()) {
30 return false;
31 }
32
33 RepLevel level = entity.getFaction().getRelationshipLevel(Factions.PLAYER);
34 if (level.isAtWorst(RepLevel.SUSPICIOUS)) {
35 return true;
36 }
37
38
39 return false;
40 }
41}
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)