1package com.fs.starfarer.api.impl.campaign.ghosts.types;
3import java.util.Random;
5import org.lwjgl.util.vector.Vector2f;
7import com.fs.starfarer.api.Script;
8import com.fs.starfarer.api.campaign.CampaignFleetAPI;
9import com.fs.starfarer.api.impl.campaign.fleets.AutoDespawnScript;
10import com.fs.starfarer.api.impl.campaign.ghosts.BaseSensorGhost;
11import com.fs.starfarer.api.impl.campaign.ghosts.GBCircle;
12import com.fs.starfarer.api.impl.campaign.ghosts.GBIRunScript;
13import com.fs.starfarer.api.impl.campaign.ghosts.GBIntercept;
14import com.fs.starfarer.api.impl.campaign.ghosts.GBStayInPlace;
15import com.fs.starfarer.api.impl.campaign.ghosts.SensorGhostManager;
16import com.fs.starfarer.api.impl.campaign.ids.Factions;
17import com.fs.starfarer.api.impl.campaign.ids.FleetTypes;
18import com.fs.starfarer.api.impl.campaign.missions.FleetCreatorMission;
19import com.fs.starfarer.api.impl.campaign.missions.hub.HubMissionWithTriggers.FleetQuality;
20import com.fs.starfarer.api.impl.campaign.missions.hub.HubMissionWithTriggers.FleetSize;
21import com.fs.starfarer.api.impl.campaign.missions.hub.HubMissionWithTriggers.OfficerNum;
22import com.fs.starfarer.api.impl.campaign.missions.hub.HubMissionWithTriggers.OfficerQuality;
23import com.fs.starfarer.api.util.Misc;
34 int maxBurn = 9 +
random.nextInt(3);;
44 float speed = Misc.getSpeedForBurnLevel(maxBurn);
45 float accelMult = speed / Misc.getSpeedForBurnLevel(20f);
57 FleetCreatorMission m =
new FleetCreatorMission(
random);
60 Vector2f loc =
entity.getLocationInHyperspace();
62 FleetSize size = FleetSize.MEDIUM;
63 FleetQuality quality = FleetQuality.VERY_LOW;
64 OfficerQuality oQuality = OfficerQuality.AI_MIXED;
65 OfficerNum oNum = OfficerNum.DEFAULT;
66 String type = FleetTypes.PATROL_MEDIUM;
67 float r =
random.nextFloat();
69 size = FleetSize.LARGE;
70 }
else if (r < 0.5f) {
71 size = FleetSize.LARGER;
74 m.triggerCreateFleet(size, quality, Factions.REMNANTS, type, loc);
75 m.getPreviousCreateFleetAction().fQualityMod = -10f;
76 m.triggerSetFleetOfficers(oNum, oQuality);
77 m.triggerSetRemnantConfigDormant();
79 CampaignFleetAPI fleet = m.createFleet();
81 setVel(
new Vector2f(0, 0));
82 entity.getContainingLocation().addEntity(fleet);
83 fleet.setLocation(
entity.getLocation().x,
entity.getLocation().y);
84 fleet.addScript(
new AutoDespawnScript(fleet));
85 fleet.getMemoryWithoutUpdate().set(
"$fromGhost",
true);
void addBehavior(GhostBehavior b)
float genLargeSensorProfile()
void setVel(Vector2f vel)
void setDespawnRange(float despawnRange)
void setAccelMult(float accelMult)
boolean placeNearPlayer()
void initEntity(float sensorProfile, float radius)
void addInterrupt(GhostBehaviorInterrupt interrupt)
SensorGhostManager manager
CustomCampaignEntityAPI entity
RemnantGhost(SensorGhostManager manager, CampaignFleetAPI fleet)