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
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
47
49 if (robed_man == null) return false;
50
51
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
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
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());
81 triggerSpawnFleetAtPickedLocation("$anh_diktatPatrol", null);
82 triggerSetFleetMissionRef("$ahn_ref");
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:65
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)
void makeImportant(PersonAPI person, String flag, Enum ... stages)
void triggerPickLocationTowardsPlayer(final SectorEntityToken entity, final float arc, final float dist)
void triggerCreateFleet(FleetSize size, FleetQuality quality, String factionId, String type, StarSystemAPI roughlyWhere)
static String getWithDGS(float num)
Definition Misc.java:1381
static Color getHighlightColor()
Definition Misc.java:792
void addImage(String spriteName, float pad)
LabelAPI addPara(String format, float pad, Color hl, String... highlights)