2015-12-18 12:55:26 +00:00
|
|
|
'use strict';
|
|
|
|
|
|
|
|
var _unit = require('./classes/unit');
|
|
|
|
|
|
|
|
var _unit2 = _interopRequireDefault(_unit);
|
|
|
|
|
|
|
|
var _tank = require('./classes/tank');
|
|
|
|
|
|
|
|
var _tank2 = _interopRequireDefault(_tank);
|
|
|
|
|
|
|
|
var _interface = require('./classes/interface');
|
|
|
|
|
|
|
|
var _interface2 = _interopRequireDefault(_interface);
|
|
|
|
|
|
|
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
|
|
|
|
|
|
var FRAME = 50;
|
|
|
|
var ui = new _interface2.default();
|
|
|
|
var immoblize = false;
|
|
|
|
|
|
|
|
var one = new _tank2.default(ui);
|
|
|
|
one.go(10, ui.rows);
|
|
|
|
|
|
|
|
var two = new _tank2.default(ui);
|
|
|
|
two.go(ui.columns - 10, ui.rows);
|
|
|
|
|
|
|
|
var stop = false;
|
|
|
|
|
|
|
|
function loop() {
|
|
|
|
if (stop) return;
|
|
|
|
|
|
|
|
ui.clear();
|
|
|
|
|
|
|
|
if (one.dead || two.dead) {
|
|
|
|
var num = one.dead ? '2' : '1';
|
2019-05-09 20:41:18 +00:00
|
|
|
var msg = i18n.__('Player %s won!', num);
|
2015-12-18 12:55:26 +00:00
|
|
|
ui.cursor.red();
|
|
|
|
ui.cursor.bold();
|
|
|
|
|
|
|
|
ui.cursor.goto(ui.center.x - msg.length / 2, ui.center.y);
|
|
|
|
ui.write(msg);
|
|
|
|
|
|
|
|
stop = true;
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
one.draw();
|
|
|
|
one.bullets.forEach(function (bullet, i) {
|
|
|
|
if (bullet.dead) {
|
|
|
|
immoblize = false;
|
|
|
|
one.bullets.splice(i, 1);
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
bullet.move();
|
|
|
|
bullet.draw();
|
|
|
|
|
|
|
|
if (bullet.collides(two)) {
|
|
|
|
two.health -= 10;
|
|
|
|
bullet.dead = true;
|
|
|
|
}
|
|
|
|
});
|
|
|
|
|
|
|
|
ui.cursor.goto(0, 1);
|
|
|
|
if (turn() === one) ui.cursor.hex('#54ffff');
|
2019-05-09 20:41:18 +00:00
|
|
|
ui.write(i18n.__('Player') + ' 1');
|
2015-12-18 12:55:26 +00:00
|
|
|
ui.cursor.reset();
|
|
|
|
ui.cursor.goto(0, 2);
|
2019-05-09 20:41:18 +00:00
|
|
|
ui.write(i18n.__('Health') + ': ' + one.health);
|
2015-12-18 12:55:26 +00:00
|
|
|
ui.cursor.goto(0, 3);
|
2019-05-09 20:41:18 +00:00
|
|
|
ui.write(i18n.__('Angle') + ': ' + parseInt(one.angle));
|
2015-12-18 12:55:26 +00:00
|
|
|
|
|
|
|
two.draw();
|
|
|
|
two.bullets.forEach(function (bullet, i) {
|
|
|
|
if (bullet.dead) {
|
|
|
|
immoblize = false;
|
|
|
|
two.bullets.splice(i, 1);
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
bullet.move();
|
|
|
|
bullet.draw();
|
|
|
|
|
|
|
|
if (bullet.collides(one)) {
|
|
|
|
one.health -= 10;
|
|
|
|
bullet.dead = true;
|
|
|
|
}
|
|
|
|
});
|
|
|
|
|
|
|
|
ui.cursor.goto(ui.output.columns - 10, 1);
|
|
|
|
if (turn() === two) ui.cursor.hex('#54ffff');
|
2019-05-09 20:41:18 +00:00
|
|
|
ui.write(i18n.__('Player') + ' 2');
|
2015-12-18 12:55:26 +00:00
|
|
|
ui.cursor.reset();
|
|
|
|
ui.cursor.goto(ui.output.columns - 10, 2);
|
2019-05-09 20:41:18 +00:00
|
|
|
ui.write(i18n.__('Health') + ': ' + two.health);
|
2015-12-18 12:55:26 +00:00
|
|
|
ui.cursor.goto(ui.output.columns - 10, 3);
|
2019-05-09 20:41:18 +00:00
|
|
|
ui.write(i18n.__('Angle') + ': ' + parseInt(two.angle));
|
2015-12-18 12:55:26 +00:00
|
|
|
setTimeout(loop, FRAME);
|
|
|
|
}
|
|
|
|
|
|
|
|
loop();
|
|
|
|
|
|
|
|
ui.onKey('down', function () {
|
|
|
|
if (immoblize) return;
|
|
|
|
|
|
|
|
turn().angle -= 1;
|
|
|
|
});
|
|
|
|
|
|
|
|
ui.onKey('up', function () {
|
|
|
|
if (immoblize) return;
|
|
|
|
|
|
|
|
turn().angle += 1;
|
|
|
|
});
|
|
|
|
|
|
|
|
ui.onKey('left', function () {
|
|
|
|
if (immoblize) return;
|
|
|
|
|
|
|
|
turn().x -= 1;
|
|
|
|
});
|
|
|
|
|
|
|
|
ui.onKey('right', function () {
|
|
|
|
if (immoblize) return;
|
|
|
|
|
|
|
|
turn().x += 1;
|
|
|
|
});
|
|
|
|
|
|
|
|
ui.onKey('space', function () {
|
|
|
|
if (immoblize) return;
|
|
|
|
|
|
|
|
turn().shoot();
|
|
|
|
|
|
|
|
immoblize = true;
|
|
|
|
TURN = !TURN;
|
|
|
|
});
|
|
|
|
|
|
|
|
ui.onKey(function () {
|
|
|
|
if (one.dead || two.dead) {
|
|
|
|
one.go(10, ui.rows);
|
|
|
|
two.go(ui.columns - 10, ui.rows);
|
|
|
|
|
|
|
|
one.health = 100;
|
|
|
|
two.health = 100;
|
|
|
|
|
|
|
|
one.dead = false;
|
|
|
|
two.dead = false;
|
|
|
|
|
|
|
|
stop = false;
|
|
|
|
|
|
|
|
loop();
|
|
|
|
}
|
|
|
|
});
|
|
|
|
|
|
|
|
var TURN = true;
|
|
|
|
function turn() {
|
|
|
|
if (TURN) return one;
|
|
|
|
return two;
|
|
|
|
}
|