1 4 — Déclenchement des évènements
Shadow15510 edited this page 2022-07-16 11:06:50 +02:00

Déclenchement des évènements

Vous venez (normalement) de voir comment faire une fonction qui renvoie un dictionnaire d'évènements ou un évènement en fonction de la position du joueur dans le scénario et dans la carte.

Nous allons maintenant voir comment déclencher ses évènements

Trier ses évènements en catégories

Vous pouvez différencier vos évènements en différentes catégories. Il s'agit ici d'une question de lisibilité pour vous : le moteur ne fera pas de différence dans sa gestion des évènements. Concrètement, pour chaque catégorie d'évènement il faudra faire une fonction qui renverra un dictionnaire d'évènements ou un évènement.

Par exemple, on peut basiquement différencier les rencontres avec les PnJ, des rencontres avec des adversaires ou encore des points d'intérêt qui peuvent offrir au joueur une description écrite de son environnement.

Un évènement, un symbole

Pour déclencher un évènement il vous faut un symbole, je vous propose quelques solutions ici :

  • $ pour les adversaires
  • ? pour les points d'intérêt
  • * pour les PnJ Ce symbole sera ensuite stocké dans une chaîne de caractère. Si, à une même catégorie, vous voulez faire correspondre plusieurs symbole, il vous suffit de les mettre dans la même chaîne.

Du symbole à l'évènement

Maintenant il va falloir relier les symboles aux évènements, pour cela, nous allons utiliser un dictionnaire qui va prendre en clef les symboles et en item les fonctions évènementielles :

evenements = {"...": event_cat1, "...": event_cat2, ...}

Évènements de routines

Vous pouvez créer une fonction de "routine" qui sera exécutée à chaque tour de boucle. Cette fonction prend en argument la liste data et les statistiques. La fonction ne doit rien renvoyer (plus exactement, tout ce qui est renvoyé ne sera pas sauvegardé, les variables sont modifiables par effets de bord seulement).

def ma_routine(data, stat):
    ...