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

3.8 KiB
Raw Permalink Blame History

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