1package com.fs.starfarer.api.impl.campaign.submarkets;
3import java.util.Random;
5import org.apache.log4j.Logger;
7import com.fs.starfarer.api.Global;
8import com.fs.starfarer.api.campaign.CargoAPI;
9import com.fs.starfarer.api.campaign.CargoStackAPI;
10import com.fs.starfarer.api.campaign.CoreUIAPI;
11import com.fs.starfarer.api.campaign.FactionAPI;
12import com.fs.starfarer.api.campaign.FactionDoctrineAPI;
13import com.fs.starfarer.api.campaign.PlayerMarketTransaction;
14import com.fs.starfarer.api.campaign.SpecialItemPlugin;
15import com.fs.starfarer.api.campaign.econ.CommodityOnMarketAPI;
16import com.fs.starfarer.api.campaign.econ.SubmarketAPI;
17import com.fs.starfarer.api.campaign.impl.items.BlueprintProviderItem;
18import com.fs.starfarer.api.impl.campaign.CoreCampaignPluginImpl;
19import com.fs.starfarer.api.impl.campaign.DelayedBlueprintLearnScript;
20import com.fs.starfarer.api.impl.campaign.ids.Factions;
21import com.fs.starfarer.api.util.Highlights;
22import com.fs.starfarer.api.util.Misc;
23import com.fs.starfarer.api.util.WeightedRandomPicker;
61 int weapons = 6 + Math.max(0,
market.
getSize() - 1) + (military ? 5 : 0);
62 int fighters = 2 + Math.max(0, (
market.
getSize() - 3) / 2) + (military ? 2 : 0);
66 addWeapons(weapons, weapons + 2, 3, factionPicker);
67 addFighters(fighters, fighters + 2, 3, factionPicker);
76 float sMult = 0.5f + Math.max(0, (1f - stability / 10f)) * 0.5f;
168 limit *= 0.9f + 0.2f * random.nextFloat();
171 limit *= (0.25f + 0.75f * sm);
173 if (limit < 0) limit = 0;
183 return PlayerEconomyImpactMode.PLAYER_SELL_ONLY;
198 super.reportPlayerMarketTransaction(transaction);
214 boolean learnedSomething =
false;
219 learnedSomething =
true;
226 learnedSomething =
true;
233 learnedSomething =
true;
240 learnedSomething =
true;
244 if (learnedSomething) {
286 if (p < 0.05f)
return "Suspicion level: none";
289 return "Suspicion level: minimal";
292 return "Suspicion level: medium";
295 return "Suspicion level: high";
298 return "Suspicion level: very high";
300 return "Suspicion level: extreme";
308 if (appendix ==
null)
return null;
static Logger getLogger(Class c)
static SectorAPI getSector()
static final float computeSmugglingSuspicionLevel(MarketAPI market)
List< String > getIndustries()
List< String > getShips()
List< String > getWeapons()
List< String > getFighters()
static final String INDEPENDENT
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)
boolean isEnabled(CoreUIAPI ui)
void addWeapons(int min, int max, int maxTier, String factionId)
static void delayedLearnBlueprintsFromTransaction(FactionAPI faction, CargoAPI cargo, PlayerMarketTransaction transaction)
static void delayedLearnBlueprintsFromTransaction(FactionAPI faction, CargoAPI cargo, PlayerMarketTransaction transaction, float daysDelay)
String getTooltipAppendix(CoreUIAPI ui)
PlayerEconomyImpactMode getPlayerEconomyImpactMode()
boolean isIllegalOnSubmarket(CargoStackAPI stack, TransferAction action)
void updateCargoPrePlayerInteraction()
void init(SubmarketAPI submarket)
float getDesiredCommodityQuantity(CommodityOnMarketAPI com)
void reportPlayerMarketTransaction(PlayerMarketTransaction transaction)
int getStockpileLimit(CommodityOnMarketAPI com)
boolean isIllegalOnSubmarket(String commodityId, TransferAction action)
Highlights getTooltipAppendixHighlights(CoreUIAPI ui)
static float getBaseStockpileLimit(CommodityOnMarketAPI com)
void setText(String ... text)
void setColors(Color ... colors)
static Color getNegativeHighlightColor()
static float getShipQuality(MarketAPI market)
static boolean isMilitary(MarketAPI market)
float convertToSeconds(float days)
boolean removeItems(CargoAPI.CargoItemType itemType, Object data, float quantity)
List< CargoStackAPI > getStacksCopy()
FleetDataAPI getMothballedShips()
boolean knowsWeapon(String weaponId)
boolean knowsFighter(String wingId)
boolean knowsIndustry(String industryId)
boolean knowsShip(String hullId)
FactionDoctrineAPI getDoctrine()
void setCarriers(int carriers)
void setPhaseShips(int phaseShips)
void setWarships(int warships)
void setShipSize(int shipSize)
FactionDoctrineAPI clone()
void setCombatFreighterProbability(float combatFreighterProbability)
void addScript(EveryFrameScript script)
CampaignClockAPI getClock()
float getStabilityValue()
boolean isIllegal(String commodityId)
List< String > getProvidedWeapons()
List< String > getProvidedShips()
List< String > getProvidedIndustries()
List< String > getProvidedFighters()