1package com.fs.starfarer.api.impl.campaign.intel.events.ttcr;
4import java.util.EnumSet;
5import java.util.Random;
8import org.lwjgl.util.vector.Vector2f;
10import com.fs.starfarer.api.Global;
11import com.fs.starfarer.api.campaign.FactionAPI;
12import com.fs.starfarer.api.campaign.InteractionDialogAPI;
13import com.fs.starfarer.api.campaign.TextPanelAPI;
14import com.fs.starfarer.api.impl.campaign.ids.Factions;
15import com.fs.starfarer.api.impl.campaign.ids.FleetTypes;
16import com.fs.starfarer.api.impl.campaign.ids.Skills;
17import com.fs.starfarer.api.impl.campaign.ids.Tags;
18import com.fs.starfarer.api.impl.campaign.intel.events.BaseEventIntel;
19import com.fs.starfarer.api.impl.campaign.intel.events.BaseFactorTooltip;
20import com.fs.starfarer.api.impl.campaign.intel.events.EventFactor;
21import com.fs.starfarer.api.impl.campaign.intel.events.TriTachyonHostileActivityFactor;
22import com.fs.starfarer.api.impl.campaign.missions.DelayedFleetEncounter;
23import com.fs.starfarer.api.impl.campaign.missions.hub.HubMissionWithTriggers.FleetQuality;
24import com.fs.starfarer.api.impl.campaign.missions.hub.HubMissionWithTriggers.FleetSize;
25import com.fs.starfarer.api.impl.campaign.missions.hub.HubMissionWithTriggers.OfficerNum;
26import com.fs.starfarer.api.impl.campaign.missions.hub.HubMissionWithTriggers.OfficerQuality;
27import com.fs.starfarer.api.ui.LabelAPI;
28import com.fs.starfarer.api.ui.SectorMapAPI;
29import com.fs.starfarer.api.ui.TooltipMakerAPI;
30import com.fs.starfarer.api.ui.TooltipMakerAPI.TooltipCreator;
31import com.fs.starfarer.api.util.Misc;
32import com.fs.starfarer.api.util.WeightedRandomPicker;
39 public static String
KEY =
"$ttcr_ref";
41 public static enum Stage {
100 super.notifyEnding();
110 Color tc,
float initPad) {
119 if (esd.id == Stage.SEND_MERC) {
120 info.
addPara(
"Several bounty hunters were recently hired to eliminate you", tc, initPad);
122 if (esd.id == Stage.SUCCESS) {
123 info.
addPara(
"You've convincied Tri-Tachyon to stop attacking your interests", tc, initPad);
145 if (stage ==
null)
return;
164 if (stageId == Stage.START) {
165 LabelAPI label = info.
addPara(
"The %s needs to be convinced that continued investment in "
166 +
"acting against your interests is unprofitable in the long term. If you are "
167 +
"able to send this message without becoming openly hostile - or smooth any ruffled feathers "
168 +
"afterwards - this may even "
169 +
"mark you as someone whose understanding of business realities makes them worth working with.",
174 }
else if (stageId == Stage.SUCCESS) {
175 info.
addPara(
"You've convinced the %s to stop attacking your interests.", initPad,
177 }
else if (stageId == Stage.SEND_MERC) {
178 info.
addPara(
"Several bounty hunters were recently hired to eliminate you. You are likely "
179 +
"to encounter them in the coming months. Resolving the matter with Tri-Tachyon before then "
180 +
"is unlikely to make a difference in this; a contract is a contract.", initPad);
185 final EventStageData esd =
getDataFor(stageId);
187 if (esd !=
null && EnumSet.of(Stage.SEND_MERC, Stage.SUCCESS).contains(esd.id)) {
190 public void createTooltip(
TooltipMakerAPI tooltip,
boolean expanded, Object tooltipParam) {
193 if (esd.id == Stage.SEND_MERC) {
195 }
else if (esd.id == Stage.SUCCESS) {
201 esd.addProgressReq(tooltip, opad);
218 if (esd ==
null)
return null;
226 Set<String> tags = super.getIntelTags(map);
241 return super.getBarProgressIndicatorColor();
246 return super.getStageImportance(stageId);
252 return "Tri-Tachyon Commerce Raiding";
259 super.advanceImpl(amount);
270 if (stage.id == Stage.SEND_MERC) {
274 if (stage.id == Stage.SUCCESS) {
288 return super.getSoundForStageReachedUpdate(stageId);
312 picker.
add(
"tempest_Attack", 10);
313 picker.
add(
"tempest_Attack", 10);
314 picker.
add(
"tempest_Attack", 10);
315 picker.
add(
"scarab_Experimental", 10);
316 picker.
add(
"scarab_Experimental", 10);
317 picker.
add(
"scarab_Experimental", 10);
318 picker.
add(
"hyperion_Attack", 10);
319 picker.
add(
"hyperion_Strike", 10);
320 picker.
add(
"omen_PD", 5);
321 picker.
add(
"omen_PD", 5);
322 picker.
add(
"monitor_Escort", 5);
323 picker.
add(
"monitor_Escort", 5);
324 picker.
add(
"shade_Assault", 5);
325 picker.
add(
"shade_Assault", 5);
326 picker.
add(
"afflictor_Strike", 5);
327 picker.
add(
"afflictor_Strike", 5);
342 while (!picker.
isEmpty() && add > 0) {
static SettingsAPI getSettings()
static SectorAPI getSector()
static final String TRITACHYON
static final String LUDDIC_CHURCH
static final String MERCENARY
static final String INDEPENDENT
static final String MERC_BOUNTY_HUNTER
static final String DERELICT_CONTINGENT
static final String FLUX_REGULATION
static final String COORDINATED_MANEUVERS
static final String ELECTRONIC_WARFARE
static final String TACTICAL_DRILLS
static final String SUPPORT_DOCTRINE
static final String PHASE_CORPS
static final String WOLFPACK_TACTICS
Object getListInfoParam()
void addFactor(EventFactor factor)
void addStage(Object id, int progress)
boolean isStageActive(Object stageId)
void setMaxProgress(int maxProgress)
EventStageData getDataFor(Object stageId)
boolean addEventFactorBulletPoints(TooltipMakerAPI info, ListInfoMode mode, boolean isUpdate, Color tc, float initPad)
List< EventStageData > stages
List< EventFactor > factors
static void setPlayerCounterRaidedTriTach()
void advanceImpl(float amount)
int getStageImportance(Object stageId)
TooltipCreator getStageTooltipImpl(Object stageId)
boolean withMonthlyFactors()
void notifyStageReached(EventStageData stage)
TriTachyonCommerceRaiding(TextPanelAPI text, boolean withIntelNotification)
Set< String > getIntelTags(SectorMapAPI map)
String getStageIconImpl(Object stageId)
void addBulletPoints(TooltipMakerAPI info, ListInfoMode mode, boolean isUpdate, Color tc, float initPad)
String getSoundForStageReachedUpdate(Object stageId)
void addStageDescriptionText(TooltipMakerAPI info, float width, Object stageId)
static void addFactorCreateIfNecessary(EventFactor factor, InteractionDialogAPI dialog)
Color getBarProgressIndicatorColor()
String getSoundForOneTimeFactorUpdate(EventFactor factor)
void addStageDesc(TooltipMakerAPI info, Object stageId, float initPad, boolean forTooltip)
void triggerCreateFleet(FleetSize size, FleetQuality quality, String factionId, String type, SectorEntityToken roughlyWhere)
void triggerSetStandardAggroInterceptFlags()
void setDoNotAbortWhenPlayerFleetTooStrong()
void setLocationOuterSector(boolean allowInsidePopulatedSystems, String requireLargestMarketNotHostileToFaction)
void setLocationCoreOnly(boolean allowInsidePopulatedSystems, String requireLargestMarketNotHostileToFaction)
void setLocationInnerSector(boolean allowInsidePopulatedSystems, String requireLargestMarketNotHostileToFaction)
void triggerFleetMakeFaster(boolean navigationSkill, int numTugs, boolean allowLongPursuit)
void triggerFleetAddCommanderSkill(String skill, int level)
void triggerAddShips(String ...variants)
void triggerSetFleetFlagPermanent(String flag)
void triggerSetFleetDoctrineComp(int warships, int carriers, int phaseShips)
void triggerMakeFleetIgnoreOtherFleets()
void triggerMakeNoRepImpact()
void triggerSetFleetOfficers(OfficerNum num, OfficerQuality quality)
void triggerSetFleetGenericHailPermanent(String commsTrigger)
void triggerSetFleetDoctrineOther(int shipSize, int aggression)
void triggerSetFleetMaxShipSize(int max)
void triggerSetFleetMaxNumShips(int num)
void triggerSetFleetFaction(final String factionId)
static Random getRandom(long seed, int level)
static Color getHighlightColor()
static Color interpolateColor(Color from, Color to, float progress)
static Color getPositiveHighlightColor()
String getSpriteName(String category, String id)
String getDisplayNameLong()
IntelManagerAPI getIntelManager()
FactionAPI getFaction(String factionId)
MemoryAPI getMemoryWithoutUpdate()
void addIntel(IntelInfoPlugin plugin)
void set(String key, Object value)
void setHighlight(int start, int end)
void setHighlightColors(Color ... colors)