Home Reference Source Repository

app/ui/DungeonUIBootstrapper.js

import GraphicalDungeonView from '../views/GraphicalDungeonView.js';
import EventLogView from '../views/EventLogView.js';
import AbilitiesView from '../views/AbilitiesView.js';
import InventoryView from '../views/InventoryView.js';
import PlayerLocationView from '../views/PlayerLocationView.js';

import GraphicalViewKeyboardController from '../controllers/GraphicalViewKeyboardController.js';
import GraphicalViewMouseController from '../controllers/GraphicalViewMouseController.js';

export default function(sharedData) {
    const mapView = new GraphicalDungeonView(sharedData);
    const eventLogView = new EventLogView(sharedData);
    const inventoryView = new InventoryView(sharedData);
    const abilitiesView = new AbilitiesView(sharedData);
    const playerLocationView = new PlayerLocationView(sharedData);

    new GraphicalViewKeyboardController(sharedData, mapView);
    new GraphicalViewMouseController(sharedData, mapView);

    const gameSection = document.querySelector('section');
    gameSection.innerHTML = '';
    const container = document.createElement('div');
    container.classList.add('game-ui-container');
    gameSection.appendChild(container);

    container.appendChild(mapView.getDom());
    const sidebar = document.createElement('div');
    const sidebarInner = document.createElement('div');
    sidebarInner.classList.add('sidebar-inner');
    sidebar.classList.add('sidebar');
    sidebar.appendChild(sidebarInner);
    container.appendChild(sidebar);
    container.appendChild(playerLocationView.getDom());
    container.appendChild(abilitiesView.getDom());
    sidebarInner.appendChild(inventoryView.getDom());
    sidebarInner.appendChild(eventLogView.getDom());

    setTimeout(function() { sharedData.getDungeon().resolveUntilBlocked(); });
}