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:
@@ -56,3 +56,444 @@ Ensemble cohérent de skins et d'éléments visuels transformant l'ambiance gén
|
||||
* **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 | Thème = pack cohérent de skins + style UI + ambiance audio/FX. |
|
||||
| Portée | Global zoo + UI (selon `assets.ui_style`). |
|
||||
| Source | Passe saisonnier, boutique, VIP gating. |
|
||||
| Contrainte | Application immédiate et réversible ; pas de cache applicatif (état courant). |
|
||||
|
||||
## Fonctions (tableau détaillé)
|
||||
|
||||
| Fonction | Déclencheur | Entrées | Sorties | Règles | Observabilité |
|
||||
|---|---|---|---|---|---|
|
||||
| Lister thèmes | open UI | filtres | liste | gating par possession/VIP | Event `THEME_LIST_OPEN` |
|
||||
| Prévisualiser | hover/clic | theme_id | preview | sandbox visuel (sans commit) | Event `THEME_PREVIEW` |
|
||||
| Activer | clic apply | possession, gating | theme actif | Un thème actif à la fois ; idempotent | Event `THEME_APPLIED` |
|
||||
| Désactiver | clic | - | retour default | revert complet | Event `THEME_REMOVED` |
|
||||
| Appliquer assets | apply | `assets` | rendu | map textures, UI tokens, musique | Event `THEME_ASSETS_BOUND` |
|
||||
|
||||
## Icone de base
|
||||
|
||||
| Élément | Spécification |
|
||||
|---|---|
|
||||
| Représentation | Palette/pinceau / paysage |
|
||||
| Couleur dominante | variable selon thème |
|
||||
| Variantes | `icon_theme_palette.png`, `icon_theme_landscape.png` |
|
||||
| États | lock, “actif”, “expire bientôt” |
|
||||
|
||||
## Interactions (tableau détaillé)
|
||||
|
||||
| Interaction | Type | Préconditions | Étapes UI | Résultat | Erreurs / Messages |
|
||||
|---|---|---|---|---|---|
|
||||
| Ouvrir sélecteur | Consultation | - | Paramètres → Thèmes | liste | - |
|
||||
| Prévisualiser | Consultation | thème visible | clic item | preview | - |
|
||||
| Appliquer | Action | possédé + gating ok | bouton “Appliquer” | thème actif | `THEME_LOCKED`, `VIP_REQUIRED` |
|
||||
| Désactiver | Action | thème actif | “Désactiver” | default | - |
|
||||
|
||||
## Annexes Techniques
|
||||
|
||||
### 1. Données et États (tableau détaillé)
|
||||
|
||||
| Donnée / État | Type | Exemple | Source | Contraintes |
|
||||
|---|---|---|---|---|
|
||||
| `theme_id` | string | `theme_jungle_2026` | config | unique |
|
||||
| `name` | string | `Saison de la Jungle` | i18n | affichage |
|
||||
| `associated_pass_id` | string | `pass_jungle` | config | gating |
|
||||
| `assets.background_music` | string | `music_jungle_loop.mp3` | build | loop |
|
||||
| `assets.ui_style` | string | `jungle_skin` | build | tokens |
|
||||
| `assets.default_path_texture` | string | `texture_path_mossy` | build | iso tiles |
|
||||
| `assets.zoo_entrance_skin` | string | `entrance_temple` | build | banderole/entrée |
|
||||
| `active_period.start/end` | date | - | config | window |
|
||||
| `player_state.active_theme_id` | string|null | - | DB | 1 actif |
|
||||
| `timestamps.created_at/updated_at` | timestamp | - | DB | audit |
|
||||
|
||||
#### Caractéristiques Initiales (tableau détaillé)
|
||||
|
||||
| Caractéristique | Valeur initiale | Unité | Notes |
|
||||
|---|---:|---|---|
|
||||
| Thème actif | none | id | default |
|
||||
| Nombre thèmes dispo | 0..n | count | selon possession |
|
||||
| Musique | default | asset | fallback interdit, donc default est un thème “base” explicitement défini |
|
||||
|
||||
#### Scores Initiaux (tableau détaillé)
|
||||
|
||||
| Score | Valeur initiale | Plage | Impact |
|
||||
|---|---:|---|---|
|
||||
| Thèmes possédés | 0 | 0..∞ | collection |
|
||||
| Thèmes actifs/jour | 0 | 0..∞ | debug |
|
||||
|
||||
### 2. Cycles de Vie et Apparition (tableau détaillé)
|
||||
|
||||
| Phase | Déclencheur | Entrées | Sorties | Invariants |
|
||||
|---|---|---|---|---|
|
||||
| Apparition | passe/shop | theme_id | visible | gating dates |
|
||||
| Activation | apply | id | actif | unique |
|
||||
| Fin période | end_date | now | gating | VIP rule |
|
||||
|
||||
#### Conditions d'Apparition (tableau détaillé)
|
||||
|
||||
| Condition | Seuil | Opérateur | Résultat |
|
||||
|---|---:|---|---|
|
||||
| Possédé | true | est | visible |
|
||||
|
||||
#### Conditions de Disparition (tableau détaillé)
|
||||
|
||||
| Condition | Seuil | Opérateur | Résultat |
|
||||
|---|---:|---|---|
|
||||
| Non-VIP + fin période | true | est | non activable (reste listé “verrouillé”) |
|
||||
|
||||
#### Hérédité (tableau détaillé)
|
||||
|
||||
| Élément | Hérité | Règle |
|
||||
|---|---|---|
|
||||
| Possession thème | Oui | persiste |
|
||||
| Activation | Oui | persiste |
|
||||
| Accès après saison | conditionnel | VIP gating |
|
||||
|
||||
### 3. Impacts Environnementaux
|
||||
|
||||
#### Impact Température (tableau détaillé)
|
||||
|
||||
| Condition | Effet | Notes |
|
||||
|---|---|---|
|
||||
| Hiver | textures neige | visuel |
|
||||
|
||||
#### Impact Milieu (Biome) (tableau détaillé)
|
||||
|
||||
| Biome | Effet | Notes |
|
||||
|---|---|---|
|
||||
| Jungle | palette verte | cohérence |
|
||||
|
||||
#### Impact Saisons (tableau détaillé)
|
||||
|
||||
| Saison | Effet | Notes |
|
||||
|---|---|---|
|
||||
| Saison du passe | thème recommandé | UI |
|
||||
|
||||
#### Impact Heure / Jour-Nuit (tableau détaillé)
|
||||
|
||||
| Période | Effet | Notes |
|
||||
|---|---|---|
|
||||
| Nuit | néon/torches | rendu |
|
||||
|
||||
### 4. Impacts Biologiques et Sociaux
|
||||
|
||||
#### Impact Reproduction (tableau détaillé)
|
||||
|
||||
| Facteur | Effet | Condition |
|
||||
|---|---|---|
|
||||
| - | aucun | cosmétique |
|
||||
|
||||
#### 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 |
|
||||
|---|---|---|
|
||||
| Thème cohérent | attractivité + | esthétique |
|
||||
|
||||
#### Impact Attractivité Animaux) (tableau détaillé)
|
||||
|
||||
| Action/État | Effet animaux | Condition |
|
||||
|---|---|---|
|
||||
| Skins enclos/objets | visuel | pas de stats |
|
||||
|
||||
#### Impact Valeur (tableau détaillé)
|
||||
|
||||
| Facteur | Variation | Condition |
|
||||
|---|---:|---|
|
||||
| Thèmes rares | + | 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 |
|
||||
|---|---|---|
|
||||
| - | aucun | - |
|
||||
|
||||
#### Vitesse (Labo) (tableau détaillé)
|
||||
|
||||
| Paramètre | Effet | Condition |
|
||||
|---|---|---|
|
||||
| - | aucun | - |
|
||||
|
||||
#### Vitesse (Visite) (tableau détaillé)
|
||||
|
||||
| Paramètre | Effet | Condition |
|
||||
|---|---|---|
|
||||
| Temps visite | + | attractivité via thème |
|
||||
|
||||
#### Dépenses (Billeterie) (tableau détaillé)
|
||||
|
||||
| Poste | Coût | Unité | Condition |
|
||||
|---|---:|---|---|
|
||||
| - | 0 | - | - |
|
||||
|
||||
#### Dépenses (Boutiques) (tableau détaillé)
|
||||
|
||||
| Poste | Coût | Unité | Condition |
|
||||
|---|---:|---|---|
|
||||
| Achat thème | variable | coins | pass/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 | thème 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 |
|
||||
|---|---|---|---|
|
||||
| - | - | - | - |
|
||||
|
||||
##### 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 |
|
||||
|---|---|---|---|
|
||||
| `THEME_APPLIED` | apply | theme_id | actif |
|
||||
| `THEME_REMOVED` | remove | - | default |
|
||||
|
||||
#### Événements du Carte (tableau détaillé)
|
||||
|
||||
| Event | Déclencheur | Effet |
|
||||
|---|---|---|
|
||||
| `THEME_ASSETS_BOUND` | apply | bind |
|
||||
|
||||
#### Événements du Zoo (tableau détaillé)
|
||||
|
||||
| Event | Déclencheur | Effet |
|
||||
|---|---|---|
|
||||
| `THEME_PREVIEW` | preview | render |
|
||||
|
||||
#### É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 |
|
||||
|---|---|---|---|
|
||||
| `OPEN_THEME_SELECTOR` | open | UI |
|
||||
|
||||
### 7. Progression
|
||||
|
||||
#### Tableau des Upgrades (tableau détaillé)
|
||||
|
||||
| Niveau | Coût | Effet | Débloque |
|
||||
|---|---:|---|---|
|
||||
| 1 | 0 | sélecteur thèmes | apply |
|
||||
|
||||
### 8. Logique et Interfaces
|
||||
|
||||
#### Pseudo-code Impacts (tableau détaillé)
|
||||
|
||||
| Fonction | Entrées | Sorties | Notes |
|
||||
|---|---|---|---|
|
||||
| `applyTheme` | theme_id | ok/err | gating |
|
||||
| `bindAssets` | assets | renderer | - |
|
||||
|
||||
#### Messages d'Infos / Alerte (tableau détaillé)
|
||||
|
||||
| ID | Niveau | Message | Condition |
|
||||
|---|---|---|---|
|
||||
| `THEME_LOCKED` | Warning | "Thème verrouillé." | non possédé |
|
||||
| `VIP_REQUIRED` | Warning | "VIP requis." | gating |
|
||||
|
||||
## Annexes UX/UI
|
||||
|
||||
### 1. Expérience Utilisateur (UX)
|
||||
|
||||
#### Description UX (tableau détaillé)
|
||||
|
||||
| Parcours | But | Friction | Réduction clics |
|
||||
|---|---|---|---|
|
||||
| Changer thème | ambiance | preview | bouton “Prévisualiser” + “Appliquer” |
|
||||
|
||||
#### Description UI (tableau détaillé)
|
||||
|
||||
| Composant | Contenu | États |
|
||||
|---|---|---|
|
||||
| Sélecteur | liste/carrousel | locked/active |
|
||||
| Transition | rideau/fondu | - |
|
||||
|
||||
#### Emplacement (tableau détaillé)
|
||||
|
||||
| Zone UI | Position | Notes |
|
||||
|---|---|---|
|
||||
| Options | menu | - |
|
||||
|
||||
#### Intégration (tableau détaillé)
|
||||
|
||||
| Intégration | Contrat | Notes |
|
||||
|---|---|---|
|
||||
| UI tokens | css/theme | cohérence |
|
||||
|
||||
#### Navigation (tableau détaillé)
|
||||
|
||||
| Action | Chemin | Résultat |
|
||||
|---|---|---|
|
||||
| Ouvrir | options | liste |
|
||||
|
||||
#### Événements (tableau détaillé)
|
||||
|
||||
| Event UI | Déclencheur | Effet |
|
||||
|---|---|---|
|
||||
| `OPEN_THEME_SELECTOR` | clic | modal |
|
||||
|
||||
#### Assets Skinables
|
||||
|
||||
##### Musiques (tableau détaillé)
|
||||
|
||||
| Asset | Usage | Durée | Notes |
|
||||
|---|---|---:|---|
|
||||
| `music_jungle_loop.mp3` | fond | loop | thème |
|
||||
|
||||
##### Sons (tableau détaillé)
|
||||
|
||||
| Asset | Usage | Volume |
|
||||
|---|---|---|
|
||||
| `ui_theme_apply.mp3` | apply | moyen |
|
||||
|
||||
##### Graphiques (tableau détaillé)
|
||||
|
||||
| Asset | Usage | Contraintes |
|
||||
|---|---|---|
|
||||
| `theme_cards.png` | UI | - |
|
||||
|
||||
##### Images (tableau détaillé)
|
||||
|
||||
| Asset | Usage |
|
||||
|---|---|
|
||||
| `theme_preview.png` | preview |
|
||||
|
||||
##### Vidéos (tableau détaillé)
|
||||
|
||||
| Asset | Usage | Durée |
|
||||
|---|---|---:|
|
||||
| `theme_transition.webm` | transition | 1.2s |
|
||||
|
||||
##### Animations (tableau détaillé)
|
||||
|
||||
| Animation | Déclencheur | Notes |
|
||||
|---|---|---|
|
||||
| rideau | apply | 1.0s |
|
||||
|
||||
##### Couleurs (tableau détaillé)
|
||||
|
||||
| Token | Valeur | Usage |
|
||||
|---|---|---|
|
||||
| `theme_primary` | variable | UI |
|
||||
|
||||
##### Textes (tableau détaillé)
|
||||
|
||||
| Clé | FR | EN |
|
||||
|---|---|---|
|
||||
| `theme.apply` | Appliquer | Apply |
|
||||
| `theme.preview` | Prévisualiser | Preview |
|
||||
|
||||
##### Formes (tableau détaillé)
|
||||
|
||||
| Élément | Forme | Notes |
|
||||
|---|---|---|
|
||||
| Cartes | rectangles arrondis | - |
|
||||
|
||||
Reference in New Issue
Block a user