# πŸ—οΈ DOLINASMRTI - GAME SYSTEMS EXPANSION PLAN ## πŸ“… Created: January 4, 2026 ## 🎯 Status: PLANNING PHASE --- ## πŸ“‹ OVERVIEW This document outlines the implementation plan for major game systems expansion including: - Home customization & upgrades - New town buildings (bakery, barber, lawyer) - Functional mines with zombie workers - Town growth & NPC privacy systems - Interior decoration for all building types --- ## 🎯 CORE SYSTEMS TO IMPLEMENT ### 1. HOME UPGRADE SYSTEM 🏠 #### Sleep System (3 Tiers) **Priority:** HIGH **Dependencies:** Player stats, time system **Implementation:** - Level 1: Sleeping Bag - Quick sleep animation - Low energy regeneration (30%) - Asset: `bed_tier1_sleepingbag.png` - Level 2: Wooden Bed - Medium sleep duration - Good energy regeneration (70%) - Mood boost (+5) - Asset: `bed_tier2_wooden.png` - Level 3: King-Size Bed - Full energy regeneration (100%) - Two-person capacity (Kai + Ana when married) - Romance scene trigger - Asset: `bed_tier3_kingsize.png` **Code Tasks:** ```javascript // PlayerStats.js class SleepSystem { constructor(bedLevel) { this.bedLevel = bedLevel; this.sleepDuration = [3000, 5000, 7000][bedLevel - 1]; this.energyRegen = [30, 70, 100][bedLevel - 1]; } async sleep(player) { // Fade to black // Play sleep animation // Regenerate energy based on bed tier // Advance time // Trigger morning events } } ``` --- #### Crafting Tables (2 Types) **Priority:** HIGH **Dependencies:** Crafting system, inventory **Implementation:** - Small Table - Basic recipes (tools, simple repairs) - Asset: `table_small_crafting.png` - Unlock: Available from start - Large Table - Advanced recipes (expedition planning, complex items) - Required for Gronk's expedition system - Asset: `table_large_planning.png` - Unlock: After completing "Meet Gronk" quest **Code Tasks:** ```javascript // CraftingStation.js class CraftingTable { constructor(tier, recipes) { this.tier = tier; // 'small' | 'large' this.availableRecipes = recipes; } canCraft(recipeId) { const recipe = this.availableRecipes[recipeId]; return recipe && recipe.requiredTable <= this.tier; } } ``` --- #### House Extensions **Priority:** MEDIUM **Dependencies:** Building system, currency **Implementation:** - Kitchen Extension - Enables cooking 200+ recipes - Multiple cooking stations - Asset: `house_extension_kitchen.png` - Cost: 5,000g - Basement Extension - Alchemy lab access - Memory item storage - Secret passage to bunker - Asset: `house_extension_basement.png` - Cost: 10,000g **Code Tasks:** ```javascript // HouseExtension.js class HouseExtension { static extensions = { kitchen: { cost: 5000, unlocks: ['cooking_recipes', 'food_processor'], asset: 'house_extension_kitchen' }, basement: { cost: 10000, unlocks: ['alchemy_lab', 'memory_storage'], asset: 'house_extension_basement' } }; static purchase(extensionType, player) { const ext = this.extensions[extensionType]; if (player.money >= ext.cost) { player.money -= ext.cost; player.house.addExtension(extensionType); return true; } return false; } } ``` --- ### 2. NEW TOWN BUILDINGS πŸͺ #### Bakery (Pekarna) **Priority:** HIGH **Dependencies:** NPC system, shop interface **Assets Needed:** - `building_bakery_exterior.png` (already generated) - `interior_bakery_oven.png` - `interior_bakery_counter.png` - `interior_bakery_bread_shelf.png` - `npc_baker.png` **Functionality:** - Buy food items for energy - Buy gifts for NPCs (heart system) - Special baked goods for quests - Warm lighting (Style 32: orange glow in dark world) **Code Tasks:** ```javascript // BakeryShop.js class BakeryShop extends Shop { constructor() { super('bakery'); this.inventory = [ { id: 'bread', price: 50, energy: 20, hearts: 1 }, { id: 'cake', price: 200, energy: 50, hearts: 5 }, { id: 'pie', price: 150, energy: 40, hearts: 3 } ]; } buyItem(itemId, player) { const item = this.inventory.find(i => i.id === itemId); if (player.money >= item.price) { player.money -= item.price; player.inventory.add(item); return true; } return false; } } ``` --- #### Barber Shop (Frizeraj) **Priority:** MEDIUM **Dependencies:** Character customization system **Assets Needed:** - `building_barbershop_exterior.png` - `interior_barber_chair.png` - `interior_barber_mirror.png` - `interior_piercing_tools.png` - `npc_barber.png` **Functionality:** - Change Kai's hairstyle - Add piercings - Ear gauges - Dreadlocks upgrade (pink & green) - Zombie makeover service **Code Tasks:** ```javascript // BarberShop.js class BarberShop { static hairstyles = [ { id: 'dreadlocks_pink_green', price: 500, sprite: 'kai_dreads_pink' }, { id: 'mohawk', price: 300, sprite: 'kai_mohawk' }, { id: 'bald', price: 100, sprite: 'kai_bald' } ]; static piercings = [ { id: 'ear_gauges', price: 200, sprite: 'kai_gauges' }, { id: 'nose_ring', price: 150, sprite: 'kai_nosering' } ]; changeHairstyle(hairstyleId, player) { const style = this.hairstyles.find(h => h.id === hairstyleId); if (player.money >= style.price) { player.money -= style.price; player.sprite = style.sprite; return true; } return false; } } ``` --- #### Bank/Lawyer Office (Ločitvena pisarna) **Priority:** LOW (Story-dependent) **Dependencies:** Marriage system, Ana questline **Assets Needed:** - `building_lawyer_office.png` - `interior_lawyer_desk.png` - `interior_lawyer_lamp.png` (single overhead light - noir) - `npc_lawyer.png` **Functionality:** - Divorce process (costs 50,000g) - Lose 25% money - Lose relationship hearts - Trigger "Single Again" questline **Code Tasks:** ```javascript // LawyerOffice.js class LawyerOffice { static DIVORCE_COST = 50000; static MONEY_PENALTY = 0.25; // 25% loss static processDivorce(player) { if (player.money < this.DIVORCE_COST) { return { success: false, message: "Not enough money" }; } if (!player.isMarried) { return { success: false, message: "You're not married" }; } // Pay divorce cost player.money -= this.DIVORCE_COST; // Lose 25% of remaining money player.money *= (1 - this.MONEY_PENALTY); // Reset relationship player.spouse.hearts = 0; player.isMarried = false; // Trigger quest QuestSystem.trigger('single_again'); return { success: true }; } } ``` --- ### 3. FUNCTIONAL MINES SYSTEM ⛏️ **Priority:** HIGH **Dependencies:** Zombie AI, resource generation **Assets Needed:** - `mine_entrance.png` - `mine_tracks.png` - `mine_elevator.png` - `mine_crusher.png` - `npc_zombie_miner.png` **Implementation:** - 100 levels deep - Each level: harder enemies, rarer resources - Zombie miners auto-collect ore - Ore appears in player's chests - Machines: elevators, stone crushers **Code Tasks:** ```javascript // MineSystem.js class FunctionalMine { constructor(depth = 100) { this.maxDepth = depth; this.currentDepth = 1; this.zombieMiners = []; this.oreGeneration = new Map(); } assignZombie(zombie) { this.zombieMiners.push(zombie); zombie.task = 'mining'; zombie.location = this.currentDepth; } update(deltaTime) { // For each zombie miner this.zombieMiners.forEach(zombie => { // Generate ore based on depth const oreType = this.getOreForDepth(zombie.location); const oreAmount = Math.random() * 5; // Add to player storage PlayerStorage.addOre(oreType, oreAmount); }); } getOreForDepth(depth) { if (depth < 20) return 'copper'; if (depth < 50) return 'iron'; if (depth < 80) return 'gold'; return 'diamond'; } descend() { if (this.currentDepth < this.maxDepth) { this.currentDepth++; this.spawnEnemies(this.currentDepth); } } } ``` --- ### 4. TOWN GROWTH & SIGNAGE SYSTEM 🏘️ **Priority:** MEDIUM **Dependencies:** NPC system, building placement **Assets Needed:** - `town_sign.png` (with dynamic text) - `village_small_house_1.png` - `village_small_house_2.png` - `village_small_house_3.png` **Implementation:** - Town sign appears after first building - Auto-updates NPC count - Max 4 NPCs initially - Unlock more via quests - Small villages (2-3 houses) scattered on map **Code Tasks:** ```javascript // TownSystem.js class TownGrowth { constructor() { this.npcCount = 0; this.maxNPCs = 4; this.townName = "Dolina Smrti"; this.buildings = []; this.townSign = null; } buildFirstBuilding(building) { this.buildings.push(building); // Create town sign this.townSign = new TownSign(this.townName, this.npcCount); this.townSign.spawn(building.x - 100, building.y - 50); } addNPC(npc) { if (this.npcCount >= this.maxNPCs) { return { success: false, message: "Town is full! Complete quests to expand." }; } this.npcCount++; this.townSign.updateCount(this.npcCount); // Assign NPC to house const house = this.buildings.find(b => !b.occupied); if (house) { npc.moveInto(house); house.occupied = true; house.decorateForNPC(npc); } return { success: true }; } expandTownLimit() { // Called when player completes marketplace quest this.maxNPCs += 4; } generateSmallVillage(x, y) { const village = new Village(x, y, 2 + Math.floor(Math.random() * 2)); // 2-3 houses village.populate(); return village; } } class TownSign extends Phaser.GameObjects.Container { constructor(townName, npcCount) { super(); this.townName = townName; this.npcCount = npcCount; this.createSign(); } createSign() { // Background sign sprite this.sign = this.scene.add.sprite(0, 0, 'town_sign'); this.add(this.sign); // Dynamic text this.nameText = this.scene.add.text(0, -20, this.townName, { fontSize: '24px', fontFamily: 'Gothic', color: '#ffffff' }).setOrigin(0.5); this.countText = this.scene.add.text(0, 10, `Population: ${this.npcCount}`, { fontSize: '18px', color: '#aaaaaa' }).setOrigin(0.5); this.add([this.nameText, this.countText]); } updateCount(newCount) { this.npcCount = newCount; this.countText.setText(`Population: ${this.npcCount}`); // Celebrate milestone if (this.npcCount % 5 === 0) { this.celebrateGrowth(); } } celebrateGrowth() { // Particle effects, sound this.scene.add.particles('particle_star').createEmitter({ x: this.x, y: this.y, speed: 100, lifespan: 1000, quantity: 20 }); } } ``` --- ### 5. NPC PRIVACY & HOME DECORATION SYSTEM 🏠 **Priority:** MEDIUM **Dependencies:** Heart system, NPC AI **Implementation:** - Hobby-based home decoration - Locked doors (heart requirements) - Private bedrooms (5-10 hearts to enter) **Code Tasks:** ```javascript // NPCHome.js class NPCHome { constructor(npc, building) { this.npc = npc; this.building = building; this.furniture = []; this.lockedRooms = ['bedroom']; this.decorateForHobby(npc.hobby); } decorateForHobby(hobby) { const decorations = { 'fisherman': ['fishing_net', 'fish_smell', 'tackle_box'], 'barber': ['mirror', 'scissors', 'dreadlocks_kit'], 'baker': ['oven', 'bread_smell', 'flour_bags'], 'zombie_worker': ['chains', 'brain_jar', 'dark_candles'] }; const items = decorations[hobby] || ['basic_chair', 'basic_table']; items.forEach(item => { this.furniture.push(new FurnitureItem(item)); }); } canEnter(player, room = 'main') { // Main room: NPC must be in town if (room === 'main') { if (!this.npc.isInTown()) { DialogueSystem.show(`${this.npc.name} isn't home right now.`); return false; } return true; } // Bedroom: Requires hearts if (room === 'bedroom') { const requiredHearts = 5; if (player.getHearts(this.npc) < requiredHearts) { DialogueSystem.show(`${this.npc.name}: "Sorry, that's my private room!"`); return false; } return true; } return true; } onPlayerEnter(player, room) { if (!this.canEnter(player, room)) { return false; } // Track entry for relationship system this.npc.onHomeVisit(player); return true; } } ``` --- ## πŸ“¦ INTERIOR OBJECTS MASTER LIST ### FARM BUILDINGS (Barn, Silo, Workshop) #### Barn Interior - `interior_animal_stall.png` - Stall with rusty chains - `interior_tool_rack.png` - Hanging tools (hoe, axe, pitchfork) - `interior_hay_pile.png` - Dark greyish-green hay with bones - `interior_feed_trough.png` - Feeding station for zombie animals #### Silo/Storage - `interior_wooden_crate.png` - Crate with skull logo - `interior_grain_sack.png` - Burlap sack with grain - `interior_barrel_storage.png` - Rusty barrel - `interior_wheat_phases_display.png` - Shows 4 wheat growth phases #### Workshop - `interior_crafting_table.png` - Table with metal vise - `interior_zombie_workstation.png` - Automated zombie machinery - `interior_lumberjack_station.png` - Woodcutting automation --- ### LABORATORY & TECH #### Alchemy Lab (Basement) - `interior_alchemy_bottle.png` - Glowing neon liquid bottle (light source) - `interior_brewing_cauldron.png` - Large pot for 200+ recipes - `interior_chemistry_set.png` - Glass tubes and beakers - `interior_potion_shelf.png` - Organized potion storage #### Chernobyl Bunker - `interior_old_monitor.png` - Computer with glitch effect - `interior_cassette_player.png` - Plays Ana's audio diaries - `interior_hazmat_locker.png` - Radiation suits storage - `interior_radiation_shower.png` - Decontamination station --- ### SECRET LOCATIONS #### Underground Groves - `interior_fluorescent_plants.png` - Glowing ceiling plants - `interior_irrigation_pipes.png` - Rusty leaking pipes - `interior_grow_lamp.png` - Purple UV grow lights #### Dino Valley Lairs - `interior_dino_nest.png` - Giant nest with eggs - `interior_researcher_bones.png` - Skeleton remains - `interior_cave_painting.png` - Primitive dino drawings #### Catacombs (Paris/Mexico) - `interior_skull_shelf.png` - Shelves full of skulls - `interior_sarcophagus.png` - Stone coffin with gems - `interior_bone_pile_large.png` - Massive bone heap - `interior_catacomb_torch.png` - Wall-mounted torch --- ### HOME UPGRADES #### Beds - `interior_bed_sleepingbag.png` - Level 1 - `interior_bed_wooden.png` - Level 2 - `interior_bed_kingsize.png` - Level 3 (two-person) #### Tables - `interior_table_small.png` - Basic crafting - `interior_table_large.png` - Expedition planning #### Kitchen Extension - `interior_kitchen_stove.png` - Cooking station - `interior_kitchen_counter.png` - Prep area - `interior_kitchen_fridge.png` - Food storage #### Basement Extension - `interior_stairs_down.png` - Staircase to basement - `interior_memory_chest.png` - Special item storage - `interior_secret_passage.png` - Hidden bunker entrance --- ### UNIVERSAL OBJECTS (Every Interior Needs) #### Verticality - `interior_ladder_wood.png` - Wooden ladder for attics - `interior_stairs_stone.png` - Stone stairs for basements #### Lighting - `interior_gothic_lantern.png` - Hanging lamp (Style 32 noir) - `interior_glowing_crystal.png` - Mystical light source - `interior_candelabra.png` - Three-candle holder #### Containers - `interior_wardrobe.png` - For 100 outfits system - `interior_chest_locked.png` - Treasure chest - `interior_bookshelf.png` - Books and memories --- ## 🎯 IMPLEMENTATION PHASES ### PHASE 1: FOUNDATION (Week 1-2) **Goal:** Basic home upgrade system - [ ] Implement sleep system (3 bed tiers) - [ ] Create crafting table system (small/large) - [ ] Build upgrade purchase interface - [ ] Generate bed & table sprites (Style 32) - [ ] Test energy regeneration mechanics **Estimated Assets:** 10 PNG files **Code Files:** 3 new classes --- ### PHASE 2: TOWN BUILDINGS (Week 3-4) **Goal:** Bakery & Barber functional - [ ] Build bakery shop interface - [ ] Implement food purchase system - [ ] Create barber customization menu - [ ] Generate interior sprites for both buildings - [ ] Add NPC bakers & barber **Estimated Assets:** 20 PNG files **Code Files:** 2 shop classes, 1 customization system --- ### PHASE 3: MINING & AUTOMATION (Week 5-6) **Goal:** Functional mines with zombies - [ ] Create 100-level mine system - [ ] Implement zombie miner AI - [ ] Build ore generation logic - [ ] Add elevators & crushers - [ ] Generate mine interior sprites **Estimated Assets:** 15 PNG files **Code Files:** 1 mine system, zombie task AI --- ### PHASE 4: TOWN GROWTH (Week 7-8) **Goal:** Dynamic town with sign & villages - [ ] Implement town sign with dynamic text - [ ] Create NPC limit & expansion system - [ ] Generate small village variants - [ ] Add village spawn logic to world gen - [ ] Test NPC move-in sequence **Estimated Assets:** 8 PNG files **Code Files:** Town growth system, village generator --- ### PHASE 5: PRIVACY & DECORATION (Week 9-10) **Goal:** NPC homes feel alive - [ ] Build hobby-based decoration system - [ ] Implement door lock mechanics (heart-based) - [ ] Create bedroom privacy system - [ ] Generate hobby-specific furniture - [ ] Test relationship integration **Estimated Assets:** 30+ PNG files (various hobbies) **Code Files:** NPC home system, privacy manager --- ### PHASE 6: LAWYER & ADVANCED (Week 11-12) **Goal:** Story-dependent buildings - [ ] Create lawyer office building - [ ] Implement divorce mechanics - [ ] Build house extension system (kitchen/basement) - [ ] Generate all interior lab equipment - [ ] Add Chernobyl bunker integration **Estimated Assets:** 25 PNG files **Code Files:** Divorce system, extension manager --- ## πŸ“Š TOTAL ASSET REQUIREMENTS | Category | Estimated PNGs | Priority | |---|---|---| | **Beds & Tables** | 5 | HIGH | | **Bakery Interior** | 10 | HIGH | | **Barber Interior** | 8 | MEDIUM | | **Mine Systems** | 15 | HIGH | | **Town Signs & Villages** | 8 | MEDIUM | | **NPC Hobby Furniture** | 30 | MEDIUM | | **Lab Equipment** | 20 | LOW | | **Chernobyl Bunker** | 12 | LOW | | **Catacomb Objects** | 15 | LOW | | **Underground Groves** | 10 | LOW | | **Dino Valley** | 12 | LOW | | **Universal Objects** | 15 | HIGH | | **House Extensions** | 10 | MEDIUM | | **━━━━━━━━━━** | **━━━** | **━━━** | | **TOTAL** | **~170 PNG** | | --- ## πŸš€ NEXT IMMEDIATE STEPS ### 1. HIGH PRIORITY ASSETS (Next Session) Generate these foundational sprites first: **Home Upgrades (5):** - `interior_bed_sleepingbag.png` - `interior_bed_wooden.png` - `interior_bed_kingsize.png` - `interior_table_small.png` - `interior_table_large.png` **Universal Objects (6):** - `interior_ladder_wood.png` - `interior_stairs_stone.png` - `interior_gothic_lantern.png` - `interior_wardrobe.png` - `interior_chest_locked.png` - `interior_bookshelf.png` **Farm Essentials (6):** - `interior_animal_stall.png` βœ… (already started) - `interior_tool_rack.png` βœ… (already started) - `interior_hay_pile.png` βœ… (already started) - `interior_crafting_table.png` - `interior_wooden_crate.png` - `interior_grain_sack.png` --- ### 2. CODE SKELETON SETUP Create these base classes: ```bash touch src/systems/SleepSystem.js touch src/systems/CraftingTable.js touch src/systems/HouseExtension.js touch src/buildings/BakeryShop.js touch src/buildings/BarberShop.js touch src/buildings/LawyerOffice.js touch src/systems/FunctionalMine.js touch src/systems/TownGrowth.js touch src/systems/NPCHome.js ``` --- ### 3. DOCUMENTATION UPDATE Add new systems to master documentation: - Update `GAME_SYSTEMS.md` with new mechanics - Add `INTERIOR_OBJECTS_REGISTRY.md` - Create `NPC_HOBBY_DECORATIONS.md` - Document upgrade progression paths --- ## βœ… READY TO START? **Confirm with user which phase to begin:** **Option A:** Continue generating interior object sprites (HIGH PRIORITY assets above) **Option B:** Start coding the Sleep System & Crafting Tables **Option C:** Create comprehensive asset list for approval before generation **Option D:** Build prototype of one complete system (e.g., Bakery) start-to-finish --- **πŸ“… Document Status:** COMPLETE - Ready for Implementation **⏰ Last Updated:** 2026-01-04 11:38 CET **πŸ‘€ Author:** Antigravity AI + David (DolinaSmrti)