Files
novafarma/docs/systems/ANIMAL_MEMORY_SYSTEM.md
David Kotnik 5fb502e7a8 🐕💙 Animal System & Emotional Memory Implementation
FEATURES:
- Created animals/ folder structure (wild, domestic, infected)
- Implemented proximity-based memory trigger system
- Pulsating heart UI when Kai remembers family dog
- Emotional storytelling without dialogue

NEW FILES:
- src/entities/Animal.js - Animal class with proximity detection
- src/ui/MemoryHeartUI.js - Pulsating heart with Slovenian text
- docs/systems/ANIMAL_MEMORY_SYSTEM.md - Full documentation
- scripts/organize_all_tools.py - Tool organization script

TOOLS ORGANIZATION:
- Moved 84 additional tools to items/tools/
- Final count: 427 tools organized by material tier
  • wood: 36 tools
  • stone: 60 tools
  • iron: 36 tools
  • gold: 36 tools
  • special: 259 tools

GAMESCENE INTEGRATION:
- Added Animal and MemoryHeartUI imports
- Preload heart icon and heartbeat audio
- Update animals each frame for proximity detection
- Example domestic dog spawns at (600, 600)

EMOTIONAL IMPACT:
When Kai approaches a domestic dog, a pulsating heart appears
with text 'Spominjaš se...' (You remember...) - creating a
powerful moment of nostalgia for his lost family pet.
2026-01-20 01:45:03 +01:00

85 lines
2.4 KiB
Markdown

# 🐕 Animal System & Emotional Memories
Created: January 20, 2026
## Overview
Emotional storytelling system where proximity to domestic animals triggers Kai's memories of his family, displayed through a pulsating heart UI element.
## Structure
```
assets/slike/animals/
├── wild/ # Wild animals (hostile/neutral)
├── domestic/ # Domestic animals (trigger memories)
└── infected/ # Infected animals (hostile)
```
## Components
### 1. Animal Entity (`src/entities/Animal.js`)
- Proximity detection (150px for domestic, 100px for others)
- Type system: wild, domestic, infected
- Memory trigger system
- Event emission for UI
### 2. Memory Heart UI (`src/ui/MemoryHeartUI.js`)
- Pulsating heart icon animation
- Slovenian text: "Spominjaš se..."
- Heartbeat sound effect (optional)
- Smooth fade in/out transitions
### 3. GameScene Integration
- Auto-loads heart icon and heartbeat sound
- Creates MemoryHeartUI instance
- Updates all animals each frame
- Example domestic dog at (600, 600)
## How It Works
1. **Player approaches domestic animal** (within 150px)
2. **Animal.js emits** `animal:memory_triggered` event
3. **MemoryHeartUI** receives event and shows pulsating heart
4. **Heart animation** plays with scale + alpha tweens
5. **Optional heartbeat sound** plays in loop
6. **Player moves away**, heart fades out
## Emotional Impact
When Kai sees a domestic dog, he remembers:
- His family's pet before the outbreak
- Happier times
- What he lost
This creates a powerful emotional moment without dialogue.
## Usage
### Add a new animal:
```javascript
const dog = new Animal(this, x, y, 'dog_sprite', 'domestic');
dog.animalName = 'Rex';
this.animals.push(dog);
```
### Event listening:
```javascript
this.events.on('animal:memory_triggered', (data) => {
console.log(`Memory triggered by: ${data.animal.animalName}`);
});
```
## Assets Needed
- ✅ Heart icon: `assets/slike/items/ui/*heart*.png`
- ✅ Heartbeat sound: `assets/audio/_NEW/369017__patobottos__heartbeats-61.wav`
- ⏳ Dog sprites: Add to `assets/slike/animals/domestic/`
- ⏳ Wild animal sprites: Add to `assets/slike/animals/wild/`
- ⏳ Infected animal sprites: Add to `assets/slike/animals/infected/`
## Future Enhancements
- Different memory types (family, friends, places)
- Memory flashbacks (cutscenes)
- Animal interaction system (pet, feed, etc.)
- Memory collection/journal system