diff --git a/src/config/paymentConfig.js b/src/config/paymentConfig.js index 3258f87..b02a56b 100644 --- a/src/config/paymentConfig.js +++ b/src/config/paymentConfig.js @@ -49,11 +49,11 @@ const DEFAULT_CONFIG = Object.freeze({ credits: { enabled: false, multipliers: { - escape: 1.5, - escapeWithTreasure: 2.0, + escape: 2.0, + escapeWithTreasure: 3.0, perfectRun: 3.0 }, - baseValue: 50000000000n, + baseValue: 100000000000n, minPayout: 1000000000n, maxPayout: 5000000000000n } @@ -286,9 +286,11 @@ class PaymentConfigManager { if (creditsPayoutEnabled !== undefined) { config.payouts.rules.credits.enabled = creditsPayoutEnabled; } + console.log(`🔧 ENV CREDITS_PAYOUT_BASE = "${process.env.CREDITS_PAYOUT_BASE}" (raw)`); config.payouts.rules.credits.multipliers.escape = parseFloatValue(process.env.CREDITS_PAYOUT_ESCAPE, config.payouts.rules.credits.multipliers.escape); config.payouts.rules.credits.multipliers.escapeWithTreasure = parseFloatValue(process.env.CREDITS_PAYOUT_TREASURE, config.payouts.rules.credits.multipliers.escapeWithTreasure); config.payouts.rules.credits.baseValue = parseAtomicValue(process.env.CREDITS_PAYOUT_BASE, config.payouts.rules.credits.baseValue); + console.log(`🔧 Parsed credits baseValue = ${config.payouts.rules.credits.baseValue}`); config.payouts.processing.batchInterval = parseInteger(process.env.PAYOUT_BATCH_INTERVAL, config.payouts.processing.batchInterval); config.payouts.processing.maxRetries = parseInteger(process.env.PAYOUT_MAX_RETRIES, config.payouts.processing.maxRetries); diff --git a/src/game/gameModeManager.js b/src/game/gameModeManager.js index 5ec63fb..a0d9f35 100644 --- a/src/game/gameModeManager.js +++ b/src/game/gameModeManager.js @@ -70,7 +70,8 @@ class GameModeManager { this.setLegacyGameMode(process.env.GAME_MODE || 'FREE'); this.cryptoType = process.env.CRYPTO_TYPE || this.cryptoType; this.currencyDecimals = this.inferCurrencyDecimals(this.cryptoType); - this.singleGamePrice = parseAtomicEnvValue(process.env.SINGLE_GAME_PRICE, this.singleGamePrice); + // Support both DIRECT_GAME_PRICE and legacy SINGLE_GAME_PRICE + this.singleGamePrice = parseAtomicEnvValue(process.env.DIRECT_GAME_PRICE || process.env.SINGLE_GAME_PRICE, this.singleGamePrice); this.creditsPackagePrice = parseAtomicEnvValue(process.env.CREDITS_PACKAGE_PRICE, this.creditsPackagePrice); this.creditsPerGameCost = parseAtomicEnvValue(process.env.CREDITS_PER_GAME, 1) || 1; this.creditsPayoutEnabled = /^true$/i.test(process.env.CREDITS_PAYOUTS_ENABLED || process.env.CREDITS_PAYOUT_ENABLED || 'false'); @@ -370,6 +371,7 @@ class GameModeManager { console.log(`🎮 Game Mode Manager ${context}: ${this.gameMode} mode`); console.log(`💰 Currency: ${this.cryptoType} (decimals: ${this.currencyDecimals})`); console.log(`💵 Single game price: ${this.singleGamePrice} atomic units (~${this.formatAtomic(this.singleGamePrice)} ${this.cryptoType})`); + console.log(`💵 Credits payout base: ${this.creditsPayoutBaseValue} atomic units (~${this.formatAtomic(this.creditsPayoutBaseValue)} ${this.cryptoType})`); console.log(`🎫 Credits package price: ${this.creditsPackagePrice} atomic units (~${this.formatAtomic(this.creditsPackagePrice)} ${this.cryptoType})`); console.log(`🎯 Credits per game cost: ${this.creditsPerGameCost}`); console.log(`🧮 Payout multipliers - direct: ${JSON.stringify(this.directPayoutMultipliers)}, credits: ${JSON.stringify(this.creditPayoutMultipliers)}`);