1package com.fs.starfarer.api.impl.campaign.submarkets;
3import java.util.HashSet;
4import java.util.Random;
7import com.fs.starfarer.api.Global;
8import com.fs.starfarer.api.campaign.CampaignUIAPI.CoreUITradeMode;
9import com.fs.starfarer.api.campaign.CoreUIAPI;
10import com.fs.starfarer.api.campaign.FactionAPI.ShipPickMode;
11import com.fs.starfarer.api.campaign.econ.CommodityOnMarketAPI;
12import com.fs.starfarer.api.campaign.econ.SubmarketAPI;
13import com.fs.starfarer.api.impl.campaign.ids.Commodities;
14import com.fs.starfarer.api.impl.campaign.ids.MemFlags;
15import com.fs.starfarer.api.impl.campaign.ids.Submarkets;
16import com.fs.starfarer.api.util.Highlights;
17import com.fs.starfarer.api.util.Misc;
37 float extraShips = 0f;
55 float freighters = 10f;
58 if (freighters > 30) freighters = 30;
69 ShipPickMode.PRIORITY_THEN_ALL,
88 if (tankers > 40) tankers = 40;
99 ShipPickMode.PRIORITY_THEN_ALL,
135 limit *= 0.9f + 0.2f * random.nextFloat();
138 limit *= (0.25f + 0.75f * sm);
140 if (limit < 0) limit = 0;
166 production = Math.min(production, available);
169 int export = (int) Math.min(production, shippingGlobal);
171 int extra = available - Math.max(export, demand);
172 if (extra < 0) extra = 0;
176 int deficit = Math.max(0, demand - available);
180 int imports = available - production;
181 if (imports < 0) imports = 0;
193 if (limit < 0) limit = 0;
218 return PlayerEconomyImpactMode.PLAYER_SELL_ONLY;
231 return "Requires: proper docking authorization (transponder on)";
233 return super.getTooltipAppendix(ui);
241 if (appendix ==
null)
return null;
248 return super.getTooltipAppendixHighlights(ui);
static SettingsAPI getSettings()
static SectorAPI getSector()
static final String HEAVY_MACHINERY
static final String SUPPLIES
static final String MARINES
static final String SHIPS
static String HIDDEN_BASE_MEM_FLAG
static final String GENERIC_MILITARY
void pruneWeapons(float keepFraction)
boolean okToUpdateShipsAndWeapons()
void addShips(String factionId, float combat, float freighter, float tanker, float transport, float liner, float utility, Float qualityOverride, float qualityMod, ShipPickMode modeOverride, FactionDoctrineAPI doctrineOverride)
float sinceLastCargoUpdate
void addHullMods(int maxTier, int num)
void addFighters(int min, int max, int maxTier, WeightedRandomPicker< String > factionPicker)
void addAndRemoveStockpiledResources(float amount, boolean withShortageCountering, boolean withDecreaseToLimit, boolean withCargoUpdate)
void addWeapons(int min, int max, int maxTier, String factionId)
Highlights getTooltipAppendixHighlights(CoreUIAPI ui)
void init(SubmarketAPI submarket)
static float getBaseStockpileLimit(CommodityOnMarketAPI com)
static float ECON_UNIT_MULT_EXTRA
static Set< String > SPECIAL_COMMODITIES
static float ECON_UNIT_MULT_IMPORTS
PlayerEconomyImpactMode getPlayerEconomyImpactMode()
int getStockpileLimit(CommodityOnMarketAPI com)
static float ECON_UNIT_MULT_DEFICIT
static int getApproximateStockpileLimit(CommodityOnMarketAPI com)
void updateCargoPrePlayerInteraction()
boolean shouldHaveCommodity(CommodityOnMarketAPI com)
static float ECON_UNIT_MULT_PRODUCTION
String getTooltipAppendix(CoreUIAPI ui)
void setText(String ... text)
void setColors(Color ... colors)
static Color getNegativeHighlightColor()
static boolean isMilitary(MarketAPI market)
int getShippingCapacity(MarketAPI market, boolean inFaction)
float convertToSeconds(float days)
FleetDataAPI getMothballedShips()
CoreUITradeMode getTradeMode()
CampaignClockAPI getClock()
CommoditySpecAPI getCommodity()
float getStabilityValue()
CommodityOnMarketAPI getCommodityData(String commodityId)
MemoryAPI getMemoryWithoutUpdate()
boolean isIllegal(String commodityId)
boolean hasSubmarket(String specId)
boolean getBoolean(String key)