Starsector API
Loading...
Searching...
No Matches
DistressCallResponsePirateAssignmentAI.java
Go to the documentation of this file.
1package com.fs.starfarer.api.impl.campaign.abilities;
2
3import com.fs.starfarer.api.Global;
4import com.fs.starfarer.api.campaign.CampaignFleetAPI;
5import com.fs.starfarer.api.campaign.FleetAssignment;
6import com.fs.starfarer.api.campaign.JumpPointAPI;
7import com.fs.starfarer.api.campaign.StarSystemAPI;
8import com.fs.starfarer.api.campaign.SectorEntityToken.VisibilityLevel;
9import com.fs.starfarer.api.impl.campaign.procgen.themes.BaseAssignmentAI;
10import com.fs.starfarer.api.util.Misc;
11
12public class DistressCallResponsePirateAssignmentAI extends BaseAssignmentAI {
13
14 protected StarSystemAPI system;
15
16 protected float elapsed = 0f;
17 protected float dur = 30f + (float) Math.random() * 20f;
18 protected boolean contactedPlayer = false;
19
20 protected final JumpPointAPI inner;
21 protected final JumpPointAPI outer;
22
23 public DistressCallResponsePirateAssignmentAI(CampaignFleetAPI fleet, StarSystemAPI system, JumpPointAPI inner, JumpPointAPI outer) {
24 super();
25 this.fleet = fleet;
26 this.system = system;
27 this.inner = inner;
28 this.outer = outer;
29
31 }
32
33 @Override
34 protected void giveInitialAssignments() {
35 if (fleet.isInHyperspace()) {
36 fleet.addAssignment(FleetAssignment.GO_TO_LOCATION, outer, 20f);
37 }
38 fleet.addAssignment(FleetAssignment.ORBIT_AGGRESSIVE, inner, 10f + 5f * (float) Math.random());
39 }
40
41 @Override
42 protected void pickNext() {
43 Misc.giveStandardReturnToSourceAssignments(fleet);
44 }
45
46 @Override
47 public void advance(float amount) {
48 super.advance(amount);
49
50 if (fleet.isInCurrentLocation() && !contactedPlayer) {
51 VisibilityLevel level = fleet.getVisibilityLevelOfPlayerFleet();
52 if (level != VisibilityLevel.NONE && level != VisibilityLevel.SENSOR_CONTACT) {
53 contactedPlayer = true;
54 fleet.addAssignmentAtStart(FleetAssignment.INTERCEPT, Global.getSector().getPlayerFleet(), 3f, "approaching your fleet", null);
55 }
56 }
57 }
58
59}
60
61
62
63
64
65
66
67
68
69
70
71
static SectorAPI getSector()
Definition Global.java:59
DistressCallResponsePirateAssignmentAI(CampaignFleetAPI fleet, StarSystemAPI system, JumpPointAPI inner, JumpPointAPI outer)