Rename AI Tycoon to Token Empire across entire codebase
Full rebrand: UI display text, package scope (@ai-tycoon/* -> @token-empire/*), localStorage keys, Docker/CI image paths, database names, and documentation. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -1,12 +1,12 @@
|
||||
import { useGameStore } from '@/store';
|
||||
import { ACHIEVEMENT_DEFINITIONS } from '@ai-tycoon/game-engine';
|
||||
import { formatNumber } from '@ai-tycoon/shared';
|
||||
import { ACHIEVEMENT_DEFINITIONS } from '@token-empire/game-engine';
|
||||
import { formatNumber } from '@token-empire/shared';
|
||||
import {
|
||||
Trophy, Lock, Server, Brain, Rocket, DollarSign, Sprout, Users,
|
||||
Globe, Sparkles, TrendingUp, Building2, Atom, Cpu, FlaskConical,
|
||||
GitBranch, Zap,
|
||||
} from 'lucide-react';
|
||||
import type { AchievementCondition } from '@ai-tycoon/shared';
|
||||
import type { AchievementCondition } from '@token-empire/shared';
|
||||
|
||||
const ICON_MAP: Record<string, React.ComponentType<{ size?: number; className?: string }>> = {
|
||||
Trophy, Server, Brain, Rocket, DollarSign, Sprout, Users,
|
||||
|
||||
@@ -3,8 +3,8 @@ import { Swords, TrendingUp, Shield, Users, Brain, ShoppingCart } from 'lucide-r
|
||||
import { useGameStore } from '@/store';
|
||||
import { ConfirmModal } from '@/components/common/ConfirmModal';
|
||||
import { Tooltip } from '@/components/common/Tooltip';
|
||||
import { formatMoney, formatNumber } from '@ai-tycoon/shared';
|
||||
import type { Era } from '@ai-tycoon/shared';
|
||||
import { formatMoney, formatNumber } from '@token-empire/shared';
|
||||
import type { Era } from '@token-empire/shared';
|
||||
|
||||
const ARCHETYPE_LABELS: Record<string, string> = {
|
||||
'safety-first': 'Safety-First Lab',
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
import type React from 'react';
|
||||
import { useGameStore, type ActivePage } from '@/store';
|
||||
import { formatMoney, formatNumber, formatPercent, formatDuration } from '@ai-tycoon/shared';
|
||||
import type { Era } from '@ai-tycoon/shared';
|
||||
import { TECH_TREE } from '@ai-tycoon/game-engine';
|
||||
import { formatMoney, formatNumber, formatPercent, formatDuration } from '@token-empire/shared';
|
||||
import type { Era } from '@token-empire/shared';
|
||||
import { TECH_TREE } from '@token-empire/game-engine';
|
||||
import {
|
||||
DollarSign, TrendingUp, TrendingDown, Minus, Cpu, Brain, Users,
|
||||
Shield, ChevronRight, Zap, Wifi, Sparkles, FlaskConical, Building2,
|
||||
@@ -96,7 +96,7 @@ export function DashboardPage() {
|
||||
|
||||
{totalDCs === 0 && (
|
||||
<TutorialHint id="welcome">
|
||||
Welcome to AI Tycoon! Start by building a cluster in the Infrastructure tab, then add a campus and data center to deploy racks and train your first AI model.
|
||||
Welcome to Token Empire! Start by building a cluster in the Infrastructure tab, then add a campus and data center to deploy racks and train your first AI model.
|
||||
</TutorialHint>
|
||||
)}
|
||||
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
import { useState } from 'react';
|
||||
import { Database, ShoppingCart, Zap } from 'lucide-react';
|
||||
import { useGameStore } from '@/store';
|
||||
import { formatNumber, formatMoney, uuid } from '@ai-tycoon/shared';
|
||||
import type { OwnedDataset, DataDomain } from '@ai-tycoon/shared';
|
||||
import { formatNumber, formatMoney, uuid } from '@token-empire/shared';
|
||||
import type { OwnedDataset, DataDomain } from '@token-empire/shared';
|
||||
|
||||
interface MarketplaceDataset {
|
||||
name: string;
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
import { useGameStore } from '@/store';
|
||||
import { formatMoney, formatPercent, formatNumber, FUNDING_ROUNDS } from '@ai-tycoon/shared';
|
||||
import type { FundingRoundType } from '@ai-tycoon/shared';
|
||||
import { formatMoney, formatPercent, formatNumber, FUNDING_ROUNDS } from '@token-empire/shared';
|
||||
import type { FundingRoundType } from '@token-empire/shared';
|
||||
import { TrendingUp, DollarSign, PiggyBank, BarChart3, Rocket, Check, X as XIcon } from 'lucide-react';
|
||||
import { AreaChart, Area, XAxis, YAxis, ResponsiveContainer, LineChart, Line, Tooltip } from 'recharts';
|
||||
import { canRaiseFunding } from '@ai-tycoon/game-engine';
|
||||
import type { GameState } from '@ai-tycoon/shared';
|
||||
import { canRaiseFunding } from '@token-empire/game-engine';
|
||||
import type { GameState } from '@token-empire/shared';
|
||||
|
||||
export function FinancePage() {
|
||||
const money = useGameStore((s) => s.economy.money);
|
||||
|
||||
@@ -18,11 +18,11 @@ import {
|
||||
SWITCH_TIER_CONFIGS,
|
||||
DC_UPGRADE_COST_FRACTION, DC_UPGRADE_INCREMENT,
|
||||
skuTotalFlops,
|
||||
} from '@ai-tycoon/shared';
|
||||
} from '@token-empire/shared';
|
||||
import type {
|
||||
DCTier, RackSkuId, LocationId, PipelineStage, Era,
|
||||
Cluster, Campus, DataCenter, DeploymentCohort,
|
||||
} from '@ai-tycoon/shared';
|
||||
} from '@token-empire/shared';
|
||||
|
||||
const ERA_ORDER: Era[] = ['startup', 'scaleup', 'bigtech', 'agi'];
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { useState, useEffect } from 'react';
|
||||
import { Trophy, Medal, Clock, TrendingUp } from 'lucide-react';
|
||||
import { useGameStore } from '@/store';
|
||||
import { formatMoney, formatNumber } from '@ai-tycoon/shared';
|
||||
import { formatMoney, formatNumber } from '@token-empire/shared';
|
||||
import { api, getAuthToken } from '@/lib/api';
|
||||
|
||||
interface LeaderboardEntry {
|
||||
|
||||
@@ -13,12 +13,12 @@ import {
|
||||
SIZE_TIER_LABELS,
|
||||
SFT_SPECIALIZATION_BONUSES,
|
||||
PRETRAINING_BASE_TICKS,
|
||||
} from '@ai-tycoon/shared';
|
||||
} from '@token-empire/shared';
|
||||
import type {
|
||||
ModelArchitecture, DataMixAllocation, SFTSpecialization, AlignmentMethod,
|
||||
DataDomain, QuantizationLevel, BaseModel, ModelVariant,
|
||||
SizeTier, ModelFamily,
|
||||
} from '@ai-tycoon/shared';
|
||||
} from '@token-empire/shared';
|
||||
|
||||
const DATA_MIX_PRESETS: Record<string, { label: string; mix: DataMixAllocation }> = {
|
||||
balanced: { label: 'Balanced', mix: DEFAULT_DATA_MIX },
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
import { FlaskConical, Lock, Check, Play, ListOrdered, X } from 'lucide-react';
|
||||
import { TutorialHint } from '@/components/game/TutorialHint';
|
||||
import { useGameStore } from '@/store';
|
||||
import { formatDuration, formatPercent, formatNumber, formatMoney } from '@ai-tycoon/shared';
|
||||
import { TECH_TREE, getAvailableResearch } from '@ai-tycoon/game-engine';
|
||||
import type { ResearchNode } from '@ai-tycoon/shared';
|
||||
import { formatDuration, formatPercent, formatNumber, formatMoney } from '@token-empire/shared';
|
||||
import { TECH_TREE, getAvailableResearch } from '@token-empire/game-engine';
|
||||
import type { ResearchNode } from '@token-empire/shared';
|
||||
|
||||
const CATEGORY_COLORS: Record<string, string> = {
|
||||
generation: 'border-purple-500/50 bg-purple-500/10',
|
||||
|
||||
@@ -3,7 +3,7 @@ import {
|
||||
formatNumber, formatPercent,
|
||||
type TrafficPriority, type OverflowBehavior, type RoutingStrategy,
|
||||
TRAFFIC_PRIORITIES,
|
||||
} from '@ai-tycoon/shared';
|
||||
} from '@token-empire/shared';
|
||||
import {
|
||||
Activity, Shield, Clock, CheckCircle, XCircle, Layers,
|
||||
AlertTriangle, Zap, Server, ArrowRight,
|
||||
|
||||
@@ -21,7 +21,7 @@ export function SettingsPage() {
|
||||
};
|
||||
|
||||
const handleReset = () => {
|
||||
localStorage.removeItem('ai-tycoon-save');
|
||||
localStorage.removeItem('token-empire-save');
|
||||
window.location.reload();
|
||||
};
|
||||
|
||||
@@ -32,7 +32,7 @@ export function SettingsPage() {
|
||||
const url = URL.createObjectURL(blob);
|
||||
const a = document.createElement('a');
|
||||
a.href = url;
|
||||
a.download = `ai-tycoon-${companyName.replace(/\s+/g, '-').toLowerCase()}.json`;
|
||||
a.download = `token-empire-${companyName.replace(/\s+/g, '-').toLowerCase()}.json`;
|
||||
a.click();
|
||||
URL.revokeObjectURL(url);
|
||||
};
|
||||
@@ -51,7 +51,7 @@ export function SettingsPage() {
|
||||
}
|
||||
setImportData({ data, name: data.meta.companyName });
|
||||
} catch {
|
||||
addNotification({ title: 'Import Failed', message: 'Could not read save file. Make sure it is a valid AI Tycoon export.', type: 'danger', tick: useGameStore.getState().meta.tickCount });
|
||||
addNotification({ title: 'Import Failed', message: 'Could not read save file. Make sure it is a valid Token Empire export.', type: 'danger', tick: useGameStore.getState().meta.tickCount });
|
||||
}
|
||||
};
|
||||
reader.readAsText(file);
|
||||
@@ -60,7 +60,7 @@ export function SettingsPage() {
|
||||
|
||||
const confirmImport = () => {
|
||||
if (!importData) return;
|
||||
localStorage.setItem('ai-tycoon-save', JSON.stringify({ state: importData.data }));
|
||||
localStorage.setItem('token-empire-save', JSON.stringify({ state: importData.data }));
|
||||
window.location.reload();
|
||||
};
|
||||
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
import { useState } from 'react';
|
||||
import { Users, Plus, Star, Briefcase } from 'lucide-react';
|
||||
import { useGameStore } from '@/store';
|
||||
import { formatMoney } from '@ai-tycoon/shared';
|
||||
import { KEY_HIRE_POOL } from '@ai-tycoon/game-engine';
|
||||
import type { DepartmentId } from '@ai-tycoon/shared';
|
||||
import { formatMoney } from '@token-empire/shared';
|
||||
import { KEY_HIRE_POOL } from '@token-empire/game-engine';
|
||||
import type { DepartmentId } from '@token-empire/shared';
|
||||
|
||||
const DEPT_LABELS: Record<string, string> = {
|
||||
research: 'Research',
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { useState, useEffect, useRef, useCallback } from 'react';
|
||||
import { useGameStore } from '@/store';
|
||||
import { formatNumber, formatMoney, formatPercent } from '@ai-tycoon/shared';
|
||||
import type { ApiTierId } from '@ai-tycoon/shared';
|
||||
import { formatNumber, formatMoney, formatPercent } from '@token-empire/shared';
|
||||
import type { ApiTierId } from '@token-empire/shared';
|
||||
import { Code, Check } from 'lucide-react';
|
||||
|
||||
const TIER_ORDER: ApiTierId[] = ['free', 'payg', 'scale', 'enterprise-api'];
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { useState, useEffect, useRef, useCallback } from 'react';
|
||||
import { useGameStore } from '@/store';
|
||||
import { formatNumber, formatMoney, formatPercent } from '@ai-tycoon/shared';
|
||||
import type { ConsumerTierId } from '@ai-tycoon/shared';
|
||||
import { formatNumber, formatMoney, formatPercent } from '@token-empire/shared';
|
||||
import type { ConsumerTierId } from '@token-empire/shared';
|
||||
import { Users, Check } from 'lucide-react';
|
||||
|
||||
const TIER_ORDER: ConsumerTierId[] = ['free', 'plus', 'pro', 'team'];
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { useState, useEffect, useRef, useCallback } from 'react';
|
||||
import { useGameStore } from '@/store';
|
||||
import { formatNumber, formatMoney, formatPercent } from '@ai-tycoon/shared';
|
||||
import { formatNumber, formatMoney, formatPercent } from '@token-empire/shared';
|
||||
import { Boxes, Check } from 'lucide-react';
|
||||
|
||||
function useAppliedFeedback() {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { useGameStore } from '@/store';
|
||||
import { formatNumber, formatMoney, formatPercent } from '@ai-tycoon/shared';
|
||||
import type { EnterprisePipelineStage, EnterpriseSegment } from '@ai-tycoon/shared';
|
||||
import { formatNumber, formatMoney, formatPercent } from '@token-empire/shared';
|
||||
import type { EnterprisePipelineStage, EnterpriseSegment } from '@token-empire/shared';
|
||||
import { Building2, AlertTriangle } from 'lucide-react';
|
||||
|
||||
const STAGE_ORDER: EnterprisePipelineStage[] = ['lead', 'qualification', 'poc', 'negotiation'];
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { useGameStore } from '@/store';
|
||||
import { formatNumber, formatPercent } from '@ai-tycoon/shared';
|
||||
import type { TAMSegmentId } from '@ai-tycoon/shared';
|
||||
import { formatNumber, formatPercent } from '@token-empire/shared';
|
||||
import type { TAMSegmentId } from '@token-empire/shared';
|
||||
import { Globe, TrendingUp, Clock, Thermometer } from 'lucide-react';
|
||||
|
||||
const SEGMENT_LABELS: Record<TAMSegmentId, string> = {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { useState, useEffect, useRef, useCallback } from 'react';
|
||||
import { useGameStore } from '@/store';
|
||||
import { formatNumber, formatMoney, formatPercent } from '@ai-tycoon/shared';
|
||||
import { formatNumber, formatMoney, formatPercent } from '@token-empire/shared';
|
||||
import { Wrench, Bot, Check, Lock } from 'lucide-react';
|
||||
|
||||
function useAppliedFeedback() {
|
||||
|
||||
Reference in New Issue
Block a user