Aller au contenu

Pendant la partie

tilttek/table-safety

Les signaux

Chacun, à la table, lève un signal à tout moment, sans expliquer pourquoi :

SignalOutilSens
SignalKind::XCardcarte Xretirer ce qui vient d'arriver
SignalKind::PauseScript Changearrêter la scène un moment
SignalKind::RewindScript Changerevenir en arrière et rejouer le moment autrement
SignalKind::FastForwardScript Changepasser la scène
SignalKind::OpenDoorporte ouvertequitter la partie
SignalKind::CheckInpoint d'étapele meneur de jeu demande comment va chacun
SignalKind::AllGood, Unsure, NotOkaypoint d'étapeles réponses : on continue, on ralentit, on arrête
$signal = $safety->raise($table, $participant, SignalKind::XCard, $isGameMaster, $now);

Un signal d'un outil que la table n'utilise pas lève ToolNotEnabled ; un point d'étape demandé par quelqu'un d'autre que le meneur de jeu lève NotGameMaster.

Anonymes par défaut

Un signal dit qui l'a levé seulement à une table qui a choisi des signaux nominatifs, et jamais une réponse à un point d'étape ni le point d'étape lui-même. Un signal anonyme n'a pas d'auteur : le stockage n'en garde aucun, l'observateur n'en diffuse aucun. Son identifiant est tiré au hasard, de sorte qu'il ne dit rien de qui l'a levé ni de quand.

Qui voit un signal

SignalVu par
la porte ouverte, les réponses à un point d'étapele meneur de jeu seul
le point d'étapetoute la table
la carte X et Script Changetoute la table, ou le meneur de jeu seul quand la table a choisi le signal discret

TableSafety::signals() donne au meneur de jeu tous les signaux de la table, et aux autres ceux que voit toute la table, les 100 derniers ou ceux qui suivent un moment donné, dans l'ordre où ils ont été levés.

Vu par le meneur de jeu

Le meneur de jeu marque un signal comme vu avec TableSafety::acknowledge() ; la méthode répond faux pour un signal que la table n'a pas, ou déjà vu.

L'observateur

Un SignalObserver donné à TableSafety est informé de chaque signal une fois gardé, et de chaque signal marqué comme vu, pour le diffuser aux écrans de la table. Signal::toArray() est ce qu'il diffuse : les identifiants, le genre, l'auditoire et les moments — la référence de l'auteur seulement pour un signal nominatif.

Points d'étape

TableSafety::checkIn() compte les réponses données depuis le dernier point d'étape, sans dire qui a donné quoi :

$tally = $safety->checkIn($table);

$tally->askedAt;           // when the game master asked, or null
$tally->allGood;           // 3
$tally->needsAttention();  // true when someone is unsure or not okay

Une réponse compte une fois par signal ; un point d'étape demandé de nouveau recommence le décompte.