<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>能量核心收集者 - 完整版</title>
    <link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css" rel="stylesheet">
    <script src="https://cdn.tailwindcss.com"></script>
    <script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
    <style>
        .particle {
            position: absolute;
            width: 8px;
            height: 8px;
            background: #ffd700;
            border-radius: 50%;
            pointer-events: none;
        }
        @keyframes float {
            0%, 100% { transform: translateY(0px); }
            50% { transform: translateY(-20px); }
        }
        @keyframes glow {
            from { opacity: 0.4; }
            to { opacity: 0.8; }
        }
        @keyframes pulse {
            0% { transform: scale(1); opacity: 1; }
            50% { transform: scale(1.1); opacity: 0.5; }
            100% { transform: scale(1); opacity: 1; }
        }
        .energy-core {
            transition: all 0.3s ease;
        }
        .energy-core:hover {
            transform: scale(1.05);
        }
        .energy-core:active {
            transform: scale(0.95);
        }
    </style>
</head>
<body class="bg-gradient-to-br from-purple-600 via-blue-600 to-indigo-700 min-h-screen text-gray-800">
    <div class="container mx-auto px-4 py-8 max-w-7xl">
        <!-- 头部统计区域 -->
        <header class="bg-white/95 backdrop-blur-lg rounded-2xl p-6 mb-6 shadow-2xl border border-white/20">
            <h1 class="text-3xl font-bold text-center text-gray-700 mb-4">能量核心收集者</h1>
            <div class="grid grid-cols-1 md:grid-cols-3 gap-4">
                <div class="bg-gradient-to-r from-blue-500 to-purple-600 rounded-xl p-4 text-white text-center">
                <span class="text-sm opacity-90 block">能量核心</span>
                <span id="energyCount" class="text-2xl font-bold block">0</span>
            </div>
            <div class="bg-gradient-to-r from-green-500 to-teal-600 rounded-xl p-4 text-white text-center">
                <span class="text-sm opacity-90 block">每秒产量</span>
                <span id="energyPerSecond" class="text-2xl font-bold block">0</span>
            </div>
            <div class="bg-gradient-to-r from-orange-500 to-red-600 rounded-xl p-4 text-white text-center">
                <span class="text-sm opacity-90 block">游戏时间</span>
                <span id="gameTime" class="text-2xl font-bold block">00:00:00</span>
            </div>
        </div>
    </header>

    <!-- 主游戏区域 -->
    <main class="grid grid-cols-1 lg:grid-cols-2 gap-6 mb-6">
            <!-- 点击区域 -->
            <section class="bg-white/95 backdrop-blur-lg rounded-2xl p-8 shadow-2xl border border-white/20 text-center">
                <div class="energy-core w-64 h-64 bg-gradient-to-br from-yellow-400 via-orange-500 to-red-600 rounded-full mx-auto mb-6 cursor-pointer relative shadow-lg"
                id="energyCore">
                <div class="absolute inset-0 bg-gradient-to-br from-yellow-400 via-orange-500 to-red-600 rounded-full blur-xl opacity-60 animate-glow"></div>
                <div class="absolute inset-0 border-4 border-white/50 rounded-full animate-pulse"></div>
                <div class="relative z-10 flex items-center justify-center h-full">
                    <i class="fas fa-bolt text-6xl text-white"></i>
                </div>
            </div>
            <div class="text-center">
                <span id="clickValue" class="text-2xl font-bold text-white bg-black/30 px-4 py-2 rounded-full transition-all duration-1000 opacity-0 transform -translate-y-5">+1</span>
        </section>

        <!-- 升级区域 -->
        <section class="bg-white/95 backdrop-blur-lg rounded-2xl p-6 shadow-2xl border border-white/20">
                <h2 class="text-2xl font-bold text-gray-700 mb-6 text-center">自动化升级</h2>
                <div class="grid gap-4" id="upgradesGrid">
                    <!-- 升级项目将通过JavaScript动态生成 -->
                </div>
            </section>
        </main>

        <!-- 统计和成就区域 -->
        <div class="grid grid-cols-1 lg:grid-cols-2 gap-6 mb-6">
            <!-- 游戏统计 -->
            <section class="bg-white/95 backdrop-blur-lg rounded-2xl p-6 shadow-2xl border border-white/20">
                <h2 class="text-2xl font-bold text-gray-700 mb-6 text-center">游戏统计</h2>
                <div class="grid grid-cols-2 gap-4">
                <div class="bg-gradient-to-r from-purple-500 to-indigo-600 rounded-xl p-4 text-white text-center">
                    <h3 class="text-sm font-semibold mb-2">总收集量</h3>
                <p id="totalCollected" class="text-xl font-bold">0</p>
            </div>
            <div class="bg-gradient-to-r from-blue-500 to-cyan-600 rounded-xl p-4 text-white text-center">
                    <h3 class="text-sm font-semibold mb-2">总点击次数</h3>
                <p id="totalClicks" class="text-xl font-bold">0</p>
            </div>
            <div class="bg-gradient-to-r from-green-500 to-emerald-600 rounded-xl p-4 text-white text-center">
                    <h3 class="text-sm font-semibold mb-2">最高产量</h3>
                <p id="highestProduction" class="text-xl font-bold">0/秒</p>
            </div>
            <div class="bg-gradient-to-r from-orange-500 to-amber-600 rounded-xl p-4 text-white text-center">
                    <h3 class="text-sm font-semibold mb-2">升级总数</h3>
                <p id="totalUpgrades" class="text-xl font-bold">0</p>
            </div>
        </div>
    </section>

    <!-- 成就区域 -->
    <section class="bg-white/95 backdrop-blur-lg rounded-2xl p-6 shadow-2xl border border-white/20">
        <h2 class="text-2xl font-bold text-gray-700 mb-6 text-center">成就系统</h2>
        <div class="grid gap-4" id="achievementsGrid">
            <!-- 成就项目将通过JavaScript动态生成 -->
        </div>
    </section>
</div>

<!-- 科技树区域 -->
<section class="bg-white/95 backdrop-blur-lg rounded-2xl p-6 shadow-2xl border border-white/20 mb-6">
    <h2 class="text-2xl font-bold text-gray-700 mb-6 text-center">科技发展</h2>
    <div class="grid grid-cols-1 md:grid-cols-3 gap-4" id="techTree">
        <!-- 科技树节点将通过JavaScript动态生成 -->
    </div>
</section>

<!-- 控制面板 -->
<footer class="bg-white/95 backdrop-blur-lg rounded-2xl p-6 shadow-2xl border border-white/20">
    <div class="flex justify-center gap-4">
        <button id="saveGame" class="bg-gradient-to-r from-blue-500 to-purple-600 text-white px-6 py-3 rounded-xl font-bold shadow-lg hover:shadow-xl transition-all duration-300 hover:scale-105 active:scale-95">
            <i class="fas fa-save mr-2"></i>
            保存游戏
        </button>
        <button id="resetGame" class="bg-gradient-to-r from-red-500 to-pink-600 text-white px-6 py-3 rounded-xl font-bold shadow-lg hover:shadow-xl transition-all duration-300 hover:scale-105 active:scale-95">
            <i class="fas fa-redo mr-2"></i>
            重置游戏
        </button>
    </div>
</footer>
</div>

<script>
class EnergyCoreGame {
    constructor() {
        this.energy = 0;
        this.totalCollected = 0;
        this.totalClicks = 0;
        this.energyPerClick = 1;
        this.energyPerSecond = 0;
        this.gameStartTime = Date.now();
        this.highestProduction = 0;
        
        // 升级系统
        this.upgrades = [
            {
                id: 'autoClicker',
                name: '自动点击器',
                description: '基础自动化设备',
                baseCost: 15,
                production: 0.5,
                level: 0,
                maxLevel: 20,
                icon: 'fa-robot',
                color: 'from-blue-400 to-cyan-500'
            },
            {
                id: 'energyDrill',
                name: '能量钻机',
                description: '高效能量采集',
                baseCost: 100,
                production: 2,
                level: 0,
                maxLevel: 15,
                icon: 'fa-mountain',
                color: 'from-green-400 to-emerald-500'
            },
            {
                id: 'quantumReactor',
                name: '量子反应堆',
                description: '高级量子设备',
                baseCost: 500,
                production: 5,
                level: 0,
                maxLevel: 10,
                icon: 'fa-atom',
                color: 'from-purple-400 to-pink-500'
            },
            {
                id: 'singularityCore',
                name: '奇点核心',
                description: '终极能量源',
                baseCost: 2000,
                production: 15,
                level: 0,
                maxLevel: 5,
                icon: 'fa-infinity',
                color: 'from-orange-400 to-red-500'
            },
            {
                id: 'timeWarpDevice',
                name: '时空扭曲装置',
                description: '操控时间流速',
                baseCost: 5000,
                production: 25,
                level: 0,
                maxLevel: 8,
                icon: 'fa-clock',
                color: 'from-indigo-400 to-purple-500'
            },
            {
                id: 'multiverseConnector',
                name: '多元宇宙连接器',
                description: '连接平行宇宙',
                baseCost: 15000,
                production: 60,
                level: 0,
                maxLevel: 5,
                icon: 'fa-globe-americas',
                color: 'from-teal-400 to-cyan-500'
            },
            {
                id: 'darkMatterExtractor',
                name: '暗物质提取器',
                description: '提取暗物质能量',
                baseCost: 50000,
                production: 150,
                level: 0,
                maxLevel: 3,
                icon: 'fa-meteor',
                color: 'from-gray-400 to-blue-500'
            },
            {
                id: 'energyDuplicationMatrix',
                name: '能量复制矩阵',
                description: '复制现有能量',
                baseCost: 100000,
                production: 300,
                level: 0,
                maxLevel: 2,
                icon: 'fa-copy',
                color: 'from-yellow-400 to-orange-500'
            },
            {
                id: 'ultimateSingularityEngine',
                name: '终极奇点引擎',
                description: '宇宙终极能源',
                baseCost: 500000,
                production: 1000,
                level: 0,
                maxLevel: 1,
                icon: 'fa-star',
                color: 'from-red-400 to-pink-500'
            }
        ];

        // 成就系统
        this.achievements = [
            { 
                id: 'first_million', 
                name: '百万富翁', 
                description: '累计收集100万能量',
                target: 1000000, 
                unlocked: false,
                icon: 'fa-money-bill-wave'
            },
            { 
                id: 'click_master', 
                name: '点击达人', 
                description: '完成1万次点击',
                target: 10000, 
                unlocked: false,
                icon: 'fa-mouse-pointer'
            },
            { 
                id: 'upgrade_expert', 
                name: '升级专家', 
                description: '总升级等级达到50级',
                target: 50, 
                unlocked: false,
                icon: 'fa-cogs'
            },
            { 
                id: 'automation_king', 
                name: '自动化之王', 
                description: '每秒产量达到100',
                target: 100, 
                unlocked: false,
                icon: 'fa-crown'
            },
            { 
                id: 'speed_demon', 
                name: '速度恶魔', 
                description: '每秒产量达到500',
                target: 500, 
                unlocked: false,
                icon: 'fa-bolt'
            }
        ];

        // 科技树
        this.techTree = [
            {
                id: 'basic_automation',
                name: '基础自动化',
                description: '解锁基础自动化设备',
                requirements: [],
                unlocked: false,
                effects: ['自动点击器基础产量+1']
            },
            {
                id: 'energy_efficiency',
                name: '能源效率',
                description: '提升所有设备能源利用效率',
                requirements: ['basic_automation'],
                unlocked: false,
                effects: ['所有设备产量提升20%']
            },
            {
                id: 'quantum_technology',
                name: '量子技术',
                description: '解锁高级量子设备',
                requirements: ['energy_efficiency'],
                unlocked: false,
                effects: ['量子反应堆效率提升50%']
            }
        ];

        this.activeEvents = [];
        this.eventChance = 0.01;
        this.tempDisabledUpgrade = null;

        this.init();
    }

    init() {
        this.loadGame();
        this.setupEventListeners();
        this.renderAllSections();
        this.startGameLoop();
        this.updateDisplay();
    }

    setupEventListeners() {
        const energyCore = document.getElementById('energyCore');
        energyCore.addEventListener('click', () => this.collectEnergy());

        document.getElementById('saveGame').addEventListener('click', () => this.saveGame());

        document.getElementById('resetGame').addEventListener('click', () => {
            if (confirm('确定要重置游戏吗?所有进度都将丢失!')) {
                this.resetGame();
            }
        });
    }

    collectEnergy() {
        this.energy += this.energyPerClick;
        this.totalCollected += this.energyPerClick;
        this.totalClicks++;
        
        this.showClickEffect();
        this.checkAchievements();
        this.updateDisplay();
    }

    showClickEffect() {
        const clickValue = document.getElementById('clickValue');
        clickValue.textContent = '+' + this.energyPerClick;
        clickValue.style.opacity = '1';
        clickValue.style.transform = 'translateY(0)';
        
        this.createParticles();
        
        setTimeout(() => {
            clickValue.style.opacity = '0';
            clickValue.style.transform = 'translateY(-20px)';
        }, 1000);
    }

    createParticles() {
        const energyCore = document.getElementById('energyCore');
        const rect = energyCore.getBoundingClientRect();
        const centerX = rect.left + rect.width / 2;
        const centerY = rect.top + rect.height / 2;

        for (let i = 0; i < 5; i++) {
            const particle = document.createElement('div');
            particle.className = 'particle';
            particle.style.left = centerX + 'px';
            particle.style.top = centerY + 'px';
            
            const angle = Math.random() * Math.PI * 2;
            const distance = 50 + Math.random() * 100;
            const targetX = centerX + Math.cos(angle) * distance;
            const targetY = centerY + Math.sin(angle) * distance;
            
            document.body.appendChild(particle);
            
            setTimeout(() => {
                particle.style.transition = 'all 0.8s ease-out';
                particle.style.left = targetX + 'px';
                particle.style.top = targetY + 'px';
                particle.style.opacity = '0';
            }, 10);
            
            setTimeout(() => {
                particle.remove();
            }, 1000);
        }
    }

    buyUpgrade(upgradeId) {
        const upgrade = this.upgrades.find(u => u.id === upgradeId);
        if (!upgrade || upgrade.level >= upgrade.maxLevel) return;

        const cost = this.calculateUpgradeCost(upgrade);
        if (this.energy >= cost) {
            this.energy -= cost;
            upgrade.level++;
            this.calculateEnergyPerSecond();
            this.updateDisplay();
            this.renderUpgrades();
            this.checkAchievements();
        }
    }

    calculateUpgradeCost(upgrade) {
        return Math.floor(upgrade.baseCost * Math.pow(1.5, upgrade.level));
    }

    calculateEnergyPerSecond() {
        this.energyPerSecond = this.upgrades.reduce((total, upgrade) => {
                return total + (upgrade.level * upgrade.production);
            }, 0);

        if (this.energyPerSecond > this.highestProduction) {
            this.highestProduction = this.energyPerSecond;
        }
    }

    startGameLoop() {
        setInterval(() => {
            this.energy += this.energyPerSecond / 10;
            this.totalCollected += this.energyPerSecond / 10;
            this.updateDisplay();
            this.checkRandomEvents();
        }, 100);
    }

    checkRandomEvents() {
        if (Math.random() < this.eventChance) {
            this.triggerRandomEvent();
        }
    }

    triggerRandomEvent() {
        const events = [
            {
                name: '能量风暴',
                duration: 30000,
                effect: () => { this.energyPerSecond *= 2; },
                cleanup: () => { this.energyPerSecond /= 2; }
            },
            {
                name: '设备故障',
                duration: 15000,
                effect: () => { 
                    const randomUpgrade = this.upgrades[Math.floor(Math.random() * this.upgrades.length)];
                    this.tempDisabledUpgrade = randomUpgrade.id;
                },
                cleanup: () => {
                    this.tempDisabledUpgrade = null;
                }
            }
        ];

        const event = events[Math.floor(Math.random() * events.length)];
        this.activateEvent(event);
    }

    activateEvent(event) {
        this.activeEvents.push(event);
        event.effect();
        
        this.showNotification('随机事件:' + event.name + '!');
        
        setTimeout(() => {
            event.cleanup();
            this.activeEvents = this.activeEvents.filter(e => e !== event);
        }, event.duration);
    }

    checkAchievements() {
        this.achievements.forEach(achievement => {
            if (!achievement.unlocked) {
                let conditionMet = false;
                
                switch(achievement.id) {
                    case 'first_million':
                        conditionMet = this.totalCollected >= achievement.target;
                        break;
                    case 'click_master':
                        conditionMet = this.totalClicks >= achievement.target;
                        break;
                    case 'upgrade_expert':
                        const totalUpgradeLevels = this.upgrades.reduce((sum, upgrade) => sum + upgrade.level, 0);
                        conditionMet = totalUpgradeLevels >= achievement.target;
                        break;
                    case 'automation_king':
                        conditionMet = this.energyPerSecond >= achievement.target;
                        break;
                    case 'speed_demon':
                        conditionMet = this.energyPerSecond >= achievement.target;
                        break;
                }

                if (conditionMet) {
                    achievement.unlocked = true;
                    this.showNotification('成就解锁:' + achievement.name + '!');
                    this.renderAchievements();
                }
            }
        });
    }

    getAchievementProgress(achievement) {
        let current = 0;
        
        switch(achievement.id) {
            case 'first_million':
                current = this.totalCollected;
                break;
            case 'click_master':
                current = this.totalClicks;
                break;
            case 'upgrade_expert':
                current = this.upgrades.reduce((sum, upgrade) => sum + upgrade.level, 0);
                break;
            case 'automation_king':
                current = this.energyPerSecond;
                break;
            case 'speed_demon':
                current = this.energyPerSecond;
                break;
        }
        
        return Math.min(100, Math.floor((current / achievement.target) * 100));
    }

    updateDisplay() {
        document.getElementById('energyCount').textContent = Math.floor(this.energy).toLocaleString();
        document.getElementById('energyPerSecond').textContent = this.energyPerSecond.toFixed(1);
        document.getElementById('totalCollected').textContent = Math.floor(this.totalCollected).toLocaleString();
        document.getElementById('totalClicks').textContent = this.totalClicks.toLocaleString();
        document.getElementById('highestProduction').textContent = this.highestProduction.toFixed(1) + '/秒';
        document.getElementById('totalUpgrades').textContent = this.upgrades.reduce((sum, upgrade) => sum + upgrade.level, 0);
        this.updateGameTime();
    }

    updateGameTime() {
        const elapsed = Date.now() - this.gameStartTime;
        const hours = Math.floor(elapsed / 3600000);
        const minutes = Math.floor((elapsed % 3600000) / 60000);
        const seconds = Math.floor((elapsed % 60000) / 1000);
        
        document.getElementById('gameTime').textContent = 
            hours.toString().padStart(2, '0') + ':' + 
            minutes.toString().padStart(2, '0') + ':' + 
            seconds.toString().padStart(2, '0');
    }

    renderAllSections() {
        this.renderUpgrades();
        this.renderAchievements();
        this.renderTechTree();
    }

    renderUpgrades() {
        const upgradesGrid = document.getElementById('upgradesGrid');
        upgradesGrid.innerHTML = '';

        this.upgrades.forEach(upgrade => {
            const cost = this.calculateUpgradeCost(upgrade);
            const canAfford = this.energy >= cost;
            const isMaxed = upgrade.level >= upgrade.maxLevel;

            const upgradeElement = document.createElement('div');
            upgradeElement.className = 'bg-gradient-to-r ' + upgrade.color + ' rounded-xl p-4 cursor-pointer transition-all duration-300 hover:scale-105 active:scale-95';
            if (upgrade.level > 0) upgradeElement.classList.add('ring-2', 'ring-white');
            if (isMaxed) upgradeElement.classList.add('opacity-50');

            upgradeElement.innerHTML = `
                <div class="flex items-center justify-between mb-2">
                    <i class="${upgrade.icon} text-2xl text-white"></i>
                    <span class="text-white font-bold">${upgrade.name}</span>
                    <span class="text-white/80 text-sm">Lv.${upgrade.level}/${upgrade.maxLevel}</span>
                </div>
                <div class="text-white/90 text-sm mb-2">${upgrade.description}</div>
                <div class="flex justify-between items-center">
                    <span class="text-white font-semibold">+${upgrade.production}/秒</span>
                <span class="text-white/80 text-sm">${isMaxed ? '已满级' : cost.toLocaleString() + ' 能量'}</span>
                </div>
            `;

            if (!isMaxed) {
                upgradeElement.addEventListener('click', () => this.buyUpgrade(upgrade.id));
            }

            if (!canAfford && !isMaxed) {
                upgradeElement.classList.add('opacity-50');
            }

            upgradesGrid.appendChild(upgradeElement);
        });
    }

    renderAchievements() {
        const achievementsGrid = document.getElementById('achievementsGrid');
        if (!achievementsGrid) return;

        achievementsGrid.innerHTML = this.achievements.map(achievement => `
                <div class="bg-gradient-to-r from-blue-400 to-purple-500 rounded-xl p-4 transition-all duration-300 ${achievement.unlocked ? 'ring-2 ring-green-400' : ''}">
                    <div class="flex items-center gap-3 mb-2">
                        <i class="${achievement.icon} text-2xl ${achievement.unlocked ? 'text-yellow-400' : 'text-gray-400'}"></i>
                        <div class="flex-1">
                            <h4 class="font-bold ${achievement.unlocked ? 'text-white' : 'text-gray-600'}">${achievement.name}</h4>
                            <p class="text-sm ${achievement.unlocked ? 'text-white/90' : 'text-gray-500'}">${achievement.description}</p>
                        </div>
                    </div>
                    <div class="flex items-center justify-between">
                        <div class="w-full bg-gray-700 rounded-full h-2">
                            <div class="bg-green-400 h-2 rounded-full" style="width: ${this.getAchievementProgress(achievement)}%"></div>
                        </div>
                        <span class="text-sm ${achievement.unlocked ? 'text-white' : 'text-gray-500'}" id="progress-${achievement.id}"></div>
                    </div>
                </div>
            `).join('');
    }

    renderTechTree() {
        const techTreeElement = document.getElementById('techTree');
        if (!techTreeElement) return;

        techTreeElement.innerHTML = this.techTree.map(tech => `
                <div class="bg-gradient-to-r from-indigo-400 to-purple-500 rounded-xl p-4 text-center transition-all duration-300 ${tech.unlocked ? 'ring-2 ring-yellow-400' : 'opacity-50'}">
                    <h4 class="font-bold text-white mb-2">${tech.name}</h4>
                    <p class="text-white/80 text-sm mb-3">${tech.description}</p>
                    <div class="space-y-1">
                        ${tech.effects.map(effect => `<span class="text-white/70 text-xs block">${effect}</span>`).join('')}
                </div>
            `).join('');
    }

    saveGame() {
        const gameData = {
            energy: this.energy,
            totalCollected: this.totalCollected,
            totalClicks: this.totalClicks,
            upgrades: this.upgrades,
            achievements: this.achievements,
            techTree: this.techTree,
            gameStartTime: this.gameStartTime,
            highestProduction: this.highestProduction
        };

        localStorage.setItem('energyCoreGame', JSON.stringify(gameData));
        
        this.showNotification('游戏进度已保存!');
    }

    loadGame() {
        const savedData = localStorage.getItem('energyCoreGame');
        if (savedData) {
            const gameData = JSON.parse(savedData);
            
            this.energy = gameData.energy || 0;
            this.totalCollected = gameData.totalCollected || 0;
            this.totalClicks = gameData.totalClicks || 0;
            this.upgrades = gameData.upgrades || this.upgrades;
            this.achievements = gameData.achievements || this.achievements;
            this.techTree = gameData.techTree || this.techTree;
            this.gameStartTime = gameData.gameStartTime || Date.now();
            this.highestProduction = gameData.highestProduction || 0;
            
            this.calculateEnergyPerSecond();
        }
    }

    resetGame() {
        this.energy = 0;
        this.totalCollected = 0;
            this.totalClicks = 0;
        this.energyPerSecond = 0;
        this.gameStartTime = Date.now();
        this.highestProduction = 0;
        
        this.upgrades.forEach(upgrade => {
            upgrade.level = 0;
        });
        
        this.achievements.forEach(achievement => {
            achievement.unlocked = false;
        });
        
        this.techTree.forEach(tech => {
            tech.unlocked = false;
        });
        
        localStorage.removeItem('energyCoreGame');
        this.updateDisplay();
        this.renderAllSections();
        
        this.showNotification('游戏已重置!');
    }

    showNotification(message) {
        const notification = document.createElement('div');
        notification.className = 'fixed top-4 right-4 bg-gradient-to-r from-green-500 to-emerald-600 text-white px-6 py-3 rounded-xl font-bold shadow-2xl z-50 animate-float';
        
        notification.textContent = message;
        document.body.appendChild(notification);
        
        setTimeout(() => {
            notification.remove();
        }, 3000);
    }
}

// 初始化游戏
document.addEventListener('DOMContentLoaded', () => {
    new EnergyCoreGame();
});
</script>
</body>
</html>
<code_end>
这个HTML文件整合了完整的能量核心收集游戏,包含点击收集、自动化升级、成就系统、科技树发展和随机事件等丰富功能。游戏采用现代化UI设计,具有响应式布局,支持数据持久化保存。