package controleur;
import outils.connexion.AsyncResponse;
import outils.connexion.ClientSocket;
import outils.connexion.Connection;
import outils.connexion.ServeurSocket;
import vue.Arene;
import vue.ChoixJoueur;
import vue.EntreeJeu;

public class Controle implements AsyncResponse {
	private EntreeJeu frmEntreeJeu ;
	public String type;
	private ChoixJoueur frmChoixJoueur;
	private Arene frmArene;
	
	/**
	 * Constructeur
	 */
	private Controle() {
		this.frmEntreeJeu = new EntreeJeu(this) ;
		this.frmEntreeJeu.setVisible(true);
	}

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		new Controle();
	}
	
	public void evenementEntreeJeu(String info) {
		//
		if(info.contains("serveur")) {
			System.out.println("srv");
			type = "serveur";
			//
			new ServeurSocket(this, 6666);
			
			Arene areneJeu = new Arene();
			areneJeu.setVisible(true);
			frmEntreeJeu.dispose();
		}else {
			System.out.println("ip");
			type = "client";
			//
			new ClientSocket(this, info, 6666);
		}
	}

	@Override
	public void reception(Connection connection, String ordre, Object info) {
		// TODO Auto-generated method stub
		switch (ordre){
			case "connexion":
				if(type.equals("client")) {
					frmEntreeJeu.dispose();
					this.frmArene = new Arene();
					this.frmChoixJoueur = new ChoixJoueur(this);
					this.frmChoixJoueur.setVisible(true);
				}
				break;
		}
	}
	public void evenementChoixJoueur(String pseudo, int numPerso) {
		//
		this.frmChoixJoueur.dispose();
		this.frmArene.setVisible(true);
	}

}
