Starsector API
Loading...
Searching...
No Matches
GAReturnHamatsu.java
Go to the documentation of this file.
1package com.fs.starfarer.api.impl.campaign.missions.academy;
2
3import java.awt.Color;
4import java.util.List;
5import java.util.Map;
6
7import org.lwjgl.util.vector.Vector2f;
8
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;
25
26public class GAReturnHamatsu extends GABaseMission { //implements ShipRecoveryListener {
27
28 public static enum Stage {
29 RETURN_HAMATSU,
30 COMPLETED,
31 FAILED,
32 }
33
35
36 @Override
37 protected boolean create(MarketAPI createdAt, boolean barEvent) {
38 if (!setGlobalReference("$gaRH_ref", null)) {
39 return false;
40 }
41
43 if (callisto == null) return false;
44
46
47 //setStoryMission();
48
49 setStartingStage(Stage.RETURN_HAMATSU);
50 addSuccessStages(Stage.COMPLETED);
51 addFailureStages(Stage.FAILED);
52
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);
56
57 setCreditReward(100000);
58 setRepRewardPerson(RepRewards.EXTREME);
59 setRepRewardFaction(RepRewards.HIGH);
60
61 setRepPenaltyPerson(0f); // handled in rules, is in fact very high
63
65
66 beginStageTrigger(Stage.COMPLETED);
67 triggerSetGlobalMemoryValue("$gaRH_missionCompleted", true);
69 endTrigger();
70
71 return true;
72 }
73
74 protected boolean callAction(String action, String ruleId, InteractionDialogAPI dialog, List<Token> params,
75 Map<String, MemoryAPI> memoryMap) {
76
77 if ("refusedToReturn".equals(action)) {
78 if (rollProbability(0.5f)) {
82 e.beginCreate();
83 e.triggerCreateFleet(FleetSize.MEDIUM, FleetQuality.VERY_HIGH, Factions.MERCENARY, FleetTypes.PATROL_LARGE, new Vector2f());
84 e.triggerSetFleetOfficers(OfficerNum.MORE, OfficerQuality.HIGHER);
86 e.triggerSetFleetFlag("$gaRH_consequences");
89 e.endCreate();
90 }
91 return true;
92 } else if ("transferHamatsu".equals(action)) {
93 FleetMemberAPI hamatsu = null;
95 if (member.getId().equals(TTBlackSite.HAMATSU_ID)) {
96 hamatsu = member;
97 break;
98 }
99 }
100 if (hamatsu != null) {
103 }
104
105 return true;
106 }
107 return false;
108 }
109
110 protected void updateInteractionDataImpl() {
111 set("$gaRH_stage", getCurrentStage());
112 set("$gaRH_reward", Misc.getWithDGS(getCreditsReward()));
113 }
114
115 @Override
116 public void addDescriptionForNonEndStage(TooltipMakerAPI info, float width, float height) {
117 float opad = 10f;
118 Color h = Misc.getHighlightColor();
119 if (currentStage == Stage.RETURN_HAMATSU) {
120 addStandardMarketDesc("Deliver the ISS Hamatsu to " + callisto.getNameString()
121 + " " + callisto.getMarket().getOnOrAt() + "", callisto.getMarket(), info, opad);
122 info.addPara("She is sentimental about the ship - her first independent command - and is willing to pay a "
123 + "large sum for its return.", opad);
124 }
125 }
126
127 @Override
128 public boolean addNextStepText(TooltipMakerAPI info, Color tc, float pad) {
129 Color h = Misc.getHighlightColor();
130 if (currentStage == Stage.RETURN_HAMATSU) {
131 info.addPara("Deliver the ISS Hamatsu to " + callisto.getNameString(), tc, pad);
132 return true;
133 }
134 return false;
135 }
136
137 @Override
138 public String getBaseName() {
139 return "Return the ISS Hamatsu";
140 }
141
142 @Override
143 public String getPostfixForState() {
144 if (startingStage != null) {
145 return "";
146 }
147 return super.getPostfixForState();
148 }
149
150
151}
152
153
154
155
156
static SectorAPI getSector()
Definition Global.java:65
void triggerCreateFleet(FleetSize size, FleetQuality quality, String factionId, String type, SectorEntityToken roughlyWhere)
void setLocationInnerSector(boolean allowInsidePopulatedSystems, String requireLargestMarketNotHostileToFaction)
boolean callAction(String action, String ruleId, InteractionDialogAPI dialog, List< Token > params, Map< String, MemoryAPI > memoryMap)
boolean addNextStepText(TooltipMakerAPI info, Color tc, float pad)
void addDescriptionForNonEndStage(TooltipMakerAPI info, float width, float height)
void connectWithGlobalFlag(Object from, Object to, String flag)
void makeImportant(PersonAPI person, String flag, Enum ... stages)
static void addStandardMarketDesc(String prefix, MarketAPI market, TooltipMakerAPI info, float pad)
static void addFleetMemberLossText(FleetMemberAPI member, TextPanelAPI text)
static String getWithDGS(float num)
Definition Misc.java:1381
static Color getHighlightColor()
Definition Misc.java:792
void removeFleetMember(FleetMemberAPI member)
List< FleetMemberAPI > getMembersListCopy()
LabelAPI addPara(String format, float pad, Color hl, String... highlights)