# 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)"
  },
  "iso_x": "integer",
  "iso_y": "integer",
  "z_index": "integer"
}
```

### Caractéristiques Initiales
| Caractéristique | Valeur Initiale | Type | Description |
|---|---:|---|---|
| Fréquence min | 5 | minutes | Intervalle minimal entre actions. |
| Fréquence max | 60 | minutes | Intervalle maximal (profil lent). |
| Budget action | 10% | % coins | Part des coins max utilisable par action (plafond anti-ruine). |

### Scores Initiaux
| Score | Valeur Initiale | Plage (Min-Max) | Impact |
|---|---:|---|---|
| Agressivité marché | 50 | 0-100 | Propension à acheter/vendre. |
| Prudence survie | 50 | 0-100 | Propension à acheter nourriture/soins. |
| Priorité expansion | 20 | 0-100 | Propension à agrandir carte/améliorer bâtiments. |

## 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é
| Parent | Trait Transmis | Probabilité | Mutation Possible |
|---|---|---:|---|
| Profil choisi | Paramètres logique | 100% | Non |

## 3. Impacts Environnementaux
### Impact Température
| Condition | Effet |
|---|---|
| Froid/Chaud extrême | Augmente achats régulation/biome | priorité survie + |

### Impact Milieu (Biome)
| Biome | Effet |
|---|---|
| Biome défavorable à la majorité | Achats “changement milieu” | priorité survie + |

### Impact Saisons
| Saison | Effet | Modificateur |
|---|---|---|
| Printemps | Focus reproduction | priorité éleveur + |
| Hiver | Focus survie | priorité conservateur + |

### Impact Heure / Jour-Nuit
| Période | Effet |
|---|---|
| Nuit | Actions limitées | fréquence + lente |

## 4. Impacts Biologiques et Sociaux
### Impact Reproduction
| Facteur | Effet sur Taux | Condition |
|---|---|---|
| Score survie élevé | Bot tente reproduction | profil éleveur |

### Impact Mort
| Cause | Conséquence | Durée |
|---|---|---|
| Série de morts | Bot achète nourriture/soins | 24h |

### Impact Nourriture
| Facteur | Variation | Condition |
|---|---|---|
| Stock bas | Achat immédiat | seuil profil |

### Impact Attractivité (Visiteurs/Animaux)
| Action/État | Gain Attractivité | Rayon d'action |
|---|---:|---:|
| Placements optimisés | + | zoo du bot |

### Impact Valeur
| Facteur | Variation | Condition |
|---|---|---|
| Profil commerçant | Valeur cash + | ventes fréquentes |

## 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)
| Poste | Coût | Unité | Condition |
|---|---:|---|---|
| Achats auto nourriture | variable | coins | selon seuil |
| Achat upgrades | variable | coins | selon priorité |

### Trajet Visiteurs
| Trajet | Règle | Notes |
|---|---|---|
| Rapport d’absence → décisions | Script profilé | Le bot ne “se déplace” pas : il calcule des actions sur l’état du zoo et sur le marché. |

## 6. Événements
### Événements du Jeu / Carte / Zoo / Ville / Visiteur
*   **Action Bot** : Achat/Vente automatisé.

## 7. Progression
### Tableau des Upgrades
| Niveau | Coût | Prérequis | Bonus Débloqué |
|---|---:|---|---|
| 1 | 0 | - | Profil basique |
| 2 | 5000 | Réputation 300 | Stratégies avancées (arbitrage) |

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

## 0. Direction Artistique & Vue
*   **Vue** : Isométrique (2.5D).
*   **Style** : Coloré, vivant, détails foisonnants (Réf: IMG_20260303_170253.jpg).
*   **Sprites** : 4 directions.
*   **Interactions** :
    *   **Sélection** : Cliquer sur la base de l'élément (ou son sprite principal) pour le sélectionner.
    *   **Feedback** : Surbrillance (outline blanc/jaune) au survol de la souris.


## 1. Expérience Utilisateur (UX)
### 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** : `ui_bot_family_pick.mp3` (jingle court).
- **Sons** : `card_flip.mp3`.
- **Graphiques** : Illustrations des familles (ex: Conservateur avec bouclier, Commerçant avec bourse).
- **Images** : Portraits Bots.
- **Vidéos** : `bot_family_cards.webm` (1s loop, optionnel).
- **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** : `ui_report_open.mp3` (jingle court).
- **Sons** : `notification.mp3`.
- **Graphiques** : Icône Robot.
- **Images** : `icon_robot.png`, `report_bg.png`.
- **Vidéos** : `report_scroll.webm` (0.8s loop, optionnel).
- **Animations** : Apparition slide-in + highlight des lignes importantes.
- **Couleurs** : Gris/Métal.
- **Textes** : Liste des actions.
- **Formes** : Liste à puces.
