1package com.fs.starfarer.api.campaign.impl.items;
4import java.util.ArrayList;
5import java.util.HashSet;
6import java.util.Iterator;
8import java.util.Random;
11import org.json.JSONArray;
12import org.json.JSONException;
13import org.json.JSONObject;
15import com.fs.starfarer.api.Global;
16import com.fs.starfarer.api.campaign.CargoStackAPI;
17import com.fs.starfarer.api.campaign.CargoTransferHandlerAPI;
18import com.fs.starfarer.api.campaign.econ.MarketAPI;
19import com.fs.starfarer.api.campaign.econ.SubmarketAPI;
20import com.fs.starfarer.api.combat.ShipVariantAPI;
21import com.fs.starfarer.api.graphics.SpriteAPI;
22import com.fs.starfarer.api.impl.campaign.ids.Tags;
23import com.fs.starfarer.api.loading.Description;
24import com.fs.starfarer.api.loading.Description.Type;
25import com.fs.starfarer.api.loading.FighterWingSpecAPI;
26import com.fs.starfarer.api.ui.TooltipMakerAPI;
27import com.fs.starfarer.api.util.Misc;
28import com.fs.starfarer.api.util.WeightedRandomPicker;
44 List<String> result =
new ArrayList<String>();
69 public void render(
float x,
float y,
float w,
float h,
float alphaMult,
94 alphaMult * mult, glowMult * 0.5f * mult,
false);
95 renderer.
renderShipWithCorners(wingId,
null, blX, blY, tlX, tlY, trX, trY, brX, brY,
96 alphaMult * mult, glowMult * 0.5f * mult, !known);
107 alphaMult * 0.5f, 0f,
false);
118 float base = super.getPrice(market, submarket);
121 return super.getPrice(market, submarket);
129 return super.getName();
134 super.createTooltip(tooltip, expanded, transferHandler, stackSource);
147 List<String> wings =
new ArrayList<String>();
154 addCostLabel(tooltip, opad, transferHandler, stackSource);
157 tooltip.
addPara(
"Already known", g, opad);
159 tooltip.
addPara(
"Right-click to learn", b, opad);
192 if (params ==
null || params.isEmpty())
return null;
194 if (!params.startsWith(
"{")) {
197 JSONObject json =
new JSONObject(params);
199 int tier = json.optInt(
"tier", -1);
200 Set<String> tags =
new HashSet<String>();
201 if (json.has(
"tags")) {
202 JSONArray tagsArray = json.getJSONArray(
"tags");
203 for (
int i = 0; i < tagsArray.length(); i++) {
204 tags.add(tagsArray.getString(i));
215 Iterator<FighterWingSpecAPI> iter = specs.iterator();
216 while (iter.hasNext()) {
224 iter = specs.iterator();
225 while (iter.hasNext()) {
227 if (curr.
getTier() != tier) iter.remove();
231 if (!tags.isEmpty()) {
232 iter = specs.iterator();
233 while (iter.hasNext()) {
235 for (String tag : tags) {
236 boolean not = tag.startsWith(
"!");
237 tag = not ? tag.substring(1) : tag;
238 boolean has = curr.
hasTag(tag);
static SettingsAPI getSettings()
static SoundPlayerAPI getSoundPlayer()
static SectorAPI getSector()
void addCostLabel(TooltipMakerAPI tooltip, float pad, CargoTransferHandlerAPI transferHandler, Object stackSource)
void addFighterList(TooltipMakerAPI tooltip, String title, List< String > wings, int max, float opad)
boolean hasRightClickAction()
boolean shouldRemoveOnRightClickAction()
void init(CargoStackAPI stack)
void render(float x, float y, float w, float h, float alphaMult, float glowMult, SpecialItemRendererAPI renderer)
String resolveDropParamsToSpecificItemData(String params, Random random)
int getPrice(MarketAPI market, SubmarketAPI submarket)
String pickFighterWing(int tier, Set< String > tags, Random random)
List< String > getProvidedFighters()
List< String > getProvidedShips()
List< String > getProvidedIndustries()
void createTooltip(TooltipMakerAPI tooltip, boolean expanded, CargoTransferHandlerAPI transferHandler, Object stackSource)
void performRightClickAction()
List< String > getProvidedWeapons()
String getText1FirstPara()
static Color getButtonTextColor()
static Color setAlpha(Color color, int alpha)
static Color getGrayColor()
static Color getHighlightColor()
static Color getPositiveHighlightColor()
Description getDescription(String id, Type type)
FighterWingSpecAPI getFighterWingSpec(String wingId)
SpriteAPI getSprite(String filename)
List< FighterWingSpecAPI > getAllFighterWingSpecs()
SoundAPI playUISound(String id, float pitch, float volume)
MessageDisplayAPI getMessageDisplay()
SpecialItemData getSpecialDataIfSpecial()
void addKnownFighter(String wingId, boolean setTimestamp)
boolean knowsFighter(String wingId)
void addMessage(String text)
FactionAPI getPlayerFaction()
CampaignUIAPI getCampaignUI()
void renderScanlinesWithCorners(float blX, float blY, float tlX, float tlY, float trX, float trY, float brX, float brY, float alphaMult, boolean additive)
void renderBGWithCorners(Color bgColor, float blX, float blY, float tlX, float tlY, float trX, float trY, float brX, float brY, float alphaMult, float glowMult, boolean additive)
void renderShipWithCorners(String hullOrWingId, Color bgColor, float blX, float blY, float tlX, float tlY, float trX, float trY, float brX, float brY, float alphaMult, float glowMult, boolean withSpotlight)
String getDescriptionId()
ShipHullSpecAPI getHullSpec()
void setColor(Color color)
void setAlphaMult(float alphaMult)
void renderWithCorners(float blX, float blY, float tlX, float tlY, float trX, float trY, float brX, float brY)
boolean hasTag(String tag)
ShipVariantAPI getVariant()