import { MapaVisor,MapaEditor, MapaAtaque } from './mapa.js';
class TableroBase {
    constructor(canvasMapa, canvasMiniMapa,sprites){
        this.canvasMapa = canvasMapa;
        this.canvasMiniMapa = canvasMiniMapa;
        this.sprites = sprites;
    }
}
class TableroEditor extends TableroBase{
    constructor(canvasMapa, canvasMiniMapa,sprites, [mapaFlota, mapaAtaques] ){
        super(canvasMapa, canvasMiniMapa,sprites)
        const { barcos: barcosMapaFlota, celdas: celdasMapaFlota } = mapaFlota;
        const { barcos: barcosMapaAtaques, celdas: celdasMapaAtaques } = mapaAtaques;
        this.mapaFlota = new MapaEditor(canvasMapa, 640, 1,sprites,barcosMapaFlota,celdasMapaFlota);
        this.mapaDeAtaques = new MapaVisor(canvasMiniMapa, 320, 0.5, sprites,barcosMapaAtaques,celdasMapaAtaques);
    }
    draw() {
        this.mapaFlota.draw();
        this.mapaDeAtaques.draw(); 
    }
}

class TableroVisor extends TableroBase{
    constructor(canvasMapa, canvasMiniMapa,sprites, [mapaFlota, mapaAtaques] ){
        super(canvasMapa, canvasMiniMapa,sprites)
        const { barcos: barcosMapaFlota, celdas: celdasMapaFlota } = mapaFlota;
        const { barcos: barcosMapaAtaques, celdas: celdasMapaAtaques } = mapaAtaques;
        this.mapaFlota = new MapaVisor(canvasMiniMapa, 320, 0.5,sprites,barcosMapaFlota,celdasMapaFlota);
        this.mapaDeAtaques = new MapaVisor(canvasMapa, 640, 1, sprites,barcosMapaAtaques,celdasMapaAtaques);
    }
    draw() {
        this.mapaFlota.draw();
        this.mapaDeAtaques.draw(); 
    }
}

class TableroAtaque extends TableroBase{
    constructor(canvasMapa, canvasMiniMapa,sprites, [mapaFlota, mapaAtaques] ){
        super(canvasMapa, canvasMiniMapa,sprites)
        const { barcos: barcosMapaFlota, celdas: celdasMapaFlota } = mapaFlota;
        const { barcos: barcosMapaAtaques, celdas: celdasMapaAtaques } = mapaAtaques;
        this.mapaFlota = new MapaVisor(canvasMiniMapa, 320, 0.5,sprites,barcosMapaFlota,celdasMapaFlota);
        this.mapaDeAtaques = new MapaAtaque(canvasMapa, 640, 1, sprites,barcosMapaAtaques,celdasMapaAtaques);
    }
    draw() {
        this.mapaFlota.draw();
        this.mapaDeAtaques.draw(); 
    }
}



export {TableroBase,TableroEditor,TableroVisor,TableroAtaque}