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

58 lines
2.3 KiB
TypeScript
Raw Normal View History

2017-09-24 22:23:22 +00:00
module TK.SpaceTac.Equipments {
2017-10-26 21:47:13 +00:00
testing("RepairDrone", test => {
test.case("generates equipment based on level", check => {
let template = new RepairDrone();
let equipment = template.generate(1);
2017-10-26 21:47:13 +00:00
check.equals(equipment.requirements, { "skill_quantum": 1 });
check.equals(equipment.action, new DeployDroneAction(equipment, 4, 300, 10, 150, [
2017-09-17 22:49:53 +00:00
new ValueEffect("hull", 2)
]));
equipment = template.generate(2);
2017-10-26 21:47:13 +00:00
check.equals(equipment.requirements, { "skill_quantum": 4 });
check.equals(equipment.action, new DeployDroneAction(equipment, 4, 310, 11, 155, [
2017-09-17 22:49:53 +00:00
new ValueEffect("hull", 3)
]));
equipment = template.generate(3);
2017-10-26 21:47:13 +00:00
check.equals(equipment.requirements, { "skill_quantum": 7 });
check.equals(equipment.action, new DeployDroneAction(equipment, 4, 322, 12, 161, [
2017-09-17 22:49:53 +00:00
new ValueEffect("hull", 4)
]));
equipment = template.generate(10);
2017-10-26 21:47:13 +00:00
check.equals(equipment.requirements, { "skill_quantum": 49 });
check.equals(equipment.action, new DeployDroneAction(equipment, 10, 462, 26, 231, [
2017-09-17 22:49:53 +00:00
new ValueEffect("hull", 11)
]));
});
2017-10-26 21:47:13 +00:00
test.case("generates a drone that may repair ships hull", check => {
2017-02-07 00:08:07 +00:00
let template = new RepairDrone();
2017-09-17 22:49:53 +00:00
let equipment = template.generate(4);
2017-10-26 21:47:13 +00:00
check.equals(equipment.action, new DeployDroneAction(equipment, 5, 336, 13, 168, [
2017-09-17 22:49:53 +00:00
new ValueEffect("hull", 5)
]));
let battle = new Battle();
let ship = battle.fleets[0].addShip();
2017-10-25 22:45:53 +00:00
TestTools.setShipPlaying(battle, ship);
TestTools.setShipAP(ship, 10);
2017-09-19 15:09:06 +00:00
let result = nn(equipment.action).apply(ship, new Target(5, 5, null));
2017-10-26 21:47:13 +00:00
check.equals(result, true);
2017-10-26 21:47:13 +00:00
check.equals(battle.drones.length, 1);
let drone = battle.drones[0];
2017-10-26 21:47:13 +00:00
check.equals(drone.duration, 13);
ship.setAttribute("hull_capacity", 100);
ship.setValue("hull", 93);
drone.apply([ship]);
2017-10-26 21:47:13 +00:00
check.equals(ship.getValue("hull"), 98);
drone.apply([ship]);
2017-10-26 21:47:13 +00:00
check.equals(ship.getValue("hull"), 100);
2017-02-07 00:08:07 +00:00
});
});
}