Files
builazoo/docs/specs/bot.md
Nicolas Cantu e031c9a1d2 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
2026-03-03 22:24:17 +01:00

163 lines
4.3 KiB
Markdown

# 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.