1package com.fs.starfarer.api.impl.campaign.rulecmd.salvage.special;
3import com.fs.starfarer.api.Global;
4import com.fs.starfarer.api.campaign.InteractionDialogAPI;
5import com.fs.starfarer.api.campaign.LocationAPI;
6import com.fs.starfarer.api.campaign.PlanetAPI;
7import com.fs.starfarer.api.campaign.SectorEntityToken;
8import com.fs.starfarer.api.campaign.StarSystemAPI;
9import com.fs.starfarer.api.impl.campaign.ids.StarTypes;
10import com.fs.starfarer.api.impl.campaign.intel.misc.BreadcrumbIntelV2;
11import com.fs.starfarer.api.impl.campaign.procgen.Constellation;
12import com.fs.starfarer.api.impl.campaign.rulecmd.salvage.SalvageSpecialInteraction.SalvageSpecialData;
13import com.fs.starfarer.api.impl.campaign.rulecmd.salvage.SalvageSpecialInteraction.SalvageSpecialPlugin;
17 public static enum SpecialType {
31 public static class DomainSurveyDerelictSpecialData
implements SalvageSpecialData {
32 public SpecialType type = SpecialType.SCRAMBLED;
33 public String entityId =
null;
34 public String secondaryId =
null;
35 public DomainSurveyDerelictSpecialData(SpecialType type) {
38 public SalvageSpecialPlugin createSpecialPlugin() {
43 private DomainSurveyDerelictSpecialData data;
50 super.init(
dialog, specialData);
52 data = (DomainSurveyDerelictSpecialData) specialData;
54 if (data.entityId !=
null) {
60 data.type = SpecialType.SCRAMBLED;
79 case LOCATION_SURVEY_SHIP:
80 initSurveyParentEntity();
82 case LOCATION_MOTHERSHIP:
83 initSurveyParentEntity();
106 return data !=
null && (
107 data.type == SpecialType.ACTIVATE_PROBE ||
108 data.type == SpecialType.ACTIVATE_SURVEY_SHIP
113 private void initSurveyParentEntity() {
114 if (data.entityId ==
null) {
125 String text1 =
"The $shortName's memory banks are partially accessible, and ";
126 String text1ForIntel =
"While exploring $aOrAn $nameInText, your crews found " +
127 "partially accessible memory banks that ";
134 String subject =
getString(
"Location: " + nameForTitle);
136 text1 +=
"contain information pointing to the location of a " + name +
". ";
137 text1ForIntel +=
"contain information pointing to the location of a " + name +
". ";
140 String located = BreadcrumbSpecial.getLocatedString(parent,
true);
142 text1 +=
"It was last seen by this $shortName " + located +
".";
143 text1ForIntel +=
"It was last seen by this $shortName " + located +
".";
153 intel.
setIconId(
"leading_to_larger_domain_derelict");
165 addText(
"The $shortName's memory banks have been scrubbed clean by hard radiation, and the systems are largely inert and non-functional.");
341 return "in an unknown location nearby";
344 return "in hyperspace nearby";
350 return "inside this nebula";
352 return "in this system";
361 return "in an unknown location nearby";
364 return "in hyperspace nearby";
370 return "inside this nebula";
372 return "in this system";
383 return "inside a nebula " + cText;
387 return "in a trinary star system " + cText;
391 return "in a binary star system " + cText;
399 return "inside a nearby nebula";
403 return "in a nearby trinary star system";
407 return "in a nearby binary star system";
424 return "an orange star";
435 return "a blue star";
444 return "a yellow star";
447 return "a star of unknown type";
453 super.optionSelected(optionText, optionData);
455 if (
"continue".equals(optionData)) {
462 return super.endWithContinue();
static SectorAPI getSector()
static final String BLUE_SUPERGIANT
static final String BLUE_GIANT
static final String NEUTRON_STAR
static final String ORANGE
static final String ORANGE_GIANT
static final String BROWN_DWARF
static final String RED_DWARF
static final String BLACK_HOLE
static final String WHITE_DWARF
static final String RED_GIANT
static final String YELLOW
static final String RED_SUPERGIANT
void setText(String text)
void setTitle(String title)
void setIconId(String iconId)
List< StarSystemAPI > getSystems()
String getNameWithLowercaseType()
void setDone(boolean done)
InteractionDialogAPI dialog
void addText(String format)
String getString(String format)
static String getLocationDescription(SectorEntityToken entity)
static String getLocationName(SectorEntityToken entity)
void optionSelected(String optionText, Object optionData)
boolean shouldShowAgain()
boolean endWithContinue()
DomainSurveyDerelictSpecial()
void init(InteractionDialogAPI dialog, Object specialData)
static String getStarDescription(PlanetAPI star)
Constellation getConstellation()
String getNameWithLowercaseType()
LocationAPI getCurrentLocation()
IntelManagerAPI getIntelManager()
SectorEntityToken getEntityById(String id)
LocationAPI getContainingLocation()
boolean hasSensorProfile()
Constellation getConstellation()
CustomEntitySpecAPI getCustomEntitySpec()
void addIntel(IntelInfoPlugin plugin)