Skip to content

Commit

Permalink
[stable] random phrase stub
Browse files Browse the repository at this point in the history
  • Loading branch information
sakharovaan committed Nov 10, 2021
1 parent 8a094cd commit 0a1063a
Show file tree
Hide file tree
Showing 4 changed files with 47 additions and 3 deletions.
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
7. Двойной клик по Катре -- диалог с пунктами меню (которые собирается на основе плагинов)
8. + В диалоге текст показывается с анимацией посимвольно
9. + Анимация (мигание)
10. Клик по диалогу закрывает его

Сделать систему плагинов
1. + Какой-нибудь стандартный формат для API
Expand Down
5 changes: 4 additions & 1 deletion ghost.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,9 @@ timings:
change_random_expression:
min: 30000
max: 120000
random_phrase:
min: 300000
max: 600000

ghost:
width: 450
Expand All @@ -105,4 +108,4 @@ dialogue:
font: Consolas
size: 15
speed: 20
wait: 5000
wait: 30000
5 changes: 3 additions & 2 deletions main.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
from expression_plugin import ExpressionPlugin
from dialogue_plugin import DialoguePlugin
from hour_dialogue_plugin import HourDialoguePlugin
from random_dialogue_plugin import RandomDialoguePlugin


class App(tk.Tk):
Expand Down Expand Up @@ -35,11 +36,11 @@ def __init__(self, *args, **kwargs):
self.bp = BlinkPlugin(self, 'ghost.yaml')
self.dp = DialoguePlugin(self, 'ghost.yaml')
self.hdp = HourDialoguePlugin(self, 'ghost.yaml')
self.rdp = RandomDialoguePlugin(self, 'ghost.yaml')

self.menu = tk.Menu(self, tearoff=0)
self.menu.add_command(label="Next expression", command=self.ep.random_tick)
self.menu.add_command(label="Show dialogue", command=self.dp._render_text_init)
self.menu.add_command(label="Hide dialogue", command=self.dp._hide_all)
self.menu.add_command(label="Show dialogue", command=self.rdp._say)
self.menu.add_checkbutton(label="add_checkbutton")
self.menu.add_separator()
self.menu.add_command(label="Exit", command=lambda: self.menu_callback("exit"))
Expand Down
39 changes: 39 additions & 0 deletions random_dialogue_plugin.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
import yaml
import logging
from datetime import datetime
import random


class RandomDialoguePlugin:
def __init__(self, window, _ghostconfig):
self.w = window
self.blinked = False

with open(_ghostconfig) as f:
self._config = yaml.safe_load(f.read())

self._elapsed_seconds = 0
self._random_min = self._config['timings']['random_phrase']['min']
self._random_max = self._config['timings']['random_phrase']['max']
self._next_random = random.randint(self._random_min, self._random_max)

self._phrases = [
"Привет! Ты пока не добавил ни одной толковой фразы, но я верю в тебя!"
]

#window.app.after(3000, self.tick)

def tick(self):
now = datetime.now()
if self._elapsed_seconds > self._next_random:
logging.debug("random dialogue activated!")
self._elapsed_seconds = 0
self._say()
self.w.app.after(3000, self.tick)
else:
self._elapsed_seconds += 3
self.w.app.after(3000, self.tick)
logging.debug("random dialogue " + str(self._elapsed_seconds))

def _say(self):
self.w.dialogue_queue.put(random.choice(self._phrases), block=False, timeout=None)

0 comments on commit 0a1063a

Please sign in to comment.