Files
builazoo/docs/features/mode-auto-50-profils.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

36 lines
3.8 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Mode automatique 50 profils et sélection hiérarchique
**Objectif :** Proposer 50 profils de mode automatique répartis en 5 familles, avec une interface de sélection en deux étapes (Famille → Spécialisation) et utilisation des paramètres du profil choisi pour les décisions dupgrade du joueur.
**Référence :** Cahier des charges §5 ; plan daction BLOC 3.
## Impacts
- **State :** `autoModeProfileId` (150) stocke le profil choisi ; `autoModeProfile` ("fast"|"slow"|"balanced") reste pour rétrocompatibilité et est mappé à un profil par défaut (balanced→25, fast→33, slow→7).
- **Mode auto joueur :** Les décisions dupgrade (parcelle, compétences, camion) utilisent les paramètres du profil (seuil de dépense, probabilité dupgrade) au lieu des 3 profils legacy uniquement.
- **UI :** Clic sur le bouton mode auto quand il est inactif ouvre un panneau (Famille → Spécialisation) ; choix dune spécialisation active le mode auto avec ce profil. Clic quand le mode auto est actif le désactive.
- **Bots :** Les décisions upgrade/sell/buy utilisent `getProfileParams(LEGACY_PROFILE_TO_ID[profile])` ; paramètres centralisés dans auto-mode-profiles (plus de ternaires fast/slow/balanced).
## Modifications
- **web/js/auto-mode-profiles.js** (nouveau) : 50 profils avec id, familyId (15), spendThreshold, upgradeChance, sellChance, clés i18n (label, priorities, risks). Familles : Conservateurs (110), Éleveurs (1120), Commerçants (2130), Expansionnistes (3140), Scientifiques (4150). `getEffectiveProfileId(state)`, `getProfileParams(profileId)`, `getProfilesByFamily(familyId)`, `getAllProfiles()`.
- **web/js/types.js** : `GameState.autoModeProfileId?`, `autoProfilePickerOpen?`, `autoProfilePickerFamily?`.
- **web/js/state.js** : `saveState` omet les champs `autoProfilePickerOpen` et `autoProfilePickerFamily` avant persistance ; `applyLoadStateScalarDefaults` remet ces champs à false/undefined au chargement.
- **web/js/bot-zoo.js** : `tickPlayerAutoMode` utilise `getEffectiveProfileId(state)` et `getProfileParams(profileId)` ; `playerAutoDoOneUpgrade(state, params, rng)` reçoit des paramètres numériques. Pour les bots, `tickBotDecisions` utilise `LEGACY_PROFILE_TO_ID[b.profile]` et `getProfileParams(profileId)` ; `botDecideUpgrade`, `botDecideSell`, `botDecideBuy` reçoivent un objet `params` (spendThreshold, upgradeChance, sellChance) au lieu du libellé.
- **web/js/ui.js** : Clic sur le bouton mode auto ouvre le picker si inactif ; panneau avec 5 familles puis 10 spécialisations, bouton Annuler. Au choix dune spécialisation : `autoModeProfileId`, `autoMode: true`, fermeture du picker.
- **web/js/texts-fr.js** : `autoProfileFamilyLabel` (5 familles), `autoProfileSpecialisationLabel` (150), `autoProfilePrioritiesLabel`, `autoProfileRisksLabel` (placeholders), libellés du picker.
- **web/css/main.css** : `.auto-profile-picker-wrap`, `.auto-profile-picker-title`, `.auto-profile-picker-step`, `.auto-profile-picker-families`, `.auto-profile-picker-specialisations`, boutons famille/spécialisation, bouton Annuler.
## Modalités de déploiement
- Client uniquement. Rechargement suffit.
## Modalités danalyse
- Désactiver le mode auto, cliquer sur le bouton mode auto : le panneau « Choisir le profil » saffiche avec 5 familles.
- Choisir une famille : affichage des 10 spécialisations.
- Choisir une spécialisation : le mode auto sactive avec le profil correspondant (🤖), le panneau se ferme.
- Annuler : le panneau se ferme sans activer le mode auto.
- Avec le mode auto actif, les upgrades automatiques utilisent les paramètres du profil sélectionné (seuil de dépense et probabilité dupgrade).
- Ancienne sauvegarde sans `autoModeProfileId` : comportement identique à « balanced » (profil 25).