dialogic-godot / dialogic

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

2.x 'Already Read Text' feature #1100

Closed ii4y-studios closed 8 months ago

ii4y-studios commented 2 years ago

I'm gonna put this one on 2.x for now, but I don't think it would be that difficult to implement for just 2.0.

One feature that's common in Visual Novels, is keeping track of text you've already read. Usually this is at minimum used for a setting to skip already read text, but sometimes this is also used to like change the colors of the text too if you've already read it as well. Other types of games too, where you have characters giving large lines of dialogue, you may want this as well to give the player an optional skip for text they have already read.

This would be it seems pretty simple to implement. It would just need adding additional property of already_read to the Text node, then if the feature's enabled in project settings, it would save that to the memory as part of the save data, then when the timeline is loaded the DialogicTimelineFormatLoader just checks the save for the already read lines from that timeline and populates the property

Proggle commented 2 years ago

It would be useful to expose the already_read property for use in the timeline itself.

RPGs commonly have two-text NPCs, where the first time you talk to them you get their full story, and the second time you talk (and every time after then) you get a shorter piece of text instead.

Rather than needing to store that text in two timelines, or define a Value for each repeated timeline, it'd be a lot easier if you could just branch on already_read.