public float GetReferencePriceWithSalesTaxes(TradableTransactionType transactionType, global::Empire empire) { float num = Tradable.GetReferencePrice(this.TradableCategoryDefinition, this.Value); num = Tradable.ApplySalesTaxes(num, transactionType, empire); if (this is TradableUnit && transactionType == TradableTransactionType.Buyout && empire is MajorEmpire && empire.GetPropertyValue(SimulationProperties.MarketplaceMercCostMultiplier) > 0f) { num *= empire.GetPropertyValue(SimulationProperties.MarketplaceMercCostMultiplier); } else if (ELCPUtilities.UseELCPStockpileRulseset && this is TradableBooster && empire is MajorEmpire && empire.GetPropertyValue(SimulationProperties.MarketplaceStockpileCostMultiplier) > 0f) { num *= empire.GetPropertyValue(SimulationProperties.MarketplaceStockpileCostMultiplier); } return(this.GetPriceWithSeasonEffectModifier(num, empire)); }
public static float GetPriceWithSalesTaxes(StaticString boosterDefinitionName, TradableTransactionType transactionType, Empire empire, float quantity = 1f) { IDatabase <TradableCategoryDefinition> database = Databases.GetDatabase <TradableCategoryDefinition>(false); Diagnostics.Assert(database != null); StaticString key = "Tradable" + boosterDefinitionName; TradableCategoryDefinition tradableCategoryDefinition; if (database.TryGetValue(key, out tradableCategoryDefinition)) { float num = Tradable.GetUnitPrice(tradableCategoryDefinition, 0f); if (ELCPUtilities.UseELCPStockpileRulseset && empire is MajorEmpire && empire.GetPropertyValue(SimulationProperties.MarketplaceStockpileCostMultiplier) > 0f) { num *= empire.GetPropertyValue(SimulationProperties.MarketplaceStockpileCostMultiplier); } return(Tradable.ApplySalesTaxes(num * quantity, transactionType, empire)); } return(0f); }