• A group of skills that have been unlocked by a player. Each skill group has independent exp and skill points which are used to unlock skills in that skill group.
  • Contains the prerequisite skills for each skill. It cannot currently detect cyclic dependencies, so if you modify the prerequisite map ensure that there are no cycles of prerequisites.
  • Contains all of a player’s skill groups and skills. Provides methods for manipulating assigned skills and skill groups including unlocking skills, refunding skills etc.
  • BTreeSet is used here to ensure that skills are ordered. This is important to ensure that the hash created from it is consistent so that we don’t needlessly force a respec when loading skills from persistence.