1
0
Fork 0
spacetac/src/core/effects/VigilanceEffect.spec.ts
2019-11-21 23:14:27 +01:00

34 lines
1.2 KiB
TypeScript

import { testing } from "../../common/Testing";
import { VigilanceAction } from "../actions/VigilanceAction";
import { Battle } from "../Battle";
import { ShipDamageDiff } from "../diffs/ShipDamageDiff";
import { ShipValueDiff } from "../diffs/ShipValueDiff";
import { VigilanceAppliedDiff } from "../diffs/VigilanceAppliedDiff";
import { TestTools } from "../TestTools";
import { DamageEffect } from "./DamageEffect";
import { VigilanceEffect } from "./VigilanceEffect";
testing("VigilanceEffect", test => {
test.case("applies vigilance effects on intruding ships", check => {
let battle = new Battle();
let source = battle.fleets[0].addShip();
let target = battle.fleets[1].addShip();
let action = source.actions.addCustom(new VigilanceAction("Reactive Shot"));
action.configureVigilance({ intruder_effects: [new DamageEffect(1)] });
let effect = new VigilanceEffect(action);
let diffs = effect.getOnDiffs(target, source);
check.equals(diffs, []);
TestTools.setShipModel(target, 10);
diffs = effect.getOnDiffs(target, source);
check.equals(diffs, [
new VigilanceAppliedDiff(source, action, target),
new ShipDamageDiff(target, 1, 0),
new ShipValueDiff(target, "hull", -1)
]);
})
})