1package com.fs.starfarer.api.impl.campaign.econ.impl;
3import java.util.HashMap;
6import com.fs.starfarer.api.Global;
7import com.fs.starfarer.api.campaign.FactionAPI;
8import com.fs.starfarer.api.campaign.econ.CommodityOnMarketAPI;
9import com.fs.starfarer.api.campaign.econ.EconomyAPI.EconomyUpdateListener;
10import com.fs.starfarer.api.campaign.econ.MarketAPI;
11import com.fs.starfarer.api.combat.StatBonus;
12import com.fs.starfarer.api.impl.campaign.ids.Commodities;
13import com.fs.starfarer.api.impl.campaign.ids.Stats;
17 public static final String
KEY =
"$core_shipQualityManager";
29 public static class QualityData {
30 public String econGroup;
37 public float qMod = 0f;
38 public QualityData(String econGroup,
FactionAPI faction) {
39 this.econGroup = econGroup;
40 this.faction = faction;
44 protected transient Map<String, QualityData>
data =
new HashMap<String, QualityData>();
47 data =
new HashMap<String, QualityData>();
86 prod = Math.min(prod, inFactionShipping);
88 if (prod >= d.prod && prod > 0) {
90 if (q >= d.qMod || prod > d.prod) {
103 String key =
getKey(market);
104 QualityData d =
data.get(key);
111 d.quality.modifyFlat(
"no_prod_penalty",
IMPORT_PENALTY,
"Cross-faction imports");
133 if (market !=
null) {
135 quality = d.quality.computeEffective(0f);
139 if (factionId !=
null) {
140 if (market !=
null && market.
getFaction() !=
null) {
static SettingsAPI getSettings()
static SectorAPI getSector()
float computeEffective(float baseValue)
void commodityUpdated(String commodityId)
boolean isEconomyListenerExpired()
static ShipQuality getInstance()
QualityData getQualityData(MarketAPI market)
String getKey(MarketAPI market)
static float getShipQuality(MarketAPI market, String factionId)
transient Map< String, QualityData > data
static float IMPORT_PENALTY
static final String SHIPS
static final String FLEET_QUALITY_MOD
static final String PRODUCTION_QUALITY_MOD
float getFloat(String key)
FactionDoctrineAPI getDoctrine()
float getShipQualityContribution()
FactionAPI getFaction(String factionId)
MemoryAPI getMemoryWithoutUpdate()
int getMaxShipping(MarketAPI market, boolean inFaction)
CommodityMarketDataAPI getCommodityMarketData()
void addUpdateListener(EconomyUpdateListener listener)
List< MarketAPI > getMarketsCopy()
MutableMarketStatsAPI getStats()
void set(String key, Object value)
DynamicStatsAPI getDynamic()
StatBonus getMod(String id)