override public void ShowGUI(List <ActionParameter> parameters)
        {
            inventoryManager = AdvGame.GetReferences().inventoryManager;

            // Select Inventory item

            setVarAsPropertyMethod = (SetVarAsPropertyMethod)EditorGUILayout.EnumPopup("Get property of:", setVarAsPropertyMethod);
            if (setVarAsPropertyMethod == SetVarAsPropertyMethod.SpecificItem)
            {
                ShowInvSelectGUI(parameters);
            }

            // Select item property
            ShowInvPropertyGUI();

            EditorGUILayout.Space();

            // Select variable
            if (isAssetFile)
            {
                varLocation = VariableLocation.Global;
            }
            else
            {
                varLocation = (VariableLocation)EditorGUILayout.EnumPopup("Variable source:", varLocation);
            }

            if (varLocation == VariableLocation.Global)
            {
                if (AdvGame.GetReferences().variablesManager)
                {
                    ShowVarGUI(AdvGame.GetReferences().variablesManager.vars, parameters, ParameterType.GlobalVariable);
                }
            }
            else if (varLocation == VariableLocation.Local)
            {
                if (localVariables)
                {
                    ShowVarGUI(localVariables.localVars, parameters, ParameterType.LocalVariable);
                }
                else
                {
                    EditorGUILayout.HelpBox("No 'Local Variables' component found in the scene. Please add an AC GameEngine object from the Scene Manager.", MessageType.Info);
                }
            }

            if (inventoryManager != null && inventoryManager.invVars != null && inventoryManager.invVars.Count > 0)
            {
                if (varType != propertyType && varType != VariableType.String)
                {
                    EditorGUILayout.HelpBox("The chosen Inventory Item Property and Variable must share the same Type, or the Variable must be a String.", MessageType.Warning);
                }
            }

            AfterRunningOption();
        }
        public override void ShowGUI(List <ActionParameter> parameters)
        {
            inventoryManager = AdvGame.GetReferences().inventoryManager;

            // Select Inventory item

            setVarAsPropertyMethod = (SetVarAsPropertyMethod)EditorGUILayout.EnumPopup("Get property of:", setVarAsPropertyMethod);
            if (setVarAsPropertyMethod == SetVarAsPropertyMethod.SpecificItem)
            {
                ShowInvSelectGUI(parameters);
            }

            // Select item property
            ShowInvPropertyGUI();

            EditorGUILayout.Space();

            // Select variable
            varLocation = (VariableLocation)EditorGUILayout.EnumPopup("Variable source:", varLocation);
            switch (varLocation)
            {
            case VariableLocation.Global:
                if (AdvGame.GetReferences().variablesManager)
                {
                    ShowVarGUI(AdvGame.GetReferences().variablesManager.vars, parameters, ParameterType.GlobalVariable);
                }
                break;

            case VariableLocation.Local:
                if (!isAssetFile)
                {
                    if (localVariables)
                    {
                        ShowVarGUI(localVariables.localVars, parameters, ParameterType.LocalVariable);
                    }
                    else
                    {
                        EditorGUILayout.HelpBox("No 'Local Variables' component found in the scene. Please add an AC GameEngine object from the Scene Manager.", MessageType.Info);
                    }
                }
                else
                {
                    EditorGUILayout.HelpBox("Local variables cannot be accessed in ActionList assets.", MessageType.Info);
                }
                break;

            case VariableLocation.Component:
                varParameterID = Action.ChooseParameterGUI("Component variable:", parameters, varParameterID, ParameterType.ComponentVariable);
                if (varParameterID >= 0)
                {
                    variables           = null;
                    variablesConstantID = 0;
                }
                else
                {
                    variables           = (Variables)EditorGUILayout.ObjectField("Component:", variables, typeof(Variables), true);
                    variablesConstantID = FieldToID <Variables> (variables, variablesConstantID);
                    variables           = IDToField <Variables> (variables, variablesConstantID, false);

                    if (variables != null)
                    {
                        ShowVarGUI(variables.vars, null, ParameterType.ComponentVariable);
                    }
                }
                break;
            }

            if (inventoryManager != null && inventoryManager.invVars != null && inventoryManager.invVars.Count > 0)
            {
                if (varType != propertyType && varType != VariableType.String)
                {
                    EditorGUILayout.HelpBox("The chosen Inventory Item Property and Variable must share the same Type, or the Variable must be a String.", MessageType.Warning);
                }
            }

            AfterRunningOption();
        }