1package com.fs.starfarer.api.impl.campaign.missions.cb;
4import java.util.ArrayList;
6import java.util.Random;
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.StarSystemAPI;
12import com.fs.starfarer.api.campaign.TextPanelAPI;
13import com.fs.starfarer.api.campaign.econ.MarketAPI;
14import com.fs.starfarer.api.characters.PersonAPI;
15import com.fs.starfarer.api.fleet.FleetMemberAPI;
16import com.fs.starfarer.api.fleet.FleetMemberType;
17import com.fs.starfarer.api.impl.campaign.CoreReputationPlugin.RepRewards;
18import com.fs.starfarer.api.impl.campaign.DebugFlags;
19import com.fs.starfarer.api.impl.campaign.missions.hub.BaseHubMission.Abortable;
20import com.fs.starfarer.api.impl.campaign.missions.hub.BaseHubMission.EntityAdded;
21import com.fs.starfarer.api.impl.campaign.missions.hub.HubMissionWithBarEvent;
22import com.fs.starfarer.api.ui.TooltipMakerAPI;
23import com.fs.starfarer.api.util.Misc;
51 List<FleetMemberAPI> list =
new ArrayList<FleetMemberAPI>();
55 float iconSize = 440 / cols;
60 if (list.size() >= max)
break;
62 if (member.isFighterWing())
continue;
65 if (member.isFlagship()) {
71 if (!list.isEmpty()) {
75 "an intel assessment shows up on your tripad.", 0f);
78 int num = members.size() - list.size();
81 else if (num < 10) num = 5;
82 else if (num < 20) num = 10;
86 info.
addPara(
"The assessment notes the fleet may contain upwards of %s other ships" +
87 " of lesser significance.", opad, h,
"" + num);
89 info.
addPara(
"The assessment notes the fleet may contain several other ships" +
90 " of lesser significance.", opad);
92 info.
addPara(
"It appears to contain complete information about the scope of the assignment.", opad);
115 float iconSize = width / cols;
122 boolean deflate =
false;
128 List<FleetMemberAPI> list =
new ArrayList<FleetMemberAPI>();
129 Random random =
new Random(person.
getNameString().hashCode() * 170000);
134 if (list.size() >= max)
break;
136 if (member.isFighterWing())
continue;
146 if (member.isFlagship()) {
152 if (!list.isEmpty()) {
153 info.
addPara(
"The bounty posting contains partial intel on some of the ships in the target fleet.", opad);
156 int num = members.size() - list.size();
159 if (num < 5) num = 0;
160 else if (num < 10) num = 5;
161 else if (num < 20) num = 10;
165 info.
addPara(
"The intel assessment notes the fleet may contain upwards of %s other ships" +
166 " of lesser significance.", opad, h,
"" + num);
167 }
else if (num > 0) {
168 info.
addPara(
"The intel assessment notes the fleet may contain several other ships" +
169 " of lesser significance.", opad);
191 return "$" +
getId() +
"_numCompleted";
194 return "$" +
getId() +
"_numCompleted";
209 return getClass().getSimpleName();
217 return RepRewards.TINY;
221 return RepRewards.MEDIUM;
224 protected static Object
STAGE =
new Object();
234 List<Abortable> before =
new ArrayList<Abortable>(mission.
getChanges());
236 if (fleets.isEmpty())
return null;
239 mission.
getChanges().add(
new EntityAdded(fleet));
242 if (!before.contains(curr)) {
254 if (num ==
null) num = 0;
260 if (num ==
null) num = 0;
272 if (num ==
null) num = 0;
279 if (num ==
null) num = 0;
313 if (difficulty <= 3) {
314 data.repPerson = RepRewards.SMALL;
315 data.repFaction = RepRewards.TINY;
316 }
else if (difficulty <= 7) {
317 data.repPerson = RepRewards.MEDIUM;
318 data.repFaction = RepRewards.SMALL;
320 data.repPerson = RepRewards.HIGH;
321 data.repFaction = RepRewards.SMALL;
static FactoryAPI getFactory()
static SectorAPI getSector()
static boolean PERSON_BOUNTY_DEBUG_INFO
int getNumCompletedGlobal()
static float DEFAULT_FREQUENCY
String getBaseBountyName(HubMissionWithBarEvent mission, CustomBountyData data)
boolean isReduceFrequencyBasedOnNumberOfCompletions()
boolean isRepeatableGlobally()
void notifyCompleted(HubMissionWithBarEvent mission, CustomBountyData data)
int getNumCompletedForPerson(PersonAPI person)
void setRepChangesBasedOnDifficulty(CustomBountyData data, int difficulty)
String getNumCompletedGlobalKey()
StarSystemAPI getSystemWithNoTimeLimit(CustomBountyData data)
String getBountyNamePostfix(HubMissionWithBarEvent mission, CustomBountyData data)
void addIntelAssessment(TextPanelAPI text, HubMissionWithBarEvent mission, CustomBountyData data)
CustomBountyData createBounty(MarketAPI createdAt, HubMissionWithBarEvent mission, int difficulty, Object bountyStage)
void addFleetDescription(TooltipMakerAPI info, float width, float height, HubMissionWithBarEvent mission, CustomBountyData data)
String getNumCompletedPerPersonKey()
void beginFleet(HubMissionWithBarEvent mission, CustomBountyData data)
void updateInteractionData(HubMissionWithBarEvent mission, CustomBountyData data)
boolean isRepeatablePerPerson()
float getFrequency(HubMissionWithBarEvent mission, int difficulty)
boolean systemMatchesRequirement(StarSystemAPI system)
void notifyAccepted(MarketAPI createdAt, HubMissionWithBarEvent mission, CustomBountyData data)
CampaignFleetAPI createFleet(HubMissionWithBarEvent mission, CustomBountyData data)
void notifyFailed(HubMissionWithBarEvent mission, CustomBountyData data)
void addTargetLocationAndDescriptionBulletPoint(TooltipMakerAPI info, Color tc, float pad, HubMissionWithBarEvent mission, CustomBountyData data)
void addTargetLocationAndDescription(TooltipMakerAPI info, float width, float height, HubMissionWithBarEvent mission, CustomBountyData data)
static float DEFAULT_DAYS
List< Abortable > abortWhenOtherVersionAccepted
List< Abortable > getChanges()
List< CampaignFleetAPI > runStageTriggersReturnFleets(Object stage)
void triggerFleetOnlyEngageableWhenVisibleToPlayer()
void triggerMakeFleetIgnoreOtherFleetsExceptPlayer()
void beginStageTrigger(Object ... stages)
static String ucFirst(String str)
static Color getHighlightColor()
FleetMemberAPI createFleetMember(FleetMemberType type, String variantOrWingId)
FleetDataAPI getFleetData()
List< FleetMemberAPI > getMembersListCopy()
String getNameWithLowercaseType()
String getNameWithLowercaseTypeShort()
MemoryAPI getMemoryWithoutUpdate()
TooltipMakerAPI beginTooltip()
void set(String key, Object value)
MemoryAPI getMemoryWithoutUpdate()
void setCaptain(PersonAPI commander)
static int MAX_DIFFICULTY
static int MIN_DIFFICULTY