42 protected boolean create(MarketAPI createdAt,
boolean barEvent) {
48 if (!setGlobalReference(
"$gaTJ_ref")) {
57 requireSystemTags(ReqMode.ANY, Tags.THEME_MISC, Tags.THEME_MISC_SKIP, Tags.THEME_RUINS);
58 requireSystemTags(ReqMode.NOT_ANY, Tags.THEME_UNSAFE, Tags.THEME_CORE);
59 requireSystemNotAlreadyUsedForStory();
60 requireSystemNotHasPulsar();
61 requireSystemHasAtLeastNumJumpPoints(2);
62 preferSystemHasAtLeastNumJumpPoints(3);
63 preferSystemOnFringeOfSector();
64 preferSystemUnexplored();
66 requirePlanetNotStar();
67 requirePlanetUnpopulated();
68 requirePlanetNotGasGiant();
69 preferPlanetNotNearJumpPoint(5000f);
70 preferPlanetNotNearJumpPoint(2000f);
71 preferPlanetNotFullySurveyed();
81 setStartingStage(Stage.GO_TO_OUTPOST);
82 addSuccessStages(Stage.COMPLETED);
83 addFailureStages(Stage.FAILED);
87 makeImportant(
planet,
"$gaTJ_targetPlanet", Stage.GO_TO_OUTPOST);
88 makeImportant(getPerson(),
"$gaTJ_needToReturn", Stage.RETURN_TO_ACADEMY);
90 connectWithGlobalFlag(Stage.GO_TO_OUTPOST, Stage.RETURN_TO_ACADEMY,
"$gaTJ_needToReturn");
91 setStageOnGlobalFlag(Stage.COMPLETED,
"$gaTJ_completed");
94 setCreditReward(CreditReward.HIGH);
104 List<SectorEntityToken> jumpPoints =
system.getJumpPoints();
105 for (SectorEntityToken point : jumpPoints) {
109 beginStageTrigger(Stage.COMPLETED);
110 triggerSetGlobalMemoryValuePermanent(
"$asebSayBairdWantsToTalk",
true);
113 setSystemWasUsedForStory(Stage.GO_TO_OUTPOST,
system);
119 protected boolean callAction(String action, String ruleId, InteractionDialogAPI dialog, List<Token> params,
120 Map<String, MemoryAPI> memoryMap) {
121 if (dialog !=
null && action.equals(
"showResearcher")) {
122 showPersonInfo(
researcher, dialog,
false,
false);
125 if (
"triggerMercFleets".equals(action)) {
126 for (CampaignFleetAPI fleet :
system.getFleets()) {
127 if (fleet.getMemoryWithoutUpdate().contains(
"$gaTJ_merc")) {
128 TransmitterTrapSpecial.makeFleetInterceptPlayer(fleet,
true,
false,
true, 1000f);
138 set(
"$gaTJ_planetId",
planet.getId());
139 set(
"$gaTJ_planetName",
planet.getName());
140 set(
"$gaTJ_systemName",
planet.getStarSystem().getNameWithNoType());
141 set(
"$gaTJ_dist", getDistanceLY(
planet));
142 set(
"$gaTJ_reward", Misc.getWithDGS(getCreditsReward()));
143 set(
"$gaTJ_researcherName",
researcher.getNameString());
144 set(
"$gaTJ_heOrShe",
researcher.getHeOrShe());
145 set(
"$gaTJ_HeOrShe",
researcher.getHeOrShe().substring(0, 1).toUpperCase() +
researcher.getHeOrShe().substring(1));
146 set(
"$gaTJ_hisOrHer",
researcher.getHisOrHer());
147 set(
"$gaTJ_HisOrHet",
researcher.getHisOrHer().substring(0, 1).toUpperCase() +
researcher.getHisOrHer().substring(1));
148 set(
"$gaTJ_himOrHer",
researcher.getHimOrHer());
149 set(
"$gaTJ_HimOrHet",
researcher.getHimOrHer().substring(0, 1).toUpperCase() +
researcher.getHimOrHer().substring(1));
156 Color h = Misc.getHighlightColor();
157 if (currentStage == Stage.GO_TO_OUTPOST) {
158 info.addPara(getGoToPlanetTextPre(
planet) +
159 ", and contact the 'researcher' at the Tri-Tachyon black research site located there.", opad);
160 }
else if (currentStage == Stage.RETURN_TO_ACADEMY) {
162 info.addPara(getReturnText(
"the Galatia Academy") +
".", opad);
168 Color h = Misc.getHighlightColor();
169 if (currentStage == Stage.GO_TO_OUTPOST) {
170 info.addPara(getGoToPlanetTextShort(
planet), tc, pad);
172 }
else if (currentStage == Stage.RETURN_TO_ACADEMY) {
174 info.addPara(getReturnTextShort(
"the Galatia Academy"), tc, pad);
189 beginWithinHyperspaceRangeTrigger(
planet, 3f,
false, Stage.GO_TO_OUTPOST);
190 triggerCreateFleet(FleetSize.LARGE, FleetQuality.VERY_HIGH, Factions.MERCENARY, FleetTypes.PATROL_LARGE,
system);
191 triggerSetFleetFaction(Factions.INDEPENDENT);
192 triggerSetFleetOfficers(OfficerNum.MORE, OfficerQuality.HIGHER);
197 triggerMakeHostileAndAggressive();
198 triggerMakeNoRepImpact();
199 triggerFleetAllowLongPursuit();
200 triggerSetFleetAlwaysPursue();
202 triggerPickLocationAroundEntity(patrolPoint, 1000f);
203 triggerSpawnFleetAtPickedLocation(
"$gaTJ_merc",
null);
204 triggerOrderFleetPatrol(
true, patrolPoint);