Renamed battle plan to turn plan
This commit is contained in:
parent
cd1eaf0934
commit
c3c88449fb
|
@ -1,9 +1,9 @@
|
|||
module TK.SpaceTac.Specs {
|
||||
testing("BattlePlanning", test => {
|
||||
testing("TurnPlanning", test => {
|
||||
test.case("initializes from a battle state", check => {
|
||||
let battle = new Battle();
|
||||
let planning = new BattlePlanning(battle);
|
||||
check.equals(planning.getBattlePlan(), {
|
||||
let planning = new TurnPlanning(battle);
|
||||
check.equals(planning.getTurnPlan(), {
|
||||
fleets: [
|
||||
{ fleet: battle.fleets[0].id, ships: [] },
|
||||
{ fleet: battle.fleets[1].id, ships: [] },
|
||||
|
@ -11,8 +11,8 @@ module TK.SpaceTac.Specs {
|
|||
});
|
||||
|
||||
battle.fleets[0].addShip();
|
||||
planning = new BattlePlanning(battle);
|
||||
check.equals(planning.getBattlePlan(), {
|
||||
planning = new TurnPlanning(battle);
|
||||
check.equals(planning.getTurnPlan(), {
|
||||
fleets: [
|
||||
{
|
||||
fleet: battle.fleets[0].id, ships: [
|
||||
|
@ -29,7 +29,7 @@ module TK.SpaceTac.Specs {
|
|||
battle.fleets[0].addShip();
|
||||
battle.fleets[1].addShip();
|
||||
battle.fleets[1].addShip();
|
||||
const planning = new BattlePlanning(battle);
|
||||
const planning = new TurnPlanning(battle);
|
||||
|
||||
check.equals(planning.getFleetPlan(battle.fleets[0]).fleet, battle.fleets[0].id);
|
||||
check.equals(planning.getFleetPlan(battle.fleets[1]).fleet, battle.fleets[1].id);
|
||||
|
@ -45,7 +45,7 @@ module TK.SpaceTac.Specs {
|
|||
const battle = new Battle();
|
||||
const ship = battle.fleets[0].addShip();
|
||||
const action1 = ship.actions.addCustom(new BaseAction());
|
||||
const planning = new BattlePlanning(battle);
|
||||
const planning = new TurnPlanning(battle);
|
||||
|
||||
check.equals(planning.getShipPlan(ship).actions, []);
|
||||
check.equals(planning.collectAllActions(), []);
|
||||
|
@ -64,7 +64,7 @@ module TK.SpaceTac.Specs {
|
|||
const ship = battle.fleets[0].addShip();
|
||||
const action1 = ship.actions.addCustom(new BaseAction());
|
||||
const action2 = ship.actions.addCustom(new BaseAction());
|
||||
const planning = new BattlePlanning(battle);
|
||||
const planning = new TurnPlanning(battle);
|
||||
|
||||
check.equals(planning.getShipPlan(ship).actions, []);
|
||||
|
||||
|
@ -93,7 +93,7 @@ module TK.SpaceTac.Specs {
|
|||
const active2 = ship.actions.addCustom(new TriggerAction());
|
||||
const move1 = ship.actions.addCustom(new MoveAction());
|
||||
const move2 = ship.actions.addCustom(new MoveAction());
|
||||
const planning = new BattlePlanning(battle);
|
||||
const planning = new TurnPlanning(battle);
|
||||
|
||||
planning.addAction(ship, active1);
|
||||
check.equals(planning.getShipPlan(ship).actions, [
|
|
@ -1,9 +1,9 @@
|
|||
namespace TK.SpaceTac {
|
||||
/**
|
||||
* A tool to manipulate battle plans (action plans for all involved ships, for one turn)
|
||||
* A tool to manipulate the plans for a turn (action plans for all involved ships, for one turn)
|
||||
*/
|
||||
export class BattlePlanning {
|
||||
private plan: BattlePlan
|
||||
export class TurnPlanning {
|
||||
private plan: TurnPlan
|
||||
|
||||
constructor(private battle: Battle, readonly player?: Player) {
|
||||
this.plan = {
|
||||
|
@ -17,7 +17,7 @@ namespace TK.SpaceTac {
|
|||
};
|
||||
}
|
||||
|
||||
getBattlePlan(): BattlePlan {
|
||||
getTurnPlan(): TurnPlan {
|
||||
return this.plan;
|
||||
}
|
||||
|
||||
|
@ -53,7 +53,7 @@ namespace TK.SpaceTac {
|
|||
}
|
||||
}
|
||||
|
||||
export type BattlePlan = {
|
||||
export type TurnPlan = {
|
||||
fleets: FleetPlan[]
|
||||
}
|
||||
|
|
@ -9,7 +9,7 @@ module TK.SpaceTac.UI {
|
|||
view: BattleView
|
||||
|
||||
// Display of battle plan
|
||||
plandisplay: PlanDisplay
|
||||
plandisplay: TurnPlanDisplay
|
||||
|
||||
// Hint for weapon or move range
|
||||
range_hint: RangeHint
|
||||
|
@ -61,7 +61,7 @@ module TK.SpaceTac.UI {
|
|||
this.layer_weapon_effects = builder.container("effects");
|
||||
this.layer_targetting = builder.container("targetting");
|
||||
|
||||
this.plandisplay = new PlanDisplay(this.layer_targetting.getBuilder());
|
||||
this.plandisplay = new TurnPlanDisplay(this.layer_targetting.getBuilder());
|
||||
|
||||
this.range_hint.setLayer(this.layer_hints);
|
||||
this.addShipSprites();
|
||||
|
@ -280,9 +280,9 @@ module TK.SpaceTac.UI {
|
|||
}
|
||||
|
||||
/**
|
||||
* Update the battle plan displayed
|
||||
* Update the turn plan displayed
|
||||
*/
|
||||
refreshPlanDisplay(plan?: BattlePlan): void {
|
||||
refreshPlanDisplay(plan?: TurnPlan): void {
|
||||
this.plandisplay.update(plan || { fleets: [] }, this.getBattle());
|
||||
}
|
||||
|
||||
|
|
|
@ -89,17 +89,17 @@ module TK.SpaceTac.UI.Specs {
|
|||
test.case("adds player actions to plan", check => {
|
||||
let battleview = testgame.view;
|
||||
let playing_ship = nn(battleview.battle.playing_ship);
|
||||
check.equals(battleview.plannings.length, 2);
|
||||
check.equals(battleview.plannings[0].collectAllActions(), []);
|
||||
check.equals(battleview.plannings[1].collectAllActions(), []);
|
||||
check.equals(battleview.turn_plannings.length, 2);
|
||||
check.equals(battleview.turn_plannings[0].collectAllActions(), []);
|
||||
check.equals(battleview.turn_plannings[1].collectAllActions(), []);
|
||||
|
||||
let action = nn(first(playing_ship.actions.listAll(), action => action instanceof MoveAction));
|
||||
battleview.applyPlayerAction(action, Target.newFromLocation(0, 0));
|
||||
check.equals(battleview.plannings.length, 2);
|
||||
check.equals(battleview.plannings[0].collectAllActions(), [
|
||||
check.equals(battleview.turn_plannings.length, 2);
|
||||
check.equals(battleview.turn_plannings[0].collectAllActions(), [
|
||||
{ action: action.id, category: action.getCategory(), target: Target.newFromLocation(0, 0) }
|
||||
]);
|
||||
check.equals(battleview.plannings[1].collectAllActions(), []);
|
||||
check.equals(battleview.turn_plannings[1].collectAllActions(), []);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
|
|
@ -26,8 +26,8 @@ module TK.SpaceTac.UI {
|
|||
// Multiplayer sharing
|
||||
multi!: MultiBattle
|
||||
|
||||
// Battle planning for each fleets
|
||||
plannings: BattlePlanning[] = []
|
||||
// Turn planning for each fleets
|
||||
turn_plannings: TurnPlanning[] = []
|
||||
|
||||
// Layers
|
||||
layer_background!: UIContainer
|
||||
|
@ -79,7 +79,7 @@ module TK.SpaceTac.UI {
|
|||
this.player = data.player;
|
||||
this.actual_battle = data.battle;
|
||||
this.battle = duplicate(data.battle, <any>TK.SpaceTac);
|
||||
this.plannings = this.battle.fleets.map(fleet => new BattlePlanning(this.battle, fleet.player));
|
||||
this.turn_plannings = this.battle.fleets.map(fleet => new TurnPlanning(this.battle, fleet.player));
|
||||
this.ship_hovered = null;
|
||||
this.background = null;
|
||||
this.multi = new MultiBattle();
|
||||
|
@ -198,7 +198,7 @@ module TK.SpaceTac.UI {
|
|||
return false;
|
||||
}
|
||||
|
||||
this.plannings.forEach(planning => {
|
||||
this.turn_plannings.forEach(planning => {
|
||||
if (this.action_bar.ship && this.player.is(planning.player)) {
|
||||
planning.addAction(this.action_bar.ship, action, target);
|
||||
}
|
||||
|
@ -213,9 +213,9 @@ module TK.SpaceTac.UI {
|
|||
*/
|
||||
planningsChanged(): void {
|
||||
// By default, show the first plan matching the player
|
||||
const planning = first(this.plannings, planning => this.player.is(planning.player));
|
||||
const planning = first(this.turn_plannings, planning => this.player.is(planning.player));
|
||||
if (planning) {
|
||||
this.arena.refreshPlanDisplay(planning.getBattlePlan());
|
||||
this.arena.refreshPlanDisplay(planning.getTurnPlan());
|
||||
} else {
|
||||
this.arena.refreshPlanDisplay();
|
||||
}
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
module TK.SpaceTac.UI.Specs {
|
||||
testing("PlanDisplay", test => {
|
||||
testing("TurnPlanDisplay", test => {
|
||||
let testgame = setupEmptyView(test);
|
||||
|
||||
function compareDisplay(check: TestContext, plan: BattlePlan, display: PlanDisplay): void {
|
||||
function compareDisplay(check: TestContext, plan: TurnPlan, display: TurnPlanDisplay): void {
|
||||
const container = display.container;
|
||||
const children = cfilter(container.list, UIContainer);
|
||||
check.equals(children.length, plan.fleets.length, "fleet containers count");
|
||||
|
@ -18,36 +18,36 @@ module TK.SpaceTac.UI.Specs {
|
|||
});
|
||||
}
|
||||
|
||||
test.case("updates from a battle plan", check => {
|
||||
test.case("updates from a turn plan", check => {
|
||||
let battle = new Battle();
|
||||
battle.fleets[0].addShip();
|
||||
battle.fleets[1].addShip();
|
||||
battle.fleets[1].addShip();
|
||||
|
||||
const display = new PlanDisplay(testgame.view.getLayer("test").getBuilder());
|
||||
const display = new TurnPlanDisplay(testgame.view.getLayer("test").getBuilder());
|
||||
check.in("initial state", check => {
|
||||
compareDisplay(check, { fleets: [] }, display);
|
||||
});
|
||||
|
||||
let planning = new BattlePlanning(battle);
|
||||
display.update(planning.getBattlePlan());
|
||||
let planning = new TurnPlanning(battle);
|
||||
display.update(planning.getTurnPlan());
|
||||
check.in("initial update", check => {
|
||||
compareDisplay(check, planning.getBattlePlan(), display);
|
||||
compareDisplay(check, planning.getTurnPlan(), display);
|
||||
});
|
||||
|
||||
display.update(planning.getBattlePlan());
|
||||
display.update(planning.getTurnPlan());
|
||||
check.in("no change", check => {
|
||||
// TODO Check that no object was added/removed
|
||||
compareDisplay(check, planning.getBattlePlan(), display);
|
||||
compareDisplay(check, planning.getTurnPlan(), display);
|
||||
});
|
||||
|
||||
battle = new Battle();
|
||||
battle.fleets[0].addShip();
|
||||
battle.fleets[1].addShip();
|
||||
battle.fleets[1].addShip();
|
||||
display.update(planning.getBattlePlan());
|
||||
display.update(planning.getTurnPlan());
|
||||
check.in("update whole", check => {
|
||||
compareDisplay(check, planning.getBattlePlan(), display);
|
||||
compareDisplay(check, planning.getTurnPlan(), display);
|
||||
});
|
||||
});
|
||||
});
|
|
@ -3,9 +3,9 @@ module TK.SpaceTac.UI {
|
|||
const PLAN_COLOR_HL = 0xdde6f9
|
||||
|
||||
/**
|
||||
* Displays and maintain a battle plan
|
||||
* Displays and maintain a turn plan
|
||||
*/
|
||||
export class PlanDisplay {
|
||||
export class TurnPlanDisplay {
|
||||
readonly container: UIContainer
|
||||
private battle?: Battle
|
||||
|
||||
|
@ -13,12 +13,12 @@ module TK.SpaceTac.UI {
|
|||
this.container = builder.container("battleplan");
|
||||
}
|
||||
|
||||
update(plan: BattlePlan, battle?: Battle): void {
|
||||
update(plan: TurnPlan, battle?: Battle): void {
|
||||
this.battle = battle;
|
||||
this.updateBattle(plan, this.container);
|
||||
}
|
||||
|
||||
private updateBattle(plan: BattlePlan, parent: UIContainer) {
|
||||
private updateBattle(plan: TurnPlan, parent: UIContainer) {
|
||||
const builder = parent.getBuilder();
|
||||
|
||||
if (parent.list.length > plan.fleets.length) {
|
Loading…
Reference in New Issue