// Production - The Idle Game: B2B Procurement Contracts Board // Fine-grained DOM updates without innerHTML teardowns import { getProduct } from '../data/products.js'; import { getClient } from '../data/contracts.js'; import { fmtCurrency, fmtNum, fmtTime } from '../core/formatters.js'; let currentMountedContractUids = ''; export function mountContractsBoard(container, state, onAction) { const contracts = state.activeContracts || []; currentMountedContractUids = contracts.map(c => c.uid).join(','); const repPool = state.reputation || 0; const allocs = state.repAllocations || { b2b: 0, clients: 0, brand: 0 }; const b2bRep = allocs.b2b || 0; const clientsRep = allocs.clients || 0; const brandRep = allocs.brand || 0; const totalAllocated = b2bRep + clientsRep + brandRep; const totalAccumulatedRep = repPool + totalAllocated; // Computed bonus percentages const b2bPayoutPct = (b2bRep * 0.5).toFixed(1); const apexYieldPct = (clientsRep * 0.2).toFixed(1); const titanDiscountPct = Math.min(50, clientsRep * 0.2).toFixed(1); const omniSpeedPct = (clientsRep * 0.15).toFixed(1); const vanguardCapPct = (clientsRep * 0.25).toFixed(1); const brandPricePct = (brandRep * 0.25).toFixed(1); let html = `
Supply high-priority commodity shipments to corporate clients for massive cash injections and corporate prestige.
Distribute corporate reputation earned from fulfilled contracts across 3 strategic branches. Points can be reallocated at any time.
Increases cash payouts on all delivered B2B tenders by establishing premier vendor standing.
Deepens industrial partnerships with the 4 MegaCorps to unlock multifaceted operational synergies.
Builds prestigious global brand equity, boosting open-market wholesale prices across all logistics fleets.
Corporate procurement agents are preparing new commodity RFPs...