1package com.fs.starfarer.api.impl.campaign.missions.luddic;
7import com.fs.starfarer.api.Global;
8import com.fs.starfarer.api.campaign.FactionAPI;
9import com.fs.starfarer.api.campaign.InteractionDialogAPI;
10import com.fs.starfarer.api.campaign.SectorEntityToken;
11import com.fs.starfarer.api.campaign.StarSystemAPI;
12import com.fs.starfarer.api.campaign.comm.IntelInfoPlugin;
13import com.fs.starfarer.api.campaign.econ.MarketAPI;
14import com.fs.starfarer.api.campaign.rules.MemoryAPI;
15import com.fs.starfarer.api.characters.PersonAPI;
16import com.fs.starfarer.api.impl.campaign.ids.Tags;
17import com.fs.starfarer.api.impl.campaign.intel.misc.LuddicShrineIntel;
18import com.fs.starfarer.api.impl.campaign.missions.academy.GACelestialObject.Variation;
19import com.fs.starfarer.api.impl.campaign.missions.hub.HubMissionWithSearch;
20import com.fs.starfarer.api.ui.IntelUIAPI;
21import com.fs.starfarer.api.ui.TooltipMakerAPI;
22import com.fs.starfarer.api.util.Misc;
23import com.fs.starfarer.api.util.Misc.Token;
27 public static enum Stage {
52 protected SectorEntityToken
killa;
60 protected boolean create(MarketAPI createdAt,
boolean barEvent) {
62 if (!setGlobalReference(
"$lpp_ref",
"$lpp_inProgress")) {
67 if (
volturn ==
null)
return false;
72 if (
gilead ==
null)
return false;
75 if (
jangala ==
null)
return false;
82 for (SectorEntityToken curr : yma.getEntitiesWithTag(Tags.LUDDIC_SHRINE)) {
86 if (
killa ==
null)
return false;
89 StarSystemAPI kumarikandam =
Global.
getSector().getStarSystem(
"kumari kandam");
90 for (SectorEntityToken curr : kumarikandam.getEntitiesWithTag(Tags.LUDDIC_SHRINE)) {
96 setStartingStage(Stage.VISIT_SHRINES);
97 addSuccessStages(Stage.COMPLETED);
108 setStageOnGlobalFlag(Stage.RETURN_TO_GILEAD,
"$lpp_visitedAllShrines");
110 makeImportant(
gilead,
"$lpp_finishPilgrimage", Stage.RETURN_TO_GILEAD);
113 setStageOnGlobalFlag(Stage.COMPLETED,
"$lpp_completed");
117 setName(
"The Pilgrim's Path");
118 setRepFactionChangesNone();
119 setRepPersonChangesNone();
121 beginStageTrigger(Stage.COMPLETED);
122 triggerMakeNonStoryCritical(
"jangala",
"hesperus",
"gilead",
"volturn");
123 triggerSetGlobalMemoryValue(
"$lpp_missionCompleted",
true);
133 set(
"$lpp_stage", getCurrentStage());
138 protected boolean callAction(String action, String ruleId,
final InteractionDialogAPI dialog,
139 List<Token> params,
final Map<String, MemoryAPI> memoryMap) {
151 if (
"giveVisitXP".equals(action))
155 Global.
getSector().getPlayerStats().addXP(xp_to_give, dialog.getTextPanel());
158 else if (
"giveLastVisitXP".equals(action))
174 Global.
getSector().getPlayerStats().addXP(xp_to_give, dialog.getTextPanel());
177 else if (
"checkShrinesVisited".equals(action)) {
180 int numberOfShrinesToComplete = 6;
181 System.out.print(
"checkShrinesVisited = " + Integer.toString(visited_shrines));
183 if( visited_shrines >= numberOfShrinesToComplete) {
184 Global.
getSector().getMemoryWithoutUpdate().set(
"$lpp_visitedAllShrines",
true);
188 else if (
"postMissionCleanup".equals(action)) {
190 Global.
getSector().getMemoryWithoutUpdate().unset(
"$lpp_didHesperusFirstShrineAttempt");
191 Global.
getSector().getMemoryWithoutUpdate().unset(
"$lpp_didHookStart");
192 gilead.getMemoryWithoutUpdate().unset(
"$lpp_finishPilgrimage");
196 return super.callAction(action, ruleId, dialog, params, memoryMap);
201 Color h = Misc.getHighlightColor();
202 Color g = Misc.getGrayColor();
206 FactionAPI faction = getFactionForUIColors();
207 PersonAPI person = getPerson();
211 addDescriptionForCurrentStage(info, width, height);
213 addBulletPoints(info, ListInfoMode.IN_DESC);
220 Color h = Misc.getHighlightColor();
231 if (currentStage == Stage.VISIT_SHRINES) {
232 info.addPara(
"Visit the six shrines of the Pilgrim's Path. The pilgrimage is traditionally completed by returning to Gilead, in the Canaan system.", opad);
234 else if (currentStage == Stage.RETURN_TO_GILEAD) {
235 info.addPara(
"Return to the shrine of Gilead in the Canaan system to complete the Pilgrim's Path.", opad);
238 LuddicShrineIntel.addShowShrinesButton(
this, width, height, info);
243 Color h = Misc.getHighlightColor();
244 if (currentStage == Stage.VISIT_SHRINES) {
245 info.addPara(
"Visit the six Luddic shrines", tc, pad);
248 else if (currentStage == Stage.RETURN_TO_GILEAD) {
249 info.addPara(
"Complete the pilgrimage on Gilead, in the Canaan system", tc, pad);
266 return "Pilgrim's Path";
271 if (startingStage !=
null) {
274 return super.getPostfixForState();
278 if (buttonId == LuddicShrineIntel.BUTTON_SHOW_SHRINES) {
279 LuddicShrineIntel.toggleShrineList(
this, ui);
282 super.buttonPressConfirmed(buttonId, ui);
289 for (IntelInfoPlugin intel :
Global.
getSector().getIntelManager().getIntel(LuddicShrineIntel.class)) {
290 LuddicShrineIntel shrine = (LuddicShrineIntel) intel;
291 if (LuddicShrineIntel.isVisited(shrine.getEntity())) {
296 System.out.print(
" Shrine count found = " + count);
303 return Global.
getSector().getIntelManager().getIntel(LuddicShrineIntel.class).size();
static SettingsAPI getSettings()
static SectorAPI getSector()
static String VISITED_SHRINE_KILLA
static String VISITED_SHRINE_CHICOMOZTOC
void addDescriptionForNonEndStage(TooltipMakerAPI info, float width, float height)
boolean create(MarketAPI createdAt, boolean barEvent)
int getNumberOfShrinesVisited()
boolean addNextStepText(TooltipMakerAPI info, Color tc, float pad)
static String VISITED_SHRINE_BEHOLDER
static String VISITED_SHRINE_JANGALA
void buttonPressConfirmed(Object buttonId, IntelUIAPI ui)
static int getTotalShrines()
String getPostfixForState()
void createSmallDescription(TooltipMakerAPI info, float width, float height)
static String VISITED_SHRINE_GILEAD
static String VISITED_SHRINE_VOLTURN
SectorEntityToken beholder_station
boolean callAction(String action, String ruleId, final InteractionDialogAPI dialog, List< Token > params, final Map< String, MemoryAPI > memoryMap)
void updateInteractionDataImpl()
String getSpriteName(String category, String id)