33 lines
1.5 KiB
TypeScript
33 lines
1.5 KiB
TypeScript
|
module TK.SpaceTac.Specs {
|
||
|
testing("ShipActionUsedDiff", test => {
|
||
|
test.case("applies and reverts", check => {
|
||
|
let battle = new Battle();
|
||
|
let ship = battle.fleets[0].addShip();
|
||
|
|
||
|
let generator = TestTools.setShipAP(ship, 10);
|
||
|
let weapon = TestTools.addWeapon(ship, 50, 3, 10, 20);
|
||
|
weapon.cooldown.configure(2, 1);
|
||
|
|
||
|
TestTools.diffChain(check, battle, [
|
||
|
new ShipActionUsedDiff(ship, nn(weapon.action), Target.newFromShip(ship)),
|
||
|
new ShipActionUsedDiff(ship, nn(weapon.action), Target.newFromShip(ship)),
|
||
|
], [
|
||
|
check => {
|
||
|
check.equals(weapon.cooldown.getRemainingUses(), 2, "cooldown");
|
||
|
check.equals(weapon.wear, 0, "weapon wear");
|
||
|
check.equals(generator.wear, 0, "generator wear");
|
||
|
},
|
||
|
check => {
|
||
|
check.equals(weapon.cooldown.getRemainingUses(), 1, "cooldown");
|
||
|
check.equals(weapon.wear, 1, "weapon wear");
|
||
|
check.equals(generator.wear, 1, "generator wear");
|
||
|
},
|
||
|
check => {
|
||
|
check.equals(weapon.cooldown.getRemainingUses(), 0, "cooldown");
|
||
|
check.equals(weapon.wear, 2, "weapon wear");
|
||
|
check.equals(generator.wear, 2, "generator wear");
|
||
|
},
|
||
|
]);
|
||
|
});
|
||
|
});
|
||
|
}
|