Skill Plugin
Skills are a mechanic traditionally used in RPGs. You perform actions, gain experience and level up, which often unlock new actions or equipment to enjoy.
The skill plugin provides tracking for skills, gaining experience and a bunch of utility methods so you can easily display player progress.
Demo
Skill Plugin
Fishing level: 1 0 / 3
Usage
import { SkillPlugin } from '@123ishatest/ludiek';
const skill = new SkillPlugin();
skill.loadContent([
{ id: '/skill/fishing', experiencePerLevel: [0, 0, 3, 9, 18, 30, 45, 63, 84] },
{ id: '/skill/mining', experiencePerLevel: [0, 300, 200], initialExperience: 100 },
]);
// Gain experience
skill.gainExperience({ skill: '/skill/fishing', amount: 10 });
// Check our current experience and level
skill.getExperience('/skill/fishing') // 10
skill.getLevel('/skill/fishing') // 3
skill.getExpThisLevel('/skill/fishing') // 1
// Utility methods
skill.getTotalExpNeededForLevel('/skill/fishing', 2) // 3
skill.getExpNeededForLevel('/skill/fishing', 4) // 12
skill.getLevelProgress('/skill/fishing') // { current: 1, target: 9, percentage: 0.111 } Connect to events.
skill.onExperienceGained.subscribe((skill, exp) => {
console.log(`You have gained ${exp} experience in ${skill.id}`)
});
skill.onLevelUp.subscribe((skill, level) => {
console.log(`You have reached level ${level} in ${skill.id`)
});