jaghaimo/starpocalypse

View on GitHub
src/starpocalypse/submarket/RegulatedBlackMarket.java

Summary

Maintainability
A
0 mins
Test Coverage
package starpocalypse.submarket;

import com.fs.starfarer.api.Global;
import com.fs.starfarer.api.campaign.CoreUIAPI;
import com.fs.starfarer.api.impl.campaign.submarkets.BlackMarketPlugin;
import com.fs.starfarer.api.ui.TooltipMakerAPI;
import starpocalypse.helper.ConfigHelper;

public class RegulatedBlackMarket extends BlackMarketPlugin {

    @Override
    public void createTooltip(CoreUIAPI ui, TooltipMakerAPI tooltip, boolean expanded) {
        super.createTooltip(ui, tooltip, expanded);
        if (doesWantShyBlackMarket()) {
            tooltip.addPara(
                "Due to the heavy military presence, trading on Black Market " +
                "is only possible with the transponder turned off.",
                10
            );
        }
    }

    @Override
    public float getTariff() {
        return ConfigHelper.getBlackMarketFenceCut() * market.getTariff().getModifiedValue();
    }

    @Override
    public boolean isEnabled(CoreUIAPI ui) {
        if (doesWantShyBlackMarket()) {
            return !getTransponderState();
        }
        return true;
    }

    private boolean doesWantShyBlackMarket() {
        if (!ConfigHelper.isShyBlackMarket()) {
            return false;
        }
        String faction = market.getFactionId();
        return ConfigHelper.getShyBlackMarketFaction().has(faction);
    }

    private boolean getTransponderState() {
        return Global.getSector().getPlayerFleet().isTransponderOn();
    }
}