104 lines
4 KiB
TypeScript
104 lines
4 KiB
TypeScript
module TK.SpaceTac {
|
|
testing("ValueEffect", test => {
|
|
test.case("adds an amount to a ship value", check => {
|
|
let effect = new ValueEffect("hull", 20);
|
|
|
|
let battle = new Battle();
|
|
let ship = battle.fleets[0].addShip();
|
|
ship.setValue("hull", 55);
|
|
check.equals(ship.getValue("hull"), 55);
|
|
|
|
battle.applyDiffs(effect.getOnDiffs(ship, ship));
|
|
check.equals(ship.getValue("hull"), 75);
|
|
|
|
battle.applyDiffs(effect.getOnDiffs(ship, ship));
|
|
check.equals(ship.getValue("hull"), 95);
|
|
});
|
|
|
|
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");
|
|
});
|
|
|
|
test.case("has a description", check => {
|
|
let effect = new ValueEffect("hull", 12);
|
|
check.equals(effect.getDescription(), "hull +12");
|
|
|
|
effect = new ValueEffect("hull", -4);
|
|
check.equals(effect.getDescription(), "hull -4");
|
|
|
|
effect = new ValueEffect("hull");
|
|
check.equals(effect.getDescription(), "no effect");
|
|
|
|
effect = new ValueEffect("hull", 0, -5);
|
|
check.equals(effect.getDescription(), "hull -5 when removed");
|
|
|
|
effect = new ValueEffect("hull", 5, -5);
|
|
check.equals(effect.getDescription(), "hull +5 while active");
|
|
|
|
effect = new ValueEffect("hull", 5, -6);
|
|
check.equals(effect.getDescription(), "hull +5 on, -6 off");
|
|
|
|
effect = new ValueEffect("hull", 0, 0, 6);
|
|
check.equals(effect.getDescription(), "hull +6 on turn start");
|
|
|
|
effect = new ValueEffect("hull", 0, 0, 0, -3);
|
|
check.equals(effect.getDescription(), "hull -3 on turn end");
|
|
|
|
effect = new ValueEffect("hull", 0, 0, 3, -3);
|
|
check.equals(effect.getDescription(), "hull +3 during turn");
|
|
|
|
effect = new ValueEffect("hull", 0, 0, 4, -3);
|
|
check.equals(effect.getDescription(), "hull +4 on turn start, -3 on turn end");
|
|
|
|
effect = new ValueEffect("hull", 1, 2, 3, 4);
|
|
check.equals(effect.getDescription(), "hull +1 on, +2 off, +3 on turn start, +4 on turn end");
|
|
});
|
|
});
|
|
}
|