private void Test1_2() { //On Pressed Z, test1 will (move right + move down) for 0.5 secs after moving up for 0.5 secs. EventPromise p = new KeyDownEvent(Params.Empty.Add("KeyCode", "Z")); p.StartPollUpdateGlobal(); p.Handler.SetNewAfter((ps) => { Params newParams = Params.Empty .Add("Target", "test1") .Add("Velocity", new Vector3(0.0f, 0.01f, 0.0f).GetSerialized()) .Add("Duration", "0.5"); HandlerFuture hf = new MoveConstant(newParams); Params rightParams = Params.Empty .Add("Target", "test1") .Add("Velocity", new Vector3(0.01f, 0.0f, 0.0f).GetSerialized()) .Add("Duration", "0.5"); Params downParams = Params.Empty .Add("Target", "test1") .Add("Velocity", new Vector3(0.0f, -0.01f, 0.0f).GetSerialized()) .Add("Duration", "0.5"); Params leftParams = Params.Empty .Add("Target", "test1") .Add("Velocity", new Vector3(-0.01f, 0.0f, 0.0f).GetSerialized()) .Add("Duration", "0.5"); EventPromise px = new KeyDownEvent(Params.Empty.Add("KeyCode", "X")); EventPromise pc = new KeyDownEvent(Params.Empty.Add("KeyCode", "C")); var right = new MoveConstant(rightParams); var down = new MoveConstant(downParams); right.AddExternalCondition(pc, (_) => down, true); right.AddExternalCondition(px, (_) => down, true); right.AddAfter((_) => right); return(right); } ); p.Handler.Begin(); }