示例#1
0
    public static float GetUnitPrice(TradableCategoryDefinition tradableCategoryDefinition, float value = 0f)
    {
        float        num     = 0f;
        float        num2    = 0f;
        float        num3    = 0f;
        IGameService service = Services.GetService <IGameService>();

        if (service != null)
        {
            global::Game game = service.Game as global::Game;
            num3 = (float)game.Turn * Tradable.InflationMultiplier;
            ITradeManagementService     service2 = game.Services.GetService <ITradeManagementService>();
            TradableCategoryTendency    tendency;
            TradableCategoryStockFactor stockFactor;
            if (service2 != null && service2.TryGetTradableCategoryState(tradableCategoryDefinition.Name, out tendency, out stockFactor))
            {
                num  = tendency;
                num2 = stockFactor;
            }
        }
        num3  *= tradableCategoryDefinition.SensitivityToInflation;
        num   *= tradableCategoryDefinition.SensitivityToTendency;
        num2  *= tradableCategoryDefinition.SensitivityToStockFactor;
        value *= tradableCategoryDefinition.ValueModifier;
        float num4 = tradableCategoryDefinition.ReferencePrice * (1f + num3) + value * (1f + num3);
        float val  = num4 * (1f + num + num2);
        float val2 = num4 * Tradable.MinimumPriceMultiplier;
        float val3 = num4 * Tradable.MaximumPriceMultiplier;

        return(Math.Max(val2, Math.Min(val3, val)));
    }
示例#2
0
    public static float GetReferencePrice(TradableCategoryDefinition tradableCategoryDefinition, float value = 0f)
    {
        float        num     = 0f;
        IGameService service = Services.GetService <IGameService>();

        if (service != null)
        {
            global::Game game = service.Game as global::Game;
            if (game != null)
            {
                num = (float)game.Turn * Tradable.InflationMultiplier;
            }
        }
        num   *= tradableCategoryDefinition.SensitivityToInflation;
        value *= tradableCategoryDefinition.ValueModifier;
        return((tradableCategoryDefinition.ReferencePrice + value) * (1f + num));
    }