# 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). - **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). ## 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 | N/A | ### 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) N/A (Concerne les bâtiments) ### Dépenses (Boutiques/Visiteurs) N/A ### Trajet Visiteurs N/A ## 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. ## 7. Progression ### Tableau des Upgrades N/A (L'animal n'a pas d'upgrade, il a de l'expérience/âge) ## 8. Logique et Interfaces ### Pseudo-code Impacts ``` 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** : N/A **É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** : N/A - **Vidéos** : N/A - **Animations** : Idle, Walk, Eat, Sleep. - **Couleurs** : Selon espèce + Teinte bleue (Froid) / Rouge (Chaud). - **Textes** : Bulle "Zzz" (Sommeil), "!" (Alerte). - **Formes** : N/A ### 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** : N/A - **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** : N/A - **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** : N/A - **Sons** : `eat.mp3`, `heal.mp3`. - **Graphiques** : Particules (Cœurs, Étoiles). - **Images** : N/A - **Vidéos** : N/A - **Animations** : Animal saute de joie. - **Couleurs** : N/A - **Textes** : "+10 PV", "-20 Faim". - **Formes** : N/A