import processing.core.PApplet;

public class Face
{
    public static final int DIAMETER = 50;
    
    private FaceGrid parent;
    private int color;
    private boolean isSad;
    
    public Face(FaceGrid p)
    {
        parent = p;
        
        color = parent.color(
                parent.random(256),
                parent.random(256),
                parent.random(256));
        
        isSad = false;
    }
    
    public void drawSelf(int row, int column)
    {
        final int centerX = parent.getLeftX(column) + (FaceGrid.BOX_WIDTH / 2);
        final int centerY = parent.getTopY(row) + (FaceGrid.BOX_HEIGHT / 2);
        
        parent.fill(color);
        parent.ellipse(centerX, centerY, DIAMETER, DIAMETER);
        
        parent.fill(255);
        parent.ellipse(centerX - 10, centerY - 5, 5, 5);
        parent.ellipse(centerX + 10, centerY - 5, 5, 5);
        
        if(isSad)
        {
            parent.arc(centerX, centerY + 10, 15, 10,
                    PApplet.radians(180), PApplet.radians(360));
        }
        else
        {
            parent.arc(centerX, centerY + 10, 15, 10,
                    PApplet.radians(0), PApplet.radians(180));
        }
    }
    
    public boolean isSad()
    {
        return isSad;
    }
    
    public void makeSad()
    {
        isSad = true;
    }
}
