Contribuer au projet
Cette page décrit comment contribuer au développement de SnackAnarchy.
Préparer ton environnement​
- Fork ou clone le dépôt principal de SnackAnarchy.
- Crée une branche pour ta fonctionnalité ou ta correction de bug.
- Installe les dépendances avec :
pip install -r requirements.txt
- Assure-toi que le jeu se lance (
python main.py) avant de modifier le code.
Organisation du travail​
- Petites PRs : privilégie des changements ciblés et faciles à relire.
- Un sujet par branche : une fonctionnalité ou un bug par branche.
- Documentation : mets à jour cette doc Docusaurus quand tu ajoutes une fonctionnalité importante ou un nouveau système.
Style de code​
- Respecte le style Python existant (indentation 4 espaces, noms de variables explicites, etc.).
- Essaie de regrouper la logique dans les modules déjà prévus :
- nouveau plat →
game/dishes.py+ recettes dansgame/inventory.py; - nouveau type de sabotage →
game/sabotage.py; - nouveau mini-jeu →
game/minigames.py; - nouvelle vue ou menu →
rendering/; - nouvelle carte → fichier
.tmxdansassets/+ logique dansgame/map.py.
- nouveau plat →
Tests manuels​
Avant d’ouvrir une PR :
- vérifie que le jeu se lance sans erreur ;
- teste le comportement que tu as modifié (scénarios de base + cas limites évidents) ;
- évite de laisser du code de debug (
printinutiles, TODOs temporaires, etc.).
Ajouter du contenu​
Ajouter un nouveau plat​
- Définis le plat dans
game/dishes.py(nom, description, type si besoin). - Ajoute une entrée correspondante dans
RECIPES(game/inventory.py) :- liste des ingrédients ;
- quantités nécessaires.
- Vérifie que le stock contient bien les ingrédients correspondants dans
FoodStock. - Teste en jeu qu’un client peut commander et être servi avec ce plat.
Ajouter un nouveau sabotage​
- Dans
game/sabotage.py, crée un nouvel objetSabotageavec :name(nom affiché) ;cost(coût en argent) ;type(matériel, réputation, stock, etc.) ;effect_func(fonction qui applique l’effet) ;cooldownet éventuellementrequires_proximity.
- Intègre ce sabotage à l’interface (menu de sabotages) si nécessaire.
- Teste les effets en jeu (sur le stock, les équipements, la réputation…).
Ajouter un nouveau mini‑jeu​
- Implémente la logique dans
game/minigames.py:- initialisation du mini‑jeu ;
- gestion de l’entrée joueur et du timing ;
- renvoi d’un résultat (succès/échec).
- Branche ce mini‑jeu depuis
GameStateou un autre module (ex. pour remplacer/compléter un mini‑jeu de service). - Vérifie que l’intégration ne casse pas les autres mini‑jeux.
Ajouter un nouvel écran de menu ou une vue​
- Crée un nouveau renderer dans
rendering/(par exemplesettings_menu.py). - Ajoute la logique de navigation depuis
rendering/menu.pyoumain.py. - Assure-toi que le cycle de vie (retour au jeu, retour au menu principal) reste cohérent.
Ouvrir une Pull Request​
- Donne un titre clair à ta PR (ex. “Ajout d’un sabotage Empoisonner les toilettes”).
- Décris brièvement :
- le problème ou le besoin initial ;
- la solution implémentée ;
- comment tester rapidement la modification.
- Laisse le temps aux mainteneurs de relire et réponds aux retours si besoin.