package pkgIntelligenz;

import pkgGUI.*;
import pkgSpieluniversum.*;

public class Spielsteuerung {
	private Welt welt;

	public Spielsteuerung(Welt welt) {
		this.welt = welt;
		this.heldInNeuenRaumBewegen(welt.getRaumListe().get(0));
		this.userAktionAbfragen();
	}

	public void userAktionAbfragen() {
		String eingabe = InOut.stringEingeben(Textbaustein.USER_AKTION_ABFRAGEN);
		this.aktionAusfuehren(eingabe);

	}



	public void aktionAusfuehren(String usereingabe) {
		Raum aktuellerRaum = this.welt.getHeld().getAktuellerRaum();
		Held held = this.welt.getHeld();
		switch (usereingabe) {
		case "n":
			if (aktuellerRaum.getN() != null) {
				this.heldInNeuenRaumBewegen(aktuellerRaum.getN());
			} else {
				InOut.textAusgeben(Textbaustein.RICHTUNG_NICHT_MOEGLICH);
			}
			break;
		case "s":
			if (aktuellerRaum.getS() != null) {
				this.heldInNeuenRaumBewegen(aktuellerRaum.getS());
			} else {
				InOut.textAusgeben(Textbaustein.RICHTUNG_NICHT_MOEGLICH);
			}
			break;
		case "o":
			if (aktuellerRaum.getO() != null) {
				this.heldInNeuenRaumBewegen(aktuellerRaum.getO());
			} else {
				InOut.textAusgeben(Textbaustein.RICHTUNG_NICHT_MOEGLICH);
			}
			break;
		case "w":
			if (aktuellerRaum.getW() != null) {
				this.heldInNeuenRaumBewegen(aktuellerRaum.getW());
			} else {
				InOut.textAusgeben(Textbaustein.RICHTUNG_NICHT_MOEGLICH);
			}
			break;
		case "h":
			InOut.textAusgeben(Textbaustein.HILFETEXT);
			break;
		default:
			InOut.textAusgeben(Textbaustein.AKTION_NICHT_MOEGLICH);
			break;
		}
		this.userAktionAbfragen();

	}

	public void heldInNeuenRaumBewegen(Raum neuerRaum) {
		this.welt.getHeld().setAktuellerRaum(neuerRaum);
		InOut.textAusgeben(neuerRaum.getName());
		InOut.textAusgeben(neuerRaum.getBeschreibung());

	}

}
