2017-09-24 22:23:22 +00:00
|
|
|
module TK.SpaceTac.Specs {
|
2017-10-26 21:47:13 +00:00
|
|
|
testing("ShipLevel", test => {
|
|
|
|
test.case("level up from experience points", check => {
|
2017-03-17 00:07:00 +00:00
|
|
|
let level = new ShipLevel();
|
2017-10-26 21:47:13 +00:00
|
|
|
check.equals(level.get(), 1);
|
|
|
|
check.equals(level.getNextGoal(), 100);
|
2018-02-08 15:16:03 +00:00
|
|
|
check.equals(level.getUpgradePoints(), 0);
|
2017-03-17 00:07:00 +00:00
|
|
|
|
|
|
|
level.addExperience(60); // 60
|
2017-10-26 21:47:13 +00:00
|
|
|
check.equals(level.get(), 1);
|
|
|
|
check.equals(level.checkLevelUp(), false);
|
2017-03-17 00:07:00 +00:00
|
|
|
|
|
|
|
level.addExperience(70); // 130
|
2017-10-26 21:47:13 +00:00
|
|
|
check.equals(level.get(), 1);
|
|
|
|
check.equals(level.checkLevelUp(), true);
|
|
|
|
check.equals(level.get(), 2);
|
|
|
|
check.equals(level.getNextGoal(), 300);
|
2018-02-08 15:16:03 +00:00
|
|
|
check.equals(level.getUpgradePoints(), 6);
|
2017-03-17 00:07:00 +00:00
|
|
|
|
|
|
|
level.addExperience(200); // 330
|
2017-10-26 21:47:13 +00:00
|
|
|
check.equals(level.get(), 2);
|
|
|
|
check.equals(level.checkLevelUp(), true);
|
|
|
|
check.equals(level.get(), 3);
|
|
|
|
check.equals(level.getNextGoal(), 600);
|
2018-02-08 15:16:03 +00:00
|
|
|
check.equals(level.getUpgradePoints(), 9);
|
2017-03-17 00:07:00 +00:00
|
|
|
|
|
|
|
level.addExperience(320); // 650
|
2017-10-26 21:47:13 +00:00
|
|
|
check.equals(level.get(), 3);
|
|
|
|
check.equals(level.checkLevelUp(), true);
|
|
|
|
check.equals(level.get(), 4);
|
|
|
|
check.equals(level.getNextGoal(), 1000);
|
2018-02-08 15:16:03 +00:00
|
|
|
check.equals(level.getUpgradePoints(), 12);
|
2017-03-17 00:07:00 +00:00
|
|
|
});
|
|
|
|
|
2017-10-26 21:47:13 +00:00
|
|
|
test.case("forces a given level", check => {
|
2017-03-17 00:07:00 +00:00
|
|
|
let level = new ShipLevel();
|
2017-10-26 21:47:13 +00:00
|
|
|
check.equals(level.get(), 1);
|
2017-03-17 00:07:00 +00:00
|
|
|
|
|
|
|
level.forceLevel(10);
|
2017-10-26 21:47:13 +00:00
|
|
|
check.equals(level.get(), 10);
|
2017-03-17 00:07:00 +00:00
|
|
|
});
|
2018-03-20 22:06:39 +00:00
|
|
|
|
|
|
|
test.case("manages upgrades", check => {
|
|
|
|
let up1 = { code: "test1" };
|
|
|
|
let up2 = { code: "test2" };
|
|
|
|
|
|
|
|
let level = new ShipLevel();
|
|
|
|
check.equals(level.getUpgrades(), []);
|
|
|
|
check.equals(level.hasUpgrade(up1), false);
|
|
|
|
|
|
|
|
level.activateUpgrade(up1, true);
|
|
|
|
check.equals(level.getUpgrades(), ["test1"]);
|
|
|
|
check.equals(level.hasUpgrade(up1), true);
|
|
|
|
|
|
|
|
level.activateUpgrade(up1, true);
|
|
|
|
check.equals(level.getUpgrades(), ["test1"]);
|
|
|
|
check.equals(level.hasUpgrade(up1), true);
|
|
|
|
|
|
|
|
level.activateUpgrade(up1, false);
|
|
|
|
check.equals(level.getUpgrades(), []);
|
|
|
|
check.equals(level.hasUpgrade(up1), false);
|
|
|
|
|
|
|
|
level.activateUpgrade(up1, true);
|
|
|
|
level.activateUpgrade(up2, true);
|
|
|
|
check.equals(level.getUpgrades(), ["test1", "test2"]);
|
|
|
|
level.clearUpgrades();
|
|
|
|
check.equals(level.getUpgrades(), []);
|
|
|
|
});
|
2017-03-17 00:07:00 +00:00
|
|
|
});
|
|
|
|
}
|