Starsector API
Loading...
Searching...
No Matches
CampaignFleetAIAPI.java
Go to the documentation of this file.
1package com.fs.starfarer.api.campaign.ai;
2
3import java.util.List;
4
5import com.fs.starfarer.api.Script;
6import com.fs.starfarer.api.campaign.BattleAPI;
7import com.fs.starfarer.api.campaign.CampaignFleetAPI;
8import com.fs.starfarer.api.campaign.FleetActionTextProvider;
9import com.fs.starfarer.api.campaign.FleetAssignment;
10import com.fs.starfarer.api.campaign.FleetEncounterContextPlugin;
11import com.fs.starfarer.api.campaign.SectorEntityToken;
12import com.fs.starfarer.api.fleet.CrewCompositionAPI;
13import com.fs.starfarer.api.fleet.FleetMemberAPI;
14
15public interface CampaignFleetAIAPI {
16
17 public static enum ActionType {
18 CANCEL,
19 HOSTILE,
20 }
21
22 public static enum EncounterOption {
23 ENGAGE,
24 DISENGAGE,
25 HOLD,
26 HOLD_VS_STRONGER,
27 }
28
29// public static enum PostEngagementOption {
30// MAINTAIN_CONTACT,
31// STAND_DOWN,
32// }
33
34 public static enum PursuitOption {
35 PURSUE,
36 HARRY,
37 LET_THEM_GO,
38 }
39
40 public static enum InitialBoardingResponse {
41 BOARD,
42 ENGAGE,
43 LET_IT_GO,
44 }
45
46 public static enum BoardingActionType {
47 HARD_DOCK,
48 LAUNCH,
49 ABORT,
50 }
51
52 public static class BoardingActionDecision {
53 private BoardingActionType type;
54 private CrewCompositionAPI party;
55 }
56
57
58 void advance(float amount);
59
60
61 /*
62 Whether *wants* to attack, if it were able to
63 Engage, flee, or a "let them go, but engage if they engage" behavior
64 After a battle, whether it wants to harry, salvage, or stand down
65 */
68
69 boolean wantsToJoin(BattleAPI battle, boolean playerInvolved);
70
71 //PostEngagementOption pickPostEngagementOption(FleetEncounterContextPlugin context, CampaignFleetAPI otherFleet);
72
74
75 InitialBoardingResponse pickBoardingResponse(FleetEncounterContextPlugin context, FleetMemberAPI toBoard, CampaignFleetAPI otherFleet);
76 List<FleetMemberAPI> pickBoardingTaskForce(FleetEncounterContextPlugin context, FleetMemberAPI toBoard, CampaignFleetAPI otherFleet);
77 BoardingActionDecision makeBoardingDecision(FleetEncounterContextPlugin context, FleetMemberAPI toBoard, CrewCompositionAPI maxAvailable);
78
80
81 void reportNearbyAction(ActionType type, SectorEntityToken actor, SectorEntityToken target, String responseVariable);
82
84 void setActionTextOverride(String actionTextOverride);
85
87 List<FleetAssignmentDataAPI> getAssignmentsCopy();
88
89
91 SectorEntityToken target, float maxDurationInDays,
92 Script onCompletion);
95 SectorEntityToken target, float maxDurationInDays,
96 String actionText, Script onCompletion);
99 void addAssignment(FleetAssignment assignment, SectorEntityToken target, float maxDurationInDays, Script onCompletion);
100 void addAssignment(FleetAssignment assignment, SectorEntityToken target, float maxDurationInDays, String actionText, Script onCompletion);
101 boolean isFleeing();
103
104
106
107
109
111
113
114 void doNotAttack(SectorEntityToken other, float durDays);
115
116
118 CampaignFleetAPI otherFleet, boolean pureCheck);
119
120
123
124
126 float maxDurationInDays, String actionText, boolean addTimeToNext,
127 Script onStart, Script onCompletion);
128
129
131}
132
133
134
135
136
137
138
139
140
141
void addAssignment(FleetAssignment assignment, SectorEntityToken target, float maxDurationInDays, String actionText, Script onCompletion)
EncounterOption pickEncounterOption(FleetEncounterContextPlugin context, CampaignFleetAPI otherFleet, boolean pureCheck)
EncounterOption pickEncounterOption(FleetEncounterContextPlugin context, CampaignFleetAPI otherFleet)
void addAssignmentAtStart(FleetAssignment assignment, SectorEntityToken target, float maxDurationInDays, String actionText, Script onCompletion)
BoardingActionDecision makeBoardingDecision(FleetEncounterContextPlugin context, FleetMemberAPI toBoard, CrewCompositionAPI maxAvailable)
InitialBoardingResponse pickBoardingResponse(FleetEncounterContextPlugin context, FleetMemberAPI toBoard, CampaignFleetAPI otherFleet)
List< FleetAssignmentDataAPI > getAssignmentsCopy()
boolean isCurrentAssignment(FleetAssignment assignment)
void setActionTextOverride(String actionTextOverride)
PursuitOption pickPursuitOption(FleetEncounterContextPlugin context, CampaignFleetAPI otherFleet)
boolean wantsToJoin(BattleAPI battle, boolean playerInvolved)
boolean isHostileTo(CampaignFleetAPI other)
void addAssignment(FleetAssignment assignment, SectorEntityToken target, float maxDurationInDays, Script onCompletion)
void doNotAttack(SectorEntityToken other, float durDays)
void reportNearbyAction(ActionType type, SectorEntityToken actor, SectorEntityToken target, String responseVariable)
void notifyInteractedWith(CampaignFleetAPI otherFleet)
void removeAssignment(FleetAssignmentDataAPI assignment)
void performCrashMothballingPriorToEscape(FleetEncounterContextPlugin context, CampaignFleetAPI playerFleet)
void removeFirstAssignmentIfItIs(FleetAssignment assignment)
void addAssignmentAtStart(FleetAssignment assignment, SectorEntityToken target, float maxDurationInDays, Script onCompletion)
void addAssignment(FleetAssignment assignment, SectorEntityToken target, float maxDurationInDays, String actionText, boolean addTimeToNext, Script onStart, Script onCompletion)
void setActionTextProvider(FleetActionTextProvider actionTextProvider)
List< FleetMemberAPI > pickBoardingTaskForce(FleetEncounterContextPlugin context, FleetMemberAPI toBoard, CampaignFleetAPI otherFleet)