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:
189
docs/specs/accueil_animaux.md
Normal file
189
docs/specs/accueil_animaux.md
Normal file
@@ -0,0 +1,189 @@
|
||||
# Spécifications : Accueil des Animaux
|
||||
|
||||
## Définition
|
||||
Zone tampon pour les nouveaux animaux arrivant dans le zoo (achats adultes ou transferts).
|
||||
|
||||
## Fonctionnalités
|
||||
- **Acclimatation** : Période obligatoire avant de pouvoir placer l'animal sur la grille active.
|
||||
- **Stockage temporaire** : Évite de devoir placer immédiatement un animal acheté si le terrain n'est pas prêt.
|
||||
|
||||
## Niveaux d'Amélioration (7 niveaux)
|
||||
- **Coût** : Progressif par palier.
|
||||
- **Effet** : Réduit le temps d'acclimatation. Améliore le potentiel reproducteur de l'animal entrant.
|
||||
- **Ratio** : 1 unité couvre 1 animal en cours d'accueil.
|
||||
|
||||
# Annexes Techniques
|
||||
|
||||
## 1. Données et États
|
||||
### Modèle de Données (JSON)
|
||||
```json
|
||||
{
|
||||
"id": "uuid",
|
||||
"type": "animal_reception",
|
||||
"level": "integer (1-7)",
|
||||
"slots": [
|
||||
{ "animal_id": "uuid", "arrival_time": "timestamp", "ready_time": "timestamp" }
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
### Caractéristiques Initiales
|
||||
| Caractéristique | Valeur Initiale (Niv 1) |
|
||||
| :--- | :--- |
|
||||
| Temps Acclimatation | 10 minutes |
|
||||
| Capacité | 1 animal |
|
||||
|
||||
### Scores Initiaux
|
||||
N/A
|
||||
|
||||
## 2. Cycles de Vie et Apparition
|
||||
### Conditions d'Apparition
|
||||
Présent au démarrage.
|
||||
|
||||
### Conditions de Disparition
|
||||
Indestructible.
|
||||
|
||||
### Hérédité
|
||||
N/A
|
||||
|
||||
## 3. Impacts Environnementaux
|
||||
### Impact Température
|
||||
Zone neutre (T° idéale simulée).
|
||||
|
||||
### Impact Milieu (Biome)
|
||||
Zone neutre.
|
||||
|
||||
### Impact Saisons
|
||||
Protégé.
|
||||
|
||||
### Impact Heure / Jour-Nuit
|
||||
N/A
|
||||
|
||||
## 4. Impacts Biologiques et Sociaux
|
||||
### Impact Reproduction
|
||||
**Bonus Repro** : Un animal passant par un accueil de haut niveau gagne un bonus temporaire de fertilité (+10% à +50%).
|
||||
|
||||
### Impact Mort
|
||||
Pas de mort possible en zone d'accueil (Stase).
|
||||
|
||||
### Impact Nourriture
|
||||
Nourri automatiquement.
|
||||
|
||||
### Impact Attractivité (Visiteurs/Animaux)
|
||||
N/A
|
||||
|
||||
### Impact Valeur
|
||||
N/A
|
||||
|
||||
## 5. Impacts Logistiques et Économiques
|
||||
### Vitesse (Camion/Nurserie/Accueil/Recherche/Labo/Visite)
|
||||
**Réduction Temps Acclimatation** :
|
||||
| Niveau | Temps Base |
|
||||
| :--- | :--- |
|
||||
| 1 | 10 min |
|
||||
| 2 | 8 min |
|
||||
| 3 | 6 min |
|
||||
| 4 | 4 min |
|
||||
| 5 | 2 min |
|
||||
| 6 | 1 min |
|
||||
| 7 | Instantané |
|
||||
|
||||
### Dépenses (Boutiques/Visiteurs)
|
||||
N/A
|
||||
|
||||
### Trajet Visiteurs
|
||||
N/A
|
||||
|
||||
## 6. Événements
|
||||
### Événements du Jeu / Carte / Zoo / Ville / Visiteur
|
||||
* **Arrivée** : Animal livré par camion.
|
||||
* **Prêt** : Animal prêt à être placé.
|
||||
|
||||
## 7. Progression
|
||||
### Tableau des Upgrades
|
||||
| Niveau | Coût (Pièces) | Capacité | Temps Acclimatation | Temps Construction |
|
||||
| :--- | :--- | :--- | :--- | :--- |
|
||||
| 1 | 100 | 1 | 10 min | 0s |
|
||||
| 2 | 200 | 2 | 8 min | 0s |
|
||||
| 3 | 400 | 3 | 6 min | 0s |
|
||||
| 4 | 800 | 4 | 4 min | 0s |
|
||||
| 5 | 1600 | 5 | 2 min | 0s |
|
||||
| 6 | 3200 | 6 | 1 min | 0s |
|
||||
| 7 | 6400 | 7 | 0 min | 0s |
|
||||
|
||||
## 8. Logique et Interfaces
|
||||
### Pseudo-code Impacts
|
||||
```
|
||||
function updateReception(center):
|
||||
for slot in center.slots:
|
||||
if currentTime >= slot.ready_time:
|
||||
notifyPlayer("ANIMAL_READY", slot.animal_id)
|
||||
```
|
||||
|
||||
### Messages d'Infos / Alerte
|
||||
| ID | Niveau | Message |
|
||||
| :--- | :--- | :--- |
|
||||
| `ANIMAL_READY` | Info | "Un nouvel animal est prêt à rejoindre le zoo !" |
|
||||
| `RECEPTION_FULL` | Warning | "Accueil saturé, impossible d'acheter." |
|
||||
|
||||
# Annexes UX/UI
|
||||
|
||||
## 1. Expérience Utilisateur (UX)
|
||||
### Arrivée Animal (Passif)
|
||||
**Description UX** : Le camion décharge un animal. Il apparaît dans l'Accueil en mode "Attente".
|
||||
**Description UI** : Notification "Livraison effectuée". L'icône de l'Accueil change (ex: porte fermée -> porte avec caisse devant).
|
||||
**Notification Push** : "Votre [Animal] est arrivé à l'accueil !" envoyée si le joueur est hors ligne.
|
||||
**Emplacement** : Case Accueil.
|
||||
**Intégration** : Suite de l'action Camion.
|
||||
**Navigation** : N/A
|
||||
**Événements** : `DELIVERY_COMPLETE`.
|
||||
|
||||
#### Assets
|
||||
- **Musiques** : N/A
|
||||
- **Sons** : `truck_door.mp3`, `crate_drop.mp3`.
|
||||
- **Graphiques** : Sprite Caisse en bois.
|
||||
- **Images** : N/A
|
||||
- **Vidéos** : N/A
|
||||
- **Animations** : Camion qui repart.
|
||||
- **Couleurs** : Marron (Caisse).
|
||||
- **Textes** : N/A
|
||||
- **Formes** : N/A
|
||||
|
||||
### Consultation & Acclimatation (Consultation)
|
||||
**Description UX** : Le joueur vérifie le temps restant avant de pouvoir placer l'animal.
|
||||
**Description UI** : **Bottom Sheet** listant les animaux en transit. Barre de progression "Acclimatation" pour chacun.
|
||||
**Emplacement** : Modal Accueil.
|
||||
**Intégration** : Liste verticale.
|
||||
**Navigation** : Clic Accueil -> Modal.
|
||||
**Événements** : `OPEN_RECEPTION`.
|
||||
|
||||
#### Assets
|
||||
- **Musiques** : N/A
|
||||
- **Sons** : `ui_open.mp3`
|
||||
- **Graphiques** : Style "Quarantaine" ou "Étable propre".
|
||||
- **Images** : Portrait animal.
|
||||
- **Vidéos** : N/A
|
||||
- **Animations** : Barre de progression qui avance.
|
||||
- **Couleurs** : Orange (En cours), Vert (Prêt).
|
||||
- **Textes** : "Prêt dans X min".
|
||||
- **Formes** : Barres arrondies.
|
||||
|
||||
### Transfert vers Zoo (Action)
|
||||
**Description UX** : L'animal est prêt. Le joueur le glisse vers le zoo.
|
||||
**Description UI** : Bouton "Placer" ou Drag & Drop depuis la liste.
|
||||
**Alternative** : Tap to Select -> Tap to Place.
|
||||
**Emplacement** : Modal Accueil -> Carte Zoo.
|
||||
**Intégration** : Mode placement (comme Nurserie).
|
||||
**Navigation** : Drag -> Drop.
|
||||
**Événements** : `PLACE_ANIMAL`.
|
||||
|
||||
#### Assets
|
||||
- **Musiques** : N/A
|
||||
- **Sons** : `animal_happy.mp3` (cri de l'animal).
|
||||
- **Graphiques** : Sprite Animal.
|
||||
- **Images** : N/A
|
||||
- **Vidéos** : N/A
|
||||
- **Animations** : Animal qui saute de joie au placement.
|
||||
- **Couleurs** : N/A
|
||||
- **Textes** : N/A
|
||||
- **Formes** : N/A
|
||||
40
docs/specs/achat_upgrade_boutique.md
Normal file
40
docs/specs/achat_upgrade_boutique.md
Normal file
@@ -0,0 +1,40 @@
|
||||
# Spécifications : Achat et Upgrade des Boutiques
|
||||
|
||||
## Construction
|
||||
- Peut être construite sur n'importe quelle case vide.
|
||||
|
||||
## Upgrade (7 Niveaux)
|
||||
- **Attrait** : Attire les visiteurs de plus loin sur la grille.
|
||||
- **Revenu** : Augmente le montant dépensé par chaque visiteur qui passe sur la case.
|
||||
- **Capacité** : Augmente le nombre de visiteurs pouvant interagir simultanément.
|
||||
|
||||
# Annexes Techniques
|
||||
|
||||
## 1. Données et États
|
||||
Voir `boutique.md` pour le modèle de données complet.
|
||||
|
||||
## 7. Progression
|
||||
### Tableau des Upgrades
|
||||
Voir `boutique.md` pour le tableau détaillé des coûts et effets par niveau.
|
||||
|
||||
# Annexes UX/UI
|
||||
|
||||
## 1. Expérience Utilisateur (UX)
|
||||
### Rénovation (Action)
|
||||
**Description UX** : Améliorer la boutique change son apparence et ses stats.
|
||||
**Description UI** : Le sprite du bâtiment change (devient plus grand/beau).
|
||||
**Emplacement** : Case Boutique.
|
||||
**Intégration** : Visuel immédiat.
|
||||
**Navigation** : Upgrade -> Validation.
|
||||
**Événements** : `UPGRADE_SHOP_VISUAL`.
|
||||
|
||||
#### Assets
|
||||
- **Musiques** : N/A
|
||||
- **Sons** : `construction_finish.mp3`.
|
||||
- **Graphiques** : Sprites Boutiques Niv 1-7.
|
||||
- **Images** : N/A
|
||||
- **Vidéos** : N/A
|
||||
- **Animations** : Effet de "pop" ou échafaudage rapide.
|
||||
- **Couleurs** : N/A
|
||||
- **Textes** : N/A
|
||||
- **Formes** : N/A
|
||||
62
docs/specs/achat_upgrade_camion.md
Normal file
62
docs/specs/achat_upgrade_camion.md
Normal file
@@ -0,0 +1,62 @@
|
||||
# Spécifications : Achat et Upgrade des Camions
|
||||
|
||||
## Achat
|
||||
- Le joueur possède un camion par défaut.
|
||||
- Possibilité d'acheter des camions supplémentaires (si le design autorise plusieurs flottes).
|
||||
|
||||
## Upgrade (7 Niveaux)
|
||||
- **Niveau 1** : Camion standard.
|
||||
- **Niveau 2-7** :
|
||||
- **Vitesse** : Augmente la vitesse de déplacement sur la carte du monde.
|
||||
- **Confort** : Réduit la perte de santé/stress des animaux transportés.
|
||||
- **Capacité** : (Optionnel) Transport de plusieurs animaux ? *Actuellement 1 unité = 1 camion.*
|
||||
|
||||
# Annexes Techniques
|
||||
|
||||
## 1. Données et États
|
||||
Voir `camion.md` pour le modèle de données complet.
|
||||
|
||||
## 7. Progression
|
||||
### Tableau des Upgrades
|
||||
Voir `camion.md` pour le tableau détaillé des coûts et effets par niveau.
|
||||
|
||||
# Annexes UX/UI
|
||||
|
||||
## 1. Expérience Utilisateur (UX)
|
||||
### Garage / Atelier (Consultation)
|
||||
**Description UX** : Le joueur gère sa flotte de camions.
|
||||
**Description UI** : Liste des camions avec stats (Vitesse, Confort). Bouton "Améliorer".
|
||||
**Emplacement** : Bâtiment Garage (si existe) ou Menu Transport.
|
||||
**Intégration** : Modal.
|
||||
**Navigation** : Menu -> Transport.
|
||||
**Événements** : `OPEN_GARAGE`.
|
||||
|
||||
#### Assets
|
||||
- **Musiques** : N/A
|
||||
- **Sons** : `wrench.mp3` (bruit d'outil).
|
||||
- **Graphiques** : Fond garage.
|
||||
- **Images** : Sprites Camions évolutifs (Vieux tacot -> Camion futuriste).
|
||||
- **Vidéos** : N/A
|
||||
- **Animations** : N/A
|
||||
- **Couleurs** : Gris, Métal.
|
||||
- **Textes** : "Niveau X".
|
||||
- **Formes** : N/A
|
||||
|
||||
### Customisation (Cosmétique)
|
||||
**Description UX** : Changer la couleur du camion.
|
||||
**Description UI** : Palette de couleurs.
|
||||
**Emplacement** : Garage.
|
||||
**Intégration** : Sélecteur.
|
||||
**Navigation** : Clic Couleur -> Appliquer.
|
||||
**Événements** : `PAINT_TRUCK`.
|
||||
|
||||
#### Assets
|
||||
- **Musiques** : N/A
|
||||
- **Sons** : `spray.mp3`.
|
||||
- **Graphiques** : N/A
|
||||
- **Images** : N/A
|
||||
- **Vidéos** : N/A
|
||||
- **Animations** : Camion change de couleur.
|
||||
- **Couleurs** : Palette 16 couleurs.
|
||||
- **Textes** : N/A
|
||||
- **Formes** : N/A
|
||||
56
docs/specs/achat_upgrade_case.md
Normal file
56
docs/specs/achat_upgrade_case.md
Normal file
@@ -0,0 +1,56 @@
|
||||
# Spécifications : Achat et Upgrade des Cases
|
||||
|
||||
## Construction
|
||||
- Sur une case vide de type "Terrain", le joueur peut acheter un bâtiment.
|
||||
- Le coût dépend du type de bâtiment.
|
||||
|
||||
## Types Constructibles
|
||||
- Nurserie
|
||||
- Boutique
|
||||
- (Les autres bâtiments comme Billeterie/Recherche sont souvent uniques et upgradables, mais on peut imaginer en construire d'autres si le design le permet).
|
||||
|
||||
## Upgrade de Case (Terrain)
|
||||
- **Changement de Milieu** : Payer pour changer la couleur (Biome) d'une case.
|
||||
- **Changement de Température** : Payer pour installer un régulateur thermique sur une case.
|
||||
|
||||
# Annexes Techniques
|
||||
|
||||
## 1. Données et États
|
||||
Voir `case_zoo.md` et `achat_upgrade_generique.md`.
|
||||
|
||||
## 7. Progression
|
||||
### Tableau des Upgrades
|
||||
**Changement de Milieu** :
|
||||
| Niveau | Coût | Précision | Temps |
|
||||
| :--- | :--- | :--- | :--- |
|
||||
| 1 | 500 | Changement vers biome adjacent | 0s |
|
||||
| 7 | 5000 | Changement vers n'importe quel biome | 0s |
|
||||
|
||||
**Régulateur Thermique** :
|
||||
| Niveau | Coût | Plage Réglage | Temps |
|
||||
| :--- | :--- | :--- | :--- |
|
||||
| 1 | 200 | +/- 5°C | 0s |
|
||||
| 7 | 2000 | +/- 50°C | 0s |
|
||||
|
||||
# Annexes UX/UI
|
||||
|
||||
## 1. Expérience Utilisateur (UX)
|
||||
### Modification Terrain (Action)
|
||||
**Description UX** : Le joueur sélectionne une case et choisit "Modifier Biome" ou "Température".
|
||||
**Description UI** : Palette de couleurs (Biomes) ou Slider (Température).
|
||||
**Mode Peinture** : Permet de glisser le doigt pour appliquer le biome/température à plusieurs cases adjacentes rapidement.
|
||||
**Emplacement** : Menu Contextuel Case.
|
||||
**Intégration** : Outil pinceau ou slider.
|
||||
**Navigation** : Clic Case -> Outil -> Appliquer.
|
||||
**Événements** : `TERRAFORM_CASE`.
|
||||
|
||||
#### Assets
|
||||
- **Musiques** : N/A
|
||||
- **Sons** : `digging.mp3` (Biome), `hissing_gas.mp3` (Température).
|
||||
- **Graphiques** : Icône Pelle, Thermomètre.
|
||||
- **Images** : Textures sol (Herbe, Sable, Neige).
|
||||
- **Vidéos** : N/A
|
||||
- **Animations** : Transition de couleur (Fade) sur la case.
|
||||
- **Couleurs** : Vert, Jaune, Blanc.
|
||||
- **Textes** : "Coût : X".
|
||||
- **Formes** : N/A
|
||||
44
docs/specs/achat_upgrade_case_zoo.md
Normal file
44
docs/specs/achat_upgrade_case_zoo.md
Normal file
@@ -0,0 +1,44 @@
|
||||
# Spécifications : Achat et Upgrade des Cases du Zoo (Agrandissement)
|
||||
|
||||
## Agrandissement du Zoo
|
||||
- **Action** : Acheter une nouvelle parcelle de terrain adjacente à la grille existante.
|
||||
- **Coût** : Très élevé, progressif selon la taille actuelle du zoo.
|
||||
- **Contenu** : La nouvelle case arrive avec un biome par défaut (selon sa position géographique Prairie/Océan/Montagne) et vide.
|
||||
|
||||
# Annexes Techniques
|
||||
|
||||
## 1. Données et États
|
||||
### Modèle de Données (JSON)
|
||||
Action sur l'objet `Zoo` (dimensions).
|
||||
|
||||
### Caractéristiques Initiales
|
||||
N/A
|
||||
|
||||
## 7. Progression
|
||||
### Tableau des Upgrades (Agrandissement)
|
||||
| Extension | Coût (Pièces) | Gain |
|
||||
| :--- | :--- | :--- |
|
||||
| +1 Colonne | `1000 * (LargeurActuelle^2)` | +Hauteur cases |
|
||||
| +1 Ligne | `1000 * (HauteurActuelle^2)` | +Largeur cases |
|
||||
|
||||
# Annexes UX/UI
|
||||
|
||||
## 1. Expérience Utilisateur (UX)
|
||||
### Achat Parcelle (Action)
|
||||
**Description UX** : Le joueur clique sur une zone "Hors Limites" adjacente pour l'acheter.
|
||||
**Description UI** : Zone grisée ou avec panneau "À Vendre". Au survol, prix affiché.
|
||||
**Emplacement** : Bords de la Carte Zoo.
|
||||
**Intégration** : Grille étendue.
|
||||
**Navigation** : Clic Zone Grisée -> Confirmer Achat.
|
||||
**Événements** : `EXPAND_ZOO`.
|
||||
|
||||
#### Assets
|
||||
- **Musiques** : N/A
|
||||
- **Sons** : `land_buy.mp3`.
|
||||
- **Graphiques** : Panneau "For Sale".
|
||||
- **Images** : Texture herbe (cachée par brouillard).
|
||||
- **Vidéos** : N/A
|
||||
- **Animations** : Brouillard se dissipe, herbe apparaît.
|
||||
- **Couleurs** : Gris (Inaccessible) -> Vert (Accessible).
|
||||
- **Textes** : "Acheter Terrain (X Pièces)".
|
||||
- **Formes** : Carré.
|
||||
36
docs/specs/achat_upgrade_centre_recherche.md
Normal file
36
docs/specs/achat_upgrade_centre_recherche.md
Normal file
@@ -0,0 +1,36 @@
|
||||
# Spécifications : Achat et Upgrade des Centres de Recherche
|
||||
|
||||
## Upgrade (7 Niveaux)
|
||||
- **Production** : Augmente le nombre d'Unités de Recherche générées par heure.
|
||||
- **Portée** : Augmente le rayon de visibilité sur les offres des autres zoos (voir les détails des animaux lointains).
|
||||
|
||||
# Annexes Techniques
|
||||
|
||||
## 1. Données et États
|
||||
Voir `centre_recherche.md` pour le modèle de données complet.
|
||||
|
||||
## 7. Progression
|
||||
### Tableau des Upgrades
|
||||
Voir `centre_recherche.md` pour le tableau détaillé des coûts et effets par niveau.
|
||||
|
||||
# Annexes UX/UI
|
||||
|
||||
## 1. Expérience Utilisateur (UX)
|
||||
### Arbre Technologique (Consultation)
|
||||
**Description UX** : Visualiser les paliers de recherche.
|
||||
**Description UI** : Arbre vertical ou liste de niveaux avec cadenas (verrouillé/déverrouillé).
|
||||
**Emplacement** : Modal Recherche.
|
||||
**Intégration** : Onglet "Améliorations".
|
||||
**Navigation** : Clic Recherche -> Onglet Upgrade.
|
||||
**Événements** : `VIEW_TECH_TREE`.
|
||||
|
||||
#### Assets
|
||||
- **Musiques** : N/A
|
||||
- **Sons** : N/A
|
||||
- **Graphiques** : Lignes de connexion.
|
||||
- **Images** : Icônes Radar, Fiole.
|
||||
- **Vidéos** : N/A
|
||||
- **Animations** : N/A
|
||||
- **Couleurs** : Bleu (Science).
|
||||
- **Textes** : "Niveau Suivant : Portée +10km".
|
||||
- **Formes** : N/A
|
||||
127
docs/specs/achat_upgrade_generique.md
Normal file
127
docs/specs/achat_upgrade_generique.md
Normal file
@@ -0,0 +1,127 @@
|
||||
# Spécifications : Achat et Upgrade (Générique)
|
||||
|
||||
## Mécanique
|
||||
- **Coût** : Payé en Pièces (ou Unités de Recherche pour la Carte du Monde).
|
||||
- **Progression** : 7 Niveaux pour la plupart des éléments.
|
||||
- **Formule de Coût** : `Coût_Niveau_N = Coût_Base * Multiplicateur^(N-1)`.
|
||||
|
||||
## Validation
|
||||
- L'achat est instantané si les fonds sont disponibles.
|
||||
- L'effet est immédiat (pas de temps de construction, sauf si spécifié autrement).
|
||||
|
||||
# Annexes Techniques
|
||||
|
||||
## 1. Données et États
|
||||
### Modèle de Données (JSON)
|
||||
N/A
|
||||
|
||||
### Caractéristiques Initiales
|
||||
N/A
|
||||
|
||||
### Scores Initiaux
|
||||
N/A
|
||||
|
||||
## 2. Cycles de Vie et Apparition
|
||||
### Conditions d'Apparition
|
||||
N/A
|
||||
|
||||
### Conditions de Disparition
|
||||
N/A
|
||||
|
||||
### Hérédité
|
||||
N/A
|
||||
|
||||
## 3. Impacts Environnementaux
|
||||
### Impact Température
|
||||
N/A
|
||||
|
||||
### Impact Milieu (Biome)
|
||||
N/A
|
||||
|
||||
### Impact Saisons
|
||||
N/A
|
||||
|
||||
### Impact Heure / Jour-Nuit
|
||||
N/A
|
||||
|
||||
## 4. Impacts Biologiques et Sociaux
|
||||
### Impact Reproduction
|
||||
N/A
|
||||
|
||||
### Impact Mort
|
||||
N/A
|
||||
|
||||
### Impact Nourriture
|
||||
N/A
|
||||
|
||||
### Impact Attractivité (Visiteurs/Animaux)
|
||||
N/A
|
||||
|
||||
### Impact Valeur
|
||||
N/A
|
||||
|
||||
## 5. Impacts Logistiques et Économiques
|
||||
### Vitesse (Camion/Nurserie/Accueil/Recherche/Labo/Visite)
|
||||
N/A
|
||||
|
||||
### Dépenses (Boutiques/Visiteurs)
|
||||
N/A
|
||||
|
||||
### Trajet Visiteurs
|
||||
N/A
|
||||
|
||||
## 6. Événements
|
||||
### Événements du Jeu / Carte / Zoo / Ville / Visiteur
|
||||
N/A
|
||||
|
||||
## 7. Progression
|
||||
### Tableau des Upgrades
|
||||
N/A
|
||||
|
||||
## 8. Logique et Interfaces
|
||||
### Pseudo-code Impacts
|
||||
N/A
|
||||
|
||||
### Messages d'Infos / Alerte
|
||||
N/A
|
||||
|
||||
# Annexes UX/UI
|
||||
|
||||
## 1. Expérience Utilisateur (UX)
|
||||
### Interface d'Achat (Consultation)
|
||||
**Description UX** : Le joueur ouvre le menu de construction ou d'upgrade.
|
||||
**Description UI** : Grille d'éléments achetables. Prix affiché clairement. Grisé si trop cher.
|
||||
**Emplacement** : HUD Bas.
|
||||
**Intégration** : Menu déroulant ou fixe.
|
||||
**Navigation** : Clic Catégorie -> Liste Objets.
|
||||
**Événements** : `OPEN_SHOP_MENU`.
|
||||
|
||||
#### Assets
|
||||
- **Musiques** : N/A
|
||||
- **Sons** : `ui_hover.mp3`.
|
||||
- **Graphiques** : Icônes Bâtiments.
|
||||
- **Images** : N/A
|
||||
- **Vidéos** : N/A
|
||||
- **Animations** : N/A
|
||||
- **Couleurs** : Fond sombre, Texte clair.
|
||||
- **Textes** : Prix, Nom.
|
||||
- **Formes** : Cartes carrées.
|
||||
|
||||
### Confirmation Achat (Action)
|
||||
**Description UX** : Le joueur clique pour acheter.
|
||||
**Description UI** : Feedback immédiat (son + animation pièces déduites).
|
||||
**Emplacement** : HUD.
|
||||
**Intégration** : Immédiat.
|
||||
**Navigation** : Clic Achat.
|
||||
**Événements** : `BUY_ITEM`.
|
||||
|
||||
#### Assets
|
||||
- **Musiques** : N/A
|
||||
- **Sons** : `buy_success.mp3`.
|
||||
- **Graphiques** : N/A
|
||||
- **Images** : N/A
|
||||
- **Vidéos** : N/A
|
||||
- **Animations** : Compteur pièces descend.
|
||||
- **Couleurs** : Rouge (déduction).
|
||||
- **Textes** : "-500".
|
||||
- **Formes** : N/A
|
||||
40
docs/specs/achat_upgrade_nurserie.md
Normal file
40
docs/specs/achat_upgrade_nurserie.md
Normal file
@@ -0,0 +1,40 @@
|
||||
# Spécifications : Achat et Upgrade des Nurseries
|
||||
|
||||
## Construction
|
||||
- Nécessaire pour faire éclore plus d'œufs simultanément.
|
||||
|
||||
## Upgrade (7 Niveaux)
|
||||
- **Incubation** : Réduit le temps d'éclosion.
|
||||
- **Soins** : Augmente les chances de survie des bébés (réduit l'impact des écarts de température).
|
||||
- **Génétique** : (Niveaux élevés) Augmente légèrement la probabilité d'obtenir une rareté supérieure.
|
||||
|
||||
# Annexes Techniques
|
||||
|
||||
## 1. Données et États
|
||||
Voir `nurserie.md` pour le modèle de données complet.
|
||||
|
||||
## 7. Progression
|
||||
### Tableau des Upgrades
|
||||
Voir `nurserie.md` pour le tableau détaillé des coûts et effets par niveau.
|
||||
|
||||
# Annexes UX/UI
|
||||
|
||||
## 1. Expérience Utilisateur (UX)
|
||||
### Extension (Action)
|
||||
**Description UX** : Ajouter des slots d'œufs.
|
||||
**Description UI** : La grille de slots s'agrandit (nouvelles cases déverrouillées).
|
||||
**Emplacement** : Modal Nurserie.
|
||||
**Intégration** : UI Grid.
|
||||
**Navigation** : N/A
|
||||
**Événements** : `UNLOCK_SLOT`.
|
||||
|
||||
#### Assets
|
||||
- **Musiques** : N/A
|
||||
- **Sons** : `unlock.mp3`.
|
||||
- **Graphiques** : Cadenas qui s'ouvre.
|
||||
- **Images** : N/A
|
||||
- **Vidéos** : N/A
|
||||
- **Animations** : Slot qui s'illumine.
|
||||
- **Couleurs** : N/A
|
||||
- **Textes** : "Slot débloqué".
|
||||
- **Formes** : N/A
|
||||
55
docs/specs/agrandissement_carte.md
Normal file
55
docs/specs/agrandissement_carte.md
Normal file
@@ -0,0 +1,55 @@
|
||||
# Spécifications : Agrandissement de la Carte du Monde
|
||||
|
||||
## Concept
|
||||
La carte du monde est vaste, mais le joueur ne voit initialement qu'une petite zone autour de son zoo.
|
||||
|
||||
## Mécanique
|
||||
- **Coût** : Ne se paie pas en pièces, mais en **Unités de Recherche** produites par les Centres de Recherche.
|
||||
- **Palier** : Chaque niveau d'agrandissement coûte plus cher.
|
||||
- **Effet** : Dézoome la carte / Débloque le brouillard de guerre, révélant de nouveaux zoos, villes et laboratoires plus lointains.
|
||||
- **Intérêt** : Accès à plus de marchés (achat/vente), plus de villes (visiteurs potentiels).
|
||||
|
||||
# Annexes Techniques
|
||||
|
||||
## 1. Données et États
|
||||
### Modèle de Données (JSON)
|
||||
Propriété `view_radius` sur `Zoo` ou `Player`.
|
||||
|
||||
### Caractéristiques Initiales
|
||||
| Caractéristique | Valeur Initiale |
|
||||
| :--- | :--- |
|
||||
| Rayon Vue | 100 km |
|
||||
|
||||
## 7. Progression
|
||||
### Tableau des Upgrades
|
||||
| Niveau | Coût (Points Recherche) | Rayon Vue |
|
||||
| :--- | :--- | :--- |
|
||||
| 1 | 0 | 100 km |
|
||||
| 2 | 100 | 200 km |
|
||||
| 3 | 250 | 350 km |
|
||||
| 4 | 500 | 550 km |
|
||||
| 5 | 1000 | 800 km |
|
||||
| 6 | 2500 | 1200 km |
|
||||
| 7 | 5000 | 2000 km |
|
||||
|
||||
# Annexes UX/UI
|
||||
|
||||
## 1. Expérience Utilisateur (UX)
|
||||
### Découverte (Passif/Action)
|
||||
**Description UX** : En payant des points de recherche, le brouillard de guerre recule sur la carte du monde.
|
||||
**Description UI** : Animation de nuages qui s'écartent. De nouvelles icônes (Villes, Zoos) apparaissent.
|
||||
**Emplacement** : Carte Monde.
|
||||
**Intégration** : Vue globale.
|
||||
**Navigation** : Bouton "Explorer" (HUD) -> Animation.
|
||||
**Événements** : `EXPLORE_WORLD`.
|
||||
|
||||
#### Assets
|
||||
- **Musiques** : Jingle découverte (style Zelda/Civ).
|
||||
- **Sons** : `wind_whoosh.mp3`.
|
||||
- **Graphiques** : Nuages (Brouillard de guerre).
|
||||
- **Images** : N/A
|
||||
- **Vidéos** : N/A
|
||||
- **Animations** : Fade out des nuages. Scale up de la vue (Dezoom).
|
||||
- **Couleurs** : Blanc/Gris (Nuages).
|
||||
- **Textes** : "Nouvelle zone découverte !".
|
||||
- **Formes** : Cercle (Rayon de vue).
|
||||
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
|
||||
126
docs/specs/attractivite_interne_zoo.md
Normal file
126
docs/specs/attractivite_interne_zoo.md
Normal file
@@ -0,0 +1,126 @@
|
||||
# Spécifications : Attractivité dans le Zoo sur les Visiteurs
|
||||
|
||||
## Définition
|
||||
Comportement des visiteurs une fois qu'ils sont entrés dans l'enceinte du zoo.
|
||||
|
||||
## Mécanique de Déplacement
|
||||
Les visiteurs ne se déplacent pas au hasard. Ils ont des "cibles" d'intérêt.
|
||||
- **Cibles Prioritaires** : Animaux Rares > Animaux Communs > Boutiques.
|
||||
- **Algorithme** : À chaque intersection ou fin d'action, le visiteur évalue l'attrait des cases environnantes.
|
||||
|
||||
## Facteurs de Rétention
|
||||
- **Diversité** : Voir des animaux différents prolonge la visite.
|
||||
- **Confort** : La présence de bancs, poubelles et boutiques augmente le temps de séjour.
|
||||
- **Départ** : Si l'attrait local tombe sous un seuil (ennui) ou si la journée finit, le visiteur se dirige vers la sortie (Billeterie).
|
||||
|
||||
# Annexes Techniques
|
||||
|
||||
## 1. Données et États
|
||||
### Modèle de Données (JSON)
|
||||
Propriétés de `Visiteur`.
|
||||
|
||||
### Caractéristiques Initiales
|
||||
N/A
|
||||
|
||||
### Scores Initiaux
|
||||
N/A
|
||||
|
||||
## 2. Cycles de Vie et Apparition
|
||||
### Conditions d'Apparition
|
||||
N/A
|
||||
|
||||
### Conditions de Disparition
|
||||
N/A
|
||||
|
||||
### Hérédité
|
||||
N/A
|
||||
|
||||
## 3. Impacts Environnementaux
|
||||
### Impact Température
|
||||
**Canicule/Grand Froid** : Réduit le temps de séjour (-30%).
|
||||
|
||||
### Impact Milieu (Biome)
|
||||
N/A
|
||||
|
||||
### Impact Saisons
|
||||
N/A
|
||||
|
||||
### Impact Heure / Jour-Nuit
|
||||
N/A
|
||||
|
||||
## 4. Impacts Biologiques et Sociaux
|
||||
### Impact Reproduction
|
||||
N/A
|
||||
|
||||
### Impact Mort
|
||||
Voir `visiteur.md` (Départ immédiat).
|
||||
|
||||
### Impact Nourriture
|
||||
N/A
|
||||
|
||||
### Impact Attractivité (Visiteurs/Animaux)
|
||||
**Poids des Cibles** :
|
||||
| Type Cible | Poids |
|
||||
| :--- | :--- |
|
||||
| Animal Rareté 1 | 10 |
|
||||
| Animal Rareté 5 | 100 |
|
||||
| Boutique | 50 |
|
||||
| Banc (si fatigué) | 200 |
|
||||
|
||||
### Impact Valeur
|
||||
N/A
|
||||
|
||||
## 5. Impacts Logistiques et Économiques
|
||||
### Vitesse (Camion/Nurserie/Accueil/Recherche/Labo/Visite)
|
||||
N/A
|
||||
|
||||
### Dépenses (Boutiques/Visiteurs)
|
||||
N/A
|
||||
|
||||
### Trajet Visiteurs
|
||||
Algorithme de choix de cible pondéré.
|
||||
|
||||
## 6. Événements
|
||||
### Événements du Jeu / Carte / Zoo / Ville / Visiteur
|
||||
N/A
|
||||
|
||||
## 7. Progression
|
||||
### Tableau des Upgrades
|
||||
N/A
|
||||
|
||||
## 8. Logique et Interfaces
|
||||
### Pseudo-code Impacts
|
||||
```
|
||||
function chooseNextTarget(visitor, zoo):
|
||||
candidates = getAllPOIs(zoo)
|
||||
scoredCandidates = candidates.map(c => {
|
||||
score = c.attractiveness / distance(visitor, c)
|
||||
return { target: c, score: score }
|
||||
})
|
||||
return weightedRandomSelect(scoredCandidates)
|
||||
```
|
||||
|
||||
### Messages d'Infos / Alerte
|
||||
N/A
|
||||
|
||||
# Annexes UX/UI
|
||||
|
||||
## 1. Expérience Utilisateur (UX)
|
||||
### Foule (Passif)
|
||||
**Description UX** : Les visiteurs s'agglutinent devant les animaux les plus intéressants.
|
||||
**Description UI** : Densité de sprites visiteurs plus élevée autour des cases "Stars".
|
||||
**Emplacement** : Grille Zoo.
|
||||
**Intégration** : Comportement IA.
|
||||
**Navigation** : N/A
|
||||
**Événements** : `CROWD_GATHER`.
|
||||
|
||||
#### Assets
|
||||
- **Musiques** : N/A
|
||||
- **Sons** : Rumeur de foule (volume variable selon densité).
|
||||
- **Graphiques** : N/A
|
||||
- **Images** : N/A
|
||||
- **Vidéos** : N/A
|
||||
- **Animations** : Applaudissements, Photos.
|
||||
- **Couleurs** : N/A
|
||||
- **Textes** : N/A
|
||||
- **Formes** : N/A
|
||||
129
docs/specs/attractivite_zoo_sur_ville.md
Normal file
129
docs/specs/attractivite_zoo_sur_ville.md
Normal file
@@ -0,0 +1,129 @@
|
||||
# Spécifications : Attractivité des Zoos sur les Visiteurs des Villes
|
||||
|
||||
## Définition
|
||||
Capacité d'un zoo à faire déplacer des visiteurs depuis une ville située sur la Carte du Monde.
|
||||
|
||||
## Formule d'Attraction
|
||||
L'attraction est calculée pour chaque couple (Ville, Zoo).
|
||||
`Attraction = (Score_Reputation_Zoo / Distance^2) * Facteur_Ville`
|
||||
|
||||
## Facteurs d'Influence
|
||||
1. **Score de Réputation** : Plus le zoo est prestigieux, plus il attire de loin.
|
||||
2. **Distance** : La proximité géographique sur la carte du monde est déterminante.
|
||||
3. **Concurrence** : Les visiteurs se répartissent entre les zoos attractifs.
|
||||
|
||||
## Impact
|
||||
- Détermine le flux entrant quotidien de visiteurs (le nombre de personnes qui passent la porte de la Billeterie).
|
||||
- Si l'attraction est nulle, aucun visiteur ne vient.
|
||||
|
||||
# Annexes Techniques
|
||||
|
||||
## 1. Données et États
|
||||
### Modèle de Données (JSON)
|
||||
Calculé à la volée ou mis en cache.
|
||||
```json
|
||||
{
|
||||
"zoo_id": "uuid",
|
||||
"city_id": "uuid",
|
||||
"attraction_score": "float"
|
||||
}
|
||||
```
|
||||
|
||||
### Caractéristiques Initiales
|
||||
N/A
|
||||
|
||||
### Scores Initiaux
|
||||
N/A
|
||||
|
||||
## 2. Cycles de Vie et Apparition
|
||||
### Conditions d'Apparition
|
||||
N/A
|
||||
|
||||
### Conditions de Disparition
|
||||
N/A
|
||||
|
||||
### Hérédité
|
||||
N/A
|
||||
|
||||
## 3. Impacts Environnementaux
|
||||
### Impact Température
|
||||
N/A
|
||||
|
||||
### Impact Milieu (Biome)
|
||||
N/A
|
||||
|
||||
### Impact Saisons
|
||||
**Hiver** : Réduit la volonté de voyager (-20% rayon d'attraction).
|
||||
|
||||
### Impact Heure / Jour-Nuit
|
||||
N/A
|
||||
|
||||
## 4. Impacts Biologiques et Sociaux
|
||||
### Impact Reproduction
|
||||
N/A
|
||||
|
||||
### Impact Mort
|
||||
N/A
|
||||
|
||||
### Impact Nourriture
|
||||
N/A
|
||||
|
||||
### Impact Attractivité (Visiteurs/Animaux)
|
||||
Voir formule.
|
||||
|
||||
### Impact Valeur
|
||||
N/A
|
||||
|
||||
## 5. Impacts Logistiques et Économiques
|
||||
### Vitesse (Camion/Nurserie/Accueil/Recherche/Labo/Visite)
|
||||
N/A
|
||||
|
||||
### Dépenses (Boutiques/Visiteurs)
|
||||
N/A
|
||||
|
||||
### Trajet Visiteurs
|
||||
N/A
|
||||
|
||||
## 6. Événements
|
||||
### Événements du Jeu / Carte / Zoo / Ville / Visiteur
|
||||
N/A
|
||||
|
||||
## 7. Progression
|
||||
### Tableau des Upgrades
|
||||
N/A
|
||||
|
||||
## 8. Logique et Interfaces
|
||||
### Pseudo-code Impacts
|
||||
```
|
||||
function calculateDailyVisitors(zoo, city):
|
||||
dist = distance(zoo.pos, city.pos)
|
||||
if dist > zoo.maxAttractionRange: return 0
|
||||
|
||||
baseFlow = city.population * (zoo.reputation / (dist * dist))
|
||||
return baseFlow * seasonMod
|
||||
```
|
||||
|
||||
### Messages d'Infos / Alerte
|
||||
N/A
|
||||
|
||||
# Annexes UX/UI
|
||||
|
||||
## 1. Expérience Utilisateur (UX)
|
||||
### Visualisation Flux (Consultation)
|
||||
**Description UX** : Le joueur regarde la carte du monde pour voir d'où viennent ses visiteurs.
|
||||
**Description UI** : Lignes pointillées mouvantes reliant les villes au zoo. Épaisseur = Volume flux. **Particules** : Petits points ou voitures circulant sur les lignes pour donner une sensation de vie.
|
||||
**Emplacement** : Carte Monde.
|
||||
**Intégration** : Overlay.
|
||||
**Navigation** : N/A
|
||||
**Événements** : `VIEW_FLOW`.
|
||||
|
||||
#### Assets
|
||||
- **Musiques** : N/A
|
||||
- **Sons** : N/A
|
||||
- **Graphiques** : Lignes de flux.
|
||||
- **Images** : N/A
|
||||
- **Vidéos** : N/A
|
||||
- **Animations** : Pointillés qui avancent (effet fourmis).
|
||||
- **Couleurs** : Blanc ou Vert fluo.
|
||||
- **Textes** : "150 visiteurs/jour".
|
||||
- **Formes** : Courbes de Bézier.
|
||||
196
docs/specs/bebe_animal.md
Normal file
196
docs/specs/bebe_animal.md
Normal file
@@ -0,0 +1,196 @@
|
||||
# Spécifications : Bébé Animal
|
||||
|
||||
## Définition
|
||||
Stade de développement entre l'éclosion de l'œuf et l'âge adulte.
|
||||
|
||||
## Spécificités
|
||||
- **Lieu** : Doit grandir en Nurserie (recommandé) ou sur une case adaptée.
|
||||
- **Fragilité** : Plus sensible aux écarts de température/faim que les adultes.
|
||||
- **Vente** : Peut être vendu comme "Bébé" (souvent plus cher car potentiel reproducteur intact).
|
||||
- **Évolution** : Devient "Bébé mature" en fin de nurserie, prêt à être placé sur la grille comme adulte.
|
||||
|
||||
# Annexes Techniques
|
||||
|
||||
## 1. Données et États
|
||||
### Modèle de Données (JSON)
|
||||
Structure identique à `Animal` (voir `animal_generique.md`), avec un flag ou état spécifique :
|
||||
```json
|
||||
{
|
||||
"is_baby": true,
|
||||
"growth_progress": "float (0-100)",
|
||||
"nurserie_id": "uuid_v4 | null"
|
||||
}
|
||||
```
|
||||
|
||||
### Caractéristiques Initiales
|
||||
| Caractéristique | Valeur Initiale |
|
||||
| :--- | :--- |
|
||||
| Santé | 100.0 |
|
||||
| Faim | 0.0 |
|
||||
| Croissance | 0.0 |
|
||||
|
||||
### Scores Initiaux
|
||||
| Score | Valeur |
|
||||
| :--- | :--- |
|
||||
| Valeur Vente | 1.5 * Valeur Adulte (Potentiel) |
|
||||
| Attractivité | 2 * Attractivité Adulte (Effet "Mignon") |
|
||||
|
||||
## 2. Cycles de Vie et Apparition
|
||||
### Conditions d'Apparition
|
||||
| Type | Condition |
|
||||
| :--- | :--- |
|
||||
| Naissance | Reproduction réussie |
|
||||
| Éclosion | Fin timer œuf en Nurserie |
|
||||
|
||||
### Conditions de Disparition
|
||||
| Cause | Seuil |
|
||||
| :--- | :--- |
|
||||
| Croissance terminée | Croissance >= 100 (Devient Adulte) |
|
||||
| Mort | Santé <= 0 (Plus fragile) |
|
||||
|
||||
### Hérédité
|
||||
Voir `animal_generique.md`.
|
||||
|
||||
## 3. Impacts Environnementaux
|
||||
### Impact Température
|
||||
**Facteur de fragilité : x2** par rapport à l'adulte.
|
||||
| Delta T° | Effet sur Santé / Heure |
|
||||
| :--- | :--- |
|
||||
| +/- 1 | -2 |
|
||||
| +/- 2 | -10 |
|
||||
| > +/- 2 | -40 (Mort rapide) |
|
||||
|
||||
### Impact Milieu (Biome)
|
||||
| Compatibilité | Effet |
|
||||
| :--- | :--- |
|
||||
| Mauvais Biome | Stress x2 par rapport à l'adulte |
|
||||
|
||||
### Impact Saisons
|
||||
Voir `animal_generique.md`.
|
||||
|
||||
### Impact Heure / Jour-Nuit
|
||||
Voir `animal_generique.md`.
|
||||
|
||||
## 4. Impacts Biologiques et Sociaux
|
||||
### Impact Reproduction
|
||||
N/A (Un bébé ne se reproduit pas).
|
||||
|
||||
### Impact Mort
|
||||
| Événement | Effet Satisfaction |
|
||||
| :--- | :--- |
|
||||
| Mort d'un bébé | Malus Réputation x2 (Tristesse visiteurs) |
|
||||
|
||||
### Impact Nourriture
|
||||
**Métabolisme rapide :** Faim augmente 1.5x plus vite que l'adulte.
|
||||
|
||||
### Impact Attractivité (Visiteurs/Animaux)
|
||||
| Rareté | Attractivité |
|
||||
| :--- | :--- |
|
||||
| Toutes | Bonus "Cuteness" (+50% rayon attraction) |
|
||||
|
||||
### Impact Valeur
|
||||
| Facteur | Effet |
|
||||
| :--- | :--- |
|
||||
| Croissance 0-50% | Valeur max (Potentiel) |
|
||||
| Croissance 50-99% | Valeur décroissante vers prix adulte |
|
||||
|
||||
## 5. Impacts Logistiques et Économiques
|
||||
### Vitesse (Camion/Nurserie/Accueil/Recherche/Labo/Visite)
|
||||
N/A
|
||||
|
||||
### Dépenses (Boutiques/Visiteurs)
|
||||
N/A
|
||||
|
||||
### Trajet Visiteurs
|
||||
N/A
|
||||
|
||||
## 6. Événements
|
||||
### Événements du Jeu / Carte / Zoo / Ville / Visiteur
|
||||
* **Croissance** : Passage à l'âge adulte (Notification).
|
||||
* **Besoin Soin** : Alerte plus fréquente.
|
||||
|
||||
## 7. Progression
|
||||
### Tableau des Upgrades
|
||||
N/A
|
||||
|
||||
## 8. Logique et Interfaces
|
||||
### Pseudo-code Impacts
|
||||
```
|
||||
function updateBaby(baby, context):
|
||||
# Fragilité accrue
|
||||
damageMultiplier = 2.0
|
||||
growthRate = baseGrowthRate * nurserieLevelBonus
|
||||
|
||||
baby.growth_progress += growthRate
|
||||
|
||||
if baby.growth_progress >= 100:
|
||||
transformToAdult(baby)
|
||||
|
||||
# Reste de la logique héritée de Animal avec damageMultiplier
|
||||
```
|
||||
|
||||
### Messages d'Infos / Alerte
|
||||
| ID | Niveau | Message |
|
||||
| :--- | :--- | :--- |
|
||||
| `BABY_GROWN` | Info | "Un bébé est devenu adulte !" |
|
||||
| `BABY_CRITICAL` | Critique | "Un bébé est en danger critique !" |
|
||||
|
||||
# Annexes UX/UI
|
||||
|
||||
## 1. Expérience Utilisateur (UX)
|
||||
### Croissance en Nurserie (Passif)
|
||||
**Description UX** : Le bébé est visible dans son slot de nurserie. Il grandit visuellement (petite jauge).
|
||||
**Description UI** : Sprite "Bébé" (tête disproportionnée, grands yeux). Jauge de croissance.
|
||||
**Emplacement** : Modal Nurserie.
|
||||
**Intégration** : Slot.
|
||||
**Navigation** : N/A
|
||||
**Événements** : `BABY_GROWING`.
|
||||
|
||||
#### Assets
|
||||
- **Musiques** : N/A
|
||||
- **Sons** : Petits bruits aigus.
|
||||
- **Graphiques** : Sprite Bébé.
|
||||
- **Images** : N/A
|
||||
- **Vidéos** : N/A
|
||||
- **Animations** : Respiration (Scale up/down léger).
|
||||
- **Couleurs** : N/A
|
||||
- **Textes** : "Bébé [Espèce]".
|
||||
- **Formes** : N/A
|
||||
|
||||
### Sortie Prématurée (Action)
|
||||
**Description UX** : Le joueur décide de placer le bébé dans le zoo avant l'âge adulte (risqué).
|
||||
**Description UI** : Warning "Attention, ce bébé est fragile !".
|
||||
**Emplacement** : Nurserie -> Zoo.
|
||||
**Intégration** : Confirmation modale.
|
||||
**Navigation** : Drag -> Confirm -> Drop.
|
||||
**Événements** : `PLACE_BABY`.
|
||||
|
||||
#### Assets
|
||||
- **Musiques** : N/A
|
||||
- **Sons** : `warning_beep.mp3`.
|
||||
- **Graphiques** : Icône Danger.
|
||||
- **Images** : N/A
|
||||
- **Vidéos** : N/A
|
||||
- **Animations** : N/A
|
||||
- **Couleurs** : Rouge.
|
||||
- **Textes** : "Risque de mort élevé !".
|
||||
- **Formes** : N/A
|
||||
|
||||
### Passage Adulte (Événement)
|
||||
**Description UX** : Le bébé atteint 100% de croissance. Il se transforme en adulte.
|
||||
**Description UI** : Flash lumineux. Le sprite change. Notification "Adulte !".
|
||||
**Emplacement** : Nurserie ou Zoo.
|
||||
**Intégration** : Immédiat.
|
||||
**Navigation** : N/A
|
||||
**Événements** : `BECOME_ADULT`.
|
||||
|
||||
#### Assets
|
||||
- **Musiques** : Jingle évolution.
|
||||
- **Sons** : `level_up.mp3`.
|
||||
- **Graphiques** : Particules brillantes.
|
||||
- **Images** : Sprite Adulte.
|
||||
- **Vidéos** : N/A
|
||||
- **Animations** : Morphing ou Fade cross.
|
||||
- **Couleurs** : Blanc/Or.
|
||||
- **Textes** : "Adulte".
|
||||
- **Formes** : N/A
|
||||
191
docs/specs/billeterie.md
Normal file
191
docs/specs/billeterie.md
Normal file
@@ -0,0 +1,191 @@
|
||||
# Spécifications : Billeterie
|
||||
|
||||
## Définition
|
||||
Bâtiment d'entrée du zoo. Point d'apparition et de départ des visiteurs.
|
||||
|
||||
## Fonctionnalités
|
||||
- **Entrée/Sortie** : Génère le flux de visiteurs.
|
||||
- **Vente de tickets** : Génère des revenus par visiteur entrant.
|
||||
- **Capacité** : Limite le nombre de visiteurs simultanés dans le zoo.
|
||||
|
||||
## Niveaux d'Amélioration (7 niveaux)
|
||||
- **Coût** : Progressif par palier.
|
||||
- **Effet** : Augmente le prix du ticket et la capacité maximale de visiteurs simultanés.
|
||||
- **Ratio** : 1 unité couvre 20 visiteurs simultanés max.
|
||||
|
||||
# Annexes Techniques
|
||||
|
||||
## 1. Données et États
|
||||
### Modèle de Données (JSON)
|
||||
```json
|
||||
{
|
||||
"id": "uuid",
|
||||
"type": "ticket_booth",
|
||||
"level": "integer (1-7)",
|
||||
"position": { "x": "int", "y": "int" },
|
||||
"stats": {
|
||||
"total_entries": "integer",
|
||||
"daily_revenue": "integer"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### Caractéristiques Initiales
|
||||
| Caractéristique | Valeur Initiale (Niv 1) |
|
||||
| :--- | :--- |
|
||||
| Prix Ticket | 10 pièces |
|
||||
| Capacité Max | 20 visiteurs |
|
||||
|
||||
### Scores Initiaux
|
||||
N/A
|
||||
|
||||
## 2. Cycles de Vie et Apparition
|
||||
### Conditions d'Apparition
|
||||
Présent au démarrage (Unique).
|
||||
|
||||
### Conditions de Disparition
|
||||
Indestructible.
|
||||
|
||||
### Hérédité
|
||||
N/A
|
||||
|
||||
## 3. Impacts Environnementaux
|
||||
### Impact Température
|
||||
N/A
|
||||
|
||||
### Impact Milieu (Biome)
|
||||
N/A
|
||||
|
||||
### Impact Saisons
|
||||
| Saison | Modificateur Prix Ticket |
|
||||
| :--- | :--- |
|
||||
| Été | +20% (Haute saison) |
|
||||
| Hiver | -10% (Basse saison) |
|
||||
|
||||
### Impact Heure / Jour-Nuit
|
||||
**Ouverture** : 08h00 - 20h00. Fermé la nuit (sauf événements).
|
||||
|
||||
## 4. Impacts Biologiques et Sociaux
|
||||
### Impact Reproduction
|
||||
N/A
|
||||
|
||||
### Impact Mort
|
||||
N/A
|
||||
|
||||
### Impact Nourriture
|
||||
N/A
|
||||
|
||||
### Impact Attractivité (Visiteurs/Animaux)
|
||||
Point d'entrée unique. L'attractivité globale du zoo détermine le flux qui se présente à la billeterie.
|
||||
|
||||
### Impact Valeur
|
||||
N/A
|
||||
|
||||
## 5. Impacts Logistiques et Économiques
|
||||
### Vitesse (Camion/Nurserie/Accueil/Recherche/Labo/Visite)
|
||||
**Flux Entrée** : 1 visiteur / seconde max.
|
||||
|
||||
### Dépenses (Boutiques/Visiteurs)
|
||||
Revenu principal (Ticket).
|
||||
|
||||
### Trajet Visiteurs
|
||||
Point de départ (Spawn) et d'arrivée (Despawn).
|
||||
|
||||
## 6. Événements
|
||||
### Événements du Jeu / Carte / Zoo / Ville / Visiteur
|
||||
* **Entrée** : Gain pièces.
|
||||
* **Refoulement** : Si Capacité Max atteinte.
|
||||
|
||||
## 7. Progression
|
||||
### Tableau des Upgrades
|
||||
| Niveau | Coût (Pièces) | Prix Ticket | Capacité Max | Temps Construction |
|
||||
| :--- | :--- | :--- | :--- | :--- |
|
||||
| 1 | 0 (Base) | 10 | 20 | 0s |
|
||||
| 2 | 200 | 12 | 40 | 0s |
|
||||
| 3 | 400 | 15 | 70 | 0s |
|
||||
| 4 | 800 | 18 | 110 | 0s |
|
||||
| 5 | 1600 | 22 | 160 | 0s |
|
||||
| 6 | 3200 | 28 | 220 | 0s |
|
||||
| 7 | 6400 | 35 | 300 | 0s |
|
||||
|
||||
## 8. Logique et Interfaces
|
||||
### Pseudo-code Impacts
|
||||
```
|
||||
function processEntry(zoo):
|
||||
potentialVisitors = calculateAttractionFlow(zoo)
|
||||
|
||||
if zoo.currentVisitors >= zoo.billeterie.capacity:
|
||||
emitEvent("ZOO_FULL")
|
||||
return
|
||||
|
||||
actualVisitors = min(potentialVisitors, zoo.billeterie.capacity - zoo.currentVisitors)
|
||||
|
||||
for i in 0..actualVisitors:
|
||||
spawnVisitor()
|
||||
player.addCoins(zoo.billeterie.ticketPrice)
|
||||
```
|
||||
|
||||
### Messages d'Infos / Alerte
|
||||
| ID | Niveau | Message |
|
||||
| :--- | :--- | :--- |
|
||||
| `ZOO_FULL` | Alerte | "Le zoo est complet ! Agrandissez la billeterie." |
|
||||
|
||||
# Annexes UX/UI
|
||||
|
||||
## 1. Expérience Utilisateur (UX)
|
||||
### Consultation
|
||||
**Description UX** : Le joueur clique sur la billeterie pour voir ses statistiques et son niveau.
|
||||
**Description UI** : **Bottom Sheet** ou Panneau Latéral affichant le niveau actuel, la capacité, le prix du ticket et les revenus du jour.
|
||||
**Emplacement** : Case Billeterie sur la grille du zoo.
|
||||
**Intégration** : Bâtiment fixe (ne peut pas être déplacé ou supprimé).
|
||||
**Navigation** : Clic -> Ouverture Panneau -> Fermeture (Croix ou clic extérieur).
|
||||
**Événements** : `CLICK_BILLETERIE`.
|
||||
|
||||
#### Assets
|
||||
- **Musiques** : N/A
|
||||
- **Sons** : `ui_open.mp3`
|
||||
- **Graphiques** : Pixel Art, style guichet.
|
||||
- **Images** : `billeterie_lvl[1-7].png`
|
||||
- **Vidéos** : N/A
|
||||
- **Animations** : Légère surbrillance au survol.
|
||||
- **Couleurs** : Palette UI standard.
|
||||
- **Textes** : "Billeterie", "Niveau X", "Revenus : Y".
|
||||
- **Formes** : Carré (case).
|
||||
|
||||
### Amélioration (Upgrade)
|
||||
**Description UX** : Le joueur décide d'améliorer la billeterie pour augmenter la capacité et le prix du ticket.
|
||||
**Description UI** : Bouton "Améliorer" dans le panneau de consultation, avec coût et prévisualisation des gains.
|
||||
**Emplacement** : Panneau de consultation.
|
||||
**Intégration** : Action immédiate si fonds suffisants.
|
||||
**Navigation** : Clic "Améliorer" -> Confirmation (optionnelle) -> Mise à jour UI.
|
||||
**Événements** : `UPGRADE_BILLETERIE`.
|
||||
|
||||
#### Assets
|
||||
- **Musiques** : N/A
|
||||
- **Sons** : `upgrade_success.mp3` (caisse enregistreuse).
|
||||
- **Graphiques** : Icône flèche vers le haut.
|
||||
- **Images** : N/A
|
||||
- **Vidéos** : N/A
|
||||
- **Animations** : Particules de succès (confettis/étoiles) autour du bâtiment.
|
||||
- **Couleurs** : Bouton Vert (si achetable), Gris (si fonds insuffisants).
|
||||
- **Textes** : "Améliorer (X pièces)".
|
||||
- **Formes** : Bouton rectangulaire arrondi.
|
||||
|
||||
### Flux Visiteurs (Passif)
|
||||
**Description UX** : Le joueur observe les visiteurs entrer dans le zoo.
|
||||
**Description UI** : Petits sprites de visiteurs apparaissant à la porte et se dispersant.
|
||||
**Emplacement** : Devant la billeterie.
|
||||
**Intégration** : Animation continue pendant les heures d'ouverture.
|
||||
**Navigation** : N/A
|
||||
**Événements** : `VISITOR_SPAWN`.
|
||||
|
||||
#### Assets
|
||||
- **Musiques** : N/A
|
||||
- **Sons** : `visitor_entry.mp3` (bruit de foule léger, pas à chaque spawn).
|
||||
- **Graphiques** : Sprites visiteurs variés.
|
||||
- **Images** : N/A
|
||||
- **Vidéos** : N/A
|
||||
- **Animations** : Marche (4 directions).
|
||||
- **Couleurs** : Variées (vêtements).
|
||||
- **Textes** : N/A
|
||||
- **Formes** : N/A
|
||||
162
docs/specs/bot.md
Normal file
162
docs/specs/bot.md
Normal file
@@ -0,0 +1,162 @@
|
||||
# Spécifications : Bot (Profil d'Absence)
|
||||
|
||||
## Définition
|
||||
Intelligence Artificielle qui gère un zoo. Peut être un concurrent permanent ou le remplaçant du joueur en cas d'absence.
|
||||
|
||||
## Profils d'Absence (50 Archétypes)
|
||||
Le joueur choisit un profil pour gérer son zoo quand il est hors ligne.
|
||||
Sélection hiérarchique : **Famille** > **Spécialisation**.
|
||||
|
||||
### Familles
|
||||
1. **Les Conservateurs** : Priorité survie, achat nourriture, pas d'expansion.
|
||||
2. **Les Éleveurs** : Priorité reproduction, optimisation placements.
|
||||
3. **Les Commerçants** : Priorité achat/vente, spéculation.
|
||||
4. **Les Expansionnistes** : Priorité agrandissement terrain/bâtiments.
|
||||
5. **Les Scientifiques** : Priorité recherche et école.
|
||||
|
||||
## Fonctionnement
|
||||
- **Cycle** : Agit à chaque tick serveur ou selon sa fréquence définie.
|
||||
- **Ressources** : Utilise les ressources du zoo (pièces) selon les seuils du profil.
|
||||
- **Indicateurs** : Visible sur la carte du monde (Pièces, Parcelle).
|
||||
|
||||
# Annexes Techniques
|
||||
|
||||
## 1. Données et États
|
||||
### Modèle de Données (JSON)
|
||||
```json
|
||||
{
|
||||
"id": "integer",
|
||||
"family": "enum",
|
||||
"name": "string",
|
||||
"logic": {
|
||||
"buy_food_threshold": "float (0-1)",
|
||||
"sell_animal_threshold": "float (price factor)",
|
||||
"expand_map_priority": "int (0-10)",
|
||||
"research_priority": "int (0-10)"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### Caractéristiques Initiales
|
||||
N/A
|
||||
|
||||
### Scores Initiaux
|
||||
N/A
|
||||
|
||||
## 2. Cycles de Vie et Apparition
|
||||
### Conditions d'Apparition
|
||||
Activation par joueur (déconnexion) ou Spawn serveur (Bot permanent).
|
||||
|
||||
### Conditions de Disparition
|
||||
Connexion joueur.
|
||||
|
||||
### Hérédité
|
||||
N/A
|
||||
|
||||
## 3. Impacts Environnementaux
|
||||
### Impact Température
|
||||
N/A
|
||||
|
||||
### Impact Milieu (Biome)
|
||||
N/A
|
||||
|
||||
### Impact Saisons
|
||||
N/A
|
||||
|
||||
### Impact Heure / Jour-Nuit
|
||||
N/A
|
||||
|
||||
## 4. Impacts Biologiques et Sociaux
|
||||
### Impact Reproduction
|
||||
N/A
|
||||
|
||||
### Impact Mort
|
||||
N/A
|
||||
|
||||
### Impact Nourriture
|
||||
N/A
|
||||
|
||||
### Impact Attractivité (Visiteurs/Animaux)
|
||||
N/A
|
||||
|
||||
### Impact Valeur
|
||||
N/A
|
||||
|
||||
## 5. Impacts Logistiques et Économiques
|
||||
### Vitesse (Camion/Nurserie/Accueil/Recherche/Labo/Visite)
|
||||
**Fréquence Action** : 1 action toutes les 5 à 60 minutes (selon profil).
|
||||
|
||||
### Dépenses (Boutiques/Visiteurs)
|
||||
N/A
|
||||
|
||||
### Trajet Visiteurs
|
||||
N/A
|
||||
|
||||
## 6. Événements
|
||||
### Événements du Jeu / Carte / Zoo / Ville / Visiteur
|
||||
* **Action Bot** : Achat/Vente automatisé.
|
||||
|
||||
## 7. Progression
|
||||
### Tableau des Upgrades
|
||||
N/A
|
||||
|
||||
## 8. Logique et Interfaces
|
||||
### Pseudo-code Impacts
|
||||
```
|
||||
function runBotLogic(bot, zoo):
|
||||
if zoo.foodStock < bot.logic.buy_food_threshold:
|
||||
buyFood(zoo)
|
||||
return
|
||||
|
||||
if bot.family == 'BREEDER':
|
||||
optimizePairs(zoo)
|
||||
|
||||
if bot.family == 'TRADER':
|
||||
checkMarketArbitrage(zoo)
|
||||
```
|
||||
|
||||
### Messages d'Infos / Alerte
|
||||
| ID | Niveau | Message |
|
||||
| :--- | :--- | :--- |
|
||||
| `BOT_ACTIVE` | Info | "Le mode automatique est activé." |
|
||||
|
||||
# Annexes UX/UI
|
||||
|
||||
## 1. Expérience Utilisateur (UX)
|
||||
### Sélection du Profil (Configuration)
|
||||
**Description UX** : Le joueur choisit comment son zoo sera géré en son absence.
|
||||
**Description UI** : Interface à deux niveaux. 1. Choix Famille (5 grosses cartes illustrées). 2. Choix Spécialisation (Liste déroulante ou grille de sous-profils).
|
||||
**Emplacement** : Profil Joueur -> Onglet Absence.
|
||||
**Intégration** : Modal dédiée.
|
||||
**Navigation** : Clic Famille -> Clic Spécialisation -> Valider.
|
||||
**Événements** : `SELECT_BOT_PROFILE`.
|
||||
|
||||
#### Assets
|
||||
- **Musiques** : N/A
|
||||
- **Sons** : `card_flip.mp3`.
|
||||
- **Graphiques** : Illustrations des familles (ex: Conservateur avec bouclier, Commerçant avec bourse).
|
||||
- **Images** : Portraits Bots.
|
||||
- **Vidéos** : N/A
|
||||
- **Animations** : Flip de carte au choix.
|
||||
- **Couleurs** : Code couleur par famille (Vert=Conservateur, Jaune=Commerçant, etc.).
|
||||
- **Textes** : Titres et Descriptions courtes.
|
||||
- **Formes** : Cartes rectangulaires.
|
||||
|
||||
### Feedback Activité (Passif)
|
||||
**Description UX** : Le joueur revient et voit ce que le bot a fait.
|
||||
**Description UI** : Rapport de connexion ("Pendant votre absence, le bot a : Vendu 2 lapins, Acheté 100 nourriture").
|
||||
**Emplacement** : Écran de connexion (Popup).
|
||||
**Intégration** : Bloquant au démarrage.
|
||||
**Navigation** : Lire -> Fermer.
|
||||
**Événements** : `SHOW_REPORT`.
|
||||
|
||||
#### Assets
|
||||
- **Musiques** : N/A
|
||||
- **Sons** : `notification.mp3`.
|
||||
- **Graphiques** : Icône Robot.
|
||||
- **Images** : N/A
|
||||
- **Vidéos** : N/A
|
||||
- **Animations** : N/A
|
||||
- **Couleurs** : Gris/Métal.
|
||||
- **Textes** : Liste des actions.
|
||||
- **Formes** : Liste à puces.
|
||||
196
docs/specs/boutique.md
Normal file
196
docs/specs/boutique.md
Normal file
@@ -0,0 +1,196 @@
|
||||
# Spécifications : Boutique
|
||||
|
||||
## Définition
|
||||
Bâtiment commercial générant des revenus passifs grâce aux visiteurs.
|
||||
|
||||
## Fonctionnalités
|
||||
- **Vente** : Vend des produits (souvenirs, nourriture, boissons) aux visiteurs.
|
||||
- **Attraction** : Attire les visiteurs sur sa case.
|
||||
- **Rétention** : Augmente la durée de visite (satisfaction besoins).
|
||||
|
||||
## Niveaux d'Amélioration (7 niveaux)
|
||||
- **Coût** : Progressif par palier.
|
||||
- **Effet** : Augmente le revenu par visiteur et la capacité d'accueil simultanée.
|
||||
- **Ratio** : 1 unité couvre 5 visiteurs simultanés max.
|
||||
|
||||
# Annexes Techniques
|
||||
|
||||
## 1. Données et États
|
||||
### Modèle de Données (JSON)
|
||||
```json
|
||||
{
|
||||
"id": "uuid",
|
||||
"type": "shop",
|
||||
"level": "integer (1-7)",
|
||||
"position": { "x": "int", "y": "int" },
|
||||
"stats": {
|
||||
"revenue_total": "integer",
|
||||
"visitors_served": "integer"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### Caractéristiques Initiales
|
||||
| Caractéristique | Valeur Initiale (Niv 1) |
|
||||
| :--- | :--- |
|
||||
| Revenu / Visiteur | 15 pièces |
|
||||
| Capacité | 5 visiteurs |
|
||||
| Attractivité | 10 |
|
||||
|
||||
### Scores Initiaux
|
||||
N/A
|
||||
|
||||
## 2. Cycles de Vie et Apparition
|
||||
### Conditions d'Apparition
|
||||
Construction par le joueur sur case vide.
|
||||
|
||||
### Conditions de Disparition
|
||||
Destruction par le joueur (Remboursement partiel ?).
|
||||
|
||||
### Hérédité
|
||||
N/A
|
||||
|
||||
## 3. Impacts Environnementaux
|
||||
### Impact Température
|
||||
N/A
|
||||
|
||||
### Impact Milieu (Biome)
|
||||
N/A
|
||||
|
||||
### Impact Saisons
|
||||
| Saison | Modificateur Ventes |
|
||||
| :--- | :--- |
|
||||
| Été | +20% (Boissons/Glaces) |
|
||||
| Hiver | +10% (Chocolat chaud/Cadeaux) |
|
||||
|
||||
### Impact Heure / Jour-Nuit
|
||||
| Heure | Fréquentation |
|
||||
| :--- | :--- |
|
||||
| 12h-14h | Pic (Repas) |
|
||||
| 16h-18h | Pic (Souvenirs avant départ) |
|
||||
|
||||
## 4. Impacts Biologiques et Sociaux
|
||||
### Impact Reproduction
|
||||
N/A
|
||||
|
||||
### Impact Mort
|
||||
N/A
|
||||
|
||||
### Impact Nourriture
|
||||
N/A
|
||||
|
||||
### Impact Attractivité (Visiteurs/Animaux)
|
||||
| Niveau | Rayon Attraction |
|
||||
| :--- | :--- |
|
||||
| 1 | 2 cases |
|
||||
| 7 | 10 cases |
|
||||
|
||||
### Impact Valeur
|
||||
N/A
|
||||
|
||||
## 5. Impacts Logistiques et Économiques
|
||||
### Vitesse (Camion/Nurserie/Accueil/Recherche/Labo/Visite)
|
||||
**Vitesse Service** : 1 visiteur / 5 secondes (Niv 1) -> 1 visiteur / 1 seconde (Niv 7).
|
||||
|
||||
### Dépenses (Boutiques/Visiteurs)
|
||||
Génère du revenu, ne coûte rien (sauf achat/upgrade).
|
||||
|
||||
### Trajet Visiteurs
|
||||
Point d'intérêt majeur pour le pathfinding (Poids 50).
|
||||
|
||||
## 6. Événements
|
||||
### Événements du Jeu / Carte / Zoo / Ville / Visiteur
|
||||
* **Vente** : Gain de pièces.
|
||||
* **File d'attente** : Si Capacité atteinte, visiteurs frustrés.
|
||||
|
||||
## 7. Progression
|
||||
### Tableau des Upgrades
|
||||
| Niveau | Coût (Pièces) | Revenu/Visiteur | Capacité | Temps Construction |
|
||||
| :--- | :--- | :--- | :--- | :--- |
|
||||
| 1 | 100 | 15 | 5 | 0s |
|
||||
| 2 | 150 | 20 | 8 | 0s |
|
||||
| 3 | 225 | 25 | 12 | 0s |
|
||||
| 4 | 340 | 35 | 18 | 0s |
|
||||
| 5 | 510 | 50 | 25 | 0s |
|
||||
| 6 | 765 | 70 | 35 | 0s |
|
||||
| 7 | 1150 | 100 | 50 | 0s |
|
||||
|
||||
## 8. Logique et Interfaces
|
||||
### Pseudo-code Impacts
|
||||
```
|
||||
function processShop(shop, visitors):
|
||||
queue = visitors.filter(v => v.target == shop)
|
||||
served = min(queue.length, shop.capacity)
|
||||
|
||||
for i in 0..served:
|
||||
revenue = shop.baseRevenue * seasonMod
|
||||
player.addCoins(revenue)
|
||||
visitors[i].satisfaction += 5
|
||||
visitors[i].needs.thirst = 0
|
||||
```
|
||||
|
||||
### Messages d'Infos / Alerte
|
||||
| ID | Niveau | Message |
|
||||
| :--- | :--- | :--- |
|
||||
| `SHOP_FULL` | Warning | "Boutique pleine ! Des clients partent." |
|
||||
|
||||
# Annexes UX/UI
|
||||
|
||||
## 1. Expérience Utilisateur (UX)
|
||||
### Vente (Passif)
|
||||
**Description UX** : Les visiteurs entrent dans la boutique, y restent quelques secondes, puis ressortent. Des pièces volent vers le compteur.
|
||||
**Description UI** : Animation de porte qui s'ouvre/ferme. Popups "+15" au-dessus du toit.
|
||||
**Emplacement** : Case Boutique.
|
||||
**Intégration** : Automatique.
|
||||
**Navigation** : N/A
|
||||
**Événements** : `SALE_MADE`.
|
||||
|
||||
#### Assets
|
||||
- **Musiques** : N/A
|
||||
- **Sons** : `coin_jingle.mp3` (volume bas, pas trop répétitif).
|
||||
- **Graphiques** : Sprite Boutique (différents skins selon type : Burger, Cadeaux).
|
||||
- **Images** : N/A
|
||||
- **Vidéos** : N/A
|
||||
- **Animations** : Pièce dorée qui monte et disparaît.
|
||||
- **Couleurs** : Or #FFD700.
|
||||
- **Textes** : "+XX".
|
||||
- **Formes** : N/A
|
||||
|
||||
### Consultation Stats (Consultation)
|
||||
**Description UX** : Le joueur clique pour voir combien la boutique a rapporté.
|
||||
**Description UI** : **Bottom Sheet** simple avec "Revenus totaux" et "Clients servis".
|
||||
**Emplacement** : Case Boutique.
|
||||
**Intégration** : Standard.
|
||||
**Navigation** : Clic -> Modal.
|
||||
**Événements** : `OPEN_SHOP`.
|
||||
|
||||
#### Assets
|
||||
- **Musiques** : N/A
|
||||
- **Sons** : `ui_open.mp3`
|
||||
- **Graphiques** : N/A
|
||||
- **Images** : Icône Caisse.
|
||||
- **Vidéos** : N/A
|
||||
- **Animations** : N/A
|
||||
- **Couleurs** : N/A
|
||||
- **Textes** : Chiffres clés.
|
||||
- **Formes** : N/A
|
||||
|
||||
### Construction (Action)
|
||||
**Description UX** : Le joueur choisit "Boutique" dans le menu construction et la place sur la grille.
|
||||
**Description UI** : Fantôme du bâtiment vert/rouge selon validité.
|
||||
**Alternative** : Tap to Select -> Tap to Place.
|
||||
**Emplacement** : Menu Construction -> Grille.
|
||||
**Intégration** : Mode construction global.
|
||||
**Navigation** : Clic Menu -> Drag/Click Grille.
|
||||
**Événements** : `BUILD_SHOP`.
|
||||
|
||||
#### Assets
|
||||
- **Musiques** : N/A
|
||||
- **Sons** : `construction_hammer.mp3`.
|
||||
- **Graphiques** : Sprite Fantôme semi-transparent.
|
||||
- **Images** : N/A
|
||||
- **Vidéos** : N/A
|
||||
- **Animations** : Petit effet de poussière à la pose.
|
||||
- **Couleurs** : N/A
|
||||
- **Textes** : N/A
|
||||
- **Formes** : N/A
|
||||
219
docs/specs/camion.md
Normal file
219
docs/specs/camion.md
Normal file
@@ -0,0 +1,219 @@
|
||||
# Spécifications : Camion
|
||||
|
||||
## Définition
|
||||
Véhicule de transport pour les achats et les ventes d'animaux/œufs.
|
||||
|
||||
## Fonctionnalités
|
||||
- **Transport** : Effectue les trajets entre le zoo du joueur et les autres sites (zoos, labo) sur la Carte du Monde.
|
||||
- **Vente** : Zone de dépôt sur la carte du zoo pour mettre un animal en vente.
|
||||
- **Achat** : Zone de réception sur la carte du monde pour acheter une offre.
|
||||
|
||||
## Comportement
|
||||
- **Trajet** : Aller-retour physique sur la carte du monde. La durée dépend de la distance et du niveau du camion.
|
||||
- **Capacité** : Transporte un animal/œuf à la fois (par unité de camion).
|
||||
|
||||
## Niveaux d'Amélioration (7 niveaux)
|
||||
- **Coût** : Progressif par palier.
|
||||
- **Effet** : Augmente la vitesse de déplacement. Réduit la dégradation du score de reproduction due au transport (stress).
|
||||
- **Ratio** : 1 unité couvre 1 camion actif.
|
||||
|
||||
# Annexes Techniques
|
||||
|
||||
## 1. Données et États
|
||||
### Modèle de Données (JSON)
|
||||
```json
|
||||
{
|
||||
"id": "uuid",
|
||||
"owner_id": "uuid",
|
||||
"level": "integer (1-7)",
|
||||
"status": "enum ('idle', 'moving_to_target', 'moving_home')",
|
||||
"cargo": "animal_uuid | null",
|
||||
"position": { "x": "float", "y": "float" },
|
||||
"target_site_id": "uuid | null"
|
||||
}
|
||||
```
|
||||
|
||||
### Caractéristiques Initiales
|
||||
| Caractéristique | Valeur Initiale (Niv 1) |
|
||||
| :--- | :--- |
|
||||
| Vitesse | 50 km/h (simulé) |
|
||||
| Confort | Basique (Stress normal) |
|
||||
|
||||
### Scores Initiaux
|
||||
N/A
|
||||
|
||||
## 2. Cycles de Vie et Apparition
|
||||
### Conditions d'Apparition
|
||||
Démarrage jeu.
|
||||
|
||||
### Conditions de Disparition
|
||||
N/A
|
||||
|
||||
### Hérédité
|
||||
N/A
|
||||
|
||||
## 3. Impacts Environnementaux
|
||||
### Impact Température
|
||||
N/A
|
||||
|
||||
### Impact Milieu (Biome)
|
||||
N/A
|
||||
|
||||
### Impact Saisons
|
||||
**Hiver** : Vitesse réduite de 20% (Neige).
|
||||
|
||||
### Impact Heure / Jour-Nuit
|
||||
N/A
|
||||
|
||||
## 4. Impacts Biologiques et Sociaux
|
||||
### Impact Reproduction
|
||||
**Stress Transport** : Réduit temporairement la fertilité de l'animal transporté.
|
||||
| Niveau Camion | Perte Fertilité / Heure Trajet |
|
||||
| :--- | :--- |
|
||||
| 1 | -10% |
|
||||
| 7 | -1% |
|
||||
|
||||
### Impact Mort
|
||||
Si trajet trop long (> 24h) sans confort, risque de mort (Faim/Stress).
|
||||
|
||||
### Impact Nourriture
|
||||
N/A
|
||||
|
||||
### Impact Attractivité (Visiteurs/Animaux)
|
||||
N/A
|
||||
|
||||
### Impact Valeur
|
||||
N/A
|
||||
|
||||
## 5. Impacts Logistiques et Économiques
|
||||
### Vitesse (Camion/Nurserie/Accueil/Recherche/Labo/Visite)
|
||||
**Vitesse Déplacement** :
|
||||
| Niveau | Vitesse |
|
||||
| :--- | :--- |
|
||||
| 1 | 50 km/h |
|
||||
| 2 | 70 km/h |
|
||||
| 3 | 90 km/h |
|
||||
| 4 | 110 km/h |
|
||||
| 5 | 130 km/h |
|
||||
| 6 | 150 km/h |
|
||||
| 7 | 200 km/h (Avion/Hélico ?) |
|
||||
|
||||
### Dépenses (Boutiques/Visiteurs)
|
||||
N/A
|
||||
|
||||
### Trajet Visiteurs
|
||||
N/A
|
||||
|
||||
## 6. Événements
|
||||
### Événements du Jeu / Carte / Zoo / Ville / Visiteur
|
||||
* **Départ** : Camion part.
|
||||
* **Arrivée** : Camion revient avec marchandise.
|
||||
|
||||
## 7. Progression
|
||||
### Tableau des Upgrades
|
||||
| Niveau | Coût (Pièces) | Vitesse | Confort | Temps Construction |
|
||||
| :--- | :--- | :--- | :--- | :--- |
|
||||
| 1 | 100 | 50 | Bas | 0s |
|
||||
| 2 | 200 | 70 | Moyen | 0s |
|
||||
| 3 | 400 | 90 | Moyen | 0s |
|
||||
| 4 | 800 | 110 | Bon | 0s |
|
||||
| 5 | 1600 | 130 | Bon | 0s |
|
||||
| 6 | 3200 | 150 | Excellent | 0s |
|
||||
| 7 | 6400 | 200 | Parfait | 0s |
|
||||
|
||||
## 8. Logique et Interfaces
|
||||
### Pseudo-code Impacts
|
||||
```
|
||||
function updateTruck(truck, deltaTime):
|
||||
if truck.status == 'moving':
|
||||
distance = truck.speed * deltaTime
|
||||
moveTowardsTarget(truck, distance)
|
||||
|
||||
if truck.cargo:
|
||||
truck.cargo.stress += baseStress * (1.0 - truck.comfortFactor) * deltaTime
|
||||
```
|
||||
|
||||
### Messages d'Infos / Alerte
|
||||
| ID | Niveau | Message |
|
||||
| :--- | :--- | :--- |
|
||||
| `TRUCK_ARRIVED` | Info | "Le camion est revenu au zoo." |
|
||||
|
||||
# Annexes UX/UI
|
||||
|
||||
## 1. Expérience Utilisateur (UX)
|
||||
### Envoi en Mission (Action)
|
||||
**Description UX** : Le joueur achète un animal sur la carte du monde. Le camion part automatiquement le chercher.
|
||||
**Description UI** : Le camion quitte sa case au zoo (animation départ) et apparaît sur la carte du monde, se déplaçant vers la cible.
|
||||
**Emplacement** : Zoo -> Carte Monde.
|
||||
**Intégration** : Transition fluide.
|
||||
**Navigation** : Achat -> Vue Carte Monde (auto ou manuelle).
|
||||
**Événements** : `TRUCK_DEPART`.
|
||||
|
||||
#### Assets
|
||||
- **Musiques** : N/A
|
||||
- **Sons** : `engine_start.mp3`, `horn.mp3`.
|
||||
- **Graphiques** : Sprite Camion (Vue dessus et côté).
|
||||
- **Images** : N/A
|
||||
- **Vidéos** : N/A
|
||||
- **Animations** : Roues qui tournent, fumée échappement.
|
||||
- **Couleurs** : Jaune/Noir (Chantier) ou Blanc (Livraison).
|
||||
- **Textes** : "En route vers [Destination]".
|
||||
- **Formes** : N/A
|
||||
|
||||
### Suivi Trajet (Passif/Actif)
|
||||
**Description UX** : Le joueur peut suivre le camion sur la carte du monde.
|
||||
**Description UI** : Icône camion qui bouge sur la ligne de trajet. Timer estimé au survol.
|
||||
**Emplacement** : Carte Monde.
|
||||
**Intégration** : Overlay.
|
||||
**Navigation** : Clic Camion -> Info Trajet.
|
||||
**Événements** : `TRACK_TRUCK`.
|
||||
|
||||
#### Assets
|
||||
- **Musiques** : N/A
|
||||
- **Sons** : Bruit moteur continu (faible).
|
||||
- **Graphiques** : Ligne pointillée (trajet).
|
||||
- **Images** : N/A
|
||||
- **Vidéos** : N/A
|
||||
- **Animations** : Déplacement linéaire.
|
||||
- **Couleurs** : Ligne Blanche.
|
||||
- **Textes** : "Arrivée dans MM:SS".
|
||||
- **Formes** : N/A
|
||||
|
||||
### Activité d'Attente (Gameplay)
|
||||
**Description UX** : Pendant le trajet (temps mort), le joueur peut cliquer sur le camion pour le "booster" ou nettoyer le pare-brise (mini-jeu simple) pour gagner quelques secondes ou de l'XP.
|
||||
**Description UI** : Zoom sur le camion. Taches apparaissent, clic pour nettoyer.
|
||||
**Emplacement** : Modal Camion (en trajet).
|
||||
**Intégration** : Mini-jeu optionnel.
|
||||
**Navigation** : Clic Camion -> Mini-jeu.
|
||||
**Événements** : `CLEAN_WINDSHIELD`.
|
||||
|
||||
#### Assets
|
||||
- **Musiques** : Radio camion (musique lo-fi).
|
||||
- **Sons** : `wipe.mp3` (essuie-glace). **Design ASMR** : Bruit d'éponge mouillée ou de raclette satisfaisant.
|
||||
- **Graphiques** : Taches de boue/insectes.
|
||||
- **Images** : Vue cockpit simplifiée.
|
||||
- **Vidéos** : N/A
|
||||
- **Animations** : Essuie-glace qui bouge.
|
||||
- **Couleurs** : N/A
|
||||
- **Textes** : "Boost !"
|
||||
- **Formes** : N/A
|
||||
|
||||
### Arrivée (Passif)
|
||||
**Description UX** : Le camion revient au zoo et se gare.
|
||||
**Description UI** : Animation d'arrivée. Notification "Camion rentré".
|
||||
**Notification Push** : "Le camion est de retour !" (si application fermée).
|
||||
**Emplacement** : Case Camion.
|
||||
**Intégration** : Fin cycle.
|
||||
**Navigation** : N/A
|
||||
**Événements** : `TRUCK_ARRIVE`.
|
||||
|
||||
#### Assets
|
||||
- **Musiques** : N/A
|
||||
- **Sons** : `truck_stop.mp3`.
|
||||
- **Graphiques** : N/A
|
||||
- **Images** : N/A
|
||||
- **Vidéos** : N/A
|
||||
- **Animations** : Freinage.
|
||||
- **Couleurs** : N/A
|
||||
- **Textes** : N/A
|
||||
- **Formes** : N/A
|
||||
122
docs/specs/carte_generique.md
Normal file
122
docs/specs/carte_generique.md
Normal file
@@ -0,0 +1,122 @@
|
||||
# Spécifications : Carte (Générique)
|
||||
|
||||
## Définition
|
||||
Une carte est une grille de cases représentant un espace de jeu ou de navigation.
|
||||
|
||||
## Propriétés
|
||||
- **Dimensions** : Largeur et hauteur définies en nombre de cases.
|
||||
- **Biomes** : Les cases ont une couleur de fond représentant leur biome (milieu).
|
||||
- **Quadrillage** : Les cases sont disposées en grille orthogonale.
|
||||
- **Cohérence** : Les transitions de couleurs (milieux) et de températures doivent être douces entre les cases adjacentes.
|
||||
|
||||
## Types de cartes
|
||||
- Carte du Zoo (Espace de gestion du joueur)
|
||||
- Carte du Monde (Espace de navigation multijoueur)
|
||||
|
||||
# Annexes Techniques
|
||||
|
||||
## 1. Données et États
|
||||
### Modèle de Données (JSON)
|
||||
```json
|
||||
{
|
||||
"id": "uuid",
|
||||
"type": "enum ('zoo', 'world')",
|
||||
"width": "integer",
|
||||
"height": "integer",
|
||||
"grid": [
|
||||
[ { "case_ref": "case_id" } ]
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
### Caractéristiques Initiales
|
||||
N/A (Dépendant du type)
|
||||
|
||||
### Scores Initiaux
|
||||
N/A
|
||||
|
||||
## 2. Cycles de Vie et Apparition
|
||||
### Conditions d'Apparition
|
||||
Création à l'initialisation du jeu/compte.
|
||||
|
||||
### Conditions de Disparition
|
||||
Suppression du compte.
|
||||
|
||||
### Hérédité
|
||||
N/A
|
||||
|
||||
## 3. Impacts Environnementaux
|
||||
### Impact Température
|
||||
N/A (Porté par les cases)
|
||||
|
||||
### Impact Milieu (Biome)
|
||||
N/A (Porté par les cases)
|
||||
|
||||
### Impact Saisons
|
||||
N/A
|
||||
|
||||
### Impact Heure / Jour-Nuit
|
||||
N/A
|
||||
|
||||
## 4. Impacts Biologiques et Sociaux
|
||||
### Impact Reproduction
|
||||
N/A
|
||||
|
||||
### Impact Mort
|
||||
N/A
|
||||
|
||||
### Impact Nourriture
|
||||
N/A
|
||||
|
||||
### Impact Attractivité (Visiteurs/Animaux)
|
||||
N/A
|
||||
|
||||
### Impact Valeur
|
||||
N/A
|
||||
|
||||
## 5. Impacts Logistiques et Économiques
|
||||
### Vitesse (Camion/Nurserie/Accueil/Recherche/Labo/Visite)
|
||||
N/A
|
||||
|
||||
### Dépenses (Boutiques/Visiteurs)
|
||||
N/A
|
||||
|
||||
### Trajet Visiteurs
|
||||
N/A
|
||||
|
||||
## 6. Événements
|
||||
### Événements du Jeu / Carte / Zoo / Ville / Visiteur
|
||||
N/A
|
||||
|
||||
## 7. Progression
|
||||
### Tableau des Upgrades
|
||||
N/A
|
||||
|
||||
## 8. Logique et Interfaces
|
||||
### Pseudo-code Impacts
|
||||
N/A
|
||||
|
||||
### Messages d'Infos / Alerte
|
||||
N/A
|
||||
|
||||
# Annexes UX/UI
|
||||
|
||||
## 1. Expérience Utilisateur (UX)
|
||||
### Navigation (Action)
|
||||
**Description UX** : Le joueur explore la carte.
|
||||
**Description UI** : Drag & Drop (Pan) pour se déplacer. Zoom In/Out (Molette/Pinch).
|
||||
**Emplacement** : Vue Principale.
|
||||
**Intégration** : Plein écran.
|
||||
**Navigation** : Pan/Zoom.
|
||||
**Événements** : `MAP_MOVE`, `MAP_ZOOM`.
|
||||
|
||||
#### Assets
|
||||
- **Musiques** : Ambiance calme (Zoo) / Aventure (Monde).
|
||||
- **Sons** : Vent léger.
|
||||
- **Graphiques** : Grille (Grid lines) subtile.
|
||||
- **Images** : N/A
|
||||
- **Vidéos** : N/A
|
||||
- **Animations** : Inertie du mouvement.
|
||||
- **Couleurs** : Fond neutre hors carte.
|
||||
- **Textes** : Coordonnées (Debug).
|
||||
- **Formes** : Rectangulaire.
|
||||
162
docs/specs/carte_monde.md
Normal file
162
docs/specs/carte_monde.md
Normal file
@@ -0,0 +1,162 @@
|
||||
# Spécifications : Carte du Monde
|
||||
|
||||
## Définition
|
||||
La carte du monde est l'espace multijoueur où sont situés les zoos des joueurs, des bots, les villes et les laboratoires.
|
||||
|
||||
## Structure
|
||||
- **Grille** : Fixe, avec des positions définies pour chaque entité.
|
||||
- **Fond** : Reprend les biomes de la carte du zoo (Prairie/Océan/Montagne) en fond.
|
||||
- **Zoom** : Niveau de zoom dépendant de l'upgrade "Agrandir la carte". Pas de pan manuel.
|
||||
|
||||
## Contenu Initial (Lancement)
|
||||
- 1 Case Agrandissement de la carte (Payable en unités de recherche)
|
||||
- 1 Compteur de bébés à vendre
|
||||
- 1 Compteur d'animaux à vendre
|
||||
- 1 Compteur de laboratoires
|
||||
- 1 Compteur de zoos
|
||||
- 1 Compteur de villes
|
||||
- 1 Case Accueil nouveaux animaux (Haut gauche)
|
||||
- 1 Case Nourriture générale (Haut gauche)
|
||||
- 1 Case Camion (Haut gauche)
|
||||
- 24 Cases de terrain (3 couleurs différentes)
|
||||
|
||||
## Entités Visibles
|
||||
- **Zoos Joueurs** : Nom, icône, indicateurs.
|
||||
- **Zoos Bots** : Identiques aux joueurs.
|
||||
- **Villes** : Sources de visiteurs.
|
||||
- **Laboratoires** : Sources d'œufs/bébés rares.
|
||||
- **Camions** : En transit entre les entités.
|
||||
|
||||
## Mécaniques
|
||||
- **Navigation** : Vue d'ensemble du marché.
|
||||
- **Interactions** : Achat d'œufs/animaux via le camion.
|
||||
|
||||
# Annexes Techniques
|
||||
|
||||
## 1. Données et États
|
||||
### Modèle de Données (JSON)
|
||||
```json
|
||||
{
|
||||
"id": "world_map",
|
||||
"width": "integer (très grand)",
|
||||
"height": "integer",
|
||||
"sites": [ { "id": "uuid", "type": "zoo|city|lab", "pos": { "x": "int", "y": "int" } } ],
|
||||
"trucks": [ { "id": "uuid", "owner_id": "uuid", "pos": { "x": "float", "y": "float" }, "target": "uuid" } ]
|
||||
}
|
||||
```
|
||||
|
||||
### Caractéristiques Initiales
|
||||
| Caractéristique | Valeur Initiale |
|
||||
| :--- | :--- |
|
||||
| Rayon Visible | 500km (simulé) |
|
||||
| Nb Villes | 10 (dans rayon départ) |
|
||||
| Nb Labos | 2 (dans rayon départ) |
|
||||
|
||||
### Scores Initiaux
|
||||
N/A
|
||||
|
||||
## 2. Cycles de Vie et Apparition
|
||||
### Conditions d'Apparition
|
||||
Unique (Singleton serveur).
|
||||
|
||||
### Conditions de Disparition
|
||||
Jamais.
|
||||
|
||||
### Hérédité
|
||||
N/A
|
||||
|
||||
## 3. Impacts Environnementaux
|
||||
### Impact Température
|
||||
N/A
|
||||
|
||||
### Impact Milieu (Biome)
|
||||
N/A
|
||||
|
||||
### Impact Saisons
|
||||
N/A
|
||||
|
||||
### Impact Heure / Jour-Nuit
|
||||
N/A
|
||||
|
||||
## 4. Impacts Biologiques et Sociaux
|
||||
### Impact Reproduction
|
||||
N/A
|
||||
|
||||
### Impact Mort
|
||||
N/A
|
||||
|
||||
### Impact Nourriture
|
||||
N/A
|
||||
|
||||
### Impact Attractivité (Visiteurs/Animaux)
|
||||
N/A
|
||||
|
||||
### Impact Valeur
|
||||
N/A
|
||||
|
||||
## 5. Impacts Logistiques et Économiques
|
||||
### Vitesse (Camion/Nurserie/Accueil/Recherche/Labo/Visite)
|
||||
N/A
|
||||
|
||||
### Dépenses (Boutiques/Visiteurs)
|
||||
N/A
|
||||
|
||||
### Trajet Visiteurs
|
||||
Calcul des distances Ville -> Zoo pour l'attractivité.
|
||||
|
||||
## 6. Événements
|
||||
### Événements du Jeu / Carte / Zoo / Ville / Visiteur
|
||||
* **Spawn Bot** : Apparition nouveau zoo bot.
|
||||
* **Spawn Truck** : Camion visible.
|
||||
|
||||
## 7. Progression
|
||||
### Tableau des Upgrades
|
||||
Voir `agrandissement_carte.md`.
|
||||
|
||||
## 8. Logique et Interfaces
|
||||
### Pseudo-code Impacts
|
||||
N/A
|
||||
|
||||
### Messages d'Infos / Alerte
|
||||
N/A
|
||||
|
||||
# Annexes UX/UI
|
||||
|
||||
## 1. Expérience Utilisateur (UX)
|
||||
### Vue Globale (Passif)
|
||||
**Description UX** : Le joueur voit les autres acteurs et les flux économiques.
|
||||
**Description UI** : Carte style "Google Maps" simplifiée ou grille hexagonale. Icônes (Maisons, Gratte-ciels, Fioles). **Flux** : Petites particules (voitures/points) voyageant entre les villes et les zoos attractifs.
|
||||
**Emplacement** : Écran Carte Monde.
|
||||
**Intégration** : Plein écran.
|
||||
**Navigation** : Bouton Retour Zoo.
|
||||
**Événements** : `OPEN_WORLD_MAP`.
|
||||
|
||||
#### Assets
|
||||
- **Musiques** : Thème Aventure/Voyage.
|
||||
- **Sons** : Vent, Bruit lointain trafic.
|
||||
- **Graphiques** : Fond carte (Biomes flous).
|
||||
- **Images** : Icônes Sites.
|
||||
- **Vidéos** : N/A
|
||||
- **Animations** : Camions qui bougent.
|
||||
- **Couleurs** : Desaturées (pour faire ressortir les icônes).
|
||||
- **Textes** : Noms des villes/zoos.
|
||||
- **Formes** : Pins/Marqueurs.
|
||||
|
||||
### Brouillard de Guerre (Passif)
|
||||
**Description UX** : Les zones inexplorées sont cachées.
|
||||
**Description UI** : Nuages ou zone sombre en périphérie.
|
||||
**Emplacement** : Bords Carte.
|
||||
**Intégration** : Mask.
|
||||
**Navigation** : N/A
|
||||
**Événements** : N/A
|
||||
|
||||
#### Assets
|
||||
- **Musiques** : N/A
|
||||
- **Sons** : N/A
|
||||
- **Graphiques** : Texture Nuages.
|
||||
- **Images** : N/A
|
||||
- **Vidéos** : N/A
|
||||
- **Animations** : Nuages qui dérivent lentement.
|
||||
- **Couleurs** : Blanc/Gris.
|
||||
- **Textes** : "Zone Inexplorée".
|
||||
- **Formes** : N/A
|
||||
166
docs/specs/carte_zoo.md
Normal file
166
docs/specs/carte_zoo.md
Normal file
@@ -0,0 +1,166 @@
|
||||
# Spécifications : Carte du Zoo
|
||||
|
||||
## Définition
|
||||
La carte du zoo est l'espace principal de gestion du joueur où il place ses bâtiments et ses animaux.
|
||||
|
||||
## Structure
|
||||
- **Grille** : Composée de cases individuelles.
|
||||
- **Biomes** : Divisée en tiers de largeur :
|
||||
- Gauche : Prairie
|
||||
- Milieu : Océan
|
||||
- Droite : Montagne
|
||||
- **Dégradés** : Couleurs et températures varient doucement au sein des biomes.
|
||||
|
||||
## Contenu Initial (Lancement)
|
||||
- 1 Case Agrandissement du zoo (+1 case, payant)
|
||||
- 1 Case Recherche (Coin haut gauche)
|
||||
- 1 Case Billeterie (Coin haut gauche)
|
||||
- 1 Case Nurserie (Coin haut gauche)
|
||||
- 1 Case Accueil nouveaux animaux (Coin haut gauche)
|
||||
- 1 Case Nourriture générale (Coin haut gauche)
|
||||
- 1 Case Camion (Coin haut gauche)
|
||||
- 24 Cases de terrain (3 couleurs différentes réparties selon les biomes)
|
||||
|
||||
## Mécaniques
|
||||
- **Placement** : Le joueur peut placer des œufs, des animaux et des bâtiments sur les cases vides.
|
||||
- **Déplacement** : Glisser-déposer pour réorganiser.
|
||||
- **Visiteurs** : Les visiteurs se déplacent sur la grille.
|
||||
- **Feedbacks** : L'état du terrain (herbe jaunie, givre) reflète l'adéquation avec les animaux.
|
||||
|
||||
# Annexes Techniques
|
||||
|
||||
## 1. Données et États
|
||||
### Modèle de Données (JSON)
|
||||
```json
|
||||
{
|
||||
"id": "uuid",
|
||||
"owner_id": "uuid",
|
||||
"width": "integer (init 5)",
|
||||
"height": "integer (init 6)",
|
||||
"cases": [ ... ]
|
||||
}
|
||||
```
|
||||
|
||||
### Caractéristiques Initiales
|
||||
| Caractéristique | Valeur Initiale |
|
||||
| :--- | :--- |
|
||||
| Taille | 30 cases (5x6 approx) |
|
||||
| Biomes | 3 (Tiers) |
|
||||
|
||||
### Scores Initiaux
|
||||
N/A
|
||||
|
||||
## 2. Cycles de Vie et Apparition
|
||||
### Conditions d'Apparition
|
||||
Création du compte joueur.
|
||||
|
||||
### Conditions de Disparition
|
||||
N/A
|
||||
|
||||
### Hérédité
|
||||
N/A
|
||||
|
||||
## 3. Impacts Environnementaux
|
||||
### Impact Température
|
||||
N/A (Géré par case)
|
||||
|
||||
### Impact Milieu (Biome)
|
||||
N/A (Géré par case)
|
||||
|
||||
### Impact Saisons
|
||||
N/A
|
||||
|
||||
### Impact Heure / Jour-Nuit
|
||||
N/A
|
||||
|
||||
## 4. Impacts Biologiques et Sociaux
|
||||
### Impact Reproduction
|
||||
N/A
|
||||
|
||||
### Impact Mort
|
||||
N/A
|
||||
|
||||
### Impact Nourriture
|
||||
N/A
|
||||
|
||||
### Impact Attractivité (Visiteurs/Animaux)
|
||||
N/A
|
||||
|
||||
### Impact Valeur
|
||||
N/A
|
||||
|
||||
## 5. Impacts Logistiques et Économiques
|
||||
### Vitesse (Camion/Nurserie/Accueil/Recherche/Labo/Visite)
|
||||
N/A
|
||||
|
||||
### Dépenses (Boutiques/Visiteurs)
|
||||
N/A
|
||||
|
||||
### Trajet Visiteurs
|
||||
Support du pathfinding (A* sur la grille).
|
||||
|
||||
## 6. Événements
|
||||
### Événements du Jeu / Carte / Zoo / Ville / Visiteur
|
||||
* **Agrandissement** : Ajout d'une colonne/ligne ou case adjacente.
|
||||
|
||||
## 7. Progression
|
||||
### Tableau des Upgrades
|
||||
Voir `achat_upgrade_case_zoo.md`.
|
||||
|
||||
## 8. Logique et Interfaces
|
||||
### Pseudo-code Impacts
|
||||
```
|
||||
function initZooMap():
|
||||
width = 6
|
||||
height = 5
|
||||
for x in 0..width:
|
||||
for y in 0..height:
|
||||
biome = getBiomeByColumn(x, width)
|
||||
createCase(x, y, biome)
|
||||
```
|
||||
|
||||
### Messages d'Infos / Alerte
|
||||
N/A
|
||||
|
||||
# Annexes UX/UI
|
||||
|
||||
## 1. Expérience Utilisateur (UX)
|
||||
### Interaction Grille (Action)
|
||||
**Description UX** : Le joueur clique sur une case pour voir son contenu ou construire.
|
||||
**Description UI** : Surbrillance de la case au survol. Clic ouvre un **Panneau Latéral (Bottom Sheet)** non bloquant (Info/Construire).
|
||||
**Emplacement** : Grille.
|
||||
**Intégration** : Curseur.
|
||||
**Navigation** : Clic -> Menu.
|
||||
**Événements** : `CLICK_CASE`.
|
||||
|
||||
#### Assets
|
||||
- **Musiques** : N/A
|
||||
- **Sons** : `click_tile.mp3`.
|
||||
- **Graphiques** : Cadre de sélection blanc/brillant.
|
||||
- **Images** : N/A
|
||||
- **Vidéos** : N/A
|
||||
- **Animations** : Pulsation du cadre.
|
||||
- **Couleurs** : Blanc.
|
||||
- **Textes** : N/A
|
||||
- **Formes** : Carré.
|
||||
|
||||
### Mode Construction (Action)
|
||||
**Description UX** : Le joueur place un bâtiment ou modifie le terrain.
|
||||
**Description UI** : Grille visible. Cases valides en vert, invalides en rouge.
|
||||
**Mode Peinture** : Le joueur peut glisser son doigt (Drag) pour construire/modifier plusieurs cases d'affilée (ex: peindre un biome ou poser une route).
|
||||
**Alternative Accessibilité** : Tap to Select (Bâtiment) -> Tap to Place (Case) pour éviter le Drag & Drop.
|
||||
**Emplacement** : Grille.
|
||||
**Intégration** : Overlay.
|
||||
**Navigation** : Drag -> Drop.
|
||||
**Événements** : `ENTER_BUILD_MODE`.
|
||||
|
||||
#### Assets
|
||||
- **Musiques** : N/A
|
||||
- **Sons** : `grid_snap.mp3`.
|
||||
- **Graphiques** : Grille semi-transparente.
|
||||
- **Images** : N/A
|
||||
- **Vidéos** : N/A
|
||||
- **Animations** : Snap to grid.
|
||||
- **Couleurs** : Vert/Rouge (Alpha 0.5).
|
||||
- **Textes** : N/A
|
||||
- **Formes** : Carrés.
|
||||
122
docs/specs/case_generique.md
Normal file
122
docs/specs/case_generique.md
Normal file
@@ -0,0 +1,122 @@
|
||||
# Spécifications : Case (Générique)
|
||||
|
||||
## Définition
|
||||
Une case est l'unité élémentaire de la grille (Zoo ou Monde).
|
||||
|
||||
## Propriétés
|
||||
- **Coordonnées** : Position (x, y) dans la grille.
|
||||
- **Couleur (Milieu)** : Définit le biome et l'environnement visuel.
|
||||
- **Température** : Liée à la couleur/biome.
|
||||
- **Contenu** : Peut contenir un bâtiment, un animal, un visiteur, ou être vide.
|
||||
- **État** : Peut avoir des indicateurs visuels (herbe jaunie, givre).
|
||||
|
||||
## Règles
|
||||
- Les transitions de propriétés (couleur, température) entre cases adjacentes doivent être douces.
|
||||
|
||||
# Annexes Techniques
|
||||
|
||||
## 1. Données et États
|
||||
### Modèle de Données (JSON)
|
||||
```json
|
||||
{
|
||||
"x": "integer",
|
||||
"y": "integer",
|
||||
"biome_id": "integer",
|
||||
"temperature_offset": "float",
|
||||
"content_ref": "uuid | null",
|
||||
"content_type": "string",
|
||||
"state_flags": ["frozen", "dry", "dirty"]
|
||||
}
|
||||
```
|
||||
|
||||
### Caractéristiques Initiales
|
||||
N/A
|
||||
|
||||
### Scores Initiaux
|
||||
N/A
|
||||
|
||||
## 2. Cycles de Vie et Apparition
|
||||
### Conditions d'Apparition
|
||||
Génération carte.
|
||||
|
||||
### Conditions de Disparition
|
||||
N/A
|
||||
|
||||
### Hérédité
|
||||
N/A
|
||||
|
||||
## 3. Impacts Environnementaux
|
||||
### Impact Température
|
||||
`Température_Réelle = Température_Biome + Température_Offset + Saison_Mod`
|
||||
|
||||
### Impact Milieu (Biome)
|
||||
Définit la couleur de fond.
|
||||
|
||||
### Impact Saisons
|
||||
N/A
|
||||
|
||||
### Impact Heure / Jour-Nuit
|
||||
N/A
|
||||
|
||||
## 4. Impacts Biologiques et Sociaux
|
||||
### Impact Reproduction
|
||||
N/A
|
||||
|
||||
### Impact Mort
|
||||
N/A
|
||||
|
||||
### Impact Nourriture
|
||||
N/A
|
||||
|
||||
### Impact Attractivité (Visiteurs/Animaux)
|
||||
N/A
|
||||
|
||||
### Impact Valeur
|
||||
N/A
|
||||
|
||||
## 5. Impacts Logistiques et Économiques
|
||||
### Vitesse (Camion/Nurserie/Accueil/Recherche/Labo/Visite)
|
||||
N/A
|
||||
|
||||
### Dépenses (Boutiques/Visiteurs)
|
||||
N/A
|
||||
|
||||
### Trajet Visiteurs
|
||||
N/A
|
||||
|
||||
## 6. Événements
|
||||
### Événements du Jeu / Carte / Zoo / Ville / Visiteur
|
||||
N/A
|
||||
|
||||
## 7. Progression
|
||||
### Tableau des Upgrades
|
||||
N/A
|
||||
|
||||
## 8. Logique et Interfaces
|
||||
### Pseudo-code Impacts
|
||||
N/A
|
||||
|
||||
### Messages d'Infos / Alerte
|
||||
N/A
|
||||
|
||||
# Annexes UX/UI
|
||||
|
||||
## 1. Expérience Utilisateur (UX)
|
||||
### Feedback État (Passif)
|
||||
**Description UX** : La case montre son état physique.
|
||||
**Description UI** : Overlay de texture (Givre, Craquelures, Boue).
|
||||
**Emplacement** : Case.
|
||||
**Intégration** : Layer 1 (Au-dessus du fond, sous le contenu).
|
||||
**Navigation** : N/A
|
||||
**Événements** : `STATE_UPDATE`.
|
||||
|
||||
#### Assets
|
||||
- **Musiques** : N/A
|
||||
- **Sons** : N/A
|
||||
- **Graphiques** : Textures alpha (Givre blanc, Craquelures marron).
|
||||
- **Images** : N/A
|
||||
- **Vidéos** : N/A
|
||||
- **Animations** : Apparition progressive (Fade).
|
||||
- **Couleurs** : Blanc, Marron, Gris.
|
||||
- **Textes** : N/A
|
||||
- **Formes** : Carré.
|
||||
112
docs/specs/case_monde.md
Normal file
112
docs/specs/case_monde.md
Normal file
@@ -0,0 +1,112 @@
|
||||
# Spécifications : Case de Monde (Générique)
|
||||
|
||||
## Définition
|
||||
Case spécifique à la grille du monde, servant de support aux sites et aux compteurs.
|
||||
|
||||
## Types de Contenu Possibles
|
||||
- **Sites** : Zoo (Joueur/Bot), Ville, Laboratoire.
|
||||
- **Compteurs** : Bébés à vendre, Animaux à vendre, Labos, Zoos, Villes.
|
||||
- **Zones Fonctionnelles** : Agrandissement carte, Camion (zone de dépôt/vente).
|
||||
|
||||
## Propriétés Spécifiques
|
||||
- **Fixité** : Le contenu des cases monde est généralement fixe (sites) ou fonctionnel (zones d'interface).
|
||||
- **Navigation** : Les camions naviguent de case en case entre les sites.
|
||||
|
||||
# Annexes Techniques
|
||||
|
||||
## 1. Données et États
|
||||
### Modèle de Données (JSON)
|
||||
Hérite de `Case (Générique)`.
|
||||
Pas de propriétés supplémentaires spécifiques.
|
||||
|
||||
### Caractéristiques Initiales
|
||||
N/A
|
||||
|
||||
### Scores Initiaux
|
||||
N/A
|
||||
|
||||
## 2. Cycles de Vie et Apparition
|
||||
### Conditions d'Apparition
|
||||
Génération monde.
|
||||
|
||||
### Conditions de Disparition
|
||||
N/A
|
||||
|
||||
### Hérédité
|
||||
N/A
|
||||
|
||||
## 3. Impacts Environnementaux
|
||||
### Impact Température
|
||||
N/A
|
||||
|
||||
### Impact Milieu (Biome)
|
||||
N/A
|
||||
|
||||
### Impact Saisons
|
||||
N/A
|
||||
|
||||
### Impact Heure / Jour-Nuit
|
||||
N/A
|
||||
|
||||
## 4. Impacts Biologiques et Sociaux
|
||||
### Impact Reproduction
|
||||
N/A
|
||||
|
||||
### Impact Mort
|
||||
N/A
|
||||
|
||||
### Impact Nourriture
|
||||
N/A
|
||||
|
||||
### Impact Attractivité (Visiteurs/Animaux)
|
||||
N/A
|
||||
|
||||
### Impact Valeur
|
||||
N/A
|
||||
|
||||
## 5. Impacts Logistiques et Économiques
|
||||
### Vitesse (Camion/Nurserie/Accueil/Recherche/Labo/Visite)
|
||||
N/A
|
||||
|
||||
### Dépenses (Boutiques/Visiteurs)
|
||||
N/A
|
||||
|
||||
### Trajet Visiteurs
|
||||
N/A
|
||||
|
||||
## 6. Événements
|
||||
### Événements du Jeu / Carte / Zoo / Ville / Visiteur
|
||||
N/A
|
||||
|
||||
## 7. Progression
|
||||
### Tableau des Upgrades
|
||||
N/A
|
||||
|
||||
## 8. Logique et Interfaces
|
||||
### Pseudo-code Impacts
|
||||
N/A
|
||||
|
||||
### Messages d'Infos / Alerte
|
||||
N/A
|
||||
|
||||
# Annexes UX/UI
|
||||
|
||||
## 1. Expérience Utilisateur (UX)
|
||||
### Survol (Passif)
|
||||
**Description UX** : Explorer la carte du monde.
|
||||
**Description UI** : Curseur main. Tooltip au survol des sites.
|
||||
**Emplacement** : Carte Monde.
|
||||
**Intégration** : Standard.
|
||||
**Navigation** : Mouse move.
|
||||
**Événements** : `HOVER_WORLD_CASE`.
|
||||
|
||||
#### Assets
|
||||
- **Musiques** : N/A
|
||||
- **Sons** : N/A
|
||||
- **Graphiques** : N/A
|
||||
- **Images** : N/A
|
||||
- **Vidéos** : N/A
|
||||
- **Animations** : N/A
|
||||
- **Couleurs** : N/A
|
||||
- **Textes** : N/A
|
||||
- **Formes** : N/A
|
||||
135
docs/specs/case_zoo.md
Normal file
135
docs/specs/case_zoo.md
Normal file
@@ -0,0 +1,135 @@
|
||||
# Spécifications : Case de Zoo (Générique)
|
||||
|
||||
## Définition
|
||||
Case spécifique à la grille du zoo, pouvant accueillir les éléments de gestion.
|
||||
|
||||
## Types de Contenu Possibles
|
||||
- **Bâtiments** : Billeterie, Nurserie, Boutique, Centre de Recherche, École, Accueil Animaux.
|
||||
- **Animaux** : Bébés matures, Animaux adultes.
|
||||
- **Éléments Mobiles** : Visiteurs, Camion (sur sa zone dédiée).
|
||||
- **Vide** : Terrain libre pour construction ou placement.
|
||||
|
||||
## Propriétés Spécifiques
|
||||
- **Occupation** : Une case ne peut contenir qu'un seul élément principal (bâtiment/animal) à la fois.
|
||||
- **Visite** : Enregistre la date de dernier passage d'un visiteur (pour la règle de disparition).
|
||||
- **Qualité** : Indicateur visuel d'adéquation avec l'animal posé dessus (Jaunissement, Givre).
|
||||
|
||||
## Liste des Cases Spéciales (cf. Carte Zoo)
|
||||
- Agrandissement
|
||||
- Recherche
|
||||
- Billeterie
|
||||
- Nurserie
|
||||
- Accueil
|
||||
- Nourriture
|
||||
- Camion
|
||||
|
||||
# Annexes Techniques
|
||||
|
||||
## 1. Données et États
|
||||
### Modèle de Données (JSON)
|
||||
Hérite de `Case (Générique)`.
|
||||
```json
|
||||
{
|
||||
"last_visit_time": "timestamp",
|
||||
"quality_score": "float (0-100)"
|
||||
}
|
||||
```
|
||||
|
||||
### Caractéristiques Initiales
|
||||
| Caractéristique | Valeur Initiale |
|
||||
| :--- | :--- |
|
||||
| Dernière Visite | Création du zoo |
|
||||
| Qualité | 100 |
|
||||
|
||||
### Scores Initiaux
|
||||
N/A
|
||||
|
||||
## 2. Cycles de Vie et Apparition
|
||||
### Conditions d'Apparition
|
||||
Génération zoo.
|
||||
|
||||
### Conditions de Disparition
|
||||
N/A
|
||||
|
||||
### Hérédité
|
||||
N/A
|
||||
|
||||
## 3. Impacts Environnementaux
|
||||
### Impact Température
|
||||
Voir `case_generique.md`.
|
||||
|
||||
### Impact Milieu (Biome)
|
||||
Voir `case_generique.md`.
|
||||
|
||||
### Impact Saisons
|
||||
N/A
|
||||
|
||||
### Impact Heure / Jour-Nuit
|
||||
N/A
|
||||
|
||||
## 4. Impacts Biologiques et Sociaux
|
||||
### Impact Reproduction
|
||||
N/A
|
||||
|
||||
### Impact Mort
|
||||
N/A
|
||||
|
||||
### Impact Nourriture
|
||||
N/A
|
||||
|
||||
### Impact Attractivité (Visiteurs/Animaux)
|
||||
N/A
|
||||
|
||||
### Impact Valeur
|
||||
N/A
|
||||
|
||||
## 5. Impacts Logistiques et Économiques
|
||||
### Vitesse (Camion/Nurserie/Accueil/Recherche/Labo/Visite)
|
||||
N/A
|
||||
|
||||
### Dépenses (Boutiques/Visiteurs)
|
||||
N/A
|
||||
|
||||
### Trajet Visiteurs
|
||||
N/A
|
||||
|
||||
## 6. Événements
|
||||
### Événements du Jeu / Carte / Zoo / Ville / Visiteur
|
||||
* **Passage Visiteur** : Met à jour `last_visit_time`.
|
||||
|
||||
## 7. Progression
|
||||
### Tableau des Upgrades
|
||||
Voir `achat_upgrade_case.md`.
|
||||
|
||||
## 8. Logique et Interfaces
|
||||
### Pseudo-code Impacts
|
||||
```
|
||||
function checkAnimalDisappearance(case):
|
||||
if currentTime - case.last_visit_time > MAX_TIME_WITHOUT_VISIT:
|
||||
removeAnimal(case.content)
|
||||
```
|
||||
|
||||
### Messages d'Infos / Alerte
|
||||
N/A
|
||||
|
||||
# Annexes UX/UI
|
||||
|
||||
## 1. Expérience Utilisateur (UX)
|
||||
### Sélection (Action)
|
||||
**Description UX** : Clic sur une case zoo.
|
||||
**Description UI** : Highlight + Menu contextuel adapté au contenu (Animal -> Stats, Bâtiment -> Upgrade, Vide -> Construire).
|
||||
**Emplacement** : Grille.
|
||||
**Intégration** : Standard.
|
||||
**Navigation** : Clic.
|
||||
**Événements** : `SELECT_ZOO_CASE`.
|
||||
|
||||
#### Assets
|
||||
- **Musiques** : N/A
|
||||
- **Sons** : `select_soft.mp3`.
|
||||
- **Graphiques** : Cadre sélection.
|
||||
- **Images** : N/A
|
||||
- **Vidéos** : N/A
|
||||
- **Animations** : N/A
|
||||
- **Couleurs** : Blanc.
|
||||
- **Textes** : N/A
|
||||
- **Formes** : Carré.
|
||||
190
docs/specs/centre_recherche.md
Normal file
190
docs/specs/centre_recherche.md
Normal file
@@ -0,0 +1,190 @@
|
||||
# Spécifications : Centre de Recherche
|
||||
|
||||
## Définition
|
||||
Bâtiment produisant des points de science/recherche.
|
||||
|
||||
## Fonctionnalités
|
||||
- **Production** : Génère des unités de recherche périodiquement.
|
||||
- **Déblocage** : Permet de payer l'agrandissement de la carte du monde.
|
||||
- **Visibilité** : Donne accès aux niveaux d'animaux/bébés supérieurs dans les autres zoos (débloque la vue sur les offres rares).
|
||||
|
||||
## Niveaux d'Amélioration (7 niveaux)
|
||||
- **Coût** : Progressif par palier.
|
||||
- **Effet** : Augmente la production et le niveau de visibilité des offres externes.
|
||||
- **Ratio** : 1 unité couvre la visibilité sur 10 zoos définis (par proximité).
|
||||
|
||||
# Annexes Techniques
|
||||
|
||||
## 1. Données et États
|
||||
### Modèle de Données (JSON)
|
||||
```json
|
||||
{
|
||||
"id": "uuid",
|
||||
"type": "research_center",
|
||||
"level": "integer (1-7)",
|
||||
"stats": {
|
||||
"points_generated": "integer",
|
||||
"last_collection": "timestamp"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### Caractéristiques Initiales
|
||||
| Caractéristique | Valeur Initiale (Niv 1) |
|
||||
| :--- | :--- |
|
||||
| Production | 10 pts / heure |
|
||||
| Portée Radar | 10 zoos voisins |
|
||||
| Rareté Visible | Niveau 1 (Commun) |
|
||||
|
||||
### Scores Initiaux
|
||||
N/A
|
||||
|
||||
## 2. Cycles de Vie et Apparition
|
||||
### Conditions d'Apparition
|
||||
Présent au démarrage.
|
||||
|
||||
### Conditions de Disparition
|
||||
Indestructible (ou un seul obligatoire).
|
||||
|
||||
### Hérédité
|
||||
N/A
|
||||
|
||||
## 3. Impacts Environnementaux
|
||||
### Impact Température
|
||||
N/A
|
||||
|
||||
### Impact Milieu (Biome)
|
||||
N/A
|
||||
|
||||
### Impact Saisons
|
||||
N/A
|
||||
|
||||
### Impact Heure / Jour-Nuit
|
||||
Production continue 24h/24.
|
||||
|
||||
## 4. Impacts Biologiques et Sociaux
|
||||
### Impact Reproduction
|
||||
N/A
|
||||
|
||||
### Impact Mort
|
||||
N/A
|
||||
|
||||
### Impact Nourriture
|
||||
N/A
|
||||
|
||||
### Impact Attractivité (Visiteurs/Animaux)
|
||||
N/A
|
||||
|
||||
### Impact Valeur
|
||||
N/A
|
||||
|
||||
## 5. Impacts Logistiques et Économiques
|
||||
### Vitesse (Camion/Nurserie/Accueil/Recherche/Labo/Visite)
|
||||
**Vitesse Recherche** :
|
||||
| Niveau | Points / Heure |
|
||||
| :--- | :--- |
|
||||
| 1 | 10 |
|
||||
| 2 | 20 |
|
||||
| 3 | 40 |
|
||||
| 4 | 80 |
|
||||
| 5 | 150 |
|
||||
| 6 | 300 |
|
||||
| 7 | 600 |
|
||||
|
||||
### Dépenses (Boutiques/Visiteurs)
|
||||
N/A
|
||||
|
||||
### Trajet Visiteurs
|
||||
N/A
|
||||
|
||||
## 6. Événements
|
||||
### Événements du Jeu / Carte / Zoo / Ville / Visiteur
|
||||
* **Découverte** : Déblocage d'une nouvelle zone carte monde.
|
||||
|
||||
## 7. Progression
|
||||
### Tableau des Upgrades
|
||||
| Niveau | Coût (Pièces) | Production | Portée (Zoos) | Rareté Visible | Temps Construction |
|
||||
| :--- | :--- | :--- | :--- | :--- | :--- |
|
||||
| 1 | 0 | 10 | 10 | 1 | 0s |
|
||||
| 2 | 300 | 20 | 20 | 2 | 0s |
|
||||
| 3 | 600 | 40 | 30 | 2 | 0s |
|
||||
| 4 | 1200 | 80 | 50 | 3 | 0s |
|
||||
| 5 | 2400 | 150 | 80 | 3 | 0s |
|
||||
| 6 | 4800 | 300 | 120 | 4 | 0s |
|
||||
| 7 | 9600 | 600 | Tout | 5 | 0s |
|
||||
|
||||
## 8. Logique et Interfaces
|
||||
### Pseudo-code Impacts
|
||||
```
|
||||
function updateResearch(center):
|
||||
points = center.productionRate * deltaTime
|
||||
player.addResearchPoints(points)
|
||||
|
||||
visibleRarity = center.maxRarityVisible
|
||||
updateWorldMapVisibility(center.range, visibleRarity)
|
||||
```
|
||||
|
||||
### Messages d'Infos / Alerte
|
||||
| ID | Niveau | Message |
|
||||
| :--- | :--- | :--- |
|
||||
| `RESEARCH_UNLOCK` | Info | "Nouvelle zone de carte découverte !" |
|
||||
|
||||
# Annexes UX/UI
|
||||
|
||||
## 1. Expérience Utilisateur (UX)
|
||||
### Collecte de Points (Action)
|
||||
**Description UX** : Les points de recherche s'accumulent. Le joueur clique sur le bâtiment pour les récolter (ou collecte auto si implémenté).
|
||||
**Description UI** : Une icône "Fiole" ou "Atome" flotte au-dessus du bâtiment quand des points sont disponibles. Au clic, les points volent vers le compteur global.
|
||||
**Emplacement** : Case Centre Recherche.
|
||||
**Intégration** : Overlay au-dessus du sprite.
|
||||
**Navigation** : Clic Bâtiment -> Collecte.
|
||||
**Événements** : `COLLECT_RESEARCH`.
|
||||
|
||||
#### Assets
|
||||
- **Musiques** : N/A
|
||||
- **Sons** : `bubble_pop.mp3` ou `sci_fi_bloop.mp3`. **Design ASMR** : "Bloop" liquide ou tintement cristallin.
|
||||
- **Graphiques** : Icône Fiole bleue/violette.
|
||||
- **Images** : N/A
|
||||
- **Vidéos** : N/A
|
||||
- **Animations** : Flottement (bobbing) de l'icône. Trajectoire courbe des points vers le HUD.
|
||||
- **Couleurs** : Bleu Science #0088FF.
|
||||
- **Textes** : "+10 RP".
|
||||
- **Formes** : Cercle ou Fiole.
|
||||
|
||||
### Consultation & Arbre Techno (Consultation)
|
||||
**Description UX** : Le joueur veut voir sa production et débloquer des zones.
|
||||
**Description UI** : **Bottom Sheet** affichant "Production : X/h". Un bouton "Carte du Monde" pour voir l'effet du radar.
|
||||
**Emplacement** : Modal Centre Recherche.
|
||||
**Intégration** : Lien vers la Carte du Monde.
|
||||
**Navigation** : Clic Bâtiment (si pas de collecte ou double clic) -> Modal.
|
||||
**Événements** : `OPEN_RESEARCH`.
|
||||
|
||||
#### Assets
|
||||
- **Musiques** : N/A
|
||||
- **Sons** : `ui_open.mp3`
|
||||
- **Graphiques** : Style High-Tech / Labo.
|
||||
- **Images** : `radar_icon.png`.
|
||||
- **Vidéos** : N/A
|
||||
- **Animations** : Radar qui balaie (décoratif).
|
||||
- **Couleurs** : Blanc, Gris, Bleu néon.
|
||||
- **Textes** : "Portée Radar : X km".
|
||||
- **Formes** : Panneaux anguleux.
|
||||
|
||||
### Amélioration (Upgrade)
|
||||
**Description UX** : Augmenter la production et la portée.
|
||||
**Description UI** : Bouton standard d'upgrade avec comparaison "Actuel vs Suivant".
|
||||
**Emplacement** : Modal Centre Recherche.
|
||||
**Intégration** : Standard.
|
||||
**Navigation** : Clic Upgrade.
|
||||
**Événements** : `UPGRADE_RESEARCH`.
|
||||
|
||||
#### Assets
|
||||
- **Musiques** : N/A
|
||||
- **Sons** : `upgrade_tech.mp3` (son électronique).
|
||||
- **Graphiques** : N/A
|
||||
- **Images** : N/A
|
||||
- **Vidéos** : N/A
|
||||
- **Animations** : Flash bleu sur le bâtiment.
|
||||
- **Couleurs** : Bleu.
|
||||
- **Textes** : N/A
|
||||
- **Formes** : N/A
|
||||
142
docs/specs/enchere_generique.md
Normal file
142
docs/specs/enchere_generique.md
Normal file
@@ -0,0 +1,142 @@
|
||||
# Spécifications : Enchère (Générique)
|
||||
|
||||
## Définition
|
||||
Mécanisme de vente entre joueurs/bots sur la Carte du Monde.
|
||||
|
||||
## Fonctionnement
|
||||
1. **Mise en vente** : Le vendeur place un animal/bébé sur la case Camion/Vente de son zoo. Définit un prix initial.
|
||||
2. **Offre** : Visible sur la Carte du Monde (slot sous le zoo).
|
||||
3. **Enchères** : Les acheteurs (joueurs/bots) proposent des prix.
|
||||
4. **Validation** : Le vendeur accepte une offre ou laisse courir.
|
||||
5. **Sécurisation** : Une fois l'offre acceptée/validée, un **délai de 10 minutes** (Sablier) s'enclenche.
|
||||
6. **Finalisation** : À la fin du sablier, le transfert de propriété et de fonds est effectué (anti-race condition).
|
||||
|
||||
## Types
|
||||
- Vente de Bébés
|
||||
- Vente d'Animaux Adultes
|
||||
|
||||
# Annexes Techniques
|
||||
|
||||
## 1. Données et États
|
||||
### Modèle de Données (JSON)
|
||||
```json
|
||||
{
|
||||
"id": "uuid",
|
||||
"seller_id": "uuid",
|
||||
"animal_ref": "uuid",
|
||||
"start_price": "integer",
|
||||
"current_bid": "integer",
|
||||
"highest_bidder_id": "uuid | null",
|
||||
"end_time": "timestamp",
|
||||
"status": "enum ('active', 'pending_validation', 'finalizing', 'completed', 'cancelled')",
|
||||
"finalization_timer": "timestamp (end)"
|
||||
}
|
||||
```
|
||||
|
||||
### Caractéristiques Initiales
|
||||
N/A
|
||||
|
||||
## 8. Logique et Interfaces
|
||||
### Pseudo-code Impacts
|
||||
```
|
||||
function placeBid(auction, bidder, amount):
|
||||
if amount <= auction.current_bid: return Error
|
||||
if bidder.coins < amount: return Error
|
||||
|
||||
auction.current_bid = amount
|
||||
auction.highest_bidder_id = bidder.id
|
||||
|
||||
function finalizeAuction(auction):
|
||||
if now < auction.finalization_timer: return
|
||||
|
||||
transferCoins(auction.highest_bidder_id, auction.seller_id, auction.current_bid)
|
||||
transferAnimal(auction.seller_id, auction.highest_bidder_id, auction.animal_ref)
|
||||
auction.status = 'completed'
|
||||
```
|
||||
|
||||
### Messages d'Infos / Alerte
|
||||
| ID | Niveau | Message |
|
||||
| :--- | :--- | :--- |
|
||||
| `BID_PLACED` | Info | "Offre placée avec succès." |
|
||||
| `OUTBID` | Alerte | "Vous avez été surenchéri !" |
|
||||
| `AUCTION_WON` | Succès | "Vous avez remporté l'enchère ! Livraison en cours..." |
|
||||
|
||||
# Annexes UX/UI
|
||||
|
||||
## 1. Expérience Utilisateur (UX)
|
||||
### Consultation des Offres (Consultation)
|
||||
**Description UX** : Le joueur survole les zoos sur la carte du monde pour voir les offres.
|
||||
**Description UI** : Tooltip ou Slot sous le zoo affichant l'icône de l'animal et le prix actuel.
|
||||
**Emplacement** : Carte Monde.
|
||||
**Intégration** : Overlay Zoo.
|
||||
**Navigation** : Survol -> Info.
|
||||
**Événements** : `HOVER_OFFER`.
|
||||
|
||||
#### Assets
|
||||
- **Musiques** : N/A
|
||||
- **Sons** : `hover_soft.mp3`.
|
||||
- **Graphiques** : Cadre Offre (Doré si rare).
|
||||
- **Images** : Icône Animal.
|
||||
- **Vidéos** : N/A
|
||||
- **Animations** : Prix qui clignote si nouvelle enchère.
|
||||
- **Couleurs** : Vert (Abordable), Rouge (Trop cher).
|
||||
- **Textes** : "Lapin Rare - 500$".
|
||||
- **Formes** : Rectangle arrondi.
|
||||
|
||||
### Enchérir (Action)
|
||||
**Description UX** : Le joueur clique sur une offre pour ouvrir le détail et placer une enchère.
|
||||
**Description UI** : **Bottom Sheet** d'enchère. Infos complètes de l'animal. Champ de saisie "Votre offre" ou boutons rapides (+10, +50, +100).
|
||||
**Emplacement** : Modal Enchère.
|
||||
**Intégration** : Modal centrée.
|
||||
**Navigation** : Clic Offre -> Modal -> Enchérir.
|
||||
**Événements** : `PLACE_BID`.
|
||||
|
||||
#### Assets
|
||||
- **Musiques** : N/A
|
||||
- **Sons** : `bid_placed.mp3` (bruit de marteau).
|
||||
- **Graphiques** : Icône Marteau.
|
||||
- **Images** : Portrait Animal HD.
|
||||
- **Vidéos** : N/A
|
||||
- **Animations** : Compteur prix qui monte.
|
||||
- **Couleurs** : Bouton Vert.
|
||||
- **Textes** : "Enchérir".
|
||||
- **Formes** : N/A
|
||||
|
||||
### Sablier de Validation (Attente)
|
||||
**Description UX** : L'enchère est remportée, le transfert est en cours (10 min).
|
||||
**Description UI** : Icône Sablier sur l'offre et dans le HUD de l'acheteur.
|
||||
**Notification Push** : "Enchère remportée ! Animal livré." à la fin du timer.
|
||||
**Emplacement** : Carte Monde & HUD.
|
||||
**Intégration** : Statut "En cours".
|
||||
**Navigation** : N/A
|
||||
**Événements** : `TIMER_START`.
|
||||
|
||||
#### Assets
|
||||
- **Musiques** : N/A
|
||||
- **Sons** : `tick_tock.mp3` (ambiance très discrète si focus).
|
||||
- **Graphiques** : Sablier animé.
|
||||
- **Images** : N/A
|
||||
- **Vidéos** : N/A
|
||||
- **Animations** : Sable qui coule.
|
||||
- **Couleurs** : Orange.
|
||||
- **Textes** : "Validation : MM:SS".
|
||||
- **Formes** : N/A
|
||||
|
||||
### Activité "Clic" (Gameplay)
|
||||
**Description UX** : Pendant les 10 min, le joueur peut cliquer sur le sablier pour "accélérer" (symboliquement) ou gagner un petit bonus (XP/Pièce) pour patienter.
|
||||
**Description UI** : Le sablier réagit au clic (secousse).
|
||||
**Emplacement** : Modal Validation.
|
||||
**Intégration** : Mini-jeu.
|
||||
**Navigation** : Clic Sablier.
|
||||
**Événements** : `CLICK_HOURGLASS`.
|
||||
|
||||
#### Assets
|
||||
- **Musiques** : N/A
|
||||
- **Sons** : `sand_shake.mp3`. **Design ASMR** : Bruit de sable qui crisse ou petit choc mat.
|
||||
- **Graphiques** : Particules de sable.
|
||||
- **Images** : N/A
|
||||
- **Vidéos** : N/A
|
||||
- **Animations** : Secousse.
|
||||
- **Couleurs** : N/A
|
||||
- **Textes** : "+1 XP".
|
||||
- **Formes** : N/A
|
||||
120
docs/specs/etat.md
Normal file
120
docs/specs/etat.md
Normal file
@@ -0,0 +1,120 @@
|
||||
# Spécifications : États (Feedbacks Visuels)
|
||||
|
||||
## Définition
|
||||
Indicateurs visuels permettant au joueur de comprendre l'état de ses animaux et de son terrain sans utiliser de jauges (UI).
|
||||
|
||||
## États des Animaux
|
||||
- **Froid** : Teinte bleuâtre/pâle, givre visible sur le sprite.
|
||||
- **Chaud** : Teinte rougeâtre, vapeur de chaleur visible.
|
||||
- **Faim** : Déplacement lent, maigreur visible, cherche le sol, icône "faim" discrète.
|
||||
- **Maladie / Mort proche** : Animal couché, couleurs ternes, mouches autour.
|
||||
- **Heureux / Reproduction** : Cœurs, sautillements, couleurs vives.
|
||||
|
||||
## États du Terrain
|
||||
- **Mauvais Biome** : Herbe jaunie, sol craquelé ou boueux (changement de teinte global).
|
||||
- **Température Inadaptée** : Sol givré (froid) ou vapeurs (chaud).
|
||||
- **Saleté** : Déchets sombres, poussière grise.
|
||||
|
||||
# Annexes Techniques
|
||||
|
||||
## 1. Données et États
|
||||
### Modèle de Données (JSON)
|
||||
Liste d'enums ou flags dans l'objet `Animal` ou `Case`.
|
||||
`visual_states: ["frozen", "hungry"]`
|
||||
|
||||
### Caractéristiques Initiales
|
||||
N/A
|
||||
|
||||
### Scores Initiaux
|
||||
N/A
|
||||
|
||||
## 2. Cycles de Vie et Apparition
|
||||
### Conditions d'Apparition
|
||||
Déclenchés par les seuils de stats (Santé, Faim, T°).
|
||||
|
||||
### Conditions de Disparition
|
||||
Retour à la normale des stats.
|
||||
|
||||
### Hérédité
|
||||
N/A
|
||||
|
||||
## 3. Impacts Environnementaux
|
||||
### Impact Température
|
||||
Déclencheurs Froid/Chaud.
|
||||
|
||||
### Impact Milieu (Biome)
|
||||
Déclencheurs Mauvais Biome.
|
||||
|
||||
### Impact Saisons
|
||||
N/A
|
||||
|
||||
### Impact Heure / Jour-Nuit
|
||||
N/A
|
||||
|
||||
## 4. Impacts Biologiques et Sociaux
|
||||
### Impact Reproduction
|
||||
Déclencheur Heureux.
|
||||
|
||||
### Impact Mort
|
||||
Déclencheur Maladie/Mort.
|
||||
|
||||
### Impact Nourriture
|
||||
Déclencheur Faim.
|
||||
|
||||
### Impact Attractivité (Visiteurs/Animaux)
|
||||
Les états négatifs (Sale, Malade) repoussent les visiteurs.
|
||||
|
||||
### Impact Valeur
|
||||
N/A
|
||||
|
||||
## 5. Impacts Logistiques et Économiques
|
||||
### Vitesse (Camion/Nurserie/Accueil/Recherche/Labo/Visite)
|
||||
N/A
|
||||
|
||||
### Dépenses (Boutiques/Visiteurs)
|
||||
N/A
|
||||
|
||||
### Trajet Visiteurs
|
||||
N/A
|
||||
|
||||
## 6. Événements
|
||||
### Événements du Jeu / Carte / Zoo / Ville / Visiteur
|
||||
N/A
|
||||
|
||||
## 7. Progression
|
||||
### Tableau des Upgrades
|
||||
N/A
|
||||
|
||||
## 8. Logique et Interfaces
|
||||
### Pseudo-code Impacts
|
||||
```
|
||||
if animal.temp < animal.idealTemp - 10:
|
||||
addVisualState("frozen")
|
||||
elif animal.temp > animal.idealTemp + 10:
|
||||
addVisualState("overheat")
|
||||
```
|
||||
|
||||
### Messages d'Infos / Alerte
|
||||
N/A
|
||||
|
||||
# Annexes UX/UI
|
||||
|
||||
## 1. Expérience Utilisateur (UX)
|
||||
### Lecture Immédiate (Passif)
|
||||
**Description UX** : Le joueur comprend la situation d'un coup d'œil sans ouvrir de menu.
|
||||
**Description UI** : Pas d'UI. Tout passe par le rendu graphique des entités.
|
||||
**Emplacement** : Grille Zoo.
|
||||
**Intégration** : Moteur de rendu.
|
||||
**Navigation** : N/A
|
||||
**Événements** : `STATE_CHANGE`.
|
||||
|
||||
#### Assets
|
||||
- **Musiques** : N/A
|
||||
- **Sons** : N/A
|
||||
- **Graphiques** : Shaders (Color Overlay), Systèmes de particules.
|
||||
- **Images** : N/A
|
||||
- **Vidéos** : N/A
|
||||
- **Animations** : Animations spécifiques (Trembler, Boiter).
|
||||
- **Couleurs** : Code universel (Bleu=Froid, Rouge=Chaud, Vert=OK, Jaune=Malade).
|
||||
- **Textes** : N/A
|
||||
- **Formes** : N/A
|
||||
69
docs/specs/impacts_generique.md
Normal file
69
docs/specs/impacts_generique.md
Normal file
@@ -0,0 +1,69 @@
|
||||
# Spécifications : Impacts (Générique)
|
||||
|
||||
## Définition
|
||||
Les impacts sont les conséquences des actions du joueur ou des événements du jeu sur les scores et l'état du zoo.
|
||||
|
||||
## Types d'Impacts
|
||||
|
||||
### Sur l'Attractivité
|
||||
- **Positif** : Naissance, Achat d'animal rare, Résolution d'incident visiteur, Diversité élevée.
|
||||
- **Négatif** : Mort d'animal, Incident visiteur ignoré, Zoo vide.
|
||||
|
||||
### Sur la Reproduction
|
||||
- **Positif** : Animal bien nourri, Température idéale, Biome (couleur) idéal, Proximité partenaire compatible.
|
||||
- **Négatif** : Faim, Température inadaptée, Mauvais biome, Stress (transport long), Morts dans le zoo.
|
||||
|
||||
### Sur les Revenus
|
||||
- **Positif** : Visiteurs nombreux, Boutiques améliorées, Animaux rares (revenu passif), Ventes réussies.
|
||||
- **Négatif** : Coûts d'entretien (nourriture), Achats onéreux.
|
||||
|
||||
### Sur la Survie
|
||||
- **Positif** : Adéquation Biome/Animal, Nourriture suffisante.
|
||||
- **Négatif** : Froid/Chaud extrême, Faim prolongée, Isolement.
|
||||
|
||||
# Annexes Techniques
|
||||
|
||||
## 1. Données et États
|
||||
### Modèle de Données (JSON)
|
||||
Structure de configuration des impacts (Ruleset).
|
||||
```json
|
||||
{
|
||||
"impact_rules": [
|
||||
{ "trigger": "event_type", "target": "score_type", "value": "float", "duration": "int" }
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
## 8. Logique et Interfaces
|
||||
### Pseudo-code Impacts
|
||||
```
|
||||
function applyImpact(target, impactType, value):
|
||||
if impactType == 'ATTRACTIVENESS':
|
||||
target.attractiveness += value
|
||||
elif impactType == 'SURVIVAL':
|
||||
target.survival_score += value
|
||||
|
||||
logEvent(target.id, impactType, value)
|
||||
```
|
||||
|
||||
# Annexes UX/UI
|
||||
|
||||
## 1. Expérience Utilisateur (UX)
|
||||
### Feedback Visuel d'Impact (Passif)
|
||||
**Description UX** : Le joueur voit les conséquences de ses actions.
|
||||
**Description UI** : Popups flottants ("Floating Text") au-dessus des entités concernées.
|
||||
**Emplacement** : World Space.
|
||||
**Intégration** : Temporaire (Fade out).
|
||||
**Navigation** : N/A
|
||||
**Événements** : `IMPACT_APPLIED`.
|
||||
|
||||
#### Assets
|
||||
- **Musiques** : N/A
|
||||
- **Sons** : `positive.mp3` (montant), `negative.mp3` (descendant).
|
||||
- **Graphiques** : Flèches Vertes (Haut) / Rouges (Bas).
|
||||
- **Images** : N/A
|
||||
- **Vidéos** : N/A
|
||||
- **Animations** : Texte qui monte et disparaît.
|
||||
- **Couleurs** : Vert, Rouge.
|
||||
- **Textes** : "+10 Attractivité", "-5 Santé".
|
||||
- **Formes** : N/A
|
||||
122
docs/specs/inventaire_animaux.md
Normal file
122
docs/specs/inventaire_animaux.md
Normal file
@@ -0,0 +1,122 @@
|
||||
# Spécifications : Inventaire des Animaux
|
||||
|
||||
## Structure
|
||||
75 Animaux répartis sur les 15 Milieux (Couleurs) et 5 Niveaux de Rareté.
|
||||
|
||||
## Exemples (Extrait)
|
||||
- **Prairie / Rareté 1** : Lapin
|
||||
- **Prairie / Rareté 5** : Licorne
|
||||
- **Océan / Rareté 1** : Poisson Clown
|
||||
- **Océan / Rareté 5** : Kraken
|
||||
- **Montagne / Rareté 1** : Chèvre
|
||||
- **Montagne / Rareté 5** : Dragon
|
||||
|
||||
*(La liste complète des 75 animaux doit être définie dans un fichier de données ou une table de loot).*
|
||||
|
||||
# Annexes Techniques
|
||||
|
||||
## 1. Données et États
|
||||
### Modèle de Données (JSON)
|
||||
Table statique `animal_types`.
|
||||
```json
|
||||
{
|
||||
"id": "string (ex: 'rabbit')",
|
||||
"name": "string",
|
||||
"rarity": "int",
|
||||
"ideal_biome": "int",
|
||||
"ideal_temp": "float",
|
||||
"base_value": "int"
|
||||
}
|
||||
```
|
||||
|
||||
### Caractéristiques Initiales
|
||||
N/A
|
||||
|
||||
### Scores Initiaux
|
||||
N/A
|
||||
|
||||
## 2. Cycles de Vie et Apparition
|
||||
### Conditions d'Apparition
|
||||
N/A
|
||||
|
||||
### Conditions de Disparition
|
||||
N/A
|
||||
|
||||
### Hérédité
|
||||
N/A
|
||||
|
||||
## 3. Impacts Environnementaux
|
||||
### Impact Température
|
||||
N/A
|
||||
|
||||
### Impact Milieu (Biome)
|
||||
N/A
|
||||
|
||||
### Impact Saisons
|
||||
N/A
|
||||
|
||||
### Impact Heure / Jour-Nuit
|
||||
N/A
|
||||
|
||||
## 4. Impacts Biologiques et Sociaux
|
||||
### Impact Reproduction
|
||||
N/A
|
||||
|
||||
### Impact Mort
|
||||
N/A
|
||||
|
||||
### Impact Nourriture
|
||||
N/A
|
||||
|
||||
### Impact Attractivité (Visiteurs/Animaux)
|
||||
N/A
|
||||
|
||||
### Impact Valeur
|
||||
N/A
|
||||
|
||||
## 5. Impacts Logistiques et Économiques
|
||||
### Vitesse (Camion/Nurserie/Accueil/Recherche/Labo/Visite)
|
||||
N/A
|
||||
|
||||
### Dépenses (Boutiques/Visiteurs)
|
||||
N/A
|
||||
|
||||
### Trajet Visiteurs
|
||||
N/A
|
||||
|
||||
## 6. Événements
|
||||
### Événements du Jeu / Carte / Zoo / Ville / Visiteur
|
||||
N/A
|
||||
|
||||
## 7. Progression
|
||||
### Tableau des Upgrades
|
||||
N/A
|
||||
|
||||
## 8. Logique et Interfaces
|
||||
### Pseudo-code Impacts
|
||||
N/A
|
||||
|
||||
### Messages d'Infos / Alerte
|
||||
N/A
|
||||
|
||||
# Annexes UX/UI
|
||||
|
||||
## 1. Expérience Utilisateur (UX)
|
||||
### Bestiaire / Encyclopédie (Consultation)
|
||||
**Description UX** : Le joueur consulte les animaux découverts/possédés.
|
||||
**Description UI** : Livre ou Grille d'icônes. Les animaux non découverts sont des silhouettes noires.
|
||||
**Emplacement** : Menu Principal -> Bestiaire.
|
||||
**Intégration** : Modal Plein Écran.
|
||||
**Navigation** : Filtres (Biome, Rareté) -> Clic Animal -> Détail.
|
||||
**Événements** : `OPEN_BESTIARY`.
|
||||
|
||||
#### Assets
|
||||
- **Musiques** : N/A
|
||||
- **Sons** : `page_turn.mp3`.
|
||||
- **Graphiques** : Fond Livre ancien.
|
||||
- **Images** : 75 Icônes Animaux.
|
||||
- **Vidéos** : N/A
|
||||
- **Animations** : N/A
|
||||
- **Couleurs** : Sépia/Papier.
|
||||
- **Textes** : Lore/Description.
|
||||
- **Formes** : N/A
|
||||
104
docs/specs/inventaire_bebe_animaux.md
Normal file
104
docs/specs/inventaire_bebe_animaux.md
Normal file
@@ -0,0 +1,104 @@
|
||||
# Spécifications : Inventaire des Bébés Animaux
|
||||
|
||||
## Correspondance
|
||||
Pour chaque animal adulte, il existe une version "Bébé".
|
||||
- **Visuel** : Version "chibi" ou réduite du sprite adulte.
|
||||
- **Nom** : "Bébé [Nom Animal]".
|
||||
|
||||
# Annexes Techniques
|
||||
|
||||
## 1. Données et États
|
||||
### Modèle de Données (JSON)
|
||||
Même table que `animal_types` avec flag `is_baby`.
|
||||
|
||||
### Caractéristiques Initiales
|
||||
N/A
|
||||
|
||||
### Scores Initiaux
|
||||
N/A
|
||||
|
||||
## 2. Cycles de Vie et Apparition
|
||||
### Conditions d'Apparition
|
||||
N/A
|
||||
|
||||
### Conditions de Disparition
|
||||
N/A
|
||||
|
||||
### Hérédité
|
||||
N/A
|
||||
|
||||
## 3. Impacts Environnementaux
|
||||
### Impact Température
|
||||
N/A
|
||||
|
||||
### Impact Milieu (Biome)
|
||||
N/A
|
||||
|
||||
### Impact Saisons
|
||||
N/A
|
||||
|
||||
### Impact Heure / Jour-Nuit
|
||||
N/A
|
||||
|
||||
## 4. Impacts Biologiques et Sociaux
|
||||
### Impact Reproduction
|
||||
N/A
|
||||
|
||||
### Impact Mort
|
||||
N/A
|
||||
|
||||
### Impact Nourriture
|
||||
N/A
|
||||
|
||||
### Impact Attractivité (Visiteurs/Animaux)
|
||||
N/A
|
||||
|
||||
### Impact Valeur
|
||||
N/A
|
||||
|
||||
## 5. Impacts Logistiques et Économiques
|
||||
### Vitesse (Camion/Nurserie/Accueil/Recherche/Labo/Visite)
|
||||
N/A
|
||||
|
||||
### Dépenses (Boutiques/Visiteurs)
|
||||
N/A
|
||||
|
||||
### Trajet Visiteurs
|
||||
N/A
|
||||
|
||||
## 6. Événements
|
||||
### Événements du Jeu / Carte / Zoo / Ville / Visiteur
|
||||
N/A
|
||||
|
||||
## 7. Progression
|
||||
### Tableau des Upgrades
|
||||
N/A
|
||||
|
||||
## 8. Logique et Interfaces
|
||||
### Pseudo-code Impacts
|
||||
N/A
|
||||
|
||||
### Messages d'Infos / Alerte
|
||||
N/A
|
||||
|
||||
# Annexes UX/UI
|
||||
|
||||
## 1. Expérience Utilisateur (UX)
|
||||
### Visualisation Bébé (Passif)
|
||||
**Description UX** : Différencier les bébés des adultes.
|
||||
**Description UI** : Sprite plus petit (50% taille), tête plus grosse, yeux plus grands.
|
||||
**Emplacement** : Grille / Nurserie.
|
||||
**Intégration** : Sprite.
|
||||
**Navigation** : N/A
|
||||
**Événements** : N/A
|
||||
|
||||
#### Assets
|
||||
- **Musiques** : N/A
|
||||
- **Sons** : Cris plus aigus.
|
||||
- **Graphiques** : Sprites Chibi.
|
||||
- **Images** : N/A
|
||||
- **Vidéos** : N/A
|
||||
- **Animations** : Démarche maladroite.
|
||||
- **Couleurs** : Identiques Adulte.
|
||||
- **Textes** : N/A
|
||||
- **Formes** : N/A
|
||||
105
docs/specs/inventaire_heures.md
Normal file
105
docs/specs/inventaire_heures.md
Normal file
@@ -0,0 +1,105 @@
|
||||
# Spécifications : Inventaire des Heures de la Journée
|
||||
|
||||
## Cycle Journalier
|
||||
- **Aube** (06h-09h) : Arrivée des premiers visiteurs.
|
||||
- **Jour** (09h-18h) : Pic d'activité, chaleur maximale.
|
||||
- **Crépuscule** (18h-21h) : Départ des visiteurs.
|
||||
- **Nuit** (21h-06h) : Zoo fermé (sauf événements nocturnes), Température baisse, Repos des animaux.
|
||||
|
||||
# Annexes Techniques
|
||||
|
||||
## 1. Données et États
|
||||
### Modèle de Données (JSON)
|
||||
Table statique.
|
||||
|
||||
### Caractéristiques Initiales
|
||||
N/A
|
||||
|
||||
### Scores Initiaux
|
||||
N/A
|
||||
|
||||
## 2. Cycles de Vie et Apparition
|
||||
### Conditions d'Apparition
|
||||
Cycle perpétuel.
|
||||
|
||||
### Conditions de Disparition
|
||||
N/A
|
||||
|
||||
### Hérédité
|
||||
N/A
|
||||
|
||||
## 3. Impacts Environnementaux
|
||||
### Impact Température
|
||||
Voir `temperature.md`.
|
||||
|
||||
### Impact Milieu (Biome)
|
||||
N/A
|
||||
|
||||
### Impact Saisons
|
||||
N/A
|
||||
|
||||
### Impact Heure / Jour-Nuit
|
||||
N/A
|
||||
|
||||
## 4. Impacts Biologiques et Sociaux
|
||||
### Impact Reproduction
|
||||
N/A
|
||||
|
||||
### Impact Mort
|
||||
N/A
|
||||
|
||||
### Impact Nourriture
|
||||
N/A
|
||||
|
||||
### Impact Attractivité (Visiteurs/Animaux)
|
||||
N/A
|
||||
|
||||
### Impact Valeur
|
||||
N/A
|
||||
|
||||
## 5. Impacts Logistiques et Économiques
|
||||
### Vitesse (Camion/Nurserie/Accueil/Recherche/Labo/Visite)
|
||||
N/A
|
||||
|
||||
### Dépenses (Boutiques/Visiteurs)
|
||||
N/A
|
||||
|
||||
### Trajet Visiteurs
|
||||
N/A
|
||||
|
||||
## 6. Événements
|
||||
### Événements du Jeu / Carte / Zoo / Ville / Visiteur
|
||||
* **Aube/Crépuscule** : Changement luminosité globale.
|
||||
|
||||
## 7. Progression
|
||||
### Tableau des Upgrades
|
||||
N/A
|
||||
|
||||
## 8. Logique et Interfaces
|
||||
### Pseudo-code Impacts
|
||||
N/A
|
||||
|
||||
### Messages d'Infos / Alerte
|
||||
N/A
|
||||
|
||||
# Annexes UX/UI
|
||||
|
||||
## 1. Expérience Utilisateur (UX)
|
||||
### Cycle Jour/Nuit (Passif)
|
||||
**Description UX** : La luminosité change progressivement.
|
||||
**Description UI** : Filtre global de couleur (Bleu nuit -> Orange aube -> Blanc jour -> Orange crépuscule).
|
||||
**Emplacement** : Écran entier.
|
||||
**Intégration** : Layer FX.
|
||||
**Navigation** : N/A
|
||||
**Événements** : `TIME_CHANGE`.
|
||||
|
||||
#### Assets
|
||||
- **Musiques** : Thème Jour / Thème Nuit (plus calme).
|
||||
- **Sons** : Coq (Matin), Hibou (Nuit).
|
||||
- **Graphiques** : Ombres qui tournent (si 3D ou simulé).
|
||||
- **Images** : N/A
|
||||
- **Vidéos** : N/A
|
||||
- **Animations** : Transition couleur.
|
||||
- **Couleurs** : Palette Cycle.
|
||||
- **Textes** : Horloge "14:00".
|
||||
- **Formes** : N/A
|
||||
109
docs/specs/inventaire_meteos.md
Normal file
109
docs/specs/inventaire_meteos.md
Normal file
@@ -0,0 +1,109 @@
|
||||
# Spécifications : Inventaire des Météos
|
||||
|
||||
## Types de Météo
|
||||
1. **Ensoleillé** : Bonus attractivité, Température +1°C.
|
||||
2. **Nuageux** : Neutre.
|
||||
3. **Pluvieux** : Malus attractivité (visiteurs partent plus vite), Bonus biome "Marécage/Océan".
|
||||
4. **Orage** : Stress animaux (bruit), Malus fort visiteurs.
|
||||
5. **Neige** : Température -5°C, Bonus biome "Polaire/Montagne".
|
||||
6. **Canicule** : Température +5°C, Risque surchauffe.
|
||||
|
||||
# Annexes Techniques
|
||||
|
||||
## 1. Données et États
|
||||
### Modèle de Données (JSON)
|
||||
Table statique.
|
||||
|
||||
### Caractéristiques Initiales
|
||||
N/A
|
||||
|
||||
### Scores Initiaux
|
||||
N/A
|
||||
|
||||
## 2. Cycles de Vie et Apparition
|
||||
### Conditions d'Apparition
|
||||
Probabilités selon Saison.
|
||||
|
||||
### Conditions de Disparition
|
||||
Changement toutes les X heures ou jours.
|
||||
|
||||
### Hérédité
|
||||
N/A
|
||||
|
||||
## 3. Impacts Environnementaux
|
||||
### Impact Température
|
||||
Voir liste ci-dessus.
|
||||
|
||||
### Impact Milieu (Biome)
|
||||
N/A
|
||||
|
||||
### Impact Saisons
|
||||
N/A
|
||||
|
||||
### Impact Heure / Jour-Nuit
|
||||
N/A
|
||||
|
||||
## 4. Impacts Biologiques et Sociaux
|
||||
### Impact Reproduction
|
||||
N/A
|
||||
|
||||
### Impact Mort
|
||||
N/A
|
||||
|
||||
### Impact Nourriture
|
||||
N/A
|
||||
|
||||
### Impact Attractivité (Visiteurs/Animaux)
|
||||
Voir liste ci-dessus.
|
||||
|
||||
### Impact Valeur
|
||||
N/A
|
||||
|
||||
## 5. Impacts Logistiques et Économiques
|
||||
### Vitesse (Camion/Nurserie/Accueil/Recherche/Labo/Visite)
|
||||
**Neige/Orage** : Ralentissement camions (-20%).
|
||||
|
||||
### Dépenses (Boutiques/Visiteurs)
|
||||
**Pluie** : Augmente vente parapluies/abris.
|
||||
|
||||
### Trajet Visiteurs
|
||||
N/A
|
||||
|
||||
## 6. Événements
|
||||
### Événements du Jeu / Carte / Zoo / Ville / Visiteur
|
||||
* **Changement Météo** : Notification.
|
||||
|
||||
## 7. Progression
|
||||
### Tableau des Upgrades
|
||||
N/A
|
||||
|
||||
## 8. Logique et Interfaces
|
||||
### Pseudo-code Impacts
|
||||
N/A
|
||||
|
||||
### Messages d'Infos / Alerte
|
||||
| ID | Niveau | Message |
|
||||
| :--- | :--- | :--- |
|
||||
| `WEATHER_CHANGE` | Info | "La météo change : [Nouvelle Météo]" |
|
||||
|
||||
# Annexes UX/UI
|
||||
|
||||
## 1. Expérience Utilisateur (UX)
|
||||
### Ambiance Météo (Passif)
|
||||
**Description UX** : Le joueur ressent la météo actuelle.
|
||||
**Description UI** : Overlay plein écran (Pluie, Neige, Rayons soleil). Nuages qui passent (ombres).
|
||||
**Emplacement** : Écran entier.
|
||||
**Intégration** : Layer FX.
|
||||
**Navigation** : N/A
|
||||
**Événements** : `WEATHER_FX`.
|
||||
|
||||
#### Assets
|
||||
- **Musiques** : N/A
|
||||
- **Sons** : Pluie, Vent, Tonnerre.
|
||||
- **Graphiques** : Particules Pluie/Neige.
|
||||
- **Images** : N/A
|
||||
- **Vidéos** : N/A
|
||||
- **Animations** : Chute particules.
|
||||
- **Couleurs** : Teinte Bleue (Nuit/Pluie), Jaune (Soleil).
|
||||
- **Textes** : N/A
|
||||
- **Formes** : N/A
|
||||
116
docs/specs/inventaire_milieux.md
Normal file
116
docs/specs/inventaire_milieux.md
Normal file
@@ -0,0 +1,116 @@
|
||||
# Spécifications : Inventaire des Milieux
|
||||
|
||||
## Liste des Milieux (Couleurs)
|
||||
1. **Prairie Tendre** (Vert clair)
|
||||
2. **Forêt Dense** (Vert foncé)
|
||||
3. **Savane** (Jaune/Ocre)
|
||||
4. **Désert** (Sable)
|
||||
5. **Plage** (Beige)
|
||||
6. **Océan Surface** (Bleu clair)
|
||||
7. **Océan Profond** (Bleu foncé)
|
||||
8. **Récif** (Corail/Multicolore)
|
||||
9. **Montagne Basse** (Gris vert)
|
||||
10. **Roche** (Gris)
|
||||
11. **Sommet Enneigé** (Blanc)
|
||||
12. **Volcanique** (Noir/Rouge)
|
||||
13. **Marécage** (Vert boue)
|
||||
14. **Toundra** (Bleu gris)
|
||||
15. **Jungle** (Vert saturé)
|
||||
|
||||
# Annexes Techniques
|
||||
|
||||
## 1. Données et États
|
||||
### Modèle de Données (JSON)
|
||||
Table statique (Reference Data).
|
||||
|
||||
### Caractéristiques Initiales
|
||||
Voir liste ci-dessus.
|
||||
|
||||
### Scores Initiaux
|
||||
N/A
|
||||
|
||||
## 2. Cycles de Vie et Apparition
|
||||
### Conditions d'Apparition
|
||||
N/A
|
||||
|
||||
### Conditions de Disparition
|
||||
N/A
|
||||
|
||||
### Hérédité
|
||||
N/A
|
||||
|
||||
## 3. Impacts Environnementaux
|
||||
### Impact Température
|
||||
Chaque milieu a une T° par défaut.
|
||||
|
||||
### Impact Milieu (Biome)
|
||||
N/A
|
||||
|
||||
### Impact Saisons
|
||||
N/A
|
||||
|
||||
### Impact Heure / Jour-Nuit
|
||||
N/A
|
||||
|
||||
## 4. Impacts Biologiques et Sociaux
|
||||
### Impact Reproduction
|
||||
N/A
|
||||
|
||||
### Impact Mort
|
||||
N/A
|
||||
|
||||
### Impact Nourriture
|
||||
N/A
|
||||
|
||||
### Impact Attractivité (Visiteurs/Animaux)
|
||||
N/A
|
||||
|
||||
### Impact Valeur
|
||||
N/A
|
||||
|
||||
## 5. Impacts Logistiques et Économiques
|
||||
### Vitesse (Camion/Nurserie/Accueil/Recherche/Labo/Visite)
|
||||
N/A
|
||||
|
||||
### Dépenses (Boutiques/Visiteurs)
|
||||
N/A
|
||||
|
||||
### Trajet Visiteurs
|
||||
N/A
|
||||
|
||||
## 6. Événements
|
||||
### Événements du Jeu / Carte / Zoo / Ville / Visiteur
|
||||
N/A
|
||||
|
||||
## 7. Progression
|
||||
### Tableau des Upgrades
|
||||
N/A
|
||||
|
||||
## 8. Logique et Interfaces
|
||||
### Pseudo-code Impacts
|
||||
N/A
|
||||
|
||||
### Messages d'Infos / Alerte
|
||||
N/A
|
||||
|
||||
# Annexes UX/UI
|
||||
|
||||
## 1. Expérience Utilisateur (UX)
|
||||
### Palette Biome (Consultation)
|
||||
**Description UX** : Le joueur consulte la liste des biomes disponibles pour terraformer.
|
||||
**Description UI** : Grille de carrés colorés avec infobulle (Nom, T°).
|
||||
**Emplacement** : Outil Terraformation.
|
||||
**Intégration** : Sélecteur.
|
||||
**Navigation** : Clic Couleur.
|
||||
**Événements** : `SELECT_BIOME`.
|
||||
|
||||
#### Assets
|
||||
- **Musiques** : N/A
|
||||
- **Sons** : `select.mp3`.
|
||||
- **Graphiques** : Carrés de texture.
|
||||
- **Images** : N/A
|
||||
- **Vidéos** : N/A
|
||||
- **Animations** : N/A
|
||||
- **Couleurs** : Palette 15 couleurs.
|
||||
- **Textes** : Noms des milieux.
|
||||
- **Formes** : Carrés.
|
||||
108
docs/specs/inventaire_problemes_visiteurs.md
Normal file
108
docs/specs/inventaire_problemes_visiteurs.md
Normal file
@@ -0,0 +1,108 @@
|
||||
# Spécifications : Inventaire des Problèmes et Exigences Visiteurs
|
||||
|
||||
## Liste des Incidents
|
||||
1. **Soif** : "J'ai soif !" -> Nécessite un stand de boisson ou une boutique proche.
|
||||
2. **Fatigue** : "J'ai mal aux pieds..." -> Nécessite un banc.
|
||||
3. **Saleté** : "C'est sale ici !" -> Nécessite un nettoyage (clic) ou une poubelle.
|
||||
4. **Frustration** : "On ne voit rien !" -> Animal trop loin ou caché.
|
||||
5. **Envie** : "Je veux une peluche !" -> Nécessite une boutique de souvenirs.
|
||||
6. **Photo** : "Quelle merveille !" -> Le visiteur veut prendre une photo (clic bonus).
|
||||
|
||||
# Annexes Techniques
|
||||
|
||||
## 1. Données et États
|
||||
### Modèle de Données (JSON)
|
||||
Table statique.
|
||||
|
||||
### Caractéristiques Initiales
|
||||
N/A
|
||||
|
||||
### Scores Initiaux
|
||||
N/A
|
||||
|
||||
## 2. Cycles de Vie et Apparition
|
||||
### Conditions d'Apparition
|
||||
Aléatoire sur Visiteur.
|
||||
|
||||
### Conditions de Disparition
|
||||
Résolution ou Départ visiteur.
|
||||
|
||||
### Hérédité
|
||||
N/A
|
||||
|
||||
## 3. Impacts Environnementaux
|
||||
### Impact Température
|
||||
**Canicule** : Augmente probabilité "Soif".
|
||||
|
||||
### Impact Milieu (Biome)
|
||||
N/A
|
||||
|
||||
### Impact Saisons
|
||||
N/A
|
||||
|
||||
### Impact Heure / Jour-Nuit
|
||||
N/A
|
||||
|
||||
## 4. Impacts Biologiques et Sociaux
|
||||
### Impact Reproduction
|
||||
N/A
|
||||
|
||||
### Impact Mort
|
||||
N/A
|
||||
|
||||
### Impact Nourriture
|
||||
N/A
|
||||
|
||||
### Impact Attractivité (Visiteurs/Animaux)
|
||||
N/A
|
||||
|
||||
### Impact Valeur
|
||||
N/A
|
||||
|
||||
## 5. Impacts Logistiques et Économiques
|
||||
### Vitesse (Camion/Nurserie/Accueil/Recherche/Labo/Visite)
|
||||
N/A
|
||||
|
||||
### Dépenses (Boutiques/Visiteurs)
|
||||
N/A
|
||||
|
||||
### Trajet Visiteurs
|
||||
N/A
|
||||
|
||||
## 6. Événements
|
||||
### Événements du Jeu / Carte / Zoo / Ville / Visiteur
|
||||
* **Incident Apparu** : Bulle visible.
|
||||
* **Incident Résolu** : Gain.
|
||||
|
||||
## 7. Progression
|
||||
### Tableau des Upgrades
|
||||
N/A
|
||||
|
||||
## 8. Logique et Interfaces
|
||||
### Pseudo-code Impacts
|
||||
N/A
|
||||
|
||||
### Messages d'Infos / Alerte
|
||||
N/A
|
||||
|
||||
# Annexes UX/UI
|
||||
|
||||
## 1. Expérience Utilisateur (UX)
|
||||
### Bulles d'Incidents (Action)
|
||||
**Description UX** : Voir `visiteur.md`.
|
||||
**Description UI** : Icônes spécifiques pour chaque problème (Goutte, Zzz, Poubelle, Œil barré, Cadeau, Appareil photo).
|
||||
**Emplacement** : Visiteur.
|
||||
**Intégration** : Bulle.
|
||||
**Navigation** : Clic.
|
||||
**Événements** : `INCIDENT_ICON`.
|
||||
|
||||
#### Assets
|
||||
- **Musiques** : N/A
|
||||
- **Sons** : Variés selon incident (Bruit eau, Bâillement).
|
||||
- **Graphiques** : Set d'icônes vectorielles.
|
||||
- **Images** : N/A
|
||||
- **Vidéos** : N/A
|
||||
- **Animations** : Pop.
|
||||
- **Couleurs** : Noir sur Blanc.
|
||||
- **Textes** : N/A
|
||||
- **Formes** : Bulle.
|
||||
116
docs/specs/inventaire_quetes.md
Normal file
116
docs/specs/inventaire_quetes.md
Normal file
@@ -0,0 +1,116 @@
|
||||
# Spécifications : Inventaire des Quêtes
|
||||
|
||||
## Types d'Objectifs (Journaliers)
|
||||
1. **Économique** : "Gagner 1000 pièces", "Vendre pour 500 pièces".
|
||||
2. **Construction** : "Construire une boutique", "Améliorer la nurserie".
|
||||
3. **Élevage** : "Faire naître un bébé", "Avoir 3 animaux de milieu Océan".
|
||||
4. **Social** : "Avoir 50 visiteurs simultanés", "Résoudre 5 incidents".
|
||||
|
||||
# Annexes Techniques
|
||||
|
||||
## 1. Données et États
|
||||
### Modèle de Données (JSON)
|
||||
```json
|
||||
{
|
||||
"id": "uuid",
|
||||
"type": "quest",
|
||||
"objective_type": "string",
|
||||
"target_value": "int",
|
||||
"reward_coins": "int",
|
||||
"is_completed": "boolean"
|
||||
}
|
||||
```
|
||||
|
||||
### Caractéristiques Initiales
|
||||
N/A
|
||||
|
||||
### Scores Initiaux
|
||||
N/A
|
||||
|
||||
## 2. Cycles de Vie et Apparition
|
||||
### Conditions d'Apparition
|
||||
Reset quotidien (Minuit serveur).
|
||||
|
||||
### Conditions de Disparition
|
||||
Complétion ou Reset.
|
||||
|
||||
### Hérédité
|
||||
N/A
|
||||
|
||||
## 3. Impacts Environnementaux
|
||||
### Impact Température
|
||||
N/A
|
||||
|
||||
### Impact Milieu (Biome)
|
||||
N/A
|
||||
|
||||
### Impact Saisons
|
||||
N/A
|
||||
|
||||
### Impact Heure / Jour-Nuit
|
||||
N/A
|
||||
|
||||
## 4. Impacts Biologiques et Sociaux
|
||||
### Impact Reproduction
|
||||
N/A
|
||||
|
||||
### Impact Mort
|
||||
N/A
|
||||
|
||||
### Impact Nourriture
|
||||
N/A
|
||||
|
||||
### Impact Attractivité (Visiteurs/Animaux)
|
||||
N/A
|
||||
|
||||
### Impact Valeur
|
||||
N/A
|
||||
|
||||
## 5. Impacts Logistiques et Économiques
|
||||
### Vitesse (Camion/Nurserie/Accueil/Recherche/Labo/Visite)
|
||||
N/A
|
||||
|
||||
### Dépenses (Boutiques/Visiteurs)
|
||||
N/A
|
||||
|
||||
### Trajet Visiteurs
|
||||
N/A
|
||||
|
||||
## 6. Événements
|
||||
### Événements du Jeu / Carte / Zoo / Ville / Visiteur
|
||||
* **Quête Complétée** : Gain récompense.
|
||||
|
||||
## 7. Progression
|
||||
### Tableau des Upgrades
|
||||
N/A
|
||||
|
||||
## 8. Logique et Interfaces
|
||||
### Pseudo-code Impacts
|
||||
N/A
|
||||
|
||||
### Messages d'Infos / Alerte
|
||||
| ID | Niveau | Message |
|
||||
| :--- | :--- | :--- |
|
||||
| `QUEST_COMPLETE` | Succès | "Quête terminée ! Récompense reçue." |
|
||||
|
||||
# Annexes UX/UI
|
||||
|
||||
## 1. Expérience Utilisateur (UX)
|
||||
### Suivi Quêtes (Permanent)
|
||||
**Description UX** : Le joueur voit ses objectifs en cours.
|
||||
**Description UI** : Liste compacte dans le HUD (ex: "Naissances : 2/5"). Coche verte quand fini.
|
||||
**Emplacement** : HUD Droite.
|
||||
**Intégration** : Widget rétractable.
|
||||
**Navigation** : Clic -> Détail Quêtes.
|
||||
**Événements** : `QUEST_UPDATE`.
|
||||
|
||||
#### Assets
|
||||
- **Musiques** : N/A
|
||||
- **Sons** : `quest_complete.mp3`.
|
||||
- **Graphiques** : Icône Parchemin.
|
||||
- **Images** : N/A
|
||||
- **Vidéos** : N/A
|
||||
- **Animations** : Flash vert à la complétion.
|
||||
- **Couleurs** : Blanc (En cours), Vert (Fini).
|
||||
- **Textes** : Titre Quête, Progression.
|
||||
- **Formes** : Liste.
|
||||
146
docs/specs/inventaire_saisons.md
Normal file
146
docs/specs/inventaire_saisons.md
Normal file
@@ -0,0 +1,146 @@
|
||||
# Spécifications : Inventaire des Saisons
|
||||
|
||||
## Cycle Annuel
|
||||
Le jeu intègre un cycle de 4 saisons qui influence l'environnement et les animaux.
|
||||
Chaque saison dure un nombre défini de jours de jeu (ex: 7 jours réels ou 30 jours in-game).
|
||||
|
||||
## Liste des Saisons
|
||||
|
||||
### 1. Printemps
|
||||
- **Météo dominante** : Ensoleillé, Pluvieux.
|
||||
- **Température** : Tempérée (+0°C).
|
||||
- **Impact Général** :
|
||||
- **Reproduction** : Bonus fort pour la plupart des animaux (+20% naissances).
|
||||
- **Visiteurs** : Affluence moyenne.
|
||||
- **Impact Spécifique** :
|
||||
- Favorise les animaux de type "Prairie" et "Forêt".
|
||||
|
||||
### 2. Été
|
||||
- **Météo dominante** : Ensoleillé, Canicule, Orage.
|
||||
- **Température** : Chaude (+5°C à +10°C).
|
||||
- **Impact Général** :
|
||||
- **Survie** : Risque de surchauffe pour les animaux polaires/montagne.
|
||||
- **Visiteurs** : Pic d'affluence (vacances), forte demande en boissons/glaces.
|
||||
- **Impact Spécifique** :
|
||||
- Favorise les animaux de type "Désert", "Savane", "Jungle".
|
||||
- Pénalise les animaux de type "Toundra", "Polaire".
|
||||
|
||||
### 3. Automne
|
||||
- **Météo dominante** : Pluvieux, Nuageux, Vent.
|
||||
- **Température** : Fraîche (-2°C).
|
||||
- **Impact Général** :
|
||||
- **Reproduction** : Taux normal.
|
||||
- **Maladie** : Légère augmentation des risques si les animaux sont mouillés/froids.
|
||||
- **Impact Spécifique** :
|
||||
- Favorise les animaux de type "Forêt", "Marécage".
|
||||
|
||||
### 4. Hiver
|
||||
- **Météo dominante** : Neige, Nuageux, Froid.
|
||||
- **Température** : Froide (-5°C à -15°C).
|
||||
- **Impact Général** :
|
||||
- **Survie** : Risque d'hypothermie pour les animaux tropicaux.
|
||||
- **Reproduction** : Malus fort (sauf espèces adaptées).
|
||||
- **Visiteurs** : Baisse d'affluence, sauf si événements spéciaux (Noël).
|
||||
- **Impact Spécifique** :
|
||||
- Favorise les animaux de type "Toundra", "Polaire", "Montagne".
|
||||
- Pénalise fortement les animaux de type "Désert", "Jungle", "Récif".
|
||||
|
||||
# Annexes Techniques
|
||||
|
||||
## 1. Données et États
|
||||
### Modèle de Données (JSON)
|
||||
Table statique.
|
||||
|
||||
### Caractéristiques Initiales
|
||||
N/A
|
||||
|
||||
### Scores Initiaux
|
||||
N/A
|
||||
|
||||
## 2. Cycles de Vie et Apparition
|
||||
### Conditions d'Apparition
|
||||
Cycle annuel fixe.
|
||||
|
||||
### Conditions de Disparition
|
||||
Fin de durée saison.
|
||||
|
||||
### Hérédité
|
||||
N/A
|
||||
|
||||
## 3. Impacts Environnementaux
|
||||
### Impact Température
|
||||
Voir liste ci-dessus.
|
||||
|
||||
### Impact Milieu (Biome)
|
||||
N/A
|
||||
|
||||
### Impact Saisons
|
||||
N/A
|
||||
|
||||
### Impact Heure / Jour-Nuit
|
||||
N/A
|
||||
|
||||
## 4. Impacts Biologiques et Sociaux
|
||||
### Impact Reproduction
|
||||
Voir liste ci-dessus.
|
||||
|
||||
### Impact Mort
|
||||
Voir liste ci-dessus.
|
||||
|
||||
### Impact Nourriture
|
||||
N/A
|
||||
|
||||
### Impact Attractivité (Visiteurs/Animaux)
|
||||
Voir liste ci-dessus.
|
||||
|
||||
### Impact Valeur
|
||||
N/A
|
||||
|
||||
## 5. Impacts Logistiques et Économiques
|
||||
### Vitesse (Camion/Nurserie/Accueil/Recherche/Labo/Visite)
|
||||
N/A
|
||||
|
||||
### Dépenses (Boutiques/Visiteurs)
|
||||
N/A
|
||||
|
||||
### Trajet Visiteurs
|
||||
N/A
|
||||
|
||||
## 6. Événements
|
||||
### Événements du Jeu / Carte / Zoo / Ville / Visiteur
|
||||
* **Changement Saison** : Notification majeure.
|
||||
|
||||
## 7. Progression
|
||||
### Tableau des Upgrades
|
||||
N/A
|
||||
|
||||
## 8. Logique et Interfaces
|
||||
### Pseudo-code Impacts
|
||||
N/A
|
||||
|
||||
### Messages d'Infos / Alerte
|
||||
| ID | Niveau | Message |
|
||||
| :--- | :--- | :--- |
|
||||
| `SEASON_CHANGE` | Info | "C'est le [Saison] !" |
|
||||
|
||||
# Annexes UX/UI
|
||||
|
||||
## 1. Expérience Utilisateur (UX)
|
||||
### Ambiance Saisonnière (Passif)
|
||||
**Description UX** : Le décor change selon la saison.
|
||||
**Description UI** : Tilesets modifiés (Herbe verte -> Herbe jaune -> Feuilles mortes -> Neige).
|
||||
**Emplacement** : Grille Zoo.
|
||||
**Intégration** : Assets graphiques.
|
||||
**Navigation** : N/A
|
||||
**Événements** : `SEASON_VISUAL_UPDATE`.
|
||||
|
||||
#### Assets
|
||||
- **Musiques** : Thèmes saisonniers (Vivaldi remix ?).
|
||||
- **Sons** : Vent hivernal, Oiseaux printemps.
|
||||
- **Graphiques** : 4 variantes de chaque Tile.
|
||||
- **Images** : Icône Saison HUD.
|
||||
- **Vidéos** : N/A
|
||||
- **Animations** : Feuilles qui tombent (Automne).
|
||||
- **Couleurs** : Vert, Jaune, Orange, Blanc.
|
||||
- **Textes** : "Printemps", "Été", etc.
|
||||
- **Formes** : N/A
|
||||
108
docs/specs/inventaire_temperatures.md
Normal file
108
docs/specs/inventaire_temperatures.md
Normal file
@@ -0,0 +1,108 @@
|
||||
# Spécifications : Inventaire des Températures
|
||||
|
||||
## Échelle de Température
|
||||
1. **Polaire** (-30°C à -10°C) - Feedback : Givre intense
|
||||
2. **Froid** (-10°C à 5°C) - Feedback : Givre léger
|
||||
3. **Frais** (5°C à 15°C)
|
||||
4. **Tempéré** (15°C à 25°C) - Idéal pour la plupart des animaux de base
|
||||
5. **Chaud** (25°C à 35°C)
|
||||
6. **Aride** (35°C à 50°C) - Feedback : Vapeur légère
|
||||
7. **Brûlant** (> 50°C) - Feedback : Vapeur rouge/Feu
|
||||
|
||||
# Annexes Techniques
|
||||
|
||||
## 1. Données et États
|
||||
### Modèle de Données (JSON)
|
||||
Table statique.
|
||||
|
||||
### Caractéristiques Initiales
|
||||
N/A
|
||||
|
||||
### Scores Initiaux
|
||||
N/A
|
||||
|
||||
## 2. Cycles de Vie et Apparition
|
||||
### Conditions d'Apparition
|
||||
N/A
|
||||
|
||||
### Conditions de Disparition
|
||||
N/A
|
||||
|
||||
### Hérédité
|
||||
N/A
|
||||
|
||||
## 3. Impacts Environnementaux
|
||||
### Impact Température
|
||||
N/A
|
||||
|
||||
### Impact Milieu (Biome)
|
||||
N/A
|
||||
|
||||
### Impact Saisons
|
||||
N/A
|
||||
|
||||
### Impact Heure / Jour-Nuit
|
||||
N/A
|
||||
|
||||
## 4. Impacts Biologiques et Sociaux
|
||||
### Impact Reproduction
|
||||
N/A
|
||||
|
||||
### Impact Mort
|
||||
N/A
|
||||
|
||||
### Impact Nourriture
|
||||
N/A
|
||||
|
||||
### Impact Attractivité (Visiteurs/Animaux)
|
||||
N/A
|
||||
|
||||
### Impact Valeur
|
||||
N/A
|
||||
|
||||
## 5. Impacts Logistiques et Économiques
|
||||
### Vitesse (Camion/Nurserie/Accueil/Recherche/Labo/Visite)
|
||||
N/A
|
||||
|
||||
### Dépenses (Boutiques/Visiteurs)
|
||||
N/A
|
||||
|
||||
### Trajet Visiteurs
|
||||
N/A
|
||||
|
||||
## 6. Événements
|
||||
### Événements du Jeu / Carte / Zoo / Ville / Visiteur
|
||||
N/A
|
||||
|
||||
## 7. Progression
|
||||
### Tableau des Upgrades
|
||||
N/A
|
||||
|
||||
## 8. Logique et Interfaces
|
||||
### Pseudo-code Impacts
|
||||
N/A
|
||||
|
||||
### Messages d'Infos / Alerte
|
||||
N/A
|
||||
|
||||
# Annexes UX/UI
|
||||
|
||||
## 1. Expérience Utilisateur (UX)
|
||||
### Thermomètre (Consultation)
|
||||
**Description UX** : Le joueur voit la température actuelle.
|
||||
**Description UI** : Jauge verticale (Thermomètre) avec mercure rouge. Graduations colorées (Bleu bas, Rouge haut).
|
||||
**Emplacement** : HUD ou Info Case.
|
||||
**Intégration** : Widget.
|
||||
**Navigation** : N/A
|
||||
**Événements** : `UPDATE_TEMP`.
|
||||
|
||||
#### Assets
|
||||
- **Musiques** : N/A
|
||||
- **Sons** : N/A
|
||||
- **Graphiques** : Sprite Thermomètre.
|
||||
- **Images** : N/A
|
||||
- **Vidéos** : N/A
|
||||
- **Animations** : Niveau qui monte/descend.
|
||||
- **Couleurs** : Dégradé Bleu/Rouge.
|
||||
- **Textes** : "20°C".
|
||||
- **Formes** : N/A
|
||||
158
docs/specs/joueur.md
Normal file
158
docs/specs/joueur.md
Normal file
@@ -0,0 +1,158 @@
|
||||
# Spécifications : Joueur
|
||||
|
||||
## Définition
|
||||
L'utilisateur humain.
|
||||
|
||||
## Propriétés
|
||||
- **Compte** : Authentifié par clé privée (pas de mot de passe).
|
||||
- **Ressources** : Pièces, Unités de recherche.
|
||||
- **Zoo** : Possède et gère un unique zoo.
|
||||
- **Démarrage** : Commence avec 200 pièces et 3 couples reproducteurs basiques.
|
||||
|
||||
## Actions
|
||||
- Achat/Vente.
|
||||
- Placement/Déplacement.
|
||||
- Upgrade bâtiments/carte.
|
||||
- Gestion des incidents visiteurs.
|
||||
- Configuration du profil d'absence (Bot).
|
||||
|
||||
# Annexes Techniques
|
||||
|
||||
## 1. Données et États
|
||||
### Modèle de Données (JSON)
|
||||
```json
|
||||
{
|
||||
"id": "uuid",
|
||||
"public_key": "string (ed25519)",
|
||||
"username": "string",
|
||||
"created_at": "timestamp",
|
||||
"last_login": "timestamp",
|
||||
"resources": {
|
||||
"coins": "integer",
|
||||
"research_points": "integer"
|
||||
},
|
||||
"settings": {
|
||||
"music_enabled": "boolean",
|
||||
"bot_profile_id": "integer"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### Caractéristiques Initiales
|
||||
| Caractéristique | Valeur Initiale |
|
||||
| :--- | :--- |
|
||||
| Pièces | 200 |
|
||||
| Recherche | 0 |
|
||||
| Animaux | 3 couples (6 animaux) |
|
||||
|
||||
### Scores Initiaux
|
||||
N/A
|
||||
|
||||
## 2. Cycles de Vie et Apparition
|
||||
### Conditions d'Apparition
|
||||
Inscription.
|
||||
|
||||
### Conditions de Disparition
|
||||
Suppression compte.
|
||||
|
||||
### Hérédité
|
||||
N/A
|
||||
|
||||
## 3. Impacts Environnementaux
|
||||
### Impact Température
|
||||
N/A
|
||||
|
||||
### Impact Milieu (Biome)
|
||||
N/A
|
||||
|
||||
### Impact Saisons
|
||||
N/A
|
||||
|
||||
### Impact Heure / Jour-Nuit
|
||||
N/A
|
||||
|
||||
## 4. Impacts Biologiques et Sociaux
|
||||
### Impact Reproduction
|
||||
**Démarrage autonome** : Le joueur reçoit 3 couples reproducteurs basiques (Lapins/Poules/Canards selon biome) pour garantir une reproduction immédiate et alimenter le marché bas prix.
|
||||
|
||||
### Impact Mort
|
||||
N/A
|
||||
|
||||
### Impact Nourriture
|
||||
N/A
|
||||
|
||||
### Impact Attractivité (Visiteurs/Animaux)
|
||||
N/A
|
||||
|
||||
### Impact Valeur
|
||||
N/A
|
||||
|
||||
## 5. Impacts Logistiques et Économiques
|
||||
### Vitesse (Camion/Nurserie/Accueil/Recherche/Labo/Visite)
|
||||
N/A
|
||||
|
||||
### Dépenses (Boutiques/Visiteurs)
|
||||
N/A
|
||||
|
||||
### Trajet Visiteurs
|
||||
N/A
|
||||
|
||||
## 6. Événements
|
||||
### Événements du Jeu / Carte / Zoo / Ville / Visiteur
|
||||
* **Connexion** : Chargement état.
|
||||
* **Quête** : Validation.
|
||||
|
||||
## 7. Progression
|
||||
### Tableau des Upgrades
|
||||
N/A
|
||||
|
||||
## 8. Logique et Interfaces
|
||||
### Pseudo-code Impacts
|
||||
N/A
|
||||
|
||||
### Messages d'Infos / Alerte
|
||||
| ID | Niveau | Message |
|
||||
| :--- | :--- | :--- |
|
||||
| `WELCOME` | Info | "Bienvenue dans votre nouveau zoo !" |
|
||||
| `NO_MONEY` | Alerte | "Fonds insuffisants." |
|
||||
|
||||
# Annexes UX/UI
|
||||
|
||||
## 1. Expérience Utilisateur (UX)
|
||||
### HUD Principal (Permanent)
|
||||
**Description UX** : Le joueur voit en permanence ses ressources et accès rapides.
|
||||
**Description UI** : Barre supérieure avec Compteurs (Pièces, Recherche, Réputation). Barre inférieure ou latérale avec Menus (Construction, Carte Monde, Inventaire, Profil).
|
||||
**Emplacement** : Écran (Overlay).
|
||||
**Intégration** : Fixe.
|
||||
**Navigation** : Clic Menu -> Ouverture Panneau.
|
||||
**Événements** : `UI_CLICK`.
|
||||
|
||||
#### Assets
|
||||
- **Musiques** : N/A
|
||||
- **Sons** : `ui_click.mp3`.
|
||||
- **Graphiques** : Style UI "Bois et Pierre" ou "Moderne Clean".
|
||||
- **Images** : Icônes (Pièce, Fiole, Marteau, Carte).
|
||||
- **Vidéos** : N/A
|
||||
- **Animations** : Compteurs qui défilent quand gain/perte.
|
||||
- **Couleurs** : Or, Bleu, Blanc.
|
||||
- **Textes** : Chiffres, Labels menus.
|
||||
- **Formes** : Barres, Boutons ronds.
|
||||
|
||||
### Profil & Bot (Configuration)
|
||||
**Description UX** : Le joueur configure son avatar et son bot d'absence.
|
||||
**Description UI** : Modal Profil. Onglet "Gestion Absence" avec sélecteur de Bot (Famille > Spécialisation).
|
||||
**Emplacement** : Menu Profil.
|
||||
**Intégration** : Modal.
|
||||
**Navigation** : Profil -> Bot -> Sauvegarder.
|
||||
**Événements** : `SAVE_PROFILE`.
|
||||
|
||||
#### Assets
|
||||
- **Musiques** : N/A
|
||||
- **Sons** : `save_success.mp3`.
|
||||
- **Graphiques** : Portraits de bots.
|
||||
- **Images** : Avatars joueurs.
|
||||
- **Vidéos** : N/A
|
||||
- **Animations** : N/A
|
||||
- **Couleurs** : N/A
|
||||
- **Textes** : Description des bots ("Le Conservateur : Achète de la nourriture...").
|
||||
- **Formes** : Cartes de sélection.
|
||||
118
docs/specs/laboratoire.md
Normal file
118
docs/specs/laboratoire.md
Normal file
@@ -0,0 +1,118 @@
|
||||
# Spécifications : Laboratoire (Site)
|
||||
|
||||
## Définition
|
||||
Un laboratoire est un point d'intérêt spécial sur la Carte du Monde (POI).
|
||||
|
||||
## Fonction
|
||||
- **Offres Spéciales** : Propose périodiquement des œufs ou bébés animaux rares.
|
||||
- **Prix Fixe** : Contrairement aux zoos, les ventes du laboratoire sont souvent à prix fixe, sans enchères (ou règles spécifiques).
|
||||
- **Icône** : 🔬
|
||||
|
||||
## Interaction
|
||||
- **Achat** : Glisser l'offre du laboratoire vers le camion du joueur.
|
||||
|
||||
# Annexes Techniques
|
||||
|
||||
## 1. Données et États
|
||||
### Modèle de Données (JSON)
|
||||
```json
|
||||
{
|
||||
"id": "uuid",
|
||||
"type": "lab",
|
||||
"current_offer": { "animal_type": "string", "rarity": "int", "price": "int", "expires_at": "timestamp" }
|
||||
}
|
||||
```
|
||||
|
||||
### Caractéristiques Initiales
|
||||
N/A
|
||||
|
||||
### Scores Initiaux
|
||||
N/A
|
||||
|
||||
## 2. Cycles de Vie et Apparition
|
||||
### Conditions d'Apparition
|
||||
Génération carte.
|
||||
|
||||
### Conditions de Disparition
|
||||
N/A
|
||||
|
||||
### Hérédité
|
||||
N/A
|
||||
|
||||
## 3. Impacts Environnementaux
|
||||
### Impact Température
|
||||
N/A
|
||||
|
||||
### Impact Milieu (Biome)
|
||||
N/A
|
||||
|
||||
### Impact Saisons
|
||||
N/A
|
||||
|
||||
### Impact Heure / Jour-Nuit
|
||||
N/A
|
||||
|
||||
## 4. Impacts Biologiques et Sociaux
|
||||
### Impact Reproduction
|
||||
N/A
|
||||
|
||||
### Impact Mort
|
||||
N/A
|
||||
|
||||
### Impact Nourriture
|
||||
N/A
|
||||
|
||||
### Impact Attractivité (Visiteurs/Animaux)
|
||||
N/A
|
||||
|
||||
### Impact Valeur
|
||||
N/A
|
||||
|
||||
## 5. Impacts Logistiques et Économiques
|
||||
### Vitesse (Camion/Nurserie/Accueil/Recherche/Labo/Visite)
|
||||
**Rotation Offres** : 1 offre toutes les 4h à 24h.
|
||||
|
||||
### Dépenses (Boutiques/Visiteurs)
|
||||
N/A
|
||||
|
||||
### Trajet Visiteurs
|
||||
N/A
|
||||
|
||||
## 6. Événements
|
||||
### Événements du Jeu / Carte / Zoo / Ville / Visiteur
|
||||
* **Nouvelle Offre Rare** : Notification globale ou locale.
|
||||
|
||||
## 7. Progression
|
||||
### Tableau des Upgrades
|
||||
N/A
|
||||
|
||||
## 8. Logique et Interfaces
|
||||
### Pseudo-code Impacts
|
||||
N/A
|
||||
|
||||
### Messages d'Infos / Alerte
|
||||
| ID | Niveau | Message |
|
||||
| :--- | :--- | :--- |
|
||||
| `LAB_OFFER` | Info | "Le laboratoire propose un spécimen rare !" |
|
||||
|
||||
# Annexes UX/UI
|
||||
|
||||
## 1. Expérience Utilisateur (UX)
|
||||
### Offre Rare (Passif)
|
||||
**Description UX** : Le laboratoire a un stock spécial.
|
||||
**Description UI** : Halo brillant autour du labo. Icône "!" ou "ADN".
|
||||
**Emplacement** : Carte Monde.
|
||||
**Intégration** : Effet visuel.
|
||||
**Navigation** : N/A
|
||||
**Événements** : `LAB_GLOW`.
|
||||
|
||||
#### Assets
|
||||
- **Musiques** : N/A
|
||||
- **Sons** : `sci_fi_hum.mp3`.
|
||||
- **Graphiques** : Halo bleu néon.
|
||||
- **Images** : N/A
|
||||
- **Vidéos** : N/A
|
||||
- **Animations** : Pulsation.
|
||||
- **Couleurs** : Bleu électrique / Violet.
|
||||
- **Textes** : N/A
|
||||
- **Formes** : N/A
|
||||
153
docs/specs/milieu.md
Normal file
153
docs/specs/milieu.md
Normal file
@@ -0,0 +1,153 @@
|
||||
# Spécifications : Milieu (Biome/Couleur)
|
||||
|
||||
## Définition
|
||||
Le milieu représente l'environnement écologique d'une case, défini par sa couleur.
|
||||
|
||||
## Types de Milieux
|
||||
- **Prairie** (Tiers Gauche)
|
||||
- **Océan** (Tiers Milieu)
|
||||
- **Montagne** (Tiers Droite)
|
||||
- *Note : D'autres milieux (Forêt, Désert...) peuvent être définis par des couleurs intermédiaires.*
|
||||
|
||||
## Impact
|
||||
- **Survie** : Chaque animal a un milieu de prédilection. Un écart trop important entre la couleur de la case et la couleur idéale de l'animal entraîne stress, maladie et mort.
|
||||
- **Reproduction** : Un milieu idéal favorise la reproduction (bonus de score).
|
||||
- **Visuel** : Le fond de la case affiche la couleur du milieu.
|
||||
|
||||
# Annexes Techniques
|
||||
|
||||
## 1. Données et États
|
||||
### Modèle de Données (JSON)
|
||||
```json
|
||||
{
|
||||
"id": "integer (0-14)",
|
||||
"name": "string",
|
||||
"color_hex": "string (#RRGGBB)",
|
||||
"default_temperature": "float",
|
||||
"fertility_bonus": "float"
|
||||
}
|
||||
```
|
||||
|
||||
### Caractéristiques Initiales
|
||||
| ID | Nom | Couleur | T° Base |
|
||||
| :--- | :--- | :--- | :--- |
|
||||
| 0 | Prairie Tendre | #90EE90 | 20°C |
|
||||
| 5 | Océan Surface | #00BFFF | 15°C |
|
||||
| 9 | Montagne Basse | #A9A9A9 | 5°C |
|
||||
|
||||
### Scores Initiaux
|
||||
N/A
|
||||
|
||||
## 2. Cycles de Vie et Apparition
|
||||
### Conditions d'Apparition
|
||||
Génération carte (fixe).
|
||||
|
||||
### Conditions de Disparition
|
||||
N/A
|
||||
|
||||
### Hérédité
|
||||
N/A
|
||||
|
||||
## 3. Impacts Environnementaux
|
||||
### Impact Température
|
||||
Le milieu définit la température de base de la case (avant modificateurs saison/upgrade).
|
||||
|
||||
### Impact Milieu (Biome)
|
||||
Référence pour la compatibilité animale.
|
||||
|
||||
### Impact Saisons
|
||||
| Milieu | Sensibilité Saisons |
|
||||
| :--- | :--- |
|
||||
| Océan | Faible (Inertie thermique) |
|
||||
| Montagne | Forte (Neige en hiver) |
|
||||
| Prairie | Moyenne |
|
||||
|
||||
### Impact Heure / Jour-Nuit
|
||||
N/A
|
||||
|
||||
## 4. Impacts Biologiques et Sociaux
|
||||
### Impact Reproduction
|
||||
**Bonus** : +10% fertilité si animal sur son biome exact.
|
||||
|
||||
### Impact Mort
|
||||
N/A
|
||||
|
||||
### Impact Nourriture
|
||||
N/A
|
||||
|
||||
### Impact Attractivité (Visiteurs/Animaux)
|
||||
**Esthétique** : Un zoo avec des biomes variés est plus attractif (+5% par biome différent utilisé).
|
||||
|
||||
### Impact Valeur
|
||||
N/A
|
||||
|
||||
## 5. Impacts Logistiques et Économiques
|
||||
### Vitesse (Camion/Nurserie/Accueil/Recherche/Labo/Visite)
|
||||
N/A
|
||||
|
||||
### Dépenses (Boutiques/Visiteurs)
|
||||
N/A
|
||||
|
||||
### Trajet Visiteurs
|
||||
N/A
|
||||
|
||||
## 6. Événements
|
||||
### Événements du Jeu / Carte / Zoo / Ville / Visiteur
|
||||
N/A
|
||||
|
||||
## 7. Progression
|
||||
### Tableau des Upgrades
|
||||
**Changement de Milieu** :
|
||||
| Niveau | Coût | Précision | Temps |
|
||||
| :--- | :--- | :--- | :--- |
|
||||
| 1 | 500 | Changement vers biome adjacent | 0s |
|
||||
| 7 | 5000 | Changement vers n'importe quel biome | 0s |
|
||||
|
||||
## 8. Logique et Interfaces
|
||||
### Pseudo-code Impacts
|
||||
N/A
|
||||
|
||||
### Messages d'Infos / Alerte
|
||||
N/A
|
||||
|
||||
# Annexes UX/UI
|
||||
|
||||
## 1. Expérience Utilisateur (UX)
|
||||
### Identification Visuelle (Passif)
|
||||
**Description UX** : Le joueur identifie le biome à la couleur du sol.
|
||||
**Description UI** : Textures distinctes (Herbe, Sable, Roche, Eau). Transitions douces (dégradés) entre les cases adjacentes.
|
||||
**Textures** : Motifs discrets (brins d'herbe, cailloux, craquelures) superposés à la couleur pour l'accessibilité (daltonisme).
|
||||
**Emplacement** : Fond de Case.
|
||||
**Intégration** : Layer 0 (Background).
|
||||
**Navigation** : N/A
|
||||
**Événements** : `MAP_RENDER`.
|
||||
|
||||
#### Assets
|
||||
- **Musiques** : N/A
|
||||
- **Sons** : N/A
|
||||
- **Graphiques** : Tilesets (15 variations de couleur/texture).
|
||||
- **Images** : N/A
|
||||
- **Vidéos** : N/A
|
||||
- **Animations** : Eau qui ondule (Océan), Herbe qui bouge (Prairie).
|
||||
- **Couleurs** : Palette 15 couleurs (Cercle chromatique).
|
||||
- **Textes** : Tooltip "Biome : Prairie".
|
||||
- **Formes** : Carré.
|
||||
|
||||
### Feedback Incompatibilité (Passif)
|
||||
**Description UX** : Un animal est sur le mauvais biome.
|
||||
**Description UI** : L'herbe sous l'animal jaunit ou devient boueuse. L'animal a une bulle "Beurk".
|
||||
**Emplacement** : Case Zoo.
|
||||
**Intégration** : Overlay Case.
|
||||
**Navigation** : N/A
|
||||
**Événements** : `BIOME_MISMATCH`.
|
||||
|
||||
#### Assets
|
||||
- **Musiques** : N/A
|
||||
- **Sons** : N/A
|
||||
- **Graphiques** : Overlay "Sol Mort".
|
||||
- **Images** : N/A
|
||||
- **Vidéos** : N/A
|
||||
- **Animations** : Transition lente vers le jaune/marron.
|
||||
- **Couleurs** : Jaune paille, Marron.
|
||||
- **Textes** : N/A
|
||||
- **Formes** : N/A
|
||||
130
docs/specs/mort_bebe.md
Normal file
130
docs/specs/mort_bebe.md
Normal file
@@ -0,0 +1,130 @@
|
||||
# Spécifications : Mort des Bébés
|
||||
|
||||
## Causes Spécifiques
|
||||
- **Nurserie Pleine** : Si un œuf éclot et qu'il n'y a pas de place en nurserie ni sur le terrain.
|
||||
- **Vente Échouée** : Bébé resté trop longtemps en zone de vente (camion) sans acheteur et sans rapatriement.
|
||||
- **Conditions Extrêmes** : Les bébés ont des tolérances de température plus faibles que les adultes.
|
||||
|
||||
## Conséquences
|
||||
- Perte définitive de l'animal.
|
||||
- Pénalité forte sur le Score de Réputation.
|
||||
- Pas de récupération de ressources (pièces).
|
||||
|
||||
# Annexes Techniques
|
||||
|
||||
## 1. Données et États
|
||||
### Modèle de Données (JSON)
|
||||
Événement loggé.
|
||||
|
||||
### Caractéristiques Initiales
|
||||
N/A
|
||||
|
||||
### Scores Initiaux
|
||||
N/A
|
||||
|
||||
## 2. Cycles de Vie et Apparition
|
||||
### Conditions d'Apparition
|
||||
Voir Causes.
|
||||
|
||||
### Conditions de Disparition
|
||||
N/A
|
||||
|
||||
### Hérédité
|
||||
N/A
|
||||
|
||||
## 3. Impacts Environnementaux
|
||||
### Impact Température
|
||||
Voir `bebe_animal.md`.
|
||||
|
||||
### Impact Milieu (Biome)
|
||||
N/A
|
||||
|
||||
### Impact Saisons
|
||||
N/A
|
||||
|
||||
### Impact Heure / Jour-Nuit
|
||||
N/A
|
||||
|
||||
## 4. Impacts Biologiques et Sociaux
|
||||
### Impact Reproduction
|
||||
N/A
|
||||
|
||||
### Impact Mort
|
||||
N/A
|
||||
|
||||
### Impact Nourriture
|
||||
N/A
|
||||
|
||||
### Impact Attractivité (Visiteurs/Animaux)
|
||||
**Malus** : -50 points de Réputation (temporaire 24h).
|
||||
|
||||
### Impact Valeur
|
||||
N/A
|
||||
|
||||
## 5. Impacts Logistiques et Économiques
|
||||
### Vitesse (Camion/Nurserie/Accueil/Recherche/Labo/Visite)
|
||||
N/A
|
||||
|
||||
### Dépenses (Boutiques/Visiteurs)
|
||||
N/A
|
||||
|
||||
### Trajet Visiteurs
|
||||
N/A
|
||||
|
||||
## 6. Événements
|
||||
### Événements du Jeu / Carte / Zoo / Ville / Visiteur
|
||||
* **Mort Bébé** : Notification critique.
|
||||
|
||||
## 7. Progression
|
||||
### Tableau des Upgrades
|
||||
N/A
|
||||
|
||||
## 8. Logique et Interfaces
|
||||
### Pseudo-code Impacts
|
||||
N/A
|
||||
|
||||
### Messages d'Infos / Alerte
|
||||
| ID | Niveau | Message |
|
||||
| :--- | :--- | :--- |
|
||||
| `BABY_DIED` | Critique | "Un bébé est mort ! Les visiteurs sont choqués." |
|
||||
|
||||
# Annexes UX/UI
|
||||
|
||||
## 1. Expérience Utilisateur (UX)
|
||||
### Drame (Événement)
|
||||
**Description UX** : Le bébé meurt.
|
||||
**Description UI** : Le sprite devient gris/fantôme puis disparaît (montée au ciel). Musique triste.
|
||||
**Emplacement** : Case Zoo/Nurserie.
|
||||
**Intégration** : Immédiat.
|
||||
**Navigation** : N/A
|
||||
**Événements** : `DEATH_ANIMATION`.
|
||||
|
||||
#### Assets
|
||||
- **Musiques** : Jingle Triste (Violon).
|
||||
- **Sons** : `gong.mp3` ou vent lugubre.
|
||||
- **Graphiques** : Fantôme.
|
||||
- **Images** : N/A
|
||||
- **Vidéos** : N/A
|
||||
- **Animations** : Opacité 100% -> 0%. Translation Y vers le haut.
|
||||
- **Couleurs** : Gris, Noir.
|
||||
- **Textes** : "RIP".
|
||||
- **Formes** : N/A
|
||||
|
||||
### Notification (Alerte)
|
||||
**Description UX** : Le joueur est informé de la perte.
|
||||
**Description UI** : Popup Rouge/Noir. "Vous avez perdu un bébé [Cause]".
|
||||
**Emplacement** : Centre Écran.
|
||||
**Intégration** : Modal bloquante (Acknowledgment requis).
|
||||
**Navigation** : Clic OK.
|
||||
**Événements** : `DEATH_ACKNOWLEDGE`.
|
||||
|
||||
#### Assets
|
||||
- **Musiques** : N/A
|
||||
- **Sons** : N/A
|
||||
- **Graphiques** : Crâne (icône).
|
||||
- **Images** : N/A
|
||||
- **Vidéos** : N/A
|
||||
- **Animations** : N/A
|
||||
- **Couleurs** : Noir #000000.
|
||||
- **Textes** : Cause du décès.
|
||||
- **Formes** : N/A
|
||||
215
docs/specs/nurserie.md
Normal file
215
docs/specs/nurserie.md
Normal file
@@ -0,0 +1,215 @@
|
||||
# Spécifications : Nurserie
|
||||
|
||||
## Définition
|
||||
Bâtiment dédié à l'éclosion des œufs et à la croissance des bébés animaux.
|
||||
|
||||
## Fonctionnalités
|
||||
- **Éclosion** : Lieu où les œufs achetés sont placés pour éclore.
|
||||
- **Croissance** : Permet aux bébés de grandir en sécurité.
|
||||
- **Stockage** : Zone tampon avant placement dans le zoo.
|
||||
|
||||
## Niveaux d'Amélioration (7 niveaux)
|
||||
- **Coût** : Progressif par palier.
|
||||
- **Effet** : Accélère le temps d'éclosion/croissance. Améliore la qualité des reproducteurs (bonus génétique).
|
||||
- **Ratio** : 1 unité permet de faire grandir 1 bébé maximum à la fois.
|
||||
|
||||
# Annexes Techniques
|
||||
|
||||
## 1. Données et États
|
||||
### Modèle de Données (JSON)
|
||||
```json
|
||||
{
|
||||
"id": "uuid",
|
||||
"type": "nurserie",
|
||||
"level": "integer (1-7)",
|
||||
"slots": [
|
||||
{ "slot_id": 1, "content": "egg_uuid | baby_uuid | null", "timer_end": "timestamp" }
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
### Caractéristiques Initiales
|
||||
| Caractéristique | Valeur Initiale (Niv 1) |
|
||||
| :--- | :--- |
|
||||
| Slots | 1 |
|
||||
| Vitesse Éclosion | x1.0 |
|
||||
| Protection T° | +/- 2°C tolérance |
|
||||
|
||||
### Scores Initiaux
|
||||
N/A
|
||||
|
||||
## 2. Cycles de Vie et Apparition
|
||||
### Conditions d'Apparition
|
||||
Construction par joueur ou présent au début.
|
||||
|
||||
### Conditions de Disparition
|
||||
Destruction par joueur (si vide).
|
||||
|
||||
### Hérédité
|
||||
**Bonus Génétique** : Niveau 5+ donne +5% chance rareté supérieure à l'éclosion.
|
||||
|
||||
## 3. Impacts Environnementaux
|
||||
### Impact Température
|
||||
La nurserie régule la température interne.
|
||||
| Niveau | Régulation |
|
||||
| :--- | :--- |
|
||||
| 1 | +/- 2°C |
|
||||
| 7 | +/- 10°C (Climatisation parfaite) |
|
||||
|
||||
### Impact Milieu (Biome)
|
||||
N/A
|
||||
|
||||
### Impact Saisons
|
||||
Protège des effets négatifs des saisons (Hiver/Été).
|
||||
|
||||
### Impact Heure / Jour-Nuit
|
||||
Fonctionne 24h/24.
|
||||
|
||||
## 4. Impacts Biologiques et Sociaux
|
||||
### Impact Reproduction
|
||||
N/A (Lieu de résultat de la reproduction).
|
||||
|
||||
### Impact Mort
|
||||
Réduit drastiquement la mortalité infantile (Santé ne baisse pas sauf si Faim extrême).
|
||||
|
||||
### Impact Nourriture
|
||||
Les bébés sont nourris automatiquement si stock nourriture global > 0.
|
||||
|
||||
### Impact Attractivité (Visiteurs/Animaux)
|
||||
N/A (Les visiteurs ne voient pas l'intérieur).
|
||||
|
||||
### Impact Valeur
|
||||
N/A
|
||||
|
||||
## 5. Impacts Logistiques et Économiques
|
||||
### Vitesse (Camion/Nurserie/Accueil/Recherche/Labo/Visite)
|
||||
**Vitesse Éclosion/Croissance** :
|
||||
| Niveau | Multiplicateur Vitesse |
|
||||
| :--- | :--- |
|
||||
| 1 | x1.0 |
|
||||
| 2 | x1.2 |
|
||||
| 3 | x1.5 |
|
||||
| 4 | x2.0 |
|
||||
| 5 | x3.0 |
|
||||
| 6 | x5.0 |
|
||||
| 7 | x10.0 |
|
||||
|
||||
### Dépenses (Boutiques/Visiteurs)
|
||||
N/A
|
||||
|
||||
### Trajet Visiteurs
|
||||
N/A
|
||||
|
||||
## 6. Événements
|
||||
### Événements du Jeu / Carte / Zoo / Ville / Visiteur
|
||||
* **Éclosion** : Œuf -> Bébé.
|
||||
* **Maturité** : Bébé -> Adulte (prêt à sortir).
|
||||
|
||||
## 7. Progression
|
||||
### Tableau des Upgrades
|
||||
| Niveau | Coût (Pièces) | Slots | Vitesse | Temps Construction |
|
||||
| :--- | :--- | :--- | :--- | :--- |
|
||||
| 1 | 100 | 1 | x1.0 | 0s |
|
||||
| 2 | 200 | 2 | x1.2 | 0s |
|
||||
| 3 | 400 | 3 | x1.5 | 0s |
|
||||
| 4 | 800 | 4 | x2.0 | 0s |
|
||||
| 5 | 1600 | 5 | x3.0 | 0s |
|
||||
| 6 | 3200 | 6 | x5.0 | 0s |
|
||||
| 7 | 6400 | 7 | x10.0 | 0s |
|
||||
|
||||
## 8. Logique et Interfaces
|
||||
### Pseudo-code Impacts
|
||||
```
|
||||
function updateNurserie(nurserie):
|
||||
for slot in nurserie.slots:
|
||||
if slot.content is Egg:
|
||||
slot.timer -= baseTime * nurserie.speedMultiplier
|
||||
if slot.timer <= 0:
|
||||
hatchEgg(slot.content)
|
||||
```
|
||||
|
||||
### Messages d'Infos / Alerte
|
||||
| ID | Niveau | Message |
|
||||
| :--- | :--- | :--- |
|
||||
| `EGG_HATCHED` | Info | "Un œuf a éclos en Nurserie !" |
|
||||
| `NURSERIE_FULL` | Warning | "Nurserie pleine, impossible d'acheter/reproduire." |
|
||||
|
||||
# Annexes UX/UI
|
||||
|
||||
## 1. Expérience Utilisateur (UX)
|
||||
### Gestion des Slots (Consultation)
|
||||
**Description UX** : Le joueur clique sur la nurserie pour voir l'état de ses œufs et bébés.
|
||||
**Description UI** : **Bottom Sheet** avec une grille de slots (1 à 7 selon niveau). Chaque slot affiche l'icône de l'œuf/bébé, une barre de progression (éclosion/croissance) et un timer restant.
|
||||
**Emplacement** : Case Nurserie.
|
||||
**Intégration** : Modal centrée.
|
||||
**Navigation** : Clic Nurserie -> Modal -> Clic Slot (Action) ou Fermer.
|
||||
**Événements** : `OPEN_NURSERIE`.
|
||||
|
||||
#### Assets
|
||||
- **Musiques** : N/A
|
||||
- **Sons** : `ui_open.mp3`
|
||||
- **Graphiques** : Style "Couveuse" ou "Nid douillet".
|
||||
- **Images** : `egg_[rarity].png`, `baby_[species].png`.
|
||||
- **Vidéos** : N/A
|
||||
- **Animations** : Œuf qui tremble légèrement quand proche éclosion.
|
||||
- **Couleurs** : Tons pastels (rose, bleu clair, jaune paille).
|
||||
- **Textes** : "Slot X", "Temps restant : MM:SS".
|
||||
- **Formes** : Cases de grille arrondies.
|
||||
|
||||
### Placement d'un Œuf
|
||||
**Description UX** : Après achat ou reproduction, l'œuf va automatiquement dans un slot vide. Si plein, notification d'erreur.
|
||||
**Description UI** : Animation de l'œuf "volant" vers la nurserie (si visible) ou simple apparition dans le slot.
|
||||
**Emplacement** : HUD -> Nurserie.
|
||||
**Intégration** : Automatique.
|
||||
**Navigation** : N/A
|
||||
**Événements** : `EGG_ADDED`.
|
||||
|
||||
#### Assets
|
||||
- **Musiques** : N/A
|
||||
- **Sons** : `pop_soft.mp3`
|
||||
- **Graphiques** : N/A
|
||||
- **Images** : N/A
|
||||
- **Vidéos** : N/A
|
||||
- **Animations** : Fade in + Scale up de l'œuf dans le slot.
|
||||
- **Couleurs** : N/A
|
||||
- **Textes** : N/A
|
||||
- **Formes** : N/A
|
||||
|
||||
### Éclosion (Action)
|
||||
**Description UX** : Quand le timer est fini, l'œuf se fissure. Le joueur clique pour "ouvrir" l'œuf et découvrir le bébé.
|
||||
**Description UI** : Le slot brille ou clignote. Au clic, animation d'éclosion et popup "Nouveau Bébé !" avec ses stats.
|
||||
**Emplacement** : Modal Nurserie.
|
||||
**Intégration** : Bloque le slot jusqu'à validation.
|
||||
**Navigation** : Clic Œuf éclos -> Popup Récompense -> Retour Modal.
|
||||
**Événements** : `HATCH_CLICK`.
|
||||
|
||||
#### Assets
|
||||
- **Musiques** : Jingle court "Victoire/Naissance".
|
||||
- **Sons** : `crack_egg.mp3`, `baby_cry.mp3`.
|
||||
- **Graphiques** : Coquilles brisées.
|
||||
- **Images** : Sprite bébé.
|
||||
- **Vidéos** : N/A
|
||||
- **Animations** : Séquence d'éclosion (3 frames).
|
||||
- **Couleurs** : Rayons dorés/blancs.
|
||||
- **Textes** : "C'est un [Espèce] [Rareté] !".
|
||||
- **Formes** : Étoile ou Cercle rayonnant.
|
||||
|
||||
### Sortie de Nurserie (Placement)
|
||||
**Description UX** : Le bébé est mature (ou le joueur veut le sortir). Drag & drop du slot vers une case du zoo.
|
||||
**Description UI** : Le curseur devient le sprite du bébé/animal. Les cases valides s'illuminent en vert, invalides en rouge.
|
||||
**Alternative** : Sélectionner le bébé -> Cliquer sur la case cible (Tap to Place).
|
||||
**Emplacement** : Modal Nurserie -> Carte Zoo.
|
||||
**Intégration** : Ferme la modal et passe en mode placement.
|
||||
**Navigation** : Drag Slot -> Drop Carte.
|
||||
**Événements** : `DRAG_START`, `DRAG_DROP`.
|
||||
|
||||
#### Assets
|
||||
- **Musiques** : N/A
|
||||
- **Sons** : `pickup.mp3`, `place_ok.mp3` / `place_error.mp3`.
|
||||
- **Graphiques** : Grille de placement overlay.
|
||||
- **Images** : Sprite fantôme (translucide) sous le curseur.
|
||||
- **Vidéos** : N/A
|
||||
- **Animations** : N/A
|
||||
- **Couleurs** : Vert #00FF00 (OK), Rouge #FF0000 (KO).
|
||||
- **Textes** : Tooltip "Placer ici".
|
||||
- **Formes** : N/A
|
||||
116
docs/specs/personnage_generique.md
Normal file
116
docs/specs/personnage_generique.md
Normal file
@@ -0,0 +1,116 @@
|
||||
# Spécifications : Personnage (Générique)
|
||||
|
||||
## Définition
|
||||
Entité active dans le jeu, qu'elle soit contrôlée par un humain, une IA ou un script.
|
||||
|
||||
## Types
|
||||
- **Joueur** : Utilisateur humain gérant son zoo.
|
||||
- **Bot** : IA gérant un zoo concurrent.
|
||||
- **Visiteur** : PNJ se promenant dans le zoo.
|
||||
- **Animal** : Entité biologique gérée par le joueur.
|
||||
|
||||
# Annexes Techniques
|
||||
|
||||
## 1. Données et États
|
||||
### Modèle de Données (JSON)
|
||||
Classe abstraite ou interface commune.
|
||||
```json
|
||||
{
|
||||
"id": "uuid",
|
||||
"type": "string",
|
||||
"position": { "x": "int", "y": "int" },
|
||||
"active": "boolean"
|
||||
}
|
||||
```
|
||||
|
||||
### Caractéristiques Initiales
|
||||
N/A (Spécifique aux sous-types)
|
||||
|
||||
### Scores Initiaux
|
||||
N/A
|
||||
|
||||
## 2. Cycles de Vie et Apparition
|
||||
### Conditions d'Apparition
|
||||
N/A
|
||||
|
||||
### Conditions de Disparition
|
||||
N/A
|
||||
|
||||
### Hérédité
|
||||
N/A
|
||||
|
||||
## 3. Impacts Environnementaux
|
||||
### Impact Température
|
||||
N/A
|
||||
|
||||
### Impact Milieu (Biome)
|
||||
N/A
|
||||
|
||||
### Impact Saisons
|
||||
N/A
|
||||
|
||||
### Impact Heure / Jour-Nuit
|
||||
N/A
|
||||
|
||||
## 4. Impacts Biologiques et Sociaux
|
||||
### Impact Reproduction
|
||||
N/A
|
||||
|
||||
### Impact Mort
|
||||
N/A
|
||||
|
||||
### Impact Nourriture
|
||||
N/A
|
||||
|
||||
### Impact Attractivité (Visiteurs/Animaux)
|
||||
N/A
|
||||
|
||||
### Impact Valeur
|
||||
N/A
|
||||
|
||||
## 5. Impacts Logistiques et Économiques
|
||||
### Vitesse (Camion/Nurserie/Accueil/Recherche/Labo/Visite)
|
||||
N/A
|
||||
|
||||
### Dépenses (Boutiques/Visiteurs)
|
||||
N/A
|
||||
|
||||
### Trajet Visiteurs
|
||||
N/A
|
||||
|
||||
## 6. Événements
|
||||
### Événements du Jeu / Carte / Zoo / Ville / Visiteur
|
||||
N/A
|
||||
|
||||
## 7. Progression
|
||||
### Tableau des Upgrades
|
||||
N/A
|
||||
|
||||
## 8. Logique et Interfaces
|
||||
### Pseudo-code Impacts
|
||||
N/A
|
||||
|
||||
### Messages d'Infos / Alerte
|
||||
N/A
|
||||
|
||||
# Annexes UX/UI
|
||||
|
||||
## 1. Expérience Utilisateur (UX)
|
||||
### Identification (Passif)
|
||||
**Description UX** : Reconnaître le type de personnage au premier coup d'œil.
|
||||
**Description UI** : Silhouette distincte, Code couleur, Badge/Nom au survol.
|
||||
**Emplacement** : Grille.
|
||||
**Intégration** : Tooltip.
|
||||
**Navigation** : Survol souris / Tap.
|
||||
**Événements** : `HOVER_CHARACTER`.
|
||||
|
||||
#### Assets
|
||||
- **Musiques** : N/A
|
||||
- **Sons** : N/A
|
||||
- **Graphiques** : Silhouettes archétypales.
|
||||
- **Images** : N/A
|
||||
- **Vidéos** : N/A
|
||||
- **Animations** : N/A
|
||||
- **Couleurs** : Joueur (Bleu), Bot (Rouge/Gris), Visiteur (Multicolore), Animal (Naturel).
|
||||
- **Textes** : Nom, Rôle.
|
||||
- **Formes** : N/A
|
||||
145
docs/specs/reproduction.md
Normal file
145
docs/specs/reproduction.md
Normal file
@@ -0,0 +1,145 @@
|
||||
# Spécifications : Reproduction
|
||||
|
||||
## Conditions
|
||||
- **Proximité** : Deux animaux compatibles (même espèce, sexe opposé si géré, ou juste compatibilité) proches l'un de l'autre.
|
||||
- **Environnement** : Température et Biome idéaux.
|
||||
- **Nourriture** : Animaux bien nourris.
|
||||
- **Score de Reproduction** : Le zoo doit avoir un score suffisant pour favoriser les naissances.
|
||||
|
||||
## Résultat
|
||||
- **Naissance** : Apparition d'un nouveau bébé.
|
||||
- **Destination** : Va directement en Nurserie si place disponible, sinon doit être placé ou vendu immédiatement.
|
||||
- **Hérédité** : Le bébé hérite des caractéristiques des parents avec une part de mutation (Rareté/Couleur).
|
||||
|
||||
## Bonus
|
||||
- Les naissances augmentent l'attractivité du zoo.
|
||||
- Les naissances favorisent l'apparition d'autres naissances (cercle vertueux).
|
||||
|
||||
# Annexes Techniques
|
||||
|
||||
## 1. Données et États
|
||||
### Modèle de Données (JSON)
|
||||
Logique serveur.
|
||||
|
||||
### Caractéristiques Initiales
|
||||
N/A
|
||||
|
||||
### Scores Initiaux
|
||||
N/A
|
||||
|
||||
## 2. Cycles de Vie et Apparition
|
||||
### Conditions d'Apparition
|
||||
N/A
|
||||
|
||||
### Conditions de Disparition
|
||||
N/A
|
||||
|
||||
### Hérédité
|
||||
| Parent A | Parent B | Enfant (Probabilités) |
|
||||
| :--- | :--- | :--- |
|
||||
| Rareté N | Rareté N | N (80%), N+1 (15%), N-1 (5%) |
|
||||
| Rareté N | Rareté N+1 | N (40%), N+1 (40%), N+2 (10%), N-1 (10%) |
|
||||
|
||||
## 3. Impacts Environnementaux
|
||||
### Impact Température
|
||||
**Condition** : T° doit être dans la plage "Idéale" (+/- 2°C).
|
||||
|
||||
### Impact Milieu (Biome)
|
||||
**Condition** : Biome doit être "Parfait".
|
||||
|
||||
### Impact Saisons
|
||||
**Printemps** : +20% chance réussite.
|
||||
**Hiver** : -50% chance réussite (sauf animaux froids).
|
||||
|
||||
### Impact Heure / Jour-Nuit
|
||||
N/A
|
||||
|
||||
## 4. Impacts Biologiques et Sociaux
|
||||
### Impact Reproduction
|
||||
N/A
|
||||
|
||||
### Impact Mort
|
||||
N/A
|
||||
|
||||
### Impact Nourriture
|
||||
**Condition** : Faim < 20%.
|
||||
|
||||
### Impact Attractivité (Visiteurs/Animaux)
|
||||
N/A
|
||||
|
||||
### Impact Valeur
|
||||
N/A
|
||||
|
||||
## 5. Impacts Logistiques et Économiques
|
||||
### Vitesse (Camion/Nurserie/Accueil/Recherche/Labo/Visite)
|
||||
N/A
|
||||
|
||||
### Dépenses (Boutiques/Visiteurs)
|
||||
N/A
|
||||
|
||||
### Trajet Visiteurs
|
||||
N/A
|
||||
|
||||
## 6. Événements
|
||||
### Événements du Jeu / Carte / Zoo / Ville / Visiteur
|
||||
* **Accouplement** : Tentative.
|
||||
* **Grossesse** : Délai avant naissance.
|
||||
|
||||
## 7. Progression
|
||||
### Tableau des Upgrades
|
||||
N/A
|
||||
|
||||
## 8. Logique et Interfaces
|
||||
### Pseudo-code Impacts
|
||||
```
|
||||
if checkConditions(parentA, parentB):
|
||||
chance = baseChance + seasonBonus + zooReproScoreBonus
|
||||
if random() < chance:
|
||||
createBaby(parentA, parentB)
|
||||
```
|
||||
|
||||
### Messages d'Infos / Alerte
|
||||
| ID | Niveau | Message |
|
||||
| :--- | :--- | :--- |
|
||||
| `REPRO_SUCCESS` | Succès | "Un couple attend un heureux événement !" |
|
||||
|
||||
# Annexes UX/UI
|
||||
|
||||
## 1. Expérience Utilisateur (UX)
|
||||
### Amour (Passif)
|
||||
**Description UX** : Deux animaux compatibles se rencontrent. Des cœurs apparaissent.
|
||||
**Description UI** : Particules Cœurs au-dessus des animaux. Ils se rapprochent.
|
||||
**Emplacement** : Case Zoo.
|
||||
**Intégration** : Animation comportementale.
|
||||
**Navigation** : N/A
|
||||
**Événements** : `MATING_START`.
|
||||
|
||||
#### Assets
|
||||
- **Musiques** : N/A
|
||||
- **Sons** : `kiss.mp3` ou bruit doux.
|
||||
- **Graphiques** : Cœurs roses.
|
||||
- **Images** : N/A
|
||||
- **Vidéos** : N/A
|
||||
- **Animations** : Cœurs qui montent.
|
||||
- **Couleurs** : Rose.
|
||||
- **Textes** : N/A
|
||||
- **Formes** : Cœur.
|
||||
|
||||
### Naissance (Événement)
|
||||
**Description UX** : Un bébé apparaît (ou un œuf en nurserie). Notification joyeuse.
|
||||
**Description UI** : Popup "Carnet Rose".
|
||||
**Emplacement** : HUD.
|
||||
**Intégration** : Notification Toast.
|
||||
**Navigation** : Clic Notification -> Voir Bébé.
|
||||
**Événements** : `BIRTH`.
|
||||
|
||||
#### Assets
|
||||
- **Musiques** : Jingle Naissance.
|
||||
- **Sons** : `tada.mp3`.
|
||||
- **Graphiques** : Cigogne (icône).
|
||||
- **Images** : N/A
|
||||
- **Vidéos** : N/A
|
||||
- **Animations** : Confettis.
|
||||
- **Couleurs** : Rose/Bleu.
|
||||
- **Textes** : "Bienvenue au nouveau [Espèce] !".
|
||||
- **Formes** : N/A
|
||||
117
docs/specs/score_reputation.md
Normal file
117
docs/specs/score_reputation.md
Normal file
@@ -0,0 +1,117 @@
|
||||
# Spécifications : Score de Réputation
|
||||
|
||||
## Définition
|
||||
Indicateur global de la qualité et du prestige du zoo. C'est le moteur de l'économie (Visiteurs).
|
||||
|
||||
## Composantes
|
||||
- **Valeur du Cheptel** : Somme des valeurs de rareté des animaux vivants.
|
||||
- **Diversité** : Bonus pour chaque espèce différente présente.
|
||||
- **Bien-être** : Bonus si le Score de Survie moyen est élevé.
|
||||
- **Esthétique/Aménagement** : Bonus pour les bâtiments améliorés.
|
||||
|
||||
## Malus
|
||||
- **Morts** : Chaque mort inflige une pénalité temporaire mais significative.
|
||||
- **Insatisfaction** : Visiteurs repartant mécontents (incidents non résolus).
|
||||
|
||||
# Annexes Techniques
|
||||
|
||||
## 1. Données et États
|
||||
### Modèle de Données (JSON)
|
||||
Propriété de `Zoo`.
|
||||
`reputation_score: integer`
|
||||
|
||||
### Caractéristiques Initiales
|
||||
| Caractéristique | Valeur Initiale |
|
||||
| :--- | :--- |
|
||||
| Réputation | 0 |
|
||||
|
||||
### Scores Initiaux
|
||||
N/A
|
||||
|
||||
## 2. Cycles de Vie et Apparition
|
||||
### Conditions d'Apparition
|
||||
N/A
|
||||
|
||||
### Conditions de Disparition
|
||||
N/A
|
||||
|
||||
### Hérédité
|
||||
N/A
|
||||
|
||||
## 3. Impacts Environnementaux
|
||||
### Impact Température
|
||||
N/A
|
||||
|
||||
### Impact Milieu (Biome)
|
||||
N/A
|
||||
|
||||
### Impact Saisons
|
||||
N/A
|
||||
|
||||
### Impact Heure / Jour-Nuit
|
||||
N/A
|
||||
|
||||
## 4. Impacts Biologiques et Sociaux
|
||||
### Impact Reproduction
|
||||
**Bonus** : +10 pts par naissance.
|
||||
|
||||
### Impact Mort
|
||||
**Malus** : -50 pts par mort (décroissance sur 24h).
|
||||
|
||||
### Impact Nourriture
|
||||
N/A
|
||||
|
||||
### Impact Attractivité (Visiteurs/Animaux)
|
||||
C'est la métrique de base de l'attractivité.
|
||||
|
||||
### Impact Valeur
|
||||
N/A
|
||||
|
||||
## 5. Impacts Logistiques et Économiques
|
||||
### Vitesse (Camion/Nurserie/Accueil/Recherche/Labo/Visite)
|
||||
N/A
|
||||
|
||||
### Dépenses (Boutiques/Visiteurs)
|
||||
N/A
|
||||
|
||||
### Trajet Visiteurs
|
||||
N/A
|
||||
|
||||
## 6. Événements
|
||||
### Événements du Jeu / Carte / Zoo / Ville / Visiteur
|
||||
* **Passage Niveau** : Notification.
|
||||
|
||||
## 7. Progression
|
||||
### Tableau des Upgrades
|
||||
N/A
|
||||
|
||||
## 8. Logique et Interfaces
|
||||
### Pseudo-code Impacts
|
||||
```
|
||||
score = sum(animal.rarity * 10) + (uniqueSpecies * 50) + buildingsValue - deathPenalty
|
||||
```
|
||||
|
||||
### Messages d'Infos / Alerte
|
||||
N/A
|
||||
|
||||
# Annexes UX/UI
|
||||
|
||||
## 1. Expérience Utilisateur (UX)
|
||||
### Affichage Score (Permanent)
|
||||
**Description UX** : Le joueur connaît son niveau de prestige.
|
||||
**Description UI** : Étoiles ou Couronne dans le HUD avec barre de progression vers le niveau suivant.
|
||||
**Emplacement** : HUD Haut.
|
||||
**Intégration** : Fixe.
|
||||
**Navigation** : Survol -> Détail calcul.
|
||||
**Événements** : `SCORE_UPDATE`.
|
||||
|
||||
#### Assets
|
||||
- **Musiques** : N/A
|
||||
- **Sons** : `level_up_jingle.mp3`.
|
||||
- **Graphiques** : Icône Couronne.
|
||||
- **Images** : N/A
|
||||
- **Vidéos** : N/A
|
||||
- **Animations** : Brillance quand augmente.
|
||||
- **Couleurs** : Or.
|
||||
- **Textes** : "Niveau 5 (4500 pts)".
|
||||
- **Formes** : Étoile.
|
||||
118
docs/specs/score_survie.md
Normal file
118
docs/specs/score_survie.md
Normal file
@@ -0,0 +1,118 @@
|
||||
# Spécifications : Score de Survie
|
||||
|
||||
## Définition
|
||||
Indicateur de la santé et de l'adaptation des animaux dans le zoo.
|
||||
|
||||
## Calcul
|
||||
Moyenne des états de santé individuels de tous les animaux.
|
||||
`Santé_Animal = f(Faim, Adéquation_Température, Adéquation_Biome, Stress)`
|
||||
|
||||
## Impact
|
||||
- **Reproduction** : Un score de survie élevé est pré-requis pour la reproduction.
|
||||
- **Maladie** : Un score faible déclenche l'apparition de maladies et augmente la mortalité.
|
||||
- **Vente** : Influe sur la valeur perçue des animaux (un animal en bonne santé vaut plus cher).
|
||||
|
||||
# Annexes Techniques
|
||||
|
||||
## 1. Données et États
|
||||
### Modèle de Données (JSON)
|
||||
Propriété de `Zoo`.
|
||||
`survival_score: float (0-100)`
|
||||
|
||||
### Caractéristiques Initiales
|
||||
| Caractéristique | Valeur Initiale |
|
||||
| :--- | :--- |
|
||||
| Survie | 100% |
|
||||
|
||||
### Scores Initiaux
|
||||
N/A
|
||||
|
||||
## 2. Cycles de Vie et Apparition
|
||||
### Conditions d'Apparition
|
||||
N/A
|
||||
|
||||
### Conditions de Disparition
|
||||
N/A
|
||||
|
||||
### Hérédité
|
||||
N/A
|
||||
|
||||
## 3. Impacts Environnementaux
|
||||
### Impact Température
|
||||
Moyenne des adéquations T°.
|
||||
|
||||
### Impact Milieu (Biome)
|
||||
Moyenne des adéquations Biome.
|
||||
|
||||
### Impact Saisons
|
||||
N/A
|
||||
|
||||
### Impact Heure / Jour-Nuit
|
||||
N/A
|
||||
|
||||
## 4. Impacts Biologiques et Sociaux
|
||||
### Impact Reproduction
|
||||
Seuil mini : 80% pour reproduire.
|
||||
|
||||
### Impact Mort
|
||||
Seuil critique : < 20% (Risque épidémie).
|
||||
|
||||
### Impact Nourriture
|
||||
Moyenne des Faims.
|
||||
|
||||
### Impact Attractivité (Visiteurs/Animaux)
|
||||
N/A
|
||||
|
||||
### Impact Valeur
|
||||
N/A
|
||||
|
||||
## 5. Impacts Logistiques et Économiques
|
||||
### Vitesse (Camion/Nurserie/Accueil/Recherche/Labo/Visite)
|
||||
N/A
|
||||
|
||||
### Dépenses (Boutiques/Visiteurs)
|
||||
N/A
|
||||
|
||||
### Trajet Visiteurs
|
||||
N/A
|
||||
|
||||
## 6. Événements
|
||||
### Événements du Jeu / Carte / Zoo / Ville / Visiteur
|
||||
N/A
|
||||
|
||||
## 7. Progression
|
||||
### Tableau des Upgrades
|
||||
N/A
|
||||
|
||||
## 8. Logique et Interfaces
|
||||
### Pseudo-code Impacts
|
||||
```
|
||||
survivalScore = average(allAnimals.health)
|
||||
```
|
||||
|
||||
### Messages d'Infos / Alerte
|
||||
| ID | Niveau | Message |
|
||||
| :--- | :--- | :--- |
|
||||
| `SURVIVAL_LOW` | Alerte | "Attention ! Le score de survie est dangereusement bas." |
|
||||
|
||||
# Annexes UX/UI
|
||||
|
||||
## 1. Expérience Utilisateur (UX)
|
||||
### Monitoring Santé (Permanent)
|
||||
**Description UX** : Le joueur surveille la santé globale de son zoo.
|
||||
**Description UI** : Jauge Cœur ou Croix Verte. Rouge si critique.
|
||||
**Emplacement** : HUD Haut.
|
||||
**Intégration** : Fixe.
|
||||
**Navigation** : Survol -> Liste animaux en danger.
|
||||
**Événements** : `HEALTH_UPDATE`.
|
||||
|
||||
#### Assets
|
||||
- **Musiques** : N/A
|
||||
- **Sons** : `heartbeat.mp3` (si critique).
|
||||
- **Graphiques** : Icône Cœur.
|
||||
- **Images** : N/A
|
||||
- **Vidéos** : N/A
|
||||
- **Animations** : Battement (Pulsation).
|
||||
- **Couleurs** : Vert -> Jaune -> Rouge.
|
||||
- **Textes** : "98%".
|
||||
- **Formes** : Cœur.
|
||||
119
docs/specs/site_generique.md
Normal file
119
docs/specs/site_generique.md
Normal file
@@ -0,0 +1,119 @@
|
||||
# Spécifications : Site (Générique)
|
||||
|
||||
## Définition
|
||||
Un site est un lieu d'intérêt positionné sur la Carte du Monde.
|
||||
|
||||
## Types de sites
|
||||
1. **Zoo** : Espace de gestion d'un joueur ou d'un bot.
|
||||
2. **Ville** : Zone résidentielle générant des visiteurs.
|
||||
3. **Laboratoire** : Lieu de production d'animaux spéciaux/rares.
|
||||
|
||||
## Propriétés Communes
|
||||
- **Position** : Coordonnées fixes (x, y) sur la grille du monde.
|
||||
- **Nom** : Identifiant unique ou généré.
|
||||
- **Représentation** : Icône spécifique + Informations contextuelles (Offres, stats).
|
||||
|
||||
# Annexes Techniques
|
||||
|
||||
## 1. Données et États
|
||||
### Modèle de Données (JSON)
|
||||
```json
|
||||
{
|
||||
"id": "uuid",
|
||||
"type": "enum",
|
||||
"name": "string",
|
||||
"position": { "x": "int", "y": "int" }
|
||||
}
|
||||
```
|
||||
|
||||
### Caractéristiques Initiales
|
||||
N/A
|
||||
|
||||
### Scores Initiaux
|
||||
N/A
|
||||
|
||||
## 2. Cycles de Vie et Apparition
|
||||
### Conditions d'Apparition
|
||||
Génération procédurale ou création joueur.
|
||||
|
||||
### Conditions de Disparition
|
||||
N/A
|
||||
|
||||
### Hérédité
|
||||
N/A
|
||||
|
||||
## 3. Impacts Environnementaux
|
||||
### Impact Température
|
||||
N/A
|
||||
|
||||
### Impact Milieu (Biome)
|
||||
N/A
|
||||
|
||||
### Impact Saisons
|
||||
N/A
|
||||
|
||||
### Impact Heure / Jour-Nuit
|
||||
N/A
|
||||
|
||||
## 4. Impacts Biologiques et Sociaux
|
||||
### Impact Reproduction
|
||||
N/A
|
||||
|
||||
### Impact Mort
|
||||
N/A
|
||||
|
||||
### Impact Nourriture
|
||||
N/A
|
||||
|
||||
### Impact Attractivité (Visiteurs/Animaux)
|
||||
N/A
|
||||
|
||||
### Impact Valeur
|
||||
N/A
|
||||
|
||||
## 5. Impacts Logistiques et Économiques
|
||||
### Vitesse (Camion/Nurserie/Accueil/Recherche/Labo/Visite)
|
||||
N/A
|
||||
|
||||
### Dépenses (Boutiques/Visiteurs)
|
||||
N/A
|
||||
|
||||
### Trajet Visiteurs
|
||||
N/A
|
||||
|
||||
## 6. Événements
|
||||
### Événements du Jeu / Carte / Zoo / Ville / Visiteur
|
||||
N/A
|
||||
|
||||
## 7. Progression
|
||||
### Tableau des Upgrades
|
||||
N/A
|
||||
|
||||
## 8. Logique et Interfaces
|
||||
### Pseudo-code Impacts
|
||||
N/A
|
||||
|
||||
### Messages d'Infos / Alerte
|
||||
N/A
|
||||
|
||||
# Annexes UX/UI
|
||||
|
||||
## 1. Expérience Utilisateur (UX)
|
||||
### Info-bulle (Consultation)
|
||||
**Description UX** : Survoler un site donne ses détails.
|
||||
**Description UI** : Tooltip avec Nom, Type, et Info clé (ex: Population pour Ville, Offre pour Zoo).
|
||||
**Emplacement** : Carte Monde.
|
||||
**Intégration** : Tooltip souris / Tap hold mobile.
|
||||
**Navigation** : Survol.
|
||||
**Événements** : `HOVER_SITE`.
|
||||
|
||||
#### Assets
|
||||
- **Musiques** : N/A
|
||||
- **Sons** : `pop.mp3` léger.
|
||||
- **Graphiques** : Fond noir semi-transparent.
|
||||
- **Images** : N/A
|
||||
- **Vidéos** : N/A
|
||||
- **Animations** : Fade in rapide.
|
||||
- **Couleurs** : Blanc sur Noir.
|
||||
- **Textes** : "Paris (1M hab.)".
|
||||
- **Formes** : Rectangle arrondi.
|
||||
134
docs/specs/tech_architecture.md
Normal file
134
docs/specs/tech_architecture.md
Normal file
@@ -0,0 +1,134 @@
|
||||
# Spécifications Techniques : Architecture et Performance
|
||||
|
||||
## 1. Stack Technologique Recommandée
|
||||
|
||||
### Backend
|
||||
- **Langage** : Node.js (TypeScript) ou Go (pour la performance brute des workers).
|
||||
- **Framework** : NestJS (Node) ou Gin (Go).
|
||||
- **Base de Données** : PostgreSQL.
|
||||
- Utilisation intensive du type `JSONB` pour les données flexibles (états animaux, génétique).
|
||||
- Indexation GIN sur les champs JSONB souvent requêtés.
|
||||
|
||||
### Frontend
|
||||
- **Framework** : React ou Vue.js.
|
||||
- **État** : Zustand ou Pinia (léger et performant).
|
||||
- **Rendu Grille** : Canvas API (via PixiJS ou Konva) si > 100 éléments animés, sinon DOM optimisé (CSS Grid + Transforms).
|
||||
|
||||
### Infrastructure
|
||||
- **Cache** : Redis (pour les sessions, les compteurs temps réel et les files d'attente de jobs).
|
||||
- **Message Broker** : BullMQ (Redis) ou RabbitMQ pour les tâches asynchrones (morts, naissances, enchères).
|
||||
|
||||
---
|
||||
|
||||
## 2. Modélisation des Données (Hybride Relationnel / Document)
|
||||
|
||||
L'approche hybride permet de garder l'intégrité référentielle sur les entités (Zoo, User) tout en gardant la souplesse sur les attributs de gameplay.
|
||||
|
||||
### Schéma SQL Simplifié
|
||||
|
||||
```sql
|
||||
CREATE TABLE zoos (
|
||||
id UUID PRIMARY KEY,
|
||||
owner_id UUID NOT NULL,
|
||||
created_at TIMESTAMPTZ DEFAULT NOW(),
|
||||
resources JSONB DEFAULT '{"coins": 200, "research": 0}',
|
||||
stats JSONB DEFAULT '{"reputation": 0, "survival": 100}',
|
||||
last_update TIMESTAMPTZ DEFAULT NOW() -- Clé pour le Lazy Update
|
||||
);
|
||||
|
||||
CREATE TABLE animals (
|
||||
id UUID PRIMARY KEY,
|
||||
zoo_id UUID REFERENCES zoos(id),
|
||||
type VARCHAR(50),
|
||||
birth_date TIMESTAMPTZ,
|
||||
state JSONB, -- { health, hunger, stress, ... }
|
||||
genetics JSONB, -- { color, rarity, parents... }
|
||||
position JSONB -- { x, y }
|
||||
);
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 3. Stratégie de Performance : "Lazy Updates"
|
||||
|
||||
Le calcul temps réel pour 1000 joueurs * 50 animaux est impossible à scaler naïvement.
|
||||
|
||||
### Principe
|
||||
Ne jamais mettre à jour la BDD à chaque seconde ("tick").
|
||||
Calculer l'état d'un zoo **uniquement quand c'est nécessaire** (lecture par le joueur ou interaction).
|
||||
|
||||
### Algorithme de Mise à Jour Différée (Lazy Update)
|
||||
|
||||
1. **État Stocké** : Le zoo est sauvegardé à `T0` avec `Faim = 10`.
|
||||
2. **Requête** : Le joueur se connecte à `T1` (2 heures plus tard).
|
||||
3. **Calcul à la Volée** :
|
||||
* `Delta_Temps = T1 - T0`.
|
||||
* `Faim_Actuelle = Faim_Initiale + (Vitesse_Faim * Delta_Temps)`.
|
||||
* Appliquer les seuils (si Faim > 100, déclencher Mort).
|
||||
4. **Persistance** : Sauvegarder le nouvel état à `T1`.
|
||||
5. **Réponse** : Envoyer l'état à jour au client.
|
||||
|
||||
### Exceptions (Workers)
|
||||
Certains événements doivent arriver même si le joueur est hors ligne (ex: Enchères, Morts impactant le marché).
|
||||
* Utiliser des **Cron Jobs** ou des **Delayed Jobs** (Redis) pour traiter ces événements spécifiques à leur heure d'échéance prévue.
|
||||
|
||||
---
|
||||
|
||||
## 4. API : Définition des Endpoints (REST)
|
||||
|
||||
### Core Loop (Jeu)
|
||||
- `GET /api/zoo/me` : Récupère l'état complet du zoo (déclenche le Lazy Update).
|
||||
- `POST /api/zoo/move` : Déplace un élément (Animal/Bâtiment).
|
||||
- Body: `{ "entity_id": "uuid", "x": 10, "y": 5 }`
|
||||
- `POST /api/zoo/feed` : Nourrit les animaux (Global ou Ciblé).
|
||||
|
||||
### Économie & Marché
|
||||
- `GET /api/market/auctions` : Liste les enchères actives (Filtres: Type, Rareté).
|
||||
- `POST /api/market/bid` : Placer une offre.
|
||||
- Body: `{ "auction_id": "uuid", "amount": 500 }`
|
||||
- `POST /api/market/sell` : Créer une enchère.
|
||||
|
||||
### Système
|
||||
- `POST /api/auth/login` : Authentification par clé.
|
||||
- `GET /api/config` : Récupère les tables statiques (Animaux, Coûts, Saisons) pour le cache client.
|
||||
|
||||
# Annexes UX/UI
|
||||
|
||||
## 1. Expérience Utilisateur (UX)
|
||||
### Chargement (Feedback)
|
||||
**Description UX** : Le joueur attend le calcul du Lazy Update à la connexion.
|
||||
**Description UI** : Écran de chargement avec barre de progression ou animation (Animal qui marche).
|
||||
**Emplacement** : Plein écran (Démarrage).
|
||||
**Intégration** : Bloquant.
|
||||
**Navigation** : N/A
|
||||
**Événements** : `APP_LOAD`.
|
||||
|
||||
#### Assets
|
||||
- **Musiques** : Thème Principal.
|
||||
- **Sons** : N/A
|
||||
- **Graphiques** : Logo Jeu.
|
||||
- **Images** : N/A
|
||||
- **Vidéos** : N/A
|
||||
- **Animations** : Loader.
|
||||
- **Couleurs** : Thème Jeu.
|
||||
- **Textes** : "Calcul de la simulation...", "Rattrapage du temps...".
|
||||
- **Formes** : N/A
|
||||
|
||||
### Erreur Connexion (Feedback)
|
||||
**Description UX** : Perte de connexion ou erreur API.
|
||||
**Description UI** : Toast ou Modal "Erreur Réseau". Bouton "Réessayer".
|
||||
**Emplacement** : Overlay.
|
||||
**Intégration** : Bloquant ou Non-bloquant.
|
||||
**Navigation** : Clic Réessayer.
|
||||
**Événements** : `NETWORK_ERROR`.
|
||||
|
||||
#### Assets
|
||||
- **Musiques** : N/A
|
||||
- **Sons** : `error.mp3`.
|
||||
- **Graphiques** : Icône Wifi barré.
|
||||
- **Images** : N/A
|
||||
- **Vidéos** : N/A
|
||||
- **Animations** : Secousse.
|
||||
- **Couleurs** : Rouge.
|
||||
- **Textes** : "Connexion perdue".
|
||||
- **Formes** : N/A
|
||||
149
docs/specs/temperature.md
Normal file
149
docs/specs/temperature.md
Normal file
@@ -0,0 +1,149 @@
|
||||
# Spécifications : Température
|
||||
|
||||
## Définition
|
||||
Paramètre environnemental lié au milieu (couleur) de la case.
|
||||
|
||||
## Impact
|
||||
- **Survie** : Chaque animal a une plage de température idéale.
|
||||
- **Trop Froid** : L'animal gèle (feedback givre/bleu). Risque de mort.
|
||||
- **Trop Chaud** : L'animal surchauffe (feedback vapeur/rouge). Risque de mort.
|
||||
- **Reproduction** : Une température idéale est requise pour la reproduction optimale.
|
||||
|
||||
## Modification
|
||||
- La température est intrinsèque à la case (liée au biome).
|
||||
- **Upgrade** : L'achat d'un "Changement de milieu (température choisie)" permet d'ajuster la température d'une case spécifique pour l'adapter à un animal.
|
||||
|
||||
# Annexes Techniques
|
||||
|
||||
## 1. Données et États
|
||||
### Modèle de Données (JSON)
|
||||
Propriété de `Case`.
|
||||
`temperature: float`
|
||||
|
||||
### Caractéristiques Initiales
|
||||
Définie par le biome (voir `milieu.md`).
|
||||
|
||||
### Scores Initiaux
|
||||
N/A
|
||||
|
||||
## 2. Cycles de Vie et Apparition
|
||||
### Conditions d'Apparition
|
||||
N/A
|
||||
|
||||
### Conditions de Disparition
|
||||
N/A
|
||||
|
||||
### Hérédité
|
||||
N/A
|
||||
|
||||
## 3. Impacts Environnementaux
|
||||
### Impact Température
|
||||
N/A (C'est la définition même).
|
||||
|
||||
### Impact Milieu (Biome)
|
||||
N/A
|
||||
|
||||
### Impact Saisons
|
||||
| Saison | Modificateur Global |
|
||||
| :--- | :--- |
|
||||
| Printemps | +0°C |
|
||||
| Été | +10°C |
|
||||
| Automne | -2°C |
|
||||
| Hiver | -15°C |
|
||||
|
||||
### Impact Heure / Jour-Nuit
|
||||
| Cycle | Modificateur |
|
||||
| :--- | :--- |
|
||||
| Jour | +5°C (Midi) |
|
||||
| Nuit | -5°C (Minuit) |
|
||||
|
||||
## 4. Impacts Biologiques et Sociaux
|
||||
### Impact Reproduction
|
||||
**Fenêtre Fertilité** : +/- 5°C autour de l'idéal de l'animal.
|
||||
|
||||
### Impact Mort
|
||||
**Seuil Critique** : +/- 20°C autour de l'idéal = Dégâts massifs.
|
||||
|
||||
### Impact Nourriture
|
||||
**Froid** : Augmente la consommation de nourriture (+20% par tranche de 5°C sous l'idéal).
|
||||
|
||||
### Impact Attractivité (Visiteurs/Animaux)
|
||||
N/A
|
||||
|
||||
### Impact Valeur
|
||||
N/A
|
||||
|
||||
## 5. Impacts Logistiques et Économiques
|
||||
### Vitesse (Camion/Nurserie/Accueil/Recherche/Labo/Visite)
|
||||
N/A
|
||||
|
||||
### Dépenses (Boutiques/Visiteurs)
|
||||
N/A
|
||||
|
||||
### Trajet Visiteurs
|
||||
N/A
|
||||
|
||||
## 6. Événements
|
||||
### Événements du Jeu / Carte / Zoo / Ville / Visiteur
|
||||
* **Canicule** : +10°C temporaire.
|
||||
* **Vague de Froid** : -10°C temporaire.
|
||||
|
||||
## 7. Progression
|
||||
### Tableau des Upgrades
|
||||
**Régulateur Thermique (Case)** :
|
||||
| Niveau | Coût | Plage Réglage | Temps |
|
||||
| :--- | :--- | :--- | :--- |
|
||||
| 1 | 200 | +/- 5°C | 0s |
|
||||
| 7 | 2000 | +/- 50°C | 0s |
|
||||
|
||||
## 8. Logique et Interfaces
|
||||
### Pseudo-code Impacts
|
||||
```
|
||||
currentTemp = baseBiomeTemp + seasonMod + dayNightMod + caseRegulatorOffset
|
||||
```
|
||||
|
||||
### Messages d'Infos / Alerte
|
||||
| ID | Niveau | Message |
|
||||
| :--- | :--- | :--- |
|
||||
| `TEMP_CRITICAL` | Alerte | "Température critique sur une case !" |
|
||||
|
||||
# Annexes UX/UI
|
||||
|
||||
## 1. Expérience Utilisateur (UX)
|
||||
### Visualisation Thermique (Passif)
|
||||
**Description UX** : Le joueur voit la température de chaque case.
|
||||
**Description UI** : Mode "Vue Thermique" (Overlay). Cases froides = Bleu, Chaudes = Rouge.
|
||||
**Emplacement** : Bouton HUD "Filtres".
|
||||
**Intégration** : Overlay global.
|
||||
**Navigation** : Toggle On/Off.
|
||||
**Événements** : `TOGGLE_THERMAL_VIEW`.
|
||||
|
||||
#### Assets
|
||||
- **Musiques** : N/A
|
||||
- **Sons** : `switch.mp3`.
|
||||
- **Graphiques** : Overlay dégradé Bleu/Rouge semi-transparent.
|
||||
- **Images** : N/A
|
||||
- **Vidéos** : N/A
|
||||
- **Animations** : Fade In/Out de l'overlay.
|
||||
- **Couleurs** : Bleu (#0000FF) -> Rouge (#FF0000).
|
||||
- **Textes** : "25°C" (sur chaque case).
|
||||
- **Formes** : N/A
|
||||
|
||||
### Feedback Critique (Alerte)
|
||||
**Description UX** : Une case est mortelle pour son occupant.
|
||||
**Description UI** : La case clignote ou a un bord rouge. L'animal tremble (froid) ou transpire (chaud).
|
||||
**Emplacement** : Case.
|
||||
**Intégration** : Immédiat.
|
||||
**Navigation** : N/A
|
||||
**Événements** : `TEMP_ALERT`.
|
||||
|
||||
#### Assets
|
||||
- **Musiques** : N/A
|
||||
- **Sons** : `shiver.mp3` (dents qui claquent) ou `pant.mp3`.
|
||||
- **Graphiques** : Particules Givre ou Vapeur.
|
||||
- **Images** : N/A
|
||||
- **Vidéos** : N/A
|
||||
- **Animations** : Tremblement sprite.
|
||||
- **Couleurs** : Bleu Glace / Rouge Feu.
|
||||
- **Textes** : N/A
|
||||
- **Formes** : N/A
|
||||
107
docs/specs/vente_animal.md
Normal file
107
docs/specs/vente_animal.md
Normal file
@@ -0,0 +1,107 @@
|
||||
# Spécifications : Ventes d'Animaux (Général)
|
||||
|
||||
## Types de Ventes
|
||||
- **Aux Enchères** : Vers d'autres joueurs (prix potentiellement élevé).
|
||||
- **Libération (Vente rapide)** : Vente au "système" (prix bas fixe) pour faire de la place rapidement (si implémenté pour éviter la mort). *Note : Le cahier des charges privilégie le marché joueurs, la libération est une option de secours.*
|
||||
|
||||
## Contraintes
|
||||
- Un animal malade ou mourant ne peut pas être mis en vente.
|
||||
- Le transport (Camion) immobilise l'animal pendant la durée de la vente.
|
||||
|
||||
# Annexes Techniques
|
||||
|
||||
## 1. Données et États
|
||||
### Modèle de Données (JSON)
|
||||
N/A
|
||||
|
||||
### Caractéristiques Initiales
|
||||
N/A
|
||||
|
||||
### Scores Initiaux
|
||||
N/A
|
||||
|
||||
## 2. Cycles de Vie et Apparition
|
||||
### Conditions d'Apparition
|
||||
N/A
|
||||
|
||||
### Conditions de Disparition
|
||||
N/A
|
||||
|
||||
### Hérédité
|
||||
N/A
|
||||
|
||||
## 3. Impacts Environnementaux
|
||||
### Impact Température
|
||||
N/A
|
||||
|
||||
### Impact Milieu (Biome)
|
||||
N/A
|
||||
|
||||
### Impact Saisons
|
||||
N/A
|
||||
|
||||
### Impact Heure / Jour-Nuit
|
||||
N/A
|
||||
|
||||
## 4. Impacts Biologiques et Sociaux
|
||||
### Impact Reproduction
|
||||
N/A
|
||||
|
||||
### Impact Mort
|
||||
N/A
|
||||
|
||||
### Impact Nourriture
|
||||
N/A
|
||||
|
||||
### Impact Attractivité (Visiteurs/Animaux)
|
||||
N/A
|
||||
|
||||
### Impact Valeur
|
||||
**Prix Libération** : 10% de la valeur théorique de l'animal.
|
||||
|
||||
## 5. Impacts Logistiques et Économiques
|
||||
### Vitesse (Camion/Nurserie/Accueil/Recherche/Labo/Visite)
|
||||
N/A
|
||||
|
||||
### Dépenses (Boutiques/Visiteurs)
|
||||
N/A
|
||||
|
||||
### Trajet Visiteurs
|
||||
N/A
|
||||
|
||||
## 6. Événements
|
||||
### Événements du Jeu / Carte / Zoo / Ville / Visiteur
|
||||
N/A
|
||||
|
||||
## 7. Progression
|
||||
### Tableau des Upgrades
|
||||
N/A
|
||||
|
||||
## 8. Logique et Interfaces
|
||||
### Pseudo-code Impacts
|
||||
N/A
|
||||
|
||||
### Messages d'Infos / Alerte
|
||||
N/A
|
||||
|
||||
# Annexes UX/UI
|
||||
|
||||
## 1. Expérience Utilisateur (UX)
|
||||
### Libération (Action)
|
||||
**Description UX** : Le joueur relâche un animal (vente système).
|
||||
**Description UI** : Bouton "Libérer" (souvent rouge ou discret pour éviter les erreurs). Confirmation "Êtes-vous sûr ? Vous gagnerez peu (X pièces)".
|
||||
**Emplacement** : Panneau Animal.
|
||||
**Intégration** : Option secondaire.
|
||||
**Navigation** : Clic Libérer -> Confirmer.
|
||||
**Événements** : `RELEASE_ANIMAL`.
|
||||
|
||||
#### Assets
|
||||
- **Musiques** : N/A
|
||||
- **Sons** : `bird_fly_away.mp3` (bruit de nature positif).
|
||||
- **Graphiques** : Icône Cage ouverte.
|
||||
- **Images** : N/A
|
||||
- **Vidéos** : N/A
|
||||
- **Animations** : Animal s'estompe ou court hors de l'écran.
|
||||
- **Couleurs** : Vert (Nature).
|
||||
- **Textes** : "Libéré !".
|
||||
- **Formes** : N/A
|
||||
128
docs/specs/vente_enchere_animal.md
Normal file
128
docs/specs/vente_enchere_animal.md
Normal file
@@ -0,0 +1,128 @@
|
||||
# Spécifications : Vente aux Enchères d'Animaux
|
||||
|
||||
## Définition
|
||||
Processus de vente pour les animaux adultes.
|
||||
|
||||
## Spécificités
|
||||
- **Valeur Variable** : Dépend de la rareté, mais aussi de l'âge et du "Score de Reproduction" restant. Un vieil animal vaut moins cher.
|
||||
- **Résistance** : Les adultes supportent mieux la période de mise en vente que les bébés.
|
||||
|
||||
## Processus
|
||||
Identique à la vente de bébés, mais avec des tolérances plus grandes sur les délais avant impact négatif sur la santé de l'animal.
|
||||
|
||||
# Annexes Techniques
|
||||
|
||||
## 1. Données et États
|
||||
### Modèle de Données (JSON)
|
||||
Identique à `vente_enchere_bebe.md`.
|
||||
|
||||
### Caractéristiques Initiales
|
||||
N/A
|
||||
|
||||
### Scores Initiaux
|
||||
N/A
|
||||
|
||||
## 2. Cycles de Vie et Apparition
|
||||
### Conditions d'Apparition
|
||||
Action joueur.
|
||||
|
||||
### Conditions de Disparition
|
||||
Vente ou Expiration.
|
||||
|
||||
### Hérédité
|
||||
N/A
|
||||
|
||||
## 3. Impacts Environnementaux
|
||||
### Impact Température
|
||||
N/A
|
||||
|
||||
### Impact Milieu (Biome)
|
||||
N/A
|
||||
|
||||
### Impact Saisons
|
||||
N/A
|
||||
|
||||
### Impact Heure / Jour-Nuit
|
||||
N/A
|
||||
|
||||
## 4. Impacts Biologiques et Sociaux
|
||||
### Impact Reproduction
|
||||
N/A
|
||||
|
||||
### Impact Mort
|
||||
**Risque** : Si `status == expired` et non récupéré sous 24h -> Mort.
|
||||
|
||||
### Impact Nourriture
|
||||
N/A
|
||||
|
||||
### Impact Attractivité (Visiteurs/Animaux)
|
||||
N/A
|
||||
|
||||
### Impact Valeur
|
||||
N/A
|
||||
|
||||
## 5. Impacts Logistiques et Économiques
|
||||
### Vitesse (Camion/Nurserie/Accueil/Recherche/Labo/Visite)
|
||||
N/A
|
||||
|
||||
### Dépenses (Boutiques/Visiteurs)
|
||||
N/A
|
||||
|
||||
### Trajet Visiteurs
|
||||
N/A
|
||||
|
||||
## 6. Événements
|
||||
### Événements du Jeu / Carte / Zoo / Ville / Visiteur
|
||||
N/A
|
||||
|
||||
## 7. Progression
|
||||
### Tableau des Upgrades
|
||||
N/A
|
||||
|
||||
## 8. Logique et Interfaces
|
||||
### Pseudo-code Impacts
|
||||
N/A
|
||||
|
||||
### Messages d'Infos / Alerte
|
||||
N/A
|
||||
|
||||
# Annexes UX/UI
|
||||
|
||||
## 1. Expérience Utilisateur (UX)
|
||||
### Mise en Vente (Action)
|
||||
**Description UX** : Le joueur sélectionne un animal adulte sur la grille et choisit "Vendre".
|
||||
**Description UI** : Bouton contextuel "Vendre" sur le panneau animal. Ouvre la **Bottom Sheet** de configuration (Prix, Durée).
|
||||
**Emplacement** : Panneau Animal -> Modal Vente.
|
||||
**Intégration** : Contextuel.
|
||||
**Navigation** : Clic Animal -> Vendre -> Config -> Valider.
|
||||
**Événements** : `CREATE_AUCTION_ADULT`.
|
||||
|
||||
#### Assets
|
||||
- **Musiques** : N/A
|
||||
- **Sons** : `cash_register_open.mp3`.
|
||||
- **Graphiques** : N/A
|
||||
- **Images** : Portrait Animal.
|
||||
- **Vidéos** : N/A
|
||||
- **Animations** : Animal disparaît de la grille (part en zone de vente).
|
||||
- **Couleurs** : N/A
|
||||
- **Textes** : "Mise à prix".
|
||||
- **Formes** : N/A
|
||||
|
||||
### Retour Invendu (Action)
|
||||
**Description UX** : L'enchère est finie sans acheteur. Le joueur doit récupérer l'animal.
|
||||
**Description UI** : Notification "Vente expirée". Bouton "Récupérer" dans le menu Ventes.
|
||||
**Emplacement** : Menu Ventes -> Accueil Animaux.
|
||||
**Intégration** : Action requise.
|
||||
**Navigation** : Clic Récupérer -> Choix Case (si Accueil plein).
|
||||
**Événements** : `RECLAIM_ANIMAL`.
|
||||
|
||||
#### Assets
|
||||
- **Musiques** : N/A
|
||||
- **Sons** : `sad_trombone.mp3` (échec).
|
||||
- **Graphiques** : N/A
|
||||
- **Images** : N/A
|
||||
- **Vidéos** : N/A
|
||||
- **Animations** : Retour visuel de l'animal.
|
||||
- **Couleurs** : Gris (Désactivé).
|
||||
- **Textes** : "Invendu".
|
||||
- **Formes** : N/A
|
||||
153
docs/specs/vente_enchere_bebe.md
Normal file
153
docs/specs/vente_enchere_bebe.md
Normal file
@@ -0,0 +1,153 @@
|
||||
# Spécifications : Vente aux Enchères de Bébés
|
||||
|
||||
## Définition
|
||||
Processus de vente spécifique pour les bébés animaux nés dans le zoo.
|
||||
|
||||
## Spécificités
|
||||
- **Forte Valeur** : Les bébés ont souvent une valeur supérieure aux adultes car ils ont tout leur potentiel de vie et de reproduction devant eux.
|
||||
- **Fragilité** : Un bébé mis en vente doit être vendu rapidement.
|
||||
- **Risque** : Si l'enchère échoue ou dure trop longtemps sans acheteur, le bébé risque de mourir dans le camion ou la zone de vente (faim/froid).
|
||||
|
||||
## Processus
|
||||
1. Sélection du bébé en Nurserie ou sur la grille.
|
||||
2. Glisser-déposer vers la zone Camion.
|
||||
3. Définition du prix de départ.
|
||||
4. Apparition sur la Carte du Monde.
|
||||
5. Si vendu : Transfert après délai de 10 min.
|
||||
6. Si invendu : Retour nécessaire en Nurserie ou Mort.
|
||||
|
||||
# Annexes Techniques
|
||||
|
||||
## 1. Données et États
|
||||
### Modèle de Données (JSON)
|
||||
```json
|
||||
{
|
||||
"id": "uuid",
|
||||
"seller_id": "uuid",
|
||||
"animal_id": "uuid",
|
||||
"start_price": "int",
|
||||
"current_bid": "int",
|
||||
"highest_bidder": "uuid | null",
|
||||
"end_time": "timestamp",
|
||||
"status": "active | sold | expired"
|
||||
}
|
||||
```
|
||||
|
||||
### Caractéristiques Initiales
|
||||
| Caractéristique | Valeur |
|
||||
| :--- | :--- |
|
||||
| Durée Enchère | 1h - 24h (au choix) |
|
||||
| Délai Validation | 10 min (fixe) |
|
||||
|
||||
### Scores Initiaux
|
||||
N/A
|
||||
|
||||
## 2. Cycles de Vie et Apparition
|
||||
### Conditions d'Apparition
|
||||
Action joueur.
|
||||
|
||||
### Conditions de Disparition
|
||||
Vente ou Expiration.
|
||||
|
||||
### Hérédité
|
||||
N/A
|
||||
|
||||
## 3. Impacts Environnementaux
|
||||
### Impact Température
|
||||
N/A
|
||||
|
||||
### Impact Milieu (Biome)
|
||||
N/A
|
||||
|
||||
### Impact Saisons
|
||||
N/A
|
||||
|
||||
### Impact Heure / Jour-Nuit
|
||||
N/A
|
||||
|
||||
## 4. Impacts Biologiques et Sociaux
|
||||
### Impact Reproduction
|
||||
N/A
|
||||
|
||||
### Impact Mort
|
||||
**Risque** : Si `status == expired` et non récupéré sous 1h -> Mort du bébé.
|
||||
|
||||
### Impact Nourriture
|
||||
N/A
|
||||
|
||||
### Impact Attractivité (Visiteurs/Animaux)
|
||||
N/A
|
||||
|
||||
### Impact Valeur
|
||||
**Dépréciation** : Aucune (c'est une enchère).
|
||||
|
||||
## 5. Impacts Logistiques et Économiques
|
||||
### Vitesse (Camion/Nurserie/Accueil/Recherche/Labo/Visite)
|
||||
N/A
|
||||
|
||||
### Dépenses (Boutiques/Visiteurs)
|
||||
N/A
|
||||
|
||||
### Trajet Visiteurs
|
||||
N/A
|
||||
|
||||
## 6. Événements
|
||||
### Événements du Jeu / Carte / Zoo / Ville / Visiteur
|
||||
* **Nouvelle Enchère** : Notification.
|
||||
* **Surenchère** : Notification vendeur.
|
||||
* **Vente Terminée** : Notification.
|
||||
|
||||
## 7. Progression
|
||||
### Tableau des Upgrades
|
||||
N/A
|
||||
|
||||
## 8. Logique et Interfaces
|
||||
### Pseudo-code Impacts
|
||||
N/A
|
||||
|
||||
### Messages d'Infos / Alerte
|
||||
| ID | Niveau | Message |
|
||||
| :--- | :--- | :--- |
|
||||
| `AUCTION_SOLD` | Succès | "Bébé vendu !" |
|
||||
| `AUCTION_FAIL` | Alerte | "Enchère terminée sans acheteur. Récupérez le bébé !" |
|
||||
|
||||
# Annexes UX/UI
|
||||
|
||||
## 1. Expérience Utilisateur (UX)
|
||||
### Mise en Vente (Action)
|
||||
**Description UX** : Le joueur glisse un bébé depuis la nurserie vers le camion.
|
||||
**Description UI** : **Bottom Sheet** de configuration "Vendre ce bébé". Choix du prix de départ et de la durée.
|
||||
**Emplacement** : Zoo -> Modal Vente.
|
||||
**Intégration** : Formulaire.
|
||||
**Navigation** : Drag -> Config -> Valider.
|
||||
**Événements** : `CREATE_AUCTION`.
|
||||
|
||||
#### Assets
|
||||
- **Musiques** : N/A
|
||||
- **Sons** : `cash_register_open.mp3`.
|
||||
- **Graphiques** : Icône Bourse/Pièce.
|
||||
- **Images** : Portrait Bébé.
|
||||
- **Vidéos** : N/A
|
||||
- **Animations** : N/A
|
||||
- **Couleurs** : Or.
|
||||
- **Textes** : "Prix de départ", "Durée".
|
||||
- **Formes** : Champs de saisie.
|
||||
|
||||
### Suivi Vente (Passif)
|
||||
**Description UX** : Le joueur voit son offre active sur son propre zoo (Carte Monde) ou dans son menu "Ventes".
|
||||
**Description UI** : Liste "Mes Ventes". Compteur d'enchères reçues.
|
||||
**Emplacement** : Menu Gestion -> Ventes.
|
||||
**Intégration** : Liste.
|
||||
**Navigation** : Menu -> Ventes.
|
||||
**Événements** : `OPEN_MY_SALES`.
|
||||
|
||||
#### Assets
|
||||
- **Musiques** : N/A
|
||||
- **Sons** : `notification.mp3` (si offre reçue).
|
||||
- **Graphiques** : N/A
|
||||
- **Images** : N/A
|
||||
- **Vidéos** : N/A
|
||||
- **Animations** : N/A
|
||||
- **Couleurs** : N/A
|
||||
- **Textes** : "Meilleure offre : X".
|
||||
- **Formes** : N/A
|
||||
123
docs/specs/ville.md
Normal file
123
docs/specs/ville.md
Normal file
@@ -0,0 +1,123 @@
|
||||
# Spécifications : Ville (Site)
|
||||
|
||||
## Définition
|
||||
Une ville est une entité sur la Carte du Monde qui génère le flux de visiteurs vers les zoos.
|
||||
|
||||
## Propriétés
|
||||
- **Nom** : Nom de la ville.
|
||||
- **Population** : Nombre de visiteurs potentiels maximum.
|
||||
- **Icône** : 🏙️
|
||||
|
||||
## Mécanique d'Attraction
|
||||
- Les visiteurs partent de la ville pour aller vers les zoos.
|
||||
- **Facteur de Distance** : Plus un zoo est proche d'une ville, plus il attire de visiteurs.
|
||||
- **Facteur d'Attractivité** : La valeur et la diversité du zoo influencent le choix des visiteurs.
|
||||
|
||||
# Annexes Techniques
|
||||
|
||||
## 1. Données et États
|
||||
### Modèle de Données (JSON)
|
||||
```json
|
||||
{
|
||||
"id": "uuid",
|
||||
"type": "city",
|
||||
"name": "string",
|
||||
"population": "integer",
|
||||
"wealth_factor": "float (0.5 - 2.0)"
|
||||
}
|
||||
```
|
||||
|
||||
### Caractéristiques Initiales
|
||||
| Caractéristique | Valeur Moyenne |
|
||||
| :--- | :--- |
|
||||
| Population | 10,000 - 1,000,000 |
|
||||
| Richesse | 1.0 |
|
||||
|
||||
### Scores Initiaux
|
||||
N/A
|
||||
|
||||
## 2. Cycles de Vie et Apparition
|
||||
### Conditions d'Apparition
|
||||
Génération carte.
|
||||
|
||||
### Conditions de Disparition
|
||||
N/A
|
||||
|
||||
### Hérédité
|
||||
N/A
|
||||
|
||||
## 3. Impacts Environnementaux
|
||||
### Impact Température
|
||||
N/A
|
||||
|
||||
### Impact Milieu (Biome)
|
||||
N/A
|
||||
|
||||
### Impact Saisons
|
||||
N/A
|
||||
|
||||
### Impact Heure / Jour-Nuit
|
||||
N/A
|
||||
|
||||
## 4. Impacts Biologiques et Sociaux
|
||||
### Impact Reproduction
|
||||
N/A
|
||||
|
||||
### Impact Mort
|
||||
N/A
|
||||
|
||||
### Impact Nourriture
|
||||
N/A
|
||||
|
||||
### Impact Attractivité (Visiteurs/Animaux)
|
||||
Source du flux. `Flux = Pop * (AttractivitéZoo / Distance²)`.
|
||||
|
||||
### Impact Valeur
|
||||
N/A
|
||||
|
||||
## 5. Impacts Logistiques et Économiques
|
||||
### Vitesse (Camion/Nurserie/Accueil/Recherche/Labo/Visite)
|
||||
N/A
|
||||
|
||||
### Dépenses (Boutiques/Visiteurs)
|
||||
**Facteur Richesse** : Multiplie le budget des visiteurs issus de cette ville.
|
||||
|
||||
### Trajet Visiteurs
|
||||
Point de départ.
|
||||
|
||||
## 6. Événements
|
||||
### Événements du Jeu / Carte / Zoo / Ville / Visiteur
|
||||
N/A
|
||||
|
||||
## 7. Progression
|
||||
### Tableau des Upgrades
|
||||
N/A
|
||||
|
||||
## 8. Logique et Interfaces
|
||||
### Pseudo-code Impacts
|
||||
N/A
|
||||
|
||||
### Messages d'Infos / Alerte
|
||||
N/A
|
||||
|
||||
# Annexes UX/UI
|
||||
|
||||
## 1. Expérience Utilisateur (UX)
|
||||
### Visualisation Taille (Passif)
|
||||
**Description UX** : Distinguer les grandes villes des petites.
|
||||
**Description UI** : Taille de l'icône proportionnelle à la population. Gratte-ciels vs Maisons.
|
||||
**Emplacement** : Carte Monde.
|
||||
**Intégration** : Sprite.
|
||||
**Navigation** : N/A
|
||||
**Événements** : N/A
|
||||
|
||||
#### Assets
|
||||
- **Musiques** : N/A
|
||||
- **Sons** : N/A
|
||||
- **Graphiques** : Sprites Ville (Petit, Moyen, Grand).
|
||||
- **Images** : N/A
|
||||
- **Vidéos** : N/A
|
||||
- **Animations** : N/A
|
||||
- **Couleurs** : Gris/Bleu.
|
||||
- **Textes** : Nom Ville.
|
||||
- **Formes** : N/A
|
||||
228
docs/specs/visiteur.md
Normal file
228
docs/specs/visiteur.md
Normal file
@@ -0,0 +1,228 @@
|
||||
# Spécifications : Visiteur
|
||||
|
||||
## Définition
|
||||
Personnage non-joueur (PNJ) qui visite le zoo.
|
||||
|
||||
## Comportement
|
||||
- **Apparition** : Arrive par la Billeterie (venant d'une Ville).
|
||||
- **Déplacement** : Se promène sur la grille, attiré par les animaux et boutiques.
|
||||
- **Durée** : Reste jusqu'à 1 journée (variable selon attractivité).
|
||||
- **Dépense** : Paie l'entrée + achats en boutique.
|
||||
|
||||
## Incidents et Exigences
|
||||
- **Besoins** : Soif, Repos (banc), Propreté (poubelle), Envie de photo.
|
||||
- **Feedback** : Bulle d'icône au-dessus du visiteur.
|
||||
- **Résolution** : Clic du joueur sur la bulle.
|
||||
- **Conséquence** :
|
||||
- Résolu : Gain de pièces + Attractivité.
|
||||
- Ignoré : Perte d'attractivité, départ anticipé.
|
||||
- **Contexte** : Apparaissent plus souvent pendant les temps d'attente (camion/enchère).
|
||||
|
||||
## Types
|
||||
- **Standard**
|
||||
- **Luxe** (8%) : Paie plus cher, plus exigeant.
|
||||
|
||||
# Annexes Techniques
|
||||
|
||||
## 1. Données et États
|
||||
### Modèle de Données (JSON)
|
||||
```json
|
||||
{
|
||||
"id": "uuid_v4",
|
||||
"type": "enum ('standard', 'vip')",
|
||||
"entry_time": "timestamp",
|
||||
"max_duration": "integer (seconds)",
|
||||
"budget": "integer",
|
||||
"satisfaction": "float (0-100)",
|
||||
"needs": {
|
||||
"thirst": "float (0-100)",
|
||||
"rest": "float (0-100)",
|
||||
"toilet": "float (0-100)"
|
||||
},
|
||||
"current_target": { "x": "int", "y": "int" },
|
||||
"position": { "x": "int", "y": "int" }
|
||||
}
|
||||
```
|
||||
|
||||
### Caractéristiques Initiales
|
||||
| Caractéristique | Standard | Luxe (VIP) |
|
||||
| :--- | :--- | :--- |
|
||||
| Budget | 50 | 200 |
|
||||
| Durée Max | 300s (5 min) | 600s (10 min) |
|
||||
| Satisfaction | 50 | 50 |
|
||||
|
||||
### Scores Initiaux
|
||||
N/A
|
||||
|
||||
## 2. Cycles de Vie et Apparition
|
||||
### Conditions d'Apparition
|
||||
| Facteur | Taux |
|
||||
| :--- | :--- |
|
||||
| Attractivité Zoo | `log(Attractivité) * FacteurVille` |
|
||||
| Heure | Pic à 14h, Nul à 22h |
|
||||
|
||||
### Conditions de Disparition
|
||||
| Cause | Seuil |
|
||||
| :--- | :--- |
|
||||
| Temps écoulé | Durée > Max Duration |
|
||||
| Insatisfaction | Satisfaction <= 0 |
|
||||
| Budget épuisé | Budget <= 0 (Départ normal) |
|
||||
|
||||
### Hérédité
|
||||
N/A
|
||||
|
||||
## 3. Impacts Environnementaux
|
||||
### Impact Température
|
||||
| Météo | Effet |
|
||||
| :--- | :--- |
|
||||
| Canicule | Soif augmente 2x plus vite |
|
||||
| Pluie | Satisfaction baisse plus vite (sauf si abri) |
|
||||
|
||||
### Impact Milieu (Biome)
|
||||
N/A
|
||||
|
||||
### Impact Saisons
|
||||
| Saison | Affluence (Multiplicateur) |
|
||||
| :--- | :--- |
|
||||
| Printemps | x1.0 |
|
||||
| Été | x1.5 (Vacances) |
|
||||
| Automne | x0.8 |
|
||||
| Hiver | x0.6 |
|
||||
|
||||
### Impact Heure / Jour-Nuit
|
||||
| Heure | Flux Entrant |
|
||||
| :--- | :--- |
|
||||
| 08h-10h | Faible |
|
||||
| 10h-16h | Fort |
|
||||
| 16h-18h | Décroissant |
|
||||
| > 18h | Nul |
|
||||
|
||||
## 4. Impacts Biologiques et Sociaux
|
||||
### Impact Reproduction
|
||||
N/A
|
||||
|
||||
### Impact Mort
|
||||
| Événement | Effet Satisfaction |
|
||||
| :--- | :--- |
|
||||
| Voir animal mort | -50 (Départ quasi immédiat) |
|
||||
|
||||
### Impact Nourriture
|
||||
N/A (Concerne les animaux, ici c'est "Soif/Faim visiteur" -> Boutiques)
|
||||
|
||||
### Impact Attractivité (Visiteurs/Animaux)
|
||||
| Cible | Poids Attraction |
|
||||
| :--- | :--- |
|
||||
| Animal Légendaire | 100 |
|
||||
| Animal Commun | 10 |
|
||||
| Boutique | 50 (si besoin > 50) |
|
||||
|
||||
### Impact Valeur
|
||||
N/A
|
||||
|
||||
## 5. Impacts Logistiques et Économiques
|
||||
### Vitesse (Camion/Nurserie/Accueil/Recherche/Labo/Visite)
|
||||
| Paramètre | Valeur |
|
||||
| :--- | :--- |
|
||||
| Vitesse Marche | 1 case / 2 sec |
|
||||
|
||||
### Dépenses (Boutiques/Visiteurs)
|
||||
| Action | Dépense |
|
||||
| :--- | :--- |
|
||||
| Ticket Entrée | 10 (Standard) / 50 (VIP) |
|
||||
| Boutique Souvenir | 15-30 |
|
||||
| Boisson | 5 |
|
||||
|
||||
### Trajet Visiteurs
|
||||
**Algorithme** : `Weighted Random Walk` vers les points d'intérêt (POI) avec decay sur la distance.
|
||||
|
||||
## 6. Événements
|
||||
### Événements du Jeu / Carte / Zoo / Ville / Visiteur
|
||||
* **Incident (Bulle)** : Apparition aléatoire (probabilité augmentée si attente joueur).
|
||||
* **Achat** : Interaction avec boutique.
|
||||
|
||||
## 7. Progression
|
||||
### Tableau des Upgrades
|
||||
N/A
|
||||
|
||||
## 8. Logique et Interfaces
|
||||
### Pseudo-code Impacts
|
||||
```
|
||||
function updateVisitor(visitor):
|
||||
visitor.satisfaction -= decayRate
|
||||
visitor.needs.thirst += 1
|
||||
|
||||
if visitor.needs.thirst > 80:
|
||||
target = findNearestShop()
|
||||
if not target:
|
||||
visitor.satisfaction -= 5 (Frustration)
|
||||
spawnIncident("Soif")
|
||||
|
||||
if visitor.satisfaction <= 0:
|
||||
leaveZoo(visitor)
|
||||
```
|
||||
|
||||
### Messages d'Infos / Alerte
|
||||
| ID | Niveau | Message |
|
||||
| :--- | :--- | :--- |
|
||||
| `VISITOR_ANGRY` | Info | "Un visiteur est parti mécontent." |
|
||||
| `VISITOR_HAPPY` | Info | "Un visiteur a adoré le zoo !" |
|
||||
|
||||
# Annexes UX/UI
|
||||
|
||||
## 1. Expérience Utilisateur (UX)
|
||||
### Visite (Passif)
|
||||
**Description UX** : Le visiteur entre, marche, regarde les animaux, achète, repart.
|
||||
**Description UI** : Petit sprite humain. Vêtements colorés.
|
||||
**Emplacement** : Grille Zoo.
|
||||
**Intégration** : Foule.
|
||||
**Navigation** : N/A
|
||||
**Événements** : `VISITOR_WALK`.
|
||||
|
||||
#### Assets
|
||||
- **Musiques** : N/A
|
||||
- **Sons** : Pas sur l'herbe/béton.
|
||||
- **Graphiques** : Sprites variés (H/F/Enfant).
|
||||
- **Images** : N/A
|
||||
- **Vidéos** : N/A
|
||||
- **Animations** : Marche, Regarde (tourne la tête), Prend photo (flash).
|
||||
- **Couleurs** : Aléatoires.
|
||||
- **Textes** : N/A
|
||||
- **Formes** : N/A
|
||||
|
||||
### Incident / Besoin (Action)
|
||||
**Description UX** : Une bulle apparaît au-dessus d'un visiteur (ex: Soif, Perdu, Envie pipi). Le joueur clique pour résoudre (ex: Indiquer toilettes, Donner eau).
|
||||
**Description UI** : Bulle blanche avec icône noire. Clignote si urgent.
|
||||
**Emplacement** : Au-dessus du sprite visiteur.
|
||||
**Intégration** : Overlay World Space.
|
||||
**Navigation** : Clic Bulle -> Résolution (Animation + Gain).
|
||||
**Événements** : `INCIDENT_SPAWN`, `INCIDENT_SOLVE`.
|
||||
|
||||
#### Assets
|
||||
- **Musiques** : N/A
|
||||
- **Sons** : `bubble_pop.mp3` (apparition), `coin_collect.mp3` (résolution). **Design ASMR** : Son satisfaisant et tactile ("Pop" organique).
|
||||
- **Graphiques** : Icônes (Goutte d'eau, Point interrogation, Appareil photo).
|
||||
- **Images** : N/A
|
||||
- **Vidéos** : N/A
|
||||
- **Animations** : Bulle qui pop. Visiteur qui sourit après résolution.
|
||||
- **Couleurs** : Bulle Blanche/Rouge (Urgent).
|
||||
- **Textes** : "Merci !" (flottant).
|
||||
- **Formes** : Bulle BD.
|
||||
|
||||
### Départ (Passif)
|
||||
**Description UX** : Le visiteur quitte le zoo.
|
||||
**Description UI** : Marche vers la sortie et disparaît (Fade out).
|
||||
**Emplacement** : Billeterie.
|
||||
**Intégration** : Fin cycle.
|
||||
**Navigation** : N/A
|
||||
**Événements** : `VISITOR_EXIT`.
|
||||
|
||||
#### Assets
|
||||
- **Musiques** : N/A
|
||||
- **Sons** : N/A
|
||||
- **Graphiques** : N/A
|
||||
- **Images** : N/A
|
||||
- **Vidéos** : N/A
|
||||
- **Animations** : Fade out.
|
||||
- **Couleurs** : N/A
|
||||
- **Textes** : N/A
|
||||
- **Formes** : N/A
|
||||
153
docs/specs/zoo.md
Normal file
153
docs/specs/zoo.md
Normal file
@@ -0,0 +1,153 @@
|
||||
# Spécifications : Zoo (Site)
|
||||
|
||||
## Définition
|
||||
Représentation d'un zoo (joueur ou bot) sur la Carte du Monde.
|
||||
|
||||
## Affichage
|
||||
- **Nom du zoo**
|
||||
- **Icône** : 🏠
|
||||
- **Slot d'offre** :
|
||||
- Pour les autres zoos : Affiche l'œuf/bébé/animal en vente (Type + Prix).
|
||||
- Pour le zoo du joueur : Masqué (pas d'offre visible pour soi-même).
|
||||
- **Indicateurs (Bots)** : Pièces disponibles, Niveau de parcelle.
|
||||
|
||||
## Indicateurs de Performance (Cases dédiées sous le zoo)
|
||||
1. **Score d'Attractivité** : Influence la venue des visiteurs.
|
||||
2. **Score de Reproduction** : Influence la qualité des naissances.
|
||||
3. **Case de Vente** : Offre active visible par les autres joueurs.
|
||||
|
||||
## Interaction
|
||||
- **Achat** : Glisser l'offre du zoo vers le camion du joueur.
|
||||
|
||||
# Annexes Techniques
|
||||
|
||||
## 1. Données et États
|
||||
### Modèle de Données (JSON)
|
||||
```json
|
||||
{
|
||||
"id": "uuid",
|
||||
"type": "zoo",
|
||||
"owner_id": "uuid",
|
||||
"scores": {
|
||||
"attractiveness": "int",
|
||||
"reproduction": "int"
|
||||
},
|
||||
"current_offer": { "animal_id": "uuid", "price": "int" }
|
||||
}
|
||||
```
|
||||
|
||||
### Caractéristiques Initiales
|
||||
| Caractéristique | Valeur Initiale |
|
||||
| :--- | :--- |
|
||||
| Attractivité | 0 |
|
||||
| Reproduction | 0 |
|
||||
|
||||
### Scores Initiaux
|
||||
Voir ci-dessus.
|
||||
|
||||
## 2. Cycles de Vie et Apparition
|
||||
### Conditions d'Apparition
|
||||
Création compte.
|
||||
|
||||
### Conditions de Disparition
|
||||
Suppression compte.
|
||||
|
||||
### Hérédité
|
||||
N/A
|
||||
|
||||
## 3. Impacts Environnementaux
|
||||
### Impact Température
|
||||
N/A
|
||||
|
||||
### Impact Milieu (Biome)
|
||||
N/A
|
||||
|
||||
### Impact Saisons
|
||||
N/A
|
||||
|
||||
### Impact Heure / Jour-Nuit
|
||||
N/A
|
||||
|
||||
## 4. Impacts Biologiques et Sociaux
|
||||
### Impact Reproduction
|
||||
Score visible publiquement.
|
||||
|
||||
### Impact Mort
|
||||
N/A
|
||||
|
||||
### Impact Nourriture
|
||||
N/A
|
||||
|
||||
### Impact Attractivité (Visiteurs/Animaux)
|
||||
Score visible publiquement.
|
||||
|
||||
### Impact Valeur
|
||||
N/A
|
||||
|
||||
## 5. Impacts Logistiques et Économiques
|
||||
### Vitesse (Camion/Nurserie/Accueil/Recherche/Labo/Visite)
|
||||
N/A
|
||||
|
||||
### Dépenses (Boutiques/Visiteurs)
|
||||
N/A
|
||||
|
||||
### Trajet Visiteurs
|
||||
Destination possible.
|
||||
|
||||
## 6. Événements
|
||||
### Événements du Jeu / Carte / Zoo / Ville / Visiteur
|
||||
* **Nouvelle Offre** : Mise en vente.
|
||||
* **Vente** : Offre achetée.
|
||||
|
||||
## 7. Progression
|
||||
### Tableau des Upgrades
|
||||
N/A
|
||||
|
||||
## 8. Logique et Interfaces
|
||||
### Pseudo-code Impacts
|
||||
N/A
|
||||
|
||||
### Messages d'Infos / Alerte
|
||||
N/A
|
||||
|
||||
# Annexes UX/UI
|
||||
|
||||
## 1. Expérience Utilisateur (UX)
|
||||
### Visualisation Offre (Passif)
|
||||
**Description UX** : Voir ce que vend un autre joueur.
|
||||
**Description UI** : Une "bulle" ou un "panneau" accroché sous l'icône du zoo. Affiche l'animal (sprite) et le prix.
|
||||
**Emplacement** : Carte Monde.
|
||||
**Intégration** : World Space UI.
|
||||
**Navigation** : N/A
|
||||
**Événements** : `OFFER_UPDATE`.
|
||||
|
||||
#### Assets
|
||||
- **Musiques** : N/A
|
||||
- **Sons** : N/A
|
||||
- **Graphiques** : Cadre Offre.
|
||||
- **Images** : Sprite Animal.
|
||||
- **Vidéos** : N/A
|
||||
- **Animations** : Prix qui clignote si bas.
|
||||
- **Couleurs** : Or (Prix).
|
||||
- **Textes** : "500".
|
||||
- **Formes** : Bulle.
|
||||
|
||||
### Interaction Achat (Action)
|
||||
**Description UX** : Acheter l'animal.
|
||||
**Description UI** : Drag de l'offre vers le camion (en bas de l'écran ou sur la carte).
|
||||
**Alternative** : Tap Offre -> Tap Camion.
|
||||
**Emplacement** : Carte Monde.
|
||||
**Intégration** : Drag & Drop.
|
||||
**Navigation** : Drag -> Drop.
|
||||
**Événements** : `DRAG_OFFER`.
|
||||
|
||||
#### Assets
|
||||
- **Musiques** : N/A
|
||||
- **Sons** : `pickup.mp3`.
|
||||
- **Graphiques** : Fantôme offre sous curseur.
|
||||
- **Images** : N/A
|
||||
- **Vidéos** : N/A
|
||||
- **Animations** : N/A
|
||||
- **Couleurs** : N/A
|
||||
- **Textes** : N/A
|
||||
- **Formes** : N/A
|
||||
Reference in New Issue
Block a user