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