2017-09-24 22:23:22 +00:00
|
|
|
module TK.SpaceTac {
|
2017-10-26 21:47:13 +00:00
|
|
|
testing("ValueEffect", test => {
|
|
|
|
test.case("adds an amount to a ship value", check => {
|
2017-02-07 19:15:21 +00:00
|
|
|
let effect = new ValueEffect("shield", 20);
|
|
|
|
|
2017-11-14 00:07:06 +00:00
|
|
|
let battle = new Battle();
|
|
|
|
let ship = battle.fleets[0].addShip();
|
2017-02-07 19:15:21 +00:00
|
|
|
ship.setValue("shield", 55);
|
2017-11-14 00:07:06 +00:00
|
|
|
check.equals(ship.getValue("shield"), 55);
|
2017-02-07 19:15:21 +00:00
|
|
|
|
2018-03-20 23:23:00 +00:00
|
|
|
battle.applyDiffs(effect.getOnDiffs(ship, ship));
|
2017-11-14 00:07:06 +00:00
|
|
|
check.equals(ship.getValue("shield"), 75);
|
2017-02-07 19:15:21 +00:00
|
|
|
|
2018-03-20 23:23:00 +00:00
|
|
|
battle.applyDiffs(effect.getOnDiffs(ship, ship));
|
2017-11-14 00:07:06 +00:00
|
|
|
check.equals(ship.getValue("shield"), 95);
|
2017-02-07 19:15:21 +00:00
|
|
|
});
|
2017-02-08 00:18:54 +00:00
|
|
|
|
2017-11-29 22:03:58 +00:00
|
|
|
test.case("estimates if the effect is beneficial", check => {
|
|
|
|
let effect = new ValueEffect("hull", 12);
|
|
|
|
check.equals(effect.isBeneficial(), true, "12");
|
|
|
|
|
|
|
|
effect = new ValueEffect("hull", -12);
|
|
|
|
check.equals(effect.isBeneficial(), false, "-12");
|
|
|
|
|
|
|
|
effect = new ValueEffect("hull", 0, 8);
|
|
|
|
check.equals(effect.isBeneficial(), true, "0 8");
|
|
|
|
|
|
|
|
effect = new ValueEffect("hull", 0, -8);
|
|
|
|
check.equals(effect.isBeneficial(), false, "0 -8");
|
|
|
|
|
|
|
|
effect = new ValueEffect("hull", 4, -3);
|
|
|
|
check.equals(effect.isBeneficial(), true, "4 -3");
|
|
|
|
|
|
|
|
effect = new ValueEffect("hull", 4, -4);
|
|
|
|
check.equals(effect.isBeneficial(), true, "4 -4");
|
|
|
|
|
|
|
|
effect = new ValueEffect("hull", 3, -4);
|
|
|
|
check.equals(effect.isBeneficial(), false, "3 -4");
|
|
|
|
|
|
|
|
effect = new ValueEffect("hull", -4, 4);
|
|
|
|
check.equals(effect.isBeneficial(), false, "-4 4");
|
|
|
|
|
|
|
|
effect = new ValueEffect("hull", 0, 0, 12);
|
|
|
|
check.equals(effect.isBeneficial(), true, "0 0 12");
|
|
|
|
|
|
|
|
effect = new ValueEffect("hull", 0, 0, -12);
|
|
|
|
check.equals(effect.isBeneficial(), false, "0 0 -12");
|
|
|
|
|
|
|
|
effect = new ValueEffect("hull", 0, 0, 0, 8);
|
|
|
|
check.equals(effect.isBeneficial(), true, "0 0 0 8");
|
|
|
|
|
|
|
|
effect = new ValueEffect("hull", 0, 0, 0, -8);
|
|
|
|
check.equals(effect.isBeneficial(), false, "0 0 0 -8");
|
|
|
|
|
|
|
|
effect = new ValueEffect("hull", 0, 0, 4, -3);
|
|
|
|
check.equals(effect.isBeneficial(), true, "0 0 4 -3");
|
|
|
|
|
|
|
|
effect = new ValueEffect("hull", 0, 0, 4, -4);
|
|
|
|
check.equals(effect.isBeneficial(), true, "0 0 4 -4");
|
|
|
|
|
|
|
|
effect = new ValueEffect("hull", 0, 0, 3, -4);
|
|
|
|
check.equals(effect.isBeneficial(), false, "0 0 3 -4");
|
|
|
|
|
|
|
|
effect = new ValueEffect("hull", 0, 0, -4, 4);
|
|
|
|
check.equals(effect.isBeneficial(), false, "0 0 -4 4");
|
|
|
|
});
|
|
|
|
|
2017-10-26 21:47:13 +00:00
|
|
|
test.case("has a description", check => {
|
2017-02-08 00:18:54 +00:00
|
|
|
let effect = new ValueEffect("power", 12);
|
2017-10-26 21:47:13 +00:00
|
|
|
check.equals(effect.getDescription(), "power +12");
|
2017-02-08 00:18:54 +00:00
|
|
|
|
|
|
|
effect = new ValueEffect("power", -4);
|
2017-10-26 21:47:13 +00:00
|
|
|
check.equals(effect.getDescription(), "power -4");
|
2017-11-29 22:03:58 +00:00
|
|
|
|
|
|
|
effect = new ValueEffect("power");
|
|
|
|
check.equals(effect.getDescription(), "no effect");
|
|
|
|
|
|
|
|
effect = new ValueEffect("power", 0, -5);
|
|
|
|
check.equals(effect.getDescription(), "power -5 when removed");
|
|
|
|
|
|
|
|
effect = new ValueEffect("power", 5, -5);
|
|
|
|
check.equals(effect.getDescription(), "power +5 while active");
|
|
|
|
|
|
|
|
effect = new ValueEffect("power", 5, -6);
|
|
|
|
check.equals(effect.getDescription(), "power +5 on, -6 off");
|
|
|
|
|
|
|
|
effect = new ValueEffect("power", 0, 0, 6);
|
|
|
|
check.equals(effect.getDescription(), "power +6 on turn start");
|
|
|
|
|
|
|
|
effect = new ValueEffect("power", 0, 0, 0, -3);
|
|
|
|
check.equals(effect.getDescription(), "power -3 on turn end");
|
|
|
|
|
|
|
|
effect = new ValueEffect("power", 0, 0, 3, -3);
|
|
|
|
check.equals(effect.getDescription(), "power +3 during turn");
|
|
|
|
|
|
|
|
effect = new ValueEffect("power", 0, 0, 4, -3);
|
|
|
|
check.equals(effect.getDescription(), "power +4 on turn start, -3 on turn end");
|
|
|
|
|
|
|
|
effect = new ValueEffect("power", 1, 2, 3, 4);
|
|
|
|
check.equals(effect.getDescription(), "power +1 on, +2 off, +3 on turn start, +4 on turn end");
|
2017-02-08 00:18:54 +00:00
|
|
|
});
|
2017-02-07 19:15:21 +00:00
|
|
|
});
|
|
|
|
}
|