package org.ggp.base.apps.kiosk.games;

import java.awt.Color;
import java.awt.Graphics;

import org.ggp.base.apps.kiosk.templates.CommonGraphics;
import org.ggp.base.apps.kiosk.templates.GameCanvas_SimpleGrid;


public class GoldenRectangleCanvas extends GameCanvas_SimpleGrid {
    private static final long serialVersionUID = 1L;

    @Override
    public String getGameName() { return "Golden Rectangle"; }
    @Override
    protected String getGameKey() { return "golden_rectangle"; }
    @Override
    protected int getGridHeight() { return 8; }
    @Override
    protected int getGridWidth() { return 7; }

    private int selectedColumn = 0;

    @Override
    protected void handleClickOnCell(int xCell, int yCell, int xWithin, int yWithin) {
        for (int y = 0; y <= 7; y++) {
            if(gameStateHasLegalMove("( mark " + xCell + " " + y + " )")) {
                selectedColumn = xCell;
                submitWorkingMove(stringToMove("( mark " + xCell + " " + y + " )"));
            }
        }
    }

    @Override
    protected void renderCell(Graphics g, int xCell, int yCell) {
        yCell = 8 - yCell;

        int width = g.getClipBounds().width;
        int height = g.getClipBounds().height;

        g.setColor(Color.BLACK);
        g.drawRect(1, 1, width-2, height-2);

        if(gameStateHasFact("( cell " + xCell + " " + yCell + " r )")) {
            g.setColor(Color.RED);
            CommonGraphics.drawDisc(g);
        } else if(gameStateHasFact("( cell " + xCell + " " + yCell + " y )")) {
            g.setColor(Color.YELLOW);
            CommonGraphics.drawDisc(g);
        } else {
            ;
        }

        if(selectedColumn == xCell) {
            g.setColor(Color.GREEN);
            g.drawRect(3, 3, width-6, height-6);
        }
    }

    @Override
    public void clearMoveSelection() {
        submitWorkingMove(null);
        selectedColumn = 0;

        repaint();
    }
}