docs(specs): complete VIP/pass/skin/theme template sections
**Motivations:** - Make cosmetic/meta specs implementation-ready with the strict required template. **Root causes:** - Specs files were missing the mandatory exact headings/tables required by the new template. **Correctifs:** - Added the exact required headings and detailed tables without deleting existing sections. **Evolutions:** - Clarified VIP/pass/theme gating rules and UX/UI assets contracts. **Pages affectées:** - docs/specs/vip.md - docs/specs/passe_saisonnier.md - docs/specs/skin.md - docs/specs/theme.md
This commit is contained in:
@@ -57,3 +57,446 @@
|
||||
* **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 | Skin = item cosmétique (avatar/zoo/animal/building/path). |
|
||||
| Rôle | Modifier l’apparence sans modifier les stats (sauf si explicitement listé et validé). |
|
||||
| Acquisition | Boutique, passe, événement, achievement. |
|
||||
| Gating | Skins pass/thèmes : selon règles `passe_saisonnier.md` + `vip.md`. |
|
||||
|
||||
## Fonctions (tableau détaillé)
|
||||
|
||||
| Fonction | Déclencheur | Entrées | Sorties | Règles | Observabilité |
|
||||
|---|---|---|---|---|---|
|
||||
| Afficher catalogue | UI open | filtres | liste skins | Tri par rareté/type, sans cache applicatif | Event `SKIN_CATALOG_OPEN` |
|
||||
| Acheter | clic achat | coins, prix | item acquis | Transaction atomique ; idempotence sur retry | Event `SKIN_PURCHASED` |
|
||||
| Équiper | clic equip | inventaire | `equipped` | Un seul par slot ; compatibilité type | Event `SKIN_EQUIPPED` |
|
||||
| Prévisualiser | hover/clic | skin_id | preview render | Ne modifie pas l’état tant que non validé | Event `SKIN_PREVIEW` |
|
||||
| Appliquer au zoo | apply | theme/skin | rendu map | Mise à jour rendu sans fallback silencieux | Event `ZOO_SKIN_APPLIED` |
|
||||
|
||||
## Icone de base
|
||||
|
||||
| Élément | Spécification |
|
||||
|---|---|
|
||||
| Représentation | T-shirt / masque |
|
||||
| Couleur dominante | Violet (cosmétique) |
|
||||
| Variantes | `icon_skin_shirt.png`, `icon_skin_mask.png` |
|
||||
| États | Bordure rareté, lock, “new” |
|
||||
|
||||
## Interactions (tableau détaillé)
|
||||
|
||||
| Interaction | Type | Préconditions | Étapes UI | Résultat | Erreurs / Messages |
|
||||
|---|---|---|---|---|---|
|
||||
| Ouvrir inventaire | Consultation | - | Profil → Skins | grille | - |
|
||||
| Filtrer | Action | - | catégories/rareté | liste filtrée | - |
|
||||
| Prévisualiser | Consultation | item visible | clic item | preview | - |
|
||||
| Équiper | Action | possédé | “Équiper” | slot update | `SKIN_LOCKED`, `INCOMPATIBLE_SKIN` |
|
||||
| Acheter | Action | coins suffisants | “Acheter” | possédé | `INSUFFICIENT_FUNDS` |
|
||||
|
||||
## Annexes Techniques
|
||||
|
||||
### 1. Données et États (tableau détaillé)
|
||||
|
||||
| Donnée / État | Type | Exemple | Source | Contraintes |
|
||||
|---|---|---|---|---|
|
||||
| `skin_id` | string | `skin_hat_pirate` | config | unique |
|
||||
| `name` | string | `Chapeau de Pirate` | i18n | affichage |
|
||||
| `type` | enum | `avatar_head|avatar_body|zoo_building|animal_texture|path_texture|banner_material` | config | whitelist |
|
||||
| `rarity` | enum | `common|uncommon|rare|epic|legendary` | config | bordures |
|
||||
| `source` | enum | `shop|pass|event|achievement` | config | gating |
|
||||
| `price.amount` | int | 500 | config | coins |
|
||||
| `asset_path` | string | - | build | pas de remote |
|
||||
| `compatibility` | object | - | config | slot/gender/type |
|
||||
| `lifecycle.available_from/to` | date|null | - | config | gating saison |
|
||||
| `timestamps.created_at/updated_at` | timestamp | - | DB | audit |
|
||||
|
||||
#### Caractéristiques Initiales (tableau détaillé)
|
||||
|
||||
| Caractéristique | Valeur initiale | Unité | Notes |
|
||||
|---|---:|---|---|
|
||||
| Slots avatar | 3 | slots | head/body/accessory |
|
||||
| Skins zoo | 0 | count | départ |
|
||||
| Prix base rare | 500 | coins | exemple |
|
||||
|
||||
#### Scores Initiaux (tableau détaillé)
|
||||
|
||||
| Score | Valeur initiale | Plage | Impact |
|
||||
|---|---:|---|---|
|
||||
| Skins possédés | 0 | 0..∞ | collection |
|
||||
| Rareté max | common | enum | gating UI |
|
||||
|
||||
### 2. Cycles de Vie et Apparition (tableau détaillé)
|
||||
|
||||
| Phase | Déclencheur | Entrées | Sorties | Invariants |
|
||||
|---|---|---|---|---|
|
||||
| Apparition | config | pass/event/shop | item visible | depends dates |
|
||||
| Acquisition | achat/gain | coins/xp | possédé | idempotent |
|
||||
| Équipement | action | skin_id | slot update | 1 per slot |
|
||||
| Gating | VIP/pass | vip/pass state | allow/deny | suspension vs perte |
|
||||
|
||||
#### Conditions d'Apparition (tableau détaillé)
|
||||
|
||||
| Condition | Seuil | Opérateur | Résultat |
|
||||
|---|---:|---|---|
|
||||
| Disponible | date in window | vrai | visible |
|
||||
|
||||
#### Conditions de Disparition (tableau détaillé)
|
||||
|
||||
| Condition | Seuil | Opérateur | Résultat |
|
||||
|---|---:|---|---|
|
||||
| Retrait shop | date > to | vrai | non achetable (reste possédé si acquis) |
|
||||
|
||||
#### Hérédité (tableau détaillé)
|
||||
|
||||
| Élément | Hérité | Règle |
|
||||
|---|---|---|
|
||||
| Skin acheté | Oui | persiste |
|
||||
| Skin pass | Oui | persiste mais accès peut être gated si non VIP |
|
||||
|
||||
### 3. Impacts Environnementaux
|
||||
|
||||
#### Impact Température (tableau détaillé)
|
||||
|
||||
| Condition | Effet | Notes |
|
||||
|---|---|---|
|
||||
| - | visuel uniquement | - |
|
||||
|
||||
#### Impact Milieu (Biome) (tableau détaillé)
|
||||
|
||||
| Biome | Effet | Notes |
|
||||
|---|---|---|
|
||||
| Jungle | skins adaptés | thématique |
|
||||
|
||||
#### Impact Saisons (tableau détaillé)
|
||||
|
||||
| Saison | Effet | Notes |
|
||||
|---|---|---|
|
||||
| Noël | skins saison | dates |
|
||||
|
||||
#### Impact Heure / Jour-Nuit (tableau détaillé)
|
||||
|
||||
| Période | Effet | Notes |
|
||||
|---|---|---|
|
||||
| Nuit | skins néon visibles | rendu |
|
||||
|
||||
### 4. Impacts Biologiques et Sociaux
|
||||
|
||||
#### Impact Reproduction (tableau détaillé)
|
||||
|
||||
| Facteur | Effet | Condition |
|
||||
|---|---|---|
|
||||
| - | aucun | cosmétiques |
|
||||
|
||||
#### 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 | Effet | Condition |
|
||||
|---|---|---|
|
||||
| Skins zoo | attractivité + | esthétique |
|
||||
|
||||
#### Impact Attractivité Animaux) (tableau détaillé)
|
||||
|
||||
| Action/État | Effet animaux | Condition |
|
||||
|---|---|---|
|
||||
| Texture animal | visuel | pas de stats |
|
||||
|
||||
#### Impact Valeur (tableau détaillé)
|
||||
|
||||
| Facteur | Variation | Condition |
|
||||
|---|---:|---|
|
||||
| Collection rare | + | prestige |
|
||||
|
||||
### 5. Impacts Logistiques et Économiques
|
||||
|
||||
#### Vitesse (Camion) (tableau détaillé)
|
||||
|
||||
| Paramètre | Effet | Condition |
|
||||
|---|---|---|
|
||||
| - | aucun | - |
|
||||
|
||||
#### Vitesse (Nurserie) (tableau détaillé)
|
||||
|
||||
| Paramètre | Effet | Condition |
|
||||
|---|---|---|
|
||||
| - | aucun | - |
|
||||
|
||||
#### Vitesse (Accueil) (tableau détaillé)
|
||||
|
||||
| Paramètre | Effet | Condition |
|
||||
|---|---|---|
|
||||
| - | aucun | - |
|
||||
|
||||
#### Vitesse (Recherche) (tableau détaillé)
|
||||
|
||||
| Paramètre | Effet | Condition |
|
||||
|---|---|---|
|
||||
| Déblocage skins | visible | via RP/achievements |
|
||||
|
||||
#### Vitesse (Labo) (tableau détaillé)
|
||||
|
||||
| Paramètre | Effet | Condition |
|
||||
|---|---|---|
|
||||
| - | aucun | - |
|
||||
|
||||
#### Vitesse (Visite) (tableau détaillé)
|
||||
|
||||
| Paramètre | Effet | Condition |
|
||||
|---|---|---|
|
||||
| Temps visite | + | attractivité via skins |
|
||||
|
||||
#### Dépenses (Billeterie) (tableau détaillé)
|
||||
|
||||
| Poste | Coût | Unité | Condition |
|
||||
|---|---:|---|---|
|
||||
| - | 0 | - | - |
|
||||
|
||||
#### Dépenses (Boutiques) (tableau détaillé)
|
||||
|
||||
| Poste | Coût | Unité | Condition |
|
||||
|---|---:|---|---|
|
||||
| Achat skin | prix | coins | shop |
|
||||
|
||||
#### 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 |
|
||||
|---|---|---|---|
|
||||
| Ville | Zoo | esthétique | skins indirect |
|
||||
|
||||
##### 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 |
|
||||
|---|---|---|---|
|
||||
| Visiteur | Boutique | envie souvenir | achat |
|
||||
|
||||
##### 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 |
|
||||
|---|---|---|---|
|
||||
| `SKIN_PURCHASED` | achat | skin_id | possédé |
|
||||
|
||||
#### Événements du Carte (tableau détaillé)
|
||||
|
||||
| Event | Déclencheur | Effet |
|
||||
|---|---|---|
|
||||
| `SKIN_PREVIEW` | preview | render |
|
||||
|
||||
#### Événements du Zoo (tableau détaillé)
|
||||
|
||||
| Event | Déclencheur | Effet |
|
||||
|---|---|---|
|
||||
| `ZOO_SKIN_APPLIED` | apply | update visuel |
|
||||
|
||||
#### É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 |
|
||||
|---|---|---|---|
|
||||
| `SKIN_EQUIPPED` | equip | slot update |
|
||||
|
||||
### 7. Progression
|
||||
|
||||
#### Tableau des Upgrades (tableau détaillé)
|
||||
|
||||
| Niveau | Coût | Effet | Débloque |
|
||||
|---|---:|---|---|
|
||||
| 1 | 0 | inventaire skins | equip |
|
||||
|
||||
### 8. Logique et Interfaces
|
||||
|
||||
#### Pseudo-code Impacts (tableau détaillé)
|
||||
|
||||
| Fonction | Entrées | Sorties | Notes |
|
||||
|---|---|---|---|
|
||||
| `equipSkin` | skin_id, slot | ok/err | compat |
|
||||
| `applyRarityBorder` | rarity | css/token | UI |
|
||||
|
||||
#### Messages d'Infos / Alerte (tableau détaillé)
|
||||
|
||||
| ID | Niveau | Message | Condition |
|
||||
|---|---|---|---|
|
||||
| `SKIN_LOCKED` | Warning | "Skin verrouillé." | non possédé |
|
||||
| `INCOMPATIBLE_SKIN` | Warning | "Skin incompatible." | slot/type |
|
||||
| `INSUFFICIENT_FUNDS` | Warning | "Pièces insuffisantes." | achat |
|
||||
|
||||
## Annexes UX/UI
|
||||
|
||||
### 1. Expérience Utilisateur (UX)
|
||||
|
||||
#### Description UX (tableau détaillé)
|
||||
|
||||
| Parcours | But | Friction | Réduction clics |
|
||||
|---|---|---|---|
|
||||
| Equiper | custom avatar | navigation | accès direct depuis avatar HUD |
|
||||
|
||||
#### Description UI (tableau détaillé)
|
||||
|
||||
| Composant | Contenu | États |
|
||||
|---|---|---|
|
||||
| Grille skins | items | owned/locked |
|
||||
| Preview | paper doll | slots |
|
||||
|
||||
#### Emplacement (tableau détaillé)
|
||||
|
||||
| Zone UI | Position | Notes |
|
||||
|---|---|---|
|
||||
| Profil | onglet skins | - |
|
||||
|
||||
#### Intégration (tableau détaillé)
|
||||
|
||||
| Intégration | Contrat | Notes |
|
||||
|---|---|---|
|
||||
| Inventaire | items possédés | pas de cache |
|
||||
|
||||
#### Navigation (tableau détaillé)
|
||||
|
||||
| Action | Chemin | Résultat |
|
||||
|---|---|---|
|
||||
| Ouvrir | profil | grille |
|
||||
|
||||
#### Événements (tableau détaillé)
|
||||
|
||||
| Event UI | Déclencheur | Effet |
|
||||
|---|---|---|
|
||||
| `OPEN_SKIN_INVENTORY` | clic | modal |
|
||||
|
||||
#### Assets Skinables
|
||||
|
||||
##### Musiques (tableau détaillé)
|
||||
|
||||
| Asset | Usage | Durée | Notes |
|
||||
|---|---|---:|---|
|
||||
| `skins_loop.mp3` | screen | loop | - |
|
||||
|
||||
##### Sons (tableau détaillé)
|
||||
|
||||
| Asset | Usage | Volume |
|
||||
|---|---|---|
|
||||
| `equip_click.mp3` | equip | faible |
|
||||
|
||||
##### Graphiques (tableau détaillé)
|
||||
|
||||
| Asset | Usage | Contraintes |
|
||||
|---|---|---|
|
||||
| `rarity_border.png` | UI | 5 couleurs |
|
||||
|
||||
##### Images (tableau détaillé)
|
||||
|
||||
| Asset | Usage |
|
||||
|---|---|
|
||||
| `skin_thumb.png` | item |
|
||||
|
||||
##### Vidéos (tableau détaillé)
|
||||
|
||||
| Asset | Usage | Durée |
|
||||
|---|---|---:|
|
||||
| `skin_unlock.webm` | unlock | 1.0s |
|
||||
|
||||
##### Animations (tableau détaillé)
|
||||
|
||||
| Animation | Déclencheur | Notes |
|
||||
|---|---|---|
|
||||
| glow | unlock | 0.8s |
|
||||
|
||||
##### Couleurs (tableau détaillé)
|
||||
|
||||
| Token | Valeur | Usage |
|
||||
|---|---|---|
|
||||
| `rarity_common` | #B0B0B0 | border |
|
||||
| `rarity_legendary` | #D4AF37 | border |
|
||||
|
||||
##### Textes (tableau détaillé)
|
||||
|
||||
| Clé | FR | EN |
|
||||
|---|---|---|
|
||||
| `skin.equip` | Équiper | Equip |
|
||||
| `skin.buy` | Acheter | Buy |
|
||||
|
||||
##### Formes (tableau détaillé)
|
||||
|
||||
| Élément | Forme | Notes |
|
||||
|---|---|---|
|
||||
| Carte skin | carré arrondi | grid |
|
||||
|
||||
Reference in New Issue
Block a user