Add Week 3 polish and late-game features

VC funding system (seed through IPO with requirements gating), 15
achievements with engine checker, model tuning presets and unlockable
sliders, overload policy controls, open-source mechanic with reputation
boost, enhanced Recharts analytics (subscriber/reputation/revenue vs
expenses charts), M&A acquisition system, sidebar NEW badges on era
transitions, tutorial hints, and wired-up settings toggles.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-04-24 17:56:40 -04:00
parent 8ea6c771a1
commit 8a8b49d934
20 changed files with 907 additions and 75 deletions
@@ -40,3 +40,16 @@ export const ERA_THRESHOLDS = {
export const GPU_PRICE_VOLATILITY = 0.02;
export const GPU_FAILURE_RATE_BASE = 0.0001;
export const REDUNDANCY_FAILURE_REDUCTION = 0.5;
export const FUNDING_ROUNDS = {
seed: { amount: 100_000, dilution: 0.10, requirements: { minRevenue: 100, minUsers: 0, minReputation: 0 } },
seriesA: { amount: 500_000, dilution: 0.15, requirements: { minRevenue: 500, minUsers: 100, minReputation: 20 } },
seriesB: { amount: 2_000_000, dilution: 0.12, requirements: { minRevenue: 5_000, minUsers: 1_000, minReputation: 30 } },
seriesC: { amount: 10_000_000, dilution: 0.10, requirements: { minRevenue: 50_000, minUsers: 10_000, minReputation: 40 } },
seriesD: { amount: 50_000_000, dilution: 0.08, requirements: { minRevenue: 500_000, minUsers: 50_000, minReputation: 50 } },
ipo: { amount: 200_000_000, dilution: 0.20, requirements: { minRevenue: 5_000_000, minUsers: 100_000, minReputation: 60 } },
} as const;
export const OPEN_SOURCE_REPUTATION_BOOST = 8;
export const OPEN_SOURCE_TALENT_ATTRACTION = 0.15;
export const OPEN_SOURCE_REVENUE_PENALTY = 0.10;
+2
View File
@@ -3,6 +3,7 @@ export interface MarketState {
enterprise: EnterpriseMarket;
overloadPolicy: OverloadPolicy;
openSourcedModels: string[];
subscriberHistory: { tick: number; subscribers: number }[];
}
export interface ConsumerMarket {
@@ -70,4 +71,5 @@ export const INITIAL_MARKET: MarketState = {
prioritizeEnterprise: true,
},
openSourcedModels: [],
subscriberHistory: [],
};