HelpPage.java

package ch.ladestation.connectncharge.model.text;

public enum HelpPage {
    WELCOME("Herzlich willkommen im Hilfe-Menü!\n\n"
            + "Hier erhalten Sie alle wichtigen Informationen, um im Spiel erfolgreich zu sein. "
            + "Bitte wählen Sie einen der folgenden Abschnitte, um detaillierte Informationen "
            + "und hilfreiche Tipps zu bekommen:", null),
    GAME_START("Spielstart: \n\nUm das Spiel zu beginnen, klicken Sie zunächst auf den "
            + "Ladebildschirm (Connect 'n Charge),"
            + " um zum Hauptbildschirm zu gelangen (falls Sie sich noch im Ladebildschirm befinden). "
            + "Anschließend klicken Sie auf den \"Start\"-Button in der unteren Mitte "
            + "des Halbkreises, um den Countdown zu starten und das Spiel zu beginnen. "
            + "Im Burger-Menü können Sie zudem ein Bonuslevel auswählen und spielen.", WELCOME),
    GAME_CONTROLS("Spielsteuerung: \n\nUm das Spiel zu steuern, tippen Sie einmal auf die "
            + "weißen Kanten (Streifen), um sie blau aufleuchten zu lassen. Tippen Sie erneut auf "
            + "dieselbe Kante, erlischt die Farbe wieder. "
            + "Das Display kann per Touch bedient werden, um Tipps abzurufen, den Hilfe-Bildschirm "
            + "aufzurufen oder das Spiel zu verlassen.", GAME_START),
    GAME_PLAY("Gameplay:\n\nSobald das Spiel startet, beginnt die Zeit zu laufen. Wenn Sie Kanten auswählen, "
            + "werden deren Kosten auf dem Display angezeigt. Ihr Ziel ist es, durch geschicktes Kombinieren "
            + "und Ausprobieren der Kantenlängen, "
            + "den kürzesten und kosteneffizientesten Weg zu finden, um alle blauleuchtende Ferienhäuser mit "
            + "Ladestationen zu verbinden.", GAME_CONTROLS),
    RULES("Regeln: \n\nDas Spiel endet erst, wenn der kosteneffizienteste Weg gefunden "
            + "und die LEDs wieder erloschen sind. "
            + "Ein Kreis im Graphen ist nicht erlaubt - falls Sie dennoch einen erstellen, erhalten Sie "
            + "eine entsprechende Meldung auf dem Display.", GAME_PLAY),
    GOAL("Ziel:\n\nIhr Ziel ist es, so schnell wie möglich den kostengünstigsten und "
            + "kürzesten Weg im Graphen zu finden. "
            + "Sobald der optimale Weg gefunden und verbunden wurde, ist das Spiel beendet, und "
            + "Ihre Zeit wird in der Rangliste gespeichert.", RULES),
    SUPPORT("Support:\n\nSollten Sie auf technische Probleme oder Fehler im Spiel stoßen, "
            + "wenden Sie sich bitte an die zuständige Aufsichtsperson.", GOAL);

    private final String text;
    private final HelpPage previousPage;

    HelpPage(String text, HelpPage previousPage) {
        this.text = text;
        this.previousPage = previousPage;
    }

    public String getText() {
        return text;
    }

    public HelpPage getPreviousPage() {
        return previousPage;
    }

    public HelpPage getNext() {
        if (this.ordinal() == values().length - 1) {
            return values()[0];
        }
        return values()[this.ordinal() + 1];
    }

    public HelpPage getPrevious() {
        if (this.ordinal() == 0) {
            return values()[values().length - 1];
        }
        return values()[this.ordinal() - 1];
    }
}