Starsector API
Loading...
Searching...
No Matches
RaidAssignmentAI.java
Go to the documentation of this file.
1package com.fs.starfarer.api.impl.campaign.intel.raid;
2
3import com.fs.starfarer.api.campaign.CampaignFleetAPI;
4import com.fs.starfarer.api.campaign.FleetActionTextProvider;
5import com.fs.starfarer.api.campaign.FleetAssignment;
6import com.fs.starfarer.api.campaign.ai.FleetAssignmentDataAPI;
7import com.fs.starfarer.api.impl.campaign.fleets.RouteManager.RouteData;
8import com.fs.starfarer.api.impl.campaign.fleets.RouteManager.RouteSegment;
9import com.fs.starfarer.api.impl.campaign.ids.MemFlags;
10import com.fs.starfarer.api.impl.campaign.procgen.themes.RouteFleetAssignmentAI;
11import com.fs.starfarer.api.util.Misc;
12
13public class RaidAssignmentAI extends RouteFleetAssignmentAI implements FleetActionTextProvider {
14
15 public RaidAssignmentAI(CampaignFleetAPI fleet, RouteData route, FleetActionDelegate delegate) {
16 super(fleet, route, delegate);
17 fleet.getAI().setActionTextProvider(this);
18 }
19
20 @Override
21 public void advance(float amount) {
22 super.advance(amount, false);
23
24 RouteSegment curr = route.getCurrent();
25 //if (!Misc.isBusy(fleet) &&
26 if (curr != null &&
27 (
28 BaseRaidStage.STRAGGLER.equals(route.getCustom()) ||
29 AssembleStage.WAIT_STAGE.equals(curr.custom) ||
30 curr.isTravel())) {
31 Misc.setFlagWithReason(fleet.getMemoryWithoutUpdate(), MemFlags.FLEET_BUSY, "raid_wait", true, 1);
32 }
33
34 checkCapture(amount);
35 //checkBuild(amount);
36
37 if (fleet.getMemoryWithoutUpdate().getBoolean(MemFlags.MEMORY_KEY_RAIDER)) {
38 checkRaid(amount);
39 }
40 }
41
42 @Override
43 protected String getInSystemActionText(RouteSegment segment) {
44 if (AssembleStage.WAIT_STAGE.equals(segment.custom)) {
45 return "waiting at rendezvous point";
46 }
47 String s = null;
48 if (delegate != null) s = delegate.getRaidInSystemText(fleet);
49 if (s == null) s = "raiding";
50 return s;
51 }
52
53 @Override
54 protected String getEndingActionText(RouteSegment segment) {
55 return super.getEndingActionText(segment);
56 }
57
58 @Override
59 protected String getStartingActionText(RouteSegment segment) {
60 if (AssembleStage.PREP_STAGE.equals(segment.custom)) {
61 String s = null;
62 if (delegate != null) s = delegate.getRaidPrepText(fleet, segment.from);
63 if (s == null) s = "preparing for raid";
64 return s;
65 }
66 if (segment.from == route.getMarket().getPrimaryEntity()) {
67 return "orbiting " + route.getMarket().getName();
68 }
69
70 String s = null;
71 if (delegate != null) s = delegate.getRaidDefaultText(fleet);
72 if (s == null) s = "raiding";
73 return s;
74 }
75
76 @Override
77 protected String getTravelActionText(RouteSegment segment) {
78 return super.getTravelActionText(segment);
79 }
80
81 public String getActionText(CampaignFleetAPI fleet) {
82 FleetAssignmentDataAPI curr = fleet.getCurrentAssignment();
83 if (curr != null && curr.getAssignment() == FleetAssignment.PATROL_SYSTEM &&
84 curr.getActionText() == null) {
85
86 String s = null;
87 if (delegate != null) s = delegate.getRaidDefaultText(fleet);
88 if (s == null) s = "raiding";
89 return s;
90
91 }
92 return null;
93 }
94
95
96
97
98
99}
RaidAssignmentAI(CampaignFleetAPI fleet, RouteData route, FleetActionDelegate delegate)