84 lines
3.9 KiB
TypeScript
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);
|
|
})
|
|
})
|
|
}
|