mirror of
https://gitlab.com/veloren/veloren.git
synced 2024-08-30 18:12:32 +00:00
Persitence now tracks spent_exp as an additional point to potentially invalidate skills.
This commit is contained in:
@ -476,71 +476,3 @@ pub enum SpRewardError {
|
||||
InsufficientExp,
|
||||
UnavailableSkillGroup,
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use super::*;
|
||||
// Code reviewers: Open a comment here, I want to refactor these tests
|
||||
|
||||
#[test]
|
||||
fn test_refund_skill() {
|
||||
let mut skillset = SkillSet::default();
|
||||
skillset.unlock_skill_group(SkillGroupKind::Weapon(ToolKind::Axe));
|
||||
skillset.add_skill_points(SkillGroupKind::Weapon(ToolKind::Axe), 1);
|
||||
skillset.unlock_skill(Skill::Axe(AxeSkill::UnlockLeap));
|
||||
|
||||
assert_eq!(skillset.skill_groups[2].available_sp, 0);
|
||||
assert_eq!(skillset.skills.len(), 1);
|
||||
assert!(skillset.has_skill(Skill::Axe(AxeSkill::UnlockLeap)));
|
||||
|
||||
skillset.refund_skill(Skill::Axe(AxeSkill::UnlockLeap));
|
||||
|
||||
assert_eq!(skillset.skill_groups[2].available_sp, 1);
|
||||
assert_eq!(skillset.skills.get(&Skill::Axe(AxeSkill::UnlockLeap)), None);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_unlock_skillgroup() {
|
||||
let mut skillset = SkillSet::default();
|
||||
skillset.unlock_skill_group(SkillGroupKind::Weapon(ToolKind::Axe));
|
||||
|
||||
assert_eq!(skillset.skill_groups.len(), 3);
|
||||
assert_eq!(
|
||||
skillset.skill_groups[2],
|
||||
SkillGroup::new(SkillGroupKind::Weapon(ToolKind::Axe))
|
||||
);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_unlock_skill() {
|
||||
let mut skillset = SkillSet::default();
|
||||
|
||||
skillset.unlock_skill_group(SkillGroupKind::Weapon(ToolKind::Axe));
|
||||
skillset.add_skill_points(SkillGroupKind::Weapon(ToolKind::Axe), 1);
|
||||
|
||||
assert_eq!(skillset.skill_groups[2].available_sp, 1);
|
||||
assert_eq!(skillset.skills.len(), 0);
|
||||
|
||||
// Try unlocking a skill with enough skill points
|
||||
skillset.unlock_skill(Skill::Axe(AxeSkill::UnlockLeap));
|
||||
|
||||
assert_eq!(skillset.skill_groups[2].available_sp, 0);
|
||||
assert_eq!(skillset.skills.len(), 1);
|
||||
assert!(skillset.has_skill(Skill::Axe(AxeSkill::UnlockLeap)));
|
||||
|
||||
// Try unlocking a skill without enough skill points
|
||||
skillset.unlock_skill(Skill::Axe(AxeSkill::DsCombo));
|
||||
|
||||
assert_eq!(skillset.skills.len(), 1);
|
||||
assert_eq!(skillset.skills.get(&Skill::Axe(AxeSkill::DsCombo)), None);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_add_skill_points() {
|
||||
let mut skillset = SkillSet::default();
|
||||
skillset.unlock_skill_group(SkillGroupKind::Weapon(ToolKind::Axe));
|
||||
skillset.add_skill_points(SkillGroupKind::Weapon(ToolKind::Axe), 1);
|
||||
|
||||
assert_eq!(skillset.skill_groups[2].available_sp, 1);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user