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

92 lines
4 KiB
TypeScript

module TK.SpaceTac.Equipments {
describe("Generators", function () {
it("generates NuclearReactor based on level", function () {
let template = new NuclearReactor();
let equipment = template.generate(1);
expect(equipment.requirements).toEqual({ "skill_photons": 1 });
expect(equipment.effects).toEqual([
new AttributeEffect("maneuvrability", 1),
new AttributeEffect("power_capacity", 7),
new AttributeEffect("power_generation", 4),
]);
expect(equipment.price).toEqual(395);
equipment = template.generate(2);
expect(equipment.requirements).toEqual({ "skill_photons": 3 });
expect(equipment.effects).toEqual([
new AttributeEffect("maneuvrability", 2),
new AttributeEffect("power_capacity", 7),
new AttributeEffect("power_generation", 5),
]);
expect(equipment.price).toEqual(1382);
equipment = template.generate(3);
expect(equipment.requirements).toEqual({ "skill_photons": 5 });
expect(equipment.effects).toEqual([
new AttributeEffect("maneuvrability", 3),
new AttributeEffect("power_capacity", 8),
new AttributeEffect("power_generation", 5),
]);
expect(equipment.price).toEqual(3357);
equipment = template.generate(10);
expect(equipment.requirements).toEqual({ "skill_photons": 33 });
expect(equipment.effects).toEqual([
new AttributeEffect("maneuvrability", 10),
new AttributeEffect("power_capacity", 15),
new AttributeEffect("power_generation", 12),
]);
expect(equipment.price).toEqual(44832);
})
it("generates KelvinGenerator based on level", function () {
let template = new KelvinGenerator();
let equipment = template.generate(1);
expect(equipment.requirements).toEqual({ "skill_time": 1 });
expect(equipment.effects).toEqual([
new AttributeEffect("power_capacity", 5),
new AttributeEffect("power_generation", 4),
]);
expect(equipment.action).toEqual(new FireWeaponAction(equipment, 1, 0, 0, [
new CooldownEffect(1, 1)
]));
expect(equipment.price).toEqual(420);
equipment = template.generate(2);
expect(equipment.requirements).toEqual({ "skill_time": 2 });
expect(equipment.effects).toEqual([
new AttributeEffect("power_capacity", 6),
new AttributeEffect("power_generation", 4),
]);
expect(equipment.action).toEqual(new FireWeaponAction(equipment, 1, 0, 0, [
new CooldownEffect(1, 1)
]));
expect(equipment.price).toEqual(1470);
equipment = template.generate(3);
expect(equipment.requirements).toEqual({ "skill_time": 4, "skill_gravity": 1 });
expect(equipment.effects).toEqual([
new AttributeEffect("power_capacity", 6),
new AttributeEffect("power_generation", 5),
]);
expect(equipment.action).toEqual(new FireWeaponAction(equipment, 1, 0, 0, [
new CooldownEffect(1, 1)
]));
expect(equipment.price).toEqual(3570);
equipment = template.generate(10);
expect(equipment.requirements).toEqual({ "skill_time": 28, "skill_gravity": 6 });
expect(equipment.effects).toEqual([
new AttributeEffect("power_capacity", 13),
new AttributeEffect("power_generation", 12),
]);
expect(equipment.action).toEqual(new FireWeaponAction(equipment, 7, 0, 0, [
new CooldownEffect(4, 7)
]));
expect(equipment.price).toEqual(47670);
})
})
}