Starsector API
Loading...
Searching...
No Matches
ANewHope.java
Go to the documentation of this file.
1package com.fs.starfarer.api.impl.campaign.missions;
2
3import java.awt.Color;
4import java.util.List;
5import java.util.Map;
6
7import com.fs.starfarer.api.Global;
8import com.fs.starfarer.api.campaign.InteractionDialogAPI;
9import com.fs.starfarer.api.campaign.econ.MarketAPI;
10import com.fs.starfarer.api.campaign.rules.MemoryAPI;
11import com.fs.starfarer.api.characters.PersonAPI;
12import com.fs.starfarer.api.impl.campaign.ids.Factions;
13import com.fs.starfarer.api.impl.campaign.ids.FleetTypes;
14import com.fs.starfarer.api.impl.campaign.ids.People;
15import com.fs.starfarer.api.impl.campaign.missions.hub.HubMissionWithSearch;
16import com.fs.starfarer.api.ui.TooltipMakerAPI;
17import com.fs.starfarer.api.util.Misc;
18import com.fs.starfarer.api.util.Misc.Token;
19
20public class ANewHope extends HubMissionWithSearch {
21
22 public static enum Stage {
23 GO_TO_VOLTURN,
24 COMPLETED,
25 }
26
27 protected PersonAPI robed_man;
28 //protected PersonAPI some_kid;
29 //protected PersonAPI robot;
30
31 protected MarketAPI volturn;
32 //protected MarketAPI asharu;
33
34 public static float MISSION_DAYS = 120f;
35
36 protected int payment;
37 protected int paymentHigh;
38
39 @Override
40 protected boolean create(MarketAPI createdAt, boolean barEvent) {
41 // if already accepted by the player, abort
42 if (!setGlobalReference("$anh_ref", "$anh_inProgress")) {
43 return false;
44 }
45
46 setPersonOverride(null);
47
48 robed_man = getImportantPerson(People.ROBEDMAN);
49 if (robed_man == null) return false;
50
51
52 volturn = Global.getSector().getEconomy().getMarket("volturn");
53 if (volturn == null) return false;
54 if (!volturn.getFactionId().equals("sindrian_diktat")) return false;
55
56 setStartingStage(Stage.GO_TO_VOLTURN);
57 addSuccessStages(Stage.COMPLETED);
58
59 setStoryMission();
60
61 // yes, these exact numbers.
62 payment = 10000;
63 paymentHigh = 17000;
64
65 makeImportant(volturn, "$anh_tookTheJob", Stage.GO_TO_VOLTURN);
66 //setStageOnMemoryFlag(Stage.COMPLETED, baird.getMarket(), "$gaTTB_completed");
67
68 setStageOnGlobalFlag(Stage.COMPLETED, "$anh_completed");
69
70 setRepFactionChangesNone();
71 setRepPersonChangesNone();
72
73 // spawn Diktat Patrol fleet to intercept the player
74 beginEnteredLocationTrigger(volturn.getStarSystem(), false, Stage.GO_TO_VOLTURN);
75 triggerCreateFleet(FleetSize.SMALL, FleetQuality.DEFAULT, Factions.DIKTAT, FleetTypes.PATROL_SMALL, volturn.getStarSystem());
76 triggerAutoAdjustFleetStrengthMajor();
77 triggerMakeHostileAndAggressive();
78 triggerFleetAllowLongPursuit();
79 triggerSetFleetAlwaysPursue();
80 triggerPickLocationTowardsPlayer(volturn.getPlanetEntity(), 90f, getUnits(0.25f));
81 triggerSpawnFleetAtPickedLocation("$anh_diktatPatrol", null);
82 triggerSetFleetMissionRef("$ahn_ref");
83 triggerOrderFleetInterceptPlayer();
84 triggerFleetMakeImportant(null, Stage.GO_TO_VOLTURN);
85 endTrigger();
86
87 beginStageTrigger(Stage.COMPLETED);
88 triggerSetGlobalMemoryValue("$anh_missionCompleted", true);
89 endTrigger();
90
91 return true;
92 }
93
94 protected void updateInteractionDataImpl() {
95 set("$anh_stage", getCurrentStage());
96 //set("$anh_robedman", robed_man);
97 set("$anh_payment", Misc.getWithDGS(payment));
98 set("$anh_paymentHigh", Misc.getWithDGS(paymentHigh));
99 }
100
101 @Override
102 protected boolean callAction(String action, String ruleId, final InteractionDialogAPI dialog,
103 List<Token> params, final Map<String, MemoryAPI> memoryMap) {
104// if ("THEDUEL".equals(action)) {
105// TextPanelAPI text = dialog.getTextPanel();
106// text.setFontOrbitronUnnecessarilyLarge();
107// Color color = Misc.getBasePlayerColor();
108// color = Global.getSector().getFaction(Factions.HEGEMONY).getBaseUIColor();
109// text.addPara("THE DUEL", color);
110// text.setFontInsignia();
111// text.addImage("misc", "THEDUEL");
112// return true;
113// }
114
115 return super.callAction(action, ruleId, dialog, params, memoryMap);
116 }
117
118 @Override
119 public void addDescriptionForNonEndStage(TooltipMakerAPI info, float width, float height) {
120 float opad = 10f;
121 Color h = Misc.getHighlightColor();
122
123 info.addImage(robed_man.getPortraitSprite(), width, 128, opad);
124
125 if (currentStage == Stage.GO_TO_VOLTURN) {
126 info.addPara("Deliver the mysterious old man, the kid, and their robot to Volturn in the Askonia system. Avoid patrols; they may be wanted by the authorities.", opad);
127 }
128 }
129
130 @Override
131 public boolean addNextStepText(TooltipMakerAPI info, Color tc, float pad) {
132 Color h = Misc.getHighlightColor();
133 if (currentStage == Stage.GO_TO_VOLTURN) {
134 info.addPara("Go to Volturn in the Askonia system", tc, pad);
135 return true;
136 }
137 return false;
138 }
139
140 @Override
141 public String getBaseName() {
142 return "Passage To Volturn";
143 }
144
145 @Override
146 public String getPostfixForState() {
147 if (startingStage != null) {
148 return "";
149 }
150 return super.getPostfixForState();
151 }
152}
153
154
155
156
157
static SectorAPI getSector()
Definition Global.java:59
boolean callAction(String action, String ruleId, final InteractionDialogAPI dialog, List< Token > params, final Map< String, MemoryAPI > memoryMap)
void addDescriptionForNonEndStage(TooltipMakerAPI info, float width, float height)
boolean create(MarketAPI createdAt, boolean barEvent)
Definition ANewHope.java:40
boolean addNextStepText(TooltipMakerAPI info, Color tc, float pad)