2017-09-24 22:23:22 +00:00
|
|
|
module TK.SpaceTac.Specs {
|
2017-10-26 21:47:13 +00:00
|
|
|
testing("ValueTransferEffect", test => {
|
|
|
|
test.case("takes or gives value", check => {
|
2017-11-14 00:07:06 +00:00
|
|
|
let battle = new Battle();
|
|
|
|
let ship1 = battle.fleets[0].addShip();
|
2018-02-08 15:16:03 +00:00
|
|
|
TestTools.setShipModel(ship1, 100, 50);
|
2017-05-28 22:16:50 +00:00
|
|
|
ship1.setValue("hull", 10);
|
2017-11-14 00:07:06 +00:00
|
|
|
let ship2 = battle.fleets[0].addShip();
|
2018-02-08 15:16:03 +00:00
|
|
|
TestTools.setShipModel(ship2, 100, 50);
|
2017-05-28 22:16:50 +00:00
|
|
|
|
|
|
|
let effect = new ValueTransferEffect("hull", -30);
|
2018-03-20 23:23:00 +00:00
|
|
|
battle.applyDiffs(effect.getOnDiffs(ship2, ship1));
|
2017-10-26 21:47:13 +00:00
|
|
|
check.equals(ship1.getValue("hull"), 40);
|
|
|
|
check.equals(ship2.getValue("hull"), 70);
|
2017-05-28 22:16:50 +00:00
|
|
|
|
|
|
|
effect = new ValueTransferEffect("hull", 1000);
|
2018-03-20 23:23:00 +00:00
|
|
|
battle.applyDiffs(effect.getOnDiffs(ship2, ship1));
|
2017-10-26 21:47:13 +00:00
|
|
|
check.equals(ship1.getValue("hull"), 0);
|
2017-11-14 00:07:06 +00:00
|
|
|
check.equals(ship2.getValue("hull"), 110); // over limit but will be fixed later
|
2017-05-28 22:16:50 +00:00
|
|
|
})
|
|
|
|
|
2017-10-26 21:47:13 +00:00
|
|
|
test.case("builds a description", check => {
|
2017-05-28 22:16:50 +00:00
|
|
|
let effect = new ValueTransferEffect("power", 12);
|
2017-10-26 21:47:13 +00:00
|
|
|
check.equals(effect.getDescription(), "give 12 power");
|
|
|
|
check.equals(effect.isBeneficial(), true);
|
2017-05-28 22:16:50 +00:00
|
|
|
|
|
|
|
effect = new ValueTransferEffect("shield", -20);
|
2017-10-26 21:47:13 +00:00
|
|
|
check.equals(effect.getDescription(), "steal 20 shield");
|
|
|
|
check.equals(effect.isBeneficial(), false);
|
2017-05-28 22:16:50 +00:00
|
|
|
})
|
|
|
|
})
|
|
|
|
}
|