1package com.fs.starfarer.api.impl.campaign;
6import org.lwjgl.input.Keyboard;
8import com.fs.starfarer.api.Global;
9import com.fs.starfarer.api.campaign.CampaignFleetAPI;
10import com.fs.starfarer.api.campaign.CoreInteractionListener;
11import com.fs.starfarer.api.campaign.CoreUITabId;
12import com.fs.starfarer.api.campaign.InteractionDialogAPI;
13import com.fs.starfarer.api.campaign.InteractionDialogPlugin;
14import com.fs.starfarer.api.campaign.OptionPanelAPI;
15import com.fs.starfarer.api.campaign.PlanetAPI;
16import com.fs.starfarer.api.campaign.SectorEntityToken;
17import com.fs.starfarer.api.campaign.TextPanelAPI;
18import com.fs.starfarer.api.campaign.VisualPanelAPI;
19import com.fs.starfarer.api.campaign.rules.MemoryAPI;
20import com.fs.starfarer.api.combat.EngagementResultAPI;
21import com.fs.starfarer.api.fleet.FleetMemberAPI;
22import com.fs.starfarer.api.loading.Description;
23import com.fs.starfarer.api.loading.Description.Type;
27 private static enum OptionId {
76 if (optionData ==
null)
return;
78 OptionId option = (OptionId) optionData;
88 if (desc !=
null && desc.
hasText3()) {
91 addText(getString(
"approach"));
93 createInitialOptions();
101 visual.
showImagePortion(
"illustrations",
"hound_hangar", 640, 400, 0, 0, 480, 300);
106 addText(getString(
"tradeCargo"));
111 addText(getString(
"tradeShips"));
116 addText(getString(
"refit"));
122 createInitialOptions();
131 private void performRepairs() {
132 addText(getString(
"repair"));
139 member.getStatus().repairFully();
140 float max = member.getRepairTracker().getMaxCR();
141 float curr = member.getRepairTracker().getBaseCR();
143 member.getRepairTracker().applyCREvent(max - curr,
"Repaired at station");
152 private void createInitialOptions() {
157 options.
addOption(
"Transfer cargo or personnel", OptionId.TRADE_CARGO);
158 options.
setShortcut(OptionId.TRADE_CARGO, Keyboard.KEY_I,
false,
false,
false,
true);
159 options.
addOption(
"Transfer ships to or from this station", OptionId.TRADE_SHIPS);
160 options.
setShortcut(OptionId.TRADE_SHIPS, Keyboard.KEY_F,
false,
false,
false,
true);
161 options.
addOption(
"Make use of the dockyard's refitting facilities", OptionId.REFIT);
162 options.
setShortcut(OptionId.REFIT, Keyboard.KEY_R,
false,
false,
false,
true);
164 options.
addOption(
"Trade, or hire personnel", OptionId.TRADE_CARGO);
165 options.
setShortcut(OptionId.TRADE_CARGO, Keyboard.KEY_I,
false,
false,
false,
true);
166 options.
addOption(
"Buy or sell ships", OptionId.TRADE_SHIPS,
null);
167 options.
setShortcut(OptionId.TRADE_SHIPS, Keyboard.KEY_F,
false,
false,
false,
true);
168 options.
addOption(
"Make use of the dockyard's refitting facilities", OptionId.REFIT);
169 options.
setShortcut(OptionId.REFIT, Keyboard.KEY_R,
false,
false,
false,
true);
175 options.
addOption(
"Repair your ships at the station's dockyard", OptionId.REPAIR_ALL);
176 options.
setShortcut(OptionId.REPAIR_ALL, Keyboard.KEY_A,
false,
false,
false,
true);
179 options.
setEnabled(OptionId.REPAIR_ALL,
false);
180 options.
setTooltip(OptionId.REPAIR_ALL, getString(
"repairTooltipAlreadyRepaired"));
181 }
else if (supplies < needed) {
182 options.
setEnabled(OptionId.REPAIR_ALL,
false);
183 options.
setTooltip(OptionId.REPAIR_ALL, getString(
"repairTooltipNotEnough"));
185 options.
setTooltipHighlights(OptionId.REPAIR_ALL,
"" + (
int) Math.ceil(needed),
"" + (
int) supplies);
187 options.
setTooltip(OptionId.REPAIR_ALL, getString(
"repairTooltip"));
189 options.
setTooltipHighlights(OptionId.REPAIR_ALL,
"" + (
int) Math.ceil(needed),
"" + (
int) supplies);
193 options.
addOption(
"Leave", OptionId.LEAVE);
197 private OptionId lastOptionMousedOver =
null;
206 private void addText(String text) {
210 private void appendText(String text) {
214 private String getString(String
id) {
217 String fleetOrShip =
"fleet";
219 fleetOrShip =
"ship";
221 fleetOrShip =
"fighter wing";
224 str = str.replaceAll(
"\\$fleetOrShip", fleetOrShip);
225 str = str.replaceAll(
"\\$stationName", station.
getName());
229 str = str.replaceAll(
"\\$supplies",
"" + (
int) supplies);
230 str = str.replaceAll(
"\\$repairSupplyCost",
"" + (
int) Math.ceil(needed));
static SettingsAPI getSettings()
static SectorAPI getSector()
void advance(float amount)
void optionMousedOver(String optionText, Object optionData)
void optionSelected(String text, Object optionData)
Map< String, MemoryAPI > getMemoryMap()
void backFromEngagement(EngagementResultAPI result)
void init(InteractionDialogAPI dialog)
Description getDescription(String id, Type type)
String getString(String category, String id)
Color getColor(String id)
FleetDataAPI getFleetData()
FleetLogisticsAPI getLogistics()
void removeSupplies(float quantity)
float getRelationship(String id)
boolean isNeutralFaction()
List< FleetMemberAPI > getMembersListCopy()
TextPanelAPI getTextPanel()
VisualPanelAPI getVisualPanel()
SectorEntityToken getInteractionTarget()
void addOptionSelectedText(Object optionId)
void setOptionOnEscape(String text, Object optionId)
OptionPanelAPI getOptionPanel()
void setTooltip(Object data, String tooltipText)
void setTooltipHighlightColors(Object data, Color ... colors)
void setTooltipHighlights(Object data, String ... highlights)
void addOption(String text, Object data)
void setEnabled(Object data, boolean enabled)
void setShortcut(Object data, int code, boolean ctrl, boolean alt, boolean shift, boolean putLast)
CampaignFleetAPI getPlayerFleet()
void setPaused(boolean paused)
String getCustomDescriptionId()
InteractionDialogImageVisual getCustomInteractionDialogImageVisual()
LabelAPI addParagraph(String text)
void appendToLastParagraph(String text)
void highlightLastInLastPara(String text, Color color)
void showCore(CoreUITabId tabId, SectorEntityToken other, boolean noCost, CoreInteractionListener listener)
void showPlanetInfo(SectorEntityToken planet)
void setVisualFade(float in, float out)
void showImagePortion(String category, String id, float x, float y, float w, float h, float xOffset, float yOffset, float displayWidth, float displayHeight)
void showImageVisual(InteractionDialogImageVisual visual)
void updateRepairUtilizationForUI()
float getTotalRepairAndRecoverySupplyCost()