001package com.fs.starfarer.api.impl.campaign.events.nearby;
002
003import com.fs.starfarer.api.Global;
004import com.fs.starfarer.api.campaign.CampaignFleetAPI;
005import com.fs.starfarer.api.campaign.FleetAssignment;
006import com.fs.starfarer.api.campaign.SectorEntityToken;
007import com.fs.starfarer.api.campaign.StarSystemAPI;
008import com.fs.starfarer.api.impl.campaign.procgen.themes.BaseAssignmentAI;
009import com.fs.starfarer.api.util.Misc;
010
011public class DistressCallPirateAmbushAssignmentAI extends BaseAssignmentAI {
012
013        protected StarSystemAPI system;
014        protected SectorEntityToken jumpPoint;
015        
016        protected float elapsed = 0f;
017        protected float dur = 30f + (float) Math.random() * 20f;
018        
019        public DistressCallPirateAmbushAssignmentAI(CampaignFleetAPI fleet, StarSystemAPI system, SectorEntityToken jumpPoint) {
020                super();
021                this.fleet = fleet;
022                this.system = system;
023                this.jumpPoint = jumpPoint;
024                
025                giveInitialAssignments();
026        }
027
028        @Override
029        protected void giveInitialAssignments() {
030                fleet.addAssignment(FleetAssignment.ORBIT_AGGRESSIVE, jumpPoint, 1000f, "laying in wait");
031        }
032
033        @Override
034        protected void pickNext() {
035                fleet.addAssignment(FleetAssignment.ORBIT_AGGRESSIVE, jumpPoint, 1000f, "laying in wait");
036        }
037
038        @Override
039        public void advance(float amount) {
040                super.advance(amount);
041                
042                float days = Global.getSector().getClock().convertToDays(amount);
043                
044                elapsed += days;
045                
046                if (elapsed >= dur) {
047                        Misc.giveStandardReturnToSourceAssignments(fleet);
048                }
049        }
050
051}
052
053
054
055
056
057
058
059
060
061
062
063