2017-11-14 00:07:06 +00:00
|
|
|
module TK.SpaceTac.Specs {
|
2017-10-26 21:47:13 +00:00
|
|
|
testing("Shields", test => {
|
|
|
|
test.case("generates ForceField based on level", check => {
|
2017-11-14 00:07:06 +00:00
|
|
|
let template = new Equipments.ForceField();
|
2017-07-27 23:02:53 +00:00
|
|
|
|
|
|
|
let equipment = template.generate(1);
|
2017-10-26 21:47:13 +00:00
|
|
|
check.equals(equipment.requirements, { "skill_photons": 1 });
|
2017-11-14 00:07:06 +00:00
|
|
|
compare_effects(check, equipment.effects, [new AttributeEffect("shield_capacity", 80)]);
|
2017-10-26 21:47:13 +00:00
|
|
|
check.equals(equipment.price, 95);
|
2017-07-27 23:02:53 +00:00
|
|
|
|
|
|
|
equipment = template.generate(2);
|
2017-10-26 21:47:13 +00:00
|
|
|
check.equals(equipment.requirements, { "skill_photons": 3 });
|
2017-11-14 00:07:06 +00:00
|
|
|
compare_effects(check, equipment.effects, [new AttributeEffect("shield_capacity", 112)]);
|
2017-10-26 21:47:13 +00:00
|
|
|
check.equals(equipment.price, 332);
|
2017-07-27 23:02:53 +00:00
|
|
|
|
|
|
|
equipment = template.generate(3);
|
2017-10-26 21:47:13 +00:00
|
|
|
check.equals(equipment.requirements, { "skill_photons": 5 });
|
2017-11-14 00:07:06 +00:00
|
|
|
compare_effects(check, equipment.effects, [new AttributeEffect("shield_capacity", 150)]);
|
2017-10-26 21:47:13 +00:00
|
|
|
check.equals(equipment.price, 807);
|
2017-07-27 23:02:53 +00:00
|
|
|
|
|
|
|
equipment = template.generate(10);
|
2017-10-26 21:47:13 +00:00
|
|
|
check.equals(equipment.requirements, { "skill_photons": 33 });
|
2017-11-14 00:07:06 +00:00
|
|
|
compare_effects(check, equipment.effects, [new AttributeEffect("shield_capacity", 598)]);
|
2017-10-26 21:47:13 +00:00
|
|
|
check.equals(equipment.price, 10782);
|
2017-07-27 23:02:53 +00:00
|
|
|
});
|
|
|
|
|
2017-10-26 21:47:13 +00:00
|
|
|
test.case("generates GravitShield based on level", check => {
|
2017-11-14 00:07:06 +00:00
|
|
|
let template = new Equipments.GravitShield();
|
2017-07-27 23:02:53 +00:00
|
|
|
|
|
|
|
let equipment = template.generate(1);
|
2017-10-26 21:47:13 +00:00
|
|
|
check.equals(equipment.requirements, { "skill_gravity": 2 });
|
2017-11-14 00:07:06 +00:00
|
|
|
compare_effects(check, equipment.effects, [
|
2017-09-17 22:49:53 +00:00
|
|
|
new AttributeEffect("shield_capacity", 60),
|
2017-07-27 23:02:53 +00:00
|
|
|
]);
|
2017-11-14 00:07:06 +00:00
|
|
|
compare_trigger_action(check, equipment.action, new TriggerAction(equipment, [new RepelEffect(100)], 2, 0, 300));
|
2017-10-26 21:47:13 +00:00
|
|
|
check.equals(equipment.price, 140);
|
2017-07-27 23:02:53 +00:00
|
|
|
|
|
|
|
equipment = template.generate(2);
|
2017-10-26 21:47:13 +00:00
|
|
|
check.equals(equipment.requirements, { "skill_gravity": 5 });
|
2017-11-14 00:07:06 +00:00
|
|
|
compare_effects(check, equipment.effects, [
|
2017-09-17 22:49:53 +00:00
|
|
|
new AttributeEffect("shield_capacity", 84),
|
2017-07-27 23:02:53 +00:00
|
|
|
]);
|
2017-11-14 00:07:06 +00:00
|
|
|
compare_trigger_action(check, equipment.action, new TriggerAction(equipment, [new RepelEffect(105)], 2, 0, 310));
|
2017-10-26 21:47:13 +00:00
|
|
|
check.equals(equipment.price, 490);
|
2017-07-27 23:02:53 +00:00
|
|
|
|
|
|
|
equipment = template.generate(3);
|
2017-10-26 21:47:13 +00:00
|
|
|
check.equals(equipment.requirements, { "skill_gravity": 8 });
|
2017-11-14 00:07:06 +00:00
|
|
|
compare_effects(check, equipment.effects, [
|
2017-09-17 22:49:53 +00:00
|
|
|
new AttributeEffect("shield_capacity", 112),
|
2017-07-27 23:02:53 +00:00
|
|
|
]);
|
2017-11-14 00:07:06 +00:00
|
|
|
compare_trigger_action(check, equipment.action, new TriggerAction(equipment, [new RepelEffect(111)], 2, 0, 322));
|
2017-10-26 21:47:13 +00:00
|
|
|
check.equals(equipment.price, 1190);
|
2017-07-27 23:02:53 +00:00
|
|
|
|
|
|
|
equipment = template.generate(10);
|
2017-10-26 21:47:13 +00:00
|
|
|
check.equals(equipment.requirements, { "skill_gravity": 50 });
|
2017-11-14 00:07:06 +00:00
|
|
|
compare_effects(check, equipment.effects, [
|
2017-09-17 22:49:53 +00:00
|
|
|
new AttributeEffect("shield_capacity", 448),
|
2017-07-27 23:02:53 +00:00
|
|
|
]);
|
2017-11-14 00:07:06 +00:00
|
|
|
compare_trigger_action(check, equipment.action, new TriggerAction(equipment, [new RepelEffect(181)], 2, 0, 462));
|
2017-10-26 21:47:13 +00:00
|
|
|
check.equals(equipment.price, 15890);
|
2017-07-27 23:02:53 +00:00
|
|
|
});
|
|
|
|
|
2017-10-26 21:47:13 +00:00
|
|
|
test.case("generates InverterShield based on level", check => {
|
2017-11-14 00:07:06 +00:00
|
|
|
let template = new Equipments.InverterShield();
|
2017-07-27 23:02:53 +00:00
|
|
|
|
|
|
|
let equipment = template.generate(1);
|
2017-10-26 21:47:13 +00:00
|
|
|
check.equals(equipment.requirements, { "skill_antimatter": 2, "skill_time": 1 });
|
2017-11-14 00:07:06 +00:00
|
|
|
compare_effects(check, equipment.effects, [
|
2017-09-17 22:49:53 +00:00
|
|
|
new AttributeEffect("shield_capacity", 140),
|
|
|
|
new AttributeEffect("power_capacity", -1),
|
2017-07-27 23:02:53 +00:00
|
|
|
]);
|
2017-10-26 21:47:13 +00:00
|
|
|
check.equals(equipment.price, 258);
|
2017-07-27 23:02:53 +00:00
|
|
|
|
|
|
|
equipment = template.generate(2);
|
2017-10-26 21:47:13 +00:00
|
|
|
check.equals(equipment.requirements, { "skill_antimatter": 3, "skill_time": 2 });
|
2017-11-14 00:07:06 +00:00
|
|
|
compare_effects(check, equipment.effects, [
|
2017-09-17 22:49:53 +00:00
|
|
|
new AttributeEffect("shield_capacity", 196),
|
|
|
|
new AttributeEffect("power_capacity", -1),
|
2017-07-27 23:02:53 +00:00
|
|
|
]);
|
2017-10-26 21:47:13 +00:00
|
|
|
check.equals(equipment.price, 903);
|
2017-07-27 23:02:53 +00:00
|
|
|
|
|
|
|
equipment = template.generate(3);
|
2017-10-26 21:47:13 +00:00
|
|
|
check.equals(equipment.requirements, { "skill_antimatter": 5, "skill_time": 3 });
|
2017-11-14 00:07:06 +00:00
|
|
|
compare_effects(check, equipment.effects, [
|
2017-09-17 22:49:53 +00:00
|
|
|
new AttributeEffect("shield_capacity", 263),
|
|
|
|
new AttributeEffect("power_capacity", -1),
|
2017-07-27 23:02:53 +00:00
|
|
|
]);
|
2017-10-26 21:47:13 +00:00
|
|
|
check.equals(equipment.price, 2193);
|
2017-07-27 23:02:53 +00:00
|
|
|
|
|
|
|
equipment = template.generate(10);
|
2017-10-26 21:47:13 +00:00
|
|
|
check.equals(equipment.requirements, { "skill_antimatter": 26, "skill_time": 17 });
|
2017-11-14 00:07:06 +00:00
|
|
|
compare_effects(check, equipment.effects, [
|
2017-09-17 22:49:53 +00:00
|
|
|
new AttributeEffect("shield_capacity", 1047),
|
|
|
|
new AttributeEffect("power_capacity", -4),
|
2017-07-27 23:02:53 +00:00
|
|
|
]);
|
2017-10-26 21:47:13 +00:00
|
|
|
check.equals(equipment.price, 29283);
|
2017-07-27 23:02:53 +00:00
|
|
|
});
|
|
|
|
});
|
|
|
|
}
|