1package com.fs.starfarer.api.impl.campaign.graid;
4import java.util.Random;
6import com.fs.starfarer.api.Global;
7import com.fs.starfarer.api.campaign.CargoAPI;
8import com.fs.starfarer.api.campaign.CargoAPI.CargoItemType;
9import com.fs.starfarer.api.campaign.CargoStackAPI;
10import com.fs.starfarer.api.campaign.TextPanelAPI;
11import com.fs.starfarer.api.campaign.econ.CommodityOnMarketAPI;
12import com.fs.starfarer.api.campaign.econ.CommoditySpecAPI;
13import com.fs.starfarer.api.campaign.econ.Industry;
14import com.fs.starfarer.api.campaign.econ.MarketAPI;
15import com.fs.starfarer.api.impl.campaign.econ.CommodityIconCounts;
16import com.fs.starfarer.api.impl.campaign.econ.ShippingDisruption;
17import com.fs.starfarer.api.impl.campaign.rulecmd.salvage.MarketCMD.RaidDangerLevel;
18import com.fs.starfarer.api.loading.Description;
19import com.fs.starfarer.api.loading.Description.Type;
20import com.fs.starfarer.api.ui.IconGroupAPI;
21import com.fs.starfarer.api.ui.IconRenderMode;
22import com.fs.starfarer.api.ui.TooltipMakerAPI;
23import com.fs.starfarer.api.util.Misc;
37 private int deficitActuallyCaused;
40 super(
market, commodityId);
47 if (spec ==
null)
return;
54 int extra = counts.
extra;
98 if (diff < 0) diff = 0;
114 danger = danger.prev();
117 danger = danger.next();
119 if (counts.
extra > 0) {
120 danger = danger.prev();
138 return base * marines;
164 if (result < 0) result = 0;
175 int supply = ind.getSupply(
com.
getId()).getQuantity().getModifiedInt();
176 int metDemand = Math.min(available, ind.getDemand(
com.
getId()).getQuantity().getModifiedInt());
177 int currScore = Math.max(supply, metDemand) * 1000;
178 RaidDangerLevel danger = ind.adjustCommodityDangerLevel(
com.
getId(), base);
179 currScore += 1000 - danger.ordinal();
180 if (currScore > score) {
208 float mult = 0.9f + random.nextFloat() * 0.2f;
217 if (deficitActuallyCaused > 0) {
220 Misc.
genUID(),
"Recent raid", -deficitActuallyCaused);
228 return deficitActuallyCaused;
232 this.deficitActuallyCaused = deficitActuallyCaused;
static SettingsAPI getSettings()
static FactoryAPI getFactory()
void addTemporaryModFlat(float durInDays, String source, String desc, float value)
static float ACCESS_LOSS_DURATION
void setSource(Industry source)
void addIcons(IconGroupAPI iconGroup)
CommodityGroundRaidObjectivePluginImpl(MarketAPI market, String commodityId)
void createTooltip(TooltipMakerAPI t, boolean expanded)
float getQuantitySortValue()
RaidDangerLevel getDangerLevel()
String getCommodityIdForDeficitIcons()
static float QUANTITY_MULT_NORMAL_FOR_DEFICIT
CargoStackAPI getStackForIcon()
static float QUANTITY_MULT_OVERALL
float getQuantity(int marines, boolean forDeficit)
static float QUANTITY_MULT_DEFICIT
static float QUANTITY_MULT_NORMAL
static float QUANTITY_MULT_EXCESS
float getQuantity(int marines)
int getDeficitActuallyCaused()
int getProjectedCreditsValue()
static float ECON_IMPACT_MULT
void setDeficitActuallyCaused(int deficitActuallyCaused)
int getValue(int marines)
int performRaid(CargoAPI loot, Random random, float lootMult, TextPanelAPI text)
float getBaseRaidQuantity(boolean forDeficit)
CommoditySpecAPI getCommoditySpec()
int getCargoSpaceNeeded()
static Industry computeCommoditySource(MarketAPI market, CommodityOnMarketAPI com)
String getText1FirstPara()
static String getDGSCredits(float num)
static Color getNegativeHighlightColor()
static Color getHighlightColor()
static Color interpolateColor(Color from, Color to, float progress)
static int computeEconUnitChangeFromTradeModChange(CommodityOnMarketAPI com, int quantity)
static Color getPositiveHighlightColor()
CargoStackAPI createCargoStack(CargoItemType type, Object data, CargoAPI cargo)
Description getDescription(String id, Type type)
void addCommodity(String commodityId, float quantity)
CommoditySpecAPI getCommodity()
MutableStatWithTempMods getAvailableStat()
RaidDangerLevel getBaseDanger()
RaidDangerLevel adjustCommodityDangerLevel(String commodityId, RaidDangerLevel level)
CommodityOnMarketAPI getCommodityData(String commodityId)
List< Industry > getIndustries()
static float XP_GAIN_VALUE_MULT
static float QUANTITY_SORT_TIER_0
void addIconGroup(String commodityId, IconRenderMode mode, int count, Object custom)