TwinedRope / TwinedRope.github.io

1 stars 0 forks source link

Delay Option for Dialogue transtions #13

Open JeffreyGaydos opened 2 years ago

JeffreyGaydos commented 2 years ago
JeffreyGaydos commented 1 year ago

Front end complete.

This feature feels like "convention over configuration". If the user enters an integer (and no other extraneous characters) in the input field, the input will be interpreted as a delay input.

Delay inputs can only be put on child nodes (also child nodes can be converted to delay nodes and back)

✅ Tellraw to HTML parser is not really aware of this fact, so sometimes it gives errors that may confuse users if they do not know that you can't convert NPC nodes to delay nodes

Should you be able to paste-as-link delay nodes? It would be cool because then you could do weird things with small delays.

Should NPC nodes also be delayable? (i.e. allows player nodes to be displayed 1-by-1 with delay)

Enforce that delays are positive (this means not 0 either)

JeffreyGaydos commented 1 year ago

Couple issues:

JeffreyGaydos commented 1 year ago

Some weird rules that we will have to explain (and implement in the MC backend)

This is the simplest way of allowing for these scenarios without degrading the flexibility of the system, but it does allow the user to do some pretty stupid things like displaying some dialogue immediately, then waiting and before the player can answer, the NPC says something else; which, come to think of it, is actually pretty cool if you had some sort of time-sensitive issue that you needed to respond to in a dialogue. - Update on this weird scenario: currently, it parses and displays all children text, regardless of order in the list of child responses, then after a delay displays the child of the delay node, as expected. You may want to leave it this way since it does not make sense to hide the option that is after the delay node until the delay has finished and we've moved on to the next NPC dialogue, because then the option that was now revealed with by locked out by our locking system...

JeffreyGaydos commented 1 year ago

✅ Bug: conversion from delay to player node (and back) does not update image until another refresh happens

JeffreyGaydos commented 1 year ago

✅ Bug: no parsing logic for delay nodes Try to just extract the useful/shared parts of TellrawToHTML to re-implement the ImportTellrawCode function and fill in the rest maintaining backwards compatibility

JeffreyGaydos commented 1 year ago

✅ 🐞 Incorrect detection of delay nodes present in dialogue model. Always creates a tick function.

JeffreyGaydos commented 1 year ago

Last thing to do is some tests I guess:

JeffreyGaydos commented 1 year ago

Implement linked/copied/cut delay nodes

JeffreyGaydos commented 1 year ago

✅ 🐞 Locking mechanics fail when there are childless delay nodes

JeffreyGaydos commented 1 year ago

⚠️ This is currently in a pretty inconsistent state. Recommend re-working simpler cases before tackling linked childless delay nodes