108 lines
5.1 KiB
TypeScript
108 lines
5.1 KiB
TypeScript
module TK.SpaceTac.Specs {
|
|
testing("Hulls", test => {
|
|
test.case("generates IronHull based on level", check => {
|
|
let template = new Equipments.IronHull();
|
|
|
|
let equipment = template.generate(1);
|
|
check.equals(equipment.requirements, { "skill_materials": 1 });
|
|
compare_effects(check, equipment.effects, [new AttributeEffect("hull_capacity", 100)]);
|
|
check.equals(equipment.price, 100);
|
|
|
|
equipment = template.generate(2);
|
|
check.equals(equipment.requirements, { "skill_materials": 2 });
|
|
compare_effects(check, equipment.effects, [new AttributeEffect("hull_capacity", 140)]);
|
|
check.equals(equipment.price, 350);
|
|
|
|
equipment = template.generate(3);
|
|
check.equals(equipment.requirements, { "skill_materials": 3 });
|
|
compare_effects(check, equipment.effects, [new AttributeEffect("hull_capacity", 188)]);
|
|
check.equals(equipment.price, 850);
|
|
|
|
equipment = template.generate(10);
|
|
check.equals(equipment.requirements, { "skill_materials": 17 });
|
|
compare_effects(check, equipment.effects, [new AttributeEffect("hull_capacity", 748)]);
|
|
check.equals(equipment.price, 11350);
|
|
});
|
|
|
|
test.case("generates HardCoatedHull based on level", check => {
|
|
let template = new Equipments.HardCoatedHull();
|
|
|
|
let equipment = template.generate(1);
|
|
check.equals(equipment.requirements, { "skill_materials": 2 });
|
|
compare_effects(check, equipment.effects, [
|
|
new AttributeEffect("hull_capacity", 130),
|
|
new AttributeEffect("maneuvrability", -2),
|
|
]);
|
|
check.equals(equipment.price, 124);
|
|
|
|
equipment = template.generate(2);
|
|
check.equals(equipment.requirements, { "skill_materials": 5 });
|
|
compare_effects(check, equipment.effects, [
|
|
new AttributeEffect("hull_capacity", 182),
|
|
new AttributeEffect("maneuvrability", -3),
|
|
]);
|
|
check.equals(equipment.price, 434);
|
|
|
|
equipment = template.generate(3);
|
|
check.equals(equipment.requirements, { "skill_materials": 8 });
|
|
compare_effects(check, equipment.effects, [
|
|
new AttributeEffect("hull_capacity", 244),
|
|
new AttributeEffect("maneuvrability", -5),
|
|
]);
|
|
check.equals(equipment.price, 1054);
|
|
|
|
equipment = template.generate(10);
|
|
check.equals(equipment.requirements, { "skill_materials": 50 });
|
|
compare_effects(check, equipment.effects, [
|
|
new AttributeEffect("hull_capacity", 972),
|
|
new AttributeEffect("maneuvrability", -19),
|
|
]);
|
|
check.equals(equipment.price, 14074);
|
|
});
|
|
|
|
test.case("generates FractalHull based on level", check => {
|
|
let template = new Equipments.FractalHull();
|
|
|
|
let equipment = template.generate(1);
|
|
check.equals(equipment.requirements, { "skill_quantum": 1 });
|
|
compare_effects(check, equipment.effects, [
|
|
new AttributeEffect("hull_capacity", 60),
|
|
new AttributeEffect("precision", 2),
|
|
]);
|
|
compare_trigger_action(check, equipment.action, new TriggerAction(equipment, [new ValueEffect("hull", 60)], 1));
|
|
check.equals(equipment.cooldown, new Cooldown(1, 4));
|
|
check.equals(equipment.price, 250);
|
|
|
|
equipment = template.generate(2);
|
|
check.equals(equipment.requirements, { "skill_quantum": 3 });
|
|
compare_effects(check, equipment.effects, [
|
|
new AttributeEffect("hull_capacity", 84),
|
|
new AttributeEffect("precision", 2),
|
|
]);
|
|
compare_trigger_action(check, equipment.action, new TriggerAction(equipment, [new ValueEffect("hull", 84)], 1));
|
|
check.equals(equipment.cooldown, new Cooldown(1, 4));
|
|
check.equals(equipment.price, 875);
|
|
|
|
equipment = template.generate(3);
|
|
check.equals(equipment.requirements, { "skill_quantum": 5 });
|
|
compare_effects(check, equipment.effects, [
|
|
new AttributeEffect("hull_capacity", 112),
|
|
new AttributeEffect("precision", 3),
|
|
]);
|
|
compare_trigger_action(check, equipment.action, new TriggerAction(equipment, [new ValueEffect("hull", 112)], 1));
|
|
check.equals(equipment.cooldown, new Cooldown(1, 4));
|
|
check.equals(equipment.price, 2125);
|
|
|
|
equipment = template.generate(10);
|
|
check.equals(equipment.requirements, { "skill_quantum": 33 });
|
|
compare_effects(check, equipment.effects, [
|
|
new AttributeEffect("hull_capacity", 448),
|
|
new AttributeEffect("precision", 14),
|
|
]);
|
|
compare_trigger_action(check, equipment.action, new TriggerAction(equipment, [new ValueEffect("hull", 448)], 2));
|
|
check.equals(equipment.cooldown, new Cooldown(1, 4));
|
|
check.equals(equipment.price, 28375);
|
|
});
|
|
});
|
|
}
|