import { Component } from '../core/Component.js'; /** * Tracks progress toward learning skills * Need to absorb multiple enemies with the same skill to learn it */ export class SkillProgress extends Component { constructor() { super('SkillProgress'); this.skillProgress = new Map(); // skillId -> count (how many times absorbed) this.requiredAbsorptions = 5; // Need to absorb 5 enemies with a skill to learn it } /** * Add progress toward learning a skill */ addSkillProgress(skillId) { const current = this.skillProgress.get(skillId) || 0; this.skillProgress.set(skillId, current + 1); return this.skillProgress.get(skillId); } /** * Check if skill can be learned */ canLearnSkill(skillId) { const progress = this.skillProgress.get(skillId) || 0; return progress >= this.requiredAbsorptions; } /** * Get progress for a skill */ getSkillProgress(skillId) { return this.skillProgress.get(skillId) || 0; } /** * Get all skill progress */ getAllProgress() { return this.skillProgress; } }