//////////////////////////////////////////////////////////////////////// /// <summary> /// Prints our the various commands with useful debugging info /// </summary> private void HandleEvent(ref IUpdateEvent ue) { interrupted = false; evtText = ue.Text(); evtType = ue.Type(); evtActor = ue.Actor(); //evtText = "["+evtActor + "] " + evtText; ue.RemoveKeys(Meta.TEXT, Meta.TYPE, Meta.ACTOR); switch (evtType) { case "Say": evtText = evtText + " " + ue.Data().Stringify(); break; case "Ask": DoPrompt(ue); SendRandomResponse(ue); break; case "Wait": var now = Util.Millis(); Timers.SetTimeout(3000, () => { if (!interrupted) { Console.WriteLine("\n<resume-event#>" + " after " + Util.Millis(now) + "ms\n"); // send ResumeEvent after 5 sec // (), (#Game), or ({type=a,stage=b,last=true}) gameEvent = new ResumeEvent(); } }); evtText = ("(" + (evtType + " " + ue.Data().Stringify()).Trim() + ")"); break; default: evtText = ("(" + evtType + ": " + (evtText + " " + ue.Data().Stringify()).Trim() + ")"); break; } Console.WriteLine(evtText); ue = null; // dispose event }
private void HandleEvent(ref IUpdateEvent ue) { evtText = ue.Text(); evtType = ue.Type(); evtActor = ue.Actor(); if (evtActor != null) { evtText = evtActor + ": " + evtText; } ue.RemoveKeys(Meta.TEXT, Meta.TYPE, Meta.ACTOR); switch (evtType) { case "Say": evtText = evtText + " " + ue.Data().Stringify(); break; case "Ask": DoPrompt(ue); // respond with 'new ChoiceEvent(choiceIdx);' break; case "Wait": evtText = ("(" + (evtType + " " + ue.Data().Stringify()).Trim() + ")"); break; default: evtText = ("(" + evtType + ": " + (evtText + " " + ue.Data().Stringify()).Trim() + ")"); break; } Display(evtText); if (evtType == "Ask") { // default is to reprompt on timeout int timeout = Util.ToMillis(ue.GetDouble(Meta.TIMEOUT)); while (!DoResponse(timeout)) { Display(evtText); } } ue = null; // dispose event }
private void DoPrompt(IUpdateEvent ue) { evtOpts = ue.Get(Meta.OPTS).Split('\n'); ue.RemoveKeys(Meta.TEXT, Meta.TYPE, Meta.OPTS); // add any meta tags evtText = evtText + " " + ue.Data().Stringify(); // add the options for (int i = 0; i < evtOpts.Length; i++) { evtText += "\n (" + i + ") " + evtOpts[i]; } }
private void HandleEvent(ref IUpdateEvent ue) { evtText = ue.Text(); evtType = ue.Type(); evtActor = ue.Actor(); //evtText = "["+evtActor + "] " + evtText; ue.RemoveKeys(Meta.TEXT, Meta.TYPE, Meta.ACTOR); switch (evtType) { case "Say": evtText = evtText + " " + ue.Data().Stringify(); break; case "Ask": DoPrompt(ue); // respond with 'new ChoiceEvent(choiceIdx);' break; case "Wait": evtText = ("(" + (evtType + " " + ue.Data().Stringify()).Trim() + ")"); break; default: evtText = ("(" + evtType + ": " + (evtText + " " + ue.Data().Stringify()).Trim() + ")"); break; } Console.WriteLine(evtText); ue = null; // dispose event }