1package com.fs.starfarer.api.impl.campaign.missions;
7import com.fs.starfarer.api.EveryFrameScript;
8import com.fs.starfarer.api.Global;
9import com.fs.starfarer.api.campaign.InteractionDialogAPI;
10import com.fs.starfarer.api.campaign.TextPanelAPI;
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.impl.campaign.eventide.DuelDialogDelegate;
15import com.fs.starfarer.api.impl.campaign.eventide.DuelPanel;
16import com.fs.starfarer.api.impl.campaign.ids.People;
17import com.fs.starfarer.api.impl.campaign.missions.hub.HubMissionWithSearch;
18import com.fs.starfarer.api.ui.TooltipMakerAPI;
19import com.fs.starfarer.api.util.Misc;
20import com.fs.starfarer.api.util.Misc.Token;
51 public boolean done =
false;
52 public String currState =
null;
54 public SOEMusicPlayer() {
56 public void advance(
float amount) {
58 if (state !=
null && !state.equals(currState)) {
85 public boolean isDone() {
88 public boolean runWhilePaused() {
99 public static enum Stage {
114 protected boolean create(MarketAPI createdAt,
boolean barEvent) {
116 if (!setGlobalReference(
"$soe_ref",
"$soe_inProgress")) {
120 neriene_rao = getImportantPerson(People.NERIENE_RAO);
124 orcus_rao = getImportantPerson(People.RAO);
130 setStartingStage(Stage.GO_TO_EVENTIDE);
131 addSuccessStages(Stage.COMPLETED);
135 makeImportant(
eventide,
"$soe_invitedToBall", Stage.GO_TO_EVENTIDE);
138 setStageOnGlobalFlag(Stage.COMPLETED,
"$soe_completed");
140 setRepFactionChangesNone();
141 setRepPersonChangesNone();
143 beginStageTrigger(Stage.GO_TO_EVENTIDE);
144 triggerSetGlobalMemoryValuePermanent(
"$didEventideRaoBall",
true);
156 protected boolean callAction(String action, String ruleId,
final InteractionDialogAPI dialog,
157 List<Token> params,
final Map<String, MemoryAPI> memoryMap) {
158 if (
"THEDUEL".equals(action)) {
159 TextPanelAPI text = dialog.getTextPanel();
165 text.addImage(
"misc",
"THEDUEL");
167 }
else if (
"addMusicPlayer".equals(action)) {
169 player =
new SOEMusicPlayer();
174 }
else if (
"cleanUpMusicPlayer".equals(action)) {
179 }
else if (
"crowdGasp".equals(action)) {
183 }
else if (
"postDuel".equals(action)) {
186 }
else if (
"beginDuel".equals(action)) {
189 boolean playerSkilled =
false;
190 if (params.size() >= 2) {
191 playerSkilled = params.get(1).getBoolean(memoryMap);
193 final DuelPanel duelPanel = DuelPanel.createDefault(playerSkilled,
true,
"soe_ambience");
194 dialog.showCustomVisualDialog(1024, 700,
new DuelDialogDelegate(
null, duelPanel, dialog, memoryMap,
false));
196 }
else if (
"beginTutorial".equals(action)) {
197 boolean playerSkilled =
false;
198 if (params.size() >= 2) {
199 playerSkilled = params.get(1).getBoolean(memoryMap);
201 final DuelPanel duelPanel = DuelPanel.createTutorial(playerSkilled,
"soe_ambience");
202 dialog.showCustomVisualDialog(1024, 700,
new DuelDialogDelegate(
null, duelPanel, dialog, memoryMap,
true));
205 return super.callAction(action, ruleId, dialog, params, memoryMap);
211 Color h = Misc.getHighlightColor();
212 if (currentStage == Stage.GO_TO_EVENTIDE) {
213 info.addPara(
"Go to Eventide in the Samarra system.", opad);
219 Color h = Misc.getHighlightColor();
220 if (currentStage == Stage.GO_TO_EVENTIDE) {
221 info.addPara(
"Go to Eventide in the Samarra system", tc, pad);
229 return "Princess of Persea";
234 if (startingStage !=
null) {
237 return super.getPostfixForState();
static SoundPlayerAPI getSoundPlayer()
static SectorAPI getSector()
boolean callAction(String action, String ruleId, final InteractionDialogAPI dialog, List< Token > params, final Map< String, MemoryAPI > memoryMap)
static String SOE_MUSIC_STATE
static String PARTY_MUSIC
void updateInteractionDataImpl()
static String SOE_STATE_DUEL
static String SOE_STATE_POST_DUEL
void addDescriptionForNonEndStage(TooltipMakerAPI info, float width, float height)
static String SOE_STATE_PARTY
boolean addNextStepText(TooltipMakerAPI info, Color tc, float pad)
boolean create(MarketAPI createdAt, boolean barEvent)
String getPostfixForState()
static String PARTY_CHATTER
static String SOE_STATE_PRE_DUEL
static float MISSION_DAYS
void setSuspendDefaultMusicPlayback(boolean suspendMusicPlayback)
void playCustomMusic(int fadeOutIfAny, int fadeIn, String musicSetId)
void restartCurrentMusic()
void playUILoop(String id, float pitch, float volume)
SoundAPI playUISound(String id, float pitch, float volume)