Starsector API
Loading...
Searching...
No Matches
MissionFleetStopPursuingPlayer.java
Go to the documentation of this file.
1package com.fs.starfarer.api.impl.campaign.missions.hub;
2
3import java.util.HashSet;
4import java.util.List;
5import java.util.Set;
6
7import com.fs.starfarer.api.EveryFrameScript;
8import com.fs.starfarer.api.Global;
9import com.fs.starfarer.api.campaign.CampaignFleetAPI;
10import com.fs.starfarer.api.campaign.FleetAssignment;
11import com.fs.starfarer.api.campaign.ai.FleetAssignmentDataAPI;
12import com.fs.starfarer.api.campaign.ai.ModularFleetAIAPI;
13import com.fs.starfarer.api.impl.campaign.ids.MemFlags;
14import com.fs.starfarer.api.util.Misc;
15
17
18 protected CampaignFleetAPI fleet;
20 protected Set<Object> stages = new HashSet<Object>();
21 protected boolean done = false;
22
23
24 public MissionFleetStopPursuingPlayer(CampaignFleetAPI fleet, BaseHubMission mission, List<Object> stages) {
25 this.mission = mission;
26 this.fleet = fleet;
27 this.stages.addAll(stages);
28 }
29
30 public void advance(float amount) {
31 if (done) return;
32 Object stage = mission.getCurrentStage();
33
34 if (!stages.contains(stage)) {
35 if (fleet.getAI() instanceof ModularFleetAIAPI) {
36 ModularFleetAIAPI ai = (ModularFleetAIAPI) fleet.getAI();
37 if (ai.getAssignmentModule() != null) {
38 FleetAssignmentDataAPI curr = ai.getAssignmentModule().getCurrentAssignment();
39 if (curr != null && curr.getTarget() == Global.getSector().getPlayerFleet() &&
40 (curr.getAssignment() == FleetAssignment.INTERCEPT ||
41 curr.getAssignment() == FleetAssignment.FOLLOW)) {
42 ai.getAssignmentModule().removeFirstAssignment();
43 }
44 }
45 }
46 if (fleet.getAI() != null && fleet.getAI().getAssignmentsCopy().isEmpty()) {
47 Misc.giveStandardReturnToSourceAssignments(fleet, true);
48 }
49 Misc.setFlagWithReason(fleet.getMemoryWithoutUpdate(), MemFlags.MEMORY_KEY_MAKE_HOSTILE,
50 mission.getReason(), false, -1f);
51 done = true;
52 }
53
54 }
55
56 public boolean isDone() {
57 return done;
58 }
59
60 public boolean runWhilePaused() {
61 return false;
62 }
63
64
65}
66
67
68
69
70
71
72
73
74
75
static SectorAPI getSector()
Definition Global.java:59
MissionFleetStopPursuingPlayer(CampaignFleetAPI fleet, BaseHubMission mission, List< Object > stages)