/**
 * Méthode principale de l'écran
 *
 * @Param sf::RenderWindow &fenetre
 * @Param Personnage &perso1
 * @Param Personnage &perso2
 * @Param Affichage &affichage
 * @Param Carte &carteJeu
 * @Son &son
 *
 * @Return int
 */
int EcranMancheFinie::run(sf::RenderWindow &fenetre, Personnage &perso1, Personnage &perso2, Affichage &affichage, Carte &carteJeu, Son &son)
{
	sf::Event monEvent;
	bool running = true;

	// On joue le son de victoire
	son.playWin();

	// Boucle du menu principal
	while(running)
	{
		while(fenetre.GetEvent(monEvent))
		{
		    if (monEvent.Type == sf::Event::Closed)
		    {
		        //On stoppe la musique
                son.stopMusic();
				return (ECRAN_MENU_PRINCIPAL); // On quitte le jeu
		    }

			if ((monEvent.Type == sf::Event::KeyPressed) && (monEvent.Key.Code == sf::Key::Return))
            {
				// On relance le jeu à nouveau
				return (ECRAN_JEU);
			}
			if ((monEvent.Type == sf::Event::KeyPressed) && (monEvent.Key.Code == sf::Key::Escape))
            {
                son.stopMusic();
				// On relance le jeu à nouveau
				return (ECRAN_MENU_PRINCIPAL);
			}

		}
		// On affiche le contenu de l'écran
        fenetre.Clear();
        affichage.displayFond(fenetre);
        affichage.displayMap(fenetre);

		// On affiches les sprites de fin de manche
		if(perso1.isVivant() && !perso2.isVivant())
		{
			affichage.displayFinManche(fenetre, "1", 100, 250);
		}
		else if(perso2.isVivant() && !perso1.isVivant())
		{
			affichage.displayFinManche(fenetre, "2", 100, 250);
		}
		else if(!perso1.isVivant() && !perso2.isVivant())
		{
		    affichage.displayFinMancheEgal(fenetre, 100, 250);
        }

		affichage.displayPersoFini(&perso1, fenetre);
		affichage.displayPersoFini(&perso2, fenetre);

		// On affiche les scores
		affichage.displayScore(fenetre,perso1,90);
        affichage.displayScore(fenetre,perso2,400);
        // On affiche le contenu de la fenetre
		affichage.displayAvatar(fenetre);
		fenetre.Display();
	}
	// Normalement on atteint jamais cet endroit, si jamais ça arrive on quitte le jeu.
	return (ECRAN_QUITTER);
}