export const BarcoTipo = Object.freeze({ FRAGATA: 1, DESTRUCTOR: 2, ACORAZADO: 3, PORTAAVIONES: 4, }); class Barco { constructor(x, y, longitud, orientacion, barcoImg) { this.barcoImg = barcoImg; this.xIni = this.x = x; this.yIni = this.y = y; this.longitud = longitud; this.orientacionIni = this.orientacion = orientacion; this.seleccionado = false; this.posIncorrecta = true; } clickado(clickX, clickY) { if (this.orientacion === "VERTICAL") { return ( clickX === this.x && clickY >= this.y && clickY < this.y + this.longitud ); } else { return ( clickY === this.y && clickX >= this.x && clickX < this.x + this.longitud ); } } saveIniPos() { this.orientacionIni=this.orientacion; this.xIni = this.x; this.yIni = this.y; } restoreIniPos() { this.orientacion=this.orientacionIni; this.x = this.xIni; this.y = this.yIni; } setXY(x, y) { this.x = x; this.y = y; } giraBarco() { this.orientacion === "VERTICAL" ? (this.orientacion = "HORIZONTAL") : (this.orientacion = "VERTICAL"); } draw(ctx) { this.orientacion === "VERTICAL" ? ctx.drawImage(this.barcoImg[0], this.x * 64, this.y * 64) : ctx.drawImage(this.barcoImg[1], this.x * 64, this.y * 64); if (this.seleccionado) { ctx.fillStyle = this.posIncorrecta ? "rgba(255, 0, 0, 0.2)" : "rgba(187, 187, 0, 0.2)"; this.orientacion === "VERTICAL" ? ctx.fillRect(this.x * 64, this.y * 64, 64, 64 * this.longitud) : ctx.fillRect(this.x * 64, this.y * 64, 64 * this.longitud, 64); } } } export default Barco;