ProductionGame/frontend/js/data/boardroom.js

63 lines
2.4 KiB
JavaScript

// Production - The Idle Game: Corporate IPO & Boardroom Perks
// Permanent prestige mechanics fueled by Venture Shares ($V-Shares)
export const BOARDROOM_PERKS = [
{
id: 'supply_sync',
name: 'Automated Supply Chain Routing',
icon: 'lucide:network',
color: '#2563eb',
description: 'Advanced ERP routing balances raw input inventories across downstream factories.',
costShares: [1, 3, 8, 20, 50],
maxLevel: 5,
effectDesc: '+15% raw material extraction yield per level.'
},
{
id: 'robotics_overclock',
name: 'Industrial Robotics & AI',
icon: 'lucide:bot',
color: '#7c3aed',
description: 'Automated robotic arms accelerate manufacturing cycle completion times.',
costShares: [2, 5, 12, 30, 75],
maxLevel: 5,
effectDesc: '+20% faster cycle speeds across all production lines.'
},
{
id: 'logistics_efficiency',
name: 'Fleet Logistics Optimization',
icon: 'lucide:truck',
color: '#059669',
description: 'Streamlined commercial distribution channels boost wholesale profit margins.',
costShares: [2, 6, 15, 40, 100],
maxLevel: 5,
effectDesc: '+25% higher sale price on continuous logistics distribution.'
},
{
id: 'government_subsidies',
name: 'State Subsidies & Procurement',
icon: 'lucide:landmark',
color: '#d97706',
description: 'Secures high-tier government grants and preferential B2B procurement payouts.',
costShares: [3, 8, 20, 55, 120],
maxLevel: 5,
effectDesc: '+35% bonus cash payout on completed B2B contracts.'
},
{
id: 'angel_syndicate',
name: 'Venture Capital Syndicate',
icon: 'lucide:badge-dollar-sign',
color: '#dc2626',
description: 'Top-tier institutional investors seed every new corporate expansion with starting capital.',
costShares: [5, 15, 45, 120, 300],
maxLevel: 5,
effectDesc: 'Increases starting capital by $500, $5k, $50k, $500k, $5M after IPO.'
}
];
export const IPO_MIN_VALUATION = 100000; // $100k valuation to initiate first IPO
export function calculateSharesEarned(lifetimeRevenue) {
if (lifetimeRevenue < IPO_MIN_VALUATION) return 0;
// Formula: floor(10 * sqrt(lifetimeRevenue / 100,000))
return Math.floor(10 * Math.sqrt(lifetimeRevenue / IPO_MIN_VALUATION));
}