// Production - The Idle Game: Product Catalog & Supply Chain Definitions // Clean modular orchestrator combining sector definitions import { AGRICULTURE_SECTOR, AGRICULTURE_PRODUCTS } from './sectors/agriculture.js'; import { MATERIALS_SECTOR, MATERIALS_PRODUCTS } from './sectors/materials.js'; import { MINING_SECTOR, MINING_PRODUCTS } from './sectors/mining.js'; import { CHEMICALS_SECTOR, CHEMICALS_PRODUCTS } from './sectors/chemicals.js'; import { ELECTRONICS_SECTOR, ELECTRONICS_PRODUCTS } from './sectors/electronics.js'; import { HEAVY_INDUSTRY_SECTOR, HEAVY_INDUSTRY_PRODUCTS } from './sectors/heavyIndustry.js'; import { ENERGY_SECTOR, ENERGY_PRODUCTS } from './sectors/energy.js'; import { CONSTRUCTION_SECTOR, CONSTRUCTION_PRODUCTS } from './sectors/construction.js'; import { AEROSPACE_SECTOR, AEROSPACE_PRODUCTS } from './sectors/aerospace.js'; import { BIOTECH_SECTOR, BIOTECH_PRODUCTS } from './sectors/biotech.js'; import { CONSUMER_GOODS_SECTOR, CONSUMER_GOODS_PRODUCTS } from './sectors/consumer_goods.js'; import { AUTOMATION_SECTOR, AUTOMATION_PRODUCTS } from './sectors/automation.js'; export const SECTORS = [ AGRICULTURE_SECTOR, MATERIALS_SECTOR, MINING_SECTOR, CHEMICALS_SECTOR, ELECTRONICS_SECTOR, HEAVY_INDUSTRY_SECTOR, ENERGY_SECTOR, CONSTRUCTION_SECTOR, AEROSPACE_SECTOR, BIOTECH_SECTOR, CONSUMER_GOODS_SECTOR, AUTOMATION_SECTOR ]; export const PRODUCTS = [ ...AGRICULTURE_PRODUCTS, ...MATERIALS_PRODUCTS, ...MINING_PRODUCTS, ...CHEMICALS_PRODUCTS, ...ELECTRONICS_PRODUCTS, ...HEAVY_INDUSTRY_PRODUCTS, ...ENERGY_PRODUCTS, ...CONSTRUCTION_PRODUCTS, ...AEROSPACE_PRODUCTS, ...BIOTECH_PRODUCTS, ...CONSUMER_GOODS_PRODUCTS, ...AUTOMATION_PRODUCTS ]; // Helper to look up a product by ID export function getProduct(id) { return PRODUCTS.find(p => p.id === id); } // Milestone thresholds that grant a 2x throughput multiplier export const UNIT_MILESTONES = [1, 10, 25, 50, 100, 200, 300, 400, 500, 750, 1000, 1500, 2000]; export function getUnitMilestoneMultiplier(count) { let reached = 0; for (const m of UNIT_MILESTONES) { if (count >= m) reached++; else break; } return Math.pow(2.0, reached); } export function getNextMilestone(count) { for (const m of UNIT_MILESTONES) { if (count < m) return m; } return count + 1000; }