lundi 27 septembre 2010

16 - Inventaire du Marchand - Achat d'Objets

Une fois que le marchand a fini son bavardage, il dévoile au Héros la liste des objets qu'il met en vente.
Le marchand propose un objet de chaque type : Une armure, un bandeau, une épée, un bouclier, un anneau, une paire de bottes, un morceau de viande, une potion, et un parchemin permettant d'apprendre un sort optionnel.

La puissance de chacun des équipements est tirée au sort entre deux valeurs ; cette fourchette de valeurs dépend de l'étage actuel, comme c'était le cas pour les trésors, mis à part qu'ici le maximum possède une valeur moindre : Ainsi une Épée trouvée dans un trésor à l'étage -18 donnera entre +12 et +22 Attaque, alorsqu'une Épée vendue par un marchand à ce même étage donnera seulement entre +12 et +16 Attaque.
En outre, si la puissance tirée au sort n'est multiple ni de 3, ni de 4, ni de 5, alors elle est diminuée de 1 jusqu'à ce qu'elle soit multiple d'au moins un de ces trois nombres.

La nature des deux objets de soin est déterminée par tirage au sort de la même manière que lorsqu'on les trouve dans des bourses : En fonction de l'étage, le pourcentage d'obtention de chaque type d'objet est différent (par exemple à l'étage -56 il y a 80% de chances de trouver une Viande+50 et 20% de chances de trouver une Viande+200).

Le parchemin de sort, pour finir, est lié lui aussi à l'étage actuel : Entre les étages 10 et 99 le marchand proposera le sort "Provoke" (provoquer), entre les étages 100 et 999 il proposera le sort "EnemHeal" (soin ennemi), etc.

Une fois la nature des objets vendus déterminée, il faut définir leur prix de vente. Pour les objets de type consommable et parchemin, ce prix est fixe ; en revanche pour les équipements, je dois prendre en compte le prix de revente de l'ancien équipement :
  • Pour les armures, le prix de vente est égal au bonus de PV ;
  • Pour les bandeaux, le prix de vente est égal au bonus de PM x 12 ;
  • Pour les autres pièces d'équipement, le prix de vente est égal au bonus de stat x 10 ;
  • Le marchand rachète le vieil équipement du Héros 1/4 de son prix de vente (arrondi en dessous).
Le prix de vente réel est donc égal au prix de vente moins le prix de rachat du vieil équipement ; ce prix ne peut pas être inférieur à 1 pièce d'or (si c'est le cas, je lui impose de prendre la valeur 1).

Exemple : Le marchand vend une armure +112 PV (prix de vente : 112 pièces d'or) ; Le Héros porte une armure +98 PV (prix neuf : 97 pièces d'or, prix de revente : 24 pièces d'or) ; le prix annoncé par le marchand ne sera donc pas 112 mais 112-24=88 pièces d'or.


Maintenant que je connais l'inventaire du marchand, je dois le communiquer au joueur ; pour ce faire j'ai créé un Clip appelé "cadre_shop" qui rassemble les diverses icones des objets vendus et possède plusieurs textes dynamiques (pour afficher les stats et les prix des objets vendus). Les objets susceptibles d'intéresser le Héros ont leur prix indiqué en bleu, les objets ayant des stats inférieures aux stats actuelles ont leur prix indiqué en rouge.

Je retire certains objets de la vente :
  • Les objets qui sont identiques à ceux déjà équipés par le Héros ;
  • Les objets de soin que le Héros possède déjà en 9 exemplaires ;
  • Les parchemins de sorts que le Héros a déjà appris.
Ces objets sont recouverts par un Clip portant la mention "Sold Out" et leur achat est impossible.


L'étape suivante consiste à permettre au joueur de sélectionner un objet et de l'acheter : J'ai créé un Clip représentant le curseur de sélection (4 triangles roses qui clignotent) et j'ai fait en sorte qu'on puisse le faire se déplacer d'une icone à une autre par simple pression sur une des 4 directions ; un fois l'objet choisi, une pression sur la touche "Entrée" permet de valider l'achat (à condition que le Héros possède suffisamment d'argent) : l'inventaire est alors modifié en conséquence, une sauvegarde automatique est effectuée, et l'affichage des objets vendus est actualisé (ajout d'étiquettes Sold Out si nécessaire).


Une fois la création du marchand terminée, j'ai procédé à quelques réglages afin que les joueurs ne deviennent pas trop riches trop rapidement : J'ai ainsi divisé par 2 les sommes trouvées dans les trésors, et grandement augmenté le prix des objets de soin. Mais il se peut que je modifie une nouvelle fois ces valeurs (dans un sens ou dans l'autre) une fois les combats contre les monstres implémentés...

Aucun commentaire:

Enregistrer un commentaire