From 9d67f8a30cc054890049ad402d5733ed046eebb3 Mon Sep 17 00:00:00 2001 From: Florian Fischer Date: Sat, 9 Jan 2021 22:04:09 +0100 Subject: add java script alert when a phase change occured during draw --- cyberschuessel/schuessel.py | 10 +++++++--- cyberschuessel/templates/index.html | 6 ++++++ 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/cyberschuessel/schuessel.py b/cyberschuessel/schuessel.py index 3b05b23..fc3812d 100644 --- a/cyberschuessel/schuessel.py +++ b/cyberschuessel/schuessel.py @@ -34,6 +34,8 @@ class Schuessel: self.words.append(word) def draw(self, last_word=None): + phase_change = False + # first draw -> start game if self.phase == 0: self.phase = 1 @@ -52,9 +54,10 @@ class Schuessel: self.drawn = self.words self.words = tmp self.phase = self.phase + 1 + phase_change = True word = random.choice(self.words) - return word + return word, phase_change async def broadcast(self, msg): log.info(f'broadcasting {msg} to {len(self.clients.values())}') @@ -100,7 +103,7 @@ class Schuessel: if data['action'] == 'draw': last_word = data.get('last_word', '') - new_word = self.draw(last_word) + new_word, phase_change = self.draw(last_word) drawn_msg = {'action': 'drawn'} drawn_msg.update(self.schuessel_state()) @@ -113,7 +116,8 @@ class Schuessel: try: await ws.send_json({ 'action': 'draw', - 'drawn_word': new_word + 'drawn_word': new_word, + 'phase_change': phase_change, }) except ConnectionResetError: del(self.clients[session_id]) diff --git a/cyberschuessel/templates/index.html b/cyberschuessel/templates/index.html index 1467971..1eb36b2 100644 --- a/cyberschuessel/templates/index.html +++ b/cyberschuessel/templates/index.html @@ -71,6 +71,7 @@ strings.reset_button = {'en': 'Reset', 'de': 'Neu'}; strings.add_button = {'en': 'Add word', 'de': 'Wort hinzufügen:'}; strings.add_word = {'en': 'Anything', 'de': 'Irgendwas'}; + strings.phase_changed = {'en': 'Next Phase', 'de': 'Nächste Runde'}; let userLang = navigator.language || navigator.userLanguage; userLang = userLang.substring(0, 2); @@ -181,6 +182,11 @@ case 'draw': set_drawn_word(data.drawn_word); + // schuessel is empty when we draw + // alert the user that a phase change occurred + if (data.phase_change) { + alert(strings.phase_changed[userLang]); + } change_words_in_schuessel(-1); break; -- cgit v1.2.3