1package com.fs.starfarer.api.impl.campaign.intel.group;
3import java.util.LinkedHashSet;
4import java.util.Random;
7import com.fs.starfarer.api.Global;
8import com.fs.starfarer.api.campaign.CampaignFleetAPI;
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.econ.Industry;
13import com.fs.starfarer.api.campaign.econ.MarketAPI;
14import com.fs.starfarer.api.campaign.rules.MemoryAPI;
15import com.fs.starfarer.api.impl.campaign.ids.Factions;
16import com.fs.starfarer.api.impl.campaign.ids.Industries;
17import com.fs.starfarer.api.impl.campaign.ids.MemFlags;
18import com.fs.starfarer.api.impl.campaign.ids.Tags;
19import com.fs.starfarer.api.impl.campaign.intel.events.TriTachyonHostileActivityFactor;
20import com.fs.starfarer.api.impl.campaign.intel.events.ttcr.TTCRMercenariesBribedFactor;
21import com.fs.starfarer.api.impl.campaign.intel.events.ttcr.TriTachyonCommerceRaiding;
22import com.fs.starfarer.api.impl.campaign.intel.group.FGRaidAction.FGRaidType;
23import com.fs.starfarer.api.ui.SectorMapAPI;
24import com.fs.starfarer.api.util.IntervalUtil;
25import com.fs.starfarer.api.util.Misc;
34 public static String
KEY =
"$TTMAR_ref";
44 if (attack ==
null || attack.
isEnding())
return;
46 Random
random =
new Random();
49 if (target ==
null)
return;
51 GenericRaidParams
params =
new GenericRaidParams(
new Random(),
false);
66 params.payloadDays = 27f + 7f *
random.nextFloat();
68 params.raidParams.where = target;
69 params.raidParams.type = FGRaidType.SEQUENTIAL;
71 Set<String> disrupt =
new LinkedHashSet<String>();
73 params.raidParams.allowedTargets.add(market);
74 params.raidParams.allowNonHostileTargets =
true;
75 for (
Industry ind : market.getIndustries()) {
77 disrupt.add(ind.getId());
81 params.raidParams.disrupt.addAll(disrupt);
82 params.raidParams.raidsPerColony = Math.min(disrupt.size(), 4);
83 if (disrupt.isEmpty()) {
84 params.raidParams.raidsPerColony = 2;
87 if (
params.raidParams.allowedTargets.isEmpty()) {
118 String reasonTTMA =
"TTMA";
119 String reasonTTMAR =
"TTMAR";
121 MemoryAPI mem = fleet.getMemoryWithoutUpdate();
122 fleet.clearAssignments();
138 reasonTTMA,
false, -1f);
140 reasonTTMAR,
true, -1f);
165 super.notifyEnding();
178 return "mercenary attack";
183 return super.getForcesNoun();
189 return "Mercenary Counter-raid";
205 super.advance(amount);
221 Set<String> tags = super.getIntelTags(map);
static FactoryAPI getFactory()
static SectorAPI getSector()
static final String TRITACHYON
static final String DIKTAT
static final String INDEPENDENT
static final String TAG_UNRAIDABLE
static final String MEMORY_KEY_MAKE_NON_HOSTILE
static final String MEMORY_KEY_MAKE_HOSTILE
void setImportant(Boolean important)
static StarSystemAPI getPrimaryTriTachyonSystem()
static void addFactorCreateIfNecessary(EventFactor factor, InteractionDialogAPI dialog)
void finish(boolean isAbort)
void setTotalFPSpawned(float totalFPSpawned)
void removeAction(String id)
float getTotalFPSpawned()
void setSpawnedFleets(boolean spawnedFleets)
int getApproximateNumberOfFleets()
List< CampaignFleetAPI > getFleets()
boolean isCurrent(String id)
void setDoIncrementalSpawn(boolean doIncrementalSpawn)
void setApproximateNumberOfFleets(int approximateNumberOfFleets)
static String PAYLOAD_ACTION
static String RETURN_ACTION
static final String TTMA_FLEET
static TTMercenaryAttack get()
static final String TTMA_COMMAND
Set< String > getIntelTags(SectorMapAPI map)
static final String TTMAR_COMMAND
TTMercenaryReversedAttack(GenericRaidParams params)
static void sendReversedAttack(InteractionDialogAPI dialog)
void advance(float amount)
static final String TTMAR_FLEET
void advance(float amount)
static void makeNonHostileToFaction(CampaignFleetAPI fleet, String factionId, float dur)
static List< MarketAPI > getMarketsInLocation(LocationAPI location, String factionId)
static void makeHostileToFaction(CampaignFleetAPI fleet, String factionId, float dur)
static float getDays(float amount)
static boolean setFlagWithReason(MemoryAPI memory, String flagKey, String reason, boolean value, float expire)
static String FLEET_RETURNING_TO_DESPAWN
MarketAPI createMarket(String id, String name, int size)
LocationAPI getContainingLocation()
TextPanelAPI getTextPanel()
SectorEntityToken createToken(float x, float y)
CampaignFleetAPI getPlayerFleet()
IntelManagerAPI getIntelManager()
MemoryAPI getMemoryWithoutUpdate()
void setMarket(MarketAPI market)
void addIntel(IntelInfoPlugin plugin)
void setFactionId(String factionId)
void setPrimaryEntity(SectorEntityToken primaryEntity)
void set(String key, Object value)
boolean getBoolean(String key)