public bool IsStepReachable() { if (reachConditionName == "") { return(true); } else if (ClassReflector.HasProperty(quest, reachConditionName)) { return(ClassReflector.GetBoolProperty(quest, reachConditionName)); } else if (ClassReflector.HasMethod(quest, reachConditionName)) { return(ClassReflector.DynamicInvokeBool(quest, reachConditionName, this)); } else { throw new System.Exception("The given reachConditionName (" + reachConditionName + ") isn't an existing property or method in the associated quest."); } }