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:
@@ -64,3 +64,459 @@ Système de progression temporaire (durée typique : 1 mois) offrant des récomp
|
|||||||
* **Interactions** :
|
* **Interactions** :
|
||||||
* **Sélection** : Cliquer sur la base de l'élément (ou son sprite principal) pour le sélectionner.
|
* **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.
|
* **Feedback** : Surbrillance (outline blanc/jaune) au survol de la souris.
|
||||||
|
|
||||||
|
|
||||||
|
## Définition
|
||||||
|
|
||||||
|
| Champ | Valeur |
|
||||||
|
|---|---|
|
||||||
|
| Concept | Passe de progression **temporaire** (ex. 30 jours) avec paliers + récompenses. |
|
||||||
|
| Thématique | Une saison = une thématique (Jungle/Tigre/Ours/Lapin/Lion/Chat/Dinosaure/Panthère/Jaguar/Crocodile 3D…). |
|
||||||
|
| Accès | Voie gratuite + voie premium (achat). |
|
||||||
|
| Conservation | Non-VIP : accès thèmes/packs du passe **pendant la durée du passe**. VIP : accès conservé **tant que VIP actif** (cf. `vip.md`). |
|
||||||
|
|
||||||
|
## Fonctions (tableau détaillé)
|
||||||
|
|
||||||
|
| Fonction | Déclencheur | Entrées | Sorties | Règles | Observabilité |
|
||||||
|
|---|---|---|---|---|---|
|
||||||
|
| Accumuler XP passe | actions/quetes | événements jeu | `pass_xp +` | Sources XP listées, caps journaliers | Event `PASS_XP_GAINED` |
|
||||||
|
| Déverrouiller palier | XP atteint | xp total | niveau débloqué | Déverrouillage monotone | Event `PASS_LEVEL_UNLOCKED` |
|
||||||
|
| Réclamer récompense | clic palier | type voie | item ajouté | Doit être idempotent | Event `PASS_REWARD_CLAIMED` |
|
||||||
|
| Acheter premium | achat | paiement | premium actif | Upgrade voie ; rétroactif sur paliers | Event `PASS_PREMIUM_PURCHASED` |
|
||||||
|
| Fin de saison | date fin | now | close | Non-VIP : gating thèmes ; VIP : gating par VIP | Event `PASS_ENDED` |
|
||||||
|
|
||||||
|
## Icone de base
|
||||||
|
|
||||||
|
| Élément | Spécification |
|
||||||
|
|---|---|
|
||||||
|
| Représentation | Ticket / calendrier étoilé |
|
||||||
|
| Couleur dominante | Or / rouge |
|
||||||
|
| Variantes | `icon_pass_ticket.png`, `icon_pass_calendar.png` |
|
||||||
|
| États | Badge “nouveau”, “récompenses à réclamer”, “premium” |
|
||||||
|
|
||||||
|
## Interactions (tableau détaillé)
|
||||||
|
|
||||||
|
| Interaction | Type | Préconditions | Étapes UI | Résultat | Erreurs / Messages |
|
||||||
|
|---|---|---|---|---|---|
|
||||||
|
| Ouvrir passe | Consultation | passe actif | bouton HUD | écran passe | - |
|
||||||
|
| Voir palier | Consultation | - | scroll paliers | détail reward | - |
|
||||||
|
| Réclamer | Action | palier débloqué | clic reward | item ajouté | `REWARD_LOCKED`, `ALREADY_CLAIMED` |
|
||||||
|
| Acheter premium | Action | non premium | clic CTA | premium actif | `PAYMENT_FAILED` |
|
||||||
|
| Aller quêtes passe | Navigation | - | bouton “Quêtes” | liste quêtes | - |
|
||||||
|
|
||||||
|
## Annexes Techniques
|
||||||
|
|
||||||
|
### 1. Données et États (tableau détaillé)
|
||||||
|
|
||||||
|
| Donnée / État | Type | Exemple | Source | Contraintes |
|
||||||
|
|---|---|---|---|---|
|
||||||
|
| `pass_id` | string | `pass_season_05` | DB | unique |
|
||||||
|
| `theme_name` | string | `Tigre` | config | - |
|
||||||
|
| `duration_days` | int | 30 | config | - |
|
||||||
|
| `start_date/end_date` | date | - | config | UTC |
|
||||||
|
| `levels[]` | array | - | config | 1..N |
|
||||||
|
| `levels.level` | int | 1 | config | monotone |
|
||||||
|
| `levels.xp_required` | int | 100 | config | monotone |
|
||||||
|
| `reward_free/reward_premium` | string | `skin_tiger_hat` | config | item ids |
|
||||||
|
| `player_state.pass_xp` | int | 0..∞ | DB | cumul |
|
||||||
|
| `player_state.premium_active` | bool | false | DB | - |
|
||||||
|
| `player_state.claimed_rewards` | set | - | DB | idempotence |
|
||||||
|
|
||||||
|
#### Caractéristiques Initiales (tableau détaillé)
|
||||||
|
|
||||||
|
| Caractéristique | Valeur initiale | Unité | Notes |
|
||||||
|
|---|---:|---|---|
|
||||||
|
| XP passe | 0 | xp | départ |
|
||||||
|
| Premium actif | false | bool | départ |
|
||||||
|
| Niveaux | 30 | levels | exemple |
|
||||||
|
| Cap XP/jour | 1000 | xp | anti farm |
|
||||||
|
|
||||||
|
#### Scores Initiaux (tableau détaillé)
|
||||||
|
|
||||||
|
| Score | Valeur initiale | Plage | Impact |
|
||||||
|
|---|---:|---|---|
|
||||||
|
| Niveaux débloqués | 0 | 0..N | progression |
|
||||||
|
| Récompenses non réclamées | 0 | 0..∞ | badge UI |
|
||||||
|
|
||||||
|
### 2. Cycles de Vie et Apparition (tableau détaillé)
|
||||||
|
|
||||||
|
| Phase | Déclencheur | Entrées | Sorties | Invariants |
|
||||||
|
|---|---|---|---|---|
|
||||||
|
| Apparition | début saison | config | passe actif | dates |
|
||||||
|
| Progression | actions | xp | unlocks | monotone |
|
||||||
|
| Fin | date | now | passe clos | gating |
|
||||||
|
|
||||||
|
#### Conditions d'Apparition (tableau détaillé)
|
||||||
|
|
||||||
|
| Condition | Seuil | Opérateur | Résultat |
|
||||||
|
|---|---:|---|---|
|
||||||
|
| Date >= start | true | est | passe visible |
|
||||||
|
|
||||||
|
#### Conditions de Disparition (tableau détaillé)
|
||||||
|
|
||||||
|
| Condition | Seuil | Opérateur | Résultat |
|
||||||
|
|---|---:|---|---|
|
||||||
|
| Date > end | true | est | passe inactif |
|
||||||
|
|
||||||
|
#### Hérédité (tableau détaillé)
|
||||||
|
|
||||||
|
| Élément | Hérité | Règle |
|
||||||
|
|---|---|---|
|
||||||
|
| XP gagné | Oui | persiste pour historique |
|
||||||
|
| Récompenses | Oui | items acquis restent possédés ; accès thèmes dépend VIP |
|
||||||
|
|
||||||
|
### 3. Impacts Environnementaux
|
||||||
|
|
||||||
|
#### Impact Température (tableau détaillé)
|
||||||
|
|
||||||
|
| Condition | Effet | Notes |
|
||||||
|
|---|---|---|
|
||||||
|
| Canicule | quêtes spécifiques | “vendre glaces” |
|
||||||
|
|
||||||
|
#### Impact Milieu (Biome) (tableau détaillé)
|
||||||
|
|
||||||
|
| Biome | Effet | Notes |
|
||||||
|
|---|---|---|
|
||||||
|
| Jungle | quêtes liées | thème |
|
||||||
|
|
||||||
|
#### Impact Saisons (tableau détaillé)
|
||||||
|
|
||||||
|
| Saison | Effet | Notes |
|
||||||
|
|---|---|---|
|
||||||
|
| Saison du passe | contenu | paliers |
|
||||||
|
|
||||||
|
#### Impact Heure / Jour-Nuit (tableau détaillé)
|
||||||
|
|
||||||
|
| Période | Effet | Notes |
|
||||||
|
|---|---|---|
|
||||||
|
| Reset quotidien | quêtes | distribution |
|
||||||
|
|
||||||
|
### 4. Impacts Biologiques et Sociaux
|
||||||
|
|
||||||
|
#### Impact Reproduction (tableau détaillé)
|
||||||
|
|
||||||
|
| Facteur | Effet | Condition |
|
||||||
|
|---|---|---|
|
||||||
|
| Quêtes “naissance” | XP passe + | si complétée |
|
||||||
|
|
||||||
|
#### Impact Mort (tableau détaillé)
|
||||||
|
|
||||||
|
| Cas | Effet | Condition |
|
||||||
|
|---|---|---|
|
||||||
|
| Mort bébé | quête/objectif | XP passe + si “résoudre incident” |
|
||||||
|
|
||||||
|
#### Impact Nourriture (tableau détaillé)
|
||||||
|
|
||||||
|
| Ressource | Effet | Condition |
|
||||||
|
|---|---|---|
|
||||||
|
| Quêtes nourriture | XP + | acheter/consommer |
|
||||||
|
|
||||||
|
#### Impact Attractivité(Visiteurs (tableau détaillé)
|
||||||
|
|
||||||
|
| Action/État | Effet | Condition |
|
||||||
|
|---|---|---|
|
||||||
|
| Thèmes saisonniers | attractivité + | si actif |
|
||||||
|
|
||||||
|
#### Impact Attractivité Animaux) (tableau détaillé)
|
||||||
|
|
||||||
|
| Action/État | Effet animaux | Condition |
|
||||||
|
|---|---|---|
|
||||||
|
| Skins animaux | visuel | pas de stats |
|
||||||
|
|
||||||
|
#### Impact Valeur (tableau détaillé)
|
||||||
|
|
||||||
|
| Facteur | Variation | Condition |
|
||||||
|
|---|---:|---|
|
||||||
|
| Items rares | valeur cosmétique + | collection |
|
||||||
|
|
||||||
|
### 5. Impacts Logistiques et Économiques
|
||||||
|
|
||||||
|
#### Vitesse (Camion) (tableau détaillé)
|
||||||
|
|
||||||
|
| Paramètre | Effet | Condition |
|
||||||
|
|---|---|---|
|
||||||
|
| Quête livraison | XP + | délai |
|
||||||
|
|
||||||
|
#### Vitesse (Nurserie) (tableau détaillé)
|
||||||
|
|
||||||
|
| Paramètre | Effet | Condition |
|
||||||
|
|---|---|---|
|
||||||
|
| Quête naissance | XP + | baby |
|
||||||
|
|
||||||
|
#### Vitesse (Accueil) (tableau détaillé)
|
||||||
|
|
||||||
|
| Paramètre | Effet | Condition |
|
||||||
|
|---|---|---|
|
||||||
|
| Quête réception | XP + | nouveau animal |
|
||||||
|
|
||||||
|
#### Vitesse (Recherche) (tableau détaillé)
|
||||||
|
|
||||||
|
| Paramètre | Effet | Condition |
|
||||||
|
|---|---|---|
|
||||||
|
| Quête RP | XP + | collecter |
|
||||||
|
|
||||||
|
#### Vitesse (Labo) (tableau détaillé)
|
||||||
|
|
||||||
|
| Paramètre | Effet | Condition |
|
||||||
|
|---|---|---|
|
||||||
|
| Quête labo monde | XP + | achat rare |
|
||||||
|
|
||||||
|
#### Vitesse (Visite) (tableau détaillé)
|
||||||
|
|
||||||
|
| Paramètre | Effet | Condition |
|
||||||
|
|---|---|---|
|
||||||
|
| Quête visiteurs | XP + | satisfaction |
|
||||||
|
|
||||||
|
#### Dépenses (Billeterie) (tableau détaillé)
|
||||||
|
|
||||||
|
| Poste | Coût | Unité | Condition |
|
||||||
|
|---|---:|---|---|
|
||||||
|
| Quête revenus | - | - | objectif |
|
||||||
|
|
||||||
|
#### Dépenses (Boutiques) (tableau détaillé)
|
||||||
|
|
||||||
|
| Poste | Coût | Unité | Condition |
|
||||||
|
|---|---:|---|---|
|
||||||
|
| Achat premium | variable | monnaie | passe |
|
||||||
|
|
||||||
|
#### Dépenses (Visiteurs) (tableau détaillé)
|
||||||
|
|
||||||
|
| Poste | Coût | Unité | Condition |
|
||||||
|
|---|---:|---|---|
|
||||||
|
| - | 0 | - | - |
|
||||||
|
|
||||||
|
#### Dépenses (Employés) (tableau détaillé)
|
||||||
|
|
||||||
|
| Poste | Coût | Unité | Condition |
|
||||||
|
|---|---:|---|---|
|
||||||
|
| Quête staff | - | - | embauche |
|
||||||
|
|
||||||
|
#### 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 |
|
||||||
|
|---|---:|---|---|
|
||||||
|
| Upgrade nurserie | variable | coins | objectif |
|
||||||
|
|
||||||
|
#### Dépenses (Nourriture) (tableau détaillé)
|
||||||
|
|
||||||
|
| Poste | Coût | Unité | Condition |
|
||||||
|
|---|---:|---|---|
|
||||||
|
| Achat nourriture | variable | coins | objectif |
|
||||||
|
|
||||||
|
#### Dépenses (Acceuil des animaux) (tableau détaillé)
|
||||||
|
|
||||||
|
| Poste | Coût | Unité | Condition |
|
||||||
|
|---|---:|---|---|
|
||||||
|
| Achat animaux | variable | coins | objectif |
|
||||||
|
|
||||||
|
#### Dépenses (Camion) (tableau détaillé)
|
||||||
|
|
||||||
|
| Poste | Coût | Unité | Condition |
|
||||||
|
|---|---:|---|---|
|
||||||
|
| Livraison | variable | coins | objectif |
|
||||||
|
|
||||||
|
#### Trajet Visiteurs
|
||||||
|
|
||||||
|
##### Trajet Visiteurs vers/depuis la ville (tableau détaillé)
|
||||||
|
|
||||||
|
| Source | Destination | Déclencheur | Effet |
|
||||||
|
|---|---|---|---|
|
||||||
|
| Ville | Zoo | réputation | quêtes flux |
|
||||||
|
|
||||||
|
##### Trajet Visiteurs vers/depuis les animaux (tableau détaillé)
|
||||||
|
|
||||||
|
| Source | Destination | Déclencheur | Effet |
|
||||||
|
|---|---|---|---|
|
||||||
|
| Visiteur | Enclos | curiosité | objectifs |
|
||||||
|
|
||||||
|
##### Trajet Visiteurs vers/depuis les boutiques (tableau détaillé)
|
||||||
|
|
||||||
|
| Source | Destination | Déclencheur | Effet |
|
||||||
|
|---|---|---|---|
|
||||||
|
| Visiteur | Boutique | soif/envie | objectifs |
|
||||||
|
|
||||||
|
##### Trajet Visiteurs vers/depuis la billeterie (entrées/sorties du zoo) (tableau détaillé)
|
||||||
|
|
||||||
|
| Source | Destination | Déclencheur | Effet |
|
||||||
|
|---|---|---|---|
|
||||||
|
| Visiteur | Sortie | fin journée | objectifs |
|
||||||
|
|
||||||
|
### 6. Événements
|
||||||
|
|
||||||
|
#### Événements du Jeu (tableau détaillé)
|
||||||
|
|
||||||
|
| Event | Déclencheur | Payload | Effet |
|
||||||
|
|---|---|---|---|
|
||||||
|
| `PASS_STARTED` | start | pass_id | visible |
|
||||||
|
| `PASS_ENDED` | end | pass_id | close |
|
||||||
|
|
||||||
|
#### Événements du Carte (tableau détaillé)
|
||||||
|
|
||||||
|
| Event | Déclencheur | Effet |
|
||||||
|
|---|---|---|
|
||||||
|
| `PASS_POPUP_LOGIN` | login | CTA |
|
||||||
|
|
||||||
|
#### Événements du Zoo (tableau détaillé)
|
||||||
|
|
||||||
|
| Event | Déclencheur | Effet |
|
||||||
|
|---|---|---|
|
||||||
|
| `PASS_XP_GAINED` | action zoo | xp + |
|
||||||
|
|
||||||
|
#### Événements du Ville / Visiteur (tableau détaillé)
|
||||||
|
|
||||||
|
| Event | Déclencheur | Effet |
|
||||||
|
|---|---|---|
|
||||||
|
| `PASS_VISITOR_GOAL` | satisfaction | xp + |
|
||||||
|
|
||||||
|
#### Événements du Visiteur (tableau détaillé)
|
||||||
|
|
||||||
|
| Event | Déclencheur | Effet |
|
||||||
|
|---|---|---|---|
|
||||||
|
| `PASS_PHOTO_BONUS` | photo | xp + |
|
||||||
|
|
||||||
|
#### Événements du Joueur (tableau détaillé)
|
||||||
|
|
||||||
|
| Event | Déclencheur | Effet |
|
||||||
|
|---|---|---|---|
|
||||||
|
| `PASS_PREMIUM_PURCHASED` | achat | premium |
|
||||||
|
|
||||||
|
### 7. Progression
|
||||||
|
|
||||||
|
#### Tableau des Upgrades (tableau détaillé)
|
||||||
|
|
||||||
|
| Niveau passe | XP requis | Free reward | Premium reward | Notes |
|
||||||
|
|---|---:|---|---|---|
|
||||||
|
| 1 | 100 | coins_100 | skin_tiger_hat | exemple |
|
||||||
|
| 30 | 3000 | skin_tiger_statue | theme_tiger_full | exemple |
|
||||||
|
|
||||||
|
### 8. Logique et Interfaces
|
||||||
|
|
||||||
|
#### Pseudo-code Impacts (tableau détaillé)
|
||||||
|
|
||||||
|
| Fonction | Entrées | Sorties | Notes |
|
||||||
|
|---|---|---|---|
|
||||||
|
| `addPassXp` | action xp | pass_xp | cap/jour |
|
||||||
|
| `unlockLevels` | pass_xp | unlocked | monotone |
|
||||||
|
| `claimReward` | level, track | item | idempotent |
|
||||||
|
|
||||||
|
#### Messages d'Infos / Alerte (tableau détaillé)
|
||||||
|
|
||||||
|
| ID | Niveau | Message | Condition |
|
||||||
|
|---|---|---|---|
|
||||||
|
| `REWARD_LOCKED` | Warning | "Palier verrouillé." | xp insuffisant |
|
||||||
|
| `ALREADY_CLAIMED` | Info | "Déjà réclamé." | idempotence |
|
||||||
|
|
||||||
|
## Annexes UX/UI
|
||||||
|
|
||||||
|
### 1. Expérience Utilisateur (UX)
|
||||||
|
|
||||||
|
#### Description UX (tableau détaillé)
|
||||||
|
|
||||||
|
| Parcours | But | Friction | Réduction clics |
|
||||||
|
|---|---|---|---|
|
||||||
|
| Suivre progression | motivation | scroll long | raccourci “prochain reward” |
|
||||||
|
| Réclamer | récupérer items | oubli | badge non réclamés |
|
||||||
|
|
||||||
|
#### Description UI (tableau détaillé)
|
||||||
|
|
||||||
|
| Composant | Contenu | États |
|
||||||
|
|---|---|---|
|
||||||
|
| Écran passe | rail paliers | free/premium |
|
||||||
|
| CTA premium | prix | purchased |
|
||||||
|
|
||||||
|
#### Emplacement (tableau détaillé)
|
||||||
|
|
||||||
|
| Zone UI | Position | Notes |
|
||||||
|
|---|---|---|
|
||||||
|
| HUD | bouton passe | badge |
|
||||||
|
| Modal | plein écran | scroll |
|
||||||
|
|
||||||
|
#### Intégration (tableau détaillé)
|
||||||
|
|
||||||
|
| Intégration | Contrat | Notes |
|
||||||
|
|---|---|---|
|
||||||
|
| Inventaire skins | ajout items | idempotent |
|
||||||
|
| VIP | conservation | gating |
|
||||||
|
|
||||||
|
#### Navigation (tableau détaillé)
|
||||||
|
|
||||||
|
| Action | Chemin | Résultat |
|
||||||
|
|---|---|---|
|
||||||
|
| Ouvrir passe | HUD | écran |
|
||||||
|
| Aller boutique | CTA | achat |
|
||||||
|
|
||||||
|
#### Événements (tableau détaillé)
|
||||||
|
|
||||||
|
| Event UI | Déclencheur | Effet |
|
||||||
|
|---|---|---|
|
||||||
|
| `OPEN_PASS` | clic | écran |
|
||||||
|
| `CLICK_CLAIM_REWARD` | clic | claim |
|
||||||
|
|
||||||
|
#### Assets Skinables
|
||||||
|
|
||||||
|
##### Musiques (tableau détaillé)
|
||||||
|
|
||||||
|
| Asset | Usage | Durée | Notes |
|
||||||
|
|---|---|---:|---|
|
||||||
|
| `pass_screen_loop.mp3` | écran | loop | thème saison |
|
||||||
|
|
||||||
|
##### Sons (tableau détaillé)
|
||||||
|
|
||||||
|
| Asset | Usage | Volume |
|
||||||
|
|---|---|---|
|
||||||
|
| `reward_claim.mp3` | claim | moyen |
|
||||||
|
| `level_unlock.mp3` | unlock | moyen |
|
||||||
|
|
||||||
|
##### Graphiques (tableau détaillé)
|
||||||
|
|
||||||
|
| Asset | Usage | Contraintes |
|
||||||
|
|---|---|---|
|
||||||
|
| `pass_track_free.png` | UI | - |
|
||||||
|
| `pass_track_premium.png` | UI | - |
|
||||||
|
|
||||||
|
##### Images (tableau détaillé)
|
||||||
|
|
||||||
|
| Asset | Usage |
|
||||||
|
|---|---|
|
||||||
|
| `pass_badge.png` | HUD |
|
||||||
|
| `pass_reward_icons.png` | paliers |
|
||||||
|
|
||||||
|
##### Vidéos (tableau détaillé)
|
||||||
|
|
||||||
|
| Asset | Usage | Durée |
|
||||||
|
|---|---|---:|
|
||||||
|
| `pass_intro.webm` | popup | 2.0s |
|
||||||
|
|
||||||
|
##### Animations (tableau détaillé)
|
||||||
|
|
||||||
|
| Animation | Déclencheur | Notes |
|
||||||
|
|---|---|---|
|
||||||
|
| jauge fill | xp gain | smooth |
|
||||||
|
| sparkles | claim | burst |
|
||||||
|
|
||||||
|
##### Couleurs (tableau détaillé)
|
||||||
|
|
||||||
|
| Token | Valeur | Usage |
|
||||||
|
|---|---|---|
|
||||||
|
| `pass_gold` | #D4AF37 | premium |
|
||||||
|
| `pass_red` | #C0392B | accent |
|
||||||
|
|
||||||
|
##### Textes (tableau détaillé)
|
||||||
|
|
||||||
|
| Clé | FR | EN |
|
||||||
|
|---|---|---|
|
||||||
|
| `pass.claim` | Réclamer | Claim |
|
||||||
|
| `pass.buy_premium` | Acheter Premium | Buy Premium |
|
||||||
|
|
||||||
|
##### Formes (tableau détaillé)
|
||||||
|
|
||||||
|
| Élément | Forme | Notes |
|
||||||
|
|---|---|---|
|
||||||
|
| Cartes reward | rectangles arrondis | - |
|
||||||
|
| Jauge | barre | - |
|
||||||
|
|||||||
@@ -57,3 +57,446 @@
|
|||||||
* **Interactions** :
|
* **Interactions** :
|
||||||
* **Sélection** : Cliquer sur la base de l'élément (ou son sprite principal) pour le sélectionner.
|
* **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.
|
* **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 |
|
||||||
|
|||||||
@@ -56,3 +56,444 @@ Ensemble cohérent de skins et d'éléments visuels transformant l'ambiance gén
|
|||||||
* **Interactions** :
|
* **Interactions** :
|
||||||
* **Sélection** : Cliquer sur la base de l'élément (ou son sprite principal) pour le sélectionner.
|
* **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.
|
* **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 | - |
|
||||||
|
|||||||
@@ -51,3 +51,456 @@ Statut premium pour les joueurs, généralement obtenu par abonnement ou achat i
|
|||||||
* **Interactions** :
|
* **Interactions** :
|
||||||
* **Sélection** : Cliquer sur la base de l'élément (ou son sprite principal) pour le sélectionner.
|
* **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.
|
* **Feedback** : Surbrillance (outline blanc/jaune) au survol de la souris.
|
||||||
|
|
||||||
|
|
||||||
|
## Définition
|
||||||
|
|
||||||
|
| Champ | Valeur |
|
||||||
|
|---|---|
|
||||||
|
| Concept | Statut premium (VIP) lié au compte joueur. |
|
||||||
|
| Rôle | Déverrouiller des avantages de confort + cosmétiques, notamment la conservation des thèmes/passes tant que VIP actif. |
|
||||||
|
| Portée | Compte (tous zoos / toutes sessions). |
|
||||||
|
| Contrainte | Pas de mécanisme de cache/mémorisation côté app : l’état VIP est lu comme un état courant (source de vérité). |
|
||||||
|
|
||||||
|
## Fonctions (tableau détaillé)
|
||||||
|
|
||||||
|
| Fonction | Déclencheur | Entrées | Sorties | Règles | Observabilité |
|
||||||
|
|---|---|---|---|---|---|
|
||||||
|
| Activer VIP | achat/abonnement | moyen de paiement, plan | `is_active=true`, `expiry_date` | Activation atomique, idempotente sur transaction | Event `VIP_ACTIVATED` |
|
||||||
|
| Expirer VIP | temps | `expiry_date` | `is_active=false` | Expiration automatique au tick serveur / lazy update au login | Event `VIP_EXPIRED` |
|
||||||
|
| Conserver thèmes passés | check d’accès contenu | `keep_seasonal_themes` | autorisation | Règle retenue : **suspension** des accès si VIP inactif (pas de perte définitive). | Event `VIP_CONTENT_ACCESS_CHECKED` |
|
||||||
|
| Bonus passifs | tick journalier | plan | coins/xp | Bonus plafonnés (anti P2W), visibles dans UI | Event `VIP_DAILY_BONUS_GRANTED` |
|
||||||
|
| Badge prestige | render UI | `is_active` | badge | Affiché partout pseudo/avatar | Event `VIP_BADGE_RENDER` |
|
||||||
|
|
||||||
|
## Icone de base
|
||||||
|
|
||||||
|
| Élément | Spécification |
|
||||||
|
|---|---|
|
||||||
|
| Représentation | Couronne / diamant |
|
||||||
|
| Couleur dominante | Or / violet |
|
||||||
|
| Variantes | `icon_vip_crown.png`, `icon_vip_diamond.png` |
|
||||||
|
| États | Badge “actif” (or), “expiré” (gris), “renouvellement” (horloge) |
|
||||||
|
|
||||||
|
## Interactions (tableau détaillé)
|
||||||
|
|
||||||
|
| Interaction | Type | Préconditions | Étapes UI | Résultat | Erreurs / Messages |
|
||||||
|
|---|---|---|---|---|---|
|
||||||
|
| Voir offre VIP | Consultation | - | Boutique/Profil → VIP | page détail | - |
|
||||||
|
| Acheter VIP | Action | paiement ok | Clic “Devenir VIP” → confirmer | VIP actif | `PAYMENT_FAILED`, `NETWORK_ERROR` |
|
||||||
|
| Renouveler | Action | VIP actif ou expiré | “Renouveler” | `expiry_date` prolongée | `PAYMENT_FAILED` |
|
||||||
|
| Voir contenu conservé | Consultation | VIP actif | Profil → “Mes thèmes” | liste | `VIP_REQUIRED` |
|
||||||
|
| Réactiver après expiration | Action | VIP expiré | “Réactiver” | accès restauré (suspension levée) | `PAYMENT_FAILED` |
|
||||||
|
|
||||||
|
## Annexes Techniques
|
||||||
|
|
||||||
|
### 1. Données et États (tableau détaillé)
|
||||||
|
|
||||||
|
| Donnée / État | Type | Exemple | Source | Contraintes |
|
||||||
|
|---|---|---|---|---|
|
||||||
|
| `status_id` | string | `vip_subscription` | DB | constant |
|
||||||
|
| `is_active` | boolean | true | DB | dérivé de `expiry_date` |
|
||||||
|
| `expiry_date` | timestamp | `2026-12-31T23:59:59Z` | DB | UTC |
|
||||||
|
| `plan_id` | string | `vip_monthly` | DB | enum plans |
|
||||||
|
| `benefits.keep_seasonal_themes` | boolean | true | config | gating contenu |
|
||||||
|
| `benefits.xp_multiplier` | float | 1.1 | config | cap 1.2 |
|
||||||
|
| `benefits.daily_coin_bonus` | int | 50 | config | cap 200 |
|
||||||
|
| `timestamps.created_at` | timestamp | - | DB | audit |
|
||||||
|
| `timestamps.updated_at` | timestamp | - | DB | audit |
|
||||||
|
|
||||||
|
#### Caractéristiques Initiales (tableau détaillé)
|
||||||
|
|
||||||
|
| Caractéristique | Valeur initiale | Unité | Notes |
|
||||||
|
|---|---:|---|---|
|
||||||
|
| VIP actif | false | bool | par défaut |
|
||||||
|
| Multiplicateur XP | 1.0 | coef | sans VIP |
|
||||||
|
| Bonus coins/jour | 0 | coins | sans VIP |
|
||||||
|
| Conservation thèmes | false | bool | gating |
|
||||||
|
|
||||||
|
#### Scores Initiaux (tableau détaillé)
|
||||||
|
|
||||||
|
| Score | Valeur initiale | Plage | Impact |
|
||||||
|
|---|---:|---|---|
|
||||||
|
| Jours VIP cumulés | 0 | 0..∞ | UI historique (pas d’analytics) |
|
||||||
|
| Bonus total distribués | 0 | 0..∞ | transparence UI |
|
||||||
|
|
||||||
|
### 2. Cycles de Vie et Apparition (tableau détaillé)
|
||||||
|
|
||||||
|
| Phase | Déclencheur | Entrées | Sorties | Invariants |
|
||||||
|
|---|---|---|---|---|
|
||||||
|
| Apparition | création compte | - | VIP inactif | - |
|
||||||
|
| Activation | achat | plan | VIP actif | atomicité |
|
||||||
|
| Renouvellement | achat | plan | expiry prolongée | monotone |
|
||||||
|
| Expiration | temps | date | VIP inactif | suspension contenu |
|
||||||
|
|
||||||
|
#### Conditions d'Apparition (tableau détaillé)
|
||||||
|
|
||||||
|
| Condition | Seuil | Opérateur | Résultat |
|
||||||
|
|---|---:|---|---|
|
||||||
|
| Compte créé | true | est | entrée VIP créée (inactive) |
|
||||||
|
|
||||||
|
#### Conditions de Disparition (tableau détaillé)
|
||||||
|
|
||||||
|
| Condition | Seuil | Opérateur | Résultat |
|
||||||
|
|---|---:|---|---|
|
||||||
|
| Compte supprimé | true | est | VIP supprimé |
|
||||||
|
|
||||||
|
#### Hérédité (tableau détaillé)
|
||||||
|
|
||||||
|
| Élément | Hérité | Règle |
|
||||||
|
|---|---|---|
|
||||||
|
| Historique VIP | Oui | persiste |
|
||||||
|
| Contenu “conservé” | Oui | reste possédé mais **gated** si VIP off |
|
||||||
|
|
||||||
|
### 3. Impacts Environnementaux
|
||||||
|
|
||||||
|
#### Impact Température (tableau détaillé)
|
||||||
|
|
||||||
|
| Condition | Effet VIP | Notes |
|
||||||
|
|---|---|---|
|
||||||
|
| - | aucun | statut méta |
|
||||||
|
|
||||||
|
#### Impact Milieu (Biome) (tableau détaillé)
|
||||||
|
|
||||||
|
| Biome | Effet VIP | Notes |
|
||||||
|
|---|---|---|
|
||||||
|
| - | aucun | - |
|
||||||
|
|
||||||
|
#### Impact Saisons (tableau détaillé)
|
||||||
|
|
||||||
|
| Saison | Effet VIP | Notes |
|
||||||
|
|---|---|---|
|
||||||
|
| Saison active | contenu pass dispo | lié au passe |
|
||||||
|
|
||||||
|
#### Impact Heure / Jour-Nuit (tableau détaillé)
|
||||||
|
|
||||||
|
| Période | Effet VIP | Notes |
|
||||||
|
|---|---|---|
|
||||||
|
| Jour | bonus journalier | horaire fixe serveur |
|
||||||
|
|
||||||
|
### 4. Impacts Biologiques et Sociaux
|
||||||
|
|
||||||
|
#### Impact Reproduction (tableau détaillé)
|
||||||
|
|
||||||
|
| Facteur | Effet sur taux | Condition |
|
||||||
|
|---|---|---|
|
||||||
|
| - | aucun | VIP n’affecte pas reproduction |
|
||||||
|
|
||||||
|
#### 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 |
|
||||||
|
|---|---:|---:|---|
|
||||||
|
| Thèmes conservés | + (cosmétique) | zoo | impact via esthétique |
|
||||||
|
|
||||||
|
#### Impact Attractivité Animaux) (tableau détaillé)
|
||||||
|
|
||||||
|
| Action/État | Effet animaux | Condition |
|
||||||
|
|---|---|---|
|
||||||
|
| - | aucun direct | - |
|
||||||
|
|
||||||
|
#### Impact Valeur (tableau détaillé)
|
||||||
|
|
||||||
|
| Facteur | Variation | Condition |
|
||||||
|
|---|---:|---|
|
||||||
|
| Prestige VIP | + | classement/présentation |
|
||||||
|
|
||||||
|
### 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 |
|
||||||
|
|---|---|---|
|
||||||
|
| XP multiplier | xp × 1.1 | VIP actif |
|
||||||
|
|
||||||
|
#### Vitesse (Labo) (tableau détaillé)
|
||||||
|
|
||||||
|
| Paramètre | Effet | Condition |
|
||||||
|
|---|---|---|
|
||||||
|
| - | aucun | - |
|
||||||
|
|
||||||
|
#### Vitesse (Visite) (tableau détaillé)
|
||||||
|
|
||||||
|
| Paramètre | Effet | Condition |
|
||||||
|
|---|---|---|
|
||||||
|
| Temps visite | + léger | confort (option) |
|
||||||
|
|
||||||
|
#### Dépenses (Billeterie) (tableau détaillé)
|
||||||
|
|
||||||
|
| Poste | Coût | Unité | Condition |
|
||||||
|
|---|---:|---|---|
|
||||||
|
| - | 0 | - | - |
|
||||||
|
|
||||||
|
#### Dépenses (Boutiques) (tableau détaillé)
|
||||||
|
|
||||||
|
| Poste | Coût | Unité | Condition |
|
||||||
|
|---|---:|---|---|
|
||||||
|
| Abonnement VIP | variable | coins/€ | boutique |
|
||||||
|
|
||||||
|
#### 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 | réputation | VIP indirect (via thèmes/esthétique) |
|
||||||
|
|
||||||
|
##### 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 |
|
||||||
|
|---|---|---|---|
|
||||||
|
| `VIP_ACTIVATED` | paiement ok | plan_id | active |
|
||||||
|
| `VIP_EXPIRED` | date | - | suspend |
|
||||||
|
|
||||||
|
#### Événements du Carte (tableau détaillé)
|
||||||
|
|
||||||
|
| Event | Déclencheur | Effet |
|
||||||
|
|---|---|---|
|
||||||
|
| `VIP_BADGE_RENDER` | UI | badge |
|
||||||
|
|
||||||
|
#### Événements du Zoo (tableau détaillé)
|
||||||
|
|
||||||
|
| Event | Déclencheur | Effet |
|
||||||
|
|---|---|---|
|
||||||
|
| `VIP_CONTENT_ACCESS_CHECKED` | apply theme | allow/deny |
|
||||||
|
|
||||||
|
#### É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 |
|
||||||
|
|---|---|---|
|
||||||
|
| `VIP_DAILY_BONUS_GRANTED` | reset journalier | coins/xp |
|
||||||
|
|
||||||
|
### 7. Progression
|
||||||
|
|
||||||
|
#### Tableau des Upgrades (tableau détaillé)
|
||||||
|
|
||||||
|
| Niveau | Coût | Effet | Débloque |
|
||||||
|
|---|---:|---|---|
|
||||||
|
| 1 | variable | VIP actif | badge + conservation gating |
|
||||||
|
|
||||||
|
### 8. Logique et Interfaces
|
||||||
|
|
||||||
|
#### Pseudo-code Impacts (tableau détaillé)
|
||||||
|
|
||||||
|
| Fonction | Entrées | Sorties | Notes |
|
||||||
|
|---|---|---|---|
|
||||||
|
| `isVipActive` | now, expiry_date | bool | source de vérité |
|
||||||
|
| `canUseTheme` | vip, theme | allow | suspension si VIP off |
|
||||||
|
|
||||||
|
#### Messages d'Infos / Alerte (tableau détaillé)
|
||||||
|
|
||||||
|
| ID | Niveau | Message | Condition |
|
||||||
|
|---|---|---|---|
|
||||||
|
| `VIP_REQUIRED` | Warning | "VIP requis." | accès contenu gated |
|
||||||
|
| `VIP_EXPIRED` | Info | "VIP expiré." | expiration |
|
||||||
|
|
||||||
|
## Annexes UX/UI
|
||||||
|
|
||||||
|
### 1. Expérience Utilisateur (UX)
|
||||||
|
|
||||||
|
#### Description UX (tableau détaillé)
|
||||||
|
|
||||||
|
| Parcours | But | Friction | Réduction clics |
|
||||||
|
|---|---|---|---|
|
||||||
|
| Devenir VIP | conserver thèmes | paiement | bouton direct profil + boutique |
|
||||||
|
| Réactiver | restaurer accès | paiement | deep-link depuis contenu locké |
|
||||||
|
|
||||||
|
#### Description UI (tableau détaillé)
|
||||||
|
|
||||||
|
| Composant | Contenu | États |
|
||||||
|
|---|---|---|
|
||||||
|
| Page VIP | bénéfices, prix, CTA | active/expired |
|
||||||
|
| Badge VIP | couronne | visible partout |
|
||||||
|
|
||||||
|
#### Emplacement (tableau détaillé)
|
||||||
|
|
||||||
|
| Zone UI | Position | Notes |
|
||||||
|
|---|---|---|
|
||||||
|
| Profil | en-tête | badge |
|
||||||
|
| Boutique | section VIP | CTA |
|
||||||
|
|
||||||
|
#### Intégration (tableau détaillé)
|
||||||
|
|
||||||
|
| Intégration | Contrat | Notes |
|
||||||
|
|---|---|---|
|
||||||
|
| Skins/thèmes | gating | suspension |
|
||||||
|
| Passe saisonnier | conservation | VIP |
|
||||||
|
|
||||||
|
#### Navigation (tableau détaillé)
|
||||||
|
|
||||||
|
| Action | Chemin | Résultat |
|
||||||
|
|---|---|---|
|
||||||
|
| Ouvrir VIP | profil/boutique | page |
|
||||||
|
| Acheter | CTA | paiement |
|
||||||
|
|
||||||
|
#### Événements (tableau détaillé)
|
||||||
|
|
||||||
|
| Event UI | Déclencheur | Effet |
|
||||||
|
|---|---|---|
|
||||||
|
| `OPEN_VIP_PAGE` | clic | page |
|
||||||
|
| `CLICK_BUY_VIP` | CTA | paiement |
|
||||||
|
|
||||||
|
#### Assets Skinables
|
||||||
|
|
||||||
|
##### Musiques (tableau détaillé)
|
||||||
|
|
||||||
|
| Asset | Usage | Durée | Notes |
|
||||||
|
|---|---|---:|---|
|
||||||
|
| `vip_page_loop.mp3` | page VIP | loop | discret |
|
||||||
|
|
||||||
|
##### Sons (tableau détaillé)
|
||||||
|
|
||||||
|
| Asset | Usage | Volume |
|
||||||
|
|---|---|---|
|
||||||
|
| `ui_purchase_success.mp3` | achat ok | moyen |
|
||||||
|
| `ui_purchase_fail.mp3` | achat fail | moyen |
|
||||||
|
|
||||||
|
##### Graphiques (tableau détaillé)
|
||||||
|
|
||||||
|
| Asset | Usage | Contraintes |
|
||||||
|
|---|---|---|
|
||||||
|
| `vip_badge_crown.png` | badge | scalable |
|
||||||
|
| `vip_gold_glow.png` | FX | overlay |
|
||||||
|
|
||||||
|
##### Images (tableau détaillé)
|
||||||
|
|
||||||
|
| Asset | Usage |
|
||||||
|
|---|---|
|
||||||
|
| `vip_banner.png` | hero |
|
||||||
|
| `vip_benefit_cards.png` | cartes |
|
||||||
|
|
||||||
|
##### Vidéos (tableau détaillé)
|
||||||
|
|
||||||
|
| Asset | Usage | Durée |
|
||||||
|
|---|---|---:|
|
||||||
|
| `vip_glow.webm` | succès | 1.0s |
|
||||||
|
|
||||||
|
##### Animations (tableau détaillé)
|
||||||
|
|
||||||
|
| Animation | Déclencheur | Notes |
|
||||||
|
|---|---|---|
|
||||||
|
| glow doré | activation | 0.8s |
|
||||||
|
| badge pulse | reward | 0.6s |
|
||||||
|
|
||||||
|
##### Couleurs (tableau détaillé)
|
||||||
|
|
||||||
|
| Token | Valeur | Usage |
|
||||||
|
|---|---|---|
|
||||||
|
| `vip_gold` | #D4AF37 | UI |
|
||||||
|
| `vip_purple` | #6A1B9A | accent |
|
||||||
|
|
||||||
|
##### Textes (tableau détaillé)
|
||||||
|
|
||||||
|
| Clé | FR | EN |
|
||||||
|
|---|---|---|
|
||||||
|
| `vip.become` | Devenir VIP | Become VIP |
|
||||||
|
| `vip.renew` | Renouveler | Renew |
|
||||||
|
|
||||||
|
##### Formes (tableau détaillé)
|
||||||
|
|
||||||
|
| Élément | Forme | Notes |
|
||||||
|
|---|---|---|
|
||||||
|
| Cartes bénéfices | rectangles arrondis | lisibles |
|
||||||
|
| Badge | rond | constant |
|
||||||
|
|||||||
Reference in New Issue
Block a user