001package com.fs.starfarer.api.campaign;
002
003import java.util.List;
004
005public interface FactionDoctrineAPI {
006        int getWarships();
007        void setWarships(int warships);
008        int getCarriers();
009        void setCarriers(int carriers);
010        int getPhaseShips();
011        void setPhaseShips(int phaseShips);
012        int getOfficerQuality();
013        void setOfficerQuality(int officerQuality);
014        int getShipQuality();
015        void setShipQuality(int shipQuality);
016        int getNumShips();
017        void setNumShips(int numShips);
018        int getShipSize();
019        void setShipSize(int shipSize);
020        int getAggression();
021        void setAggression(int aggression);
022        int getFleets();
023        void setFleets(int fleets);
024        float getCombatFreighterProbability();
025        void setCombatFreighterProbability(float combatFreighterProbability);
026        float getCommanderSkillsShuffleProbability();
027        void setCommanderSkillsShuffleProbability(float commanderSkillsShuffleProbability);
028        List<String> getCommanderSkills();
029        
030        /**
031         * (shipQuality - 1) multiplied by doctrineFleetQualityPerPoint from settings.json.
032         * @return
033         */
034        float getShipQualityContribution();
035        
036        FactionDoctrineAPI clone();
037        
038        
039        float getCombatFreighterCombatUseFraction();
040        void setCombatFreighterCombatUseFraction(float combatFreighterCombatUseFraction);
041        float getCombatFreighterCombatUseFractionWhenPriority();
042        void setCombatFreighterCombatUseFractionWhenPriority(float combatFreighterCombatUseFractionWhenPriority);
043        float getAutofitRandomizeProbability();
044        void setAutofitRandomizeProbability(float autofitRandomizeProbability);
045        int getTotalStrengthPoints();
046        boolean isStrictComposition();
047        void setStrictComposition(boolean strictComposition);
048        float getOfficerSkillsShuffleProbability();
049        List<String> getOfficerSkills();
050        void copyToDoctrine(FactionDoctrineAPI other);
051}