1package com.fs.starfarer.api.impl.campaign.world;
5import org.lwjgl.util.vector.Vector2f;
7import com.fs.starfarer.api.Global;
8import com.fs.starfarer.api.campaign.CampaignFleetAPI;
9import com.fs.starfarer.api.campaign.CargoAPI;
10import com.fs.starfarer.api.campaign.CustomCampaignEntityAPI;
11import com.fs.starfarer.api.campaign.InteractionDialogAPI;
12import com.fs.starfarer.api.campaign.LocationAPI;
13import com.fs.starfarer.api.campaign.NascentGravityWellAPI;
14import com.fs.starfarer.api.campaign.PlanetAPI;
15import com.fs.starfarer.api.campaign.SectorAPI;
16import com.fs.starfarer.api.campaign.SectorEntityToken;
17import com.fs.starfarer.api.campaign.StarSystemAPI;
18import com.fs.starfarer.api.characters.FullName;
19import com.fs.starfarer.api.characters.FullName.Gender;
20import com.fs.starfarer.api.characters.PersonAPI;
21import com.fs.starfarer.api.combat.BattleCreationContext;
22import com.fs.starfarer.api.fleet.FleetMemberAPI;
23import com.fs.starfarer.api.impl.MusicPlayerPluginImpl;
24import com.fs.starfarer.api.impl.campaign.CoreLifecyclePluginImpl;
25import com.fs.starfarer.api.impl.campaign.DerelictShipEntityPlugin;
26import com.fs.starfarer.api.impl.campaign.DerelictShipEntityPlugin.DerelictShipData;
27import com.fs.starfarer.api.impl.campaign.FleetEncounterContext;
28import com.fs.starfarer.api.impl.campaign.FleetInteractionDialogPluginImpl.BaseFIDDelegate;
29import com.fs.starfarer.api.impl.campaign.FleetInteractionDialogPluginImpl.FIDConfig;
30import com.fs.starfarer.api.impl.campaign.FleetInteractionDialogPluginImpl.FIDConfigGen;
31import com.fs.starfarer.api.impl.campaign.RuleBasedInteractionDialogPluginImpl;
32import com.fs.starfarer.api.impl.campaign.WarningBeaconEntityPlugin;
33import com.fs.starfarer.api.impl.campaign.fleets.FleetFactoryV3;
34import com.fs.starfarer.api.impl.campaign.ids.Conditions;
35import com.fs.starfarer.api.impl.campaign.ids.Entities;
36import com.fs.starfarer.api.impl.campaign.ids.Factions;
37import com.fs.starfarer.api.impl.campaign.ids.FleetTypes;
38import com.fs.starfarer.api.impl.campaign.ids.MemFlags;
39import com.fs.starfarer.api.impl.campaign.ids.Personalities;
40import com.fs.starfarer.api.impl.campaign.ids.Pings;
41import com.fs.starfarer.api.impl.campaign.ids.Ranks;
42import com.fs.starfarer.api.impl.campaign.ids.Skills;
43import com.fs.starfarer.api.impl.campaign.ids.Tags;
44import com.fs.starfarer.api.impl.campaign.ids.Terrain;
45import com.fs.starfarer.api.impl.campaign.procgen.NebulaEditor;
46import com.fs.starfarer.api.impl.campaign.procgen.StarSystemGenerator.StarSystemType;
47import com.fs.starfarer.api.impl.campaign.procgen.themes.BaseThemeGenerator;
48import com.fs.starfarer.api.impl.campaign.procgen.themes.RemnantSeededFleetManager.RemnantFleetInteractionConfigGen;
49import com.fs.starfarer.api.impl.campaign.procgen.themes.SalvageSpecialAssigner.ShipRecoverySpecialCreator;
50import com.fs.starfarer.api.impl.campaign.rulecmd.salvage.special.ShipRecoverySpecial.PerShipData;
51import com.fs.starfarer.api.impl.campaign.rulecmd.salvage.special.ShipRecoverySpecial.ShipCondition;
52import com.fs.starfarer.api.impl.campaign.rulecmd.salvage.special.ShipRecoverySpecial.ShipRecoverySpecialData;
53import com.fs.starfarer.api.impl.campaign.terrain.HyperspaceTerrainPlugin;
54import com.fs.starfarer.api.impl.campaign.terrain.MagneticFieldTerrainPlugin.MagneticFieldParams;
55import com.fs.starfarer.api.loading.VariantSource;
56import com.fs.starfarer.api.util.Misc;
65 public static class ZigFIDConfig
implements FIDConfigGen {
66 public FIDConfig createConfig() {
67 FIDConfig config =
new FIDConfig();
72 config.showTransponderStatus =
false;
73 config.showEngageText =
false;
74 config.alwaysPursue =
true;
75 config.dismissOnLeave =
false;
77 config.withSalvage =
false;
79 config.printXPToDialog =
true;
81 config.noSalvageLeaveOptionText =
"Continue";
85 config.delegate =
new BaseFIDDelegate() {
87 new RemnantFleetInteractionConfigGen().createConfig().delegate.
88 postPlayerSalvageGeneration(dialog, context, salvage);
106 PerShipData ship =
new PerShipData(
"ziggurat_Hull", ShipCondition.WRECKED, 0f);
107 ship.shipName =
"TTS Xenorphica";
108 DerelictShipData params =
new DerelictShipData(ship,
false);
118 ShipRecoverySpecialData data =
new ShipRecoverySpecialData(
null);
119 data.notNowOptionExits =
true;
120 data.noDescriptionText =
true;
122 PerShipData copy = (PerShipData) dsep.
getData().ship.clone();
124 copy.variantId =
null;
138 bcc.aiRetreatAllowed =
false;
139 bcc.objectivesAllowed =
false;
140 bcc.fightToTheLast =
true;
141 bcc.enemyDeployAll =
true;
152 system.
setName(
"Unknown Location");
153 system.
setType(StarSystemType.DEEP_SPACE);
177 String type =
"barren";
179 PlanetAPI rock = system.
addPlanet(
"site_alpha", center,
"Alpha Site", type, 0, 150, 1200, 40);
199 new MagneticFieldParams(150f,
204 new Color(60, 60, 150, 90),
206 new Color(130, 60, 150, 130),
207 new Color(150, 30, 120, 150),
208 new Color(200, 50, 130, 190),
209 new Color(250, 70, 150, 240),
210 new Color(200, 80, 130, 255),
211 new Color(75, 0, 160, 255),
212 new Color(127, 0, 255, 255)
248 "venture_Outdated",
"ISS Hamatsu",
HAMATSU_ID, ShipCondition.BATTERED, 200,
true);
261 fleet.
setName(
"Unidentified Vessel");
300 Vector2f loc =
new Vector2f(rock.
getLocation().x + 300 * ((
float) Math.random() - 0.5f),
301 rock.
getLocation().y + 300 * ((
float) Math.random() - 0.5f));
347 String variantId, String name, String
id,
348 ShipCondition condition,
float orbitRadius,
boolean recoverable) {
349 DerelictShipData params =
new DerelictShipData(
new PerShipData(variantId, condition, 0f),
false);
351 params.ship.shipName = name;
352 params.ship.nameAlwaysKnown =
true;
353 params.ship.fleetMemberId = id;
358 float orbitDays = orbitRadius / (10f + (float) Math.random() * 5f);
359 ship.
setCircularOrbit(focus, (
float) Math.random() * 360f, orbitRadius, orbitDays);
362 ShipRecoverySpecialCreator creator =
new ShipRecoverySpecialCreator(
null, 0, 0,
false,
null,
null);
static SettingsAPI getSettings()
static FactoryAPI getFactory()
static SectorAPI getSector()
static String KEEP_PLAYING_LOCATION_MUSIC_DURING_ENCOUNTER_MEM_KEY
static String MUSIC_SET_MEM_KEY
static void addRuinsJunk(SectorEntityToken planet)
DerelictShipData getData()
void init(InteractionDialogAPI dialog)
static String PING_FREQ_KEY
static String PING_ID_KEY
static String GLOW_COLOR_KEY
static String PING_COLOR_KEY
static CampaignFleetAPI createEmptyFleet(String factionId, String fleetType, MarketAPI market)
static final String NO_ATMOSPHERE
static final String RUINS_SCATTERED
static final String IRRADIATED
static final String WARNING_BEACON
static final String WRECK
static final String ALPHA_SITE_WEAPONS_CACHE
static final String NEUTRAL
static final String PATROL_LARGE
static final String MEMORY_KEY_MAKE_ALWAYS_PURSUE
static final String MEMORY_KEY_NO_SHIP_RECOVERY
static final String FLEET_INTERACTION_DIALOG_CONFIG_OVERRIDE_GEN
static final String MEMORY_KEY_MAKE_HOSTILE
static final String MEMORY_KEY_MAKE_AGGRESSIVE
static final String MEMORY_KEY_LOW_REP_IMPACT
static final String MEMORY_KEY_NO_REP_IMPACT
static final String RECKLESS
static final String WARNING_BEACON3
static String SPACE_CAPTAIN
static final String COMBAT_ENDURANCE
static final String TARGET_ANALYSIS
static final String HELMSMANSHIP
static final String MISSILE_SPECIALIZATION
static final String NAVIGATION
static final String IMPACT_MITIGATION
static final String ENERGY_WEAPON_MASTERY
static final String POLARIZED_ARMOR
static final String FIELD_MODULATION
static final String DAMAGE_CONTROL
static final String GUNNERY_IMPLANTS
static final String MAGNETIC_FIELD
void clearArc(float x, float y, float innerRadius, float outerRadius, float startAngle, float endAngle)
static SectorEntityToken addSalvageEntity(LocationAPI location, String id, String faction)
static NascentGravityWellAPI getWell()
static PersonAPI createZigguratCaptain()
static SectorEntityToken addDerelict(StarSystemAPI system, SectorEntityToken focus, String variantId, String name, String id, ShipCondition condition, float orbitRadius, boolean recoverable)
static String DEFEATED_ZIGGURAT_KEY
static void addFleet(SectorEntityToken rock)
void generate(SectorAPI sector)
static String NASCENT_WELL_KEY
static void makeImportant(SectorEntityToken entity, String reason)
static void setSalvageSpecial(SectorEntityToken entity, Object data)
static CampaignTerrainAPI getHyperspaceTerrain()
String getSpriteName(String category, String id)
ShipVariantAPI getVariant(String variantId)
LocationAPI getContainingLocation()
void setName(String name)
void setCommander(PersonAPI commander)
FleetMemberAPI getFlagship()
FleetDataAPI getFleetData()
void setNoFactionInName(boolean noFactionInName)
void setLocation(float x, float y)
CampaignTerrainPlugin getPlugin()
void addFleetMember(FleetMemberAPI member)
void setInteractionTarget(SectorEntityToken interactionTarget)
void setPlugin(InteractionDialogPlugin plugin)
SectorEntityToken getInteractionTarget()
SectorEntityToken addTerrain(String terrainId, Object param)
PlanetAPI addPlanet(String id, SectorEntityToken focus, String name, String type, float angle, float radius, float orbitRadius, float orbitDays)
void addEntity(SectorEntityToken entity)
void setName(String name)
CustomCampaignEntityAPI addCustomEntity(String id, String name, String type, String factionId)
void setBackgroundTextureFilename(String backgroundTextureFilename)
MemoryAPI getMemoryWithoutUpdate()
void setColorOverride(Color colorOverride)
StarSystemAPI createStarSystem(String name)
NascentGravityWellAPI createNascentGravityWell(SectorEntityToken target, float radius)
MemoryAPI getMemoryWithoutUpdate()
LocationAPI getHyperspace()
LocationAPI getContainingLocation()
CustomCampaignEntityPlugin getCustomPlugin()
void setCircularOrbitPointingDown(SectorEntityToken focus, float angle, float orbitRadius, float orbitDays)
void autoUpdateHyperLocationBasedOnInSystemEntityAtRadius(SectorEntityToken entity, float radius)
void setCircularOrbit(SectorEntityToken focus, float angle, float orbitRadius, float orbitDays)
void addScript(EveryFrameScript script)
void setDiscoverable(Boolean discoverable)
void setLocation(float x, float y)
void setOrbit(OrbitAPI orbit)
MemoryAPI getMemoryWithoutUpdate()
void setTransponderOn(boolean transponderOn)
SectorEntityToken initNonStarCenter()
void generateAnchorIfNeeded()
void setLightColor(Color lightColor)
void setType(StarSystemType type)
MemoryAPI getMemoryWithoutUpdate()
String addCondition(String id)
void set(String key, Object value)
void setSkillLevel(String id, float level)
void setSkipRefresh(boolean skipRefresh)
void setPortraitSprite(String portraitSprite)
void setName(FullName name)
void setFaction(String factionId)
void setRankId(String rank)
MutableCharacterStatsAPI getStats()
void setPersonality(String personality)
void setPostId(String postId)
void setSource(VariantSource source)
ShipVariantAPI getVariant()
void setCaptain(PersonAPI commander)
void setShipName(String name)
RepairTrackerAPI getRepairTracker()
void setVariant(ShipVariantAPI variant, boolean withRefit, boolean withStatsUpdate)