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}