Files
novafarma/index.html
David Kotnik d5b0046985 🎥 Jan 8 ULTIMATE PROLOGUE - 100% Polished Cinematic Intro
 COMPLETE INTRO SYSTEM - PRODUCTION READY:

**🌍 MULTILINGUAL SUPPORT:**
- English (JennyNeural + RyanNeural)
- Slovenian (PetraNeural + RokNeural)
- 10 voice files total (5 per language)
- Language auto-detected from settings

**🎙️ FILM-QUALITY VOICES:**
Generated via Edge TTS with cinematic pacing:
- EN: JennyNeural (Kai) - Warm, emotional female
- EN: RyanNeural (Narrator) - Deep, mysterious British male
- SL: PetraNeural (Kai) - Slovenian female
- SL: RokNeural (Narrator) - Slovenian male

Voice files (per language):
1. 01_breathing.mp3 (~5-7s) - Confusion in darkness
2. 02_flyover.mp3 (~15-18s) - World narration
3. 03_awakening.mp3 (~6-8s) - Awakening confused
4. 04_id_card.mp3 (~12-15s) - Reading ID, recognition
5. 05_determination.mp3 (~10-12s) - Promise to find Ana

**🎬 ULTIMATE PROLOGUE SCENE:**
5 phases, ~70 seconds total:

Phase 1 (0:00-0:07): Black screen + breathing
Phase 2 (0:07-0:25): Narrator flyover
Phase 3 (0:25-0:40): Awakening in cellar (blur effect)
Phase 4 (0:40-0:58): ID card → twin photo cross-fade
Phase 5 (0:58-1:10): Determination + quest trigger → Game

**🎯 FEATURES:**
 Pure cinematic mode (NO HUD, NO UI, only story)
 Frame-perfect subtitle synchronization
 Adaptive subtitle timing (based on speech length)
 Smooth cross-fade transitions
 Blur effect (vision clearing)
 Emotional camera effects (flash, zoom)
 Quest notification integration
 ESC to skip functionality
 Noir ambient music (low volume, atmospheric)

**📊 SUBTITLE SYNC SYSTEM:**
- Auto-calculated read time (50ms per character)
- Minimum 3s display time
- Voice-synced appearance/disappearance
- Split long text for readability
- Bottom-center with safe margins
- Shadow + stroke for legibility

**📝 SCRIPTS:**
- generate_intro_multilingual.py - Dual language generation
- Timing metadata for perfect subtitle sync

**🎨 INTEGRATION:**
- Added to index.html + game.js
- StoryScene launches UltimatePrologueScene on New Game
- Language selection via i18n system
- Fallback to English if language not set

**STATUS: 100% PRODUCTION READY** 🎉
**Total intro duration: ~70 seconds**
**Multilingual: EN + SL **
**Cinematic quality: Film-grade **

🎥 **INTRO IS POLISHED TO PERFECTION!**
2026-01-08 17:46:25 +01:00

259 lines
15 KiB
HTML

<!DOCTYPE html>
<html lang="sl">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<!-- Suppress Electron Security Warning for Dev -->
<meta http-equiv="Content-Security-Policy"
content="script-src 'self' 'unsafe-inline' 'unsafe-eval' blob: data:; object-src 'self';">
<title>Mrtva Dolina - Death Valley</title>
<style>
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
body {
background: #000;
overflow: hidden;
font-family: 'Courier New', monospace;
}
#game-container {
display: flex;
justify-content: center;
align-items: center;
width: 100vw;
height: 100vh;
image-rendering: -moz-crisp-edges;
image-rendering: -webkit-crisp-edges;
image-rendering: pixelated;
image-rendering: crisp-edges;
}
canvas {
image-rendering: -moz-crisp-edges;
image-rendering: -webkit-crisp-edges;
image-rendering: pixelated;
image-rendering: crisp-edges;
}
</style>
</head>
<body>
<div id="game-container"></div>
<div id="debug-console"
style="position: fixed; top: 0; left: 0; color: red; pointer-events: none; z-index: 9999; white-space: pre-wrap;">
</div>
<script>
window.onerror = function (msg, url, lineNo, columnNo, error) {
const container = document.getElementById('debug-console');
if (container) {
container.innerHTML += `ERROR: ${msg}\nAt: ${url}:${lineNo}:${columnNo}\n\n`;
}
console.error('Global Error:', msg, url, lineNo, error);
return false;
};
</script>
<!-- Phaser 3 -->
<script src="node_modules/phaser/dist/phaser.js"></script>
<!-- UI Theme -->
<script src="src/ui/UITheme.js"></script>
<script src="src/ui/UIHelpers.js"></script>
<script src="src/ui/WeatherUI.js"></script> <!-- Weather Control Panel -->
<!-- Utilities -->
<script src="src/utils/PerlinNoise.js"></script>
<script src="src/utils/IsometricUtils.js"></script>
<script src="src/utils/TextureGenerator.js"></script>
<script src="src/utils/ObjectPool.js"></script>
<script src="src/utils/SpatialGrid.js"></script>
<script src="src/utils/Pathfinding.js"></script>
<script src="src/utils/Compression.js"></script>
<script src="src/utils/PerformanceMonitor.js"></script>
<script src="src/utils/IntegrationTests.js"></script>
<!-- Data -->
<script src="src/data/CraftingRecipes.js"></script>
<script src="src/data/Act1QuestData.js"></script> <!-- 📖 Act 1 Quests -->
<script src="src/data/GrokDialogues.js"></script> <!-- 💬 Grok NPC Dialogues -->
<!-- Systems -->
<script src="src/systems/TerrainSystem.js"></script>
<script src="src/systems/FarmingSystem.js"></script>
<script src="src/systems/BuildSystem.js"></script>
<script src="src/systems/Antigravity.js"></script>
<script src="src/systems/PathfindingSystem.js"></script>
<script src="src/systems/SaveSystem.js"></script>
<script src="src/systems/SaveManager.js"></script>
<!-- TimeSystem merged into WeatherSystem -->
<script src="src/systems/StatsSystem.js"></script>
<script src="src/systems/InventorySystem.js"></script>
<script src="src/utils/GlobalInventoryHelper.js"></script> <!-- Global inventory helper -->
<script src="src/systems/LootSystem.js"></script>
<script src="src/systems/InteractionSystem.js"></script>
<script src="src/utils/InventoryIcons.js"></script> <!-- 2D Flat Icons -->
<script src="src/systems/BuildingSystem.js"></script>
<script src="src/systems/WeatherSystem.js"></script>
<script src="src/systems/LightingSystem.js"></script> <!-- 💡 Lighting & Shadows -->
<script src="src/systems/WeatherEnhancementsSystem.js"></script> <!-- 🌬️ Weather Enhancements -->
<script src="src/systems/UIPolishSystem.js"></script> <!-- 🎨 UI Polish -->
<script src="src/systems/BiomeSystem.js"></script> <!-- 🌍 Phase 28: Biomes -->
<script src="src/systems/ChunkManager.js"></script> <!-- 💾 Phase 28: Chunk Loading -->
<script src="src/systems/TransitionSystem.js"></script> <!-- 🌈 Phase 28: Smooth Transitions -->
<script src="src/systems/RiverSystem.js"></script> <!-- 🌊 Phase 28: Rivers -->
<script src="src/systems/LakeSystem.js"></script> <!-- 🏞️ Phase 28: Lakes -->
<script src="src/systems/StructureSystem.js"></script> <!-- 🏛️ Phase 28: Structures & Roads -->
<script src="src/systems/StructureInteractionSystem.js"></script> <!-- 🏛️ Phase 29: Interactions -->
<script src="src/systems/NPCPopulationSystem.js"></script> <!-- 👥 Phase 29: NPCs -->
<script src="src/systems/BiomeEnemySystem.js"></script> <!-- 👹 Phase 29: Enemies -->
<script src="src/systems/LandmarkQuestSystem.js"></script> <!-- 📜 Phase 29: Quests -->
<script src="src/systems/MapRevealSystem.js"></script> <!-- 🗺️ Phase 29: Map -->
<script src="src/systems/WorldEventSystem.js"></script>
<script src="src/systems/QuestSystem.js"></script>
<script src="src/systems/QuestSystemExpanded.js"></script> <!-- 📖 Act 1 Quest System -->
<script src="src/ui/QuestTrackerUI.js"></script> <!-- 📋 Quest Tracker UI -->
<!-- DayNightSystem merged into WeatherSystem -->
<script src="src/systems/SoundManager.js"></script>
<script src="src/systems/ParallaxSystem.js"></script>
<script src="src/systems/ParticleEffects.js"></script>
<script src="src/systems/ParticleEnhancementsSystem.js"></script> <!-- ✨ Enhanced Particles -->
<!-- New Conceptual Systems -->
<script src="src/systems/ZombieWorkerSystem.js"></script>
<script src="src/systems/LegacySystem.js"></script>
<script src="src/systems/ExpansionSystem.js"></script>
<script src="src/systems/BlueprintSystem.js"></script>
<script src="src/systems/CollectionSystem.js"></script>
<script src="src/systems/HybridSkillSystem.js"></script>
<script src="src/systems/DialogueSystem.js"></script> <!-- 💬 NPC Conversations -->
<script src="src/systems/VoiceoverSystem.js"></script> <!-- 🎤 Ana's Voice & Flashbacks -->
<script src="src/systems/TwinBondSystem.js"></script> <!-- 💞 Twin Bond (Kai ↔ Ana) -->
<script src="src/systems/OceanSystem.js"></script>
<script src="src/systems/VisualEffectsSystem.js"></script>
<script src="src/systems/PlaytimeTrackerSystem.js"></script>
<script src="src/systems/LocalizationSystem.js"></script>
<script src="src/utils/FPSMonitor.js"></script>
<script src="src/systems/PerennialCropSystem.js"></script>
<script src="src/systems/MountSystem.js"></script>
<script src="src/systems/SteamIntegrationSystem.js"></script>
<script src="src/systems/AchievementTriggers.js"></script>
<script src="src/systems/StarterChestSystem.js"></script>
<script src="src/systems/GemDropSystem.js"></script>
<script src="src/systems/StatusEffectSystem.js"></script> <!-- 🌈 Status Effects -->
<!-- Multiplayer -->
<!-- <script src="https://cdn.socket.io/4.7.2/socket.io.min.js"></script> -->
<script src="src/systems/MultiplayerSystem.js"></script>
<script src="src/systems/GraveSystem.js"></script> <!-- Grave/Rest System -->
<script src="src/systems/ScooterRepairSystem.js"></script> <!-- Scooter Repair -->
<script src="src/systems/WorkstationSystem.js"></script> <!-- Furnaces & Machines -->
<script src="src/systems/NPCSpawner.js"></script> <!-- NPC Spawner -->
<script src="src/systems/AccessibilitySystem.js"></script> <!-- Accessibility Features -->
<script src="src/systems/VisualSoundCueSystem.js"></script> <!-- Visual Sound Cues (Deaf/HoH) -->
<script src="src/systems/InputRemappingSystem.js"></script> <!-- Input Remapping (Keyboard/Controller) -->
<script src="src/systems/ScreenReaderSystem.js"></script> <!-- Screen Reader (Blind/VI) -->
<script src="src/systems/DyslexiaSupportSystem.js"></script> <!-- Dyslexia Support -->
<script src="src/systems/ADHDAutismSupportSystem.js"></script> <!-- ADHD/Autism Support -->
<script src="src/systems/MotorAccessibilitySystem.js"></script> <!-- Motor Accessibility -->
<script src="src/systems/VisualEnhancementSystem.js"></script> <!-- Visual Enhancements -->
<script src="src/systems/FogOfWarSystem.js"></script> <!-- Fog of War -->
<script src="src/systems/UIGraphicsSystem.js"></script> <!-- UI Graphics & Achievements -->
<script src="src/systems/BuildingVisualsSystem.js"></script> <!-- Building Animations & Genetics -->
<script src="src/systems/SkillTreeSystem.js"></script> <!-- Skill Tree & Progression -->
<script src="src/systems/CraftingTiersSystem.js"></script> <!-- Crafting Tiers & Tools -->
<script src="src/systems/FarmAutomationSystem.js"></script> <!-- Farm Automation & Workers -->
<script src="src/systems/AnimalBreedingSystem.js"></script> <!-- Animal Breeding & Genetics -->
<script src="src/systems/AutomationTierSystem.js"></script> <!-- Automation Tiers -->
<script src="src/systems/BreedingUISystem.js"></script> <!-- Breeding UI & Family Tree -->
<script src="src/systems/CookingSystem.js"></script> <!-- Cooking & Recipes -->
<script src="src/systems/FishingSystem.js"></script> <!-- Fishing & Minigame -->
<script src="src/systems/WorkerCreaturesSystem.js"></script> <!-- Worker Creatures -->
<script src="src/systems/MiningDungeonsSystem.js"></script> <!-- Mining & Dungeons -->
<script src="src/systems/BossBattlesSystem.js"></script> <!-- Boss Battles -->
<script src="src/systems/StoryQuestSystem.js"></script> <!-- Story & Quests -->
<script src="src/systems/MultiplayerSocialSystem.js"></script> <!-- Multiplayer & Social -->
<script src="src/systems/TechnicalPerformanceSystem.js"></script> <!-- Technical & Performance -->
<script src="src/systems/PlatformSupportSystem.js"></script> <!-- Platform Support -->
<script src="src/systems/SaveSystemExpansion.js"></script> <!-- Save System Expansion -->
<script src="src/systems/CentralPopupSystem.js"></script> <!-- Central Popup System -->
<script src="src/systems/TutorialSystem.js"></script> <!-- Tutorial System -->
<script src="src/systems/UnifiedStatsPanel.js"></script> <!-- Unified Stats Panel -->
<script src="src/systems/FullInventoryUI.js"></script> <!-- Full Inventory UI (I key) -->
<script src="src/systems/CameraSystem.js"></script> <!-- Camera System (Trailer/Screenshots) -->
<!-- 🎨 2D FLAT CONVERSION -->
<script src="data/map2d_data.js"></script>
<script src="src/systems/Flat2DTerrainSystem.js"></script>
<script src="src/systems/MicroFarmSystem.js"></script> <!-- PHASE 37 -->
<script src="src/systems/MintingSystem.js"></script> <!-- PHASE 40 -->
<!-- Entities -->
<script src="src/entities/Player.js"></script>
<script src="src/entities/NPC.js"></script>
<script src="src/entities/Boss.js"></script>
<script src="src/entities/Scooter.js"></script>
<script src="src/entities/LootChest.js"></script>
<script src="src/entities/ZombieSpawner.js"></script>
<script src="src/scenes/BootScene.js"></script>
<script src="src/scenes/PreloadScene.js"></script>
<script src="src/scenes/DemoScene.js"></script> <!-- 🎮 DEMO SCENE -->
<script src="src/scenes/DemoSceneEnhanced.js"></script> <!-- ✨ ENHANCED DEMO with Locket! -->
<script src="src/scenes/TiledTestScene.js"></script> <!-- 🗺️ Tiled Map Test Scene -->
<!-- ⚠️ TEMPORARILY DISABLED - Missing assets (prologue.json, NPC portraits) -->
<script src="src/scenes/PrologueScene.js"></script><!-- 🎬 Story Prologue -->
<script src="src/scenes/EnhancedPrologueScene.js"></script><!-- ✨ ENHANCED Cinematic Intro -->
<script src="src/scenes/UltimatePrologueScene.js"></script><!-- 🎥 ULTIMATE 100% Polished Intro -->
<script src="src/scenes/UIScene.js"></script>
<script src="src/scenes/StoryScene.js"></script>
<script src="src/scenes/TownSquareScene.js"></script>
<!-- 🛠️ CRAFTING SYSTEM -->
<script src="src/systems/CraftingSystem.js"></script>
<script src="src/ui/CraftingUI.js"></script>
<!-- 🆕 NEW SYSTEMS (P16-P30) - 23.12.2025 -->
<script src="src/systems/MiningSystem.js"></script> <!-- ⛏️ P16: 5 Mines, 315 levels -->
<script src="src/systems/CharacterCustomizationSystem.js"></script> <!-- 👤 P17: Gender, RGB colors -->
<script src="src/systems/TownRestorationSystem.js"></script> <!-- 🏘️ P19: 27 towns, 180 NPCs -->
<script src="src/systems/PortalRepairSystem.js"></script> <!-- 🌀 P20: 18 portals -->
<script src="src/systems/SmartZombieSystem.js"></script> <!-- 🧠 P22: Lv1-10 AI -->
<script src="src/systems/ToolSystem.js"></script> <!-- 🔧 P23: 6 tiers, durability -->
<script src="src/systems/AnaClueSystem.js"></script> <!-- 💜 P25: 50 collectibles -->
<script src="src/systems/PyramidSystem.js"></script> <!-- 🏜️ P26: Pyramids, Sphinx -->
<script src="src/systems/SlimesDogsSystem.js"></script> <!-- 🟢🐶 P27: 8 slimes, dog -->
<script src="src/systems/AnimalsSeedsSystem.js"></script> <!-- 🐄🌱 P28: 16+ animals, 100+ seeds -->
<script src="src/systems/AutomationSystem.js"></script> <!-- ⚙️ P29: Full automation -->
<script src="src/systems/InventorySystemExpanded.js"></script> <!-- 🎒 P30: 50 slots -->
<!-- 🆕 JAN 04 SYSTEMS - New Game Mechanics -->
<script src="src/systems/SleepSystem.js"></script> <!-- 💤 Sleep & Energy -->
<script src="src/systems/CraftingTablesSystem.js"></script> <!-- 🔨 Crafting Tables -->
<script src="src/systems/BakeryShopSystem.js"></script> <!-- 🥖 Bakery Shop -->
<script src="src/systems/BarberShopSystem.js"></script> <!-- 💈 Barber Shop -->
<script src="src/systems/LawyerOfficeSystem.js"></script> <!-- ⚖️ Lawyer Office -->
<script src="src/systems/ZombieMinerAutomationSystem.js"></script> <!-- ⛏️ Zombie Miners -->
<script src="src/systems/TownGrowthSystem.js"></script> <!-- 🏘️ Town Growth -->
<script src="src/systems/NPCPrivacySystem.js"></script> <!-- 🏠 NPC Privacy -->
<script src="src/systems/MasterGameSystemsManager.js"></script> <!-- 🎮 Master Coordinator -->
<!-- 🧪 TEST SCENE -->
<script src="src/scenes/SystemsTestScene.js"></script>
<!-- 🎵 NEW AUDIO SYSTEMS - JAN 8 2026 -->
<script src="src/systems/BiomeMusicSystem.js"></script> <!-- Background music cross-fade -->
<script src="src/systems/AudioTriggerSystem.js"></script> <!-- Spatial audio triggers -->
<script src="src/scenes/TestVisualAudioScene.js"></script> <!-- Visual & Audio Test Scene -->
<script src="src/scenes/GameScene.js"></script>
<script src="src/game.js"></script>
</body>
</html>