Initial commit
**Motivations:** - Initialisation du versionning git pour le projet **Root causes:** - N/A (Nouveau projet) **Correctifs:** - N/A **Evolutions:** - Structure initiale du projet - Ajout du .gitignore **Pages affectées:** - Tous les fichiers
This commit is contained in:
262
docs/specs/animal_generique.md
Normal file
262
docs/specs/animal_generique.md
Normal file
@@ -0,0 +1,262 @@
|
||||
# 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
|
||||
Reference in New Issue
Block a user