import { placeOnBoard } from "./engine/visual/placeOnBoard.js" import { Vector2 } from "./engine/visual/vector2.js" import { board } from "./board.js" import { ASSETS_BLACK, ASSETS_WHITE, PLAYER } from "./constants.js" import { Stone } from "./stone.js" import { nextTurn, playerTurn } from "./engine/turns.js" export class Link { constructor({ position = new Vector2(0, 0), }) { this.team = playerTurn this.position = position this.createSpan() board.links[position.y][position.x] = this this.span.addEventListener("click", _ => { new Stone({ position: position, team: this.team }) nextTurn() }); this.update() } createSpan() { this.span = document.createElement("span") this.span.className = `link` let img = document.createElement("img") img.src = this.team == PLAYER.BLACK ? ASSETS_BLACK : ASSETS_WHITE this.span.appendChild(img) document.body.appendChild(this.span) } update() { let response = placeOnBoard({ position: this.position, board_size: board.size, use_link_size: true, }) this.span.style.left = response.left this.span.style.top = response.top this.span.style.width = this.span.style.height = response.size } removeLink() { this.span.remove() } }