# NULL DEPTH — technická architektúra ## Stack - Blazor WebAssembly standalone - .NET 10 / C# - HTML/CSS fullscreen UI - JSON obsah bez backendu a databázy - browser localStorage pre save a settings ## Princíp C# obsahuje iba všeobecný engine. Herný obsah je dátový: ```text Input / kliknutie → GameService → zmena GameState → autosave → Razor znovu vykreslí miestnosť ``` ## Súbory ```text Game/GameService.cs načítanie dát, pohyb, flagy, save Models/GameModels.cs dátové modely Pages/Home.razor fullscreen obrazovky a overlaye wwwroot/data/game.json celý level a gameplay obsah wwwroot/localization/sk.json slovenské texty wwwroot/localization/en.json anglické texty wwwroot/assets/images/... title a miestnosti wwwroot/assets/audio/... ambience a SFX sloty ``` ## RoomDefinition Každá miestnosť má ID, lokalizačné kľúče, súradnice, obraz, voliteľný alternatívny obraz, exits a interakcie. Exit môže vyžadovať flagy a mať lokalizovanú správu pri zamknutí. Interakcia môže: - vyžadovať alebo zakazovať flagy - nastaviť flagy - pridať predmet - vytvoriť checkpoint - ponúknuť dátové voľby - spustiť smrť alebo ending ## GameState Ukladá aktuálnu miestnosť, navštívené miestnosti, flagy, inventár, checkpoint a čas uloženia. Save používa kľúč `null-depth.save.v1`; settings používajú `null-depth.settings.v1`. ## Rozšírenie hry Pri pridaní miestnosti stačí: 1. doplniť objekt do `wwwroot/data/game.json`, 2. doplniť `nameKey`, `descriptionKey` a texty interakcií do oboch lokalizácií, 3. uložiť 16:9 obraz pod cestu uvedenú v `image`, 4. pridať exit z existujúcej miestnosti. Zásah do C# alebo Razor kódu nie je potrebný.