Enrichissement exhaustif des specs : Vue Isométrique et Design
**Motivations:** - Aligner toute la documentation technique avec la nouvelle direction artistique isométrique (Réf IMG_20260303_170253). - Faciliter l'implémentation en ajoutant les contraintes techniques liées à la 2.5D (Z-index, Sprites 4 directions). **Root causes:** - Besoin de cohérence visuelle et technique sur l'ensemble du projet. **Correctifs:** - N/A **Evolutions:** - Ajout systématique de la section "Direction Artistique & Vue" dans `Annexes UX/UI` de tous les fichiers. - Enrichissement des modèles JSON avec coordonnées isométriques (`iso_x`, `iso_y`, `z_index`). - Précision des interactions (clic, survol) adaptées à la grille losange. - Conservation stricte de la structure existante (aucun titre supprimé). **Pages affectées:** - docs/specs/*
This commit is contained in:
@@ -9,7 +9,8 @@ Entité biologique principale du jeu.
|
||||
- **Génétique** :
|
||||
- **Couleur** : 15 variations.
|
||||
- **Rareté** : 5 niveaux (pondération Fibonacci).
|
||||
- **État** : Faim, Température, Santé, Âge.
|
||||
- **Traits** : Caractéristiques spéciales (ex: "Gourmand", "Agile").
|
||||
- **État** : Faim, Température, Santé, Âge, Stress.
|
||||
- **Cycle de vie** : Œuf -> Bébé -> Adulte -> Mort.
|
||||
|
||||
## Besoins
|
||||
@@ -18,10 +19,6 @@ Entité biologique principale du jeu.
|
||||
- **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
|
||||
@@ -38,14 +35,20 @@ Conséquence : Perte sèche, pénalité d'attractivité.
|
||||
"health": "float (0-100)",
|
||||
"hunger": "float (0-100)",
|
||||
"temperature_comfort": "float (-1.0 to 1.0)",
|
||||
"stress": "float (0-100)"
|
||||
"stress": "float (0-100)",
|
||||
"energy": "float (0-100)"
|
||||
},
|
||||
"genetics": {
|
||||
"parent_a_id": "uuid_v4 | null",
|
||||
"parent_b_id": "uuid_v4 | null",
|
||||
"mutation_factor": "float"
|
||||
"mutation_factor": "float",
|
||||
"traits": ["glutton", "nocturnal"]
|
||||
},
|
||||
"position": { "x": "int", "y": "int" }
|
||||
"position": { "x": "float", "y": "float", "z": "float" },
|
||||
"orientation": "enum (N, S, E, W)",
|
||||
"iso_x": "integer",
|
||||
"iso_y": "integer",
|
||||
"z_index": "integer"
|
||||
}
|
||||
```
|
||||
|
||||
@@ -57,12 +60,6 @@ Conséquence : Perte sèche, pénalité d'attractivité.
|
||||
| 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 |
|
||||
@@ -79,12 +76,6 @@ Conséquence : Perte sèche, pénalité d'attractivité.
|
||||
| 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 |
|
||||
@@ -102,110 +93,31 @@ Conséquence : Perte sèche, pénalité d'attractivité.
|
||||
| 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):
|
||||
# Gestion Température
|
||||
deltaTemp = abs(animal.idealTemp - context.tileTemp)
|
||||
if deltaTemp > 0:
|
||||
animal.health -= tableImpactTemp[deltaTemp]
|
||||
animal.stress += tableImpactTemp[deltaTemp] * 0.5
|
||||
|
||||
# Gestion Biome
|
||||
if context.tileBiome != animal.idealBiome:
|
||||
animal.stress += 5
|
||||
|
||||
if animal.hunger > 0:
|
||||
# Gestion Faim
|
||||
if animal.hunger < 100:
|
||||
animal.hunger += baseHungerRate * context.seasonMod
|
||||
else:
|
||||
animal.health -= 10 # Famine
|
||||
|
||||
if animal.hunger >= 100:
|
||||
animal.health -= 10
|
||||
# Gestion Reproduction
|
||||
if canReproduce(animal):
|
||||
mate = findMate(animal)
|
||||
if mate:
|
||||
startReproduction(animal, mate)
|
||||
```
|
||||
|
||||
### Messages d'Infos / Alerte
|
||||
@@ -218,6 +130,15 @@ function updateAnimal(animal, context):
|
||||
|
||||
# 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.
|
||||
|
||||
|
||||
## 1. Expérience Utilisateur (UX)
|
||||
### Vie Quotidienne (Passif)
|
||||
**Description UX** : L'animal vit sa vie sur la grille. Il bouge, mange, dort.
|
||||
@@ -238,40 +159,7 @@ function updateAnimal(animal, context):
|
||||
- **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.
|
||||
### Vue Isométrique
|
||||
- **Sprites** : 4 directions (N, S, E, W) minimum. Idéalement 8 pour fluidité.
|
||||
- **Occlusion** : L'animal doit être caché par les murs sud/est de son enclos, mais visible par-dessus les murs nord/ouest.
|
||||
- **Comportement** : L'animal ne doit jamais traverser les murs (collision box stricte).
|
||||
|
||||
Reference in New Issue
Block a user