001package com.fs.starfarer.api.campaign.ai;
002
003import java.util.List;
004
005import com.fs.starfarer.api.Script;
006import com.fs.starfarer.api.campaign.FleetAssignment;
007import com.fs.starfarer.api.campaign.SectorEntityToken;
008
009public interface AssignmentModulePlugin {
010
011        void advance(float days);
012        FleetAssignmentDataAPI getCurrentAssignment();
013        void addAssignment(FleetAssignment assignment, SectorEntityToken target, float maxDurationInDays, Script onCompletion);
014        void addAssignment(FleetAssignment assignment, SectorEntityToken target, float maxDurationInDays, String actionText, Script onCompletion);
015        void addAssignmentAtStart(FleetAssignment assignment, SectorEntityToken target, float maxDurationInDays, String actionText, Script onCompletion);
016        void addAssignmentAtStart(FleetAssignment assignment, SectorEntityToken target, float maxDurationInDays, Script onCompletion);
017        boolean isCurrentAssignment(FleetAssignment assignment);
018        void removeFirstAssignmentIfItIs(FleetAssignment assignment);
019        void removeFirstAssignment();
020        void clearAssignments();
021        List<FleetAssignmentDataAPI> getAssignmentsCopy();
022        boolean areAssignmentsFrozen();
023        void freezeAssignments();
024        void addAssignment(FleetAssignment assignment, SectorEntityToken target,
025                                           float maxDurationInDays, String actionText, boolean addTimeToNext,
026                                           Script onStart, Script onCompletion);
027        void removeAssignment(FleetAssignmentDataAPI assignment);
028        
029        
030}