# NovaFarma ๐ŸŒพ **2.5D Isometric Survival Game** - Post-Apocalyptic Farming Simulator Pixel art survival game z izometriฤnim pogledom, zombie workers, in farming mechanics. Built with Phaser.js and Electron. [![Status](https://img.shields.io/badge/status-alpha-orange)]() [![Commits](https://img.shields.io/badge/commits-22+-blue)]() [![Lines](https://img.shields.io/badge/code-2109%20lines-green)]() --- ## ๐ŸŽฎ Features ### **โœ… Core Gameplay (COMPLETE)** - ๐ŸŒ **Isometric 100x100 World** - Flat grass platform with river - ๐Ÿ‘ค **Player Movement** - WASD controls, depth sorting - ๐ŸŒพ **Farming System** - Plant, grow, harvest crops - ๐ŸงŸ **Zombie Workers** - Tame zombies to work on farm - ๐Ÿ’ฐ **Economy** - Gold, trading, merchant NPCs - ๐ŸŽ’ **Inventory** - 20 slots + crafting - ๐Ÿ—๏ธ **Building** - Structures, fences, workstations ### **โœ… Advanced Systems (TODAY'S UPDATE!)** - ๐Ÿ’พ **Save/Load System** - 3 save slots + auto-save every 5 min - ๐Ÿ† **8 Achievements** - Auto-tracking with fancy popups - ๐Ÿ’Ž **Gem Drops** - Diamond, Emerald, Ruby, Sapphire - ๐Ÿ”จ **Bone Tools** - Craftable tools from bones + wood - ๐ŸŽ **Starter Chest** - Seed-based random loot - ๐Ÿ“Š **Performance Monitor** - Press F3 for FPS/memory stats - ๐Ÿงช **Integration Tests** - Type `runTests()` in console - ๐ŸŽจ **UI Theme System** - Rustic/post-apo styled UI ### **๐ŸŒฆ๏ธ Weather & Seasons** - โ˜€๏ธ Dynamic weather (clear, rain, snow, storm) - ๐ŸŒก๏ธ Temperature system (affects crops) - ๐Ÿ“… Day/night cycle - ๐ŸŒฑ Seasonal mechanics (spring/summer/autumn/winter) ### **๐ŸงŸ NPC Systems** - ๐ŸงŸ Zombie workers (can be tamed) - ๐Ÿง™โ€โ™‚๏ธ Merchant (buy/sell items) - ๐Ÿ‘ฅ Villagers (quests, dialogue) - ๐Ÿ‘น Elite zombies & mutants - ๐Ÿ„ Animals (cows, chickens) --- ## ๐Ÿš€ Quick Start ### **Prerequisites** - Node.js 18+ - npm 9+ ### **Installation** ```bash # Clone repository cd c:\novafarma # Install dependencies npm install # Run game (Electron) npm start # OR run in browser (development) python -m http.server 8001 # Then open http://127.0.0.1:8001 ``` --- ## ๐ŸŽฏ Controls ### **Movement** - `W/A/S/D` - Move player (isometric) - `Arrow Keys` - Alternative movement - `SHIFT` - Sprint (faster movement) ### **Interaction** - `E` - Interact with objects/NPCs - `F` - Harvest crops - `R` - Attack (combat) - `Q` - Quick use item ### **UI** - `I` - Open inventory - `C` - Open crafting menu - `M` - Open map - `ESC` - Pause menu ### **Debug/Testing** - `F3` - Toggle FPS monitor - `F5` - Quick save - `F9` - Quick load ### **Console Commands** Type in browser console: - `save(1)` - Save to slot 1 - `load(1)` - Load from slot 1 - `runTests()` - Run integration tests --- ## ๐Ÿ“ฆ Save System ### **Features** - ๐Ÿ’พ **3 Save Slots** - Multiple playthroughs - โšก **Auto-Save** - Every 5 minutes - ๐Ÿ“ค **Export/Import** - Backup your saves - ๐Ÿ“Š **Metadata** - Playtime, day count, level ### **Console Commands** ```javascript // Save to specific slot (1-3) save(1); // Load from specific slot load(1); // Quick save/load (current slot) window.SaveManager.quickSave(); window.SaveManager.quickLoad(); ``` --- ## ๐Ÿ† Achievements | Achievement | Requirement | Progress Tracking | |-------------|-------------|-------------------| | ๐ŸŒพ FIRST_HARVEST | Harvest first crop | Auto | | ๐Ÿ’ฐ GOLD_RUSH | Earn 1000 gold | Auto | | ๐ŸงŸ ZOMBIE_SLAYER | Kill 100 zombies | Auto | | ๐ŸŒพ MASTER_FARMER | Harvest 1000 crops | Auto | | ๐Ÿ“… DAY_30 | Survive 30 days | Auto | | ๐Ÿก GREENHOUSE | Build greenhouse | Auto | | ๐ŸงŸโ€โ™‚๏ธ TAMED_ZOMBIE | Tame first zombie | Auto | | ๐Ÿ๏ธ OCEAN_EXPLORER | Discover 5 islands | Auto | Progress is automatically tracked and persisted! --- ## ๐Ÿ”จ Crafting ### **Bone Tools** (NEW!) ``` Bone Pickaxe = 3x Bone + 2x Wood Bone Axe = 3x Bone + 2x Wood Bone Hoe = 2x Bone + 2x Wood Bone Sword = 2x Bone + 1x Wood ``` ### **Basic Tools** ``` Wooden Pickaxe = 3x Wood + 2x Stick Stone Pickaxe = 3x Stone + 2x Stick Stick = 1x Wood โ†’ 4x Stick ``` ### **Buildings** ``` Chest = 8x Wood Furnace = 8x Stone + 4x Coal ``` See `src/data/CraftingRecipes.js` for full list. --- ## ๐Ÿ’Ž Gem System | Gem | Rarity | Drop Chance | Value | |-----|--------|-------------|-------| | ๐Ÿ’Ž Diamond | Legendary | 0.5% | 500g | | ๐Ÿ’š Emerald | Epic | 2% | 200g | | โค๏ธ Ruby | Rare | 5% | 100g | | ๐Ÿ’™ Sapphire | Uncommon | 10% | 50g | Drops from: - Zombies (especially elite/boss) - Mining ore nodes - Special events --- ## ๐ŸŽจ UI Theme ### **Using the Theme System** ```javascript // Get themed color const color = UITheme.getColor('primary.darkBrown'); // Create themed button const btn = UIHelpers.createButton(scene, x, y, 'Click Me', () => { console.log('Clicked!'); }); // Create themed panel const panel = UIHelpers.createPanel(scene, x, y, 300, 200, 'wooden'); // Create progress bar const bar = UIHelpers.createProgressBar(scene, x, y, 200, 20, 0.5); bar.setProgress(0.75); // Update to 75% ``` See `src/ui/UITheme.js` and `src/ui/UIHelpers.js` for details. --- ## ๐Ÿ—๏ธ Fence Placement System (NEW!) ### **Programmatic Fence Placement** Place fences at exact coordinates without build mode! ```javascript // Place single fence this.buildSystem.placeSingleFence(50, 30, 'fence_horizontal', false); // Place fence line (Bresenham algorithm) this.buildSystem.placeFenceLine(10, 10, 20, 20, 'fence_post', false); // Place fence rectangle (10x8) this.buildSystem.placeFenceRectangle(40, 40, 10, 8, 'fence_horizontal', false); ``` ### **Available Fence Types** - `'fence'` - Old fence - `'fence_post'` - Fence post - `'fence_horizontal'` - Horizontal โ†’ - `'fence_vertical'` - Vertical โ†“ - `'fence_corner'` - Corner โŒž ### **Quick Start** See **[docs/FENCE_QUICK_START.md](docs/FENCE_QUICK_START.md)** for 3-step guide. See **[docs/FENCE_PLACEMENT_GUIDE.md](docs/FENCE_PLACEMENT_GUIDE.md)** for full documentation. --- ## ๐Ÿ“Š Performance Testing ### **FPS Monitor** - Press `F3` to toggle - Shows: FPS, Min/Max, Frame time, Sprite count, Memory ### **Integration Tests** Type in console: ```javascript runTests(); ``` This runs 20+ automated tests for: - System existence - Inventory operations - Mount system - Gem drops - Crafting recipes - Performance checks --- ## ๐Ÿ“ Project Structure ``` novafarma/ โ”œโ”€โ”€ src/ โ”‚ โ”œโ”€โ”€ scenes/ # Game scenes โ”‚ โ”‚ โ”œโ”€โ”€ BootScene.js โ”‚ โ”‚ โ”œโ”€โ”€ PreloadScene.js โ”‚ โ”‚ โ”œโ”€โ”€ GameScene.js โ”‚ โ”‚ โ””โ”€โ”€ UIScene.js โ”‚ โ”œโ”€โ”€ entities/ # Game entities โ”‚ โ”‚ โ”œโ”€โ”€ Player.js โ”‚ โ”‚ โ””โ”€โ”€ NPC.js โ”‚ โ”œโ”€โ”€ systems/ # Game systems (NEW!) โ”‚ โ”‚ โ”œโ”€โ”€ TerrainSystem.js โ”‚ โ”‚ โ”œโ”€โ”€ StarterChestSystem.js โ”‚ โ”‚ โ”œโ”€โ”€ GemDropSystem.js โ”‚ โ”‚ โ”œโ”€โ”€ SaveManager.js โ”‚ โ”‚ โ”œโ”€โ”€ AchievementTriggers.js โ”‚ โ”‚ โ””โ”€โ”€ ... (20+ more) โ”‚ โ”œโ”€โ”€ ui/ # UI components (NEW!) โ”‚ โ”‚ โ”œโ”€โ”€ UITheme.js โ”‚ โ”‚ โ””โ”€โ”€ UIHelpers.js โ”‚ โ”œโ”€โ”€ utils/ # Utilities (NEW!) โ”‚ โ”‚ โ”œโ”€โ”€ PerformanceMonitor.js โ”‚ โ”‚ โ”œโ”€โ”€ IntegrationTests.js โ”‚ โ”‚ โ””โ”€โ”€ ... โ”‚ โ”œโ”€โ”€ data/ # Game data (NEW!) โ”‚ โ”‚ โ””โ”€โ”€ CraftingRecipes.js โ”‚ โ””โ”€โ”€ game.js โ”œโ”€โ”€ assets/ โ”œโ”€โ”€ index.html โ”œโ”€โ”€ package.json โ”œโ”€โ”€ TASKS.md # Development roadmap โ””โ”€โ”€ README.md # This file ``` --- ## ๐Ÿ› ๏ธ Technology Stack - **Phaser.js** v3.80.1 - Game engine - **Electron.js** v33.2.1 - Desktop wrapper - **Node.js** v18+ - Runtime - **JavaScript** - ES6+ (no transpiling) - **HTML5 Canvas** - Rendering - **LocalStorage** - Save data persistence --- ## ๐Ÿ”ง Development ### **Build Commands** ```bash # Development (hot reload) npm start # Browser mode python -m http.server 8001 # Run tests (in browser console) runTests() ``` ### **Debug Tools** - F3 - Performance monitor - Browser DevTools - Console, Network, etc. - `runTests()` - Integration tests --- ## ๐Ÿ“ Recent Updates ### **12.12.2025 - Fence Placement System** - โœ… **Programmatic Fence Placement** - `placeSingleFence()`, `placeFenceLine()`, `placeFenceRectangle()` - โœ… **5 Fence Types** - Post, horizontal, vertical, corner, old fence - โœ… **Optional Resource Consumption** - Test mode (free) or normal mode (costs wood) - โœ… **Collision Detection** - Prevents overlapping buildings - โœ… **Complete Documentation** - Quick start guide + full API docs - โœ… **Example Code** - Maze generator, spiral generator, and more ### **11.12.2025 - LEGENDARY SESSION - 22 COMMITS!** - โœ… Save/Load System (3 slots + auto-save) - โœ… Achievement System (8 achievements) - โœ… Gem Drop System (4 gem types) - โœ… Bone Tools Crafting (4 tools) - โœ… Starter Chest (seed-based loot) - โœ… Performance Monitor (FPS/memory) - โœ… Integration Tests (20+ tests) - โœ… UI Theme System (rustic/post-apo) - โœ… UI Helpers (buttons, panels, etc.) **Total:** 2,109 lines of new code in 4.8 hours! ๐Ÿ”ฅ --- ## ๐Ÿ“– Documentation - **TASKS.md** - Full development roadmap and phase breakdown - **DNEVNIK.md** - Development journal - **SYSTEM_REQUIREMENTS.md** - Platform requirements - **docs/FENCE_QUICK_START.md** - 3-step fence placement guide (NEW!) - **docs/FENCE_PLACEMENT_GUIDE.md** - Complete fence API documentation (NEW!) - **src/ui/UITheme.js** - UI theme documentation - **src/data/CraftingRecipes.js** - All crafting recipes --- ## ๐Ÿค Contributing This is a solo project, but suggestions welcome! --- ## ๐Ÿ“œ License Private project - All rights reserved --- ## ๐ŸŽฎ Credits **Developer:** Antigravity AI Assistant + Human Collaborator **Engine:** Phaser.js **Art Style:** Pixel Art (2.5D Isometric) **Genre:** Survival, Farming, Post-Apocalyptic --- **Made with โค๏ธ and lots of โ˜•** *Last Updated: 12.12.2025 - Fence Placement System*