Overhaul market system with shared TAM competition, multi-tier pricing, enterprise pipeline, and developer ecosystem
CI / build-and-push (push) Successful in 42s
CI / build-and-push (push) Successful in 42s
Replaces the simplified single-subscriber market with a full competitive simulation: shared TAM with softmax market shares across 4 segments, multi-tier consumer subscriptions (Free/Plus/Pro/Team) and API tiers (Free/PAYG/Scale/Enterprise), enterprise sales pipeline (Lead→Qualification→POC→Negotiation→Active→Renewal) with SLA tracking, developer ecosystem flywheel, technology obsolescence pressure, seasonal demand cycles, and two new product lines (Code Assistant, AI Agents Platform). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -90,9 +90,9 @@ function triggerMarketBoom(multiplier: number) {
|
||||
useGameStore.setState((s) => ({
|
||||
market: {
|
||||
...s.market,
|
||||
consumers: {
|
||||
...s.market.consumers,
|
||||
totalSubscribers: Math.round(s.market.consumers.totalSubscribers * multiplier),
|
||||
consumerTiers: {
|
||||
...s.market.consumerTiers,
|
||||
totalUsers: Math.round(s.market.consumerTiers.totalUsers * multiplier),
|
||||
},
|
||||
},
|
||||
}));
|
||||
|
||||
@@ -75,10 +75,9 @@ export function StateInspectionTab() {
|
||||
</Section>
|
||||
|
||||
<Section title="Market">
|
||||
<Stat label="Subscribers" value={formatNumber(market.consumers.totalSubscribers)} />
|
||||
<Stat label="Satisfaction" value={formatPercent(market.consumers.satisfaction)} />
|
||||
<Stat label="Growth/tick" value={market.consumers.growthRatePerTick.toFixed(4)} />
|
||||
<Stat label="Churn/tick" value={market.consumers.churnRatePerTick.toFixed(4)} />
|
||||
<Stat label="Subscribers" value={formatNumber(market.consumerTiers.totalUsers)} />
|
||||
<Stat label="Satisfaction" value={formatPercent(market.consumerTiers.satisfaction)} />
|
||||
<Stat label="Viral Coeff" value={market.consumerTiers.viralCoefficient.toFixed(4)} />
|
||||
<Stat label="Contracts" value={market.enterprise.activeContracts.length} />
|
||||
<Stat label="API tok/tick" value={formatNumber(market.enterprise.totalApiCallsPerTick)} />
|
||||
</Section>
|
||||
|
||||
@@ -12,7 +12,7 @@ export function CompanyStatsCard({ onClose }: { onClose: () => void }) {
|
||||
const money = useGameStore((s) => s.economy.money);
|
||||
const totalRevenue = useGameStore((s) => s.economy.totalRevenue);
|
||||
const valuation = useGameStore((s) => s.economy.funding.valuation);
|
||||
const subscribers = useGameStore((s) => s.market.consumers.totalSubscribers);
|
||||
const subscribers = useGameStore((s) => s.market.consumerTiers.totalUsers);
|
||||
const models = useGameStore((s) => s.models.baseModels.length);
|
||||
const bestModel = useGameStore((s) => s.models.bestDeployedModelScore);
|
||||
const reputation = useGameStore((s) => s.reputation.score);
|
||||
|
||||
Reference in New Issue
Block a user