Added a ShipList to hold ship icons in battle view
This commit is contained in:
parent
0f45244a8e
commit
872ac12159
|
@ -23,8 +23,5 @@ module SpaceTac.Game {
|
||||||
|
|
||||||
// Level requirement
|
// Level requirement
|
||||||
min_level: number;
|
min_level: number;
|
||||||
|
|
||||||
constructor() {
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -13,6 +13,7 @@ module SpaceTac.View {
|
||||||
this.load.image("ui-shiplist-own", "assets/images/battle/shiplist-own.png");
|
this.load.image("ui-shiplist-own", "assets/images/battle/shiplist-own.png");
|
||||||
this.load.image("ui-shiplist-enemy", "assets/images/battle/shiplist-enemy.png");
|
this.load.image("ui-shiplist-enemy", "assets/images/battle/shiplist-enemy.png");
|
||||||
this.load.image("ui-arena-background", "assets/images/battle/arena-background.png");
|
this.load.image("ui-arena-background", "assets/images/battle/arena-background.png");
|
||||||
|
this.load.image("ui-ship-card", "assets/images/battle/ship-card.png");
|
||||||
this.load.image("arena-ship", "assets/images/battle/ship01.png");
|
this.load.image("arena-ship", "assets/images/battle/ship01.png");
|
||||||
this.load.image("ui-bar-standard-background", "assets/images/ui/bars/standard-background.png");
|
this.load.image("ui-bar-standard-background", "assets/images/ui/bars/standard-background.png");
|
||||||
this.load.image("ui-bar-standard-foreground", "assets/images/ui/bars/standard-foreground.png");
|
this.load.image("ui-bar-standard-foreground", "assets/images/ui/bars/standard-foreground.png");
|
||||||
|
|
|
@ -25,6 +25,9 @@ module SpaceTac.View {
|
||||||
// Card to display hovered ship
|
// Card to display hovered ship
|
||||||
card_hovered: ShipCard;
|
card_hovered: ShipCard;
|
||||||
|
|
||||||
|
// Ship list
|
||||||
|
ship_list: ShipList;
|
||||||
|
|
||||||
// Action bar
|
// Action bar
|
||||||
action_bar: ActionBar;
|
action_bar: ActionBar;
|
||||||
|
|
||||||
|
@ -47,7 +50,6 @@ module SpaceTac.View {
|
||||||
create() {
|
create() {
|
||||||
var battleview = this;
|
var battleview = this;
|
||||||
var game = this.game;
|
var game = this.game;
|
||||||
var player = this.player;
|
|
||||||
|
|
||||||
game.stage.backgroundColor = 0x000000;
|
game.stage.backgroundColor = 0x000000;
|
||||||
|
|
||||||
|
@ -61,14 +63,10 @@ module SpaceTac.View {
|
||||||
|
|
||||||
// Add UI elements
|
// Add UI elements
|
||||||
this.action_bar = new ActionBar(this);
|
this.action_bar = new ActionBar(this);
|
||||||
|
this.ship_list = new ShipList(this);
|
||||||
this.card_playing = new ShipCard(this, 500, 0);
|
this.card_playing = new ShipCard(this, 500, 0);
|
||||||
this.card_hovered = new ShipCard(this, 500, 300);
|
this.card_hovered = new ShipCard(this, 500, 300);
|
||||||
|
|
||||||
// Add ship buttons to UI
|
|
||||||
this.battle.play_order.forEach(function (ship: Game.Ship, rank: number) {
|
|
||||||
new ShipListItem(battleview, 0, rank * 50, ship, ship.getPlayer() === player);
|
|
||||||
});
|
|
||||||
|
|
||||||
// Add a test progress bar
|
// Add a test progress bar
|
||||||
var bar = ValueBar.newStandard(game, 300, 300);
|
var bar = ValueBar.newStandard(game, 300, 300);
|
||||||
bar.setValue(50, 100);
|
bar.setValue(50, 100);
|
||||||
|
|
58
src/scripts/view/battle/ShipList.ts
Normal file
58
src/scripts/view/battle/ShipList.ts
Normal file
|
@ -0,0 +1,58 @@
|
||||||
|
module SpaceTac.View {
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
// Bar with all playing ships, by play order
|
||||||
|
export class ShipList extends Phaser.Group {
|
||||||
|
// Link to the parent battleview
|
||||||
|
battleview: BattleView;
|
||||||
|
|
||||||
|
// List of ship items
|
||||||
|
ships: ShipListItem[];
|
||||||
|
|
||||||
|
// Create an empty action bar
|
||||||
|
constructor(battleview: BattleView) {
|
||||||
|
this.battleview = battleview;
|
||||||
|
this.ships = [];
|
||||||
|
|
||||||
|
super(battleview.game, battleview.ui);
|
||||||
|
battleview.ui.add(this);
|
||||||
|
|
||||||
|
if (battleview.battle) {
|
||||||
|
this.setShipsFromBattle(battleview.battle);
|
||||||
|
}
|
||||||
|
this.update();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Update the bar status (and position)
|
||||||
|
update() {
|
||||||
|
super.update();
|
||||||
|
|
||||||
|
this.y = 100;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Clear the action icons
|
||||||
|
clearAll(): void {
|
||||||
|
this.ships.forEach((ship: ShipListItem) => {
|
||||||
|
ship.destroy();
|
||||||
|
});
|
||||||
|
this.ships = [];
|
||||||
|
}
|
||||||
|
|
||||||
|
// Set the ship list from a battle
|
||||||
|
setShipsFromBattle(battle: Game.Battle): void {
|
||||||
|
this.clearAll();
|
||||||
|
battle.play_order.forEach((ship: Game.Ship) => {
|
||||||
|
this.addShip(ship);
|
||||||
|
}, this);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Add a ship icon
|
||||||
|
addShip(ship: Game.Ship): ShipListItem {
|
||||||
|
var owned = ship.getPlayer() === this.battleview.player;
|
||||||
|
var result = new ShipListItem(this, 0, this.ships.length * 50, ship, owned);
|
||||||
|
this.ships.push(result);
|
||||||
|
this.add(result);
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -7,18 +7,17 @@ module SpaceTac.View {
|
||||||
private ship: Game.Ship;
|
private ship: Game.Ship;
|
||||||
|
|
||||||
// Create a ship button for the battle ship list
|
// Create a ship button for the battle ship list
|
||||||
constructor(battleview: BattleView, x: number, y: number, ship: Game.Ship, owned: boolean) {
|
constructor(list: ShipList, x: number, y: number, ship: Game.Ship, owned: boolean) {
|
||||||
this.ship = ship;
|
this.ship = ship;
|
||||||
|
|
||||||
super(battleview.game, x, y, owned ? "ui-shiplist-own" : "ui-shiplist-enemy");
|
super(list.battleview.game, x, y, owned ? "ui-shiplist-own" : "ui-shiplist-enemy");
|
||||||
battleview.ui.add(this);
|
|
||||||
|
|
||||||
this.input.useHandCursor = true;
|
this.input.useHandCursor = true;
|
||||||
this.onInputOver.add(() => {
|
this.onInputOver.add(() => {
|
||||||
battleview.cursorOnShip(ship);
|
list.battleview.cursorOnShip(ship);
|
||||||
});
|
});
|
||||||
this.onInputOut.add(() => {
|
this.onInputOut.add(() => {
|
||||||
battleview.cursorOffShip(ship);
|
list.battleview.cursorOffShip(ship);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue