Beispiel #1
0
    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));
    }
Beispiel #2
0
    public static float ApplySalesTaxes(float price, TradableTransactionType transactionType, global::Empire empire)
    {
        float num = 1f;

        if (transactionType != TradableTransactionType.Buyout)
        {
            if (transactionType == TradableTransactionType.Sellout)
            {
                num = Tradable.SelloutMultiplier;
            }
        }
        else
        {
            num = Tradable.BuyoutMultiplier;
        }
        return(price * num);
    }
Beispiel #3
0
    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);
    }