100 lines
4.5 KiB
TypeScript
100 lines
4.5 KiB
TypeScript
module TS.SpaceTac.Equipments {
|
|
describe("Shields", function () {
|
|
it("generates ForceField based on level", function () {
|
|
let template = new ForceField();
|
|
|
|
let equipment = template.generate(1);
|
|
expect(equipment.requirements).toEqual({ "skill_photons": 1 });
|
|
expect(equipment.effects).toEqual([new AttributeEffect("shield_capacity", 100)]);
|
|
expect(equipment.price).toEqual(100);
|
|
|
|
equipment = template.generate(2);
|
|
expect(equipment.requirements).toEqual({ "skill_photons": 3 });
|
|
expect(equipment.effects).toEqual([new AttributeEffect("shield_capacity", 140)]);
|
|
expect(equipment.price).toEqual(300);
|
|
|
|
equipment = template.generate(3);
|
|
expect(equipment.requirements).toEqual({ "skill_photons": 5 });
|
|
expect(equipment.effects).toEqual([new AttributeEffect("shield_capacity", 180)]);
|
|
expect(equipment.price).toEqual(700);
|
|
|
|
equipment = template.generate(10);
|
|
expect(equipment.requirements).toEqual({ "skill_photons": 19 });
|
|
expect(equipment.effects).toEqual([new AttributeEffect("shield_capacity", 460)]);
|
|
expect(equipment.price).toEqual(9100);
|
|
});
|
|
|
|
it("generates GravitShield based on level", function () {
|
|
let template = new GravitShield();
|
|
|
|
let equipment = template.generate(1);
|
|
expect(equipment.requirements).toEqual({ "skill_gravity": 2 });
|
|
expect(equipment.effects).toEqual([
|
|
new AttributeEffect("shield_capacity", 80),
|
|
]);
|
|
expect(equipment.action).toEqual(new FireWeaponAction(equipment, 2, 0, 300, [new RepelEffect(100)]));
|
|
expect(equipment.price).toEqual(140);
|
|
|
|
equipment = template.generate(2);
|
|
expect(equipment.requirements).toEqual({ "skill_gravity": 5 });
|
|
expect(equipment.effects).toEqual([
|
|
new AttributeEffect("shield_capacity", 110),
|
|
]);
|
|
expect(equipment.action).toEqual(new FireWeaponAction(equipment, 2, 0, 310, [new RepelEffect(105)]));
|
|
expect(equipment.price).toEqual(320);
|
|
|
|
equipment = template.generate(3);
|
|
expect(equipment.requirements).toEqual({ "skill_gravity": 8 });
|
|
expect(equipment.effects).toEqual([
|
|
new AttributeEffect("shield_capacity", 140),
|
|
]);
|
|
expect(equipment.action).toEqual(new FireWeaponAction(equipment, 2, 0, 320, [new RepelEffect(110)]));
|
|
expect(equipment.price).toEqual(680);
|
|
|
|
equipment = template.generate(10);
|
|
expect(equipment.requirements).toEqual({ "skill_gravity": 29 });
|
|
expect(equipment.effects).toEqual([
|
|
new AttributeEffect("shield_capacity", 350),
|
|
]);
|
|
expect(equipment.action).toEqual(new FireWeaponAction(equipment, 2, 0, 390, [new RepelEffect(145)]));
|
|
expect(equipment.price).toEqual(8240);
|
|
});
|
|
|
|
it("generates InverterShield based on level", function () {
|
|
let template = new InverterShield();
|
|
|
|
let equipment = template.generate(1);
|
|
expect(equipment.requirements).toEqual({ "skill_antimatter": 2 });
|
|
expect(equipment.effects).toEqual([
|
|
new AttributeEffect("shield_capacity", 130),
|
|
new AttributeEffect("power_generation", -1),
|
|
]);
|
|
expect(equipment.price).toEqual(300);
|
|
|
|
equipment = template.generate(2);
|
|
expect(equipment.requirements).toEqual({ "skill_antimatter": 4 });
|
|
expect(equipment.effects).toEqual([
|
|
new AttributeEffect("shield_capacity", 175),
|
|
new AttributeEffect("power_generation", -1),
|
|
]);
|
|
expect(equipment.price).toEqual(460);
|
|
|
|
equipment = template.generate(3);
|
|
expect(equipment.requirements).toEqual({ "skill_antimatter": 6 });
|
|
expect(equipment.effects).toEqual([
|
|
new AttributeEffect("shield_capacity", 220),
|
|
new AttributeEffect("power_generation", -1),
|
|
]);
|
|
expect(equipment.price).toEqual(780);
|
|
|
|
equipment = template.generate(10);
|
|
expect(equipment.requirements).toEqual({ "skill_antimatter": 20 });
|
|
expect(equipment.effects).toEqual([
|
|
new AttributeEffect("shield_capacity", 535),
|
|
new AttributeEffect("power_generation", -3),
|
|
]);
|
|
expect(equipment.price).toEqual(7500);
|
|
});
|
|
});
|
|
}
|