private static void CheckFsmGameObjectParameter(SkillGameObject fsmGameObject)
 {
     if (fsmGameObject == null)
     {
         fsmGameObject = new SkillGameObject(string.Empty);
     }
     if (fsmGameObject.get_UseVariable())
     {
         if (FsmEditorSettings.CheckForRequiredField && string.IsNullOrEmpty(fsmGameObject.get_Name()) && FsmErrorChecker.IsRequiredField())
         {
             FsmErrorChecker.AddRequiredFieldError();
             return;
         }
         FsmErrorChecker.CheckBaseGameObject(fsmGameObject.get_Value());
         return;
     }
     else
     {
         if (FsmEditorSettings.CheckForRequiredField && fsmGameObject.get_Value() == null && FsmErrorChecker.IsRequiredField())
         {
             FsmErrorChecker.AddRequiredFieldError();
             return;
         }
         FsmErrorChecker.CheckBaseGameObject(fsmGameObject.get_Value());
         return;
     }
 }
 private static void CheckStringParameter(string text)
 {
     if (FsmEditorSettings.CheckForRequiredField && string.IsNullOrEmpty(text) && FsmErrorChecker.IsRequiredField())
     {
         FsmErrorChecker.AddRequiredFieldError();
     }
 }
 private static void CheckGameObjectParameter(GameObject go)
 {
     if (go == null)
     {
         if (FsmEditorSettings.CheckForRequiredField && FsmErrorChecker.IsRequiredField())
         {
             FsmErrorChecker.AddRequiredFieldError();
         }
         return;
     }
     FsmErrorChecker.CheckBaseGameObject(go);
 }
 private static void CheckFsmEventParameter(SkillEvent fsmEvent)
 {
     if (FsmEditorSettings.CheckForRequiredField && fsmEvent == null && FsmErrorChecker.IsRequiredField())
     {
         FsmErrorChecker.AddRequiredFieldError();
         return;
     }
     if (FsmEditorSettings.CheckForEventNotUsed)
     {
         FsmErrorChecker.CheckForEventErrors(fsmEvent);
     }
 }
 private static void CheckParameterType(Type type, object fieldValue)
 {
     if (type == null)
     {
         return;
     }
     if (type == typeof(SkillGameObject))
     {
         FsmErrorChecker.CheckFsmGameObjectParameter((SkillGameObject)fieldValue);
     }
     else
     {
         if (type == typeof(SkillOwnerDefault))
         {
             FsmErrorChecker.CheckOwnerDefaultParameter((SkillOwnerDefault)fieldValue);
         }
         else
         {
             if (type == typeof(GameObject))
             {
                 FsmErrorChecker.CheckGameObjectParameter((GameObject)fieldValue);
             }
             else
             {
                 if (type == typeof(SkillEvent))
                 {
                     FsmErrorChecker.CheckFsmEventParameter((SkillEvent)fieldValue);
                 }
                 else
                 {
                     if (type == typeof(SkillString))
                     {
                         FsmErrorChecker.CheckFsmStringParameter((SkillString)fieldValue);
                     }
                     else
                     {
                         if (type == typeof(string))
                         {
                             FsmErrorChecker.CheckStringParameter((string)fieldValue);
                         }
                         else
                         {
                             if (type.get_IsArray())
                             {
                                 Array array = (Array)fieldValue;
                                 if (array != null)
                                 {
                                     Type elementType = type.GetElementType();
                                     for (int i = 0; i < array.get_Length(); i++)
                                     {
                                         FsmErrorChecker.CheckParameterType(elementType, array.GetValue(i));
                                     }
                                 }
                             }
                             else
                             {
                                 Object @object = fieldValue as Object;
                                 if (@object != null)
                                 {
                                     FsmErrorChecker.CheckObjectParameter(@object);
                                 }
                             }
                         }
                     }
                 }
             }
         }
     }
     if (type.IsSubclassOf(typeof(NamedVariable)))
     {
         if (FsmEditorSettings.CheckForRequiredField && FsmErrorChecker.IsRequiredField())
         {
             if (fieldValue == null)
             {
                 FsmErrorChecker.AddRequiredFieldError();
                 return;
             }
             NamedVariable namedVariable = (NamedVariable)fieldValue;
             if ((namedVariable.get_UseVariable() || FsmErrorChecker.IsVariableField()) && string.IsNullOrEmpty(namedVariable.get_Name()))
             {
                 FsmErrorChecker.AddRequiredFieldError();
                 return;
             }
         }
     }
     else
     {
         if (type == typeof(SkillVar) && FsmEditorSettings.CheckForRequiredField && FsmErrorChecker.IsRequiredField())
         {
             SkillVar fsmVar = (SkillVar)fieldValue;
             if (fsmVar.useVariable && (fsmVar.get_NamedVar() == null || fsmVar.get_NamedVar().get_IsNone()))
             {
                 FsmErrorChecker.AddRequiredFieldError();
             }
         }
     }
 }