Esempio n. 1
0
/* 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();
	}
}
void selectBou2(SDL_Surface *ecran)
{
	if( positionSelect.y == 250 && inv_hero.gold >= 100)
	{
		boutique(ecran);
	}
	else if( positionSelect.y == 350 && inv_hero.gold >= 100)
	{
		boutiqueO(ecran);
	}
}
Esempio n. 3
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");
	}
}
Esempio n. 4
0
/* 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();
	}
}
Esempio n. 5
0
/* Demande et renvoie l'index du tresor que le joueur souhaite vendre */
int demanderObjetAvendre(void)
{
	compteur indexTresor;
	int choixJoueur;

	/* On demande ce que le joueur veut vendre et on affiche tous ses tresors */

	printf("Que souhaitez-vous vendre ?\n\n");

	for(indexTresor = 0; indexTresor < NB_TRESOR_MAX; ++indexTresor)
	{	
		if(strcmp(inventaire.tresor[indexTresor].nom, "Rien") != 0)
		{
			printf("\t%d - ", indexTresor + 1);
			afficherTresorIndividuelInventaire(indexTresor);
			putchar('\n');
		}
	}

	putchar('\n');

	/* On lit le choix du joueur */

	choixJoueur = choisirMenu(inventaire.tresorActuel + 1);

	/* Si il veut revenir en arriere ou quitter, on le redirige vers la boutique et on 
	retourne -1 */
	if(choixJoueur == REVENIR_ARRIERE || choixJoueur == QUITTER)
	{
		boutique();
		return -1;
	}
	/* Sinon on retourne l'index du tresor qu'il veut vendre (choixJoueur - 1) */
	else
		return choixJoueur - 1;
}