1package com.fs.starfarer.api.impl.campaign.missions.askonia;
7import org.lwjgl.util.vector.Vector2f;
9import com.fs.starfarer.api.Global;
10import com.fs.starfarer.api.campaign.BattleAPI;
11import com.fs.starfarer.api.campaign.CampaignFleetAPI;
12import com.fs.starfarer.api.campaign.CargoAPI;
13import com.fs.starfarer.api.campaign.CargoAPI.CargoItemType;
14import com.fs.starfarer.api.campaign.ai.ModularFleetAIAPI;
15import com.fs.starfarer.api.campaign.CargoStackAPI;
16import com.fs.starfarer.api.campaign.FleetAssignment;
17import com.fs.starfarer.api.campaign.InteractionDialogAPI;
18import com.fs.starfarer.api.campaign.SectorEntityToken;
19import com.fs.starfarer.api.campaign.StarSystemAPI;
20import com.fs.starfarer.api.campaign.econ.MarketAPI;
21import com.fs.starfarer.api.campaign.rules.MemoryAPI;
22import com.fs.starfarer.api.characters.AbilityPlugin;
23import com.fs.starfarer.api.characters.PersonAPI;
24import com.fs.starfarer.api.combat.ShipVariantAPI;
25import com.fs.starfarer.api.fleet.FleetMemberAPI;
26import com.fs.starfarer.api.fleet.FleetMemberType;
27import com.fs.starfarer.api.impl.campaign.ids.Abilities;
28import com.fs.starfarer.api.impl.campaign.ids.Commodities;
29import com.fs.starfarer.api.impl.campaign.ids.Factions;
30import com.fs.starfarer.api.impl.campaign.ids.FleetTypes;
31import com.fs.starfarer.api.impl.campaign.ids.MemFlags;
32import com.fs.starfarer.api.impl.campaign.ids.People;
33import com.fs.starfarer.api.impl.campaign.ids.Ranks;
34import com.fs.starfarer.api.impl.campaign.missions.academy.GATransverseJump.Stage;
35import com.fs.starfarer.api.impl.campaign.missions.hub.HubMissionWithSearch;
36import com.fs.starfarer.api.impl.campaign.missions.hub.HubMissionWithTriggers.FleetQuality;
37import com.fs.starfarer.api.impl.campaign.missions.hub.HubMissionWithTriggers.FleetSize;
38import com.fs.starfarer.api.impl.campaign.missions.hub.HubMissionWithTriggers.OfficerNum;
39import com.fs.starfarer.api.impl.campaign.missions.hub.HubMissionWithTriggers.OfficerQuality;
40import com.fs.starfarer.api.impl.campaign.procgen.StarSystemGenerator;
41import com.fs.starfarer.api.impl.campaign.procgen.themes.SalvageSpecialAssigner;
42import com.fs.starfarer.api.impl.campaign.rulecmd.AddRemoveCommodity;
43import com.fs.starfarer.api.impl.campaign.rulecmd.AddShip;
44import com.fs.starfarer.api.impl.campaign.terrain.DebrisFieldTerrainPlugin.DebrisFieldParams;
45import com.fs.starfarer.api.impl.campaign.terrain.DebrisFieldTerrainPlugin.DebrisFieldSource;
46import com.fs.starfarer.api.ui.TooltipMakerAPI;
47import com.fs.starfarer.api.util.Misc;
48import com.fs.starfarer.api.util.Misc.Token;
54 public static enum Stage {
99 if (
ram ==
null)
return false;
102 if (
hyder ==
null)
return false;
105 if (
caden ==
null)
return false;
108 if (
macario ==
null)
return false;
112 if (
umbra ==
null)
return false;
116 if (
volturn ==
null)
return false;
120 if (
sindria ==
null)
return false;
160 connectWithGlobalFlag(Stage.AGAIN_WTH_MACARIO, Stage.EMERGENCY_INTERCEPT,
"$sdtu_emergencyIntercept");
239 List<Token> params,
final Map<String, MemoryAPI> memoryMap) {
251 if (
"spawnDebris".equals(action)) {
253 DebrisFieldParams p =
new DebrisFieldParams(
258 p.source = DebrisFieldSource.MIXED;
259 p.baseSalvageXP = 500;
286 }
else if (
"makeDerbisUnimportant".equals(action)) {
294 else if (
"shootEm".equals(action))
299 else if (
"endMusic".equals(action))
306 else if (
"playMusicMacario".equals(action))
311 else if (
"playMusicCaden".equals(action))
316 else if (
"playMusicHyder".equals(action))
321 else if (
"playMusicSons".equals(action))
326 else if (
"resumeMusic".equals(action))
332 else if (
"giveKineticBlasters".equals(action)) {
339 else if (
"giveGigacannon".equals(action)) {
346 else if (
"giveExecutor".equals(action)){
347 String variantId =
"executor_Hull";
354 else if (
"replacePatrolLeader".equals(action)) {
376 else if (
"tryMakeHyderImportant".equals(action)){
378 if (fleet.getName().equals(
"Askonia System Defense Armada")){
384 else if (
"tryMakeHyderUnimportant".equals(action)){
386 if (fleet.getName().equals(
"Askonia System Defense Armada")){
392 else if (
"tryMakeCadenImportant".equals(action)){
394 if (fleet.getName().equals(
"Lion's Guard Grand Armada")){
400 else if (
"tryMakeCadenUnimportant".equals(action)){
402 if (fleet.getName().equals(
"Lion's Guard Grand Armada")){
408 else if (
"makeMercHostile".equals(action)){
410 if (fleet.getMemoryWithoutUpdate().contains(
"$sdtu_merc")){
425 return super.callAction(action, ruleId, dialog, params, memoryMap);
436 info.
addPara(
"Meet Yannick Ram at his safehouse on Volturn. He has a plan to save the Sindrian Diktat from itself.", opad);
440 info.
addPara(
"Find and intercept a Sindrian Diktat patrol fleet led by the 'treasonous' officer. It can be found in the Askonia system.", opad);
443 info.
addPara(
"Use the 'treasonous' officer as leverage to gain access to Deputy Star Marshal Hyder. She can be found in command of the Askonia System Defense Armada, a large warfleet patrolling the Askonia star system.", opad);
446 info.
addPara(
"Report back to Macario about your conversation with Hyder.", opad);
450 info.
addPara(
"Extract a known double-agent who, while working for Horacio Caden, has betrayed the Sindrian Diktat.", opad);
454 info.
addPara(
"Use the 'treasonous' agent as leverage to gain access to Guard High Lieutenant-Executor Caden. He can be found in command of the Lion's Guard Grand Armada, a large warfleet patrolling the Askonia star system.", opad);
457 info.
addPara(
"Report back to Macario about your conversation with Caden.", opad);
461 info.
addPara(
"Intercept and assist or capture Macario's agent at the Fringe Jump-point of Askonia.", opad);
464 info.
addPara(
"Report back to Macario with news of his agent's demise.", opad);
472 info.
addPara(
"Meet Yannick Ram at his safehouse on Volturn.", tc, pad);
476 info.
addPara(
"Intercept the traitor's patrol fleet in the Askonia system.", tc, pad);
480 info.
addPara(
"Speak with Oxana Hyder. She commands the Askonia System Defense Armada.", tc, pad);
484 info.
addPara(
"Talk to Macario, on Sindria, about Hyder.", tc, pad);
488 info.
addPara(
"Extract the double agent from Umbra.", tc, pad);
492 info.
addPara(
"Speak with Horacio Caden. He commands the Lion's Guard Grand Armada.", tc, pad);
496 info.
addPara(
"Talk to Macario, on Sindria, about Caden.", tc, pad);
500 info.
addPara(
"Intercept Macario's agent at the given location.", tc, pad);
504 info.
addPara(
"Return to Macario, on Sindria, with news of his agent's death.", tc, pad);
512 return "The Usurpers";
520 return super.getPostfixForState();
static SettingsAPI getSettings()
static SoundPlayerAPI getSoundPlayer()
static FactoryAPI getFactory()
static SectorAPI getSector()
static final String EMERGENCY_BURN
static final String SHIP_WEAPONS
static final String DIKTAT
static final String MERCENARY
static final String PIRATES
static final String INDEPENDENT
static final String PATROL_LARGE
static final String PATROL_MEDIUM
static final String MERC_PRIVATEER
static final String MEMORY_KEY_ALLOW_LONG_PURSUIT
static String SPACE_LIEUTENANT
static String POST_FLEET_COMMANDER
boolean addNextStepText(TooltipMakerAPI info, Color tc, float pad)
String getPostfixForState()
static float EXTACT_AGENT_RAID_DIFFICULTY
boolean callAction(String action, String ruleId, final InteractionDialogAPI dialog, List< Token > params, final Map< String, MemoryAPI > memoryMap)
void updateInteractionDataImpl()
boolean create(MarketAPI createdAt, boolean barEvent)
void addDescriptionForNonEndStage(TooltipMakerAPI info, float width, float height)
void connectWithGlobalFlag(Object from, Object to, String flag)
void addSuccessStages(Object ... ids)
boolean setGlobalReference(String key)
static float getUnits(float lightYears)
MarketAPI getMarket(String id)
void makeImportant(PersonAPI person, String flag, Enum ... stages)
PersonAPI getImportantPerson(String id)
void setStageOnGlobalFlag(Object to, String flag)
void setPersonOverride(PersonAPI personOverride)
static void addStandardMarketDesc(String prefix, MarketAPI market, TooltipMakerAPI info, float pad)
transient Object startingStage
void setStartingStage(Object startingStage)
void setRepFactionChangesNone()
void setRepPersonChangesNone()
void triggerPickLocationTowardsPlayer(final SectorEntityToken entity, final float arc, final float dist)
void triggerAutoAdjustFleetStrengthMajor()
void triggerOrderFleetPatrol(final StarSystemAPI system)
void triggerMakeHostileAndAggressive()
void triggerMakeNonStoryCritical(MemoryAPI ... memoryArray)
void triggerMakeNonHostile()
void triggerMakeNoRepImpact()
void triggerSaveGlobalFleetRef(String key)
void triggerSetGlobalMemoryValue(final String key, final Object value)
void triggerMakeFleetIgnoredByOtherFleets()
void triggerSetFleetOfficers(OfficerNum num, OfficerQuality quality)
void triggerMakeFleetIgnoreOtherFleetsExceptPlayer()
void beginStageTrigger(Object ... stages)
void triggerFleetAddDefeatTrigger(String trigger)
void triggerFleetMakeImportant(String flag, Enum ... stages)
void triggerFleetSetName(String name)
void triggerSpawnFleetAtPickedLocation()
void triggerSetStandardAggroPirateFlags()
void triggerSetFleetMissionRef(final String key)
void triggerCreateFleet(FleetSize size, FleetQuality quality, String factionId, String type, StarSystemAPI roughlyWhere)
void triggerSetFleetFaction(final String factionId)
void triggerPickLocationAroundEntity(final float dist)
static void assignSpecialForDebrisField(SectorEntityToken entity)
static void addStackGainText(CargoStackAPI stack, TextPanelAPI text)
static void addShipGainText(FleetMemberAPI member, TextPanelAPI text)
static SectorEntityToken addDebrisField(LocationAPI loc, DebrisFieldParams params, Random random)
static void makeImportant(SectorEntityToken entity, String reason)
static void makeUnimportant(SectorEntityToken entity, String reason)
static Color getHighlightColor()
static void makeHostile(CampaignFleetAPI fleet)
FleetMemberAPI createFleetMember(FleetMemberType type, String variantOrWingId)
CargoStackAPI createCargoStack(CargoItemType type, Object data, CargoAPI cargo)
ShipVariantAPI getVariant(String variantId)
void setSuspendDefaultMusicPlayback(boolean suspendMusicPlayback)
void playCustomMusic(int fadeOutIfAny, int fadeIn, String musicSetId)
void restartCurrentMusic()
Vector2f getListenerPos()
SoundAPI playSound(String id, float pitch, float volume, Vector2f loc, Vector2f vel)
void leave(CampaignFleetAPI fleet, boolean engagedInHostilities)
CampaignFleetAIAPI getAI()
void setCommander(PersonAPI commander)
FleetDataAPI getFleetData()
void addWeapons(String id, int count)
PersonAPI createRandomPerson()
void addFleetMember(FleetMemberAPI member)
TextPanelAPI getTextPanel()
SectorEntityToken getInteractionTarget()
List< SectorEntityToken > getJumpPoints()
List< CampaignFleetAPI > getFleets()
CampaignFleetAPI getPlayerFleet()
FactionAPI getFaction(String factionId)
void setCircularOrbit(SectorEntityToken focus, float angle, float orbitRadius, float orbitDays)
MemoryAPI getMemoryWithoutUpdate()
void addAssignmentAtStart(FleetAssignment assignment, SectorEntityToken target, float maxDurationInDays, Script onCompletion)
StarSystemAPI getStarSystem()
PlanetAPI getPlanetEntity()
void set(String key, Object value)
void setRankId(String rank)
void setPostId(String postId)