var render = function()

in rts/frontend/game.js [454:517]


var render = function (game) {
    tick = game.tick;
    ctx.beginPath()
	ctx.fillStyle = "Black";
	ctx.font = "15px Arial";
    var label = "Tick: " + tick;
	ctx.fillText(label, left_frame_width + 10, 20);
    ctx.closePath();
    onMap(game.rts_map);
    if (! game.spectator) {
       onPlayerSeenUnits(game.rts_map);
    }

    var all_units = {};
    var selected = {};
    for (var i in game.players) {
        onPlayerStats(game.players[i]);
    }
    for (var i in game.units) {
        var unit = game.units[i];
        all_units[unit.id] = unit;

        var s_units = game.selected_units;
        var isSelected = (s_units && s_units.indexOf(unit.id) >= 0);
        if (isSelected) {
            selected[unit.id] = unit;
        }

        onUnit(unit, isSelected);
    }
    if (dragging && x_down && y_down) {
        ctx.lineWidth = 2;
        ctx.beginPath();
        ctx.rect(x_down, y_down, x_curr - x_down, y_curr - y_down);
        ctx.strokeStyle = 'green';
        ctx.stroke();
        ctx.closePath();
    }
    for (var i in game.bullets) {
        onBullet(game.bullets[i]);
    }
    var len = Object.keys(selected).length;
    if (len == 1) {
        var idx = Object.keys(selected)[0];
        var unit = selected[idx];
        draw_state(unit);
    }
    ctx.beginPath();
	ctx.fillStyle = "Black";
	ctx.font = "15px Arial";
    if (len > 1) {
        var label = len + " units";
    	ctx.fillText(label ,left_frame_width + 50, 200);
    }
    var label = "Current FPS is " + Math.floor(50 * Math.pow(1.3, speed));
    ctx.fillText(label, left_frame_width + 50, 570);
    if (game.replay_length) {
        range1.value = 100 * game.tick / game.replay_length;
    }

    var label = "Current progress_percent is " + range1.value;
    ctx.fillText(label, left_frame_width + 50, 670);
    ctx.closePath();
};