1package com.fs.starfarer.api.impl.campaign.intel.events;
4import java.util.ArrayList;
7import com.fs.starfarer.api.Global;
8import com.fs.starfarer.api.campaign.FactionAPI;
9import com.fs.starfarer.api.campaign.StarSystemAPI;
10import com.fs.starfarer.api.campaign.econ.CommodityOnMarketAPI;
11import com.fs.starfarer.api.campaign.econ.MarketAPI;
12import com.fs.starfarer.api.impl.campaign.ids.Factions;
13import com.fs.starfarer.api.impl.campaign.intel.events.TriTachyonStandardActivityCause.CompetitorData;
14import com.fs.starfarer.api.ui.Alignment;
15import com.fs.starfarer.api.ui.MapParams;
16import com.fs.starfarer.api.ui.TooltipMakerAPI;
17import com.fs.starfarer.api.ui.TooltipMakerAPI.TooltipCreator;
18import com.fs.starfarer.api.ui.UIPanelAPI;
19import com.fs.starfarer.api.util.Misc;
31 CompetitorData data =
new CompetitorData(commodityId);
35 if (com ==
null)
continue;
38 if (prod <= 0)
continue;
40 if (factionId.equals(market.getFactionId())) {
41 data.factionProdTotal += prod;
42 data.factionProducers.add(market);
43 data.factionMaxProd = Math.max(data.factionMaxProd, prod);
44 }
else if (competitorId.equals(market.getFactionId())) {
45 data.competitorProdTotal += prod;
46 data.competitorMaxProd = Math.max(data.competitorMaxProd, prod);
47 data.competitorProducers.add(market);
49 data.competitorMaxMarketSize = Math.max(data.competitorMaxMarketSize, market.getSize());
52 data.allProdTotal += prod;
61 List<String> commodities =
new ArrayList<String>();
63 if (!factionId.equals(market.getFactionId()))
continue;
66 if (!com.isFuel())
continue;
67 int prod = com.getMaxSupply();
69 commodities.add(com.getId());
74 List<CompetitorData> result =
new ArrayList<CompetitorData>();
76 for (String commodityId : commodities) {
98 public void createTooltip(
TooltipMakerAPI tooltip,
boolean expanded, Object tooltipParam) {
104 tooltip.
addPara(
"Your colony production of fuel is high enough for the Sindrian Diktat - "
105 +
"which depends on its own fuel production for much of its economy - to take notice.", 0f);
110 tooltip.
beginTable(player, 20f,
"Commodity", getTooltipWidth(tooltipParam) - 150f,
"Production", 150f);
111 for (
final CompetitorData data : comp) {
118 tooltip.
addPara(
"Event progress is based on maximum fuel production. "
119 +
"%s below %s per colony should be enough to divert "
120 +
"the Diktat's attention.", opad,
123 tooltip.
addPara(
"Knocking the Diktat out of the fuel production game is also an option. Much of "
124 +
"their fuel production depends on a Domain-era Synchrotron Core installed in "
125 +
"their production facilities on Sindria.", opad,
126 h,
"Synchrotron Core");
133 float ht = Math.round(w / 1.6f);
156 for (CompetitorData data : comp) {
164 return "Competing fuel production";
173 for (CompetitorData data : comp) {
174 for (
MarketAPI market : data.competitorProducers) {
184 mag = Math.round(mag * 100f) / 100f;
static SettingsAPI getSettings()
static SectorAPI getSector()
static final String DIKTAT
static final String PLAYER
HostileActivityEventIntel intel
static boolean isMadeDeal()
static boolean isPlayerDefeatedDiktatAttack()
static MarketAPI getSindria(boolean requireMilitaryBase)
static float PROD_PROGRESS_MULT
SindrianDiktatStandardActivityCause(HostileActivityEventIntel intel)
static int MIN_DIKTAT_PRODUCTION
TooltipCreator getTooltip()
static List< CompetitorData > computePlayerCompetitionData()
float getMagnitudeContribution(StarSystemAPI system)
static CompetitorData computeCompetitorData(String factionId, String competitorId, String commodityId)
static int MIN_COMPETITOR_MARKET_SIZE
static int MIN_COMPETITOR_PRODUCTION
void showSystem(StarSystemAPI system)
void positionToShowAllMarkersAndSystems(boolean showPlayerFleet, float heightOnScreen)
static Color getTextColor()
static String ucFirst(String str)
static Color getHighlightColor()
float getFloat(String key)
String getNameWithLowercaseTypeShort()
FactionAPI getFaction(String factionId)
List< MarketAPI > getMarketsCopy()
LocationAPI getContainingLocation()
CommodityOnMarketAPI getCommodityData(String commodityId)
StarSystemAPI getStarSystem()