001package com.fs.starfarer.api.impl.campaign.intel.group; 002 003import com.fs.starfarer.api.Global; 004import com.fs.starfarer.api.impl.campaign.fleets.RouteManager.RouteSegment; 005 006public class FGDurationAction extends BaseFGAction { 007 008 protected float durDays; 009 protected float origDurDays; 010 011 public FGDurationAction(float durDays) { 012 this.durDays = durDays; 013 origDurDays = durDays; 014 } 015 016 @Override 017 public void notifyFleetsSpawnedMidSegment(RouteSegment segment) { 018 super.notifyFleetsSpawnedMidSegment(segment); 019 durDays *= (1f - segment.getProgress()); 020 } 021 022 @Override 023 public void directFleets(float amount) { 024 super.directFleets(amount); 025 026 float days = Global.getSector().getClock().convertToDays(amount); 027 durDays -= days; 028 029 if (durDays <= 0) { 030 setActionFinished(true); 031 return; 032 } 033 } 034 035 public float getEstimatedDaysToComplete() { 036 if (intel.isSpawnedFleets()) { 037 return durDays; 038 } else { 039 RouteSegment segment = intel.getSegmentForAction(this); 040 if (segment == null) return 0f; 041 return Math.max(0f, segment.daysMax - segment.elapsed); 042 } 043 } 044 045 public float getDurDays() { 046 return durDays; 047 } 048 049 public void setDurDays(float waitDays) { 050 this.durDays = waitDays; 051 } 052 053 public float getOrigDurDays() { 054 return origDurDays; 055 } 056 057 public void setOrigDurDays(float origDurDays) { 058 this.origDurDays = origDurDays; 059 } 060 061} 062 063 064 065