001package com.fs.starfarer.api.impl.campaign.skills;
002
003import com.fs.starfarer.api.campaign.econ.MarketAPI;
004import com.fs.starfarer.api.characters.MarketSkillEffect;
005import com.fs.starfarer.api.impl.campaign.ids.Stats;
006
007public class SpaceOperations {
008        
009        public static final float ACCESS = 0.3f;
010        public static final float FLEET_SIZE = 25f;
011        
012        
013        public static class Level1 implements MarketSkillEffect {
014                public void apply(MarketAPI market, String id, float level) {
015                        market.getAccessibilityMod().modifyFlat(id, ACCESS, "Space operations");
016                }
017
018                public void unapply(MarketAPI market, String id) {
019                        market.getAccessibilityMod().unmodifyFlat(id);
020                }
021                
022                public String getEffectDescription(float level) {
023                        return "+" + (int)Math.round(ACCESS * 100f) + "% accessibility";
024                }
025                
026                public String getEffectPerLevelDescription() {
027                        return null;
028                }
029
030                public ScopeDescription getScopeDescription() {
031                        return ScopeDescription.GOVERNED_OUTPOST;
032                }
033        }
034        
035        public static class Level2 implements MarketSkillEffect {
036                public void apply(MarketAPI market, String id, float level) {
037                        market.getStats().getDynamic().getMod(Stats.COMBAT_FLEET_SIZE_MULT).modifyFlat(id, FLEET_SIZE / 100f, "Fleet logistics");
038                }
039                
040                public void unapply(MarketAPI market, String id) {
041                        market.getStats().getDynamic().getMod(Stats.COMBAT_FLEET_SIZE_MULT).unmodifyFlat(id);
042                }
043                
044                public String getEffectDescription(float level) {
045                        //return "" + (int)Math.round(FLEET_SIZE) + "% larger fleets";
046                        return "+" + (int)Math.round(FLEET_SIZE) + "% fleet size";
047                }
048                
049                public String getEffectPerLevelDescription() {
050                        return null;
051                }
052                
053                public ScopeDescription getScopeDescription() {
054                        return ScopeDescription.GOVERNED_OUTPOST;
055                }
056        }
057}
058
059