ok
This commit is contained in:
834
docs/GAME_SYSTEMS_EXPANSION_PLAN.md
Normal file
834
docs/GAME_SYSTEMS_EXPANSION_PLAN.md
Normal file
@@ -0,0 +1,834 @@
|
||||
# 🏗️ 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)
|
||||
Reference in New Issue
Block a user