1package com.fs.starfarer.api.impl.campaign.events;
3import com.fs.starfarer.api.Global;
4import com.fs.starfarer.api.campaign.econ.CommodityOnMarketAPI;
5import com.fs.starfarer.api.campaign.econ.MarketAPI;
6import com.fs.starfarer.api.campaign.events.CampaignEventPlugin.PriceUpdatePlugin;
7import com.fs.starfarer.api.impl.campaign.shared.CommodityStatTracker;
8import com.fs.starfarer.api.util.Misc;
12 private String marketId;
13 private String commodityId;
14 private float supplyPrice;
15 private float demandPrice;
16 private PriceType type;
17 private long timestamp;
22 commodityId = commodity.
getId();
41 float after = stockpile * stockpileMult;
46 com.
getId(), 1, diff,
true));
48 com.
getId(), 1, diff,
true));
64 float testSupplyPrice = supplyPrice;
65 float testDemandPrice = demandPrice;
70 if (priceFlat != 0 || pricePercent != 0) {
84 supplyPrice = testSupplyPrice;
85 demandPrice = testDemandPrice;
92 amt = (int) (testSupplyPrice + testDemandPrice) / 2;
95 amt = (int) testSupplyPrice;
98 amt = (int) testDemandPrice;
129 public void updateType(
float priceFlat,
float pricePercent) {
133 float testSupplyPrice = supplyPrice;
134 float testDemandPrice = demandPrice;
139 if (priceFlat != 0 || pricePercent != 0) {
140 testSupplyPrice = Math.round(commodity.
getMarket().
getSupplyPrice(commodity.
getId(), 1,
true) * (1f + pricePercent / 100f) + priceFlat);
141 testDemandPrice = Math.round(commodity.
getMarket().
getDemandPrice(commodity.
getId(), 1,
true) * (1f + pricePercent / 100f) + priceFlat);
145 type = PriceType.CHEAP;
147 type = PriceType.EXPENSIVE;
149 type = PriceType.NORMAL;
173 if ((
getType() == PriceType.CHEAP)
176 if ((
getType() == PriceType.NORMAL)
189 if (market ==
null)
return null;
static SectorAPI getSector()
PriceUpdate(CommodityOnMarketAPI commodity)
int getRoundedPriceForDisplay(float priceFlat, float pricePercent)
CommodityOnMarketAPI getCommodity()
void updateType(float priceFlat, float pricePercent)
int getRoundedPriceForDisplay()
boolean isSignificant(float priceFlat, float pricePercent)
void updatePrices(float stockpileMult)
boolean isDemandPriceSignificant(CommodityOnMarketAPI com)
boolean isSupplyPriceSignificant(CommodityOnMarketAPI com)
static float getRounded(float in)
CampaignClockAPI getClock()
MarketDemandAPI getDemand()
float getUtilityOnMarket()
MarketAPI getMarket(String id)
float getDemandPriceAssumingExistingTransaction(String commodityId, double quantity, double existingTransactionUtility, boolean isPlayerPrice)
float getSupplyPriceAssumingExistingTransaction(String commodityId, double quantity, double existingTransactionUtility, boolean isPlayerPrice)
float getSupplyPrice(String commodityId, double quantity, boolean isPlayerPrice)
CommodityOnMarketAPI getCommodityData(String commodityId)
float getDemandPrice(String commodityId, double quantity, boolean isPlayerPrice)