001package com.fs.starfarer.api.combat;
002
003import java.awt.Color;
004
005public interface FluxTrackerAPI {
006
007        float getTimeToVent();
008        float getOverloadTimeRemaining();
009        
010        boolean isOverloaded();
011        boolean isVenting();
012        boolean isOverloadedOrVenting();
013        
014        boolean isEngineBoostActive();
015        /**
016         * @return flux level, from 0 to 1
017         */
018        float getFluxLevel();
019        
020        float getCurrFlux();
021        float getHardFlux();
022        float getMaxFlux();
023        
024        void setHardFlux(float minFlux);
025        void setCurrFlux(float currFlux);
026        
027        /**
028         * @param fluxAmount
029         * @param hardFlux
030         * @return false if flux couldn't be raised successfully. Hard flux increases always return true and can overload the ship.
031         */
032        boolean increaseFlux(float fluxAmount, boolean hardFlux);
033        void decreaseFlux(float fluxAmount);
034        
035        void forceOverload(float extraOverloadTime);
036        void stopOverload();
037        void stopVenting();
038        void beginOverloadWithTotalBaseDuration(float totalDur);
039        
040        /**
041         * Whether the "Overload!" floaty should be shown.
042         * @return
043         */
044        boolean showFloaty();
045        
046        /**
047         * "Overload" floaty font size.
048         * @return
049         */
050        float getFloatySize();
051        void playOverloadSound();
052        void showOverloadFloatyIfNeeded();
053        void showOverloadFloatyIfNeeded(String text, Color color, float fontSizeBonus, boolean alwaysShow);
054        
055        float getEngineBoostLevel();
056        void setOverloadProgress(float empProgress);
057        void setOverloadDuration(float empDuration);
058        void ventFlux();
059        void setOverloadColor(Color overloadColor);
060        Color getOverloadColor();
061        void setOverloadText(String overloadText);
062        String getOverloadText();
063}