1
0
Fork 0
spacetac/src/ui/character/FleetCreationView.ts

47 lines
1.8 KiB
TypeScript

/// <reference path="../BaseView.ts"/>
module TK.SpaceTac.UI {
/**
* View to configure the initial characters in the fleet
*/
export class FleetCreationView extends BaseView {
built_fleet: Fleet
infinite_shop: Shop
character_sheet: CharacterSheet
create() {
super.create();
let models = ShipModel.getRandomModels(2);
this.built_fleet = new Fleet();
this.built_fleet.addShip(new Ship(null, MissionGenerator.generateCharacterName(), models[0]));
this.built_fleet.addShip(new Ship(null, MissionGenerator.generateCharacterName(), models[1]));
this.built_fleet.credits = this.built_fleet.ships.length * 1000;
let basic_equipments = () => {
let generator = new LootGenerator();
let equipments = generator.templates.map(template => template.generate(1));
return sortedBy(equipments, equipment => equipment.slot_type);
}
this.infinite_shop = new Shop(1, basic_equipments(), 0, basic_equipments);
this.character_sheet = new CharacterSheet(this, undefined, undefined, () => this.validateFleet());
this.character_sheet.setShop(this.infinite_shop, "Available stock (from Master Merchant Guild)");
this.character_sheet.show(this.built_fleet.ships[0], false);
this.getLayer("characters").add(this.character_sheet);
}
/**
* Validate the configured fleet and move on
*/
async validateFleet() {
let confirmed = await UIConfirmDialog.ask(this, "Do you confirm these initial fleet settings ?");
if (confirmed) {
this.session.setCampaignFleet(this.built_fleet, this.session.hasUniverse());
this.backToRouter();
}
}
}
}