Starsector API
Loading...
Searching...
No Matches
MinnowGhostCreator.java
Go to the documentation of this file.
1package com.fs.starfarer.api.impl.campaign.ghosts.types;
2
3import java.util.ArrayList;
4import java.util.List;
5
6import org.lwjgl.util.vector.Vector2f;
7
8import com.fs.starfarer.api.Global;
9import com.fs.starfarer.api.campaign.CampaignFleetAPI;
10import com.fs.starfarer.api.campaign.SectorEntityToken;
11import com.fs.starfarer.api.impl.campaign.ghosts.BaseSensorGhostCreator;
12import com.fs.starfarer.api.impl.campaign.ghosts.GhostFrequencies;
13import com.fs.starfarer.api.impl.campaign.ghosts.SensorGhost;
14import com.fs.starfarer.api.impl.campaign.ghosts.SensorGhostManager;
15import com.fs.starfarer.api.impl.campaign.ghosts.SharedTrigger;
16
18
19 @Override
20 public List<SensorGhost> createGhost(SensorGhostManager manager) {
21 if (!Global.getSector().getCurrentLocation().isHyperspace()) return null;
22 CampaignFleetAPI pf = Global.getSector().getPlayerFleet();
23
24 // not inside slipstreams, but can be close enough so they occasionally dart in
25 Vector2f loc = findHyperspaceArea(pf.getLocation(), 1500f, 2000f, 1000f, manager.getRandom(), true, 250f);
26 if (loc == null) return null;
27
28 SectorEntityToken target = Global.getSector().getHyperspace().createToken(loc);
29
30 int numMinnows = 5 + manager.getRandom().nextInt(11);
31
32 float minRange = 100f;
33 float maxRange = 500;
34 float dur = 5f + manager.getRandom().nextFloat() * 5f;
35
36 SharedTrigger trigger = new SharedTrigger();
37 List<SensorGhost> result = new ArrayList<SensorGhost>();
38 for (int i = 0; i < numMinnows; i++) {
39 MinnowGhost m = new MinnowGhost(manager, target, minRange, maxRange,
40 dur + manager.getRandom().nextFloat(), trigger);
41 result.add(m);
42 }
43 return result;
44 }
45
46
47 @Override
48 public float getFrequency(SensorGhostManager manager) {
50 //return 10000f;
51 }
52
54 return true;
55 }
56}
static SectorAPI getSector()
Definition Global.java:59
static Vector2f findHyperspaceArea(Vector2f from, float minRange, float maxRange, float radius, Random random, boolean clear, float noSlipstreamRange)
static float getMinnowFrequency(SensorGhostManager manager)
List< SensorGhost > createGhost(SensorGhostManager manager)