// 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'; export const SECTORS = [ AGRICULTURE_SECTOR, MATERIALS_SECTOR, MINING_SECTOR, CHEMICALS_SECTOR, ELECTRONICS_SECTOR, HEAVY_INDUSTRY_SECTOR ]; export const PRODUCTS = [ ...AGRICULTURE_PRODUCTS, ...MATERIALS_PRODUCTS, ...MINING_PRODUCTS, ...CHEMICALS_PRODUCTS, ...ELECTRONICS_PRODUCTS, ...HEAVY_INDUSTRY_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; }