Florian-DELRIEU / HOI4_Calculator

Land battle simulator for Heart of Iron IV and Warhammer 40k
1 stars 0 forks source link

GUI/3.1 - Basic combat mechanic #60

Closed Florian-DELRIEU closed 2 months ago

Florian-DELRIEU commented 2 months ago

Résumé par Sourcery

Implémenter des mécanismes de combat de base dans l'interface graphique, y compris la gestion des camps et des divisions, l'exécution des rounds de bataille, et la sauvegarde/chargement des données de bataille. Introduire de nouvelles classes pour Division, Camp, et Terrain pour soutenir ces fonctionnalités, et refactoriser la BattleWindow et le DivisionEditor pour intégrer la nouvelle fonctionnalité. Ajouter des tests unitaires de base pour vérifier les nouveaux mécanismes de combat.

Nouvelles Fonctionnalités :

Améliorations :

Tests :

Tâches :

Original summary in English ## Summary by Sourcery Implement basic combat mechanics in the GUI, including the management of camps and divisions, execution of battle rounds, and saving/loading of battle data. Introduce new classes for Division, Camp, and Terrain to support these features, and refactor the BattleWindow and DivisionEditor to integrate the new functionality. Add basic unit tests to verify the new combat mechanics. New Features: - Introduce a basic combat mechanic in the GUI, allowing for the execution of battle rounds between two camps with divisions. - Add functionality to save and load battle data, including terrain, weather, and division details. - Implement a new Division class to handle division attributes and combat mechanics, including targeting and attacking. - Introduce a Camp class to manage divisions, frontline, and reserves, and handle battle information. - Add a Terrain class and a list of terrains to manage different battle environments. Enhancements: - Refactor the BattleWindow to include new UI elements for selecting terrain and managing divisions in camps. - Update the DivisionEditor to include an 'Initiative' attribute for divisions and improve division management. Tests: - Add basic unit tests for adding divisions and simulating a 2v2 battle scenario using the BattleWindow. Chores: - Move division data storage to a new directory 'Saves' and update file paths accordingly.
sourcery-ai[bot] commented 2 months ago

Guide du Réviseur par Sourcery

Cette pull request implémente une mécanique de combat de base pour un jeu de simulation de bataille. Elle introduit de nouvelles classes pour les divisions et les camps, met à jour l'interface de la fenêtre de bataille, et ajoute des fonctionnalités pour exécuter des rounds de bataille et gérer les divisions en combat.

Modifications au Niveau des Fichiers

Changement Détails Fichiers
Implémentation des mécaniques de combat de base et gestion des divisions
  • Ajout d'une nouvelle classe Division avec des méthodes liées au combat
  • Création de la classe Camp pour gérer des groupes de divisions
  • Implémentation de la logique de ciblage et de calcul des dégâts
  • Ajout de la fonctionnalité pour déplacer les divisions entre la ligne de front et les réserves
Classes/Division.py
Classes/Camp.py
BattleWindow.py
Mise à jour de l'interface et des fonctionnalités de la fenêtre de bataille
  • Ajout de boutons et de méthodes pour exécuter des rounds de bataille
  • Implémentation de la sélection et de l'affichage des divisions dans l'UI
  • Ajout d'un menu déroulant pour la sélection du terrain
  • Création d'une méthode pour rafraîchir l'affichage des divisions après le combat
BattleWindow.py
Ajout de classes de support et de fonctions utilitaires
  • Création de la classe Terrain et de la liste des terrains
  • Ajout de fonctions utilitaires pour la génération d'ID
  • Implémentation de la sauvegarde et du chargement JSON pour les données de bataille
Classes/Terrain.py
TerrainList.py
Functions.py
Saves/battle_data.json
Mise à jour de l'éditeur de divisions et de la structure des données
  • Ajout de l'attribut 'Initiative' aux divisions
  • Mise à jour de la logique de sauvegarde et de chargement des divisions
  • Modification de la structure des données des divisions dans le fichier JSON
DivisionEditor.py
Saves/divisions.json

Conseils - Déclenchez une nouvelle révision Sourcery en commentant `@sourcery-ai review` sur la pull request. - Continuez votre discussion avec Sourcery en répondant directement aux commentaires de révision. - Vous pouvez modifier vos paramètres de révision à tout moment en accédant à votre [tableau de bord](https://app.sourcery.ai): - Activer ou désactiver le résumé de la pull request généré par Sourcery ou le guide du réviseur; - Changer la langue de révision; - Vous pouvez toujours [nous contacter](mailto:support@sourcery.ai) si vous avez des questions ou des commentaires.
Original review guide in English ## Reviewer's Guide by Sourcery This pull request implements a basic combat mechanic for a battle simulation game. It introduces new classes for divisions and camps, updates the battle window interface, and adds functionality for running battle rounds and managing divisions in combat. ### File-Level Changes | Change | Details | Files | | ------ | ------- | ----- | | Implemented basic combat mechanics and division management |
  • Added new Division class with combat-related methods
  • Created Camp class to manage groups of divisions
  • Implemented targeting and damage calculation logic
  • Added functionality to move divisions between frontline and reserves
| `Classes/Division.py`
`Classes/Camp.py`
`BattleWindow.py` | | Updated battle window interface and functionality |
  • Added buttons and methods for running battle rounds
  • Implemented division selection and display in the UI
  • Added terrain selection dropdown
  • Created method to refresh division display after combat
| `BattleWindow.py` | | Added support classes and utility functions |
  • Created Terrain class and terrain list
  • Added utility functions for ID generation
  • Implemented JSON saving and loading for battle data
| `Classes/Terrain.py`
`TerrainList.py`
`Functions.py`
`Saves/battle_data.json` | | Updated division editor and data structure |
  • Added 'Initiative' attribute to divisions
  • Updated division saving and loading logic
  • Modified division data structure in JSON file
| `DivisionEditor.py`
`Saves/divisions.json` | ---
Tips - Trigger a new Sourcery review by commenting `@sourcery-ai review` on the pull request. - Continue your discussion with Sourcery by replying directly to review comments. - You can change your review settings at any time by accessing your [dashboard](https://app.sourcery.ai): - Enable or disable the Sourcery-generated pull request summary or reviewer's guide; - Change the review language; - You can always [contact us](mailto:support@sourcery.ai) if you have any questions or feedback.