1package com.fs.starfarer.api.impl.campaign.ghosts.types;
3import java.util.ArrayList;
5import java.util.Random;
7import org.lwjgl.util.vector.Vector2f;
9import com.fs.starfarer.api.Global;
10import com.fs.starfarer.api.campaign.CampaignFleetAPI;
11import com.fs.starfarer.api.campaign.LocationAPI;
12import com.fs.starfarer.api.campaign.StarSystemAPI;
13import com.fs.starfarer.api.impl.campaign.enc.BaseEPEncounterCreator;
14import com.fs.starfarer.api.impl.campaign.fleets.AutoDespawnScript;
15import com.fs.starfarer.api.impl.campaign.ghosts.BaseSensorGhostCreator;
16import com.fs.starfarer.api.impl.campaign.ghosts.GhostFrequencies;
17import com.fs.starfarer.api.impl.campaign.ghosts.SensorGhost;
18import com.fs.starfarer.api.impl.campaign.ghosts.SensorGhostManager;
19import com.fs.starfarer.api.impl.campaign.ids.Factions;
20import com.fs.starfarer.api.impl.campaign.ids.MemFlags;
21import com.fs.starfarer.api.impl.campaign.intel.bases.LuddicPathBaseIntel;
22import com.fs.starfarer.api.impl.campaign.intel.bases.PirateBaseIntel;
23import com.fs.starfarer.api.impl.campaign.missions.FleetCreatorMission;
24import com.fs.starfarer.api.impl.campaign.missions.hub.MissionFleetAutoDespawn;
25import com.fs.starfarer.api.util.WeightedRandomPicker;
29 public static enum OtherFleetType {
45 if (loc ==
null)
return null;
63 boolean guideToTarget = manager.
getRandom().nextBoolean();
65 List<SensorGhost> result =
new ArrayList<SensorGhost>();
92 float result = Math.max(f1, f2);
97 result = Math.max(result, f3);
100 picker.
add(OtherFleetType.PIRATE, f1 + 0.1f);
101 picker.
add(OtherFleetType.LUDDIC_PATH, f2 + 0.05f);
102 picker.
add(OtherFleetType.MERCENARY, (f1 + f2) * 0.25f + 0.01f);
103 picker.
add(OtherFleetType.NOTHING, 1f);
104 OtherFleetType type = picker.
pick();
105 if (type ==
null)
return null;
111 if (type == OtherFleetType.PIRATE) {
117 difficulty += (int) Math.round(f1 * 2f);
120 case TIER_1_1MODULE: difficulty += 2;
break;
121 case TIER_2_1MODULE: difficulty += 2;
break;
122 case TIER_3_2MODULE: difficulty += 3;
break;
123 case TIER_4_3MODULE: difficulty += 4;
break;
124 case TIER_5_3MODULE: difficulty += 5;
break;
127 difficulty += random.nextInt(4);
130 difficulty += random.nextInt(7);
132 Vector2f loc = locInHyper;
136 if (intel !=
null && intel.
getMarket() !=
null) {
140 }
else if (type == OtherFleetType.LUDDIC_PATH) {
142 if (intel2 !=
null) {
143 difficulty += (int) Math.round(f2 * 2f);
149 difficulty += random.nextInt(4);
152 difficulty += random.nextInt(7);
155 Vector2f loc = locInHyper;
160 if (intel2 !=
null && intel2.
getMarket() !=
null) {
165 }
else if (type == OtherFleetType.MERCENARY) {
167 float f = Math.max(f1, f2);
168 difficulty += (int) Math.round(f * 3f);
169 difficulty += random.nextInt(5);
171 Vector2f loc = locInHyper;
179 }
else if (type == OtherFleetType.NOTHING) {
183 if (fleet ==
null)
return null;
static SectorAPI getSector()
static float getRuinsProximityFactor(StarSystemAPI system, Vector2f locInHyper)
static float getLuddicPathBaseProximityFactor(LuddicPathBaseIntel base, Vector2f locInHyper)
static PirateBaseIntel getClosestPirateBase(Vector2f locInHyper)
static float getPirateBaseProximityFactor(PirateBaseIntel base, Vector2f locInHyper)
static StarSystemAPI getClosestSystemWithRuins(Vector2f locInHyper)
static LuddicPathBaseIntel getClosestLuddicPathBase(Vector2f locInHyper)
static Vector2f findHyperspaceArea(Vector2f from, float minRange, float maxRange, float radius, Random random, boolean clear, float noSlipstreamRange)
static float getEncounterTricksterFrequency(SensorGhostManager manager)
CampaignFleetAPI createOtherFleet(SensorGhostManager manager, Vector2f locInHyper)
List< SensorGhost > createGhost(SensorGhostManager manager)
float getFrequency(SensorGhostManager manager)
static final String LUDDIC_PATH
static final String MERCENARY
static final String PIRATES
static final String INDEPENDENT
static final String MEMORY_KEY_SOURCE_MARKET
CampaignFleetAPI createFleet()
void createQualityFleet(int difficulty, String factionId, Vector2f locInHyper)
void createStandardFleet(int difficulty, String factionId, Vector2f locInHyper)
void triggerFleetAllowLongPursuit()
void triggerFleetPatherNoDefaultTithe()
void triggerMakeNoRepImpact()
void triggerFleetSetAllWeapons()
void triggerSetStandardAggroPirateFlags()
void triggerSetFleetMemoryValue(final String key, final Object value)
void triggerSetFleetFaction(final String factionId)
void setLocation(float x, float y)
void addEntity(SectorEntityToken entity)
void removeEntity(SectorEntityToken entity)
CampaignFleetAPI getPlayerFleet()
LocationAPI getCurrentLocation()
void removeScriptsOfClass(Class c)
void addScript(EveryFrameScript script)
boolean isCreationFailed()