1package com.fs.starfarer.api.impl.campaign.econ.impl;
5import com.fs.starfarer.api.Global;
6import com.fs.starfarer.api.campaign.PlanetAPI;
7import com.fs.starfarer.api.campaign.SpecialItemData;
8import com.fs.starfarer.api.campaign.econ.MarketAPI;
9import com.fs.starfarer.api.campaign.econ.MarketConditionAPI;
10import com.fs.starfarer.api.campaign.econ.MarketImmigrationModifier;
11import com.fs.starfarer.api.impl.campaign.econ.ResourceDepositsCondition;
12import com.fs.starfarer.api.impl.campaign.ids.Commodities;
13import com.fs.starfarer.api.impl.campaign.ids.Items;
14import com.fs.starfarer.api.impl.campaign.population.PopulationComposition;
15import com.fs.starfarer.api.ui.TooltipMakerAPI;
16import com.fs.starfarer.api.util.Misc;
17import com.fs.starfarer.api.util.Pair;
25 int size =
market.getSize();
27 demand(Commodities.HEAVY_MACHINERY, size - 3);
28 demand(Commodities.DRUGS, size);
30 Pair<String, Integer> deficit =
getMaxDeficit(Commodities.HEAVY_MACHINERY);
35 Commodities.VOLATILES);
49 Pair<String, Integer> deficit =
getMaxDeficit(Commodities.DRUGS);
50 if (deficit.two <= 0)
return false;
52 return mode != IndustryTooltipMode.NORMAL ||
isFunctional();
56 protected void addPostDemandSection(TooltipMakerAPI tooltip,
boolean hasDemand, IndustryTooltipMode mode) {
58 if (mode != IndustryTooltipMode.NORMAL ||
isFunctional()) {
59 Color h = Misc.getHighlightColor();
63 Pair<String, Integer> deficit =
getMaxDeficit(Commodities.DRUGS);
64 if (deficit.two > 0) {
65 tooltip.addPara(
getDeficitText(Commodities.DRUGS) +
": %s units. Reduced colony growth.", pad, h,
"" + deficit.two);
73 if (!super.isAvailableToBuild())
return false;
75 for (MarketConditionAPI mc :
market.getConditions()) {
77 if (commodity !=
null) {
79 if (
getId().equals(industry))
return true;
87 if (!super.isAvailableToBuild())
return super.getUnavailableReason();
89 return "Requires resource deposits";
93 Pair<String, Integer> deficit =
getMaxDeficit(Commodities.DRUGS);
94 if (deficit.two > 0) {
95 incoming.getWeight().modifyFlat(
getModId(), -deficit.two,
"Mining: drug shortage");
101 float size =
market.getSize();
105 return super.getCurrentImage();
109 return 1f + super.getPatherInterest();
120 if (planet ==
null)
return;
122 planet.getSpec().setShieldThickness2(0.15f);
124 planet.getSpec().setShieldColor2(
new Color(255,255,255,255));
125 planet.applySpecChanges();
130 if (planet ==
null)
return;
131 planet.getSpec().setShieldTexture2(
null);
132 planet.getSpec().setShieldThickness2(0f);
133 planet.getSpec().setShieldColor2(
null);
134 planet.applySpecChanges();
148 if (
special !=
null &&
special.getId().equals(Items.PLASMA_DYNAMO)) {
static SettingsAPI getSettings()
static Map< String, String > INDUSTRY
static Map< String, String > COMMODITY
Map< String, MutableCommodityQuantity > supply
static String getDeficitText(String commodityId)
static int SIZE_FOR_SMALL_IMAGE
Map< String, MutableCommodityQuantity > demand
Pair< String, Integer > getMaxDeficit(String ... commodityIds)
void applyDeficitToProduction(int index, Pair< String, Integer > deficit, String ... commodities)
void applyVisuals(PlanetAPI planet)
boolean isAvailableToBuild()
String getUnavailableReason()
boolean shownPlasmaNetVisuals
boolean hasPostDemandSection(boolean hasDemand, IndustryTooltipMode mode)
void modifyIncoming(MarketAPI market, PopulationComposition incoming)
boolean canImproveToIncreaseProduction()
void addPostDemandSection(TooltipMakerAPI tooltip, boolean hasDemand, IndustryTooltipMode mode)
void setSpecialItem(SpecialItemData special)
float getPatherInterest()
void unapplyVisuals(PlanetAPI planet)
String getSpriteName(String category, String id)