001package com.fs.starfarer.api.characters;
002
003import java.util.List;
004import java.util.Set;
005
006import java.awt.Color;
007
008import com.fs.starfarer.api.characters.LevelBasedEffect.ScopeDescription;
009import com.fs.starfarer.api.loading.WithSourceMod;
010
011public interface SkillSpecAPI extends WithSourceMod {
012
013        public interface SkillEffectSpecAPI {
014                String getGoverningSkill();
015                SkillEffectType getType();
016                ShipSkillEffect getAsShipEffect();
017                FleetTotalSource getAsFleetTotalSource();
018                AfterShipCreationSkillEffect getAsAfterShipCreationEffect();
019                MarketSkillEffect getAsMarketEffect();
020                CharacterStatsSkillEffect getAsStatsEffect();
021                FleetStatsSkillEffect getAsFleetEffect();
022                LevelBasedEffect getAsLevelBasedEffect();
023                DescriptionSkillEffect getAsDescriptionEffect();
024                String getEffectClass();
025                //List<HullModUnlock> getHullModUnlocks();
026                List<String> getAbilityUnlocks();
027                List<String> getUnlockedHullMods(float level);
028                boolean isLevelBased();
029                void setLevelBased(boolean levelBased);
030                float getRequiredSkillLevel();
031                void setRequiredSkillLevel(float requiredSkillLevel);
032                void setGoverningSkill(String governingSkill);
033                String getName();
034                void setName(String name);
035                List<String> getHullmods();
036        }
037        
038        boolean isAptitudeEffect();
039        String getId();
040        String getDescription();
041        void setDescription(String description);
042        String getName();
043        void setName(String name);
044        String getGoverningAptitudeId();
045        String getSpriteName();
046        void setSpriteName(String spriteName);
047        float getOrder();
048        void setOrder(float order);
049        boolean isCombatOfficerSkill();
050        void setCombatOfficerSkill(boolean combatOfficerSkill);
051        
052        Set<String> getTags();
053        void addTag(String tag);
054        boolean hasTag(String tag);
055        boolean isAdminSkill();
056        boolean isAdmiralSkill();
057        
058        String getAuthor();
059        void setAuthor(String author);
060        int getTier();
061        void setTier(int tier);
062        
063        boolean isElite();
064        void setElite(boolean elite);
065        boolean isPermanent();
066        void setPermanent(boolean permanent);
067        ScopeDescription getScope();
068        void setScope(ScopeDescription scope);
069        ScopeDescription getScope2();
070        void setScope2(ScopeDescription scope2);
071        String getScopeStr();
072        void setScopeStr(String scopeStr);
073        String getScopeStr2();
074        void setScopeStr2(String scopeStr2);
075        Color getGoverningAptitudeColor();
076        String getGoverningAptitudeName();
077        int getReqPoints();
078        void setReqPoints(int reqPoints);
079        int getReqPointsPer();
080        void setReqPointsPer(int reqPointsPer);
081        Set<String> getAllHullmodUnlocks();
082        Set<String> getAllAbilityUnlocks();
083        int getGoverningAptitudeOrder();
084        List<SkillEffectSpecAPI> getEffectsAPI();
085        
086
087}