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:
@@ -0,0 +1,109 @@
|
||||
import type { AchievementDefinition } from '@ai-tycoon/shared';
|
||||
|
||||
export const ACHIEVEMENT_DEFINITIONS: AchievementDefinition[] = [
|
||||
{
|
||||
id: 'first-dc',
|
||||
name: 'First Steps',
|
||||
description: 'Build your first data center.',
|
||||
icon: 'Server',
|
||||
condition: { field: 'infrastructure.dataCenters.length', operator: 'gte', value: 1 },
|
||||
},
|
||||
{
|
||||
id: 'first-model',
|
||||
name: 'Hello World',
|
||||
description: 'Train your first AI model.',
|
||||
icon: 'Brain',
|
||||
condition: { field: 'models.trainedModels.length', operator: 'gte', value: 1 },
|
||||
},
|
||||
{
|
||||
id: 'first-deploy',
|
||||
name: 'Going Live',
|
||||
description: 'Deploy a model to production.',
|
||||
icon: 'Rocket',
|
||||
condition: { field: 'meta._deployedModelCount', operator: 'gte', value: 1 },
|
||||
},
|
||||
{
|
||||
id: 'first-revenue',
|
||||
name: 'First Dollar',
|
||||
description: 'Earn your first revenue.',
|
||||
icon: 'DollarSign',
|
||||
condition: { field: 'economy.totalRevenue', operator: 'gt', value: 0 },
|
||||
},
|
||||
{
|
||||
id: 'seed-funded',
|
||||
name: 'Seed Funded',
|
||||
description: 'Complete your seed funding round.',
|
||||
icon: 'Sprout',
|
||||
condition: { field: 'economy.funding.completedRounds.length', operator: 'gte', value: 1 },
|
||||
},
|
||||
{
|
||||
id: '1k-subscribers',
|
||||
name: '1K Club',
|
||||
description: 'Reach 1,000 subscribers.',
|
||||
icon: 'Users',
|
||||
condition: { field: 'market.consumers.totalSubscribers', operator: 'gte', value: 1_000 },
|
||||
},
|
||||
{
|
||||
id: '100k-subscribers',
|
||||
name: 'Mass Adoption',
|
||||
description: 'Reach 100,000 subscribers.',
|
||||
icon: 'Globe',
|
||||
condition: { field: 'market.consumers.totalSubscribers', operator: 'gte', value: 100_000 },
|
||||
},
|
||||
{
|
||||
id: 'unicorn',
|
||||
name: 'Unicorn',
|
||||
description: 'Reach a $1B valuation.',
|
||||
icon: 'Sparkles',
|
||||
condition: { field: 'economy.funding.valuation', operator: 'gte', value: 1_000_000_000 },
|
||||
},
|
||||
{
|
||||
id: 'era-scaleup',
|
||||
name: 'Scaling Up',
|
||||
description: 'Enter the Scale-up era.',
|
||||
icon: 'TrendingUp',
|
||||
condition: { field: 'meta._eraIndex', operator: 'gte', value: 1 },
|
||||
},
|
||||
{
|
||||
id: 'era-bigtech',
|
||||
name: 'Big League',
|
||||
description: 'Enter the Big Tech era.',
|
||||
icon: 'Building2',
|
||||
condition: { field: 'meta._eraIndex', operator: 'gte', value: 2 },
|
||||
},
|
||||
{
|
||||
id: 'era-agi',
|
||||
name: 'The Singularity',
|
||||
description: 'Enter the AGI era.',
|
||||
icon: 'Atom',
|
||||
condition: { field: 'meta._eraIndex', operator: 'gte', value: 3 },
|
||||
},
|
||||
{
|
||||
id: 'gpu-hoarder',
|
||||
name: 'GPU Hoarder',
|
||||
description: 'Own 100 or more GPUs across all data centers.',
|
||||
icon: 'Cpu',
|
||||
condition: { field: 'infrastructure._totalGpuCount', operator: 'gte', value: 100 },
|
||||
},
|
||||
{
|
||||
id: 'research-pioneer',
|
||||
name: 'Research Pioneer',
|
||||
description: 'Complete 10 research projects.',
|
||||
icon: 'FlaskConical',
|
||||
condition: { field: 'research.completedResearch.length', operator: 'gte', value: 10 },
|
||||
},
|
||||
{
|
||||
id: 'open-source-champion',
|
||||
name: 'Open Source Champion',
|
||||
description: 'Open-source 3 models.',
|
||||
icon: 'GitBranch',
|
||||
condition: { field: 'market.openSourcedModels.length', operator: 'gte', value: 3 },
|
||||
},
|
||||
{
|
||||
id: 'speed-demon',
|
||||
name: 'Speed Demon',
|
||||
description: 'Reach 1 million tokens/second inference capacity.',
|
||||
icon: 'Zap',
|
||||
condition: { field: 'compute.tokensPerSecondCapacity', operator: 'gte', value: 1_000_000 },
|
||||
},
|
||||
];
|
||||
Reference in New Issue
Block a user