1package com.fs.starfarer.api.impl.campaign.missions.cb;
4import java.util.ArrayList;
7import com.fs.starfarer.api.Global;
8import com.fs.starfarer.api.campaign.CampaignFleetAPI;
9import com.fs.starfarer.api.campaign.FactionAPI;
10import com.fs.starfarer.api.campaign.TextPanelAPI;
11import com.fs.starfarer.api.campaign.econ.Industry;
12import com.fs.starfarer.api.campaign.econ.MarketAPI;
13import com.fs.starfarer.api.characters.PersonAPI;
14import com.fs.starfarer.api.fleet.FleetMemberAPI;
15import com.fs.starfarer.api.fleet.FleetMemberType;
16import com.fs.starfarer.api.impl.campaign.DebugFlags;
17import com.fs.starfarer.api.impl.campaign.econ.impl.OrbitalStation;
18import com.fs.starfarer.api.impl.campaign.ids.Conditions;
19import com.fs.starfarer.api.impl.campaign.ids.Industries;
20import com.fs.starfarer.api.impl.campaign.missions.cb.BaseCustomBounty.Stage;
21import com.fs.starfarer.api.impl.campaign.missions.hub.HubMissionWithBarEvent;
22import com.fs.starfarer.api.ui.TooltipMakerAPI;
23import com.fs.starfarer.api.util.Misc;
24import com.fs.starfarer.api.util.WeightedRandomPicker;
35 if (
getStations(mission, difficulty).isEmpty())
return 0f;
41 List<FleetMemberAPI> list =
new ArrayList<FleetMemberAPI>();
45 float iconSize = 440 / cols;
49 if (list.size() >= max)
break;
51 if (member.isFighterWing())
continue;
54 if (member.isFlagship()) {
60 if (!list.isEmpty()) {
64 "an intel assessment shows up on your tripad.", 0f);
69 "be supported by a number of patrols.",
82 float iconSize = width / cols;
89 boolean deflate =
false;
95 List<FleetMemberAPI> list =
new ArrayList<FleetMemberAPI>();
100 if (list.size() >= max)
break;
102 if (member.isFighterWing())
continue;
105 if (member.isFlagship()) {
111 if (!list.isEmpty()) {
112 info.
addPara(
"The bounty posting contains partial intel about the station.", opad);
115 int num = members.size() - list.size();
118 if (num < 5) num = 0;
119 else if (num < 10) num = 5;
120 else if (num < 20) num = 10;
125 "be supported by a number of patrols.",
137 List<CampaignFleetAPI> stations =
new ArrayList<CampaignFleetAPI>();
140 if (market.isHidden())
continue;
141 if (market.isPlayerOwned())
continue;
143 if (!market.getFaction().isHostileTo(faction))
continue;
154 if (difficulty == 10 && !starfortress)
continue;
155 if ((difficulty == 8 || difficulty == 9) && !battlestation)
continue;
156 if (!battlestation && !starfortress && difficulty >= 8)
continue;
174 data.difficulty = difficulty;
181 data.fleet = picker.
pick();
182 if (data.
fleet ==
null)
return null;
185 if (market ==
null)
return null;
187 data.market = market;
188 data.custom2 = bountyStage;
191 if (data.
system ==
null)
return null;
230 return super.getMaxDifficulty();
static SettingsAPI getSettings()
static FactoryAPI getFactory()
static SectorAPI getSector()
static boolean PERSON_BOUNTY_DEBUG_INFO
IndustrySpecAPI getSpec()
static final String DECIVILIZED
static final String TAG_STARFORTRESS
static final String TAG_BATTLESTATION
void setRepChangesBasedOnDifficulty(CustomBountyData data, int difficulty)
void addIntelAssessment(TextPanelAPI text, HubMissionWithBarEvent mission, CustomBountyData data)
float getFrequency(HubMissionWithBarEvent mission, int difficulty)
void addFleetDescription(TooltipMakerAPI info, float width, float height, HubMissionWithBarEvent mission, CustomBountyData data)
String getBountyNamePostfix(HubMissionWithBarEvent mission, CustomBountyData data)
void notifyAccepted(MarketAPI createdAt, HubMissionWithBarEvent mission, CustomBountyData data)
List< CampaignFleetAPI > getStations(HubMissionWithBarEvent mission, int difficulty)
CustomBountyData createBounty(MarketAPI createdAt, HubMissionWithBarEvent mission, int difficulty, Object bountyStage)
static int getBaseBounty(int difficulty, float mult, BaseHubMission mission)
static float ENEMY_STATION_FREQ
static float ENEMY_STATION_MULT
static float ENEMY_STATION_DAYS
void setStageOnHostilitiesEnded(Object to, PersonAPI person, MarketAPI market)
void connectWithHostilitiesEnded(Object from, Object to, PersonAPI person, MarketAPI market)
void triggerCreateMediumPatrolAroundMarket(MarketAPI market, Object stage, float extraSuspicion)
void triggerCreateSmallPatrolAroundMarket(MarketAPI market, Object stage, float extraSuspicion)
void triggerCreateLargePatrolAroundMarket(MarketAPI market, Object stage, float extraSuspicion)
static String ucFirst(String str)
static MarketAPI getStationMarket(CampaignFleetAPI station)
static Color getHighlightColor()
static CampaignFleetAPI getStationFleet(MarketAPI market)
static Industry getStationIndustry(MarketAPI market)
void addAll(Collection< T > items)
FleetMemberAPI createFleetMember(FleetMemberType type, String variantOrWingId)
String getSpriteName(String category, String id)
FleetDataAPI getFleetData()
String getDisplayNameWithArticleWithoutArticle()
String getDisplayNameWithArticle()
List< FleetMemberAPI > getMembersListCopy()
StarSystemAPI getStarSystem()
TooltipMakerAPI beginTooltip()
List< MarketAPI > getMarketsCopy()
void setCaptain(PersonAPI commander)
boolean hasTag(String tag)