set_font: function(type='normal') {
this.ctx.font = type + ' ' + this.charHeight + 'px monospace';
},
- write: function(start_y, start_x, msg, foreground_color='black') {
- this.ctx.fillStyle = foreground_color;
- this.ctx.fillRect(start_x*this.charWidth, start_y*this.charHeight,
- this.charWidth*msg.length, this.charHeight);
+ write: function(start_y, start_x, msg, foreground_color='white') {
if (foreground_color === 'black') {
this.ctx.fillStyle = 'white';
} else {
this.ctx.fillStyle = 'black';
}
this.ctx.fillText(msg, start_x*this.charWidth, start_y*this.charHeight);
+ this.ctx.fillRect(start_x*this.charWidth, start_y*this.charHeight,
+ this.charWidth*msg.length, this.charHeight);
+ this.ctx.fillStyle = foreground_color;
+ this.ctx.fillText(msg, start_x*this.charWidth, start_y*this.charHeight);
},
drawBox: function (start_y, start_x, height, width, color='white') {
this.ctx.fillStyle = color;
for (let line of chat.history) {
terminal.write(terminal.rows - 2 - i, terminal.cols / 2, line);
i += 1;
- // if (i > terminal.rows - 3) {
- // break;
- // }
}
},
draw_map: function() {
terminal.drawBox(0, 0, terminal.rows, terminal.cols / 2);
- let map_line = "";
- let y = 0;
- for (let i = 0, x = 0; i < game.map.length; i++, x++) {
+ for (let i = 0, y = 0, x = 0; i < game.map.length; i++, x++) {
if (x >= game.map_size[1]) {
- terminal.write(y, 0, map_line);
- map_line = "";
x = 0;
y += 1;
};
- map_line += game.map[i];
+ let c = game.map[i];
+ let color = 'white';
+ if (c == '.') {
+ color = '#ffaa00';
+ } else if (c == '~') {
+ color = '#5555ff';
+ } else if (c == 'X') {
+ color = '#55ff00';
+ }
+ terminal.write(y, x, game.map[i], color);
}
- terminal.write(y, 0, map_line);
for (const t in game.things) {
terminal.write(game.things[t][0], game.things[t][1], '@');
}