/* Execute une commande indiquee en parametre lors d'un achat dans la boutique */
void executerCommandeAcheterBoutique(const char *commande)
{
	char typePotion[TAILLE_MAX];
	unsigned int quantitePotion, niveauPotion;
	unsigned int prixCommande;
	unsigned int choixJoueur;

	/* Si la commande est -1 (le joueur veut revenir a la boutique) on retourne a la boutique */
	if(strcmp(commande, "-1") == 0)
		boutique();
	/* Sinon si on peut lire la quantite, le type de la potion et son niveau (commande correcte) */
	else if(sscanf(commande, "%d %s %d", &quantitePotion, typePotion, &niveauPotion) == 3)
	{
		/* On formate le nom de la potion entree pour que le joueur puisse entrer de n'importe
		quelle forme le nom de la potion (Sante, sante, SaNtE etc.) */
		formaterNomPotion(typePotion);

		/* On affiche la commande */
		printf("Vous souhaitez donc acheter %d potion(s) de %s de niveau %d.\n", quantitePotion, 
		typePotion, niveauPotion);

		/* On calcule le prix de la commande */
		prixCommande = calculerPrixPotionAcheterBoutique(quantitePotion, typePotion, 
		niveauPotion);

		/* On affiche le prix */
		printf("Ca vous fera %d tek.\n", prixCommande);
		/* On demande si le joueur est sur de faire l'achat */
		choixJoueur = demanderConfirmation("Etes vous sur de vouloir faire cet achat ? (0/1)", 
		SEPARATION);

		/* Si le joueur veut effectuer l'achat */
		if(choixJoueur == OUI)
		{
			/* On lui enleve le prix de la commande, si le joueur a assez d'argent on lui ajoute
			sa commande dans son inventaire */
			if(peutAcheterCommande(prixCommande))
			{
				enleverTekInventaire(prixCommande);
				ajouterPotionInventaire(quantitePotion, recupererTypePotion(typePotion), niveauPotion);
			}
		}
		/* Si le joueur ne veut pas effectuer l'achat, on le redirige juste vers la categorie
		achat de la boutique */

		/* On retourne dans la categorie achat de la boutique */
		acheterBoutique();
	}
	/* Sinon c'est une commande incorrecte */
	else
	{
		/* On affiche un message d'erreur, on attend un certain temps et on retourne dans la 
		categorie achat de la boutique */
		printf("Veuillez entrer une commande correcte !\n");
		attendre(1.2);
		acheterBoutique();
	}
}
Beispiel #2
0
/* Affiche un texte lorsque le joueur se trouve sur la porte de la sortie */
void afficherTextePorteSortie(void)
{
	effacer();
	titre("Porte de sortie", VERT);

	/* Si le joueur possede la cle de fin de niveau */
	if(inventaire.possedeCleFinNiveau)
	{
		unsigned int choixJoueur;

		/* On affiche un texte indiquant le passage du prochain niveau */
		lireEtAfficher("Sortie/Texte_Porte_Sortie_Cle.txt");

		/* On demande si le joueur veut faire un tour a la boutique avant de passer au prochain
		niveau */
		choixJoueur = demanderConfirmation("Voulez-vous aller dans la boutique ? (0/1)", SEPARATION);

		/* S'il veut */
		if(choixJoueur == OUI)
			/* On appelle la fonction boutique */
			boutique();

		appuyezEntree("\nAppuyez sur ENTREE pour acceder au prochain niveau");

		/* On enleve la cle de fin de niveau de l'inventaire du joueur */
		inventaire.possedeCleFinNiveau = 0;
		/* On incremente de 1 la variable niveauActuel du joueur pour indiquer le passage au 
		prochain niveau */
		++(personnage.niveauActuel);

		/* On sauvegarde l'inventaire pour que le joueur conserve l'inventaire entre le passage
		de niveau */
		sauvegarderInventaire();

		/* On vide le dossier de sauvegarde sur le niveau (car on va changer de niveau) */
		viderDossierNiveauSauvegarde(personnage.nom);

		/* On relance le jeu */
		jeu();
	}
	/* Sinon */
	else
	{
		/* On affiche un texte indiquant qu'il faut une cle au joueur pour passer la porte */
		lireEtAfficher("Sortie/Texte_Porte_Sortie.txt");
		
		appuyezEntree("\nAppuyez sur ENTREE pour continuer");
	}
}
Beispiel #3
0
void sauvegarderEtQuitterNiveau(void)
{
	unsigned int choixJoueur;

	effacer();
	titre("Sauvegarder et Quitter", VERT);

	choixJoueur = demanderConfirmation("Voulez-vous vraiment sauvegarder et quitter le niveau ici ? (0/1)", PAS_SEPARATION);

	if(choixJoueur == OUI)
	{
		sauvegarderNiveauActuel();
		coloration("\nSauvegarde terminee...\n", VERT);
		quitter();
	}
}
/* Categorie vente de la boutique */
void vendreBoutique(void)
{
	unsigned int choixJoueur;
	int indexTresor;

	effacer();
	titre("Boutique", VERT);

	/* Si le joueur a des tresors a vendre */
	if(joueurPossedeTresor())
	{
		/* On recupere l'index du tresor que le joueur souhaite vendre */
		indexTresor = demanderObjetAvendre();

		if(indexTresor != -1)
		{
			/* On demande la confirmation de la vente */
			choixJoueur = demanderConfirmation("Etes vous sur de vouloir vendre cet objet ? (0/1)", 
			SEPARATION);

			/* Si le joueur veut */
			if(choixJoueur == OUI)
			{
				/* On vend le tresor */
				vendreTresor(indexTresor);
				appuyezEntree("Appuyez sur ENTREE pour continuer vos ventes");
			}
			/* Si le joueur ne veut pas vendre, on le redirige simplement dans la categorie vente
			de la boutique*/


			/* On revient a la categorie vente de la boutique */
			vendreBoutique();
		}
	}
	/* Sinon le joueur n'a aucun tresor */
	else
	{
		/* On affiche qu'il n'a rien a vendre et on le redirige vers la boutique */

		printf("Vous n'avez rien a vendre ! :'(\n");
		appuyezEntree("Appuyez sur ENTREE pour revenir a la boutique");

		boutique();
	}
}
/* Sauvegarde le niveau et quitte le jeu */
void sauvegarderEtQuitterNiveau(void)
{
	unsigned int choixJoueur;

	effacer();
	titre("Sauvegarder et Quitter", VERT);

	/* On demande la confirmation du joueur */
	choixJoueur = demanderConfirmation("Voulez-vous vraiment sauvegarder et quitter le niveau ici ? (0/1)", PAS_SEPARATION);

	/* S'il veut bien sauvegarder et quitter le niveau */
	if(choixJoueur == OUI)
	{
		/* On sauvegarde le niveau */
		sauvegarderNiveauActuel();
		/* On affiche un texte indiquant la fin de la sauvegarde */
		coloration("\nSauvegarde terminee...\n", VERT);

		/* On quitte */
		quitter();
	}
}