# Spécifications : Animal (Générique) ## Définition Entité biologique principale du jeu. ## Propriétés - **Type/Espèce** : Défini par le loot (75 animaux possibles). - **Affichage** : Apparaît "en petit" dans l'enclos fusionné. - **Génétique** : - **Couleur** : 15 variations. - **Rareté** : 5 niveaux (pondération Fibonacci). - **État** : Faim, Température, Santé, Âge. - **Cycle de vie** : Œuf -> Bébé -> Adulte -> Mort. ## Besoins - **Nourriture** : Consommation périodique. - **Environnement** : Adéquation Biome/Température. - **Social** : Besoin de congénères (reproduction) ou de solitude (selon espèce). - **Enrichissement** : Besoin d'un objet spécial dans l'enclos (ex: Arbre à singe). ## Mort Causes possibles : Faim, Froid/Chaud, Solitude, Maladie, Vieillesse (si implémenté), Attaque (si implémenté). Conséquence : Perte sèche, pénalité d'attractivité. # Annexes Techniques ## 1. Données et États ### Modèle de Données (JSON) ```json { "id": "uuid_v4", "type": "string (ex: 'rabbit')", "rarity": "integer (1-5)", "color_id": "integer (0-14)", "name": "string", "birth_date": "timestamp", "state": { "health": "float (0-100)", "hunger": "float (0-100)", "temperature_comfort": "float (-1.0 to 1.0)", "stress": "float (0-100)" }, "genetics": { "parent_a_id": "uuid_v4 | null", "parent_b_id": "uuid_v4 | null", "mutation_factor": "float" }, "position": { "x": "int", "y": "int" } } ``` ### Caractéristiques Initiales | Caractéristique | Valeur Initiale | | :--- | :--- | | Santé | 100.0 | | Faim | 0.0 (Rassasié) | | Stress | 0.0 | | Âge | 0 (Bébé) | ### Scores Initiaux | Score | Valeur | | :--- | :--- | | Valeur Vente (Base) | 10 * Fibonacci(Rareté) | | Attractivité (Base) | 5 * Rareté | ## 2. Cycles de Vie et Apparition ### Conditions d'Apparition | Type | Condition | | :--- | :--- | | Œuf | Achat Carte Monde / Loot Labo | | Bébé | Éclosion Œuf / Naissance (Reproduction) | | Adulte | Fin croissance Bébé / Achat Carte Monde | ### Conditions de Disparition | Cause | Seuil | | :--- | :--- | | Mort (Faim) | Faim >= 100 pendant 24h (in-game) | | Mort (Santé) | Santé <= 0 | | Vente | Transaction validée | | Libération | Action joueur | ### Hérédité | Paramètre | Formule / Logique | | :--- | :--- | | Rareté | `Moyenne(Parents) + Random(-1, +1)` (Pondéré par mutation) | | Couleur | `Parent_A` (50%) ou `Parent_B` (50%) + Faible chance mutation | ## 3. Impacts Environnementaux ### Impact Température | Delta T° (Idéal - Réel) | Effet sur Santé / Heure | Effet sur Stress / Heure | | :--- | :--- | :--- | | +/- 0 (Idéal) | 0 | -5 | | +/- 1 (Supportable) | -1 | +2 | | +/- 2 (Inconfort) | -5 | +10 | | +/- 3 (Danger) | -20 | +25 | | > +/- 3 (Mortel) | -50 | +50 | ### Impact Milieu (Biome) | Compatibilité | Effet sur Santé / Heure | Effet sur Stress / Heure | | :--- | :--- | :--- | | Parfaite (Même couleur) | +1 (Régénération) | -5 | | Adjacente (Cercle chromatique) | 0 | 0 | | Opposée | -5 | +10 | ### Impact Saisons | Saison | Modificateur Faim | Modificateur Santé | | :--- | :--- | :--- | | Printemps | Normal | Bonus Régénération | | Été | +10% (Soif/Faim) | Malus si T° > Seuil | | Automne | Normal | Normal | | Hiver | +20% (Besoin énergie) | Malus si T° < Seuil | ### Impact Heure / Jour-Nuit | Cycle | Modificateur Faim | Modificateur Stress | | :--- | :--- | :--- | | Jour | Normal | Normal | | Nuit | -50% (Sommeil) | Récupération rapide (si calme) | ## 4. Impacts Biologiques et Sociaux ### Impact Reproduction | Condition | Bonus/Malus Score Repro | | :--- | :--- | | Santé > 80% | +10 | | Faim < 20% | +10 | | Stress < 10% | +20 | | Partenaire compatible < 2 cases | Déclencheur | ### Impact Mort | Événement | Effet | | :--- | :--- | | Mort d'un congénère (Rayon 5) | Stress +20 (Immédiat) | | Mort isolée | Stress +5 (Ennui) | ### Impact Nourriture | État Faim | Effet Santé / Heure | | :--- | :--- | | 0-20% | +2 | | 20-50% | 0 | | 50-80% | -2 | | 80-100% | -10 | ### Impact Attractivité (Visiteurs/Animaux) | Rareté | Attractivité (Rayon d'action) | | :--- | :--- | | 1 (Commun) | 2 cases | | 2 (Peu commun) | 3 cases | | 3 (Rare) | 5 cases | | 4 (Épique) | 8 cases | | 5 (Légendaire) | 12 cases (Tout le zoo) | ### Impact Valeur | Facteur | Multiplicateur Valeur | | :--- | :--- | | Santé 100% | x1.2 | | Santé < 50% | x0.5 | | Âge (Adulte jeune) | x1.5 | | Âge (Vieux) | x0.8 | ## 5. Impacts Logistiques et Économiques ### Vitesse (Camion/Nurserie/Accueil/Recherche/Labo/Visite) **Vitesse Déplacement** : Varie selon l'espèce. - **Lent** (Tortue) : 0.5 case/sec. - **Moyen** (Zèbre) : 1 case/sec. - **Rapide** (Guépard) : 2 cases/sec. ### Dépenses (Boutiques/Visiteurs) **Coût Nourriture** : - **Petit** : 1 unité/jour. - **Moyen** : 2 unités/jour. - **Grand** : 5 unités/jour. ### Trajet Visiteurs **Point d'Intérêt** : Les visiteurs s'arrêtent 5 à 10 secondes devant l'enclos pour observer l'animal (si visible). ## 6. Événements ### Événements du Jeu / Carte / Zoo / Ville / Visiteur * **Maladie** : Si Santé < 20% et hygiène faible. * **Naissance** : Si conditions reproduction réunies. * **Mort** : Si Santé <= 0. * **Évasion** : Si clôture cassée (Probabilité faible). ## 7. Progression ### Tableau des Upgrades *Note : L'animal gagne de l'expérience en vieillissant.* | Niveau Expérience | Nom | Bonus Valeur | Bonus Attractivité | | :--- | :--- | :--- | :--- | | 1 (Jeune) | Novice | +0% | +0% | | 2 (Adulte) | Mature | +10% | +10% | | 3 (Vétéran) | Star | +20% | +30% | | 4 (Doyen) | Légende | +50% | +100% | ## 8. Logique et Interfaces ### Pseudo-code Impacts ```javascript function updateAnimal(animal, context): deltaTemp = abs(animal.idealTemp - context.tileTemp) if deltaTemp > 0: animal.health -= tableImpactTemp[deltaTemp] animal.stress += tableImpactTemp[deltaTemp] * 0.5 if context.tileBiome != animal.idealBiome: animal.stress += 5 if animal.hunger > 0: animal.hunger += baseHungerRate * context.seasonMod if animal.hunger >= 100: animal.health -= 10 ``` ### Messages d'Infos / Alerte | ID | Niveau | Message | | :--- | :--- | :--- | | `ANIMAL_HUNGRY` | Warning | "Un animal a faim !" | | `ANIMAL_SICK` | Alerte | "Un animal est malade." | | `ANIMAL_DEAD` | Critique | "Un animal est mort." | | `ANIMAL_BORN` | Info | "Un bébé est né !" | # Annexes UX/UI ## 1. Expérience Utilisateur (UX) ### Vie Quotidienne (Passif) **Description UX** : L'animal vit sa vie sur la grille. Il bouge, mange, dort. **Description UI** : Sprite animé. Si problème (faim/froid), feedback visuel immédiat (changement couleur/tremblement). **Emplacement** : Case Zoo. **Intégration** : Grille principale. **Navigation** : Clic Animal (Focus). **Événements** : `ANIMAL_IDLE`, `ANIMAL_MOVE`. #### Assets - **Musiques** : Ambiance nature (oiseaux, vent). - **Sons** : Cris d'animaux aléatoires (faible volume). - **Graphiques** : Sprites Pixel Art (4 directions). - **Images** : Portraits HD pour les dialogues. - **Vidéos** : Mini-cinématique d'introduction de l'espèce (découverte). - **Animations** : Idle, Walk, Eat, Sleep. - **Couleurs** : Selon espèce + Teinte bleue (Froid) / Rouge (Chaud). - **Textes** : Bulle "Zzz" (Sommeil), "!" (Alerte). - **Formes** : Ombre portée ovale sous l'animal. ### Consultation (Consultation) **Description UX** : Le joueur clique sur l'animal pour voir ses détails (Santé, Faim, Génétique). **Description UI** : **Bottom Sheet** (Mobile) ou Panneau Latéral (Desktop) pour ne pas masquer le jeu. Jauges colorées. Arbre généalogique simplifié. **Emplacement** : Case Zoo. **Intégration** : Focus caméra sur l'animal. **Navigation** : Clic Animal -> Panneau. **Événements** : `SELECT_ANIMAL`. #### Assets - **Musiques** : Thème "Consultation" (calme, analytique). - **Sons** : Cri spécifique de l'animal sélectionné. - **Graphiques** : Portrait HD de l'animal. - **Images** : Icônes Santé (Cœur), Faim (Cuisse), Température (Thermomètre). - **Vidéos** : Boucle vidéo de l'animal en gros plan (arrière-plan panneau). - **Animations** : Jauges qui se remplissent. - **Couleurs** : Vert (>70%), Orange (30-70%), Rouge (<30%). - **Textes** : Nom, Espèce, Âge. - **Formes** : Panneau arrondi. ### Interaction (Action) **Description UX** : Le joueur peut nourrir, soigner ou déplacer l'animal. **Description UI** : Boutons d'action dans le panneau de consultation. **Emplacement** : Panneau Consultation. **Intégration** : Actions contextuelles. **Navigation** : Clic Action -> Résultat immédiat. **Événements** : `FEED_ANIMAL`, `HEAL_ANIMAL`, `MOVE_ANIMAL`. #### Assets - **Musiques** : Son "Action Réussie" (positif). - **Sons** : `eat.mp3`, `heal.mp3`. - **Graphiques** : Particules (Cœurs, Étoiles). - **Images** : Icône Nourriture (Pomme), Seringue. - **Vidéos** : Effet visuel de soin (aura verte). - **Animations** : Animal saute de joie. - **Couleurs** : Vert (Soin), Marron (Nourriture). - **Textes** : "+10 PV", "-20 Faim". - **Formes** : Cercle de sélection au sol.