Aller au contenu principal

Contribuer au projet

Cette page décrit comment contribuer au développement de SnackAnarchy.

Préparer ton environnement​

  1. Fork ou clone le dépôt principal de SnackAnarchy.
  2. Crée une branche pour ta fonctionnalité ou ta correction de bug.
  3. Installe les dépendances avec :
pip install -r requirements.txt
  1. 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 dans game/inventory.py ;
    • nouveau type de sabotage → game/sabotage.py ;
    • nouveau mini-jeu → game/minigames.py ;
    • nouvelle vue ou menu → rendering/ ;
    • nouvelle carte → fichier .tmx dans assets/ + logique dans game/map.py.

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 (print inutiles, TODOs temporaires, etc.).

Ajouter du contenu​

Ajouter un nouveau plat​

  1. Définis le plat dans game/dishes.py (nom, description, type si besoin).
  2. Ajoute une entrée correspondante dans RECIPES (game/inventory.py) :
    • liste des ingrĂ©dients ;
    • quantitĂ©s nĂ©cessaires.
  3. Vérifie que le stock contient bien les ingrédients correspondants dans FoodStock.
  4. Teste en jeu qu’un client peut commander et être servi avec ce plat.

Ajouter un nouveau sabotage​

  1. Dans game/sabotage.py, crée un nouvel objet Sabotage avec :
    • name (nom affichĂ©) ;
    • cost (coĂ»t en argent) ;
    • type (matĂ©riel, rĂ©putation, stock, etc.) ;
    • effect_func (fonction qui applique l’effet) ;
    • cooldown et Ă©ventuellement requires_proximity.
  2. Intègre ce sabotage à l’interface (menu de sabotages) si nécessaire.
  3. Teste les effets en jeu (sur le stock, les équipements, la réputation…).

Ajouter un nouveau mini‑jeu​

  1. 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).
  2. Branche ce mini‑jeu depuis GameState ou un autre module (ex. pour remplacer/compléter un mini‑jeu de service).
  3. Vérifie que l’intégration ne casse pas les autres mini‑jeux.

Ajouter un nouvel écran de menu ou une vue​

  1. Crée un nouveau renderer dans rendering/ (par exemple settings_menu.py).
  2. Ajoute la logique de navigation depuis rendering/menu.py ou main.py.
  3. 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.