# VIP ## 1. Définition Statut premium pour les joueurs, généralement obtenu par abonnement ou achat in-app. Le statut VIP confère des avantages de confort et de cosmétique, sans déséquilibrer le gameplay compétitif (Pay-to-Fast ou Pay-to-Cool, pas Pay-to-Win). ## 2. Fonctions * **Conservation des Thèmes :** Avantage majeur permettant de garder définitivement les thèmes et skins des passes saisonniers, même après la fin de la saison. * **Bonus Passifs :** Peut inclure des bonus légers d'XP ou de pièces. * **Prestige :** Badge ou couleur de pseudo distinctif. ## 3. Icone * **Représentation :** Couronne ou Diamant. * **Couleur dominante :** Or scintillant ou Violet royal. ## 4. Interactions * **Achat/Abonnement :** Via la boutique ou le menu profil. * **Affichage :** Badge visible à côté de l'avatar et du pseudo. ## 5. Annexes Techniques ### Données (JSON) ```json { "status_id": "vip_subscription", "is_active": true, "expiry_date": "2026-12-31T23:59:59", "benefits": { "keep_seasonal_themes": true, "xp_multiplier": 1.1, "daily_coin_bonus": 50 } } ``` ### Règles Métier * Si le statut VIP expire, le joueur perd l'accès aux thèmes saisonniers passés qu'il avait "sauvegardés", sauf s'il se réabonne (règle à définir : perte définitive ou suspension ? -> Suspension par défaut pour encourager le réabonnement). * Le statut VIP s'applique à tout le compte joueur. ## 6. Annexes UX/UI * **Badge VIP :** Petite icône couronne à côté du pseudo partout dans l'interface. * **Interface Boutique :** Section dédiée "Devenir VIP" avec mise en avant des avantages (surtout la conservation des thèmes). * **Feedback :** Effet visuel doré lors de la récupération de récompenses. # Annexes UX/UI ## 0. Direction Artistique & Vue * **Vue** : Isométrique (2.5D). * **Style** : Coloré, vivant, détails foisonnants (Réf: IMG_20260303_170253.jpg). * **Sprites** : 4 directions. * **Interactions** : * **Sélection** : Cliquer sur la base de l'élément (ou son sprite principal) pour le sélectionner. * **Feedback** : Surbrillance (outline blanc/jaune) au survol de la souris. ## Définition | Champ | Valeur | |---|---| | Concept | 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 |