Great work.
I really wished devs would make proper tutorial on the event functions and variables, tutorial they have uploaded is very superficial and surface level and not really explaining the reasoning.
Tried to mess around with your map but really couldn't figure out the logic of who sends to who to be able to replicate functionality of your creation.
The logical flow isn't too complicated. (Then again, I program as a hobby, so I may be biased.)
When you press the "Talk" button on the character, it sends a 'NextStage' event. This runs an Event Function object. It sends the following events in order:
'GetStage' (Gets the value of the "(Var) Stage" prop, updating any props that rely on its value.)
'Add1ToStage' (Runs a math operation prop to add 1 to the "(Var) Stage" prop's value.)
'GetStage' (Updates all props that rely on "(Var) Stage" again, so that they have the new value.)
'TalkVisible' - 'false' (Sets the "Talk" button to be invisible. That way the player can't advance to the next stage until we want them to.)
'RunStage' (Runs multiple Condition props to check what the value of "(Var) Stage" is. The conditions run the events needed for each respective stage.)
From there the condition props manage the visibility of the speech bubble/talk button, which version of Maya is visible (standing/walking in place/walking forward), whether any transformers should move Maya, and anything else related to the 'quest'.'
EDIT: Since the new $10 update added a 'Vector Creator' prop, you would only need to use 1 transformer now, instead of the 2+ in the scene I posted. Only caveat being that the 'Vector Creator' requires a fair bit of extra logic.