Files
novafarma/src/systems/ZombieWorkerSystem.js
2025-12-08 03:25:58 +01:00

51 lines
1.6 KiB
JavaScript

class ZombieWorkerSystem {
constructor(scene) {
this.scene = scene;
this.workers = []; // Array of tamed zombies (NPC objects)
console.log('🧟 ZombieWorkerSystem: Initialized');
}
registerWorker(npc) {
if (!this.workers.includes(npc)) {
this.workers.push(npc);
npc.workerStats = {
energy: 100, // Energija (pada ob delu)
decay: 0, // Razpadanje (0-100%, 100% = smrt)
xp: 0, // Izkušnje zombija
level: 1,
task: 'IDLE' // IDLE, FARM, MINE, GUARD, FOLLOW
};
console.log(`🧟 Zombie ${this.workers.length} registered as Worker!`);
// UI Feedback
this.scene.events.emit('show-floating-text', {
x: npc.sprite.x,
y: npc.sprite.y - 50,
text: "New Worker!",
color: "#00FF00"
});
}
}
unregisterWorker(npc) {
const idx = this.workers.indexOf(npc);
if (idx > -1) {
this.workers.splice(idx, 1);
console.log('🧟 Zombie Worker removed.');
}
}
update(time, delta) {
// Update logic for all workers (e.g. decay, energy regen if sleeping)
// This is called every frame, so keep it light.
// Example: Decay tick every 10 seconds (handled by timer, or simplified here)
}
// Assign a task to all idle workers or specific one
assignTask(taskName, targetPos) {
// TODO: Poišči prostega delavca in mu daj nalogo
}
}