Files
novafarma/docs/TODO_JAN_9_2026_IMPLEMENTATION.md
2026-01-20 01:05:17 +01:00

8.0 KiB

🎯 TODO ZA JUTRI - JAN 9, 2026

Implementacija Faza 2 Asset v Igro

Status: FAZA 2 - 100% ASSETS COMPLETE!
Next: Dodati sisteme v igro za uporabo assetov


🚀 PRIORITY SISTEMI ZA IMPLEMENTACIJO

1. NPC SISTEM (HIGHEST PRIORITY!)

Kar imaš:

  • 4 NPCji s polnimi 8-directional animations (32 sprites total)
  • Guard Captain Luka, Innkeeper Janez, Store Owner Novak, Elder Marta
  • Vsak ima: portrait, idle (left/right/back), walk (left/right/back), custom action

Kar rabiš dodati v kodo:

A. NPC Movement System:

// src/entities/NPC.js
class NPC extends Phaser.GameObjects.Sprite {
  constructor(scene, x, y, npcData) {
    // npcData = { name, spriteKey, dialogues, schedule }
    super(scene, x, y, npcData.spriteKey);
    
    this.npcData = npcData;
    this.direction = 'down'; // front, left, right, back
    this.state = 'idle'; // idle, walk, action
    
    this.loadAnimations();
    this.setupBehavior();
  }
  
  loadAnimations() {
    // Naloži vse 8 animacij za ta NPC
    // idle_left, idle_right, idle_back, idle_front
    // walk_left, walk_right, walk_back, walk_front
    // action (custom za vsakega)
  }
  
  setupBehavior() {
    // Integracija z NPCIdleBehavior.js (že obstaja!)
    // Random idle animations every 3-8 seconds
  }
}

B. NPC Dialogue System:

// src/ui/DialogueBox.js
class DialogueBox {
  showDialogue(npcName, text, portrait) {
    // Uporabi NPC portrait sprite
    // Display text with typewriter effect
    // Allow player choices if quest-related
  }
}

C. NPC Schedule System (Optional for later):

// NPCs move around town based on time
// Luka - patrols streets
// Janez - stays at inn, serves during evening
// Novak - at store during day
// Marta - sits at square, walks slowly

2. BUILDING RESTORATION SYSTEM

Kar imaš:

  • 50 building sprites (40 main + 10 decorations)
  • Progression states: broken → repaired
  • Windows, doors, signs, decorations

Kar rabiš dodati v kodo:

A. Building State Manager:

// src/systems/BuildingStateManager.js
class BuildingStateManager {
  constructor(scene) {
    this.buildings = new Map();
    // Each building has: id, currentStage, maxStages
  }
  
  upgradeBuilding(buildingId) {
    const building = this.buildings.get(buildingId);
    if (building.currentStage < building.maxStages) {
      building.currentStage++;
      this.updateBuildingSprite(buildingId);
      return true;
    }
    return false;
  }
  
  updateBuildingSprite(buildingId) {
    // Switch sprite to next stage
    // Update collision if needed
  }
}

B. Restoration Quest System:

// Player collects resources → brings to building
// Building upgrades visually
// Town looks better as player progresses

3. PROP INTERACTION SYSTEM

Kar imaš:

  • 67 infrastructure props (wells, benches, signs, tools, etc.)
  • Interactive elements (bulletin board, tool rack, water well)

Kar rabiš dodati v kodo:

A. Interactive Props:

// src/entities/InteractiveProp.js
class InteractiveProp extends Phaser.GameObjects.Sprite {
  constructor(scene, x, y, propType) {
    super(scene, x, y, propType);
    this.interactionType = this.getInteractionType(propType);
  }
  
  interact(player) {
    switch(this.interactionType) {
      case 'bulletin_board':
        // Show quest board
        break;
      case 'water_well':
        // Fill water can
        break;
      case 'tool_rack':
        // Access community tools
        break;
      case 'bench':
        // Sit and rest (heal?)
        break;
    }
  }
}

4. WEATHER & LIGHTING SYSTEM

Kar imaš:

  • Fog overlay
  • Rain animation
  • Lit lanterns
  • Wall torches

Kar rabiš dodati v kodo:

A. Weather System:

// src/systems/WeatherSystem.js
class WeatherSystem {
  setWeather(type) {
    switch(type) {
      case 'fog':
        this.addFogOverlay();
        break;
      case 'rain':
        this.addRainParticles();
        break;
      case 'clear':
        this.clearWeather();
        break;
    }
  }
}

B. Lighting System:

// Street lamps turn on at night
// Torches flicker
// Player flashlight interacts with darkness

5. CEMETERY SYSTEM

Kar imaš:

  • 20 cemetery sprites (mausoleum, gates, crypts, plaques)
  • Broken → restored progression

Kar rabiš dodati v kodo:

A. Cemetery Interaction:

// Memorial plaques - read inscriptions
// Mausoleum - quest location?
// Crypt door - dungeon entrance?
// Gates - unlock with quest progression

📋 IMPLEMENTATION PRIORITY

DAY 1 (TOMORROW):

  1. NPC Basic Movement

    • Load 4 NPCs into town
    • Idle animations working
    • Can walk (simple patrol?)
  2. NPC Dialogue

    • Click NPC → show dialogue
    • Portrait display
    • Text system

DAY 2:

  1. Interactive Props

    • Bulletin board quest system
    • Water well interaction
    • Bench sitting
  2. Building States

    • Load broken buildings
    • Simple upgrade system (test 1 building)

DAY 3:

  1. Weather Effects

    • Fog overlay test
    • Rain particles
  2. Lighting System

    • Night/day cycle basic
    • Lanterns light up

🔧 TECHNICAL INTEGRATION CHECKLIST

A. Sprite Loading:

// In GameScene preload():
this.load.spritesheet('luka_idle_left', 'assets/references/faza2_npcs/guard_luka/idle_left.png', {
  frameWidth: ???, // Check actual sprite size
  frameHeight: ???
});
// ... repeat for all 32 NPC sprites

B. Animation Creation:

// In GameScene create():
this.anims.create({
  key: 'luka_idle_left',
  frames: this.anims.generateFrameNumbers('luka_idle_left'),
  frameRate: 8,
  repeat: -1
});

C. NPC Spawning:

// Create NPCs in town
this.luka = new NPC(this, 400, 300, {
  name: 'Guard Captain Luka',
  spriteKey: 'luka',
  dialogues: LUKA_DIALOGUES
});

📁 FILES TO CREATE/UPDATE

Create:

  1. src/entities/NPC.js - NPC class
  2. src/ui/DialogueBox.js - Dialogue system
  3. src/entities/InteractiveProp.js - Props
  4. src/systems/BuildingStateManager.js - Buildings
  5. src/systems/WeatherSystem.js - Weather

Update:

  1. src/scenes/GameScene.js - Add NPCs, props, weather
  2. src/ai/NPCIdleBehavior.js - Already exists! Just integrate
  3. src/config/NPCData.js - Create NPC definitions

🎯 QUICK WIN FOR TOMORROW

NAJLAŽJI START:

  1. Naloži 1 NPC (Luka) v GameScene
  2. Dodaj idle_left animation
  3. Klik na njega → show "Hello, I'm Luka!"
  4. DONE - NPC sistem dela!

Potem expand:

  • Dodaj ostale 3 NPCje
  • Dodaj walk animations
  • Dodaj dialogue choices
  • Dodaj quest system

💡 POMEMBNO ZA JUTRI

ŠE RABIŠ VEDETI:

  1. Sprite Sizes? - Preveri dejanske dimenzije sprite-ov
  2. Frame Counts? - Koliko framov ima vsaka animacija?
  3. Tiled Integration? - Ali boš dodajal v obstoječi map ali nov?

QUICK CHECK:

# Check sprite dimensions
cd assets/references/faza2_npcs/guard_luka
file idle_left.png
# Output will show: PNG image data, 128 x 128 (example)

🚀 JUTRI ZAČNI Z:

  1. Open src/scenes/GameScene.js
  2. Preload 1 NPC sprite (Luka idle_left)
  3. Create simple NPC sprite
  4. Add click interaction
  5. Test - če dela → expand!

📊 OČAKOVAN PROGRESS JUTRI

Realistično:

  • 1 NPC working (Luka)
  • Basic dialogue
  • 1-2 interactive props

Če gre smooth:

  • All 4 NPCs
  • Full dialogue system
  • Quest board working

Če gre EPIC:

  • NPCs patrol
  • Building restoration
  • Weather system

🎊 MOTIVACIJA

Danes si naredil:

  • 255 sprites v 12 urah! 🔥
  • 100% Faza 2 complete! 🏆

Jutri boš naredil:

  • Assets LIVE in game! 🎮
  • NPCs hodijo po town! 👥
  • Players lahko interactajo! 🎯

IT'S ALL COMING TOGETHER! 💎


Sleep well, legend! Jutri se nadaljuje! 😴🌙