001package com.fs.starfarer.api.fleet;
002
003import com.fs.starfarer.api.campaign.CargoAPI;
004
005public interface CrewCompositionAPI {
006        float getCrew();
007
008        
009        /**
010         * Generally not set for most crews, but useful to have here for use during boarding/loss calculation/etc.
011         * @param marines
012         */
013        void setMarines(float marines);
014        /**
015         * Generally not set for most crews, but useful to have here for use during boarding/loss calculation/etc.
016         */
017        float getMarines();
018        
019        
020        /**
021         * Generally not set for most crews, but useful to have here for use during boarding/loss calculation/etc.
022         * @param marines
023         */
024        void addMarines(float marines);
025        
026        void removeAllCrew();
027        
028        void transfer(float quantity, CrewCompositionAPI dest);
029        void addCrew(float quantity);
030        
031        void addAll(CrewCompositionAPI other);
032        void removeAll(CrewCompositionAPI other);
033        
034        void multiplyBy(float mult);
035        
036        void addToCargo(CargoAPI cargo);
037        void removeFromCargo(CargoAPI cargo);
038        
039        void clear();
040        void setCrew(float quantity);
041        int getCrewInt();
042}