diff --git a/docs/specs/passe_saisonnier.md b/docs/specs/passe_saisonnier.md index 5700e8c..bdcfb3d 100644 --- a/docs/specs/passe_saisonnier.md +++ b/docs/specs/passe_saisonnier.md @@ -64,3 +64,459 @@ Système de progression temporaire (durée typique : 1 mois) offrant des récomp * **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 | 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 | - | diff --git a/docs/specs/skin.md b/docs/specs/skin.md index e12d87f..bf59e39 100644 --- a/docs/specs/skin.md +++ b/docs/specs/skin.md @@ -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 | diff --git a/docs/specs/theme.md b/docs/specs/theme.md index 3127516..3a7a6db 100644 --- a/docs/specs/theme.md +++ b/docs/specs/theme.md @@ -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 | - | diff --git a/docs/specs/vip.md b/docs/specs/vip.md index bb5e224..20ef429 100644 --- a/docs/specs/vip.md +++ b/docs/specs/vip.md @@ -51,3 +51,456 @@ Statut premium pour les joueurs, généralement obtenu par abonnement ou achat i * **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 | 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 |