package client;

import spiel.Spielzug;
import spiel.Spielverlauf;
import java.rmi.Remote;
import java.rmi.RemoteException;

/**
 * Der ClientSpielKommunikator dient dem Server zur Kommunikation mit dem Client
 * während des Spiels.
 * @version 1.2
 * @author ProgPrak-Team	
 */
public interface ClientSpielKommunikator extends Remote {

    /**
     * Übergibt dem Client die Nummer des Spielers der jetzt an der Reihe ist.
     * @param nummer Nummer des Spielers der dran ist
     */
    public void naechsterSpieler(int nummer) throws RemoteException;
    
    /**
     * Übergibt dem Client einen ausgeführten Spielzug.
     * @param zug der Spielzug
     */
    public void zeigeSpielzug(Spielzug zug) throws RemoteException;
    
    /**
     * Übergibt dem Client die verbleibende Zeit für den aktuellen Zug in Millisekunden
     * @param zeit Die Zeit in Millisekunden
     */	
    public void restZeit(int zeit) throws RemoteException;
    
    /**
     * Gesamtzeit, die der Client noch zur Verfügung hat
     * @param zeit GesamtRestzeit des Clients in Millisekunden
     */
    public void restZeitGesamt(int zeit) throws RemoteException;
    
    /**
     * Gesamtanzahl der Züge die dem Client noch zur Verfügung stehen
     * @param zuege Züge, die dem Client noch zu verfügung stehen
     */
    public void restZuege(int zuege) throws RemoteException;  

    /**
     * Übergibt dem Client den gesamten Spielverlauf,
     * wenn das Spiel vorbei ist.
     * @param verlauf vollständiger Spielverlauf
     */
    public void spielBeendet(Spielverlauf verlauf) throws RemoteException;

}
