Starsector API
Loading...
Searching...
No Matches
AbyssalDrifterGhost.java
Go to the documentation of this file.
1package com.fs.starfarer.api.impl.campaign.ghosts.types;
2
3import java.util.Random;
4
5import com.fs.starfarer.api.campaign.CampaignFleetAPI;
6import com.fs.starfarer.api.impl.campaign.ghosts.BaseSensorGhost;
7import com.fs.starfarer.api.impl.campaign.ghosts.GBGoInDirection;
8import com.fs.starfarer.api.impl.campaign.ghosts.SensorGhostManager;
9import com.fs.starfarer.api.util.WeightedRandomPicker;
10
12
13 public AbyssalDrifterGhost(SensorGhostManager manager, CampaignFleetAPI fleet) {
14 super(manager, 0);
15
16 Random random = manager.getRandom();
17 float r = random.nextFloat();
18 if (r < 0.25f) {
20 if (random.nextFloat() < 0.5f) {
21 setNumSensorIndicators(2, 3, random);
22 }
23 } else if (r < 0.6f) {
25 if (random.nextFloat() < 0.5f) {
26 setNumSensorIndicators(2, 3, random);
27 }
28 } else {
30 if (random.nextFloat() < 0.5f) {
31 setNumSensorIndicators(5, 7, random);
32 }
33 }
34
35
36 if (!placeNearPlayer(800, 1200)) {
38 return;
39 }
40
42
43 WeightedRandomPicker<Integer> picker = new WeightedRandomPicker<Integer>(random);
44 picker.add(0, 15f);
45 picker.add(1, 50f);
46 picker.add(2, 25f);
47 picker.add(3, 10f);
48
49 int burn = picker.pick();
50 float dur = 15f + random.nextFloat() * 20f;
51 float dir = random.nextFloat() * 360f;
52
53 addBehavior(new GBGoInDirection(dur, dir, burn));
54 }
55
56}
57
58
59
void setNumSensorIndicators(int min, int max, Random random)
AbyssalDrifterGhost(SensorGhostManager manager, CampaignFleetAPI fleet)