Starsector API
Loading...
Searching...
No Matches
DistressCallResponseAssignmentAI.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.campaign.rules.MemoryAPI;
10import com.fs.starfarer.api.impl.campaign.procgen.themes.BaseAssignmentAI;
11import com.fs.starfarer.api.util.Misc;
12
13public class DistressCallResponseAssignmentAI extends BaseAssignmentAI {
14
15 protected StarSystemAPI system;
16
17 protected float elapsed = 0f;
18 protected float dur = 30f + (float) Math.random() * 20f;
19 protected boolean contactedPlayer = false;
20
21 protected final JumpPointAPI inner;
22 protected final JumpPointAPI outer;
23
24 public DistressCallResponseAssignmentAI(CampaignFleetAPI fleet, StarSystemAPI system, JumpPointAPI inner, JumpPointAPI outer) {
25 super();
26 this.fleet = fleet;
27 this.system = system;
28 this.inner = inner;
29 this.outer = outer;
30
32 }
33
34 @Override
35 protected void giveInitialAssignments() {
36 if (fleet.isInHyperspace()) {
37 fleet.addAssignment(FleetAssignment.GO_TO_LOCATION, outer, 20f);
38 }
39 fleet.addAssignment(FleetAssignment.ORBIT_AGGRESSIVE, inner, 10f + 5f * (float) Math.random());
40 }
41
42 @Override
43 protected void pickNext() {
44 MemoryAPI memory = fleet.getMemoryWithoutUpdate();
45 memory.unset("$distressResponse");
46 Misc.makeUnimportant(fleet, "distressResponse");
47// Misc.setFlagWithReason(fleet.getMemoryWithoutUpdate(), MemFlags.ENTITY_MISSION_IMPORTANT,
48// "distressResponse", false, 1000f);
49 Misc.giveStandardReturnToSourceAssignments(fleet);
50 }
51
52 @Override
53 public void advance(float amount) {
54 super.advance(amount);
55
56 if (fleet.isInCurrentLocation() && !contactedPlayer) {
57 VisibilityLevel level = fleet.getVisibilityLevelOfPlayerFleet();
58 if (level != VisibilityLevel.NONE && level != VisibilityLevel.SENSOR_CONTACT) {
59 contactedPlayer = true;
60 fleet.addAssignmentAtStart(FleetAssignment.INTERCEPT, Global.getSector().getPlayerFleet(), 3f, "approaching your fleet", null);
61 }
62 }
63 }
64
65}
66
67
68
69
70
71
72
73
74
75
76
77
static SectorAPI getSector()
Definition Global.java:59
DistressCallResponseAssignmentAI(CampaignFleetAPI fleet, StarSystemAPI system, JumpPointAPI inner, JumpPointAPI outer)