001package com.fs.starfarer.api.impl.campaign;
002
003import com.fs.starfarer.api.Global;
004import com.fs.starfarer.api.campaign.econ.MarketAPI;
005import com.fs.starfarer.api.campaign.econ.StabilizeMarketPlugin;
006import com.fs.starfarer.api.impl.campaign.econ.RecentUnrest;
007import com.fs.starfarer.api.ui.TooltipMakerAPI;
008import com.fs.starfarer.api.util.Misc;
009
010public class StabilizeMarketPluginImpl implements StabilizeMarketPlugin {
011
012        public boolean canStabilize(MarketAPI market) {
013                return getMaxStabilizeAmount(market) > 0;
014        }
015
016        public void createStabilizeButtonTooltip(TooltipMakerAPI info, float width, boolean expanded, MarketAPI market) {
017                info.addPara("Can only stabilize colonies with at least %s points of recent unrest.", 0f,
018                                Misc.getHighlightColor(), "" + 2);
019        }
020
021        public int getMaxStabilizeAmount(MarketAPI market) {
022                return Math.max(0, RecentUnrest.getPenalty(market) - 1);
023        }
024        
025        public int getCostPerStabilityPoint(MarketAPI market) {
026                int base = Global.getSettings().getInt("baseStabilizeCost");
027                return Math.max(1, market.getSize() - 2) * base;
028        }
029
030        public boolean isStabilizeButtonTooltipExpandable(MarketAPI market) {
031                return false;
032        }
033
034        public boolean stabilizeButtonHasTooltip(MarketAPI market) {
035                return !canStabilize(market);
036        }
037
038        public int getHandlingPriority(Object params) {
039                return 0;
040        }
041}