001package com.fs.starfarer.api.impl.campaign.fleets;
002
003import com.fs.starfarer.api.EveryFrameScript;
004import com.fs.starfarer.api.Global;
005import com.fs.starfarer.api.campaign.CampaignFleetAPI;
006import com.fs.starfarer.api.campaign.CampaignEventListener.FleetDespawnReason;
007
008public class AutoDespawnScript implements EveryFrameScript {
009        protected CampaignFleetAPI fleet;
010        protected float elapsed = 0f;
011        
012        public AutoDespawnScript(CampaignFleetAPI fleet) {
013                this.fleet = fleet;
014        }
015
016        public void advance(float amount) {
017                if (!fleet.isInCurrentLocation()) {
018                        elapsed += Global.getSector().getClock().convertToDays(amount);
019                        if (elapsed > 30 && fleet.getBattle() == null) {
020                                fleet.despawn(FleetDespawnReason.PLAYER_FAR_AWAY, null);
021                                elapsed = -1;
022                        }
023                } else {
024                        elapsed = 0f;
025                }
026        }
027
028        public boolean isDone() {
029                return elapsed < 0;
030        }
031
032        public boolean runWhilePaused() {
033                return false;
034        } 
035}