/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package BilaPani;

import java.awt.Color;
import javax.swing.JButton;

/**
 *
 * @author Vašek
 */
public class Tile {

    TileType type;
    int wave = -2;
    Color color = Color.white;
    boolean showingBP = false;

    public Tile(String text, TileType type) {
        //super(text);
        //setEnabled(false);
        this.type = type;
        if (type == TileType.WALL) {
        } else if (type == TileType.BP) {
        }
        switch (type) {
            case WALL:
                color = Color.BLACK;
                wave = -1;
                break;
            case BP:
                color = Color.gray;
                showingBP = true;
                wave = 0;
                break;
            case TV:
                color = Color.blue;
                break;
            case ZVED:

                break;
            default:

                break;
        }
    }

    public boolean setWave(int wave) {
        if (this.wave == -2) {
            //System.out.println("changing from " + this.wave + " to " + wave);
            this.wave = wave;
            return true;
        } else if (type == TileType.WALL) {
                if (this.wave == -1) {
                    this.wave = wave + 6400; //80 * 80 = 6400
                    return true;
                } else if (this.wave > wave + 6400) {
                    this.wave = wave + 6400;
                    //System.out.println("Wall improved");
                    return true;
            }
            return false;
        } else if (this.wave > wave) {
            //System.out.println("changing from " + this.wave + " to " + wave);
            this.wave = wave;
            return true;
        } else {
            return false;
            //System.out.println("failed");
        }
    }

    public int getWave() {
        return wave;
    }

    public TileType getType() {
        return type;
    }

    public void setColor(Color color) {
        this.color = color;
    }

    public Color getColor() {
        if (showingBP) {
            return Color.gray;
        } else if (type != TileType.BP) {
            return color;
        } else {
            return Color.white;
        }
    }

    public void setShowingBP(boolean to) {
        showingBP = to;
    }
}
