podobi
This commit is contained in:
479
README.md
479
README.md
@@ -1,396 +1,197 @@
|
||||
# NovaFarma 🌾
|
||||
# 🌾 NovaFarma v2.5.0
|
||||
|
||||
**2.5D Isometric Survival Game** - Post-Apocalyptic Farming Simulator
|
||||
**2.5D Isometric Survival Farming Game**
|
||||
|
||||
Pixel art survival game z izometričnim pogledom, zombie workers, in farming mechanics.
|
||||
Built with Phaser.js and Electron.
|
||||
|
||||
[]()
|
||||
[]()
|
||||
[]()
|
||||

|
||||
|
||||
---
|
||||
|
||||
## 🎮 Features
|
||||
## 🎮 O Igri
|
||||
|
||||
### **✅ 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
|
||||
NovaFarma je 2.5D izometrična survival farming igra, kjer upravljaš svojo farmo, preživiš noči, zbiraš vire in gradiš svoje kraljestvo!
|
||||
|
||||
### **✅ 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
|
||||
### ✨ Funkcionalnosti:
|
||||
|
||||
### **🌦️ 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)
|
||||
- 🌾 **Farming System** - Till, plant, harvest crops
|
||||
- 🏗️ **Building System** - Build fences, barns, houses
|
||||
- ⚒️ **Crafting System** - 13 receptov za orodja in stavbe
|
||||
- 🧟 **NPC System** - 3 NPCji z random walk AI
|
||||
- 🌙 **Day/Night Cycle** - 24-urni cikel (5 min)
|
||||
- 🌦️ **Weather System** - Rain, storms, seasons
|
||||
- 🍖 **Survival Mechanics** - Hunger, thirst, health
|
||||
- 💾 **Save/Load System** - 3 save slots + auto-save
|
||||
- 🗺️ **Minimap** - Real-time terrain + NPC tracking
|
||||
- 🎵 **Sound Effects** - 6 procedural sounds + music
|
||||
- ⚡ **Performance** - 60 FPS, optimized rendering
|
||||
|
||||
---
|
||||
|
||||
## 🚀 Quick Start
|
||||
## 💻 Sistemske Zahteve
|
||||
|
||||
### **Prerequisites**
|
||||
- Node.js 18+
|
||||
- npm 9+
|
||||
### Minimalne:
|
||||
- **OS:** Windows 10/11 (64-bit)
|
||||
- **RAM:** 4 GB
|
||||
- **Prostor:** 300 MB
|
||||
- **DirectX:** 11
|
||||
|
||||
### **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
|
||||
```
|
||||
### Priporočene:
|
||||
- **OS:** Windows 11
|
||||
- **RAM:** 8 GB
|
||||
- **Prostor:** 500 MB
|
||||
- **GPU:** Integrated graphics
|
||||
|
||||
---
|
||||
|
||||
## 🎯 Controls
|
||||
## 🚀 Kako Igrati
|
||||
|
||||
### **Movement**
|
||||
- `W/A/S/D` - Move player (isometric)
|
||||
- `Arrow Keys` - Alternative movement
|
||||
- `SHIFT` - Sprint (faster movement)
|
||||
### Namestitev:
|
||||
1. Razpakiraj ZIP datoteko
|
||||
2. Odpri mapo `NovaFarma-win32-x64`
|
||||
3. Zaženi `NovaFarma.exe`
|
||||
4. Igraj!
|
||||
|
||||
### **Interaction**
|
||||
- `E` - Interact with objects/NPCs
|
||||
- `F` - Harvest crops
|
||||
- `R` - Attack (combat)
|
||||
- `Q` - Quick use item
|
||||
### Kontrole:
|
||||
|
||||
### **UI**
|
||||
- `I` - Open inventory
|
||||
- `C` - Open crafting menu
|
||||
- `M` - Open map
|
||||
- `ESC` - Pause menu
|
||||
#### Gibanje:
|
||||
- **W A S D** - Premikanje
|
||||
- **Mouse Wheel** - Zoom in/out
|
||||
|
||||
### **Debug/Testing**
|
||||
- `F3` - Toggle FPS monitor
|
||||
- `F5` - Quick save
|
||||
- `F9` - Quick load
|
||||
#### Farming:
|
||||
- **SPACE** - Till soil / Plant seeds / Harvest crops
|
||||
- **1-9** - Izberi item iz inventory
|
||||
|
||||
### **Console Commands**
|
||||
Type in browser console:
|
||||
- `save(1)` - Save to slot 1
|
||||
- `load(1)` - Load from slot 1
|
||||
- `runTests()` - Run integration tests
|
||||
#### Building:
|
||||
- **B** - Toggle build mode
|
||||
- **1-5** - Izberi stavbo (v build mode)
|
||||
- **Click** - Postavi stavbo
|
||||
- **ESC** - Zapri build mode
|
||||
|
||||
#### UI:
|
||||
- **C** - Odpri crafting menu
|
||||
- **F3** - Toggle performance monitor
|
||||
- **F5** - Quick save
|
||||
- **F9** - Quick load
|
||||
- **F12** - Developer console
|
||||
- **M** - Mute/unmute sound
|
||||
|
||||
---
|
||||
|
||||
## 📦 Save System
|
||||
## 🎯 Gameplay
|
||||
|
||||
### **Features**
|
||||
- 💾 **3 Save Slots** - Multiple playthroughs
|
||||
- ⚡ **Auto-Save** - Every 5 minutes
|
||||
- 📤 **Export/Import** - Backup your saves
|
||||
- 📊 **Metadata** - Playtime, day count, level
|
||||
### Začetek:
|
||||
1. **Zberi vire** - Hodi po mapi in zberi wood, stone
|
||||
2. **Crafti orodja** - Pritisni C in izdelaj axe, pickaxe
|
||||
3. **Farmi** - Pritisni SPACE na grass za till, nato plant seeds
|
||||
4. **Jedi in pij** - Hunger in thirst pada, jedi hrano!
|
||||
5. **Preživi noč** - Vsako 7. noč je Horde Night!
|
||||
|
||||
### **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();
|
||||
```
|
||||
### Napredovanje:
|
||||
- **Level Up** - Zberi XP za akcije
|
||||
- **Build** - Postavi fences, barns, houses
|
||||
- **Craft** - Izdelaj boljša orodja
|
||||
- **Explore** - Raziskuj 100x100 mapo
|
||||
|
||||
---
|
||||
|
||||
## 🏆 Achievements
|
||||
## 📊 Features
|
||||
|
||||
| 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 |
|
||||
### Core Gameplay:
|
||||
✅ Farming (till, plant, harvest)
|
||||
✅ Building (fences, barns, houses)
|
||||
✅ Crafting (13 receptov)
|
||||
✅ Resource gathering (auto-pickup)
|
||||
|
||||
Progress is automatically tracked and persisted!
|
||||
### Survival:
|
||||
✅ Hunger/Thirst system
|
||||
✅ Day/Night cycle (24h = 5 min)
|
||||
✅ Weather (rain, storm)
|
||||
✅ Seasons (4 seasons)
|
||||
✅ Health regeneration
|
||||
|
||||
### UI:
|
||||
✅ HP/Hunger/Thirst bars
|
||||
✅ Minimap (150x150px)
|
||||
✅ Inventory (9 slots)
|
||||
✅ Clock
|
||||
✅ Performance Monitor (F3)
|
||||
|
||||
### NPCs:
|
||||
✅ 3 NPCs with random walk AI
|
||||
✅ Visible on minimap
|
||||
|
||||
### Sound:
|
||||
✅ 6 sound effects
|
||||
✅ Background music
|
||||
|
||||
### Save/Load:
|
||||
✅ 3 save slots
|
||||
✅ Auto-save (5 min)
|
||||
✅ F5/F9 shortcuts
|
||||
|
||||
### Performance:
|
||||
✅ Culling system
|
||||
✅ Object pooling
|
||||
✅ FPS Monitor
|
||||
✅ 60 FPS target
|
||||
|
||||
---
|
||||
|
||||
## 🔨 Crafting
|
||||
## 🐛 Znani Problemi
|
||||
|
||||
### **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
|
||||
```
|
||||
1. **Windows SmartScreen Opozorilo**
|
||||
- Aplikacija ni code-signed
|
||||
- Klikni "More info" → "Run anyway"
|
||||
|
||||
### **Basic Tools**
|
||||
```
|
||||
Wooden Pickaxe = 3x Wood + 2x Stick
|
||||
Stone Pickaxe = 3x Stone + 2x Stick
|
||||
Stick = 1x Wood → 4x Stick
|
||||
```
|
||||
2. **Ikona**
|
||||
- Privzeta Electron ikona (ne custom)
|
||||
|
||||
### **Buildings**
|
||||
```
|
||||
Chest = 8x Wood
|
||||
Furnace = 8x Stone + 4x Coal
|
||||
```
|
||||
|
||||
See `src/data/CraftingRecipes.js` for full list.
|
||||
3. **Velikost**
|
||||
- ~225 MB (normalno za Electron apps)
|
||||
|
||||
---
|
||||
|
||||
## 💎 Gem System
|
||||
## 📝 Changelog
|
||||
|
||||
| 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
|
||||
### v2.5.0 (2025-12-12)
|
||||
- ✅ Dodana minimap
|
||||
- ✅ Dodani sound effects (6)
|
||||
- ✅ Dodan NPC spawner (3 NPCs)
|
||||
- ✅ Dodan performance monitor
|
||||
- ✅ Optimizacije (culling, pooling)
|
||||
- ✅ Save/Load system (3 slots)
|
||||
- ✅ Survival mehanike (hunger, thirst)
|
||||
- ✅ Dan/Noč cikel + weather
|
||||
|
||||
---
|
||||
|
||||
## 🎨 UI Theme
|
||||
## 🏆 Credits
|
||||
|
||||
### **Using the Theme System**
|
||||
```javascript
|
||||
// Get themed color
|
||||
const color = UITheme.getColor('primary.darkBrown');
|
||||
**Razvito z:**
|
||||
- Phaser.js (Game Engine)
|
||||
- Electron.js (Desktop App)
|
||||
- Node.js (Server)
|
||||
|
||||
// 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.
|
||||
**Verzija:** 2.5.0
|
||||
**Datum:** 12. December 2025
|
||||
**Licenca:** MIT
|
||||
|
||||
---
|
||||
|
||||
## 🏗️ Fence Placement System (NEW!)
|
||||
## 📧 Podpora
|
||||
|
||||
### **Programmatic Fence Placement**
|
||||
Place fences at exact coordinates without build mode!
|
||||
**Našli ste bug?**
|
||||
Odprite issue na GitHub: [github.com/novafarma/issues](https://github.com)
|
||||
|
||||
```javascript
|
||||
// Place single fence
|
||||
this.buildSystem.placeSingleFence(50, 30, 'fence_horizontal', false);
|
||||
**Vprašanja?**
|
||||
Email: support@novafarma.com
|
||||
|
||||
// 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.
|
||||
**Discord:**
|
||||
[discord.gg/novafarma](https://discord.gg)
|
||||
|
||||
---
|
||||
|
||||
## 📊 Performance Testing
|
||||
## 🎉 Hvala za Igranje!
|
||||
|
||||
### **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*
|
||||
Uživajte v NovaFarma! 🌾✨
|
||||
|
||||
**Made with ❤️ by NovaFarma Team**
|
||||
|
||||
Reference in New Issue
Block a user