1package com.fs.starfarer.api.impl.campaign.econ;
4import java.util.Arrays;
5import java.util.HashMap;
6import java.util.LinkedHashMap;
10import com.fs.starfarer.api.Global;
11import com.fs.starfarer.api.campaign.CampaignFleetAPI;
12import com.fs.starfarer.api.campaign.StarSystemAPI;
13import com.fs.starfarer.api.campaign.econ.MarketAPI;
14import com.fs.starfarer.api.campaign.econ.MarketConditionAPI;
15import com.fs.starfarer.api.campaign.econ.MarketConditionPlugin;
16import com.fs.starfarer.api.ui.LabelAPI;
17import com.fs.starfarer.api.ui.TooltipMakerAPI;
18import com.fs.starfarer.api.util.Misc;
42 return condition.getIdForPluginModifications();
47 float s =
market.getStabilityValue();
49 if (
true)
return 1f + (10f - s) * 0.1f;
51 switch ((
int)
market.getStabilityValue()) {
74 float s =
market.getStabilityValue();
76 if (
true)
return 0.5f + s * 0.05f;
78 switch ((
int)
market.getStabilityValue()) {
101 float s =
market.getStabilityValue();
103 if (
true)
return 1f + s * 0.1f;
105 switch ((
int)
market.getStabilityValue()) {
128 float s =
market.getStabilityValue();
130 if (
true)
return 0.5f + (10f - s) * 0.05f;
132 switch ((
int)
market.getStabilityValue()) {
154 public static void main(String[] args) {
167 HashMap<String, String> tokens =
new LinkedHashMap<String, String>();
169 tokens.put(
"$playerName",
Global.
getSector().getCharacterData().getName());
171 tokens.put(
"$marketFaction",
market.getFaction().getDisplayName());
172 tokens.put(
"$TheMarketFaction", Misc.ucFirst(
market.getFaction().getDisplayNameWithArticle()));
173 tokens.put(
"$theMarketFaction",
market.getFaction().getDisplayNameWithArticle());
175 if (
market.getPrimaryEntity().getLocation() instanceof StarSystemAPI) {
177 tokens.put(
"$marketSystem", ((StarSystemAPI)
market.getPrimaryEntity().getLocation()).getBaseName());
179 tokens.put(
"$marketSystem",
"hyperspace");
181 tokens.put(
"$marketName",
market.getName());
182 tokens.put(
"$market",
market.getName());
186 if (playerFleet !=
null) {
187 String fleetOrShip =
"fleet";
188 if (playerFleet.getFleetData().getMembersListCopy().size() == 1) {
189 fleetOrShip =
"ship";
190 if (playerFleet.getFleetData().getMembersListCopy().get(0).isFighterWing()) {
191 fleetOrShip =
"fighter wing";
194 tokens.put(
"$playerShipOrFleet", fleetOrShip);
206 if (highlights !=
null) {
208 Color [] colors =
new Color[highlights.length];
209 Arrays.fill(colors, c);
218 for (String key : keys) {
219 if (tokens.containsKey(key)) {
220 list.add(tokens.get(key));
241 Color color =
market.getTextColorForFactionOrPlanet();
242 tooltip.addTitle(
condition.getName(), color);
244 String text =
condition.getSpec().getDesc();
246 if (tokens !=
null) {
247 for (String token : tokens.keySet()) {
248 String value = tokens.get(token);
249 text = text.replaceAll(
"(?s)\\" + token, value);
253 if (!text.isEmpty()) {
254 LabelAPI body = tooltip.addPara(text, opad);
259 body.setHighlightColor(Misc.getHighlightColor());
284 return condition.getSpec().isPlanetary();
static SettingsAPI getSettings()
static SectorAPI getSector()
boolean hasCustomTooltip()
boolean isTooltipExpandable()
MarketConditionAPI condition
Color[] getHighlightColors()
static float getLowStabilityBonusMult(MarketAPI market)
Map< String, String > getTokenReplacements()
static float getLowStabilityPenaltyMult(MarketAPI market)
static float getHighStabilityPenaltyMult(MarketAPI market)
static void main(String[] args)
void advance(float amount)
void setParam(Object param)
List< String > getRelatedCommodities()
static float getHighStabilityBonusMult(MarketAPI market)
void addTokensToList(List< String > list, String ... keys)
void createTooltip(TooltipMakerAPI tooltip, boolean expanded)
void createTooltipAfterDescription(TooltipMakerAPI tooltip, boolean expanded)
void init(MarketAPI market, MarketConditionAPI condition)
Color getColor(String id)