2017-02-09 00:00:35 +00:00
|
|
|
module TS.SpaceTac {
|
2015-02-26 00:00:00 +00:00
|
|
|
describe("BaseAction", function () {
|
|
|
|
it("check if equipment can be used with remaining AP", function () {
|
2017-03-05 14:12:08 +00:00
|
|
|
var equipment = new Equipment(SlotType.Hull);
|
2017-01-08 22:42:53 +00:00
|
|
|
var action = new BaseAction("test", "Test", false, equipment);
|
2017-04-18 19:51:23 +00:00
|
|
|
spyOn(action, "getActionPointsUsage").and.returnValue(3);
|
2015-02-26 00:00:00 +00:00
|
|
|
var ship = new Ship();
|
2017-03-05 14:12:08 +00:00
|
|
|
ship.addSlot(SlotType.Hull).attach(equipment);
|
2017-02-07 19:15:21 +00:00
|
|
|
ship.values.power.setMaximal(10);
|
2015-02-26 00:00:00 +00:00
|
|
|
|
2017-03-07 19:27:46 +00:00
|
|
|
expect(action.checkCannotBeApplied(ship)).toBe("not enough power");
|
2015-02-26 00:00:00 +00:00
|
|
|
|
2017-02-07 19:15:21 +00:00
|
|
|
ship.values.power.set(5);
|
2015-02-26 00:00:00 +00:00
|
|
|
|
2017-03-07 19:27:46 +00:00
|
|
|
expect(action.checkCannotBeApplied(ship)).toBe(null);
|
|
|
|
expect(action.checkCannotBeApplied(ship, 4)).toBe(null);
|
|
|
|
expect(action.checkCannotBeApplied(ship, 3)).toBe(null);
|
|
|
|
expect(action.checkCannotBeApplied(ship, 2)).toBe("not enough power");
|
2015-02-26 00:00:00 +00:00
|
|
|
|
2017-02-07 19:15:21 +00:00
|
|
|
ship.values.power.set(3);
|
2015-02-26 00:00:00 +00:00
|
|
|
|
2017-03-07 19:27:46 +00:00
|
|
|
expect(action.checkCannotBeApplied(ship)).toBe(null);
|
2015-02-26 00:00:00 +00:00
|
|
|
|
2017-02-07 19:15:21 +00:00
|
|
|
ship.values.power.set(2);
|
2015-02-26 00:00:00 +00:00
|
|
|
|
2017-03-07 19:27:46 +00:00
|
|
|
expect(action.checkCannotBeApplied(ship)).toBe("not enough power");
|
2015-02-26 00:00:00 +00:00
|
|
|
});
|
2017-04-24 17:59:16 +00:00
|
|
|
|
2017-05-16 23:12:05 +00:00
|
|
|
it("check if equipment can be used with overheat", function () {
|
|
|
|
let equipment = new Equipment();
|
|
|
|
let action = new BaseAction("test", "Test", false, equipment);
|
|
|
|
let ship = new Ship();
|
|
|
|
|
|
|
|
expect(action.checkCannotBeApplied(ship)).toBe(null);
|
2017-05-22 16:29:04 +00:00
|
|
|
expect(action.getUsesBeforeOverheat()).toBe(Infinity);
|
2017-05-16 23:12:05 +00:00
|
|
|
|
|
|
|
equipment.cooldown.use();
|
|
|
|
expect(action.checkCannotBeApplied(ship)).toBe(null);
|
2017-05-22 16:29:04 +00:00
|
|
|
expect(action.getUsesBeforeOverheat()).toBe(Infinity);
|
2017-05-16 23:12:05 +00:00
|
|
|
|
2017-05-22 16:29:04 +00:00
|
|
|
equipment.cooldown.configure(2, 3);
|
2017-05-16 23:12:05 +00:00
|
|
|
expect(action.checkCannotBeApplied(ship)).toBe(null);
|
2017-05-22 16:29:04 +00:00
|
|
|
expect(action.getUsesBeforeOverheat()).toBe(2);
|
2017-05-16 23:12:05 +00:00
|
|
|
|
|
|
|
equipment.cooldown.use();
|
|
|
|
expect(action.checkCannotBeApplied(ship)).toBe(null);
|
2017-05-22 16:29:04 +00:00
|
|
|
expect(action.getUsesBeforeOverheat()).toBe(1);
|
|
|
|
expect(action.getCooldownDuration()).toBe(0);
|
2017-05-16 23:12:05 +00:00
|
|
|
|
|
|
|
equipment.cooldown.use();
|
|
|
|
expect(action.checkCannotBeApplied(ship)).toBe("overheated");
|
2017-05-22 16:29:04 +00:00
|
|
|
expect(action.getUsesBeforeOverheat()).toBe(0);
|
|
|
|
expect(action.getCooldownDuration()).toBe(3);
|
2017-05-16 23:12:05 +00:00
|
|
|
|
|
|
|
equipment.cooldown.cool();
|
|
|
|
expect(action.checkCannotBeApplied(ship)).toBe("overheated");
|
2017-05-22 16:29:04 +00:00
|
|
|
expect(action.getCooldownDuration()).toBe(2);
|
2017-05-16 23:12:05 +00:00
|
|
|
|
|
|
|
equipment.cooldown.cool();
|
|
|
|
expect(action.checkCannotBeApplied(ship)).toBe("overheated");
|
2017-05-22 16:29:04 +00:00
|
|
|
expect(action.getCooldownDuration()).toBe(1);
|
2017-05-16 23:12:05 +00:00
|
|
|
|
|
|
|
equipment.cooldown.cool();
|
|
|
|
expect(action.checkCannotBeApplied(ship)).toBe(null);
|
2017-05-22 16:29:04 +00:00
|
|
|
expect(action.getCooldownDuration()).toBe(0);
|
|
|
|
expect(action.getCooldownDuration(true)).toBe(3);
|
2017-05-16 23:12:05 +00:00
|
|
|
});
|
|
|
|
|
2017-04-24 17:59:16 +00:00
|
|
|
it("wears down equipment and power generators", function () {
|
|
|
|
let ship = new Ship();
|
|
|
|
TestTools.setShipAP(ship, 10);
|
|
|
|
let power = ship.listEquipment(SlotType.Power)[0];
|
|
|
|
let equipment = new Equipment(SlotType.Weapon);
|
|
|
|
let action = new BaseAction("test", "Test", false, equipment);
|
|
|
|
|
|
|
|
expect(power.wear).toBe(0);
|
|
|
|
expect(equipment.wear).toBe(0);
|
|
|
|
action.apply(ship, null);
|
|
|
|
|
|
|
|
expect(power.wear).toBe(1);
|
|
|
|
expect(equipment.wear).toBe(1);
|
|
|
|
});
|
2015-02-26 00:00:00 +00:00
|
|
|
});
|
|
|
|
}
|