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:
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.
|
||||
Reference in New Issue
Block a user