1
0
Fork 0

Renamed battle plan to turn plan

This commit is contained in:
Michaël Lemaire 2019-05-16 18:39:56 +02:00
parent cd1eaf0934
commit c3c88449fb
7 changed files with 45 additions and 45 deletions

View File

@ -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, [

View File

@ -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[]
}

View File

@ -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());
}

View File

@ -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(), []);
});
});
}

View File

@ -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();
}

View File

@ -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);
});
});
});

View File

@ -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) {