import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;

/**
 * Klasse für Erstellung von winScreen Objekten
 * Dient zur Anzeige des Sieges nachdem ein Spiel
 * @author Lucas Bronson
 */
public class WinScreen extends JPanel {
    JLabel winLabel = new JLabel("Du hast Gewonnen!");
    Font robotoFont = new Font("Roboto", Font.BOLD, 45);
    JButton okButton = new JButton("Zurück zum Hauptmenü");

    /**
     * Konstruktor der WinScreen Klasse
     * @param frame Der Mainframe der Anwendung über den alle Panels angezeigt werden.
     * @author Lucas Bronson
     */
    public WinScreen(MainFrame frame) {
        setLayout(null);
        buildPanel(frame);
    }

    /**
     * Panel bauen/Objekte hinzufuegen
     * @param frame Der Mainframe der Anwendung über den alle Panels angezeigt werden.
     * @author Lucas Bronson
     */
    public void buildPanel(MainFrame frame) {
        Timer timer = new Timer(5, new ActionListener() {
            private float hue = 0; // Farbton-Wert für HSB-Farbmodell

            @Override
            public void actionPerformed(ActionEvent e) {
                // Farbe basierend auf dem Farbton-Wert berechnen
                Color pulsierendeFarbe = Color.getHSBColor(hue, 0.8f, 0.8f); // Sättigung und Helligkeit fix
                winLabel.setForeground(pulsierendeFarbe);

                // Farbton leicht verändern (Zyklus zwischen 0 und 1)
                hue += 0.01f;
                if (hue > 1) {
                    hue = 0;
                }
            }
        });
        okButton.setBounds(650,525,200,50);
        winLabel.setBounds(500,450,500,50);
        timer.start(); // Timer starten
        winLabel.setFont(robotoFont);
        winLabel.setHorizontalAlignment(SwingConstants.CENTER);
        //Zurückkehren zum Hauptmenü, wenn okButton gedrückt wird
        okButton.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                frame.showPanel("MainMenu");
            }

        });
        add(winLabel);
        add(okButton);
    }
}
