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