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

39 lines
2 KiB
TypeScript
Raw Normal View History

module TK.SpaceTac {
2017-10-26 21:47:13 +00:00
testing("CooldownEffect", test => {
test.case("cools down equipment", check => {
let battle = new Battle();
let ship = battle.fleets[0].addShip();
let weapons = [TestTools.addWeapon(ship), TestTools.addWeapon(ship), TestTools.addWeapon(ship)];
weapons.forEach(weapon => weapon.configureCooldown(1, 3));
check.equals(weapons.map(weapon => ship.actions.getCooldown(weapon).heat), [0, 0, 0]);
let effect = new CooldownEffect(0, 0);
battle.applyDiffs(effect.getOnDiffs(ship, ship));
check.equals(weapons.map(weapon => ship.actions.getCooldown(weapon).heat), [0, 0, 0]);
weapons.forEach(weapon => ship.actions.storeUsage(weapon));
check.equals(weapons.map(weapon => ship.actions.getCooldown(weapon).heat), [3, 3, 3]);
battle.applyDiffs(effect.getOnDiffs(ship, ship));
check.equals(weapons.map(weapon => ship.actions.getCooldown(weapon).heat), [0, 0, 0]);
weapons.forEach(weapon => ship.actions.storeUsage(weapon));
check.equals(weapons.map(weapon => ship.actions.getCooldown(weapon).heat), [3, 3, 3]);
effect = new CooldownEffect(1, 0);
battle.applyDiffs(effect.getOnDiffs(ship, ship));
check.equals(weapons.map(weapon => ship.actions.getCooldown(weapon).heat), [2, 2, 2]);
effect = new CooldownEffect(1, 2);
battle.applyDiffs(effect.getOnDiffs(ship, ship));
check.equals(weapons.map(weapon => ship.actions.getCooldown(weapon).heat).sort(), [1, 1, 2]);
})
2017-10-26 21:47:13 +00:00
test.case("builds a textual description", check => {
check.equals(new CooldownEffect(0, 0).getDescription(), "full cooling (all equipments)");
2017-10-26 21:47:13 +00:00
check.equals(new CooldownEffect(1, 1).getDescription(), "1 cooling (1 equipment)");
check.equals(new CooldownEffect(2, 2).getDescription(), "2 cooling (2 equipments)");
})
})
}