dialogic-godot / dialogic

💬 Create Dialogs, Visual Novels, RPGs, and manage Characters with Godot to create your Game!
https://dialogic.pro
MIT License
3.35k stars 206 forks source link

Unexpected behavior with some auto advance setting #2190

Closed zaknafean closed 1 month ago

zaknafean commented 1 month ago

The problem

Describe the bug The auto advance settings are a bit misleading and can cause confusion as certain settings don't work as you'd expect. The issue we found involved Base Delay: 0 Additional Delay: None Enabled: True

The expected result to me and others would be that the text would auto advance after the text finishes appearing with no additional delay. But what happens is no auto advance occurs at all. However if you add even .01 to the base delay or add some sort of additional delay, it works fine.

In general you probably DO want some delay in an auto advance, but in that case we shouldn't allow the combination of base delay 0, additional delay none to exist.

To Reproduce Steps to reproduce the behavior:

  1. Go to settings
  2. Use these settings image
  3. Attempt to play a timeline
  4. The timeline will not auto advance

Expected behavior That the timeline will autoadvance, though to fast to read for most people.

System (please complete the following information):

Solutions

Workaround

Adding any amount to base delay, or an additional delay fixes it.

Possible fixes Easiest fix is to not allow a base delay of 0.

Jowan-Spooner commented 1 month ago

Yeah I could also fix autoadvance of 0 not working, although I agree that it likely has very few use-cases.

coppolaemilio commented 1 month ago

If we don't want to allow 0 it should have a red outline and display some warning, and if we want it but it is not technically possible we can always make it be 0.01 internally if the value is set to 0 😅

Jowan-Spooner commented 1 month ago

Actually I think I would just allow it and fix the bug. Having the delay at 0 is usually stupid, but I'm sure there are situations where it might make sense, especially when used with the autoadvance effect, for example if it should look as if someone was interrupted.