1
0
Fork 0
spacetac/src/core/effects/AttributeLimitEffect.spec.ts

28 lines
1 KiB
TypeScript
Raw Normal View History

2019-11-21 22:14:27 +00:00
testing("AttributeLimitEffect", test => {
test.case("applies cumulatively on attribute", check => {
let battle = new Battle();
let ship = battle.fleets[0].addShip();
ship.attributes.evasion.addModifier(12);
check.equals(ship.getAttribute("evasion"), 12, "initial");
2019-11-21 22:14:27 +00:00
let effect1 = new AttributeLimitEffect("evasion", 5);
battle.applyDiffs(effect1.getOnDiffs(ship, ship));
check.equals(ship.getAttribute("evasion"), 5, "applied 1");
2019-11-21 22:14:27 +00:00
let effect2 = new AttributeLimitEffect("evasion", 3);
battle.applyDiffs(effect2.getOnDiffs(ship, ship));
check.equals(ship.getAttribute("evasion"), 3, "applied 2");
2019-11-21 22:14:27 +00:00
battle.applyDiffs(effect1.getOffDiffs(ship));
check.equals(ship.getAttribute("evasion"), 3, "reverted 1");
2019-11-21 22:14:27 +00:00
battle.applyDiffs(effect2.getOffDiffs(ship));
check.equals(ship.getAttribute("evasion"), 12, "reverted 2");
});
2019-11-21 22:14:27 +00:00
test.case("has a description", check => {
let effect = new AttributeLimitEffect("power_capacity", 4);
check.equals(effect.getDescription(), "limit power capacity to 4");
});
});