Starsector API
Loading...
Searching...
No Matches
RepairAll.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.rules.MemoryAPI;
11import com.fs.starfarer.api.fleet.FleetMemberAPI;
12import com.fs.starfarer.api.util.Misc.Token;
13
20public class RepairAll extends BaseCommandPlugin {
21
22 private static final Color HIGHLIGHT_COLOR = Global.getSettings().getColor("buttonShortcut");
23
24 public boolean execute(String ruleId, InteractionDialogAPI dialog, List<Token> params, Map<String, MemoryAPI> memoryMap) {
25 CampaignFleetAPI playerFleet = Global.getSector().getPlayerFleet();
26
27// TextPanelAPI textPanel = dialog.getTextPanel();
28
29// textPanel.addParagraph(getString("repair"));
30
31 boolean useSupplies = true;
32 if (params.size() >= 1) {
33 useSupplies = params.get(0).getBoolean(memoryMap);
34 }
35
36 float supplies = playerFleet.getCargo().getSupplies();
37 float needed = playerFleet.getLogistics().getTotalRepairAndRecoverySupplyCost();
38 if (needed > 0) needed = Math.max(1, Math.round(needed));
39
40// memoryMap.get("global").set("$repairSupplyCost", (int) needed);
41
42// textPanel.highlightLastInLastPara("" + (int) needed, HIGHLIGHT_COLOR);
43
44 for (FleetMemberAPI member : playerFleet.getFleetData().getMembersListCopy()) {
45 if (member.canBeRepaired() || (member.isFighterWing() && !member.getRepairTracker().isSuspendRepairs())) {
46 member.getStatus().repairFully();
47 float max = member.getRepairTracker().getMaxCR();
48 float curr = member.getRepairTracker().getBaseCR();
49 if (max > curr) {
50 member.getRepairTracker().applyCREvent(max - curr, "Repaired at dockyard");
51 }
52 }
53 }
54
55 if (needed > 0 && useSupplies) {
56 playerFleet.getCargo().removeSupplies(needed);
57 playerFleet.getLogistics().updateRepairUtilizationForUI();
58 }
59
60 return true;
61 }
62
63
64 private String getString(String id) {
65 CampaignFleetAPI playerFleet = Global.getSector().getPlayerFleet();
66
67 String str = Global.getSettings().getString("stationInteractionDialog", id);
68
69 float needed = playerFleet.getLogistics().getTotalRepairAndRecoverySupplyCost();
70 float supplies = playerFleet.getCargo().getSupplies();
71 str = str.replaceAll("\\$supplies", "" + (int) supplies);
72 str = str.replaceAll("\\$repairSupplyCost", "" + (int) Math.ceil(needed));
73 return str;
74 }
75}
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)
String getString(String category, String id)