2017-01-11 17:31:21 +00:00
|
|
|
/// <reference path="../TestGame.ts"/>
|
2015-01-08 00:00:00 +00:00
|
|
|
|
2017-02-09 00:00:35 +00:00
|
|
|
module TS.SpaceTac.UI.Specs {
|
2017-02-21 22:38:31 +00:00
|
|
|
describe("BattleView", function () {
|
|
|
|
let testgame = setupBattleview();
|
|
|
|
|
|
|
|
it("forwards events in targetting mode", function () {
|
|
|
|
let battleview = testgame.battleview;
|
2015-01-08 00:00:00 +00:00
|
|
|
expect(battleview.targetting).toBeNull();
|
2017-06-13 20:48:43 +00:00
|
|
|
battleview.setInteractionEnabled(true);
|
2015-01-08 00:00:00 +00:00
|
|
|
|
|
|
|
battleview.cursorInSpace(5, 5);
|
|
|
|
|
|
|
|
expect(battleview.targetting).toBeNull();
|
|
|
|
|
|
|
|
// Enter targetting mode
|
2017-03-09 17:11:00 +00:00
|
|
|
var result = nn(battleview.enterTargettingMode());
|
2015-01-08 00:00:00 +00:00
|
|
|
|
|
|
|
expect(battleview.targetting).toBeTruthy();
|
2017-05-02 17:59:41 +00:00
|
|
|
expect(result).toBe(nn(battleview.targetting));
|
2015-01-08 00:00:00 +00:00
|
|
|
|
|
|
|
// Collect targetting events
|
2017-05-02 17:59:41 +00:00
|
|
|
var hovered: (Target | null)[] = [];
|
2017-02-09 00:00:35 +00:00
|
|
|
var clicked: Target[] = [];
|
|
|
|
result.targetHovered.add((target: Target) => {
|
2015-01-08 00:00:00 +00:00
|
|
|
hovered.push(target);
|
|
|
|
});
|
2017-02-09 00:00:35 +00:00
|
|
|
result.targetSelected.add((target: Target) => {
|
2015-01-08 00:00:00 +00:00
|
|
|
clicked.push(target);
|
|
|
|
});
|
|
|
|
|
|
|
|
// Forward selection in space
|
|
|
|
battleview.cursorInSpace(8, 4);
|
|
|
|
|
|
|
|
expect(battleview.ship_hovered).toBeNull();
|
2017-03-09 17:11:00 +00:00
|
|
|
expect(nn(battleview.targetting).target_corrected).toEqual(Target.newFromLocation(8, 4));
|
2015-01-08 00:00:00 +00:00
|
|
|
|
|
|
|
// Process a click on space
|
|
|
|
battleview.cursorClicked();
|
|
|
|
|
|
|
|
// Forward ship hovering
|
|
|
|
battleview.cursorOnShip(battleview.battle.play_order[0]);
|
|
|
|
|
2017-03-09 17:11:00 +00:00
|
|
|
expect(battleview.ship_hovered).toEqual(battleview.battle.play_order[0]);
|
|
|
|
expect(nn(battleview.targetting).target_corrected).toEqual(Target.newFromShip(battleview.battle.play_order[0]));
|
2015-01-08 00:00:00 +00:00
|
|
|
|
|
|
|
// Don't leave a ship we're not hovering
|
|
|
|
battleview.cursorOffShip(battleview.battle.play_order[1]);
|
|
|
|
|
2017-03-09 17:11:00 +00:00
|
|
|
expect(battleview.ship_hovered).toEqual(battleview.battle.play_order[0]);
|
|
|
|
expect(nn(battleview.targetting).target_corrected).toEqual(Target.newFromShip(battleview.battle.play_order[0]));
|
2015-01-08 00:00:00 +00:00
|
|
|
|
|
|
|
// Don't move in space while on ship
|
|
|
|
battleview.cursorInSpace(1, 3);
|
|
|
|
|
2017-03-09 17:11:00 +00:00
|
|
|
expect(battleview.ship_hovered).toEqual(battleview.battle.play_order[0]);
|
|
|
|
expect(nn(battleview.targetting).target_corrected).toEqual(Target.newFromShip(battleview.battle.play_order[0]));
|
2015-01-08 00:00:00 +00:00
|
|
|
|
|
|
|
// Process a click on ship
|
|
|
|
battleview.cursorClicked();
|
|
|
|
|
|
|
|
// Leave the ship
|
|
|
|
battleview.cursorOffShip(battleview.battle.play_order[0]);
|
|
|
|
|
|
|
|
expect(battleview.ship_hovered).toBeNull();
|
2017-03-09 17:11:00 +00:00
|
|
|
expect(nn(battleview.targetting).target_corrected).toBeNull();
|
2015-01-08 00:00:00 +00:00
|
|
|
|
|
|
|
// Quit targetting
|
|
|
|
battleview.exitTargettingMode();
|
|
|
|
|
|
|
|
expect(battleview.targetting).toBeNull();
|
|
|
|
|
|
|
|
// Events process normally
|
|
|
|
battleview.cursorInSpace(8, 4);
|
|
|
|
expect(battleview.ship_hovered).toBeNull();
|
|
|
|
battleview.cursorOnShip(battleview.battle.play_order[0]);
|
2017-03-09 17:11:00 +00:00
|
|
|
expect(battleview.ship_hovered).toEqual(battleview.battle.play_order[0]);
|
2015-01-08 00:00:00 +00:00
|
|
|
|
|
|
|
// Quit twice don't do anything
|
|
|
|
battleview.exitTargettingMode();
|
|
|
|
|
|
|
|
// Check collected targetting events
|
|
|
|
expect(hovered).toEqual([
|
2017-02-09 00:00:35 +00:00
|
|
|
Target.newFromLocation(8, 4),
|
2017-03-09 17:11:00 +00:00
|
|
|
Target.newFromShip(battleview.battle.play_order[0]),
|
2015-01-08 00:00:00 +00:00
|
|
|
null
|
|
|
|
]);
|
|
|
|
expect(clicked).toEqual([
|
2017-02-09 00:00:35 +00:00
|
|
|
Target.newFromLocation(8, 4),
|
2017-03-09 17:11:00 +00:00
|
|
|
Target.newFromShip(battleview.battle.play_order[0]),
|
2015-01-08 00:00:00 +00:00
|
|
|
]);
|
|
|
|
});
|
|
|
|
});
|
|
|
|
}
|