API Docs for:
Show:

File: src/console.js

(function(root) {
    'use strict';

    /**
    * Manages the display and history of console messages to the user.
    * "The troll hits you dealing 10 damage."
    * "You die."
    * @class Console
    * @constructor
    * @param {Game} game - Game instance this obj is attached to.
    * @param {Number} [messageHistoryCount=5] - Number of messages to display at once.
    * @param {String} [elClassName='console'] - Css class name to assign to the console element.
    */
    var Console = function Console(game, messageHistoryCount, elClassName) {
        this.el = document.createElement('div');
        this.el.className = elClassName || 'console';
        this.messageHistoryCount = messageHistoryCount || this.messageHistoryCount;
        this.game = game;
    };

    Console.prototype = {
        constructor: Console,

        /**
        * Game instance this obj is attached to.
        * @property game
        * @type Game
        */
        game: null,

        /**
        * Element containing console messages.
        * Must be manually added to the DOM
        * @property el
        * @type HTMLElement
        */
        el: null,

        /**
        * Number of messages to display at once.
        * @property messageHistoryCount
        * @type Number
        */
        messageHistoryCount: 5,

        /**
        * Adds a message to the console.
        * @method log
        * @param {String} - Message to be added.
        */
        log: function(message){
            if(this.el.children.length > this.messageHistoryCount - 1){
                var childEl = this.el.childNodes[0];
                childEl.remove();
            }

            var messageEl = document.createElement('div');
            messageEl.innerHTML = message;
            this.el.appendChild(messageEl);

        },
    };

    root.RL.Console = Console;

}(this));