Added the possibility for N players to collectively choose to reset the game or start a new one
This commit is contained in:
@@ -18,6 +18,7 @@ WORDLE_MINLENGTH = 8
|
|||||||
WORDLE_MAXLENGTH = 10
|
WORDLE_MAXLENGTH = 10
|
||||||
WORDLE_FORCE_ALTERNATION = True
|
WORDLE_FORCE_ALTERNATION = True
|
||||||
WORDLE_ALTERNATION_TIMEOUT = 300
|
WORDLE_ALTERNATION_TIMEOUT = 300
|
||||||
|
WORDLE_RESETTERS_NEEDED = 3
|
||||||
|
|
||||||
HEARTBEAT = 60
|
HEARTBEAT = 60
|
||||||
EPHEMERIS = 0
|
EPHEMERIS = 0
|
||||||
|
|||||||
@@ -47,6 +47,7 @@ class Game:
|
|||||||
self.scores = None
|
self.scores = None
|
||||||
self.tried = None
|
self.tried = None
|
||||||
self.last_datetime = None
|
self.last_datetime = None
|
||||||
|
self.resetters = set()
|
||||||
|
|
||||||
async def reset(self):
|
async def reset(self):
|
||||||
output = ""
|
output = ""
|
||||||
@@ -59,6 +60,7 @@ class Game:
|
|||||||
self.scores = defaultdict(int)
|
self.scores = defaultdict(int)
|
||||||
self.tried = set()
|
self.tried = set()
|
||||||
self.last_datetime = None
|
self.last_datetime = None
|
||||||
|
self.resetters = set()
|
||||||
await self.channel.edit(slowmode_delay=WORDLE_SLOWMODE)
|
await self.channel.edit(slowmode_delay=WORDLE_SLOWMODE)
|
||||||
output += f"Il y a un nouveau mot à deviner ! Il fait {len(self.target)} lettres."
|
output += f"Il y a un nouveau mot à deviner ! Il fait {len(self.target)} lettres."
|
||||||
await self.channel.send(output)
|
await self.channel.send(output)
|
||||||
@@ -66,6 +68,16 @@ class Game:
|
|||||||
async def parse(self, message):
|
async def parse(self, message):
|
||||||
guess = unidecode(message.content.strip()).upper()
|
guess = unidecode(message.content.strip()).upper()
|
||||||
|
|
||||||
|
# if it's the special keyword 'reset', consider resetting
|
||||||
|
if guess == "RESET" and WORDLE_RESETTERS_NEEDED != 0:
|
||||||
|
if message.author in self.resetters:
|
||||||
|
return
|
||||||
|
self.resetters.add(message.author)
|
||||||
|
await self.channel.send(f"Réinitialisation : {len(self.resetters)}/{WORDLE_RESETTERS_NEEDED}")
|
||||||
|
if len(self.resetters) >= WORDLE_RESETTERS_NEEDED:
|
||||||
|
await self.reset()
|
||||||
|
return
|
||||||
|
|
||||||
# if somebody has already won, return silently
|
# if somebody has already won, return silently
|
||||||
if self.winner:
|
if self.winner:
|
||||||
return
|
return
|
||||||
|
|||||||
Reference in New Issue
Block a user