001package com.fs.starfarer.api.campaign;
002
003import java.util.LinkedHashSet;
004import java.util.List;
005import java.util.Map;
006import java.util.Set;
007
008import java.awt.Color;
009
010import org.json.JSONObject;
011
012import com.fs.starfarer.api.characters.FullName.Gender;
013import com.fs.starfarer.api.util.WeightedRandomPicker;
014
015public interface FactionSpecAPI {
016
017        LinkedHashSet<String> getOverriddenHulls();
018        Map<String, Float> getHullFrequency();
019        void setHullFrequency(Map<String, Float> hullFrequency);
020        Map<String, Float> getWeaponSellFrequency();
021        Map<String, Float> getFighterSellFrequency();
022        Map<String, Float> getHullmodSellFrequency();
023        Map<String, Float> getShipSellFrequency();
024        Map<String, Float> getTagFrequency();
025        void setTagFrequency(Map<String, Float> tagFrequency);
026        String getDisplayNameLong();
027        void setDisplayNameLong(String displayNameLong);
028        Map<String, String> getMusicMap();
029        String getDisplayNameLongWithArticle();
030        void setDisplayNameLongWithArticle(String displayNameLongWithArticle);
031        List<String> getFlags();
032        List<String> getCrests();
033        String getPersonNamePrefixAOrAn();
034        void setPersonNamePrefixAOrAn(String personNamePrefixAOrAn);
035        String getPersonNamePrefix();
036        void setPersonNamePrefix(String personNamePrefix);
037        String getEntityNamePrefix();
038        void setEntityNamePrefix(String entityNamePrefix);
039        String getDisplayNameIsOrAre();
040        void setDisplayNameIsOrAre(String displayNameIsOrAre);
041        String getBarSound();
042        void setBarSound(String barSound);
043        boolean isShowInIntelTab();
044        void setShowInIntelTab(boolean showInIntelTab);
045        String getId();
046        void setId(String id);
047        Color getBaseUIColor();
048        Color getBrightUIColor();
049        void setBrightUIColor(Color brightUIColor);
050        void setBaseUIColor(Color baseUIColor);
051        Color getSecondaryUIColor();
052        void setSecondaryUIColor(Color secondaryUIColor);
053        int getSecondarySegments();
054        void setSecondarySegments(int secondarySegments);
055        Color getDarkUIColor();
056        void setDarkUIColor(Color darkUIColor);
057        Color getGridUIColor();
058        void setGridUIColor(Color gridUIColor);
059        String getDisplayName();
060        void setDisplayName(String displayName);
061        String getLogo();
062        String getCrest();
063        void setCrest(String crest);
064        void setLogo(String logo);
065        WeightedRandomPicker<String> getNameCategories();
066        WeightedRandomPicker<String> getMalePortraits();
067        WeightedRandomPicker<String> getFemalePortraits();
068        List<String> getAllPortraits(Gender gender);
069        String getShipNamePrefix();
070        void setShipNamePrefix(String shipNamePrefix);
071        String pickPersonality();
072        WeightedRandomPicker<String> getCaptainPersonalities();
073        void addCaptainPersonality(String id, float weight);
074        Color getColor();
075        void setColor(Color color);
076        WeightedRandomPicker<String> getShipNameSources();
077        String getDisplayNameWithArticle();
078        void setDisplayNameWithArticle(String displayNameWithArticle);
079        Set<String> getIllegalCommodities();
080        float getTariffFraction();
081        void setTariffFraction(float tariffFraction);
082        JSONObject getCustom();
083        void setCustom(JSONObject custom);
084        Set<String> getShipsWhenImporting();
085        Set<String> getKnownShips();
086        Set<String> getKnownWeapons();
087        Set<String> getKnownFighters();
088        Set<String> getKnownIndustries();
089        Set<String> getKnownHullMods();
090        Set<String> getPriorityShips();
091        Set<String> getPriorityWeapons();
092        Set<String> getPriorityFighters();
093        Map<String, Float> getVariantOverrides();
094        FactionDoctrineAPI getFactionDoctrine();
095        WeightedRandomPicker<String> getVoicePickerLow();
096        WeightedRandomPicker<String> getVoicePickerMedium();
097        WeightedRandomPicker<String> getVoicePickerHigh();
098        List<String> getAllVariantsForRole(String roleId);
099
100}