1package com.fs.starfarer.api.impl.campaign.missions;
7import com.fs.starfarer.api.Global;
8import com.fs.starfarer.api.campaign.CargoAPI;
9import com.fs.starfarer.api.campaign.CargoStackAPI;
10import com.fs.starfarer.api.campaign.InteractionDialogAPI;
11import com.fs.starfarer.api.campaign.SectorEntityToken;
12import com.fs.starfarer.api.campaign.SpecialItemData;
13import com.fs.starfarer.api.campaign.StarSystemAPI;
14import com.fs.starfarer.api.campaign.econ.MarketAPI;
15import com.fs.starfarer.api.campaign.listeners.CargoGainedListener;
16import com.fs.starfarer.api.campaign.listeners.ShowLootListener;
17import com.fs.starfarer.api.campaign.rules.MemoryAPI;
18import com.fs.starfarer.api.characters.PersonAPI;
19import com.fs.starfarer.api.combat.ShipAPI.HullSize;
20import com.fs.starfarer.api.combat.ShipHullSpecAPI;
21import com.fs.starfarer.api.combat.WeaponAPI.WeaponSize;
22import com.fs.starfarer.api.impl.campaign.ids.Factions;
23import com.fs.starfarer.api.impl.campaign.ids.FleetTypes;
24import com.fs.starfarer.api.impl.campaign.ids.Items;
25import com.fs.starfarer.api.impl.campaign.ids.Ranks;
26import com.fs.starfarer.api.impl.campaign.ids.Tags;
27import com.fs.starfarer.api.impl.campaign.missions.hub.HubMissionWithBarEvent;
28import com.fs.starfarer.api.impl.campaign.missions.hub.ReqMode;
29import com.fs.starfarer.api.loading.FighterWingSpecAPI;
30import com.fs.starfarer.api.loading.WeaponSpecAPI;
31import com.fs.starfarer.api.ui.SectorMapAPI;
32import com.fs.starfarer.api.ui.TooltipMakerAPI;
33import com.fs.starfarer.api.util.Misc;
34import com.fs.starfarer.api.util.WeightedRandomPicker;
46 public static enum Stage {
60 if (tier <= 0) qWeight = 0;
61 else if (tier == 1) qWeight = 1f;
62 else if (tier == 2) qWeight = 2f;
63 else if (tier >= 3) qWeight = 4f;
65 return (1f - qWeight) + qWeight * (1f + q);
76 String type = typePicker.
pick();
139 item =
item.replaceFirst(
" Item",
" item");
140 item =
item.replaceFirst(
" Blueprint",
" blueprint");
144 if (
item ==
null)
return "an Invalid Item";
146 String name =
"Invalid Item";
166 return spec.
getSize() == WeaponSize.LARGE;
169 return spec.
getHullSize().ordinal() >= HullSize.DESTROYER.ordinal();
190 if (person ==
null)
return false;
193 if (
item ==
null)
return false;
230 if (
system ==
null)
return false;
240 if (veryValuable) numScav += 2;
242 for (
int i = 0; i < numScav; i++) {
294 super.acceptImpl(dialog, memoryMap);
301 super.notifyEnding();
308 if (person ==
null || person.
getMarket() ==
null)
return;
static SettingsAPI getSettings()
static SectorAPI getSector()
boolean equals(Object obj)
static final String LUDDIC_PATH
static final String SCAVENGERS
static final String MERCENARY
static final String PIRATES
static final String INDEPENDENT
static final String SCAVENGER_MEDIUM
static final String PATROL_LARGE
static final String WEAPON_BP
static final String SHIP_BP
static final String TAG_RARE_BP
static final String FIGHTER_BP
static String POST_GANGSTER
static String POST_SMUGGLER
static String POST_CRIMINAL
static float PROB_TRY_TO_FIND_RUINS
String getMissionCompletionVerb()
boolean addNextStepText(TooltipMakerAPI info, Color tc, float pad)
String getMissionTypeNoun()
void addDescriptionForNonEndStage(TooltipMakerAPI info, float width, float height)
void reportSpecialCargoGainedFromRecoveredDerelict(CargoAPI loot, InteractionDialogAPI dialog)
String getItemNameLowercaseItem()
void reportAboutToShowLootToPlayer(CargoAPI loot, InteractionDialogAPI dialog)
float getQualityMultForTier(int tier)
boolean create(MarketAPI createdAt, boolean barEvent)
static float FREQ_FIGHTER
void acceptImpl(InteractionDialogAPI dialog, Map< String, MemoryAPI > memoryMap)
void updateInteractionDataImpl()
SectorEntityToken getMapLocation(SectorMapAPI map)
void setLocationAnywhere(boolean allowInsidePopulatedSystems, String requireLargestMarketNotHostileToFaction)
void triggerCreateFleet(FleetSize size, FleetQuality quality, String factionId, String type, SectorEntityToken roughlyWhere)
void triggerSetStandardAggroInterceptFlags()
void triggerSetAdjustStrengthBasedOnQuality(boolean randomize, float quality)
void setEncounterInHyper()
float getRewardMultFraction()
SectorEntityToken getMapLocationFor(SectorEntityToken entity)
boolean rollProbability(float p)
void setCurrentStage(Object next, InteractionDialogAPI dialog, Map< String, MemoryAPI > memoryMap)
boolean setPersonMissionRef(PersonAPI person, String key)
PersonImportance pickImportance()
void setGiverPost(String giverPost)
int getDistanceLY(MarketAPI market)
static int getRoundNumber(float num)
void setSuccessStage(Object id)
void setGiverRank(String giverRank)
void setGiverImportance(PersonImportance giverImportance)
void setGiverTags(String ... giverTags)
void findOrCreateGiver(MarketAPI market, boolean addToCommDirectory, boolean cleanUpOnMissionOverIfWasNewPerson)
void addSpecialItemDropOnlyUseInAcceptImplNotUndoneOnAbort(SectorEntityToken entity, SpecialItemData data)
void setGiverFaction(String factionId)
String pickOne(List< String > options)
String getWithoutArticle(String item)
void setStartingStage(Object startingStage)
void setGiverIsPotentialContactOnSuccess()
void requireEntityTags(ReqMode mode, String ... tags)
void preferSystemTags(ReqMode mode, String ... tags)
void requirePlanetUnexploredRuins()
void requirePlanetNotFullySurveyed()
void requirePlanetWithRuins()
void preferPlanetInDirectionOfOtherMissions()
void requireEntityUndiscovered()
void preferSystemUnexplored()
SectorEntityToken pickEntity()
void requirePlanetUnpopulated()
void preferEntityInDirectionOfOtherMissions()
void requireSystemInterestingAndNotCore()
void triggerFleetAllowLongPursuit()
void triggerFleetPatherNoDefaultTithe()
void triggerAutoAdjustFleetStrengthMajor()
void triggerMakeLowRepImpact()
void triggerOrderFleetPatrol(final StarSystemAPI system)
void beginWithinHyperspaceRangeTrigger(SectorEntityToken entity, float rangeLY, boolean requirePlayerInHyperspace, Object ... stages)
void triggerSetFleetAlwaysPursue()
void triggerSetFleetOfficers(OfficerNum num, OfficerQuality quality)
void triggerSetFleetGenericHailPermanent(String commsTrigger)
void triggerFleetSetTravelActionText(String travelText)
void triggerSpawnFleetNear(final SectorEntityToken entity, final String flag, final String refKey)
void triggerCreateFleet(FleetSize size, FleetQuality quality, String factionId, String type, StarSystemAPI roughlyWhere)
void triggerSetFleetFaction(final String factionId)
void triggerFleetSetPatrolActionText(String patrolText)
void triggerFleetSetWarnAttack(String warnCommsTrigger, String attackCommsTrigger, Object ... stages)
static String getWithDGS(float num)
static String ucFirst(String str)
static String getAOrAnFor(String word)
static Color getHighlightColor()
static boolean isPirateFaction(FactionAPI faction)
ShipHullSpecAPI getHullSpec(String hullId)
List< WeaponSpecAPI > getAllWeaponSpecs()
FighterWingSpecAPI getFighterWingSpec(String wingId)
WeaponSpecAPI getWeaponSpec(String weaponId)
List< ShipHullSpecAPI > getAllShipHullSpecs()
List< FighterWingSpecAPI > getAllFighterWingSpecs()
List< CargoStackAPI > getStacksCopy()
boolean knowsWeapon(String weaponId)
boolean knowsFighter(String wingId)
boolean knowsShip(String hullId)
InteractionDialogPlugin getPlugin()
Map< String, MemoryAPI > getMemoryMap()
String getNameWithLowercaseTypeShort()
FactionAPI getPlayerFaction()
ListenerManagerAPI getListenerManager()
StarSystemAPI getStarSystem()
SectorEntityToken getHyperspaceAnchor()
SectorEntityToken getCenter()
void addListener(Object listener)
void removeListener(Object listener)