private static bool TryHandleElementRuntimeSpecialCases(List <object> argumentValues, Type[] argumentTypes, ElementRuntime caller, ref object result, MemberReferenceExpression mre) { bool handled = false; if (argumentValues.Count == 5 && mre.MemberName == "InterpolateToState") { // using advanced interpolation StateViewPlugin.Self.ApplyInterpolateToState( argumentValues[0], argumentValues[1], (float)argumentValues[2], (FlatRedBall.Glue.StateInterpolation.InterpolationType)argumentValues[3], (FlatRedBall.Glue.StateInterpolation.Easing)argumentValues[4]); result = null; handled = true; } if (!handled && caller.DirectObjectReference != null) { Type directObjectType = caller.DirectObjectReference.GetType(); MethodInfo methodInfo = directObjectType.GetMethod(mre.MemberName, argumentTypes); if (methodInfo != null) { result = methodInfo.Invoke(caller, argumentValues.ToArray()); handled = true; } } if (!handled && argumentValues.Count == 1 && mre.MemberName == "Set" && argumentTypes[0] == typeof(string)) { result = caller.Set(argumentValues[0] as string); handled = true; } return(handled); }