1package com.fs.starfarer.api.impl.campaign.intel.punitive;
6import org.lwjgl.input.Keyboard;
8import com.fs.starfarer.api.Global;
9import com.fs.starfarer.api.campaign.CampaignFleetAPI;
10import com.fs.starfarer.api.campaign.FactionAPI;
11import com.fs.starfarer.api.campaign.InteractionDialogAPI;
12import com.fs.starfarer.api.campaign.InteractionDialogPlugin;
13import com.fs.starfarer.api.campaign.OptionPanelAPI;
14import com.fs.starfarer.api.campaign.RepLevel;
15import com.fs.starfarer.api.campaign.TextPanelAPI;
16import com.fs.starfarer.api.campaign.VisualPanelAPI;
17import com.fs.starfarer.api.campaign.ReputationActionResponsePlugin.ReputationAdjustmentResult;
18import com.fs.starfarer.api.campaign.rules.MemoryAPI;
19import com.fs.starfarer.api.combat.EngagementResultAPI;
20import com.fs.starfarer.api.impl.campaign.CoreReputationPlugin;
21import com.fs.starfarer.api.impl.campaign.CoreReputationPlugin.CustomRepImpact;
22import com.fs.starfarer.api.impl.campaign.CoreReputationPlugin.RepActionEnvelope;
23import com.fs.starfarer.api.impl.campaign.CoreReputationPlugin.RepActions;
24import com.fs.starfarer.api.impl.campaign.ids.Factions;
25import com.fs.starfarer.api.impl.campaign.ids.Sounds;
26import com.fs.starfarer.api.impl.campaign.intel.punitive.PunitiveExpeditionIntel.PunExOutcome;
27import com.fs.starfarer.api.impl.campaign.intel.punitive.PunitiveExpeditionManager.PunExData;
28import com.fs.starfarer.api.impl.campaign.rulecmd.AddRemoveCommodity;
29import com.fs.starfarer.api.impl.campaign.rulecmd.SetStoryOption;
30import com.fs.starfarer.api.ui.IntelUIAPI;
31import com.fs.starfarer.api.ui.TooltipMakerAPI;
32import com.fs.starfarer.api.util.Misc;
36 private static enum OptionId {
96 if (data !=
null) numAttempts = data.numAttempts;
98 int bribe = (int) (Math.pow(2, numAttempts) *
BRIBE_MULT);
112 textPanel.
addPara(
"Sufficient funding allocated to proper official and unofficial actors should " +
113 "ensure that the expedition does not go beyond the planning stages.");
119 textPanel.
addPara(
"A total of %s should be enough to get the job done, and will also " +
129 case USE_CONNECTIONS:
131 if (canUseConnections) {
132 textPanel.
addPara(
"You can use your connections to pull a few strings and ensure the operation " +
133 "never gets beyond the planning stages.");
136 " officials to stall out this kind of an operation.");
142 if (canUseConnections) {
155 options.
addOption(
"Allocate sufficient funds for bribes and other means of disrupting the planning", OptionId.BRIBE,
null);
156 options.
addOption(
"Use your connections to disrupt the planning", OptionId.USE_CONNECTIONS,
null);
195 if (!canUseConnections) {
210 "and you have several options at your disposal to ensure it never gets off the ground.");
214 if (optionData ==
null)
return;
216 OptionId option = (OptionId) optionData;
232 case USE_CONNECTIONS:
242 CustomRepImpact impact =
new CustomRepImpact();
245 new RepActionEnvelope(RepActions.CUSTOM,
static SectorAPI getSector()
static void addRequiredStanding(FactionAPI faction, RepLevel req, PersonAPI person, TextPanelAPI panel, TooltipMakerAPI info, Color tc, float pad, boolean orBetter)
static void addCurrentStanding(FactionAPI faction, PersonAPI person, TextPanelAPI panel, TooltipMakerAPI info, Color tc, float pad)
static final String PLAYER
static String STORY_POINT_SPEND_INDUSTRY
void sendUpdate(Object listInfoParam, TextPanelAPI textPanel)
void optionMousedOver(String optionText, Object optionData)
void backFromEngagement(EngagementResultAPI result)
void printOptionDesc(OptionId option)
PEAvertInteractionDialogPluginImpl(PunitiveExpeditionIntel intel, IntelUIAPI ui)
PunitiveExpeditionIntel intel
void init(InteractionDialogAPI dialog)
void advance(float amount)
CampaignFleetAPI playerFleet
void optionSelected(String text, Object optionData)
InteractionDialogAPI dialog
Map< String, MemoryAPI > getMemoryMap()
void addInitialDescSection(TooltipMakerAPI info, float initPad)
static final Object OUTCOME_UPDATE
void setOutcome(PunExOutcome outcome)
PunExData getDataFor(FactionAPI faction)
static PunitiveExpeditionManager getInstance()
void forceFail(boolean withUpdate)
OrganizeStage getOrganizeStage()
static void addCreditsLossText(int credits, TextPanelAPI text)
static boolean set(String ruleId, InteractionDialogAPI dialog, Map< String, MemoryAPI > memoryMap, String params)
static Color getStoryOptionColor()
static Color getTextColor()
static String getDGSCredits(float num)
static Color getNegativeHighlightColor()
static Color getHighlightColor()
MutableValue getCredits()
String getDisplayNameWithArticle()
boolean isAtWorst(String id, RepLevel level)
String getPersonNamePrefix()
void setOptionColor(Object optionId, Color color)
TextPanelAPI getTextPanel()
VisualPanelAPI getVisualPanel()
void addOptionSelectedText(Object optionId)
void setOptionOnEscape(String text, Object optionId)
OptionPanelAPI getOptionPanel()
void setTooltip(Object data, String tooltipText)
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()
ReputationAdjustmentResult adjustPlayerReputation(Object action, String factionId)
LabelAPI addPara(String text)
TooltipMakerAPI beginTooltip()
void showPlanetInfo(SectorEntityToken planet)
void setVisualFade(float in, float out)
SectorEntityToken getPrimaryEntity()
void updateUIForItem(IntelInfoPlugin plugin)