Données de la boutique
Scripts de données des cosmétiques : catalogue ScriptableObject, système de rareté et sauvegarde du profil joueur.
Le module Data/Boutique/ gère les données des cosmétiques : leur catalogue, leur prix et leur persistance. Tout fonctionne en mode data-driven — les designers ajoutent des items directement dans l’éditeur Unity sans toucher au code.
Catalogue — arborescence des objets
Les ScriptableObjects forment une hiérarchie à trois niveaux, comme des poupées russes.
| Script | Rôle |
|---|---|
PersonnalisationCategory_SO | Une catégorie (ex. “Vêtements”, “Accessoires”). Contient une liste de sous-catégories. |
PersonnalisationSubCategory_SO | Une sous-catégorie (ex. “T-Shirts”, “Chaussures”). Contient la liste des items de cette famille. |
PersonnalisationItem_SO | La fiche d’un cosmétique : visuel (image), identifiant unique (cosmeticID), rareté (rarete), et état (isLock, isBuy, isHide). |
Économie — rareté et prix
PersonnalisationItemRarete_Enum contient deux choses :
- L’énumération des raretés :
Gratuit,Rare,Epic,Legendaire. - Une méthode d’extension
GetPrice()qui convertit la rareté en prix DB. Un item Épique coûte toujours 3000 DB, peu importe où on l’utilise dans le code.
Sauvegarde du profil
Ces deux classes sont [Serializable] — elles se convertissent en JSON pour être sauvegardées localement ou envoyées à PlayFab.
| Script | Rôle |
|---|---|
BoutiqueData | Tableau de cosmeticID[] listant tous les items achetés par le joueur. Sert à éviter qu’il repaye un item déjà possédé. |
PersonnalisationData | Tableau de 13 cases, une par emplacement (cheveux, lunettes, etc.). Le constructeur équipe un avatar par défaut. La méthode InitializeRandomCosmetics() génère des cosmétiques aléatoires, utile pour les PNJs. |