# Inventaire Skins ## 1. Définition Interface de gestion permettant au joueur de visualiser, trier et équiper les éléments cosmétiques (skins) acquis pour son avatar ou son zoo. Il gère les pièces de skins unitairement. ## 2. Fonctions * **Stockage :** Centralise tous les skins (têtes, corps, accessoires, décors). * **Équipement :** Permet d'appliquer un skin à l'avatar ou de sélectionner un skin par défaut pour les bâtiments. * **Visualisation :** Affiche les items possédés et ceux manquants (grisés). ## 3. Icone * **Représentation :** Coffre ouvert ou Cintre. * **Couleur dominante :** Marron (cuir) et Or. ## 4. Interactions * **Ouverture :** Depuis le menu profil ou la boutique. * **Filtrage :** Par catégorie (Chapeaux, T-shirts, Zoo), par thème (Jungle, Espace) ou par rareté. * **Sélection :** Clic sur un item pour voir les détails et le bouton "Équiper". ## 5. Annexes Techniques ### Données (JSON) ```json { "inventory_id": "inv_skins_player_123", "items": [ { "item_id": "skin_hat_01", "acquired_date": "2026-03-01", "is_equipped": true }, { "item_id": "skin_shirt_05", "acquired_date": "2026-03-02", "is_equipped": false } ], "capacity": "unlimited" // Ou valeur numérique si limite } ``` ### Règles Métier * L'inventaire sépare les skins d'avatar des skins de zoo. * Impossible de vendre ou supprimer un skin (sauf si fonctionnalité de recyclage prévue). * Mise à jour en temps réel lors d'un achat ou d'un gain. ## 6. Annexes UX/UI * **Grille :** Affichage des items sous forme de grille scrollable. * **Paper Doll :** Prévisualisation de l'avatar au centre ou sur le côté avec les équipements actuels. * **Drag & Drop :** (Optionnel) Glisser un item sur la prévisualisation pour l'équiper. # Annexes UX/UI ## 0. Direction Artistique & Vue * **Vue** : Isométrique (2.5D). * **Style** : Coloré, vivant, détails foisonnants (Réf: IMG_20260303_170253.jpg). * **Sprites** : 4 directions. * **Interactions** : * **Sélection** : Cliquer sur la base de l'élément (ou son sprite principal) pour le sélectionner. * **Feedback** : Surbrillance (outline blanc/jaune) au survol de la souris. ## Définition | Champ | Valeur | |---|---| | Concept | Inventaire “Skins” : vue de possession + équipement de cosmétiques (avatar et zoo). | | Rôle | Donner un accès rapide à l’équipement, au filtrage, et à la prévisualisation sans étapes inutiles. | | Portée | UI profil/boutique ; impact avatar, bâtiments, décorations. | | Contrainte | Pas de cache/mémorisation : état “équipé” lu comme source de vérité ; pas d’analytics ; aucune suppression/vente implicite. | ## Fonctions (tableau détaillé) | Fonction | Déclencheur | Entrées | Sorties | Règles | Observabilité | |---|---|---|---|---|---| | Ouvrir inventaire | menu | `player_id` | page/grille | affiche items possédés + grisés | Event `OPEN_SKIN_INVENTORY` | | Filtrer | UI | catégorie/thème/rareté | liste filtrée | filtres combinables | Event `FILTER_SKINS` | | Trier | UI | critère | liste triée | stable | Event `SORT_SKINS` | | Prévisualiser | clic item | `item_id` | preview | paper doll / rendu zoo | Event `PREVIEW_SKIN` | | Équiper | clic “Équiper” | `item_id`, slot | `is_equipped=true` | un item équipé par slot | Event `EQUIP_SKIN` | | Déséquiper | clic “Retirer” | slot | `is_equipped=false` | revient au skin de base explicite | Event `UNEQUIP_SKIN` | | Synchroniser après achat | achat | receipt | inventaire maj | immédiat, sans cache | Event `SKIN_ACQUIRED` | ## Icone de base | Élément | Spécification | |---|---| | Représentation | Cintre / coffre | | Couleur dominante | Marron + or | | Variantes | `icon_skin_hanger.png`, `icon_skin_chest.png` | | États | normal, selected, disabled (non possédé) | ## Interactions (tableau détaillé) | Interaction | Type | Préconditions | Étapes UI | Résultat | Erreurs / Messages | |---|---|---|---|---|---| | Ouvrir | Navigation | - | profil → skins | grille | - | | Équiper item | Action | possédé | clic item → équiper | appliqué | `SKIN_NOT_OWNED` | | Prévisualiser | Consultation | - | clic item | preview | - | | Filtrer | Consultation | - | toggles | liste | - | | Drag & drop | Action | option active | drag → drop | équipe | `DROP_INVALID` | ## Personnage contextuel (événements & interaction) Le module “Inventaire Skins” affiche le **joueur actif** via son avatar (voir `avatar_joueur.md`) comme personnage contextuel. ### Affichage L’avatar s’affiche lorsque : - le module est **actionné** (ouverture inventaire, sélection d’un item, équipement/déséquipement) ; - un **événement** lié aux skins survient (acquisition, équipement réussi/échoué). ### Déclencheurs (exemples) | Event | Condition | Effet UI personnage | |---|---|---| | `OPEN_SKIN_INVENTORY` | ouverture | avatar/paper doll visible, cohérent avec l’équipement courant | | `PREVIEW_SKIN` | clic item | l’avatar adopte la prévisualisation (paper doll) | | `EQUIP_SKIN` / `UNEQUIP_SKIN` | action | feedback visuel sur l’avatar + message | | `SKIN_ACQUIRED` | achat/gain | bulle “Nouveau skin” + CTA “Équiper” | ### Skins & thèmes Le module applique `theme.md` et l’équipement de `inventaire_skins.md` sur l’avatar, sans inférer silencieusement un skin “par défaut”. ## Annexes Techniques ### 1. Données et États (tableau détaillé) | Donnée / État | Type | Exemple | Source | Contraintes | |---|---|---|---|---| | `inventory_id` | string | `inv_skins_` | DB | stable | | `items[].item_id` | string | `skin_hat_01` | DB | id unique | | `items[].acquired_at` | timestamp | - | DB | UTC | | `items[].is_equipped` | boolean | true | DB | par slot | | `items[].slot` | string | `HAT` | DB | enum | | `items[].theme` | string | `JUNGLE` | config | enum | | `items[].rarity` | string | `RARE` | config | enum | | `capacity` | string \| int | `unlimited` | config | pas de limite par défaut | #### Caractéristiques Initiales (tableau détaillé) | Caractéristique | Valeur initiale | Unité | Notes | |---|---:|---|---| | Capacité | illimitée | - | règle existante | | Slots avatar | 6 | count | ex: hat, top, bottom, shoes, accessory, back | | Slots zoo | 8 | count | ex: sol, clôture, portes, UI, etc. | #### Scores Initiaux (tableau détaillé) | Score | Valeur initiale | Plage | Impact | |---|---:|---|---| | Skins possédés | 0 | 0..∞ | collection | | Skins équipés | 0 | 0..slots | rendu | ### 2. Cycles de Vie et Apparition (tableau détaillé) | Phase | Déclencheur | Entrées | Sorties | Invariants | |---|---|---|---|---| | Acquisition | achat/gain | item_id | inventaire +1 | pas de doublon | | Équipement | action | slot | is_equipped | exclusivité slot | | Déséquipement | action | slot | base | base explicite | #### Conditions d'Apparition (tableau détaillé) | Condition | Seuil | Opérateur | Résultat | |---|---:|---|---| | Achat skin | true | est | item ajouté | #### Conditions de Disparition (tableau détaillé) | Condition | Seuil | Opérateur | Résultat | |---|---:|---|---| | - | - | - | pas de suppression | #### Hérédité (tableau détaillé) | Élément | Hérité | Règle | |---|---|---| | Inventaire | Oui | persiste compte | | Équipement | Oui | persiste par profil | ### 3. Impacts Environnementaux #### Impact Température (tableau détaillé) | Condition | Effet | Notes | |---|---|---| | - | aucun | cosmétique | #### Impact Milieu (Biome) (tableau détaillé) | Biome | Effet | Notes | |---|---|---| | - | aucun | - | #### Impact Saisons (tableau détaillé) | Saison | Effet | Notes | |---|---|---| | Saison active | skins saisonniers visibles | gating | #### Impact Heure / Jour-Nuit (tableau détaillé) | Période | Effet | Notes | |---|---|---| | - | aucun | - | ### 4. Impacts Biologiques et Sociaux #### Impact Reproduction (tableau détaillé) | Facteur | Effet sur taux | Condition | |---|---|---| | - | aucun | - | #### Impact Mort (tableau détaillé) | Cas | Effet | Condition | |---|---|---| | - | aucun | - | #### Impact Nourriture (tableau détaillé) | Ressource | Effet | Condition | |---|---|---| | - | aucun | - | #### Impact Attractivité(Visiteurs (tableau détaillé) | Action/État | Gain | Rayon | Notes | |---|---:|---:|---| | Skins zoo | + | zoo | esthétique | #### Impact Attractivité Animaux) (tableau détaillé) | Action/État | Effet animaux | Condition | |---|---|---| | - | - | - | #### Impact Valeur (tableau détaillé) | Facteur | Variation | Condition | |---|---:|---| | Collection | + | complétude | ### 5. Impacts Logistiques et Économiques #### Vitesse (Camion) (tableau détaillé) | Paramètre | Effet | Condition | |---|---|---| | - | - | - | #### Vitesse (Nurserie) (tableau détaillé) | Paramètre | Effet | Condition | |---|---|---| | - | - | - | #### Vitesse (Accueil) (tableau détaillé) | Paramètre | Effet | Condition | |---|---|---| | - | - | - | #### Vitesse (Recherche) (tableau détaillé) | Paramètre | Effet | Condition | |---|---|---| | - | - | - | #### Vitesse (Labo) (tableau détaillé) | Paramètre | Effet | Condition | |---|---|---| | - | - | - | #### Vitesse (Visite) (tableau détaillé) | Paramètre | Effet | Condition | |---|---|---| | - | - | - | #### Dépenses (Billeterie) (tableau détaillé) | Poste | Coût | Unité | Condition | |---|---:|---|---| | - | 0 | - | - | #### Dépenses (Boutiques) (tableau détaillé) | Poste | Coût | Unité | Condition | |---|---:|---|---| | - | 0 | - | - | #### Dépenses (Visiteurs) (tableau détaillé) | Poste | Coût | Unité | Condition | |---|---:|---|---| | - | 0 | - | - | #### Dépenses (Employés) (tableau détaillé) | Poste | Coût | Unité | Condition | |---|---:|---|---| | - | 0 | - | - | #### Dépenses (Boutiques) (tableau détaillé) | Poste | Coût | Unité | Condition | |---|---:|---|---| | Section dupliquée | 0 | - | conservée | #### Dépenses (Nurseries) (tableau détaillé) | Poste | Coût | Unité | Condition | |---|---:|---|---| | - | 0 | - | - | #### Dépenses (Nourriture) (tableau détaillé) | Poste | Coût | Unité | Condition | |---|---:|---|---| | - | 0 | - | - | #### Dépenses (Acceuil des animaux) (tableau détaillé) | Poste | Coût | Unité | Condition | |---|---:|---|---| | - | 0 | - | - | #### Dépenses (Camion) (tableau détaillé) | Poste | Coût | Unité | Condition | |---|---:|---|---| | - | 0 | - | - | #### Trajet Visiteurs ##### Trajet Visiteurs vers/depuis la ville (tableau détaillé) | Source | Destination | Déclencheur | Effet | |---|---|---|---| | - | - | - | - | ##### Trajet Visiteurs vers/depuis les animaux (tableau détaillé) | Source | Destination | Déclencheur | Effet | |---|---|---|---| | - | - | - | - | ##### Trajet Visiteurs vers/depuis les boutiques (tableau détaillé) | Source | Destination | Déclencheur | Effet | |---|---|---|---| | - | - | - | - | ##### Trajet Visiteurs vers/depuis la billeterie (entrées/sorties du zoo) (tableau détaillé) | Source | Destination | Déclencheur | Effet | |---|---|---|---| | - | - | - | - | ### 6. Événements #### Événements du Jeu (tableau détaillé) | Event | Déclencheur | Payload | Effet | |---|---|---|---| | `OPEN_SKIN_INVENTORY` | menu | - | UI | | `EQUIP_SKIN` | clic | item_id, slot | équipé | | `UNEQUIP_SKIN` | clic | slot | base | #### Événements du Carte (tableau détaillé) | Event | Déclencheur | Effet | |---|---|---| | - | - | - | #### Événements du Zoo (tableau détaillé) | Event | Déclencheur | Effet | |---|---|---| | - | - | - | #### Événements du Ville / Visiteur (tableau détaillé) | Event | Déclencheur | Effet | |---|---|---| | - | - | - | #### Événements du Visiteur (tableau détaillé) | Event | Déclencheur | Effet | |---|---|---| | - | - | - | #### Événements du Joueur (tableau détaillé) | Event | Déclencheur | Effet | |---|---|---| | `FILTER_SKINS` | toggle | UI | ### 7. Progression #### Tableau des Upgrades (tableau détaillé) | Niveau | Coût | Effet | Débloque | |---|---:|---|---| | 1 | 0 | inventaire dispo | - | ### 8. Logique et Interfaces #### Pseudo-code Impacts (tableau détaillé) | Fonction | Entrées | Sorties | Notes | |---|---|---|---| | `equipSkin` | item, slot | state | exclusif slot | | `filterSkins` | list, filters | list | combinable | #### Messages d'Infos / Alerte (tableau détaillé) | ID | Niveau | Message | Condition | |---|---|---|---| | `SKIN_NOT_OWNED` | Warning | "Skin non possédé." | équiper | | `SKIN_EQUIPPED` | Info | "Skin équipé." | succès | ## Annexes UX/UI ### 1. Expérience Utilisateur (UX) #### Description UX (tableau détaillé) | Parcours | But | Friction | Réduction clics | |---|---|---|---| | Équiper avatar | personnaliser | navigation | paper doll + bouton direct | | Équiper zoo | thème | sélection | filtres | #### Description UI (tableau détaillé) | Composant | Contenu | États | |---|---|---| | Grille | items | owned/missing | | Paper doll | preview | slot highlight | | Bouton équiper | CTA | enabled/disabled | #### Emplacement (tableau détaillé) | Zone UI | Position | Notes | |---|---|---| | Profil | onglet skins | - | | Boutique | lien | - | #### Intégration (tableau détaillé) | Intégration | Contrat | Notes | |---|---|---| | `skin.md` | definition item | ids cohérents | | `avatar_joueur.md` | rendu avatar | slots | #### Navigation (tableau détaillé) | Action | Chemin | Résultat | |---|---|---| | Ouvrir | profil → skins | grille | | Équiper | item → CTA | appliqué | #### Événements (tableau détaillé) | Event UI | Déclencheur | Effet | |---|---|---| | `OPEN_SKIN_INVENTORY` | menu | UI | | `CLICK_EQUIP` | CTA | équipe | #### Assets Skinables ##### Musiques (tableau détaillé) | Asset | Usage | Durée | Notes | |---|---|---:|---| | `skins_inventory_loop.mp3` | inventaire | loop | neutre | ##### Sons (tableau détaillé) | Asset | Usage | Volume | |---|---|---| | `ui_equip.mp3` | équiper | bas | | `ui_unequip.mp3` | retirer | bas | ##### Graphiques (tableau détaillé) | Asset | Usage | Contraintes | |---|---|---| | `paper_doll_frame.png` | preview | scalable | | `skin_item_tile.png` | tuile | grille | ##### Images (tableau détaillé) | Asset | Usage | |---|---| | `skin_missing_overlay.png` | grisé | ##### Vidéos (tableau détaillé) | Asset | Usage | Durée | |---|---|---:| | `equip_fx.webm` | feedback | 0.6s | ##### Animations (tableau détaillé) | Animation | Déclencheur | Notes | |---|---|---| | glow item | hover | 0.2s | | bounce CTA | success | 0.3s | ##### Couleurs (tableau détaillé) | Token | Valeur | Usage | |---|---|---| | `skins_gold` | #D4AF37 | rareté | | `skins_brown` | #6D4C41 | fond | ##### Textes (tableau détaillé) | Clé | FR | EN | |---|---|---| | `skins.title` | Skins | Skins | | `skins.equip` | Équiper | Equip | ##### Formes (tableau détaillé) | Élément | Forme | Notes | |---|---|---| | Tuiles | rectangles arrondis | lisibles |