package edu.whs.spin2018.baoapp.views.menues;

import edu.whs.spin2018.baoapp.model.Benutzer;
import edu.whs.spin2018.baoapp.presenter.BasePresenter;
import edu.whs.spin2018.baoapp.model.remote.mehrspieler.MehrspielerEventListener;
import edu.whs.spin2018.baoapp.model.remote.mehrspieler.MehrspielerRemoteDataSource;
import edu.whs.spin2018.baoapp.views.BaseView;

public interface MehrspielerContract {

    interface View extends BaseView<Presenter> {

        /**
         * Beendet die Suche nach einem Schnellspiel.
         */
        void beendeSchnellspielDialog();

        /**
         * Zeigt dem Spieler an, dass ein Gegner gefunden wurde.
         */
        void zeigeGegnerGefunden();

        /**
         * Zeigt an, dass ein Gegner gesucht wird.
         */
        void zeigeGegnerSuche();

        /**
         * Startet das Spiel
         *
         * @param gegner - Daten des Gegeners
         * @param raum   - Raum, in den die beiden Spieler verschoben werden
         */
        void starteSpiel(Benutzer gegner, String raum);
    }

    interface Presenter extends BasePresenter<MehrspielerRemoteDataSource>, MehrspielerEventListener {

        /**
         * Sendet an den Server, dass der Spieler ein Schnellspiel sucht
         */
        void starteSchnellspielSuche();

        void beendeSchnellspielSuche();
    }

}
