# 🌊 Sesija: Ribnik & Sound System - 12. December 2025 ## 📋 Povzetek Sesije ### 🎯 Glavni Dosežki #### 1. **Ribnik z Animirano Vodo** 🌊 - ✅ **Lokacija:** (30, 30) - okrogel ribnik (radij 4 tiles) - ✅ **2D Stardew Valley stil** - flat top-down namesto 3D isometric - ✅ **Temno modra barva** (0x0a3d62 → 0x1e5f8c) - dobro vidna! - ✅ **Alpha tween animacija** - valovanje (0.7 ↔ 1.0, 1 sekunda) - ✅ **Gradient + highlights** - svetli krogi za valovanje #### 2. **Dežne Kapljice** 🌧️ - ✅ **Rain particles** - padajo v ribnik - ✅ **10 kapljic/sekundo** (frequency: 100ms) - ✅ **Modre kapljice** (0x4488ff) - ✅ **Fade efekt** - alpha 0.8 → 0.3 - ✅ **ADD blend mode** - svetleči efekt #### 3. **Sound System** 🎵 - ✅ **Ambient music** - C Minor Pentatonic scale - ✅ **Rain sound** - white noise nad ribnikom - ✅ **SFX ready** - dig, plant, harvest, build, chop, pickup - ✅ **Proceduralni zvoki** - Web Audio API oscillators #### 4. **Čista Mapa** 🟢 - ✅ **Brez dreves** (TREE_DENSITY = 0%) - ✅ **Brez hiš** (ABANDONED_HOUSES = []) - ✅ **Brez dekoracij** (grmički, rože, skale = 0%) - ✅ **SaveSystem onemogočen** - fresh start --- ## 🔧 Ključne Spremembe ### **TerrainSystem.js** **1. Ribnik Generiranje:** ```javascript // Konstante const POND_CENTER_X = 30; const POND_CENTER_Y = 30; const POND_RADIUS = 4; // Generiranje const distToPond = Math.sqrt( Math.pow(x - POND_CENTER_X, 2) + Math.pow(y - POND_CENTER_Y, 2) ); if (distToPond <= POND_RADIUS) { terrainType = this.terrainTypes.WATER; } ``` **2. 2D Water Texture:** ```javascript // Temna modra voda waterGraphics.fillGradientStyle( 0x0a3d62, 0x0a3d62, // Temno modra 0x1e5f8c, 0x1e5f8c // Srednje modra ); // Highlights waterGraphics.fillStyle(0x3a8fc2, 0.5); waterGraphics.fillCircle(12, 12, 10); waterGraphics.fillCircle(36, 28, 8); waterGraphics.fillCircle(24, 38, 6); // Border waterGraphics.lineStyle(2, 0x062a40, 1); ``` **3. Water Animation:** ```javascript // Alpha tween za valovanje this.scene.tweens.add({ targets: sprite, alpha: 0.7, duration: 1000, yoyo: true, repeat: -1, ease: 'Sine.easeInOut' }); ``` **4. Rain Particles:** ```javascript this.rainEmitter = this.scene.add.particles(pondX, pondY - 100, 'raindrop', { x: { min: -50, max: 50 }, y: 0, lifespan: 1000, speedY: { min: 200, max: 300 }, scale: { start: 0.5, end: 0.2 }, alpha: { start: 0.8, end: 0.3 }, frequency: 100, blendMode: 'ADD' }); // Rain sound this.scene.soundManager.playRainSound(); ``` ### **GameScene.js** **1. TerrainSystem Update:** ```javascript update(time, delta) { if (this.terrainSystem) this.terrainSystem.update(time, delta); // ... ostali sistemi } ``` **2. Farm Tiles:** ```javascript // Dirt namesto grass this.terrainSystem.tiles[y][x].type = 'dirt'; this.terrainSystem.tiles[y][x].sprite.setTexture('dirt'); ``` ### **SaveSystem.js** **LoadGame Onemogočen:** ```javascript loadGame() { console.log('📂 Loading game... DISABLED - Fresh start!'); return false; // Vedno fresh start } ``` --- ## 📊 Končna Konfiguracija **Mapa:** - Velikost: 100x100 - Teren: Zelena trava - Farm: 8x8 dirt tiles (50,50) - Ribnik: Okrogel, radij 4 (30,30) **Dekoracije:** - Drevesa: 0% - Grmički: 0% - Rože: 0% - Skale: 0% - Hiše: 0% **Voda:** - Stil: 2D Stardew Valley - Barva: Temno modra (0x0a3d62 → 0x1e5f8c) - Animacija: Alpha tween (1s) - Dež: 10 kapljic/s **Zvok:** - Ambient music: C Minor Pentatonic - Rain sound: White noise (800Hz lowpass) - SFX: Proceduralni (Web Audio API) --- ## 🎯 Naslednji Koraki **Priporočila:** 1. **Testiranje ribnika** - Vizualno preverjanje 2. **Dodati ribe** - Interakcija z ribnikom 3. **Ribolov sistem** - Mini-game 4. **Ponovno omogočiti save** - Ko je testiranje končano 5. **Dodati nazaj drevesa** - Z nizko gostoto (1-3%) --- ## 📝 Opombe - Voda je zdaj **2D flat** (Stardew Valley stil) - Rain particles **samo nad ribnikom** - Sound system **že implementiran** - Save sistem **onemogočen** za testiranje - Vse spremembe **kompatibilne** z obstoječim kodom --- **Datum:** 12. December 2025 **Trajanje:** ~40 minut **Status:** ✅ Uspešno zaključeno **Naslednja sesija:** Testiranje + ribe/ribolov --- ## 🚀 Quick Start (Po Vrnitvi) ```bash # Reload igre F4 v Electron oknu # Preveri ribnik Pojdi na (30, 30) # Ponovno omogoči save (ko je testiranje končano) # SaveSystem.js - odkomentiraj loadGame() ``` **Uživajte v Sparu!** 🛒✨