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

84 lines
3.9 KiB
TypeScript

module TK.SpaceTac.Specs {
testing("Generators", test => {
test.case("generates NuclearReactor based on level", check => {
let template = new Equipments.NuclearReactor();
let equipment = template.generate(1);
check.equals(equipment.requirements, { "skill_photons": 1 });
compare_effects(check, equipment.effects, [
new AttributeEffect("maneuvrability", 1),
new AttributeEffect("power_capacity", 7),
new AttributeEffect("power_generation", 4),
]);
check.equals(equipment.price, 395);
equipment = template.generate(2);
check.equals(equipment.requirements, { "skill_photons": 3 });
compare_effects(check, equipment.effects, [
new AttributeEffect("maneuvrability", 2),
new AttributeEffect("power_capacity", 7),
new AttributeEffect("power_generation", 5),
]);
check.equals(equipment.price, 1382);
equipment = template.generate(3);
check.equals(equipment.requirements, { "skill_photons": 5 });
compare_effects(check, equipment.effects, [
new AttributeEffect("maneuvrability", 3),
new AttributeEffect("power_capacity", 8),
new AttributeEffect("power_generation", 5),
]);
check.equals(equipment.price, 3357);
equipment = template.generate(10);
check.equals(equipment.requirements, { "skill_photons": 33 });
compare_effects(check, equipment.effects, [
new AttributeEffect("maneuvrability", 10),
new AttributeEffect("power_capacity", 15),
new AttributeEffect("power_generation", 12),
]);
check.equals(equipment.price, 44832);
})
test.case("generates KelvinGenerator based on level", check => {
let template = new Equipments.KelvinGenerator();
let equipment = template.generate(1);
check.equals(equipment.requirements, { "skill_time": 1 });
compare_effects(check, equipment.effects, [
new AttributeEffect("power_capacity", 5),
new AttributeEffect("power_generation", 4),
]);
compare_trigger_action(check, equipment.action, new TriggerAction(equipment, [new CooldownEffect(1, 1)]));
check.equals(equipment.price, 420);
equipment = template.generate(2);
check.equals(equipment.requirements, { "skill_time": 2 });
compare_effects(check, equipment.effects, [
new AttributeEffect("power_capacity", 6),
new AttributeEffect("power_generation", 4),
]);
compare_trigger_action(check, equipment.action, new TriggerAction(equipment, [new CooldownEffect(1, 1)]));
check.equals(equipment.price, 1470);
equipment = template.generate(3);
check.equals(equipment.requirements, { "skill_time": 4, "skill_gravity": 1 });
compare_effects(check, equipment.effects, [
new AttributeEffect("power_capacity", 6),
new AttributeEffect("power_generation", 5),
]);
compare_trigger_action(check, equipment.action, new TriggerAction(equipment, [new CooldownEffect(1, 1)]));
check.equals(equipment.price, 3570);
equipment = template.generate(10);
check.equals(equipment.requirements, { "skill_time": 28, "skill_gravity": 6 });
compare_effects(check, equipment.effects, [
new AttributeEffect("power_capacity", 13),
new AttributeEffect("power_generation", 12),
]);
compare_trigger_action(check, equipment.action, new TriggerAction(equipment, [new CooldownEffect(4, 7)], 7));
check.equals(equipment.price, 47670);
})
})
}