Комплексные вещи я делать не умел, поэтому вместо диалогов я сделал простые монологи, которые читались из xml и вызывались по тригеру. В тригере прописывалось какой монолог должен открыться и какой персонаж с какой стороны должен стоять.
Через какое-то время мне пришла в голову идея системы односложных квестов.
Квесты состояли из нескольких монологов, которые соответствовали состоянию квеста. состояний было четыре:
0 - Мы еще не брали квест.xml
1 - Мы взял квест, но не выполнили условия.xml
2 - Мы взяли квест и выполнили условия.xml
3 - Мы сдали квест.xml
В этом видео показываются все четыре варианта монологов: