Rendre le résultat d’exécution des actions de combat fiable #77

Closed
opened 2026-06-22 10:51:26 +00:00 by Reliodas · 0 comments
Owner

CombatController.execute_action("end_turn") renvoie actuellement true même hors tour joueur ou avant le démarrage du combat, alors que player_end_turn() ne fait rien. Ce contrat trompe l’UI, les tests et toute future commande générique. Reproduction confirmée avant start().

Périmètre :

  • chaque action renvoie vrai uniquement si elle a réellement été appliquée ;
  • end_turn, déplacement et fuite suivent le même contrat explicite ;
  • une action absente ou désactivée ne produit aucun effet ;
  • aligner available_actions().enabled et execute_action().

Critères d’acceptation :

  • end_turn renvoie faux hors tour joueur et vrai lorsqu’il termine effectivement le tour ;
  • une action désactivée ne consomme aucune ressource ;
  • un id inconnu reste refusé ;
  • l’UI ne peut pas déclencher une commande déclarée indisponible ;
  • le cas solo et multi-acteurs reste stable.

Tests automatisés à ajouter :

  • toutes les actions avant start(), pendant un tour automatique et après fin de combat ;
  • end_turn sur un vrai tour joueur avec vérification du changement d’acteur ;
  • cohérence exhaustive entre les descripteurs enabled et leur résultat d’exécution ;
  • attaque sans cible, déplacement invalide et Second Wind indisponible sans consommation.
`CombatController.execute_action("end_turn")` renvoie actuellement `true` même hors tour joueur ou avant le démarrage du combat, alors que `player_end_turn()` ne fait rien. Ce contrat trompe l’UI, les tests et toute future commande générique. Reproduction confirmée avant `start()`. Périmètre : - chaque action renvoie vrai uniquement si elle a réellement été appliquée ; - `end_turn`, déplacement et fuite suivent le même contrat explicite ; - une action absente ou désactivée ne produit aucun effet ; - aligner `available_actions().enabled` et `execute_action()`. Critères d’acceptation : - `end_turn` renvoie faux hors tour joueur et vrai lorsqu’il termine effectivement le tour ; - une action désactivée ne consomme aucune ressource ; - un id inconnu reste refusé ; - l’UI ne peut pas déclencher une commande déclarée indisponible ; - le cas solo et multi-acteurs reste stable. Tests automatisés à ajouter : - toutes les actions avant `start()`, pendant un tour automatique et après fin de combat ; - `end_turn` sur un vrai tour joueur avec vérification du changement d’acteur ; - cohérence exhaustive entre les descripteurs `enabled` et leur résultat d’exécution ; - attaque sans cible, déplacement invalide et Second Wind indisponible sans consommation.
Reliodas added this to the 0.16.0 milestone 2026-06-22 10:51:26 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: jeux/beaulieu-sur-brume#77
No description provided.