1
0
Fork 0
spacetac/src/game/Equipment.spec.ts

52 lines
1.8 KiB
TypeScript

module TS.SpaceTac.Game.Specs {
describe("Equipment", () => {
it("checks capabilities requirements", function () {
var equipment = new Equipment();
var ship = new Ship();
expect(equipment.canBeEquipped(ship)).toBe(true);
equipment.requirements.push(new Attribute(AttributeCode.Cap_Time, 2));
expect(equipment.canBeEquipped(ship)).toBe(false);
ship.cap_time.set(1);
expect(equipment.canBeEquipped(ship)).toBe(false);
ship.cap_time.set(2);
expect(equipment.canBeEquipped(ship)).toBe(true);
ship.cap_time.set(3);
expect(equipment.canBeEquipped(ship)).toBe(true);
// Second requirement
equipment.requirements.push(new Attribute(AttributeCode.Cap_Material, 3));
expect(equipment.canBeEquipped(ship)).toBe(false);
ship.cap_material.set(4);
expect(equipment.canBeEquipped(ship)).toBe(true);
});
it("generates a description of the effects", function () {
var equipment = new Equipment();
equipment.distance = 3;
expect(equipment.getActionDescription()).toEqual("does nothing");
equipment.target_effects.push(new DamageEffect(50));
expect(equipment.getActionDescription()).toEqual("- 50 damage on target");
equipment.blast = 20;
expect(equipment.getActionDescription()).toEqual("- 50 damage on all ships in 20km of impact");
equipment.blast = 0;
equipment.target_effects.push(new StickyEffect(new AttributeLimitEffect(AttributeCode.Shield, 200), 3));
expect(equipment.getActionDescription()).toEqual("- 50 damage on target\n- limit shield to 200 for 3 turns on target");
});
});
}