1package com.fs.starfarer.api.impl.campaign.missions.academy;
7import org.lwjgl.util.vector.Vector2f;
9import com.fs.starfarer.api.Global;
10import com.fs.starfarer.api.campaign.InteractionDialogAPI;
11import com.fs.starfarer.api.campaign.econ.MarketAPI;
12import com.fs.starfarer.api.campaign.rules.MemoryAPI;
13import com.fs.starfarer.api.characters.PersonAPI;
14import com.fs.starfarer.api.fleet.FleetMemberAPI;
15import com.fs.starfarer.api.impl.campaign.CoreReputationPlugin.RepRewards;
16import com.fs.starfarer.api.impl.campaign.ids.Factions;
17import com.fs.starfarer.api.impl.campaign.ids.FleetTypes;
18import com.fs.starfarer.api.impl.campaign.ids.People;
19import com.fs.starfarer.api.impl.campaign.missions.DelayedFleetEncounter;
20import com.fs.starfarer.api.impl.campaign.rulecmd.AddRemoveCommodity;
21import com.fs.starfarer.api.impl.campaign.world.TTBlackSite;
22import com.fs.starfarer.api.ui.TooltipMakerAPI;
23import com.fs.starfarer.api.util.Misc;
24import com.fs.starfarer.api.util.Misc.Token;
28 public static enum Stage {
37 protected boolean create(MarketAPI createdAt,
boolean barEvent) {
38 if (!setGlobalReference(
"$gaRH_ref",
null)) {
42 callisto = getImportantPerson(People.IBRAHIM);
49 setStartingStage(Stage.RETURN_HAMATSU);
50 addSuccessStages(Stage.COMPLETED);
51 addFailureStages(Stage.FAILED);
53 connectWithGlobalFlag(Stage.RETURN_HAMATSU, Stage.COMPLETED,
"$gaRH_completed");
54 connectWithGlobalFlag(Stage.RETURN_HAMATSU, Stage.FAILED,
"$gaRH_failed");
55 makeImportant(
callisto,
"$gaRH_returnHere", Stage.RETURN_HAMATSU);
57 setCreditReward(100000);
58 setRepRewardPerson(RepRewards.EXTREME);
59 setRepRewardFaction(RepRewards.HIGH);
61 setRepPenaltyPerson(0f);
62 setRepPenaltyFaction(0f);
64 setPersonIsPotentialContactOnSuccess(
callisto, 1f);
69 protected boolean callAction(String action, String ruleId, InteractionDialogAPI dialog, List<Token> params,
70 Map<String, MemoryAPI> memoryMap) {
72 if (
"refusedToReturn".equals(action)) {
73 if (rollProbability(0.5f)) {
78 e.
triggerCreateFleet(FleetSize.MEDIUM, FleetQuality.VERY_HIGH, Factions.MERCENARY, FleetTypes.PATROL_LARGE,
new Vector2f());
79 e.triggerSetFleetOfficers(OfficerNum.MORE, OfficerQuality.HIGHER);
81 e.triggerSetFleetFlag(
"$gaRH_consequences");
82 e.triggerMakeNoRepImpact();
87 }
else if (
"transferHamatsu".equals(action)) {
88 FleetMemberAPI hamatsu =
null;
89 for (FleetMemberAPI member :
Global.
getSector().getPlayerFleet().getFleetData().getMembersListCopy()) {
90 if (member.getId().equals(TTBlackSite.HAMATSU_ID)) {
95 if (hamatsu !=
null) {
96 AddRemoveCommodity.addFleetMemberLossText(hamatsu, dialog.getTextPanel());
97 Global.
getSector().getPlayerFleet().getFleetData().removeFleetMember(hamatsu);
106 set(
"$gaRH_stage", getCurrentStage());
107 set(
"$gaRH_reward", Misc.getWithDGS(getCreditsReward()));
113 Color h = Misc.getHighlightColor();
114 if (currentStage == Stage.RETURN_HAMATSU) {
115 addStandardMarketDesc(
"Deliver the ISS Hamatsu to " +
callisto.getNameString()
116 +
" " +
callisto.getMarket().getOnOrAt() +
"",
callisto.getMarket(), info, opad);
117 info.addPara(
"She is sentimental about the ship - her first independent command - and is willing to pay a "
118 +
"large sum for its return.", opad);
124 Color h = Misc.getHighlightColor();
125 if (currentStage == Stage.RETURN_HAMATSU) {
126 info.addPara(
"Deliver the ISS Hamatsu to " +
callisto.getNameString(), tc, pad);
134 return "Return the ISS Hamatsu";
139 if (startingStage !=
null) {
142 return super.getPostfixForState();
static SectorAPI getSector()
void triggerCreateFleet(FleetSize size, FleetQuality quality, String factionId, String type, SectorEntityToken roughlyWhere)
void triggerSetStandardAggroInterceptFlags()
void triggerFleetSetFaction(String factionId)
void setLocationInnerSector(boolean allowInsidePopulatedSystems, String requireLargestMarketNotHostileToFaction)
boolean callAction(String action, String ruleId, InteractionDialogAPI dialog, List< Token > params, Map< String, MemoryAPI > memoryMap)
boolean create(MarketAPI createdAt, boolean barEvent)
boolean addNextStepText(TooltipMakerAPI info, Color tc, float pad)
String getPostfixForState()
void updateInteractionDataImpl()
void addDescriptionForNonEndStage(TooltipMakerAPI info, float width, float height)