Lycanobot/Doc/Overview

De Wiki.sec.

Sommaire

Fonctionnement général

Les salons

Le jeu se déroule sur deux salons de discussions, l'un est réservé aux discussions des villageois (le jour), l'autre sert exclusivement aux loups-garous. Le bot se charge de faire évoluer le jeu en phases, selon les décisions des joueurs (il peut toutefois forcer le passage d'une phase à une autre si les joueurs mettent trop de temps à jouer). De plus, il autorise la parole aux joueurs selon leur état (mort ou vivant, endormi ou réveillé, etc.).

Les phases

Le jeu évolue en phases qui se suivent, par exemple l'appel de la voyante est suivi de l'appel des loups-garous, qui est suivi de l'appel de la sorcière, qui est suivi du réveil des villageois, etc. Les commandes executées par les joueurs font passer le bot d'une phase à une autre. Néammoins, il y a un système de timeout au cas où un joueur bloquerai le jeu en ne faisant rien. Les temps d'attentes sont paramétrables avec la commande settimeout ou le fichier de configuration, et visibles grâce à showtimeouts.

Les commandes

Le bot est commandé avec des commandes (voir la liste complète), c'est-à-dire des messages qui commencent par un caractère spécial (généralement le point d'exclamation) et suivi du nom de la commande et de ses éventuels paramètres. Par example, si le caractère lanceur de commande est le point d'exclamation, pour executer la commande start qui sert à lancer une partie, il suffira de dire !start. De même, pour la commande poison, que la sorcière utilise pour empoisonner quelqu'un (et qui nécéssite donc de spécifier le joueur ciblé, ici seba), il faudra dire !poison seba.

Fonctionnalités à connaître

Le mode tutorial

Par défaut, le mode tutorial est activé. Il fait dire aux joueurs avec ce mode des informations supplémentaires pour les aider. Il s'active ou se désactive avec la commande tutorial. Ces informations sont :

  • Au début d'une partie si le joueur a un rôle spécial, une description de ce rôle avec les commandes qu'il devra utiliser dans la partie
  • Lorsqu'une commande est demandée au joueur, la syntaxe de la commande et un exemple d'utilisation
  • Une réponse à la commande vote, indiquant le choix pris
  • Un message de bienvenue lorsque le joueur se connecte au salon de jour, et un status (jeu en cours ou pas)

Lazy nicks

À chaque fois que vous devez donner un nom de joueur dans une commande, vous pouvez ne pas tenir compte des majuscules et minuscules, et ne le taper qu'en partie. Le bot reconnaîtra ces bouts de noms, tant qu'ils ne désignent pas plusieurs joueurs. Si c'est le cas, il affichera les choix possibles. Quelques exemples :

Soit les joueurs foo, fooBAR, Seba

  • !ignore add foo
→ propose foo et fooBAR
  • !vote B
→ propose fooBAR et Seba
  • !poison s
→ empoisonne Seba

La gestion des cartes

Méthodes de distribution

Les cartes peuvent être distribuées selon deux approches:

  • Avec une séléction manuelle, grâce aux commandes setcards add et setcards del
  • Automatiquement, en suivant un style donné. Un style est une définition de quand distribuer chaque carte spéciale selon le nombre de joueurs. Ils sont définis dans le fichier XML ~/.lycanobot/games.xml, dont voici un petit exemple commenté :
 <?xml version='1.0'?>
 <games>
   <jobs>
     <style name="classic" num_players="4-">     <!-- Ne lancer de partie qu'à partir de 4 joueurs -->
       <!-- Ce style est basé sur les conseils du site officiel des loups garous de thiercelieux -->
       <job name="seer"     num_players="6-" />    <!-- La voyante à partir de 6 joueurs -->
       <job name="cupid"    num_players="9-" />
       <job name="hunter"   num_players="11-" />
       <job name="sorcerer" num_players="11-" />
       <job name="captain"  num_players="-8" />    <!-- Le capitaine jusqu'à 8 joueurs -->
     </style>
 
     <style name="foobar">
       <job name="captain"  num_players="3" />         <!-- Le capitaine à 3 joueurs uniquement -->
       <job name="sorcerer" num_players="3 5-" />      <!-- La sorcière à 3 ou à plus de 5 -->
       <!-- Pas de voyante dans ce style
            <job name="seer" num_players="9-" />
        -->
       <job name="cupid"    num_players="9-" />
       <job name="hunter"   num_players="11-" />
       <job name="idiot"    num_players="5-7 10-" />   <!-- L'idiot entre 5 et 7 joueurs, ou à plus de 10 -->
     </style>
   </jobs>
 </games>

Vous pouvez ainsi créer les styles que vous voulez les ajoutant dans ce fichier. Puis, pour vous servir d'un style utilisez la commande setcards style <nom du style>. Pour revenir à la séléction manuelle des cartes utilisez setcards nostyle.

Nombre minimum de joueurs

Quand on n'utilise pas de style (distribution manuelle), le nombre minimum de joueurs est déterminé par la proportion de loups nécessaire pour avoir 1 loup. Exemple : avec une proportion de loups de 1/3, il faudra au minimum 3 joueurs pour avoir 1 loup.

Avec les styles, on peut ajouter (ou pas) une restriction directe sur le nombre de joueurs : notez le paramètre num_players dans la première balise <style> qui sert à appliquer cette restriction.

Ce qu'affiche showcards

Selon le mode que vous avez choisi et si une partie est en cours ou pas, la commande showcards vous affichera ce que le bot estime vous être le plus utile. Si ça n'est pas le cas, vous pouvez ajouter à showcards les paramètre style (pour afficher le style utilisé) et set (pour afficher la séléction manuelle des cartes).