**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
3.8 KiB
3.8 KiB
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 d’upgrade du joueur.
Référence : Cahier des charges §5 ; plan d’action BLOC 3.
Impacts
- State :
autoModeProfileId(1–50) 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 d’upgrade (parcelle, compétences, camion) utilisent les paramètres du profil (seuil de dépense, probabilité d’upgrade) 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 d’une 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 (1–5), spendThreshold, upgradeChance, sellChance, clés i18n (label, priorities, risks). Familles : Conservateurs (1–10), Éleveurs (11–20), Commerçants (21–30), Expansionnistes (31–40), Scientifiques (41–50).
getEffectiveProfileId(state),getProfileParams(profileId),getProfilesByFamily(familyId),getAllProfiles(). - web/js/types.js :
GameState.autoModeProfileId?,autoProfilePickerOpen?,autoProfilePickerFamily?. - web/js/state.js :
saveStateomet les champsautoProfilePickerOpenetautoProfilePickerFamilyavant persistance ;applyLoadStateScalarDefaultsremet ces champs à false/undefined au chargement. - web/js/bot-zoo.js :
tickPlayerAutoModeutilisegetEffectiveProfileId(state)etgetProfileParams(profileId);playerAutoDoOneUpgrade(state, params, rng)reçoit des paramètres numériques. Pour les bots,tickBotDecisionsutiliseLEGACY_PROFILE_TO_ID[b.profile]etgetProfileParams(profileId);botDecideUpgrade,botDecideSell,botDecideBuyreçoivent un objetparams(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 d’une spécialisation :
autoModeProfileId,autoMode: true, fermeture du picker. - web/js/texts-fr.js :
autoProfileFamilyLabel(5 familles),autoProfileSpecialisationLabel(1–50),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 d’analyse
- Désactiver le mode auto, cliquer sur le bouton mode auto : le panneau « Choisir le profil » s’affiche avec 5 familles.
- Choisir une famille : affichage des 10 spécialisations.
- Choisir une spécialisation : le mode auto s’active 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é d’upgrade).
- Ancienne sauvegarde sans
autoModeProfileId: comportement identique à « balanced » (profil 25).