Fix des dialogues apparaissant instantanément la deuxième fois qu'on les lance

This commit is contained in:
Yannis 2024-01-06 18:13:47 +01:00
parent b74b731a5c
commit 1493cd578b

View file

@ -18,16 +18,19 @@ class DialogsManager:
"""Fonction exécutée lorsque l'utilisateur demande de passer au prochain dialogue. Si un dialogue est en """Fonction exécutée lorsque l'utilisateur demande de passer au prochain dialogue. Si un dialogue est en
train d'être écrit, il écrit tout d'un coup.""" train d'être écrit, il écrit tout d'un coup."""
if self.writing_dialog: if self.reading_dialog:
self.current_dialogue_letter_id = len(self.current_dialogs[self.current_dialog_id]) if self.writing_dialog:
self.writing_dialog = False self.current_dialogue_letter_id = len(self.current_dialogs[self.current_dialog_id])
else: else:
self.next_dialog() self.next_dialog()
print("next")
def next_dialog(self): def next_dialog(self):
"""Passe au dialogue suivant. Renvoie True si le dialogue est fini.""" """Passe au dialogue suivant. Renvoie True si le dialogue est fini."""
self.current_dialog_id += 1 self.current_dialog_id += 1
if self.current_dialog_id == len(self.current_dialogs): self.writing_dialog = True
if self.current_dialog_id >= len(self.current_dialogs):
self.current_dialogs = [] self.current_dialogs = []
self.current_dialog_id = -1 self.current_dialog_id = -1
self.writing_dialog = False self.writing_dialog = False
@ -35,9 +38,12 @@ class DialogsManager:
def start_dialog(self, name: str): def start_dialog(self, name: str):
"""Lance le dialogue au nom donné.""" """Lance le dialogue au nom donné."""
# Si un dialogue n'est pas déja lancé, on lance le dialogue au nom donné
if not self.reading_dialog: if not self.reading_dialog:
self.current_dialogs = self.dialogs[name] self.current_dialogs = self.dialogs[name]
self.current_dialog_id = 0 self.current_dialog_id = 0
self.current_dialogue_letter_id = 0
self.reading_dialog = True self.reading_dialog = True
@ -58,8 +64,6 @@ class DialogsManager:
if self.reading_dialog: if self.reading_dialog:
self.letter_timer -= delta self.letter_timer -= delta
self.writing_dialog = True
if self.letter_timer <= 0: if self.letter_timer <= 0:
self.letter_timer = self.LETTER_WRITING_DELAY self.letter_timer = self.LETTER_WRITING_DELAY
self.current_dialogue_letter_id += 1 self.current_dialogue_letter_id += 1
@ -67,3 +71,5 @@ class DialogsManager:
self.current_dialogue_letter_id -= 1 self.current_dialogue_letter_id -= 1
self.writing_dialog = False self.writing_dialog = False
#print(self.writing_dialog, self.reading_dialog)