private static NamedVariable VariableToggle(NamedVariable variable, string label)
        {
            bool flag = VariableEditor.VariableToggle(variable.get_UseVariable());

            if (flag != variable.get_UseVariable())
            {
                if (!flag)
                {
                    return(SkillVariable.GetNewVariableOfSameType(variable));
                }
                variable.set_UseVariable(true);
                variable.set_Name(null);
                if (EditorGUI.get_actionKey())
                {
                    return(EditorCommands.AddVariable(SkillVariable.GetVariableType(variable), label.Trim(new char[]
                    {
                        '*'
                    }).ToCamelCase()));
                }
            }
            return(variable);
        }
 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();
             }
         }
     }
 }