1
0
Fork 0
spacetac/src/core/equipments/Shields.spec.ts

100 lines
4.3 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", 160),
new AttributeEffect("precision", -1),
]);
expect(equipment.price).toEqual(140);
equipment = template.generate(2);
expect(equipment.requirements).toEqual({ "skill_gravity": 5 });
expect(equipment.effects).toEqual([
new AttributeEffect("shield_capacity", 190),
new AttributeEffect("precision", -2),
]);
expect(equipment.price).toEqual(320);
equipment = template.generate(3);
expect(equipment.requirements).toEqual({ "skill_gravity": 8 });
expect(equipment.effects).toEqual([
new AttributeEffect("shield_capacity", 220),
new AttributeEffect("precision", -3),
]);
expect(equipment.price).toEqual(680);
equipment = template.generate(10);
expect(equipment.requirements).toEqual({ "skill_gravity": 29 });
expect(equipment.effects).toEqual([
new AttributeEffect("shield_capacity", 430),
new AttributeEffect("precision", -10),
]);
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", 165),
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", 200),
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", 445),
new AttributeEffect("power_generation", -3),
]);
expect(equipment.price).toEqual(7500);
});
});
}