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))); }
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)); }