Code source de lgrez.bdd.enums
"""lg-rez / bdd / Enums
Déclaration des énumérations utilisées
"""
import enum
# Définition des enums
[docs]class Statut(enum.Enum):
""":class:`~enum.Enum` représentant le statut RP d'un Joueur.
Attributes:
vivant: Le joueur est en vie !
mort: Le joueur est mort. RIP.
MV: Le joueur est Mort-Vivant. Pas de chance.
immortel: Le joueur est Immortel. Si jamais...
"""
vivant = enum.auto()
mort = enum.auto()
MV = enum.auto()
immortel = enum.auto()
[docs]class ActionTrigger(enum.Enum):
""":class:`~enum.Enum` : Déclencheur de l'ouverture/fermeture d'une Action.
Attributes:
temporel: Ouverture/fermeture à heure fixe chaque jour
delta: Fermeture un délai donné après l'ouverture
perma: Action utilisable en permanence
start: Ouverture au lancement du jeu
auto: Action automatique, fermeture dès l'ouverture
mort: Ouverture à la mort
mot_mjs: Ouverture/fermeture au !plot cond
open_cond: À l'ouverture du vote condamné
close_cond: À la fermeture du vote condamné
open_maire: À l'ouverture du vote du maire
close_maire: À la fermeture du vote du maire
open_loups: À l'ouverture du vote des loups
close_loups: À la fermeture du vote des loups
"""
temporel = enum.auto()
delta = enum.auto()
perma = enum.auto()
start = enum.auto()
auto = enum.auto()
mort = enum.auto()
mot_mjs = enum.auto()
open_cond = enum.auto()
close_cond = enum.auto()
open_maire = enum.auto()
close_maire = enum.auto()
open_loups = enum.auto()
close_loups = enum.auto()
@classmethod
def open(cls, vote):
if not isinstance(vote, Vote):
vote = Vote[vote]
return cls[f"open_{vote.name}"]
@classmethod
def close(cls, vote):
if not isinstance(vote, Vote):
vote = Vote[vote]
return cls[f"close_{vote.name}"]
[docs]class CandidHaroType(enum.Enum):
""":class:`~enum.Enum` pour distinguer un haro d'une candidature.
Attributes:
candidature: Candidature à la mairie
haro: Haro pour le bûcher
"""
candidature = enum.auto()
haro = enum.auto()
[docs]class Vote(enum.Enum):
""":class:`~enum.Enum` représentant les différents votes possibles.
Attributes:
cond: Vote pour le condamné du jour
maire: Vote pour le nouveau maire
loups: Vote pour la victime des loups
"""
cond = enum.auto()
maire = enum.auto()
loups = enum.auto()
[docs]class UtilEtat(enum.Enum):
""":class:`~enum.Enum` représentant l'état d'une utilisation d'action.
Attributes:
ouverte: Action utilisable, pas de décision prise
remplie: Décision prise, encore possibilité de changer
validee: Décision prise et bloquée (créneau pour agir fini)
ignoree: Créneau pour agir fini sans qu'une décision soit prise
contree: Utilisation validée, mais contrée par un évènement externe
"""
ouverte = enum.auto()
remplie = enum.auto()
validee = enum.auto()
ignoree = enum.auto()
contree = enum.auto()
[docs]class CibleType(enum.Enum):
""":class:`~enum.Enum` représentant le type de cible d'une action.
Attributes:
joueur: La cible doit être un joueur, vivant ou mort
vivant: La cible doit être un joueur vivant
mort: La cible doit être un joueur mort
role: La cible doit être un rôle existant
camp: La cible doit être un camp (public) existant
booleen: Oui/non : sert à ue action sans paramètres, à une option...
texte: Permet d'entrer un texte libre
"""
joueur = enum.auto()
vivant = enum.auto()
mort = enum.auto()
role = enum.auto()
camp = enum.auto()
booleen = enum.auto()
texte = enum.auto()