1package com.fs.starfarer.api.impl.campaign.intel.bar.events;
6import com.fs.starfarer.api.Global;
7import com.fs.starfarer.api.campaign.CampaignFleetAPI;
8import com.fs.starfarer.api.campaign.CargoAPI;
9import com.fs.starfarer.api.campaign.FactionAPI;
10import com.fs.starfarer.api.campaign.InteractionDialogAPI;
11import com.fs.starfarer.api.campaign.OptionPanelAPI;
12import com.fs.starfarer.api.campaign.TextPanelAPI;
13import com.fs.starfarer.api.campaign.econ.MarketAPI;
14import com.fs.starfarer.api.campaign.rules.MemoryAPI;
15import com.fs.starfarer.api.characters.FullName.Gender;
16import com.fs.starfarer.api.characters.MutableCharacterStatsAPI;
17import com.fs.starfarer.api.characters.PersonAPI;
18import com.fs.starfarer.api.characters.SkillSpecAPI;
19import com.fs.starfarer.api.impl.campaign.events.OfficerManagerEvent;
20import com.fs.starfarer.api.impl.campaign.events.OfficerManagerEvent.SkillPickPreference;
21import com.fs.starfarer.api.impl.campaign.ids.Factions;
22import com.fs.starfarer.api.impl.campaign.ids.Ranks;
23import com.fs.starfarer.api.impl.campaign.ids.Sounds;
24import com.fs.starfarer.api.impl.campaign.intel.bar.PortsideBarData;
25import com.fs.starfarer.api.impl.campaign.intel.bases.LuddicPathBaseIntel;
26import com.fs.starfarer.api.impl.campaign.intel.bases.LuddicPathCellsIntel;
27import com.fs.starfarer.api.impl.campaign.intel.bases.PirateBaseIntel;
28import com.fs.starfarer.api.impl.campaign.rulecmd.AddRemoveCommodity;
29import com.fs.starfarer.api.impl.campaign.rulecmd.SetStoryOption;
30import com.fs.starfarer.api.impl.campaign.rulecmd.SetStoryOption.BaseOptionStoryPointActionDelegate;
31import com.fs.starfarer.api.impl.campaign.rulecmd.SetStoryOption.StoryOptionParams;
32import com.fs.starfarer.api.ui.LabelAPI;
33import com.fs.starfarer.api.ui.TooltipMakerAPI;
34import com.fs.starfarer.api.util.Misc;
38 public static enum OptionId {
48 public static int COST = 10000;
62 if (cell.isSleeper())
continue;
63 if (cell.getSleeperTimeout() > 0)
continue;
64 if (cell.getMarket() ==
market)
return true;
76 if (this.market ==
market)
return;
87 true,
null,
true,
false, 0,
random);
99 "with a desperate gleam in " +
getHisOrHer() +
" eyes.");
116 if (!(optionData instanceof OptionId)) {
119 OptionId option = (OptionId) optionData;
134 text.
addPara(
"After a minute or two of waiting in the alley, the door opens and the Pather " +
136 text.
addPara(
"\"I know who you are\", " +
getHeOrShe() +
" says. \"I need your help. If they find " +
137 "out what I've done... well, let's just say my future with the Path is likely to be a short one. " +
138 "So, how about this: you arrange a new identity for me, and I tell you where " +
139 "the base supplying the Pather cells at this colony is located.\"");
141 boolean canAccept =
COST <= credits;
143 " asks will run you about %s. You have %s available.",
172 text.
addPara(
"You leave the back alley and return to the bar.");
184 String
id =
"join_id";
201 new BaseOptionStoryPointActionDelegate(
dialog, params) {
204 public void confirm() {
208 "gratitude when " +
getHeOrShe() +
" realizes you're serious.");
228 public String getTitle() {
230 return "Taking in Luddic Path defector";
264 String skillName = spec.
getName();
266 skillName +=
" Aptitude";
285 addActionCostSection(info);
static SettingsAPI getSettings()
static SectorAPI getSector()
AvailableOfficer createOfficer(boolean isMerc, MarketAPI market, Random random)
static final String LUDDIC_PATH
static String POST_OFFICER
static String STORY_POINT_SPEND_LEADERSHIP
void sendUpdate(Object listInfoParam, TextPanelAPI textPanel)
boolean isPlayerVisible()
transient boolean noContinue
transient TextPanelAPI text
transient OptionPanelAPI options
transient Map< String, MemoryAPI > memoryMap
transient InteractionDialogAPI dialog
boolean shouldRemoveEvent()
void regen(MarketAPI market)
String getPersonFaction()
void addPromptAndOption(InteractionDialogAPI dialog, Map< String, MemoryAPI > memoryMap)
String getPersonPortrait()
LuddicPathBaseIntel intel
void init(InteractionDialogAPI dialog, Map< String, MemoryAPI > memoryMap)
LuddicPathBaseBarEvent(LuddicPathBaseIntel intel)
boolean shouldShowAtMarket(MarketAPI market)
void optionSelected(String optionText, Object optionData)
static List< LuddicPathCellsIntel > getCellsForBase(LuddicPathBaseIntel base, boolean includeSleeper)
static Object DISCOVERED_PARAM
static void addOfficerGainText(PersonAPI officer, TextPanelAPI text)
static void addCreditsLossText(int credits, TextPanelAPI text)
static boolean set(String ruleId, InteractionDialogAPI dialog, Map< String, MemoryAPI > memoryMap, String params)
static int getMaxOfficers(CampaignFleetAPI fleet)
static String getDGSCredits(float num)
static String lcFirst(String str)
static String ucFirst(String str)
static Color getNegativeHighlightColor()
static Color getHighlightColor()
static int getNumNonMercOfficers(CampaignFleetAPI fleet)
SkillSpecAPI getSkillSpec(String skillId)
List< String > getSortedSkillIds()
FleetDataAPI getFleetData()
MutableValue getCredits()
void addOfficer(PersonAPI person)
TextPanelAPI getTextPanel()
VisualPanelAPI getVisualPanel()
SectorEntityToken getInteractionTarget()
OptionPanelAPI getOptionPanel()
void setTooltip(Object data, String tooltipText)
void addOption(String text, Object data)
void setEnabled(Object data, boolean enabled)
CampaignFleetAPI getPlayerFleet()
FactionAPI getFaction(String factionId)
LabelAPI addPara(String text)
void showPersonInfo(PersonAPI person)
float getSkillLevel(String id)
MutableCharacterStatsAPI getStats()
PersonalityAPI getPersonalityAPI()
void setPostId(String postId)
boolean isAptitudeEffect()
void setHighlight(int start, int end)
void setHighlightColors(Color ... colors)